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


    数据链路层协议大全
    物理层定义了电气和器件的规程,一般都是固化的,与咱们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 
  • 相关阅读:
    java中的HMAC-SHA1加密
    java拦截处理System.exit(0)
    使用canal分析binlog(二) canal源码分析
    JS的异步世界
    socket.io的用户认证
    一个补零小函数
    使用gulp在开发过程中合理导出zip文件
    使用r.js进行前端repuirejs的合并压缩
    使用r2d3的注意事项
    三列自适应布局的实现方式(兼容IE6+)
  • 原文地址:https://www.cnblogs.com/zhihaowang/p/10128643.html
Copyright © 2020-2023  润新知