数据链路层
Posted yusiming
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据链路层相关的知识,希望对你有一定的参考价值。
数据链路层使用的信道类型
数据链路层属于计算机网络的底层,数据链路层使用的信道类型主要有以下两种:
? 点对点信道的数据链路层,这种信道使用一对一的点对点的通信方式,用户与ISP之间的通信就是如此
? 广播信道:这种方式使用一对多的广播通信方式,使用专用的信道共享协议
数据链路层研究的问题
局域网虽然是一个网络,但是局域网中的主要的问题是如何将分组从一个主机转发到另一个主机,不经过路由器,属于数据链路层的范围。
主要是点对点协议PPP,和广播CSMA/CD协议
数据链路层和网络层的关系
数据链路处于网络层的下一层,因此网络层也要使用数据链层提供的服务,数据链路层将网络层交下来的数据,加上帧头帧尾,封装成一个帧,然后再将帧交给物理层进行传输,如同数据链路层和物理层之间的关系一样,网络层和数据链路层之间具有同样的关系,数据链路层的任务是屏蔽掉不同的通信信道的区别,使网络层感受不到这些区别,网络层不知道数据链路使用的是点对点信道还是广播信道,网络层只知道,把数据交给数据链层,数据链层就能帮它把分组传送出去,当然数据链层也读不懂网路层的数据的内容,只知道是0还是1,而这些0和1代表什么含义它不知道,什么源IP地址,目的IP地址啊,数据链路层都看不懂,它只是将网络层交下来的分组,当成帧的数据部分,然后传送出去。
数据链路层和网络层之间的耦合度也是很低的,可见网络分层的思想是非常有利用计算机网络的发展。
数据链路和帧
链路和数据链路的异同:
链路:链路是指从一个结点到相邻节结点的一段物理线路,可以是有线或者无线。
数据链路:把现实通信协议的软硬件加到链路上,就构成了数据链路。
可以使用网络适配器(包括硬件和软件)来实现这些协议,一般的适配器包括了数据链路层和物理的功能。
数据链路层的协议数据单元-----帧
数据链路层把网络层交下来的数据构成帧发送到链路上,以及把收到的帧中的数据取出并上交给网络层,网络层使用的协议数据单元是IP数据报(数据报、分组或者包)
点对点信道的数据链路层在通信时的主要步骤:
? 结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧
? 结点A的数据链路层通过物理层把帧发送给结点B的数据链路层
? 结点B的数据链路层收到这个帧之后进行差错检验,若无差错,则提取帧中的IP数据报上交给网络层,如有差错,丢弃该帧。
数据链路层需要解决的三个问题
数据链路层的协议有许多种,但是有三个问题是共同的:
? 封装成帧
? 透明传输
? 差错检测
封装成帧
数据链路层把网络层交下来的IP数据报,添加首部和尾部之后,构成一个帧,接收端能根据帧头和帧尾识别出一个帧的开始和结束,首部和尾部起到了帧定界的作用。每一种数据链路层协议都规定了所能传送的帧的数据部分的最大长度MTU。
透明传输
透明传输是指无论什么样的比特组合的数据都能通过数据链路层,如:发送前在“SOH”和“EOT”等帧定界符之前插入一个转义字符“ESC”,称为字节填充,接收端在接收时,删除“ESC”。
差错检测
数据链路层广泛使用了CRC循环冗余检验技术,使用CRC技术产生帧检验序列FCS,在发送之前加上FCS。CRC是一种检错方法,FCS时添加在数据之后的冗余码,在检错方法上,可以使用CRC,也可以使用其他技术。
过程:
? 使用CRC运算得到FCS序列
? 添加序列到数据部分之后
? 接收方以帧为单位进行CRC检验
? 有差错丢弃,无差错接收
可靠传输:可靠传输是指发送端发送什么接收端就接收什么,但是数据链路层只能对帧进行无比特差错接收:即有差错则丢弃,无差则错接收。
传输差错可以分为:
? 比特差错
? 帧丢失、重复、失序
数据链路层能实现无比特差错的传输
OSI的观点是:数据链路层向上提供可靠的传输服务,除了CRC检验技术之外,还需增加帧编号、确认和重传机制。但是现在的通信质量提高,数据链路层出现差错的概率较小,现在的因特网采用区别对待的方式:
? 通信质量较好的有线传输链路,数据链路层不提供可靠的传输服务,网络层提供
? 通信质量较差的无线线传输链路,数据链路层提供可靠的传输服务,
这样做的目的是提高通信效率
以上是关于数据链路层的主要内容,如果未能解决你的问题,请参考以下文章