iperf实验验证及抓包分析系列之二:iperf3打流显示的速率到底是什么速率?

文章探讨了在底层线路限速10Mbps的情况下,iperf3使用TCP和UDP进行打流时显示的速率为何未达到理论值。分析指出,TCP/IP头部和二层帧头的额外开销以及MTU对数据包大小的影响导致实际速率受限。
摘要由CSDN通过智能技术生成

目录

思考题:底层线路限速10Mbps,为什么iperf3打流显示的速率不到10Mbps?

一、实验拓扑:

二、iperf TCP打流情况分析:

三、iperf UDP打流情况分析:


思考题:底层线路限速10Mbps,为什么iperf3打流显示的速率不到10Mbps?

一、实验拓扑:

【客户端】(10.255.0.2)------(iperf打流)------>【服务端】(10.255.1.2)

二、iperf TCP打流情况分析:

如下图所示,iperf tcp打流9Mbps,iperf显示有9Mbps;打流10Mbps,显示只有9.56Mbps。

-l指定1400字节,iperf tcp打流10Mbps,显示只有9.56Mbps。

通过【iperf实验验证及抓包分析系列一:iperf3中通过-l参数指定的是哪部分数据的大小?】文章,我们知道了iperf中指定/显示的速率应该只是拿Data部分的数据进行计算,-l可以简单理解成是TCP/UDP Data部分的长度,最终形成的数据包还会加上TCP/UDP报头、IP包头、二层帧头,对于TCP包会再加上12(TCP Option)+20(TCP报头)+20(IP包头)+14(二层帧头)=66字节的额外开销。TCP是逐流转发,会把小包合成大包,又因为以太网默认最大MTU是1500字节,超过此长度会被分片,所以以太网线路中最大帧大小就是1518(1500+14字节帧头+4字节帧尾部FCS),那么对于iperf TCP流的Data部分在整个帧中的占比就是(1518-66)/1518=95.6%。所以底层线路带宽是10Mbps,iperf显示就是10Mbps*95.6%=9.56Mbps左右。

通过在底层线路上抓包,我们也可以看到10Mbps基本上已经是跑满了。

三、iperf UDP打流情况分析:

对于iperf UDP包的情况,-l可以简单理解成是UDP Data部分的长度,最终形成的数据包还会加上UDP头(8字节)+IP头(20字节)+二层帧头(14)=42字节的额外开销。

所以当-l 1472字节(最大值了,不然就IP分片,影响速率了)打UDP流时,对于iperf UDP流的Data部分在整个帧中的占比就是1472/(1472+42)=97.2%。所以底层线路带宽是10Mbps,iperf显示就是10Mbps*97.2%=9.72Mbps左右。

【扩展】当-l 1473,最终形成的数据包是1473+42=1515,超过最大MTU发生IP分片,速率反而是下降了的。

所以当-l 1400字节打UDP流时,对于iperf UDP流的Data部分在整个帧中的占比就是1400/(1400+42)=97%。所以底层线路带宽是10Mbps,iperf显示就是10Mbps*97%=9.7Mbps左右。

当-l 64字节打UDP流时,对于iperf UDP流的Data部分在整个帧中的占比就是64/(64+42)=60.4%。所以底层线路带宽是10Mbps,iperf显示就是10Mbps*60.4%=6.04Mbps左右。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值