数据链路层 协议 格式(转)

数据链路层协议大全
物理层定义了电气和器件的规程,一般都是固化的,与咱们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           | 2   |46~1500| 4  

  3.2    IEEE 的 802.3 /802.2LLC

       前序 |帧起始界定符|目的地址|源地址|长度|DSAP|SSAP|控制|数据       |FCS
字节:7                       | 2       |43~1497| 4  

  3.3  Novel 802.3(Novel没等802.3出来,自己想象了一个,而且不分协议类型,统一为IPX报文,我倒)

       前序 |帧起始界定符|目的地址|源地址|长度|IPX数据   |FCS
字节:7                       | 2  |46~1500 | 4  

  3.4 IEEE为兼容Ethernet II推的802.3 /SNAP

       前序 |帧起始界定符|目的地址|源地址|长度|DSAP|SSAP|控制|机构代码|类型|数据       |FCS
字节:7                       | 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 数据。
 5.LAPB:
 
          标志 |地址   |控制    |信          息|帧检验序列|标志
   比特: 8    | 8    | 8 ~16|可      变   | 16         | 8
   缩写: F    | A     | C      |  Info       | FCS        | F
 
6.LAPD:(与LPAB一样适用于ISDN)
 
         标志    |地址   |控制    |信          息|帧检验序列|标志
   比特: 8    | 8     | 8       |可      变   | 16         | 8
   缩写: F    | A     | C      |  Info       | FCS        | F 
 
7.LAPF:(用于帧中继)
 
         标志    |地址   |控制    |信          息|帧检验序列|标志
   比特: 8    | 8     | 8       |可      变   | 16         | 8
   缩写: F    | A     | C      |  Info       | FCS        | F 
 
8.帧中继:
 
         标志    |地址   |信          息|帧检验序列|标志
   比特: 8    |  16   |可      变    | 16         | 8
   缩写: F    | A     |    Info       | FCS        | F 
原文地址:https://www.cnblogs.com/zhihaowang/p/10128643.html