UDP question.



Hi:
I have a very puzzled question. When I test the limits of my network
adapters, I send many small UDP packets and compute the average
packets sent per second. Use those codes, I get the result: 75000
packets per second.
(All my sockets has set to unblock)
//////
socket = socket(AF_INET, SOCK_DGRAM, .....)
bind....
time = time(NULL);
while (1)
{
sendto(socket, "", 1, 0, dstaddr, addrlen);
count++;
}
time = time(NULL) - time;
avg = count / time; // here, I get avg = 75000 //////

This result can't satisfy me, so I add another network adapter, and
try the code blow:

//////
socket1 = socket(AF_INET, SOCK_DGRAM, .....)
socket2 = socket(AF_INET, SOCK_DGRAM, .....)
bind socket1.network adapter1...
bind socket2 network adapter2
time = time(NULL);
while (1)
{
sendto(socket1, "", 1, 0, dstaddr1, addrlen);
sendto(socket2, "", 1, 0, dstaddr2, addrlen);
count += 2;
}
time = time(NULL) - time;
avg = count / time;
///////////////////

But I get the result is also 75000 packet per second, WHY?

Then I find a technique name bond, and then I configure my server's
two network adapters into a dev bond0. And then I test again with the
first paragraph of the code, then I get result 150000 packets per
second. So I want to know how bond can increate the speed of network
adapters (use my own code to send with the two network adapters at the
same time is not helpful), then I open the kernel code, and then find
such code:
bond_main.c L3861:
if (IS_UP(slave->dev) &&
(slave->link == BOND_LINK_UP) &&
(slave->state == BOND_STATE_ACTIVE)) {
res = bond_dev_queue_xmit(bond, skb, slave->dev);

write_lock(&bond->curr_slave_lock);
bond->curr_active_slave = slave->next;
write_unlock(&bond->curr_slave_lock);

break;
}
It look like that when send a packet to bond dev, bond use current
slave and send packet, then change current slave to next. What is the
essence different between the bond and my code (use two network
adapters)?

Any suggestions?

xixi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages

  • UDP Questions
    ... I send many small UDP packets and compute the average packets sent ... This result can't satisfy me, so I add another network adapter, and try the ... Then I find a technique name bond, and then I configure my server's two ... network adapters into a dev bond0. ...
    (Linux-Kernel)
  • Re: 2.6.20-rc4-mm1 USB (asix) problem
    ... I'm using two D-Link DUB-E100 USB ethernet adapters, ... no packets actually made it out of the adapters (watching from ... other systems on the network). ...
    (Linux-Kernel)
  • RE: Odd network results from two installed adapters, wired/wirelss
    ... system has both wired and wireless adapters, ... I can't seem to establish any network ... Connection Type: Dynamic ...
    (microsoft.public.windowsxp.network_web)
  • Re: Ethernet issue: works one way but not another
    ... packets transmitted, 5 packets received, 0% packet loss ... (This is when connected directly to internet through ... FBSD, I have been working with BSDI at the isp I work for for the last ... As for my network topology, I have an internal network that goes ...
    (freebsd-questions)
  • Re: Update: UDP 770 Potential Worm
    ... > the network immediately after the 'attack', ... were no packets indicating some form of replication. ... I noticed that the UDP ... > of the UDP datagrams is the IP address of the proxy? ...
    (Incidents)