一个RTT内,tcp可以传输多少数据?

基础概念

---------------------

MSS:Maximum Segment Size,TCP一次传输发送的最大数据段长度。

RTT:往返时延,表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延。

--------------------

一个RTT内tcp可以传输的数据量由流量控制和拥塞控制决定。流量控制,tcp中使用的是滑动窗口,即滑动窗口决定了一个RTT内发送端可以发送的TCP数据包个数,同时滑动窗口的大小由接收端的窗口决定,具体的滑动窗口的解释:点我。拥塞控制管理发送端的网络负载,减少丢包、拥塞等事故的发生,具体的解释:点我

考虑以下场景,使用tcp来传输一个大的数据,需要将数据进行分段。每个tcp数据包可携带的最大分段长度为MSS,需要分100段,则存在以下两种传输方式。

1、每次发送一个,对端确认之后,再发送下一个,发送100次。

2、一次发送100个,一次发完。

 方式一,每个RTT内可传输一个MSS大小的数据;方式二,每个RTT内可传输100个MSS大小的数据。但这两种方式都比较极端,方式1速率太慢,方式2超过网络负载能力,接收端的缓存也不一定发的下那么多数据。可用上面提到的流量控制和拥塞控制来解决。

MSS的百度定义连接:https://baike.baidu.com/item/MSS/3567802?fr=aladdin

IPV4中MSS大小默认为536字节

IPV6中MSS大小默认为1220字节 

猜你喜欢

转载自blog.csdn.net/qq_37437983/article/details/108435727