2008年12月23日星期二

数据链路层与传输层在保证数据完整性方面的区别

这里指的是OSI模型来讲:

数据链路层
(更加详细的参看:http://www.ee.zsu.edu.cn/network/newpage37.htm)
在发送方,数据链路层负责将指令、数据等包装到帧中,帧是数据链路层生成的结构,它包含足够的信息,确保数据可以安全地通过本地局域网到达目的地。
成功发送意味着数据帧要完整无缺地到达目的地。也就是说,帧中必须包含一种机制用于保证在传送过程中内容的完整性。
为确保数据传送完整安全到达,必须要做到两点:
1、在每个帧完整无缺地被目标节点收到时,源节点必须收到一个响应。
2、在目标节点发出收到帧的响应之前,必须验证帧内容的完整性。
有很多情况可以导致帧的发送不能到达目标或者在传输过程中被破坏或不能使用。数据链路层有责任检测并修正所有这些错误。
数据链路层的另一个职责是重新组织从物理层收到的数据比特流。不过,如果帧的结构和内容都被发出,数据链路层并不重建一个帧。相反,数据链路层会缓存到达的比特流直到这些比特流构成一个完整的帧。

传输层
传输层提供类似数据链路层所提供的服务,传输层的职责也是保证数据在端端之间完整传输,不过与数据链路层不同,传输层的功能是在本地LAN网段之上提供这种功能,它可以检测到路由器丢弃的包,然后自动产生一个重新传送请求。
传输层的另一项重要功能就是将乱序收到的数据包重新排序,数据包乱序有很多原因。例如:这些包可能通过网络的路径不同,或者有些在传输过程中被破坏,不过什么情况,传输层应该可以识别出最初的包顺序,并且在将这些包的内容传递给会话层之前要将它们恢复成发送时的顺序。

注:数据链路层只是用来检测、纠正从物理层生成帧的过程中产生的错误,是用于本地LAN的点到点传输的错误纠正(detect and possibly correct errors that may occur in the Physical Layer。注:是possibly,无法保证全部纠正错误)。
传输层是用来检测从网络层开始,产生的各种错误的纠正。是用于端到端(发送端到接收端)的传输的错误纠正。

可以理解为:两者均为检测下层可能出现的错误,这个均为自动进行并要求重传。与由于上层协议要求重传 要相区别(例如:QQ传输文件失败,重新传送,不是由于OSI模型自动进行保证文件传输正确的功能)

没有评论:

发表评论