raw socket packet reordering

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi, does anyone know what could cause packets to get reordered between
source and destination for a raw socket?  Specifically:

  s = socket(AF_PACKET, SOCK_RAW, htons(ETH_P_ALL));

My setup consists of two core 2 duo's connected by an Intel PCI
Express dual port gigE card.  The card is:

04:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network
Connection (rev 01)
04:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network
Connection (rev 01)

I'm using ubuntu with kernel: 2.6.28-11-generic #42-Ubuntu SMP Fri Apr
17 01:57:59 UTC 2009 i686

Gigabit driver:
[    4.474059] Intel(R) Gigabit Ethernet Network Driver - version 1.2.45-k2
[    4.474061] Copyright (c) 2008 Intel Corporation.

I am using the following code:

http://crouchingdog.com/work.tar.gz

You can build it using:
tar zxf work.tar.gz
cd work
touch Makefile
make

The command line on one side is:

sudo ./server eth2 > a

On the other side is:

sudo ./client eth2

This assumes that eth2 is the interface that the computers are
connected to each other through.

When the run completes, check the file ./a for the output from the
server program.

What I end up with is that most packets make it from the server to the
client (about 0.5% are lost), however there is a large amount of
reordering going on too.  Does anyone know if this reordering is
happening on the server side or the client side?  For a typical run of
1000000 packets, the max delta between packets is 706, and the average
delta is 255.  If I slow the client down then I can reduce the amount
of reordering, but then the throughput suffers.

The dump file in the tar file called: capture.pcap was captured using
tcpdump.  Openning that file in wireshark and examining the first
payload field one can observe from packet to packet that the
reordering is also happening when tcpdump captures the packets.

Any help would be appreciated.

When I run iperf in TCP mode I get nearly full throughput, I guess
that the TCP stack takes care of the packet reordering and lost
packets.

Mathys
--
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux