数据链数层
Posted dong973711
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据链数层相关的知识,希望对你有一定的参考价值。
本主要内容:
- 数据链路层的点对点信道和广播信道的特点,以及这两种信道所使用的协议(PPP协议以及CSMA/CD协议)的特点。
- 数据链路层的三个基本问题:封装成帧、透明传输、和差错检测。
- 以太网MAC层的硬件地址。
- 适配器、转发器、集线器、网桥、以太网交换机的作用及使用场合。
一、使用点对点信道的数据链路层:
1、数据链路和帧
链路是一个物理链路;数据链路是一个逻辑链路,是物理链路加上必要的通信协议。
帧,点对点信道的数据链路层的协议数据单元。
点对点信道的数据链路层在进行通信时的主要步骤如下:
- 结点A的数据链路层把网络层交下来的IP数据报添加首部和尾部封装成帧
- 结点A把封装好的帧发送给结点B的数据链路层
- 若结点B的数据链路层收到的帧无差错,则从收到的帧中取出IP数据报交给上面的网络层;否则丢弃这个数据。
数据链路层不必考虑物理层如何实现比特传输的细节(因此我们可以简单的设想为两个数据链路层之间的水平方向把帧直接发送给对方)
2、三个基本问题
1)封装成帧
封装成帧就是一段数据的前后分别添加首部和尾部,这样就构成了帧。接受端在收到物理层上交的比特流之后,就能根据首部和尾部的标记,从收到的比特流中识别识别的帧的开始和结束。首部和尾部也就是一个帧的界限。
最大传送单元MTU:数据部分长度上限
所有在互联网上传送的数据都市以分组(即IP数据报)为传送单位。
2)透明传输
不会在一个数据帧的中间出现和帧结束符一样的字符,这样不管什么数据都可放在这样的帧中传输过去,不会出现数传输错误或丢失,这样的传输就是透明传输。(也就是说是错误的找到帧边界)
为了解决透明传输:发送端的数据链路层在出现控制字符"SOH"或"EOT"的前面插入一个转义字符"ESC"(十六进制编码1B,二进制是00011011)。而在接受端的数据链路层在把数据送往网络层之前删除这个插入的转义字符。(字节填充或字符填充)
3)差错检测
比特差错、误码率BER
循环冗余检验CRC(一种检错方法)、FCS是添加在数据后面的冗余码。
循环冗余检验的原理:在发送端把数据划分为组,假定每组K个比特,现加假定传输数据M=101001(k=6)。CRC运算就是在M后面添加用于检错的n为冗余码,然后构成一个帧一起发出去,一共发送k+n位。
n位冗余码的得到方法:(二进制模2运算)。事先规定n+1位的除数P,得到商Q余数R。现假定M=101001,P=1101(n=3),用M模2运算除P得到商Q=110101,余数R=001,这个余数R就作为冗余码拼接在数据M的后面发送出去。这种为了检错而进行添加的冗余码常称为帧检验序列FCS。因此加上FCS后发送的帧是101001001(共k+n位)。
在接收端把接收到的数据以帧为单位进行CRC检验:把收到的帧都除以同样的除数P(模2运算),然后检查得到的余数R。若余数R为0,则这个帧么有出错,接受;否则就有差错,丢弃。
用模2运算进行加法时不进位,例如1111+1010=0101。减法和加法一样,按加法规则计算。
例:循环冗余码计算过程P=11001,M=10110011,n=4,k=8。
余数0100则为R,作为FCS,发送的数据应为10110011 0100
二、点对点协议PPP:
1、PPP协议的特点
简单、封装成帧、透明性、多种网络层协议(同一条物理链路上同时支持多种网络层协议)、多种类型链路、差错检测、检测连接状态、最大传送单元、网络层地址协商、数据压缩协商。
PPP协议不需要进行检错,不需要设置序号、也不需要进行流量控制;PPP协议不支持多点线路,只支持点对点的链路通信。PPP协议只支持全双工链路。
PPP协议的组成:一个将IP数据封装到串行链路的方法;一个用来建立、配置和测试数据链路的链路控制协议LCP;一套网络控制协议NCP(其中每个协议支持不同分网络层协议);
2、ppp协议的帧格式
各字段意义:
PPP帧的首部和尾部分别为四个字段和两个字段。
首部:
首部中的标志字段F(Flag),规定为0x7E(符号0x表示它后面的字符是用十六进制表示的。十六进制的7E的二进制表示是01111110),标志字段表示一个帧的开始。
首部中的地址字段A规定为0xFF(即11111111)。
首部中的控制字段C规定为0x03(即00000011)。
首部中的2字节的协议字段:
(1)当协议字段为0x0021时,PPP帧的信息字段就是IP数据报。
(2)当协议字段为0xC021时,PPP帧的信息字段就是PPP链路控制协议LCP的数据。
(3)当协议字段为0x8021时,PPP帧的信息字段就是网络层的控制数据。
信息字段长度时可变的,不超过1500字节。
尾部中的第一个字段(2字节)使用来CRC的帧检验序列FCS。
尾部中的标志字段F(Flag),规定为0x7E(符号0x表示它后面的字符是用十六进制表示的。十六进制的7E的二进制表示是01111110),标志字段表示一个帧的结束。
字节填充(PPP使用异步传输时):
当信息字段出现标志字段一样的比特(0x7E)组合时。
当PPP使用异步传输时,它把转义字符定义为0x7D,并用字节填充,填充方法如下:
- 把信息字段中的0x7E转化为2字节序列(0x7D,0x5E)
- 把信息字段中的0x7D转化为2字节序列(0x7D,0x5D)
- 当信息字段中出现ASCII码的控制字符(数值小于0x20的字符),则在该字符前面要加入一个0x7D字节,同时把该字符编码加以改变。例如:0x03就要把它转变为2字节序列(0x7D,0x23)
零比特填充(PPP使用同步传输时):
零比特填充的具体方法:
(1)在发送端先扫描整个信息字段(通常使用硬件实现,但也可以用软件实现,但是会慢一些)。
(2)只要发现有5个连续的1,则立即填入一个0。
(3)接收端在收到一个帧时,先找到标志字段F以确定帧的边界,接着再用硬件对其中的比特流进行扫描,每当发现5个连续1时,就把5个连续1后的一个0删除,以还原成原来的信息比特流。
因此通过这种零比特填充后的数据,就可以保证在信息字段中不会出现连续6个1
3、PPP协议的工作状态:
1)、PPP协议的工作流程:
- 当用户拨号接入ISP后,就建立了一条从用户PC机到ISP的物理连接。
- 这时用户PC机向ISP发送一系列的LCP分组(封装成多个PPP帧),以便建立LCP连接。
- 这些分组及其响应选择了将要使用的一些PPP参数。
- 接着还要进行网络层配置,NCP给新接入的用户PC机分配一个临时的IP地址。
- 这样,用户PC机就成为因特网上的一个有IP地址的主机了。
- 当用户通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。
- 接着,LCP释放数据链路层连接。
- 最后释放的是物理层的连接。
2)、 PPP协议的LCP连接
3)、 PPP协议的NCP连接
三、使用广播信道的数据数据链路层
1、局域网的数据链路层
2、CSMA/CD协议
3、使用集线器的星型拓扑结构
4、以太网的信道利用率
5、以太网的MAC层
四、拓展的以太网
1、在物理层拓展以太网
2、在数据链路层拓展以太网
3、虚拟局域网
五、高速以太网
以上是关于数据链数层的主要内容,如果未能解决你的问题,请参考以下文章