返回

网络协议8:【传输层】RDT可靠传输的延续:流水线(Go-Back-N与Selective Repeat)

闲谈

我们之前在网络协议系列的7中,针对传输层RDT,介绍了最基本可靠的数据传输协议和所谓的rdt。而在这一节中,我们继续深入剖析网络协议8:【传输层】RDT可靠传输的后续:流水线(Go-back-N与Selective Repeat)。

其实,本节的内容还是在“可靠传输”原理内。这部分主要是探讨单个rdt已经可靠传输后,如何提高传输效率的问题,我们采用go-back-n或者selective repeat的方法。

以下先来回顾一下上节的可靠数据传输内容:rdt的概念、滑动窗口协议、停止等待协议,以及两个发送方和接收方的实现机制等。

rdt虽然可靠,但在传输效率上还有待提高。

网络协议8可靠数据传输RDT的流水线方案,包含两个方面内容:

1. 停止等待协议效率分析

网络协议8可靠数据传输RDT的流水线方案——停止等待协议效率分析部分主要包括:

  • 不发送完一个分组,绝不发送下一个分组
  • 停止等待协议下的传输效率计算

2. 流水线方案

网络协议8可靠数据传输RDT的流水线方案——流水线方案部分主要包括:

  • 1.1 计算机科学里所说的流水线是什么
  • 1.2 数据传输里的流水线
  • 2.1 Go-Back-N协议
  • 2.2 Selective Repeat协议
  • 2.3 流水线小结

计算机科学里所说的流水线是什么
流水线是指将任务分成多个子任务,并将其分配给多个处理单元同时执行,从而提高整体处理效率的一种技术。在计算机科学中,流水线通常用于提高处理器的性能,例如,将指令分解成多个子任务,并将其分配给不同的流水线级来执行。

数据传输里的流水线
数据传输中的流水线是指将数据传输过程分成多个子任务,并将其分配给多个发送方和接收方同时执行,从而提高整体传输效率的技术。在数据传输中,流水线通常用于提高网络带宽的利用率,例如,将数据包分解成多个段,并将其分配给不同的网络链路同时传输。

Go-Back-N协议
Go-Back-N协议是一种流水线协议,它允许发送方在收到接收方的确认之前发送多个分组。当发送方收到接收方的确认时,它将继续发送下一个分组。如果发送方在一段时间内没有收到接收方的确认,它将重新发送所有未确认的分组。

Selective Repeat协议
Selective Repeat协议也是一种流水线协议,它允许发送方在收到接收方的确认之前发送多个分组。与Go-Back-N协议不同的是,Selective Repeat协议只重新发送那些没有收到确认的分组。

流水线小结
流水线协议可以提高数据传输的效率,但是它们也增加了协议的复杂性。Go-Back-N协议和Selective Repeat协议是两种最常见的流水线协议,它们各有优缺点。Go-Back-N协议实现简单,但效率较低。Selective Repeat协议实现复杂,但效率较高。

最后,网络协议8:【传输层】RDT可靠传输的后续:流水线(Go-back-N与Selective Repeat),通过它我们知道了发送完分组后别闲着,再发一个分组,因为这样速率高,会节省很多时间。另一方面,假如收方接收到分组乱序,问题不大,按序排好就可以。

而go-back-n发送方和selective repeat发送方原理基本一致,那么为什么还会再引入新的协议呢?那肯定是因为它有go-back-n协议没有的功能,那就是当发现乱序后不是像go-back-n一样回滚之前所有分组,而是只回滚丢失的分组。这种策略不仅提高了资源的利用率,而且还使得发送方在数据传输方面更加“智能”,当然这只是两种协议的比较,需要视实际情况选择合适的协议使用。