IEEE802参考模型将数据链路层划分为两个子层,媒体访问控制MAC 子层和逻辑链路控制 LLC 子层。 MAC 子层与物理层相关联,而LLC子层则完全独立出来,为高层提供服务, 这样就实现了物理层和数据链路层的完全独立,解决了l SO制定的计算机网络 7 层参 考模型(即OSI模型)中局域网物理层和数据链路层不能完全独立的问题。
1.HDLC:( 面向比特)
(1)HDLC 采用零比特填充法使一帧中两个 F 字段之间不会出现 6 个连续1
(2)在发送端,当一串比特流数据中有 5 个连续 1 时,就立即填入一个0
(3)在接收帧时,先找到 F字段以确定帧的边界。接着再对比特流进行扫描,每当发现 5 个连续 1时,就将其后的一个 0 删除,以还原成原来的比特流.(特别强调:在封装帧时,是先封装数据,再放标志位,我之所以说这些是为了解决容易迷惑的一个问题“在封装帧时,如果遇到6个连1我怎么才能知道哪个是标志位哪个是数据呢”,有了这个先后顺序,就很容易理解了。)
2.PPP:(面向字符)
(1)当 PPP用在同步传输链路时,协议规定采用硬件来完成比特填充(和 HDLC的做法一样,注意:虽然是面向字符的但是在同步传输的时候也支持比特填充,有些网上的资料是说不能那是错的)。
(2)当 PPP 用在异步传输时,就使用一种特殊的字符填充法。
什么是字符填充法
(1)将信息字段中出现的每一个0x7E 字节转变成为 2 字节序列(0x7D, 0x5E)。
(2)若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2字节序列(0x7D, 0x5D)。
(3)若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20的字符),则在该字符前面要加入一个 0x7D字节,同时将该字符的编码加以改变。
(1)当协议字段为 0x0021 时,PPP帧的信息字段就是IP 数据
(2)若为 0xC021, 则信息字段是 PPP 链路控制数据。
(3)若为 0x8021,则表示这是网络控制数据.
(4)0xC023——信息字段是安全性认证PAP
(5)0xC025——信息字段是LQR
(6)0xC223——信息字段是安全性认证CHAP
3. Ethernet数据帧:
字节:8
字节:7
字节:7
字节:7
注:其中DSAP和SSAP都为0xAA,控制字段为0x03,机构代码一般跟源MAC地址头3字节相同;
其实用得最多还是Ethernet II拉。
4.SDLC:
注:为适应不同环境,SDLC 具有一些派生类:
- LAPB,一种 ITU-T 协议,适用于 ISDN 网络;
- LAPF,一种 ITU-T 协议,适用于帧中继(Frame Relay)网络;
- IEEE 802.2,通常指 LLC,具有三种类型,适用于局域网(Local AreaNetwork);
- QLLC,适用于在 X.25 网络上传输SNA 数据。