当传输层提供错误控制时,数据链路层的错误控制需要什么?两种错误控制之间有什么区别?数据链路层和传输层
回答
传输层数据可以分解为许多数据链路层帧/数据包。
因此,即使没有任何数据链路错误,传输层流/数据包可能会损坏。 编辑:这是因为传输层路径通常由许多数据链路层的啤酒花,例如:
Host1 <----> switch1 <----> switch2 <----> Host2
如果一个分组被switch1
和switch2
之间丢失然后就没有记录错误在switch2
Host2
链接上,但相应的传输层流将被破坏。
另一方面 - 一旦遇到数据链接错误,可以丢弃/重新启动传输层传输,而不浪费资源。
假设校验和是正确的,这个结果意味着数据在传输过程中被损坏。此外,损坏不是发生在传输链路上(它将被CRC捕获),而是必须发生在中间系统之一(路由器 和网桥)或发送或接收主机。
http://conferences.sigcomm.org/sigcomm/2000/conf/paper/sigcomm2000-9-1.pdf
这真的取决于协议而非层,但假设你的意思是TCP ...
TCP的错误检测是最小的,并且设计了作为比任何一种可靠的错误的完整性检查检测。您没有看到这一点的原因是,数据链路层(如以太网,PPP,FrameRelay等)具有很多更强健的错误检测算法,因此TCP协议几乎没有传输错误,检测。
如果你有一个不同的传输层协议与强大的错误检测,那么你就不会严格需要它在较低的水平。相关的益处主要是性能和资源使用,以尽可能低地丢弃错误。
注意,错误可以在蠕变上述由于冲压毛刺等传输层,因此,如果数据真的,真的重要那么你应该包括错误在你的申请权检查。
这是因为数据链路层专门处理比特级纠错。它需要接收计算机已拥有的数据包,并确定传输中是否发生错误以及数据是否完整或损坏。但是,需要进行额外的控制以确保系统知道所有数据包都到达。这被称为端到端错误控制,并且是传输层的责任。传输层可以不关心负载中的数据是好还是坏。这是数据链接的工作。传输只关心它是否获取了它应该包含的每个数据包,以及是否以正确的顺序到达。传输层在数据链路层到达数据链路层之前检测数据包是否缺失或发送端发生数据包损坏。
有关详细信息,请参阅
在噪声信道,其中所述误码率是高的,如无线网络,误差校正是在数据链路层完成。
在像LAN这样的错误率很低的稳健网络中,纠错在传输层完成,因此重传成本最小化。
很少有数据链路协议可以进行任何纠错。大多数人会进行错误检测,并且会丢弃任何有错误的帧,但是他们不会纠正错误。 –
- 1. 数据链路层
- 2. 数据链路层流量控制vs传输层流量控制
- 3. 最佳数据传输层
- 4. 访问数据链路层数据包
- 5. 网络:传输层和网络层
- 6. 监控传输,网络和链路层缓存/ Linux中
- 7. 分层传输
- 8. 如何使用MVC和3层架构在图层中传输数据?
- 9. Java OSI传输层
- 10. Mapnik.NET层数据源路径
- 11. 理解链路层多播
- 12. ÇPF_PACKET链路层处理
- 13. 设备如何通过数据链路层2交换数据?
- 14. 数据输入抽象层?
- 15. 重新路由应用网络业务在数据链路层
- 16. DTLS(数据报传输层安全)与SNMP和管理系统
- 17. 内核中传输层和网络层之间的通信
- 18. 有关网络层和传输层工作的说明
- 19. 在互联网层或传输层完成校验和?
- 20. 将数据传递到数据层
- 21. Keras和输入层
- 22. 在数据层和逻辑层之间映射/转换数据
- 23. “数据服务层”和“数据访问层”有什么区别?
- 24. 使用CNTK和传输学习访问较高层的较低层输出
- 25. 数据访问层 - 实用程序类和数据传输对象
- 26. 执行链路层数据包修改的库
- 27. 在链路层丢弃选定的数据包
- 28. DotNetNuke数据层
- 29. 分层数据
- 30. 数据访问层组件参考链
你能详细说明这可能吗? 如果每个数据包都到达无错误消息,整个消息如何包含错误? – Shookie
@Shookie看看编辑的答案为可能的情况说明这 – wroniasty
谢谢!但是你给出的例子与丢失数据包有关。我以为你意味着所有的数据包都可以到达目的地,并且仍然是腐败的(通过数据链路层之后)。 – Shookie