Chinaunix首页 | 论坛 | 博客
  • 博客访问: 606947
  • 博文数量: 353
  • 博客积分: 1104
  • 博客等级: 少尉
  • 技术积分: 1457
  • 用 户 组: 普通用户
  • 注册时间: 2008-12-23 23:02
个人简介

1、刚工作时做Linux 流控;后来做安全操作系统;再后来做操作系统加固;现在做TCP 加速。唉!没离开过类Unix!!!但是水平有限。。

文章存档

2015年(80)

2013年(4)

2012年(90)

2011年(177)

2010年(1)

2009年(1)

分类: LINUX

2015-06-09 11:28:15

原文地址:网卡相关的特性 作者:hanwei_1049

介绍下网卡相关的一些特性:

[root@test ~]# ethtool -k eth6
Features for eth6:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: on

udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: on
rx-vlan-offload: on
tx-vlan-offload: on
ntuple-filters: off
receive-hashing: on

TSO(TCP Segmentation Offload),利用网卡对TCP数据包分片减轻CPU负荷的一种技术,也叫 LSO (Large segment offload),如果数据包的类型只能是 TCP,则被称之为 TSO。TSO针对TCP,支持 TSO功能的同时硬件需要支持TCP校验计算和分散/聚集 (Scatter Gather) 功能,目前很多网卡支持TSO特性。
UFO(UDP-fragmentation-offload)类似于TSO,但目前很少网卡支持UFO。
GSO(Generic Segmentation Offload)比TSO更通用支持任意四层协议,尽可能推迟分片至发送到网卡驱动前,此时检查网卡是否支持分片(TSO/UFO)。如支持直接发到网卡,不支持就进行分片再发往网卡。此时大数据包只走一次协议栈,不需要分割成几个包分别走,提高了效率。
LRO(Large Receive Offload),通过将接收到的多个TCP数据聚合成一个大的数据包传递给协议栈处理,以减少上层协议栈处理开销,提高系统接收TCP数据包的能力。
GRO(Generic Receive Offload),基本思想跟LRO类似,克服了LRO的一些缺点,更通用,LRO缺点如下:
1.
数据包合并可能会破坏一些状态
2. 
数据包合并条件过于宽泛,导致某些情况下本来需要区分的数据包也被合并了,这对于路由器是不可接收的
3. 
在虚拟化条件下,需要使用桥接功能,但 LRO 使得桥接功能无法使用
4. 
实现中,只支持 IPv4 的 TCP 协议

而GRO 的合并条件更加严格和灵活,并且在设计时就考虑支持所有的传输协议,因此后续的驱动,都应该使用 GRO 的接口而不是 LRO,内核可能在所有先有驱动迁移到 GRO 接口之后将 LRO 从内核中移除。

RSS(Receive Side Scaling)网卡的新特性,俗称多队列。具备多个RSS队列的网卡,可以将不同的网络流分到不同队列,再分别将这些队列分配到多个CPU核心上进行处理,从而将负荷分散,充分利用多核处理器的能力。
阅读(1005) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~