I am using CentOS 7 to test some network performance.
The interface setting is normal like that :
saberin@localhost ~]$ ifconfig
enp0s25: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.40.196.150 netmask 255.255.255.0 broadcast 10.40.196.255
ether 00:21:cc:70:ec:c9 txqueuelen 1000 (Ethernet)
RX packets 65474511 bytes 67755018554 (63.1 GiB)
RX errors 0 dropped 7864 overruns 0 frame 0
TX packets 49148000 bytes 63929988549 (59.5 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 20 memory 0xf3900000-f3920000
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 0 (Local Loopback)
RX packets 7436 bytes 2079869 (1.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 7436 bytes 2079869 (1.9 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
However when I check the captured traffic I found :
No. Time Source Destination Pro Length Info
...
15369 7.068528 10.40.196.150 -> 10.40.198.104 TCP 14548 51745 > commplex-link [ACK] Seq=48889881 Ack=1 Win=29312 Len=14480 TSval=1208291043 TSecr=1298215864
15370 7.068650 10.40.196.150 -> 10.40.198.104 TCP 14548 51745 > commplex-link [ACK] Seq=48904361 Ack=1 Win=29312 Len=14480 TSval=1208291043 TSecr=1298215864
15371 7.068772 10.40.196.150 -> 10.40.198.104 TCP 14548 51745 > commplex-link [ACK] Seq=48918841 Ack=1 Win=29312 Len=14480 TSval=1208291043 TSecr=1298215864
15372 7.068892 10.40.196.150 -> 10.40.198.104 TCP 14548 51745 > commplex-link [ACK] Seq=48933321 Ack=1 Win=29312 Len=14480 TSval=1208291043 TSecr=1298215864
...
the length of frame is 14548 byte! much larger than MTU of interface.
Could some one provide me some hint?
Best Answer
Got the answer. The NIC i am using has the 'tso' function which will aggregate the frame received. To enable/disable it :
In my case, just need to disable it.