测试目的
|
测试IPv4场景下网卡支持TCP的LRO功能。
|
预置条件
|
- 按组网方式1搭建测试环境。
- 关闭网卡GRO卸载功能:
ethtool -K <ifname> gro off
|
测试步骤
|
- 在被测服务器上,开启待测网卡的LRO功能:
ethtool -K <ifname> lro on
- 使用iperf工具从陪测服务器向本端发包,数据长度要求大于MSS值(例如:10000字节):
本端收包:iperf -s
对端发包:iperf -c 本端地址 -n 10000
提前在本端进行抓包,有结果1
tcpdump -enn -i enp7s0f0 –s0 -w 文件名.pcap
- 本端关闭LRO功能,重复步骤2,有结果2。
- ethtool -K <ifname> lro off。
|
预期结果
|
- iperf执行成功,且本端抓取到的下行TCP报文进行了聚合。
- iperf执行成功,且本端抓取到的下行TCP报文没有进行聚合。
|
测试结果
|
-
|
备注
|
- MSS是传输层TCP协议范畴内的概念,为标识TCP能够承载的最大的应用数据段长度,MSS=MTU-20字节TCP报头-20字节IP报头。
- 网卡LRO功能实现中支持IPv4 IPv6都可以 的 TCP 协议。
- 聚合:在内核上有一块缓存,隔一段时钟时间,汇总一条流的报文发给上层,所以会有一些头部字段的PSH报文1500字节的会直接发,不聚合。
- 虚拟化所需要的桥接功能开启LRO可能无法使用,所以测试时需将ip_forward设置为0:echo 0 > /proc/sys/net/ipv4/ip_forward。
- GRO(Generic Receive Offload)属于LRO的升级,若网卡支持则优先测试GRO,LRO可选。
|