重传数据留给上层协议或应用程序,而不是所有数据都这样做。这让应用程序决定它是否真的需要所有数据。原因有很多:
- 曾几何时,回到网络协议开发时,
物理层通常远不如今天那么可靠,而且
重传可能已经使用了链接的所有资源。
- 第2层协议主要由IEEE开发,独立于
任何其他组织,但上层协议大多是
由IETF开发的两个完全独立的标准机构。即使是IETF标准也会将可靠性留给更高层。例如,UDP是一种不可靠的传输协议,是在TCP之前开发的,TCP是一种可靠的传输协议。人们认为应用程序可以处理可靠性,但后来作为标准添加了可靠的传输协议。
- 大多数情况下,如果更快地丢弃乱码数据会更好
路径,让可靠的协议或应用程序错过它们
请尽早提出任何遗漏数据。
- 并非所有应用程序都需要重新传输丢弃的数据,并且
一些应用,例如实时应用程序,可能会因重传而受损,
这将导致乱序数据传递。想象一下,如果你在
电话呼叫(VoIP),数据后收到丢弃的数据
已经交付。这会打扰你的电话。不可靠的协议
比可靠的协议更快地提供数据,这可能是
申请的最重要因素。为什么强制重传数据
应用程序的无序数据交付?如果申请
需要该服务,它可以使用传输协议
提供它,或者它可以自己处理它。
数据链路层中的错误被认为是损坏的帧并且被简单地丢弃,而不是浪费处理能力和带宽以进行可能不必要的重传。