协议栈对GSO和TSO,UFO的支持

本文探讨了通过延迟分段及在网络驱动中处理大包来提高TSO效率的方法。避免在TCP层进行分段操作可以显著减少协议栈的负担,进而提升整体性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TSO效率的节省源于对大包只走一次协议栈,而不是多次.

尽可能晚的推迟分段(segmentation), 最理想的是在网卡驱动里分段,在网卡驱动里把大包(super-packet)拆开,组成SG list,或在一块预先分配好的内存中重组各段,然后交给网卡。

假设网卡驱动的设置如下,并且网卡也支持这些功能:
dev->features |= NETIF_F_SG | NETIF_F_ALL_CSUM;
dev->features |= NETIF_F_TSO | NETIF_F_UFO | NETIF_F_FRAGLIST;


TCP层里的 tcp_push_one()中,若真的进行了tso_fragment(sk, skb, limit, mss_now),是个有损协议栈效率的事,但unlikely这个宏的限定,说明真进行tso_fragment()的几率不是很大,否则就用 likely()了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值