一,BGP包头格式:
当TCP目的端口号为179时,说明下个包头是BGP包。下面是BGP包的包头格式。
Ø Maker(16字节)-------全为1,否者,标记的值要使用认证机制来计
算(认证机制是通过认证信息的一部分来指定的)。标记可以用来探测BGP对端的同步丢失,
认证进入的BGP消息。
Ø Length(2字节)-------BGP包全长,长度的值必须最少19字节最大4096字节。
Ø Type(1字节)--- 1 - OPEN
2 - UPDATE
3 - NOTIFICATION
4 – KEEPALIVE
二、OPEN消息格式:
Ø Version(1字节)-----当前的BGP版本号为4
Ø My Autonomous System(2字节)----发送者自制系统号
Ø Hold Time(2字节)----BGP hold time 为180秒。
Ø BGP Identifier(4)----发送者的BGP router-ID.
Ø Optional Parameters Length(可选参数长度)(1字节):如果这个域是0,说明没有可选参数。
Ø Optional Parameters(可选参数):
三、UPDATE报文格式
Ø Unfeasible Routes Length(不可用路由长度)----2字节,指示了撤销路由的字节总长度。0说明没有撤销路由, UPDATE消息内部没有撤销路由。
Ø Withdrawn Routes (撤销路由)----如果没有撤销路由则无此字段,如果有撤销路由,此字段列出所撤销的路由条目。
Ø Total Path Attribute Length(总的路径属性长度)----2字节,0代表在UPDATE消息中没有网络层可达信息域。
Ø Path Attributes(路径属性):
在每一个UPDATE消息中有可能有多个路径属性对。每一个路径属性对包括Attribute Flags 、Attribute type code 、Attribute Data Length三个字段。Attribute Flags 、Attribute type code各占位1个字节。
1.Attribute Flags的八位分别表示:
| 代表意义 | 若为0 | 若为1 |
第一高位 | 可选比特 | 公认属性 | 可选属性 |
第二高位 | 转发比特 | 非转发属性 | 转发属性 |
第三高位 | 部分比特 | 包括在可选转发属 | 包括在可选转发属 |
第四高位 | 扩展长度比特 | 属性长度为1字节 | 属性长度为2字节 |
后四位 | 没有定义 | 没有被使用,置零 |
|
2. Attribute type code:指明是什么属性。其中:
1: ORIGIN
2:AS_PATH
3:NEXT_HOP
4:MULTI_EXIT_DISC
5:LOCAL_PREF
6:ATOMIC_AGGREGATE
7: AGGREGATOR
3.如果果属性标志字节的扩展长度比特被设置为0,路径属性的第三个字节包含了属性数据的字节长度。
如果属性标志字节的扩展长度比特设置为1,那末路径属性的第三和第四个字节包含了属性数据的字节长度。
Ø Network Layer Reachability Information(网络层可达信息):
四、keepalive报文只包含BGP包头19字节
五、NOTIFICATION报文格式: