数据链路层协议大全
物理层定义了电气和器件的规程,一般都是固化的,与咱们Hacking关系不大,所以偶觉得先从数据链路层入手比较好;这几天看了一大堆协议,头晕眼花中。。。又有什么HDLC,PPP,一会又是Ethernet II,IEEE802.3等。。。就想把它们放到一个框架下面,层次感更清楚一些;在这里总结一下:
数据链路层分为MAC和LLC,MAC是寻址用的,LLC是差错及流量控制用的,简单这么说吧,可能这么说抽象了哦。。。所以我想直观得把这一层通用的一些协议做个总结,把每种协议的帧格式列到下面,做个对比:
1.HDLC:(面向比特)
标志|地址|控制|信 息|帧检验序列|标志
比特: 8 | 8 | 8 |可 变| 16 | 8
缩写: F | A | C| Info | FCS | F
注:控制字段 C 共 8 bit,是最复杂的字段。HDLC 的许多重要功能都靠控制字段来实现
(1)HDLC 采用零比特填充法使一帧中两个 F 字段之间不会出现 6 个连续 1
(2)在发送端,当一串比特流数据中有 5 个连续 1 时,就立即填入一个 0
(3)在接收帧时,先找到 F 字段以确定帧的边界。接着再对比特流进行扫描,每当发现 5 个连续 1 时,就将其后的一个 0 删除,以还原成原来的比特流.(特别强调:在封装帧时,是先封装数据,再放标志位,我之所以说这些是为了解决容易迷惑的一个问题“在封装帧时,如果遇到6个连1我怎么才能知道哪个是标志位哪个是数据呢”,有了这个先后顺序,就很容易理解了。)
2.PPP:(面向字符)
标志|地址|控制|协议|信 息|帧检验序列|标志
比特: 8 | 8 | 8 |16 |可 变 | 16 | 8
缩写: F | A | C |协议 | Info | FCS | F
注:PPP信息字段不超过1500字节;地址字段 A 只置为 0xFF。地址字段实际上并不起什么作用;控制字段 C 通常置为 0x03;PPP 是面向字节的,所有的 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数据帧:
3.1 DIX Ethernet V2 :
前序 |目的地址|源地址|类型|数据 |FCS
字节:8 | 6 | 6 | 2 |46~1500| 4
3.2 IEEE 的 802.3 /802.2LLC
前序 |帧起始界定符|目的地址|源地址|长度|DSAP|SSAP|控制|数据 |FCS
字节:7 | 1 | 6 | 6 | 2 | 1 | 1 | 1 |43~1497| 4
3.3 Novel 802.3(Novel没等802.3出来,自己想象了一个,而且不分协议类型,统一为IPX报文,我倒)
前序 |帧起始界定符|目的地址|源地址|长度|IPX数据 |FCS
字节:7 | 1 | 6 | 6 | 2 |46~1500 | 4
3.4 IEEE为兼容Ethernet II推的802.3 /SNAP
前序 |帧起始界定符|目的地址|源地址|长度|DSAP|SSAP|控制|机构代码|类型|数据 |FCS
字节:7 | 1 | 6 | 6 | 2 | 1 | 1 | 1 | 3 | 2 |38~1492| 4
注:其中DSAP和SSAP都为0xAA,控制字段为0x03,机构代码一般跟源MAC地址头3字节相同;
其实用得最多还是Ethernet II拉。
4.SDLC:
标志 |地址 |控制 |信 息|帧检验序列|标志
比特: 8 | 8~16| 8 ~16|可 变 | 16 | 8
缩写: F | A | C | Info | FCS | F
注:为适应不同环境,SDLC 具有一些派生类:
HDLC,一种 ISO 协议,适用于 x.25 网络;
LAPB,一种 ITU-T 协议,适用于 ISDN 网络;
LAPF,一种 ITU-T 协议,适用于帧中继(Frame Relay)网络;
IEEE 802.2,通常指 LLC,具有三种类型,适用于局域网(Local Area Network);
QLLC,适用于在 X.25 网络上传输 SNA 数据。
PB:
标志 |地址 |控制 |信 息|帧检验序列|标志
比特: 8 | 8 | 8 ~16|可 变 | 16 | 8
缩写: F | A | C | Info | FCS | F
PD:(与LPAB一样适用于ISDN)
标志 |地址 |控制 |信 息|帧检验序列|标志
比特: 8 | 8 | 8 |可 变 | 16 | 8
缩写: F | A | C | Info | FCS | F
PF:(用于帧中继)
标志 |地址 |控制 |信 息|帧检验序列|标志
比特: 8 | 8 | 8 |可 变 | 16 | 8
缩写: F | A
| C | Info | FCS | F
8.帧中继:
标志 |地址 |信 息|帧检验序列|标志
比特: 8 | 16 |可 变 | 16 | 8
缩写: F | A | Info | FCS | F