链路协议和TCP可靠交付的区别

Tim*_*Tim 3 networking tcp

有一段话我忘了很久以前抄的哪本网络书了。

一些链路层协议提供基于链路的可靠传送,即从发送节点通过一条链路到接收节点。请注意,这种可靠传送服务与 TCP 的可靠传送服务不同,后者提供从一个端系统到另一个端系统的可靠传送。

我们知道TCP是传输层协议,而不是链路层协议。

我想知道如何理解链路协议和 TCP 的可靠交付之间的区别,如粗体突出显示?谢谢!

saw*_*ust 5

节点到节点也称为hop。如果该跳本质上更不可靠,例如无线链路,则确保在一跳上的可靠性并在数据路径中留下具有未知可靠性的剩余跳将是有益的。802.11 和 802.15.4(例如 ZigBee)等无线协议可能必须添加 Ack/Nak 和重试功能,以获得与有线网络类似的最低可靠性水平。使用星型配置的现代有线 802.3 以太网通常在一跳上非常可靠,即使没有任何 Ack/Nak 开销。另一方面,无线可能非常不可靠,可靠的链路层协议可以提高(或至少不会降低)混合有线和无线网络的吞吐量。

TCP 实现其可靠性(尽管使用(不可靠的)IP 作为其底层协议)基本上是通过使用接收器的 Ack 和 Nak 响应以及发送器的超时来确定数据包是否已交付。Nak 响应或响应超时需要重新传输原始数据包。数据包还标有序列号,以检测丢失的数据包或无序到达,并对接收到的数据包进行正确排序。

链路层协议可以通过使用类似的 Ack/Nak/超时技术来提高其可靠性。尽管让多个协议层执行此操作似乎是多余的,但整体网络性能可能会受益,因为重传(必要时)将仅限于发生消息故障的链路。