(四)TCP的滑动窗口

(一)TCP滑动窗口的目的

RTT:发出一个数据包到收到对应ACK所花的时间
RTO:重传时间间隔
Tcp要处理批量数据,则要知道实际的网络处理速度,才不会导致网络堵塞导致丢包,因此Tcp使用滑动窗口做流量控制与乱序重排,可动态调整大小

1.保证Tcp的可靠性
2.保证TCP的流控特性

  • 滑动窗口体现TCP面向字节流的机制

(二)TCP滑动窗口数据的计算过程

在这里插入图片描述
对于发送方:

  • LastAck指向最大的ACK段,即已确认的最大序列
  • LastByteSent指向已发送的最后一个字节的位置,该位置已发出,但未收到回应
  • LastByteWritten指向上层应用已写完的最后一个字节位置,即当前程序已准备好要发送的最新数据段
    对于接收方:
  • LastByteRead指向上层应用已经读完并回执的最后一个字节的位置
  • NextByteExpected指向已收到的最大SYN的位置
  • LastByteRcvd是指向已收到的最后一个字节的位置

还能够接收的数据量:AdvertisedWindow=MaxRcvBuffer-(LastByteRecd-LastByteRead)
窗口剩余可发送的数据大小:EffectiveWindow=AdvertisedWindow-(LastByteSent-LastByteAcked)

(三)TCP的原理

TCP的发送方
在这里插入图片描述
#1是已发送并已得到回应;
#2是已发出但未收到回应
#3是未发送但准备发送的
#4是超过Window大小不能发送
在这里插入图片描述
原窗口:其中32-36是发送但未收到确认,36-51是准备发送,51以后是不能发送
现窗口:当收到ACK=36时,滑动窗口向右移动
TCP的接收方
在这里插入图片描述
#1+2:已收到且已发送回执的
#3:未接收但准备接收的状态
#4:由于超出阈值,不能接收
其中#3为滑动窗口

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值