TCP可靠传输实现的核心:滑动窗口

TCP基于以字节为单位的滑动窗口来实现可靠传输


我们如何描述发送窗口的状态?
使用三个指针P1,P2,P3分别指向对应的字节序号

  • 小于P1的是已经发送并已收到确认的部分
  • 大于等于P3的是不允许发送的部分
  • P3 - P1 = 发送窗口的尺寸
  • P2 - P1 = 已发送但尚未收到确认的字节数
  • P3 - P2 = 允许发送但当前尚未发送的字节数

  • 虽然发送方的发送窗口是根据接收方的接收窗口设置的,但在同一时刻,发送方的发送窗口并不总是和接收方的接收窗口一样大
    • 网络传送窗口值需要经历一定的时间滞后,并且这个时间还是不确定的
    • 发送方可能根据网络当时的拥塞情况适当减小自己的发送窗口尺寸
  • 对于不按序到达的数据应如何处理,TCP并没有明确规定
    • 如果接收方把不按序到达的数据一律丢弃,那么接收窗口的管理就会比较简单,但是这样做对网络资源的利用不利,因为发送方会重复发送较多的数据
    • TCP通常对不按序到达的数据是先临时存放在接收窗口中,等到字节流所缺少的字节收到后,再按序交付上层的应用进程
  • TCP要求接收方必须有累计确认和捎带确认机制,这样可以减小传输开销,接收方可以在合适的时候发送确认,也可以在自己有数据要发送时把确认信息顺便捎带上
  • TCP的通信是全双工通信。通信中的每一方都在发送和接收报文段。因此,每一方都有自己的发送窗口和接收窗口。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值