本文简单介绍一下计算机网络中的数据链路层。主要包括数据链路层解决的三个基本问题、
以太网帧格式
1、数据链路层解决的三个基本问题
1-1、封装成帧
数据包添加帧头、帧尾、物理层MAC地址、校验值,就构成了帧
1-2、透明传输
帧的格式如下:
如图所示,每个帧会有一个开始标志和结束标志
当数据中包含帧头或者帧尾字符时,如下图所示,需要添加’ESC’(对应的十六进制编码是1B)进行转义
1-3、差错控制
循环冗余检验(CRC)
具体如图所示:需要传输的数据是101001,对数据添加3位0,除以4位的数(除数的位数是所添加0的位数+1),得到的余数作为FCS(帧检验序列)。接收到数据帧以后,对数据进行校验的过程就是,将FCS添加到数据末尾,除以1101,看余数是否为0。如果为0,接收,如果不为0,丢弃。该方法只能检测到错误,不能检测具体的错误位置
CRC只是得到FCS的一种方法
2、两种情况下的数据链路层
2-1、使用点对点通信的数据链路层
点对点通信使用PPP协议,适用于ADSL拨号上网,一般用于广域网。
2-1-1、PPP协议帧格式
- 标志字段F:一个字节0x7E,在帧的开始和结束
- 地址字段A:不起作用,置为0xFF
- 控制字段C:通常设为0x03
- 协议:标记数据包的协议类型
2-1-2、透明传输
字节填充方法
- 如果数据部分出现0x7E,需要将数据转换成2个字节(0x7D,0x5E)
- 如果信息字段中出现一个0x7D字节,需要将它转变成(0x7D,0x5D)
零比特填充方法(如果传输的信息不是整数字节,传输二进制流)
- 数据出现5个连续的1,末尾插入0
2-2、使用广播信道的数据链路层
一般适用于局域网,使用CSMA/CD协议
3、以太网帧格式
MAC地址由48位二进制组成,前24位代表厂家,后24位厂家具体的标志位
网络层添加18个字节,以太网的帧最小时64个字节,所以IP数据包最小是46个字节。在物理层传输时,需要插入8个字节。但不属于帧中的内容。