有两个相距1500km的机房A和B。现有100GB数据需要通过一条FTP连接在100s内从A传输到B。已知FTP连接建立在TCP协议之上,而TCP协议通过ACK来确认每个数据包是否正确传送。网络信号传输速率为2×100000km/s,假设机房间带宽足够高,那么A节点的发送缓冲区最小可以设置为多少?
本题的核心解题点在于是否知道关于TCP协议的BDP问题。
什么是BDP?带宽时延积,网络性能指标,链路上的最大比特数,也称为比特为单位的链路长度。计算方法:
Bandwidth-Delay Product = delay × bandwidth(缓冲区大小=带宽×时延)
如果不了解BDP该如何考虑这个问题?
TCP协议的一个关键特性是可靠传输,需要抽象TCP实现可靠传输的过程:
1.发送端把待发送数据存入发送缓冲区
2.网络设备发送数据
3.接收端接收到数据,同时返回一个确认收到数据的ACK信息
4.发送端收到ACK信息之后确认数据已被对端收到,缓冲区的已确认数据删除
这个就是一次数据发送的抽象过程,而这个过程除了发送数据的耗时外,两次ACK的耗时就是所谓的时延,也就是一个网络RTT。也就是说发送端至少等待一个网络RTT时间,才知道接收端是否正确接收到数据,以保证应用层数据可靠性。
RTT:Round-Trip Time,往返时延。表示从发送端发送数据开始,到发送端收到来自接收端的确认,总共经