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

Table of Contents

基础概念

举例说明

详细说明


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

基础概念

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

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

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

举例说明

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

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

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

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

 方式一,每个RTT内可传输一个MSS大小的数据;方式二,每个RTT内可传输100个MSS大小的数据。但这两种方式都比较极端,方式1速率太慢,方式2超过网络负载能力,接收端的缓存也不一定发的下那么多数据。

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

详细说明

此时就需要谈谈窗口与带宽的关系了。如方式二,之所以该方法不现实,就是因为发送端和接收端的窗口不可能设置那么大,窗口的大小需要考虑接收方的处理能力和需求,同时也需要考虑二者的网络传输能力。再假如,接收方有这个需求且有这个处理能力,那么此时的约束条件就是二者之间的网络传输能力。二者之间的传输速率可通过带宽体现出来,如上文所知,一个数据包的数据最大负载为MSS,而带宽则表示二者之间的网络支持一次可以发送多少个数据包。

参考:TCP速率与窗口,带宽,RTT之间的关系,我们可以得到公式 W <  B * Rtt 和 W > B * Rtt,如果满足前者,则说明当前网络的传输能力收到滑动窗口的约束;满足后者则受带宽的约束。在W < B * Rtt 时,影响TCP发送数据速率的最直接的因素是滑动窗口的大小,TCP的流量控制策略(比如超时时窗口设置为1,重复ACK时窗口减半)最终都是通过控制窗口大小来控制速率,而慢启动,拥塞避免这些流量控制算法实际上就是控制窗口增长方式的算法,也就是控制的是加速度大小。具体的滑动窗口与拥塞窗口的区别见博客:https://blog.csdn.net/qq_37437983/article/details/108651806

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

IPV4中MSS大小默认为536字节

IPV6中MSS大小默认为1220字节 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我要出家当道士

打赏是不可能,这辈子都不可能

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值