主页 > 人工智能  > 

【计算机网络笔记】传输层——可靠数据传输之流水线机制与滑动窗口协议

【计算机网络笔记】传输层——可靠数据传输之流水线机制与滑动窗口协议
系列文章目录

什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)——时延带宽积、丢包率、吞吐量/率 计算机网络体系结构概念 OSI参考模型基本概念 OSI参考模型中非端-端层(物理层、数据链路层、网络层)功能介绍 OSI参考模型中端-端层(传输层、会话层、表示层、应用层)功能介绍 TCP/IP参考模型基本概念,包括五层参考模型 网络应用的体系结构 网络应用进程通信 网络应用对传输服务的需求 Web应用之HTTP协议(涉及HTTP连接类型和HTTP消息格式) Cookie技术 Web缓存/代理服务器技术 传输层服务概述、传输层 vs. 网络层 传输层——多路复用和多路分用 传输层——UDP简介 传输层——可靠数据传输原理之Rdt协议


系列文章目录流水线机制与滑动窗口协议GBN(Go-Back-N)协议SR(Selective Repeat)协议


流水线机制与滑动窗口协议

流水线机制允许发送方在收到ACK之前连续发送多个分组。这样链路上同时就可以有很多分组,那么资源的利用率整体就提高了。实现流水线机制需要:

更大的序列号范围。原来的0和1这两个序列显然不够用了在发送方和/或接收方需要更大的存储空间以缓存分组

下面是Rdt协议与流水线机制的一个简单对比图:

在计算机网络中要想实现流水线机制就需要滑动窗口协议。

窗口是一个抽象的概念,用它管理那些发出去但还没确认的分组。所以窗口也是允许使用的序列号范围。所以如果窗口窗口尺寸为 N,意味着最多有 N个等待确认的消息。滑动窗口。是因为随着协议的运行,窗口在序列号空间内向前滑动。滑动窗口协议:GBN, SR

如下图所示,窗口尺寸是N,窗口左边(绿色的)是那些已经发出且确认的分组,窗口内黄色部分的是发出去但没确认的,如果收到最左边黄色的分组的确认消息,这个窗口就可以向右边滑了,蓝色的代表还可以使用的序列号范围。


GBN(Go-Back-N)协议

发送方:

分组头部包含k-bit序列号窗口尺寸为 N,最多允许 N个分组未确认采用累积确认的机制。也就是说要确认到序列号n(包含n)的分组均已被正确接收为空中的分组设置计时器(timer)

接收方:

ACK机制: 发送拥有最高序列号的、已被正确接收的分组的ACK对于乱序到达的分组:直接丢弃,并不会缓存这些已经收到的但不是期望的分组。
SR(Selective Repeat)协议

GBN的缺陷:在重传的时候会重传很多分组,比如当N这个序列号的分组丢失的时候,会重传N以及N以后那些没确认的分组。这样会影响性能。改进的方法是不采用累积确认的机制,而是单个确认,同时也不丢弃那些乱序的分组,而是缓存起来。这就是SR协议。

接收方对每个分组单独进行确认。并且设置缓存机制,缓存乱序到达的分组发送方只重传那些没收到ACK的分组。这时需要为每一个分组设置定时器,当某个分组超时后,就重传这个分组发送方窗口没什么变化,依旧是N个连续的序列号,限制已发送且未确认的分组

SR比GBN多了一个接收方的窗口。

窗口前面的是已经接收到的并且按序到达的分组,窗口中灰色的是希望收到但没有收到的,红色的是乱序到达的分组,对于乱序到达的分组,接收方将它们缓存起来并且发送了ACK,当这些分组前面的分组都到达的时候就可以一起提交给上层。蓝色的是还可以接收的序列号范围。

同时要注意发送方的窗口和接收方的窗口是不同步的。彼此并不知道对方的窗口处于什么状态。

下面是一个示例:

同时还要注意:当序列号有k个时,发送方窗口的尺寸和接收方窗口的尺寸和不能大于2^k。

标签:

【计算机网络笔记】传输层——可靠数据传输之流水线机制与滑动窗口协议由讯客互联人工智能栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“【计算机网络笔记】传输层——可靠数据传输之流水线机制与滑动窗口协议