100Mbps fast ethernet card limitation?

Posted on 2003-12-03
Last Modified: 2010-03-18
Hi, experts.

This probably is not a best place to ask this question but I cant find other topics at experts-exchange that is more suitable. Please bear with me.

I'm developing some traffic generator application on RH8 in C. The FE card driver was 3Com 3c590 series.
I found that using the socket sendto function (continuously in a loop), the bandwidth used is far below the possible BW (100Mbps). E.g. sending 10bytes fixed size packet, the program can only reach ~25000pps (packet per second).
That's only abt 2Mbps...
Increasing the packet size (1000bytes for example) will give higher BW (max ~11000pps, avg ~1000pps) but still very disappointing.

So i was wondering what are the factors that caused these limitation?
1. What is the normal packet per second for a FE card? Any such limitation?
2. Could anybody suggest me a better way to stress (fully utilize) the card programmatically?
3. pps is my main concern. Is it possible to go any higer pps for this card?

Thanks in advance.
Question by:chunmeng
LVL 40

Accepted Solution

jlevie earned 100 total points
ID: 9882766
This is probably a code problem. To drive the card at high rate you need to be using async IO and double buffering so that you code is always ready to push out a packet. You don't say whether you are doing TCP, UDP, or what, so I can't tell if the bottle neck might be at the other end of the network link. Also not that small packets will provide less throughput than large packets. Partly because of the fixed overhead associated with each packet and partly because each packet is a seperate I/O operation.

A decent qualitative check of a network link is the use FTP to transfer a file in the 2-5MB range to another system that you know to be fast. That should yield a transfer rate of about 80% of theoretical (~8Mb/sec for a 100Mbps link).
LVL 22

Assisted Solution

pjedmond earned 100 total points
ID: 9903756
With tcp, a reply is sent indicating that the packet has been received. If a reply isn't received within a set time, then normally the tcp layer assumes that the packet has failed to reach it's destination and retransmits it. It is possible that if you are trying to 'flood' the bandwidth with packets, then these replies are not being received all the time, and hence apparent bandwidth is being lost. (You might find that addind a controlled 'pause' between sending packets actually improves the perceived bandwidth as the ackowledgements are then received with greater reliability.) In a real time application (transferring data between a number of teminals and a server), I've found that I got a useage of the bandwidth of about 30%. Adding extra PCs to get more individuals working concurrently on the data (and hence increasing bandwidth useage) created 'stalls' where the network effectively ground to a halt due to 'collisions' on the network (this was tcp). The exact bandwidth that you achieve will be based on the size of packets, and also on the topogaphy of the network.

In order to 'stress' the system as you desire, the maximum that you can probably get is using UDP between 2 PCs with a crossover cable - there is then no intermediate systems to create extra 'noise' on the network. (Broadcasts looking for DHCP, WINs etc). Transferring UDP packets over this connection, you should be able to get into the high 80s % of the bandwidth.


Featured Post

Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

Join & Write a Comment

I have seen several blogs and forum entries elsewhere state that because NTFS volumes do not support linux ownership or permissions, they cannot be used for anonymous ftp upload through the vsftpd program.   IT can be done and here's how to get i…
Note: for this to work properly you need to use a Cross-Over network cable. 1. Connect both servers S1 and S2 on the second network slots respectively. Note that you can use the 1st slots but usually these would be occupied by the Service Provide…
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now