滑动窗口——TCP可靠传输的实现[转]
转自: 
http://hi.baidu.com/bellgrade/blog/item/935a432393b949ae4723e828.html
(1).窗口机制 
滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序 号,称为接收窗口。发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。不同的滑动窗口协议窗口大小一般不同。发送方窗口内的序列号代表 了那些已经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧。下面举一个例子(假设发送窗口尺寸为2,接收窗口尺寸为1):
分析:①初始态,发送方没有帧发出,发送窗口前后沿相重合。接收方0号窗口打开,等待接收0号帧;②发送方打开0号窗口,表示已发出0帧但尚确认返回信 息。此时接收窗口状态不变;③发送方打开0、1号窗口,表示0、1号帧均在等待确认之列。至此,发送方打开的窗口数已达规定限度,在未收到新的确认返回帧 之前,发送方将暂停发送新的数据帧。接收窗口此时状态仍未变;④接收方已收到0号帧,0号窗口关闭,1号窗口打开,表示准备接收1号帧。此时发送窗口状态 不变;⑤发送方收到接收方发来的0号帧确认返回信息,关闭0号窗口,表示从重发表中删除0号帧。此时接收窗口状态仍不变;⑥发送方继续发送2号帧,2号窗 口打开,表示2号帧也纳入待确认之列。至此,发送方打开的窗口又已达规定限度,在未收到新的确认返回帧之前,发送方将暂停发送新的数据帧,此时接收窗口状 态仍不变;⑦接收方已收到1号帧,1号窗口关闭,2号窗口打开,表示准备接收2号帧。此时发送窗口状态不变;⑧发送方收到接收方发来的1号帧收毕的确认信 息,关闭1号窗口,表示从重发表中删除1号帧。此时接收窗口状态仍不变。
若从滑动窗口的观点来统一看待1比特滑动窗口、后退n及选择重传三种协议,它们的差别仅在于各自窗口尺寸的大小不同而已。1比特滑动窗口协议:发送窗 口=1,接收窗口=1;后退n协议:发窗口>1,接收窗口>1;选择重传协议:发送窗口>1,接收窗口>1。
(2).1比特滑动窗口协议
当发送窗口和接收窗口的大小固定为1时,滑动窗口协议退化为停等协议(stop-and-wait)。该协议规定发送方每发送一帧后就要停下来,等待接收 方已正确接收的确认(acknowledgement)返回后才能继续发送下一帧。由于接收方需要判断接收到的帧是新发的帧还是重新发送的帧,因此发送方 要为每一个帧加一个序号。由于停等协议规定只有一帧完全发送成功后才能发送新的帧,因而只用一比特来编号就够了。其发送方和接收方运行的流程图如图所示。
(3).后退n协议
由于停等协议要为每一个帧进行确认后才继续发送下一帧,大大降低了信道利用率,因此又提出了后退n协议。后退n协议中,发送方在发完一个数据帧后,不停下 来等待应答帧,而是连续发送若干个数据帧,即使在连续发送过程中收到了接收方发来的应答帧,也可以继续发送。且发送方在每发送完一个数据帧时都要设置超时 定时器。只要在所设置的超时时间内仍收到确认帧,就要重发相应的数据帧。如:当发送方发送了N个帧后,若发现该N帧的前一个帧在计时器超时后仍未返回其确 认信息,则该帧被判为出错或丢失,此时发送方就不得不重新发送出错帧及其后的N帧。
从这里不难看出,后退n协议一方面因连续发送数据帧而提高了效率,但另一方面,在重传时又必须把原来已正确传送过的数据帧进行重传(仅因这些数据帧之前有 一个数据帧出了错),这种做法又使传送效率降低。由此可见,若传输信道的传输质量很差因而误码率较大时,连续测协议不一定优于停止等待协议。此协议中的发 送窗口的大小为k,接收窗口仍是1。
(4).选择重传协议
在后退n协议中,接收方若发现错误帧就不再接收后续的帧,即使是正确到达的帧,这显然是一种浪费。另一种效率更高的策略是当接收方发现某帧出错后,其后继 续送来的正确的帧虽然不能立即递交给接收方的高层,但接收方仍可收下来,存放在一个缓冲区中,同时要求发送方重新传送出错的那一帧。一旦收到重新传来的帧 后,就可以原已存于缓冲区中的其余帧一并按正确的顺序递交高层。这种方法称为选择重发(SELECTICE REPEAT),其工作过程如图所示。显然,选择重发减少了浪费,但要求接收方有足够大的缓冲区空间。

转载于:https://www.cnblogs.com/songby/p/6811263.html

