设为首页收藏本站language 语言切换
查看: 1972|回复: 1
收起左侧

[分享] 报文头格式 OSPF的五种报文,华为官网找的

[复制链接]
发表于 2017-9-26 09:42:11 | 显示全部楼层 |阅读模式


    报文头格式
    OSPF的五种报文具有相同的报文头格式,长度为24字节。如图1所示。
    图1 OSPF报文头格式
    file:///C:/Users/WHENAL~1/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png

      
       
    字段名
       
       
    长度
       
       
    含义
       
       
    Version
       
       
    8比特
       
       
    OSPF的版本号。对于OSPFv2来说,其值为2。
       
       
    Type
       
       
    8比特
       
       

         
      OSPF报文的类型。
         

             
      • 1:Hello报文。
             
      • 2:DD报文。
             
      • 3:LSR报文。
             
      • 4:LSU报文。
             
      • 5:LSAck报文。
           
         
       
       
    Packet   length
       
       
    16比特
       
       
    OSPF报文的总长度,包括报文头在内,单位为字节。
       
       
    Router   ID
       
       
    32比特
       
       
    发送该报文的路由器标识。
       
       
    Area ID
       
       
    32比特
       
       
    发送该报文的路由器所属区域。
       
       
    Checksum
       
       
    16比特
       
       
    包含除了认证字段的整个报文的校验和。
       
       
    AuType
       
       
    16比特
       
       

         
      验证类型:
         

             
      • 0:不验证。
             
      • 1:简单认证。
             
      • 2:MD5认证。
           
         
       
       
    Authentication
       
       
    64比特
       
       

         
      其数值根据验证类型而定。
         

             
      • 0:不对此字段作定义。
             
      • 1:此字段为密码信息。
             
      • 2:此字段包括Key         ID、MD5验证数据长度和序列号的信息。
           
         
       

    表1 OSPF报文头格式字段解释
    file:///C:/Users/WHENAL~1/AppData/Local/Temp/msohtmlclip1/01/clip_image002.gif
    说明:
    MD5验证数据添加在OSPF报文后面,不包含在Authenticaiton字段中。
    Hello报文
    最常用的一种报文,其作用为建立和维护邻接关系,周期性的在启用了OSPF的接口上发送。报文内容包括一些定时器的数值、DR、BDR以及自己已知的邻居。Hello报文格式如图2所示。
    图2 Hello报文格式
    file:///C:/Users/WHENAL~1/AppData/Local/Temp/msohtmlclip1/01/clip_image003.png
      
       
    字段名
       
       
    长度
       
       
    含义--
       
       
    Network   Mask
       
       
    32比特
       
       
    发送Hello报文的接口所在网络的掩码。
       
       
    HelloInterval
       
       
    16比特
       
       
    发送Hello报文的时间间隔。
       
       
    Options
       
       
    8比特
       
       

         
      可选项:
         

             
      • E:允许Flood         AS-External-LSAs
             
      • MC:转发IP组播报文
             
      • N/P:处理Type-7         LSAs
             
      • DC:处理按需链路
           
         
       
       
    Rtr Pri
       
       
    8比特
       
       
    DR优先级。默认为1。
       
    说明:
       
    如果设置为0,则路由器不能参与DR或BDR的选举。
       
       
    RouterDeadInterval
       
       
    32比特
       
       
    失效时间。如果在此时间内未收到邻居发来的Hello报文,则认为邻居失效。
       
       
    Designated   Router
       
       
    32比特
       
       
    DR的接口地址。
       
       
    Backup   Designated Router
       
       
    32比特
       
       
    BDR的接口地址。
       
       
    Neighbor
       
       
    32比特
       
       
    邻居,以Router   ID标识。
       

    表2 Hello报文格式字段解释
    在同一网段上的路由器,其HelloInterval和RouterDeadInterval必须分别一致,否则不能形成邻居关系。
    Hello报文在不同链路上的发送:

        
    • 在广播链路上,Hello报文以HelloInterval周期发送往组播地址。
        
    • 在虚连接链路上,Hello报文以单播形式每HelloInterval发送到对端。
        
    • 在P2P链路上,Hello报文每HelloInterval发送往组播地址。
        
    • 在P2MP链路上,Hello报文以单播形式每HelloInterval发送到每个单独的邻居路由器。
        
    • 在NBMA链路上,Hello报文以单播发送。其他具体规则如下:
        
    • DR、BDR、有能力成为DR的路由器会每隔HelloInterval发送Hello报文给每个邻居。
        
    • Hello报文发送的间隔取决于邻居的状态:只有当邻居的状态为Down时,发送间隔为Pollinterval。其它情况为HelloInterval。
    说明:
    缺省情况下,P2P、广播链路类型接口发送Hello报文的时间间隔的值为10秒;P2MP、NBMA类型接口发送Hello报文的时间间隔的值为30秒。NBMA网络上发送Pollinterval缺省时间间隔为120秒。
    DD报文
    两台路由器在邻接关系初始化时,用DD报文(Database Description Packet)来描述自己的LSDB,进行数据库的同步。报文内容包括LSDB中每一条LSA的Header(LSA的Header可以唯一标识一条LSA)。LSA Header只占一条LSA的整个数据量的一小部分,这样可以减少路由器之间的协议报文流量,对端路由器根据LSA Header就可以判断出是否已有这条LSA。在两台路由器交换DD报文的过程中,一台为Master,另一台为Slave。由Master规定起始序列号,每发送一个DD报文序列号加1,Slave方使用Master的序列号作为确认。
    DD报文格式如图3所示。
    图3 DD报文格式
    file:///C:/Users/WHENAL~1/AppData/Local/Temp/msohtmlclip1/01/clip_image004.png

      
       
    字段名
       
       
    长度
       
       
    含义
       
       
    Interface   MTU
       
       
    16比特
       
       
    在不分片的情况下,此接口最大可发出的IP报文长度。
       
       
    Options
       
       
    8比特
       
       

         
      可选项:
         

             
      • E:允许Flood         AS-External-LSAs。
             
      • MC:转发IP组播报文。
             
      • N/P:处理Type-7         LSAs。
             
      • DC:处理按需链路。
           
         
       
       
    I
       
       
    1比特
       
       
    当发送连续多个DD报文时,如果这是第一个DD报文,则置为1,否则置为0。
       
       
    M(More)
       
       
    1比特
       
       
    当发送连续多个DD报文时,如果这是最后一个DD报文,则置为0。否则置为1,表示后面还有其他的DD报文。
       
       
    M/S(Master/Slave)
       
       
    1比特
       
       
    当两台OSPF路由器交换DD报文时,首先需要确定双方的主从关系,Router   ID大的一方会成为Master。当值为1时表示发送方为Master。
       
       
    DD   sequence number
       
       
    32比特
       
       
    DD报文序列号。主从双方利用序列号来保证DD报文传输的可靠性和完整性。
       
       
    LSA   Headers
       
       
    -
       
       
    该DD报文中所包含的LSA的头部信息。
       

    表3 DD报文格式字段解释
    LSR报文
    两台路由器互相交换过DD报文之后,知道对端的路由器有哪些LSA是本地的LSDB所缺少的和哪些LSA是已经失效的,这时需要发送LSR报文(Link State Request Packet)向对方请求所需的LSA。内容包括所需要的LSA的摘要。LSR报文格式如图4所示。LS type、Link State ID和Advertising Router可以唯一标识出一个LSA,当两个LSA一样时,需要根据LSA中的LS sequence number、LS checksum和LS age来判断出所需要LSA的新旧。
    图4 LSR报文格式
    file:///C:/Users/WHENAL~1/AppData/Local/Temp/msohtmlclip1/01/clip_image005.png

      
       
    字段名
       
       
    长度
       
       
    含义
       
       
    LS type
       
       
    32比特
       
       
    LSA的类型号。
       
       
    Link   State ID
       
       
    32比特
       
       
    根据LSA中的LS   Type和LSA description在路由域中描述一个LSA。
       
       
    Advertising   Router
       
       
    32比特
       
       
    产生此LSA的路由器的Router   ID。
       

    表4 LSR报文格式字段解释
    LSU报文
    用来向对端路由器发送其所需要的LSA或者泛洪自己更新的LSA,内容是多条LSA(全部内容)的集合。LSU报文(Link State Update Packet)在支持组播和广播的链路上是以组播形式将LSA泛洪出去。为了实现Flooding的可靠性传输,需要LSAck报文对其进行确认。对没有收到确认报文的LSA进行重传,重传的LSA是直接发送到邻居的。LSU格式如图5所示。
    图5 LSU报文格式
    file:///C:/Users/WHENAL~1/AppData/Local/Temp/msohtmlclip1/01/clip_image006.png

      
       
    字段名
       
       
    长度
       
       
    含义
       
       
    Number   of LSAs
       
       
    32比特
       
       
    LSA的数量。
       

    表5 LSU报文格式字段解释
    LSAck报文
    用来对接收到的LSU报文进行确认。内容是需要确认的LSA的Header(一个LSAck报文可对多个LSA进行确认)。LSAck(Link State Acknowledgment Packet)报文根据不同的链路以单播或组播的形式发送,格式如图6所示。
    图6 LSAck报文格式
    file:///C:/Users/WHENAL~1/AppData/Local/Temp/msohtmlclip1/01/clip_image007.png

      
       
    字段名
       
       
    长度
       
       
    含义
       
       
    LSAs   Headers
       
       
    -
       
       
    通过LSA的头部信息确认收到该LSA。
       

    表6 LSAck报文格式字段解释




发表于 2017-9-27 11:36:31 | 显示全部楼层
好资料,值得看看。
沙发 2017-9-27 11:36:31 回复 收起回复
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

QQ|Archiver|手机版|小黑屋|sitemap|鸿鹄论坛 ( 京ICP备14027439号 )  

GMT+8, 2025-5-16 13:07 , Processed in 0.072197 second(s), 24 queries , Redis On.  

  Powered by Discuz!

  © 2001-2025 HH010.COM

快速回复 返回顶部 返回列表