特别说明一下1字节等于8比特,用十进制表示最大为255
1个字母=1个字节=8bit(8位)
1个数字=1个字节=8bit(8位)
1个汉字=2个字节=16bit(16位)
1 Byte = 8 Bits
1 KB = 1024 Bytes
1 MB = 1024 KB
1 GB = 1024 MB
Version:版本-----------------------------4比特
IHL:首部长度----------------------------4比特
Type of Service:服务类型------------8比特
Total Length:总长度-------------------16比特
Identification:标识---------------------16比特
Flags:标志位----------------------------3比特
Fragment Offset:片偏移--------------12比特
Time to Live:生存时间-----------------8比特
Protocol:协议----------------------------8比特
Header Checksum:首部检验和-----16比特
Source Address:源IP地址------------32比特
Destination Address:目的IP地址----32比特
Options:选项字段-----------------------可变
Padding:填充字段----------------------可变
40字节基本头部:
Version:版本-----------------------------4比特
Traffic class:流量类别-----------------8比特
Flow Label:流标签----------------------20比特
Payload length:有效载荷的长度----16比特
Next header:下一报头-----------------8比特
Hop limit:跳数限制----------------------8比特
Source Address:源地址---------------128比特
Destination Address:目的地址------128比特
可变长度扩展头部:
Extension Headers:扩展报头--------可变
Hardware Type:硬件类型---------------16比特
Protocol Type:协议类型-----------------16比特
Hardware Length:硬件地址长度----------8比特
Protocol Length:协议地址长度-----------8比特
Opcode:操作类型----------------------8比特
1 ARP请求
2 ARP应答
3 RARP请求
4 RARP应答
Sender Mac address :发送方物理地址------48比特
Sender IP address:发送方IP地址-----------32比特
Target Mac address:接收方物理地址--------48比特
Target IP address :接收方IP地址------------32比特
Type:消息类型----------------- 1字节
0:回显应答报文
8:请求回显报文
Code:消息代码,此处值为0-------------------1字节
Checksum:检验和-------------------------- 2字节
Identifier:标识符 发送端标示------------------2字节
Sequence Number:序列号------------------- 2字节
发送端发送的报文的顺序号。每发送一次顺序号就加1。
Data 可变 选项数据
是一个可变长的字段,其中包含要返回给发送者的数据。
回显应答通常返回与所收到的数据完全相同的数据。
Type:消息类型,此处值为3--------------------- 1字节
Code:消息代码 ------------------------------- 1字节
Checksum:检验和----------------------------- 2字节
unused:未使用,必须填0------------------------4字节
Type:消息类型,此处值为5------------------------------1字节
Code:消息代码 ----------------------------------------1字节
Checksum:检验和--------------------------------------2字节
Gateway Internet Address:原始数据包里的IP目的地址域 ----4字节
Type:消息类型,此处值为3 ------------------------------1字节
Code:消息代码 ----------------------------------------1字节
Checksum:检验和 -------------------------------------2字节
Version:版本----------------------------------1字节
Type:类型-------------------------------------1字节
Packet length:OSPF报文的总长度----------------2字节
Router ID:发送该报文的路由器标识---------------4字节
Area ID:发送该报文的所属区域-------------------4字节
Checksum:校验和------------------------------2字节
AuType:验证类型-------------------------------2字节
Authentication:鉴定字段-------------------------8字节
Network Mask:接口所在网络的掩码 ---------------32比特
HelloInterval:发送Hello报文的时间间隔 ------------16比特
Options:可选项 ---------------------------------8比特
E:允许Flood AS-External-LSAs
MC:转发IP组播报文
N/P:处理Type-7 LSAs
DC:处理按需链路
Router Pri:DR优先级 默认为1----------------------8比特
如果设置为0,则路由器不能参与DR或BDR的选举
Router DeadInterval:失效时间---------------------32比特
如果在此时间内未收到邻居发来的Hello报文,则认为邻居失效。
Designated Router:DR的接口地址------------------32比特
Backup Designated Router:BDR的接口地址---------32比特
Neighbor:邻居,以Router ID标识-------------------32比特
Interface MTU:接口MTU---------------16比特
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:DD报文序列号------------- 32比特
主从双方利用序列号来保证DD报文传输的可靠性和完整性。
LSA Headers 可变 该DD报文中所包含的LSA的头部信息。
OSPF LSR报文格式
LS type:LSA的类型号----------------------------- 32比特
Link State ID:根据LSA中的LS Type和LSA description在路由域中描述一个LSA-- 32比特
Advertising Router:产生此LSA的路由器的Router ID----- 32比特
Number of LSAs:LSA的数量----------------------------- 32比特
LSAs Headers:通过LSA的头部信息确认收到该LSA------- 可变
Marker:检查BGP对等体的同步信息是否完整----------------16字节
Length:报文总长度---------------------------------------2个字节
Type:BGP消息的类型------------------------------------1个字节
1 OPEN
2 UPDATE
3 NOTIFICATION
4 KEEPALIVE
5 REFRESH(RFC2918)
Version:版本号,现在BGP的版本号为4-----------------------1个字节
My AS:发送者自己的AS域号---------------------------------2个字节
Hold Time:发送者自己设定的hold time值,默认为180-----------2个字节
BGP Identifier:发送者的router id-----------------------------4个字节
Optional Parameters Length: 可选参数的长度------------------1个字节
Optional Parameters:
Parameter Type: 可选参数类型
Parameter Length: 可选参数长度
Withdrawn Routes Length:其值为零时,表示没有撤销的路由---------2个字节
Withdrawn Routes:包含要撤销的路由列表--------------------------变长
Total Path Attribute Length:总共路由属性长度---------------------2个字节
Path Attributes:包含要更新的路由属性列表------------------------变长
Network Layer Reachability Information(NLRI):要更新的地址前缀列表----变长
属性类型 |
属性值 |
1:Origin |
IGP |
EGP |
|
Incomplete |
|
2:As_Path |
AS_SET |
AS_SEQUENCE |
|
AS_CONFED_SET |
|
AS_CONFED_SEQUENCE |
|
3:Next_Hop |
下一跳的IP地址 |
4:Multi_Exit_Disc |
MED用于判断流量进入AS时的最佳路由 |
5:Local_Pref |
Local_Pref用于判断流量离开AS时的最佳路由 |
6:Atomic_Aggregate |
BGP Speaker选择聚合后的路由,而非具体的路由 |
7:Aggregator |
发起聚合的路由器ID和AS号 |
8:Community |
团体属性 |
9:Originator_ID |
反射路由发起者的Router ID |
10:Cluster_List |
反射路由经过的反射器列表 |
14:MP_REACH_NLRI |
多协议可达NLRI |
15:MP_UNREACH_NLRI |
多协议不可达NLRI |
16:Extended Communtities |
扩展团体属性 |
Major error Code:定义错误的类型,非特定的错误类型用零表示--------1个字节
Minor error Code:指定错误细节编号,非特定的错误细节编号用零表示--1个字节
Data:指定错误数据内容------------------------------------------可变
KEEPALIVE报文只有BGP报文头,没有具体内容,故其报文长度应固定为19个字节。
Address Family Identifier:表示地址族id,与UPDATE报文中的定义相同-------2字节
Reserved:所有为应全为零,在接收报文时,此位被忽略 ---------------------1字节
Subsequent Address Family Identifier :与UPDATE报文中的定义相同 --------1字节
Command:标识报文的类型---------------------------------- 8比特
1:Request报文,向邻居请求全部或部分路由信息;
2:Reponse报文,发送自己全部或部分路由信息,一个Response报文中最多包含25个路由表项。
Version:RIP的版本号---------------------------------------- 8比特
1:RIP-1
2:RIP-2
Must be zero:必须为零字段----------------------------------- 16比特
Address Family Identifier1:地址族标识--------------------------6比特
其值为2时表示IP协议。对于Request报文,此字段值为0。
Route Tag:外部路由标记-------------------------------------- 16比特
IP Address:该路由的目的IP地址-------------------------------- 32比特
Subnet Mask:目的地址的掩码----------------------------------32比特
Next Hop:下一跳地址----------------------------------------- 32比特
如果为0.0.0.0,则表示发布此路由的路由器地址就是最优下一跳地址。
Metric:路由的开销值。对于Request报文,此字段为16---------------32比特
Intradomain Routing Protocol Discriminator:域内路由选择协议鉴别符,设置为0x83
Length Indicator:PDU头部的长度(包括通用头部和专用头部)------------------
Version/Protocol ID Extension:版本/协议标识扩展,设置为1(0x01--------------
ID Length:NSAP地址或NET中System ID区域的长度--------------------------
值为0时,表示System ID区域的长度为6字节。值为255时,表示System ID区域为空(即长度为0)
Reserved:保留,设置为0---------------------------------------------------
PDU Type:PDU的类型。IS-IS PDU共有9种类型,详细信息请参考下表-----------
Version:设置为1----------------------------------------------------------
Maximum Area Address:支持的最大区域个数--------------------------------
设置为1~254的整数,表示该IS-IS进程实际所允许的最大区域地址数;设置为0,表示该IS-IS进程最大只支持3个区域地址数。
PDU类型对应关系表
类型值 |
PDU类型 |
简称 |
15 |
Level-1 LAN IS-IS Hello PDU |
L1 LAN IIH |
16 |
Level-2 LAN IS-IS Hello PDU |
L2 LAN IIH |
17 |
Point-to-Point IS-IS Hello PDU |
P2P IIH |
18 |
Level-1 Link State PDU |
L1 LSP |
20 |
Level-2 Link State PDU |
L2 LSP |
24 |
Level-1 Complete Sequence Numbers PDU |
L1 CSNP |
25 |
Level-2 Complete Sequence Numbers PDU |
L2 CSNP |
26 |
Level-1 Partial Sequence Numbers PDU |
L1 PSNP |
27 |
Level-2 Partial Sequence Numbers PDU |
L2 PSNP |
Reserved/Circuit Type:高位的6比特保留,值为0。低位的2比特表示路由器的类型(01表示L1,10表示L2,11表示L1/L2)
Source ID:发出Hello报文的路由器的System ID-------------------------------
Holding Time:保持时间----------------------------------------------------
在此时间内如果没有收到邻居发来的Hello报文,则中止已建立的邻居关系
PDU Length:PDU的总长度------------------------------------------------
Priority:选举DIS的优先级,取值范围为0~127。数值越大,优先级越高------------
LAN ID:包括DIS的System ID和一字节的伪节点ID-----------------------------
P2P IIH中的多数字段与LAN IIH相同。不同的是没有Priority和LAN ID字段,而多了一个Local Circuit ID字段,表示本地链路ID。
PDU Length:PDU的总长度------------------------------------------------
Remaining Lifetime:LSP的生存时间,以秒为单位-----------------------------
LSP ID:由三部分组成,System ID、伪节点ID(一字节)和LSP分片后的编号(一字节)
Sequency Number:LSP的序列号。------------------------------------------
Checksum:LSP的校验和---------------------------------------------------
Partition Repair:仅与L2 LSP有关,表示路由器是否支持自动修复区域分割---------
ATT(Attachment):由Level-1-2路由器产生,用来指明始发路由器是否与其它区域相连。虽然此标志位也存在于Level-1和Level-2的LSP中,但实际上此字段只和Level-1-2路由器始发的L1 LSP有关------------------------------------------------4比特
第4位:差错度量;
第5位:代价度量;
第6位:时延度量;
第7位:缺省度量。
LSDB Overload:过载标志位------------------------------------------------
设置了过载标志位的LSP虽然还会在网络中扩散,但是在计算通过超载路由器的路由时不会被采用。即,对路由器设置过载位后,其它路由器在进行SPF计算时不会考虑这台路由器。当路由器内存不足时,系统自动在发送的LSP报文中设置过载标志位
IS Type:生成LSP的路由器的类型--------------------------------------------
用来指明是Level-1还是Level-2路由器(01表示Level-1,11表示Level-2)
CSNP消息格式
Source ID:发出SNP报文的路由器的System ID--------------------------------
Start LSP ID:CSNP报文中第一个LSP的ID值----------------------------------
End LSP ID:CSNP报文中最后一个LSP的ID值---------------------------------
PSNP格式
PSNP只列举最近收到的一个或多个LSP的序号,它能够一次对多个LSP进行确认,当发现LSDB不同步时,也用PSNP来请求邻居发送新的LSP。
Message type: Boot Request (1) #报文的操作类型, 这是一个请求包, 所以该选项的值为1
Hardware type: Ethernet (0x01) #硬件类型为Ethernet
Hardware address length: 6 #硬件地址长度为6
Hops: 0 #经过DHCP中继数为0
Transaction ID: 0x597c6b82 #事务ID
Seconds elapsed: 0 #客户端启动时间
Bootp flags: 0x0000 (Unicast) #BOOTP标识字段
Client IP address: 0.0.0.0 #客户端IP地址
Your (client) IP address: 0.0.0.0 #服务器分配给自己的IP地址
Next server IP address: 0.0.0.0 #下一个服务器的IP地址
Relay agent IP address: 0.0.0.0 #DHCP中继器的IP地址
Client MAC address: Vmware_db:3f:0a (00:0c:29:db:3f:0a) #客户端的MAC地址
Client hardware address padding: 00000000000000000000 #客户端硬件地址填充
Server host name not given #服务器主机名
Boot file name not given #启动文件名
Magic cookie: DHCP #与BOOTP兼容
Option id |
长度(字节) |
描述 |
1 |
4 |
Subnet Mask |
3 |
n*4 |
Router(网关) |
6 |
n*4 |
DNS Server |
7 |
n*4 |
Log Server |
26 |
2 |
Interface MTU |
33 |
n*8 |
Static route |
35 |
4 |
ARP cache timeout |
42 |
n*4 |
NTP servers |
51 |
4 |
IP address lease time |
53 |
1 |
Message type: 1-DHCPDISCOVER 2-DHCPOFFER 3-DHCPREQUEST 4-DHCPDECLINE 5-DHCPACK 6-DHCPNAK 7-DHCPRELEASE 8-DHCPINFORM |
54 |
4 |
DHCP Server Identifier |
60 |
n |
华为自定义:可配置该终端设备在发起DHCP请求时,通过Option 60携带域信息。收到DHCP报文时,可根据Option 60中携带的域信息来分配IP地址。 |
82 |
n |
华为自定义:作为DHCP Relay,在中继用户DHCP报文时,可在Option 82中填写用户的物理位置信息,通知DHCP服务器按物理位置信息对为用户分配IP地址。 |
Flag:Flag域标识了一个物理帧的起始和结束,该字节为0x7E----------------1字节
Address:数据链路层地址----------------------------------------------1字节
PPP协议室被运用在点对点的链路上,它可唯一标识对方,因此无须知道对方数据链路层地址。所以该字节无任何意义,按协议规定填充为全1广播地址
Control:没实际意义,规定值为0x03-------------------------------------1字节
同Address域一样,PPP数据帧的Control域也没实际意义,规定值为0x03,该域与Address域一起标识了PPP报文,即PPP报文头为FF03。
Protocol:表示承载的协议----------------------------------------1字节或2字节
Information:信息域最大长度是1500字节-----------------------------0-1500字节
Code:报文类型-------------------------------------------------------1字节
Identifier:标识域的值表示进行协商报文的匹配关系-------------------------1字节
Length:此协商报文长度------------------------------------------------2字节
Data :协商报文的内容--------------------------------------------------变长
|
常见Code值如下: 0x01: Configure-Request 0x02: Configure-Ack 0x03: Configure-Nak 0x04: Configure-Reject 0x05: Terminate-Request 0x06: Terminate-Ack 0x07: Code-Reject 0x08: Protocol-Reject 0x09: Echo-Request 0x0a: Echo-Replyt 0x0b: Discard-Request 0x0c: Reserved |
Version:PPPoE版本,必须设置为0x01--------------------------------- 4字节
Type:PPPoE类型,必须设置为0x01------------------------------------4字节
Code:其定义在后面的Discovery和PPPoE会话中分别指定-----------------1字节
Session ID:是一个网络字节序的无符号值-------------------------------- 2字节
其值在后面Discovery数据包中定义。对一个给定的PPPoE会话来说该值是一个固定值,并且与以太网Source_address和Destination_address一起实际地定义了一个PPPoE会话。值0xFFFF为将来的使用保留,不允许使用。
Length:该值是PPPoE的Payload长度----------------------------------- 2字节
它不包括以太网头部和PPPoE头部的长度。
Payload Data:PPPoE的Payload,包含0个或多个Tag----------------------可变
一个Tag是一个TLV(Type-Length-Value)结构。
Tag_type:网络字节序------------------------------------------------- 2字节
下表列出了各种Tag_Type和Tag_Value的对应关系和含义。
Tag_Length:是一个网络字节序的无符号值,表明Tag_Value的字节数-------- 2字节
如果收到的Discovery数据包中包含未知的Tag_Type,则必须忽略掉该Tag。
Tag_value:Tag的数据字段---------------------------------------------- 可变
Tag_Value |
Tag_Type |
含义 |
0x0000 |
End-Of-List |
该Tag值表明是最后一个Tag。该Tag的Tag_Length必须总是0。 不要求使用该标签,它是为了向后兼容。 |
0x0101 |
Service-Name |
该Tag表明后面紧跟的是服务的名称。 Tag_Value是不以NULL结束的字符串。 当Tag_Length为0时,该TAG用于表明接受任何服务。 使用Service-Name标签的例子是表明Internet服务提供商ISP或者一类服务或者服务的质量。 |
0x0102 |
AC-Name |
该Tag表明后面紧跟的字符串唯一地表示了某个特定的接入服务器。 它可以是商标、型号以及序列号等信息的集合,或者该接入服务器MAC地址的一个简单表示。它不以NULL来结束。 |
0x0103 |
Host-Uniq |
该Tag由主机用于把接入服务器的响应报文(PADO或者PADS)与主机的某个唯一特定的请求联系起来。Tag_Value是主机选择的长度和值,可以是任意的二进制数据。它不能由接入服务器解释。 主机可以在PADI或者PADR中包含一个Host-Uniq标签。如果接入服务器收到了该标签,它必须在对应的PADO或者PADS中不加改变的包含该标签。 |
0x0104 |
AC-Cookie |
该Tag由接入服务器用于防止服务攻击。接入服务器可以在PADO数据包中包含该Tag。如果主机收到了该标签,它必须在接下来的PADR中不加改变的包含该标签。 Tag_Value的长度和值都是任意的二进制数据。 |
0x0105 |
Vendor-Specific |
该Tag用来传送厂商自定义的信息。Tag_Value的前4个字节包含了厂商的识别码,其余字节尚未定义。 厂商识别码的高字节为0,低3个字节为网络字节序的厂商的SMI网络管理专用企业码。 不推荐使用该Tag。为了确保互操作性,在实现过程中,可以忽略Vendor-Specific Tag。 |
0x0110 |
Relay-Session-Id |
该Tag可由中继流量的中间代理加入到Discovery数据包中。 Tag_Value对主机和接入服务器都是不透明。如果主机或接入服务器收到该Tag,则它们必须在所有的Discovery数据包中包含该Tag以作为响应。 所有的PADI数据包必须保证足够空间来加入Tag_Value长度为12字节的Relay-Session-Id标签。 如果Discovery数据包中已经包含一个Relay-Session-Id标签,则不允许再加入该标签。这种情况下,中间代理应该使用该Relay-Session-Id标签。 如果它不能使用现有的标签,或者没有足够空间来增加一个Relay-Session-Id标签,那么它应该向发送者返回一个Generic-Error标签。 |
0x0201 |
Service-Name-Error |
该Tag典型的有一个长度为零的数据部分。 它表明了由于某种原因,没有理睬所请求的Service-Name。如果有数据部分,并且数据部分的头一个字节非0,那么它必须是一个可打印字符串,解释请求被拒绝的原因。 该字符串可以不以NULL结束。 |
0x0202 |
AC-System-Error |
该Tag表明了接入服务器在处理主机请求时出现了某个错误。例如没有足够资源来创建一个虚拟电路。PADS数据包中可以包含该标签。 如果有数据,并且数据的第一个字节不为0,那么数据必须是一个可打印字符串,该字符串解释了错误的性质。 该字符串可以不以NULL结束。 |
0x0203 |
Generic-Error |
该Tag表明发生了一个错误。 当发生一个不可恢复的错误并且没有其它合适的Tag时,它可被加到PADO、PADR或PADS数据包中。 如果出现数据部分,那么数据必须是一个解释错误性质的字符串。 该字符串不允许以NULL结束。 |
Protocol Identifier:协议ID=“0”-------------------------------------
Protocol Version Identifier:协议版本标识符,STP为0,RSTP为2,MSTP为3
BPDU Type :BPDU类型,MSTP为0x02------------------------------
0x00:STP的Configuration BPDU
0x80:STP的TCN BPDU(Topology Change Notification BPDU)
0x02:RST BPDU(Rapid Spanning-Tree BPDU)或者MST BPDU(Multiple Spanning-Tree BPDU)
Flags :标记域------------------------------------------------------
第一个bit(左边、高位bit)表示“TCA(拓扑改变响应)”
最后一个bit(右边、低位bit)表示“TC(拓扑改变)”。
Root Identifier:网桥ID--------------------------------------------8字节
前两个字节是网桥优先级,后6个字节是网桥MAC地址。
Root Path Cost :根路径开销,本端口累计到根桥的开销--------------------
Bridge Identifier:发送者BID,本交换机的BID-----------------------------
Port Identifier :发送端口PID,发送该BPDU的端口ID----------------------Message Age:该BPDU的消息年龄-------------------------------------
Max Age:消息老化年龄------------------------------------------------
Hello Time :发送两个相邻BPDU间的时间间隔----------------------------
Forward Delay:控制Listening和Learning状态的持续时间------------------
在BPDU的格式上,除了保证和STP格式基本一致之外,RSTP作了一些小的变化。一个是在Type字段,配置BPDU类型不再是0而是2,版本号也变成了2。所以运行STP的交换机收到该类BPDU时会丢弃。
另一个变化是在Flag字段,把原来保留的中间6位使用起来。这样改变了的配置BPDU叫做RST BPDU。
RSTP Flag字段格式:
字段 |
说明 |
Protocol Identifier |
协议标识符。 |
Protocol Version Identifier |
协议版本标识符,STP为0,RSTP为2,MSTP为3。 |
BPDU Type |
BPDU类型,MSTP为0x02。
|
CIST Flags |
CIST标志字段。 |
CIST Root Identifier |
CIST的总根交换机ID。 |
CIST External Path Cost |
CIST外部路径开销指从本交换机所属的MST域到CIST根交换机的累计路径开销。CIST外部路径开销根据链路带宽计算。 |
CIST Regional Root Identifier |
CIST的域根交换机ID,即IST Master的ID。 如果总根在这个域内,那么域根交换机ID就是总根交换机ID。 |
CIST Port Identifier |
本端口在IST中的指定端口ID。 |
Message Age |
BPDU报文的生存期。 |
Max Age |
BPDU报文的最大生存期,超时则认为到根交换机的链路故障。 |
Hello Time |
Hello定时器,缺省为2秒。 |
Forward Delay |
Forward Delay定时器,缺省为15秒。 |
Version 1 Length |
Version1 BPDU的长度,值固定为0。 |
Version 3 Length |
Version3 BPDU的长度。 |
MST Configuration Identifier |
MST配置标识,表示MST域的标签信息,包含4个字段:
只有MST Configuration Identifier中的四个字段完全相同的,并且互联的交换机,才属于同一个域。 |
CIST Internal Root Path Cost |
CIST内部路径开销指从本端口到IST Master交换机的累计路径开销。CIST内部路径开销根据链路带宽计算。 |
CIST Bridge Identifier |
CIST的指定交换机ID。 |
CIST Remaining Hops |
BPDU报文在CIST中的剩余跳数。 |
MSTI Configuration Messages (may be absent) |
MSTI配置信息。每个MSTI的配置信息占16 bytes,如果有n个MSTI就占用n×16bytes。单个MSTI Configuration Messages的字段说明如下:
|
Next Header:表示认证头部之后的下一个负载-----------------------------8比特
Payload Len:AH的长度减2,4字节为计数单位-----------------------------8比特
例如,有个96比特的认证值,长度将是"4"(即头部固定的3个4字节 + ICV的3个4字节 - 2)。对于IPv6,头部总长度必须为8字节的倍数。
Reserved:预留将来使用。必须置0,接收时忽略----------------------------16比特
Security Parameters Index:用于给报文接收端识别SA ---------------------32比特
Sequence Number Field:序列号,每发送一个报文,计数加1----------------32比特
例如每发一个SA报文序列号增加1。
Integrity Check Value-ICV:报文的ICV字段-------------------------------变长
可变长度,长度必须为32比特的整数倍。
Security Parameters Index:安全参数索引--------------------------------32比特
Sequence Number:序列号 --------------------------------------------32比特
Payload Data:有效载荷数据(可变)-------------------------------------变长
Padding:填充字段------------------------------------------------0–255字节
Pad Length:填充字段长度----------------------------------------------8比特
Next Header:下一个头-------------------------------------------------8比特
Integrity Check Value-ICV:验证数据-------------------------------------变长
Initiator's SPI 8 bytes 发送者用来唯一标识一个IKE安全联盟,该值不能设置为0。
Responder's SPI 8 bytes 应答者用来唯一标识一个IKE安全联盟,对于IKE初始交互的消息该值必须为0,其他消息不能为0。
Next Payload 1 byte 仅随头部之后的负载的类型。
MjVer 4 bits 标识所使用的IKE协议的最大版本。
MnVer 4 bits 标识所使用的IKE协议的最小版本。
Exchange Type 1 byte 0-33: RESERVED
34: IKE_SA_INIT
35: IKE_AUTH
36: CREATE_CHILD_SA
37: INFORMATIONAL
38-239: RESERVED TO IANA
240-255: Reserved for private use.
Flags 1 byte 消息中设置的特定选项。如果Flag域置位表示带有选项。
Message ID 4 bytes 消息标识符,用来对请求消息和呼应消息的匹配,以便控制丢弃消息的重复发送。这在抑制重放攻击时对保障协议的安全性很关键。
Length 4 bytes 整个消息的长度(报文头+负荷),以字节为单位。
Next Payload 1 byte 标识消息中的下一个负载的类型。如果当前的负载是消息的最后一个,则此字段置0。
C (Critical) 1 bit 如果发送者想让接收者在无法识别当前一个负载的Next Payload域是能够跳过此域,可将此位置0。
如果接收者能够识别负载的类型代码,则忽略此位。
RESERVED 7 bits 发送时必须置0,接收时忽略。
Payload Length 2 bytes 当前负载的长度,包括通用负载的头部,以字节为单位。
Label:标签值字段,用来标识一个FEC----------------------------------20比特
EXP:用于扩展-------------------------------------------------------3比特
现在通常用做CoS(Class of Service),其作用与Ethernet802.1p的作用类似。
S:MPLS支持多重标签。值为1时表示为最底层标签------------------------1比特
TTL:和IP分组中的TTL意义相同,可以用来防止环路-----------------------8比特
Version:表示版本号。目前LDP的版本号始终为1--------------------------2字节
PDU Length:表示PDU的总长度----------------------------------------2字节
包括LDP ID和整组LDP消息,不包括Version和PDU Length字段。
例如某个LDP报文中包含3个Hello消息,则该报文的PDU length = 3 * Message length。
LSR-ID:LDR-ID标识一台LSR,必须全局唯一-----------------------------4字节
LaberSpace ID:标识了LSR内的标签空间---------------------------------2字节
对于平台范围标签空间,这些数值都应当为0。
Bunch of messages:是一组LDP消息的集合,可以是一个或者多个LDP消息----变长
当LDP报文以UDP方式传输时,“Bunch of messages”只能是Hello消息的集合。
当LDP报文以TCP方式传输时,“Bunch of messages”可以是除Hello消息外任意类型的LDP消息的集合。
Message Length:LDP消息的长度---------------------------------------16比特
是Message ID、强制参数和可选参数的长度的总和。
Message ID:LDP消息的编号,用于唯一地标识一个LDP消息----------------32比特
Length:LDP消息是以LDP PDU中的TLV形式定义的-----------------------16比特
每个LDP TLV有一个2字节的Type域,2字节的Length域和变长的Value域。这里的Length就表示TLV的Value域的字节数。
Hold Time:保持时间,以秒为单位的Hello保持时间-------------------------16比特
LSR维护来自潜在同伴的Hello的记录。为0的数值意味着使用缺省值。0xffff的数值意味着无穷大。
Targeted Hello:值为1表示为远端Hello消息,值为0表示本地Hello消息---------1比特
Request Send Targeted Hellos:值为1表示请求接收者周期性发送远端Hello消息给该Hello的发送源端,值为0表示没有此需求------------------------------------1比特
Reserved:保留字段,必须置0,接收端忽略此字----------------------------14比特
Optional Parameters:可选参数,包含0~n个TLV----------------------------变长
Message Length:LDP消息的长度---------------------------------------16比特
是Message ID、强制参数和可选参数的长度的总和。
Message ID:LDP消息的编号,用于唯一地标识一个LDP消息----------------32比特
Length:LDP消息是以LDP PDU中的TLV形式定义的-----------------------16比特
每个LDP TLV有一个2字节的Type域,2字节的Length域和变长的Value域。这里的Length就表示TLV的Value域的字节数。
Protocol Version:表示协议版本号 = 1------------------------------------16比特
KeepAlive Time:TCP连接的保持时间 -----------------------------------16比特
这个定时器的刷新并不是收到KeepAlive消息才会刷新,而是通过TCP连接收到的LDP PDU时都会刷新
A:表明标签分配方式 ( 0 = DU ;1 = DoD) ---------------------------------1比特
D:表明是否使能了环路检测功能(0 = Disable ; 1 = Enable)-------------------1比特
Reserved:保留字段,必须置0,接收端忽略此字段--------------------------6比特
Path Vector Limit:LSP支持的最大跳数-----------------------------------8比特
只有在使能了Loop detection功能时有效,默认值为32
Max PDU Length:LDP PDU的最大长度,默认值为4096字节----------------16比特
Receiver LDP Identifier:Initialization消息的接收者的LDP标识符(LDP ID)-----6字节
Optional Parameters:可选参数,包含0~n个TLV----------------------------变长
Message Length:LDP消息的长度---------------------------------------16比特
是Message ID、强制参数和可选参数的长度的总和。
Message ID:LDP消息的编号,用于唯一地标识一个LDP消息----------------32比特
Length:LDP消息是以LDP PDU中的TLV形式定义的-----------------------16比特
FEC Element 1 to FEC Element n 每个Element 1字节 表明该标签是为哪个FEC而分配的。
FEC Element的格式定义:
Type = 0x01: 反掩码。只在Label Withdraw和Label Release消息中使用
Type = 0x02: 前缀
Label TLV 52比特 表明下游为该FEC分配了什么标签
Label字段是个20比特的标签值
Optional Parameters 变长 可选参数,包含0~n个TLV
Version:版本---------------------------------------------4比特
Virtual Rtr ID:虚拟路由器标识-------------------------------8比特
Priority:VRRP路由器的优先级-------------------------------8比特
Count IP Addrs:通告中包含的IP地址的数量-------------------8比特
Auth Type:认证类型----------------------------------------8比特
Adver Int:VRRP通告间隔时间-------------------------------8比特
Checksum:校验和-----------------------------------------16比特
IP Address:虚拟路由器的一个或者多个IP地址-----------------32比特