1、差错控制和流量控制
- 差错控制确保数据传输具备所需的可能性,通常指所有的数据均无差错地传送到目的地。流量控制是防止快速发送方淹没慢速接收端。
- 链路层中已经考查过这两个问题,回顾:(1)帧中携带一个检错码(比如CRC或者校检和)用于检测信息是否被正确接收(2)帧中携带的序号用于识别本帧,发送方在接收到 接收方成功接收后返回的确认之前,必须重发帧(超时后),这种机制称为自动重复请求(ARQ)(3)任何时候允许发送方发送一定数量的帧,如果接收方没有及时返回确认,则发送方必须暂停。如果只允许发送一帧,则协议称为等停式协议。较大的窗口可使得发送管道化,因而提高距离长且速度快的链路性能(4)滑动窗口协议结合了这些功能,还能被用于支持数据的双向传送。
- 传输层使用这些机制其实有较大差异,它们在功能和程度上都有很大差异。首先是功能上的差异考虑错误检测:链路层的校验和保护一个穿过单条链路的帧。传输层的校检和保护整个跨越整个网络路径的段,这是一个端到端的校检机制,与每条链路上的校检和不同。Saltzer描述了一种场景,数据包在一个路由器内部被损坏的情形,链路层校检和只保护在一条链路上经过的数据包,而没有考虑到它们在路由器内部出错的情况。因此即使根据每条链路的校检和检查都正确,数据包仍然有可能出错。因此执行端到端的传输层校检对传输的正确性至关重要,而链路层的校检和用来提高性能(如果没有链路层的校检,损坏的数据包就必须沿着整条路径重传,这没有必要)。
- 考虑重传和滑动窗口协议可以发现传输层和数据链路层在程度上的差异。对于大多数无线链路,卫星链