公式上说 时延带宽积=传播时延×带宽 也就是 R x d prop 带宽*从一端到另一端的传播时间
为什么要这么算?为什么说 时延带宽积是以比特为单位的链路长度?
又为什么说 时延带宽积是在某时链路上可容纳的最大比特数(这个难道不是用1s内发送上来的数据量-1s到达的数据量)吗?
时延带宽积 ,1个RTT(packet)来回时间内,网络能容纳的bit位最大数量。
如果RTT时间内,向这个网络管道注入的bit位 < 时延带宽积 ,bit位之间会有间隙, 网络管道利用率 < 100%。
如果RTT时间内,向这个网络管道注入的bit位 > 时延带宽积 ,超出的bit将会溢出丢弃,网络管道利用率= 100%。
如果RTT时间内,向这个网络管道注入的bit位= 时延带宽积 ,完美。既不会有缝隙也不会溢出,网络管道利用率= 100%。
如果想最大化利用网络,肯定会选择后2种选择,宁愿有部分流量溢出。
假设tcp接收方的window size =64k,最小rtt = 1 ms,问这个tcp连接的最大传输rate是多少?
无论采用什么算法,永远无法突破一个上限:
rate = 64k/0.0001 = 64 mbps
事实上,tcp连接双方使用p2p专线:
available bandwidth = 1000 mbps
在这个场景下,网络带宽有效利用率
percentage = 64/1000 = 6.4%
很显然,为了提高利用率,需要从两方面入手:
RTT - -
Window Size + +
在绝大多数情况下,RTT是束手无策的,因为无法改变物理规律。
剩下的唯一能做的就是大幅增加接收方window size。
增加10倍到640k:
rate = window / rtt = 640k/0.0001 =640 mbps
网络利用率 =640/1000 = 64%
很显然,如果想达到100%利用率,需要将接收方的window size增加到至少1000k byte。
这样才不会仅仅因为接收方的window size小而成为网络速率的瓶颈。
bandwidth-delay product = bandwidth * RTT
如果一个网络的bandwidth-delay product 特别大,通常说明:
bandwidth特别大
RTT特别大
bandwidth大、RTT大
而要充分利用这个高bandwidth、高延迟的长肥(long fat )管道,需要大幅增加接收方的window size。
可以使用tcp scaling window option来实现。
理论上可以将window size最大增加到1G bytes。
这个1G byte 也是TCP的最大bandwidth-delay product。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...