一、二者区别:
数据链路层通过物理层提供的比特流服务,在相邻节点之间建立链路,传送以帧(Frame)为单位的数据信息,并且对传输中可能出现的差错进行检错和纠错,向网络层提供无差错的透明传输。数据链路层涉及到的具体内容成帧、物理地址寻址、流量控制、差错控制、接入控制;
网络层的作用是实现分别位于不同网络的源节点与目的节点之间的数据包传输,网络层要负责确定在网络中采用何种技术,从源节点出发选择一条通路通过中间的节点将数据包最终送达目的节点。网络层涉及的概念有逻辑地址寻址、路由功能、流量控制、拥塞控制.
二、网络层的概念:
网络层是OSI参考模型中的第三层,介于传输层和数据链路层之间,它在数据链路层提供的两个相邻端点之间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向运输层提供最基本的端到端的数据传送服务。主要内容有:虚电路分组交换和数据报分组交换、路由选择算法、阻塞控制方法、X.25协议、综合业务数据网(ISDN)、异步传输模式(ATM)及网际互连原理与实现。
1.条件
要传送如下数据:数据a:1000,数据b:1100,数据c:1110
传送情况:发送端S发送:1000 1100 1110,接受端R接收:1010 [未收到] 1110
2.数据链路层的“差错控制”
此时数据链路层的反应是这样的:
(1) 对于发送端S发送的“数据a 1000 ”,接受端R接收到的却是“1010”,显然,左数第三位的0由于某种原因变为1了,晕,太可怕了吧,好在数据链路层的差错控制可以发现这个(具体参看数据链路层),所以我们得知接受的数据a是错误的,扔掉即可(猜测)。
(2) 对于发送端S发送的“数据b 1100”,接受端R未收到任何数据,数据链路层的“差错控制”在此也无能为力了。
(3) 对于发送端S发送的“数据c 1110”,接受端R接收到“1110”,经数据链路层的“差错控制”方法-CRC检验,发现无误,正常接受。
由此可见, 仅用循环冗余检验 CRC 差错检测技术只能做到无差错接受(accept。即“凡是接收端数据链路层接受的帧都是正确的”。
3.运输层的“差错控制”
先啰嗦一句,数据链路层之上是网络层,在之上是运输层。所以,传送的数据是想经过数据链路层处理后在给运输层的,即运输层收到的信号绝不存在”0变为1,1变为0的情况“(这正是数据链路层的差错控制所做的)。现在,在让我们看看运输层的反应吧。
(1) 对于发送端S发送的“数据a 1000”,由于数据链路层发现该数据有误,所以就把它仍丢了。这对运输层而言,就是未收到,所以要求发送端S重传……。
(2) 对于发送端S发送的“数据b 1100 ”,运输层仍未收到,所以要求发送端S重传……。
(3) 对于发送端S发送的“数据c 1110”,经数据链路层处理后交与运输层,运输层先发送端S返回确认帧,表示已经收到。
4.总结
对于数据链路层而言,只保证接受到的数据没问题,至于中间丢失的数据压根不管。而运输层则对中途丢失的数据也做管理,它会通知发送端说:“数据b怎么没有发?再发一遍“。
.网络层的差错控制方式和数据链路层的差错控制的主要区别在于:使用的位置不同、分组编号的方式不同、传输顺序不同、时延不同。
数据链路层有帧校验,网络层也有校验吧?忘 了。
看有关网络七层协议的原理知识。