滑动窗口——TCP可靠传输的实现[转]相关推荐

  1. 3.4.1 计算机网络之流量控制(停止-等待协议、滑动窗口、后退N帧协议GBN、选择重传协议SR)、滑动窗口、可靠传输机制

    文章目录 0.思维导图 1.什么是流量控制? 2.什么是可靠传输机制? 3.什么是滑动窗口机制? 4.可靠传输.流量控制.滑动窗口之间的关系 5.停止-等待协议 (1)为什么要有停止-等待协议? (2 ...

  2. TCP 可靠传输机制详解

    目录 TCP协议的特点 TCP 报文段 TCP "三次握手" TCP "四次挥手" 客户端和服务器端所经历的状态 TCP 可靠传输 TCP流量控制 TCP拥塞控 ...

  3. 计算机网络之传输层:5、TCP可靠传输

    传输层:5.TCP可靠传输 TCP可靠传输: 伪首部校验: 实现可靠传输的过程: 实现可靠传输的工作原理: 实现流量控制的工作原理: TCP可靠传输: 伪首部校验: 与UDP校验一样,增加伪首部进行校 ...

  4. 计算机网络(9)-----TCP可靠传输的实现

    TCP可靠传输的实现 以字节为单位的滑动窗口 滑动窗口的滑动是以字节为单位的,发送方A和接收方B在TCP三次握手的前两次握手时协商好了发送窗口和接受窗口的大小,发送方A根据B发送来的确认连接报文中标明 ...

  5. 网络协议:TCP可靠传输

    我们都知道TCP协议是一个传输可靠的协议,那么它是怎么实现传输可靠的呢? 它是由改进的停止等待协议和滑动窗口来保证传输可靠的. 一 停止等待协议 #1 发送端发送一个消息到接收端,就必须等待接收端确认 ...

  6. 5.3.3 TCP可靠传输

    5.3.3 TCP可靠传输

  7. 【计算机网络】传输层 : TCP 可靠传输 ( 可靠传输机制 | 快速重传机制 )

    文章目录 一.TCP 可靠传输 二.TCP 可靠传输机制 三.TCP 快速重传 机制 一.TCP 可靠传输 可靠性 : 保证 接收方进程 从 TCP 缓冲区 中读取的数据 与 发送方进程 发送的数据 ...

  8. 5.3.1计算机网络传输层之TCP可靠传输

    文章目录 0.前言 1.TCP可靠传输简介 2.序号 3.确认 4.重传 0.前言 再看此篇文章之前,得熟悉一下TCP首部报文等知识 计算机网络传输层之TCP协议(tcp协议特点.tcp报文段首部格式 ...

  9. TCP可靠传输:ARQ协议(停止等待、超时重传、滑动窗口、回退N帧、选择重传)

    ARQ(Automatic Repeat-reQuest,自动重传请求) 一. ARQ简介 二. 停止等待ARQ (1)正常传输 (2)传输出现差错 1. 超时重传 2. 编号 (3)信道利用率 三. ...

最新文章

  1. C#中Timer组件用法
  2. mysql删除本机用户_mysql 不小心把root用户删除了,重建本地用户及远程用户
  3. c语言的内存管理方式,c语言内存管理
  4. 第二章:二分和前缀和 【完结】
  5. 华为鸿蒙内置,内置鸿蒙系统,华为生态产品海雀智能摄像头Pro体验
  6. appengine_在Google的AppEngine上升级到Java 7
  7. 如何确保您的Progressive Web App保持其Lighthouse审核分数
  8. NeurIPS 2020 所有RL papers全扫荡
  9. 网曝Facebook中国员工跳楼身亡,总部态度冷漠,华人群体抗议:为死者讨回公道...
  10. ARM栈帧与编译选项
  11. edxposed显示未安装_为什么LED显示屏经常跳闸
  12. sql 取两个表_图撕SQL表联结
  13. python3 html生成pdf,Python3转换html到pdf的不同解决方案
  14. 用于创建此对象的程序是excel_一起学Excel专业开发22:使用类模块创建对象1
  15. 微信小程序发送模板消息详细教程
  16. android壁纸背景,android – 选择动态壁纸的背景
  17. 邮件:TO, CC, BCC(收件人、抄送、密送)
  18. 计算机网络_实验16_网络故障导致环路
  19. GANSS ALT71D键盘使用说明
  20. redis 空格问题

热门文章

  1. 基于STM32分析栈、堆、全局区、常量区、代码区、RAM、ROM
  2. 数字电路技术基础(四)
  3. CTFshow 信息收集 web17
  4. 【分组背包问题 (HDU 3535 )】
  5. [YTU]_2800( 逗逗泡泡的保密电文)
  6. 1.7 matlab矩阵元素的引用(可通过下标和序号引用)
  7. cross--向量或矩阵的叉乘
  8. Cuda中Global memory中coalescing例程解释
  9. 申请服务器就是申请虚拟主机吗,申请一个虚拟主机和云主机哪个更好呢?
  10. 第二十一讲 特征值和特征向量