当传输层提供差错控制时,数据链路层的差错控制的需求是什么?这两个错误控制之间的区别是什么?
发布于 2012-06-08 03:36:54
传输层数据可以被分解成许多数据链路层帧/分组。
因此,即使没有任何数据链路错误,传输层流/分组也可能被破坏。编辑:这是因为传输层路径通常由许多数据链路层跳组成,例如:
Host1 <----> switch1 <----> switch2 <----> Host2如果数据包在switch1和switch2之间丢失,则switch2 Host2链路上不会记录错误,但相应的传输层流将被损坏。
另一方面,一旦遇到数据链路错误,就有可能丢弃/重新启动传输层传输,而不会浪费资源。
发布于 2013-11-23 04:26:33
这是因为数据链路层专门处理比特级纠错。它接收接收计算机已经拥有的数据包,并确定传输过程中是否发生错误,以及数据是完好无损还是损坏。但是,需要进行额外的控制,以确保系统知道所有数据包都已到达。这称为端到端错误控制,由传输层负责。传输层不关心有效负载中的数据是好是坏。那是数据链的工作。传输只关心它是否得到了它应该得到的每个包,以及是否以正确的顺序到达。传输层在数据包到达数据链路层之前检测数据包的缺失或数据包在传输端发生的损坏。
有关其他详细信息,请参阅
http://books.google.ca/books?id=9c1FpB8qZ8UC&pg=PA216&lpg=PA216&dq=why+error+detection+and+correction+both+in+transport+and+link+layer+?&source=bl&ots=RI7-DU8RO0&sig=0U5Z9AmKkx3m3TA71WfIe1uTeW0&hl=en&sa=X&ei=LbqPUsahOtDEqQHyvIHQCw&ved=0CDUQ6AEwAQ#v=onepage&q=why%20error%20detection%20and%20correction%20both%20in%20transport%20and%20link%20layer%20%3F&f=false
发布于 2012-10-04 21:13:49
它实际上取决于协议而不是层,但假设您指的是TCP...
TCP的错误检测是最小的,并且更多地被设计为完整性检查,而不是任何类型的可靠错误检测。您看不到这一点的原因是实践,因为诸如以太网、PPP、FrameRelay等数据链路层具有更健壮的错误检测算法,因此实际上没有传输错误可供TCP协议检测。
如果您有一个不同的传输层协议,并且具有健壮的错误检测功能,那么在较低的级别上就不会严格需要它了。在堆栈中尽可能低地丢弃错误是有好处的,这主要与性能和资源使用有关。
请注意,由于ram故障等原因,错误可能会悄悄进入传输层,所以如果数据真的非常重要,那么您应该在应用程序中包含错误检查。
https://stackoverflow.com/questions/10938615
复制相似问题