首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

TCP协议发送SKB时ip_summed成员的设立

2013-01-23 
TCP协议发送SKB时ip_summed成员的设置 tcp_send_ack()函数是内核用来发送ACK的函数,该函数比较简单,就是先

TCP协议发送SKB时ip_summed成员的设置
 tcp_send_ack()函数是内核用来发送ACK的函数,该函数比较简单,就是先分配一个SKB包,然后简单的初始化(初始化操作中没有设置ip_summed)后,调用tcp_transmit_skb()来将SKB包传递到IP层。tcp_transmit_skb中先做一些操作后(仔细看过,到计算校验和之前,没有更改过ip_summed),会调用tcp_v4_send_check(语句是:icsk->icsk_af_ops->send_check(sk, skb->len, skb);)来计算校验和。 tcp_v4_send_check代码如下:

/*                 * Check whether we can use HW checksum.                 */                if (sk->sk_route_caps & NETIF_F_ALL_CSUM)                    skb->ip_summed = CHECKSUM_PARTIAL;

也就是说如果目的路由网络设备的特性支持NETIF_F_ALL_CSUM时,才将ip_summed设置为CHECKSUM_PARTIAL。当然这里的讨论只限于TCP协议发送SKB包,到计算校验和的过程中ip_summed成员的变化和值。

热点排行