发布时间:2014-01-14 10:48:17
用几个数试了一下,16bit字折半相加就是模2^16-1,然后再取反,跟先取反再求和的结果是一样的,又想到以前看到过1的补码,2的补码,到网上搜了下找到这个:It is the 1’s complement ofthe 1’s complement sum of all the 16-bit words in the TCP headerand data 这是关于TCP头部校.........【阅读全文】
发布时间:2014-01-08 18:27:21
GRO(Generic receive offload)在内核2.6.29之后合并进去的,作者是一个华裔Herbert Xu ,GRO的简介可以看这里:http://lwn.net/Articles/358910/先来描述一下GRO的作用,GRO是针对网络接受包的处理的,并且只是针对NAPI类型的驱动,因此如果要支持GRO,不仅要内核支持,而且驱动也必须调用相应的借口,用ethtool -.........【阅读全文】
发布时间:2014-01-08 18:25:56
TSO,全称是TCP Segmentation Offload,我们知道通常以太网的MTU是1500,除去TCP/IP的包头,TCP的MSS (Max Segment Size)大小是1460,通常情况下协议栈会对超过1460的TCP payload进行segmentation,保证生成的IP包不超过MTU的大小,但是对于支持TSO/GSO的网卡而言,就没这个必要了,我们可以把最多64K大小的TCP payl.........【阅读全文】
发布时间:2014-01-08 18:24:53
GSO用来扩展之前的TSO,目前已经并入upstream内核。TSO只能支持tcp协议,而GSO可以支持tcpv4, tcpv6, udp等协议。在GSO之前,skb_shinfo(skb)有两个成员ufo_size, tso_size,分别表示udp fragmentation offloading支持的分片长度,以及tcp segmentation offloading支持的分段长度,现在都用skb_shinfo(skb)->gso_size.........【阅读全文】