链路层的滑动窗口协议

来源:互联网 发布:js confirm修改位置 编辑:程序博客网 时间:2024/06/06 17:55
链路层的滑动窗口协议
  • 发送方维护一组连续的允许发送的帧的序号,称为发送窗口
  • 接收方也维护着一组连续的允许接收的帧的序号,称为接收窗口
  • 发送窗口用来对发送方进行流量控制,而发送方窗口大小Wt用来表示还没有收到对方确认信息的情况下发送方最多还可以发送多少个数据帧
  • 接收端设置接收窗口是为了控制可以接收哪些数据帧而不可以接收哪些数据帧
  • 在接收方只有当收到的数据帧的序号落入接收窗口内才允许将该数据帧收下,若不在,则丢弃之
  • 在发送端,每收到一个确认帧,发送窗口就向前滑动一个帧的位置,当发送窗口内没有可以发送的帧(即窗口内的帧全部发送但未收到确认),发送方就会停止发送。直到收到接收方发来的确认帧才可以使发送窗口向右移动以使得可以发送新的数据帧
从滑动窗口的概念看,停止-等待协议、后退N帧协议和选择重传协议只在发送窗口大小上有所差异
  1. 停止-等待协议
    • 发送窗口大小 = 1,接收窗口大小 = 1 (接收窗口 = 1,可以保证帧的有序接收)
  2. 后退N帧协议
    • 发送窗口大小 > 1,接收窗口 = 1(接收窗口 = 1,可以保证帧的有序接收)
  3. 选择重传协议
    • 发送窗口 > 1,接收窗口 > 1
  4. 注意:对某一个数据帧的确认,表明该数据帧和这以前所有的数据帧均已正确无误的接收到了。

最后:在数据链路层的滑动窗口协议中,窗口的大小在传输过程中是固定的(与传输层的窗口有区别)
0 0
原创粉丝点击