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
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
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

Easy, flexible multimedia distribution & control

Coming soon!  Ideal for large-scale A/V applications, ATEN's VM3200 Modular Matrix Switch is an all-in-one solution that simplifies video wall integration. Easily customize display layouts to see what you want, how you want it in 4k.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

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…
In a recent question ( here at Experts Exchange, a member asked how to run an AutoHotkey script (.AHK) directly from Notepad++ (aka NPP). This video…
Attackers love to prey on accounts that have privileges. Reducing privileged accounts and protecting privileged accounts therefore is paramount. Users, groups, and service accounts need to be protected to help protect the entire Active Directory …

730 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