计网Lesson15 - TCP可靠传输



1. 停止等待ARQ协议

  • ARQ(Automatic Repeat–reQuest)自动重传请求

  • 几种重传情况

    • 发送端丢失
      发送方过久没有接收到接收方的确认报,这种情况会触发超时重传机制,发送方重新发送报文。

    • 确认报丢失
      发送方依然没有收到确认报,所以会触发重传,而接收方接收到两个重复的包,直接将后来的包丢掉。

    • 延迟确认
      发送方迟迟没收到确认报,于是重传,重传的接收到确认报了,之后前面的确认报才来,这时候无事发生。

  • 问题:若有个包重传了N次还是失败,会⼀直持续重传到成功为止吗?

    答:在网络通信中,如果一个数据包重传了N次仍然失败,它是否会一直持续重传直到成功,这取决于具体的协议和设置。例如,在TCP(传输控制协议)中,重传5次还未成功就会发送RST报文,连接将被断开。这是为了防止网络拥塞和无效通信。


2. 连续ARQ协议与滑动窗口协议

  • 在停止等待协议的基础上改进,发送方发一个窗口大小内的数据,接收方只回一次确认报。
  • 如果接收窗口最多能接4个包,但发送方只发了2个包:
    • 发送方可能一次发送一个窗口的包,也有可能不发,不一定的,得看发送方的协议约定。
    • 接收方的确认报只确认收到两个包。
  • 每个包多大,这个在一开始建立连接的时候就会约定好
    • 就是选项段的第一个:最大报文段长度(Maximum Segment Size)
    • 如果建立连接时约定的MSS大小不一,取最小的。
  • 最大报文段长度在一开始就约定好了
  • 窗口的大小并非固定死的,是由接收端控制的,这关系到流量控制:
    • 接收端如果缓存区不够用或者想控制流量,就在确认报中将窗口大小改小。
  • 序号和确认号
    • 当发送方发出一连串数据,但是其中丢了几个包,接收方会确认第一个丢失的包的位置(ACK),之后会在选项中标注出哪些包丢失了,也就是选择性确认技术(SACK)。

      • 发送方会滑到ACK的位置,开始重新发送这个窗口内没有传输过的包,传过的不会再发。
    • 此处应当辨析超时重传与连续ARQ协议:为什么超时就整段重传,而这个ARQ滑动窗口仅仅只重传未发送的包?

      • 超时重传:在TCP中,传输层分包超时会导致包重传;在给包分片的IP层中,片超时(或丢失)会直接将整个包的片丢掉不管,然后发送方触发超时重传。
      • 连续ARQ:只重发丢掉的包。
      • 为什么:因为网络层是在路由之间传输的,如果一直等待错包重传很占用路由的空间,所以选择直接扔掉重传;而传输层可以看作是管道直连(网络层掩盖了底层逻辑),所以占用的空间资源是各主机的,并无太大影响。
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值