OSPF(Open Shortest Path First)开放式最短路径优先协议01
2011-10-16 11:29
302 查看
包结构:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/14/e1abaea6f5b631b68968f31ea3947bad.jpg)
OSPF基于IP,协议号89.优先级为6(QOS会讲到)
组播地址224.0.0.5和224.0.0.6
IP头部后面紧跟的是OSPF包的包头。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/14/66b43159657ac67450e11c675d2139d0.jpg)
版本号:IPV4中OSPF版本号为2,IPV6的版本号是3.
类型:表示跟在OSPF包头后的数据包类型。
长度:OSPF数据包的长度,包括OSPF包头。
路由器ID:指首发路由器的ID。
区域ID:始发数据包的路由器所在的区域,如果数据在虚链路上发送,那么区域为0.0.0.0 因为虚链路是骨干区域的一部分。
校验和:对整个数据包的标准IP校验和。
认证类型:正在使用的认证类型。
HELLO包(用来建立和维持邻居关系,HELLO包中的所有参数都应当和邻居保持一致):
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/14/1a070499622487f8cfa8c0e85f7afab1.jpg)
HELLO间隔:HELLO数据包传送之间的时间间隔,如果接收路由器没有一个相同的值,那么他们不能建立一种邻接关系。
可选项:其中的参数用来确保邻居之间的兼容性。
路由器优先级:用来做DR/BDR的选举,如果为0,则不能参与DR/BDR的选举。
指定路由器:指网络上,指定路由器的IP地址。注:这可能是始发路由器自己认为的DR,而不是最终的DR,如果是0.0.0.0,可能是网络类型不需要DR或还没有选出。
备份指定路由器:指网络上,备份制定路由器的IP地址。注意细节同上。
邻居:如果从邻居的HELLO包中看到了自己的RID,则进入TWO-WAY状态。
DBD(数据库描述报文):
作用,描述始发路由器数据库中的一些或全部LSA信息,以便接收者可以对比,DBD交互过程中,可能需要交换多个DBD,DBD中包含一个主/从控制关系标志,用来管理这些DBD交互
序列号双方随机产生,比较RID,谁的RID大谁就是主。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/14/814b54d29f061a1c628ad395c70dfeba.jpg)
MTU:不分段的情况下,始发路由器可以发送的最大MTU大小。
可选项:和HELLO包一样的可选项。(后面讲解)
I位:初始位,如果这个DBD是第一个DBD,此位置1
M位:数据包不是最后一个DBD,置1代表后续还有更多的数据包
MS位:主从位,置1代表为主,置0代表从。
序列号:用来确保路由器能收到完整的DBD序列。序列号将由主路由器在最初设置数值,而后递增。
LSA头部:包含一个完整的LSA头部信息。
LSR(链路状态请求包):
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/14/6eeb365ee830278df08cb507119cf5fb.jpg)
DBD报文同步过程中,路由器会查看发来的LSA哪些本地没有,或者相同的LSA比本地更新。
路由器会将这些LSA记录在链路状态请求列表中,然后,路由器发送一个或多个链路状态请求,来请求自己记录在链路状态请求列表中的这些LSA。
链路状态类型:用来指明LSA类型。
链路状态ID:不同的LSA类型此字段代表不同的意思。
通告路由器:始发LSA通告路由器的RID。
LSU(用于LSA泛洪或相应链路状态请求报文):
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/14/30c3643f6082cdad04f5842490a97a78.jpg)
LSA只能传送到直连的邻居,由直连的邻居重新封装传给下一个设备。TTL=1
LSA数量:标示此LSU包含多少个LSA的详细信息。
LSA:LSA数据包格式中描述的全部LSA。
LSAck:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/14/6b04b95dc7331876a6df711cfa764869.jpg)
LSAck用来做LSA的可靠泛洪,路由器从邻居收到的每条LSA都需要经过LSAck的确认。LSAck包含需要确认的LSA的头部信息。多个LSA可以通过一个LSAck去确认。
确认分为延时确认和直接确认
延时确认:通过此方法确认,更多的LSA可以被单个确认包来确认,被延时确认的数据包延时时间必须要小于5S,以避免不必要的重传
直接确认:直接确认总是以单播发送,发生在下面两种情况,1.从邻居收到了重复的LSA,意味着邻居没有收到我的LSA确认2.收到一条LSA老化时间达到了最大的生存时间,说明邻居没有此LSA的实例了
可选项字段:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/14/1a7ce22a3363531a2bdc343c716bd829.jpg)
DC:表示始发路由器具有支持按需电路的OSPF能力。
NP:N位和P位都用于NSSA区域,因此可以使用在同一位置,N位,仅用于HELLO包,置1时表示支持NSSA的外部LSA,如果N位置1,那么E位必须为0. P位表示可以路由器可以将7类转为5类LSA。
MC:具有转发组播IP数据包的能力,用于MOSPF。
E位:具有接受外部LSA的能力的路由器。此位置1,意味着,如果是Stub区域的话,所有STUB区域的路由器发出的LSA,此位应该为0,HELLO包中可以表示为一个接口是否有转发5类LSA的能力。
MT:多拓扑OSPF,没有实现。
本文出自 “_癫人。” 博客,请务必保留此出处http://zhangchiccie.blog.51cto.com/1579309/689172
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/14/e1abaea6f5b631b68968f31ea3947bad.jpg)
OSPF基于IP,协议号89.优先级为6(QOS会讲到)
组播地址224.0.0.5和224.0.0.6
IP头部后面紧跟的是OSPF包的包头。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/14/66b43159657ac67450e11c675d2139d0.jpg)
版本号:IPV4中OSPF版本号为2,IPV6的版本号是3.
类型:表示跟在OSPF包头后的数据包类型。
长度:OSPF数据包的长度,包括OSPF包头。
路由器ID:指首发路由器的ID。
区域ID:始发数据包的路由器所在的区域,如果数据在虚链路上发送,那么区域为0.0.0.0 因为虚链路是骨干区域的一部分。
校验和:对整个数据包的标准IP校验和。
认证类型:正在使用的认证类型。
HELLO包(用来建立和维持邻居关系,HELLO包中的所有参数都应当和邻居保持一致):
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/14/1a070499622487f8cfa8c0e85f7afab1.jpg)
HELLO间隔:HELLO数据包传送之间的时间间隔,如果接收路由器没有一个相同的值,那么他们不能建立一种邻接关系。
可选项:其中的参数用来确保邻居之间的兼容性。
路由器优先级:用来做DR/BDR的选举,如果为0,则不能参与DR/BDR的选举。
指定路由器:指网络上,指定路由器的IP地址。注:这可能是始发路由器自己认为的DR,而不是最终的DR,如果是0.0.0.0,可能是网络类型不需要DR或还没有选出。
备份指定路由器:指网络上,备份制定路由器的IP地址。注意细节同上。
邻居:如果从邻居的HELLO包中看到了自己的RID,则进入TWO-WAY状态。
DBD(数据库描述报文):
作用,描述始发路由器数据库中的一些或全部LSA信息,以便接收者可以对比,DBD交互过程中,可能需要交换多个DBD,DBD中包含一个主/从控制关系标志,用来管理这些DBD交互
序列号双方随机产生,比较RID,谁的RID大谁就是主。
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/14/814b54d29f061a1c628ad395c70dfeba.jpg)
MTU:不分段的情况下,始发路由器可以发送的最大MTU大小。
可选项:和HELLO包一样的可选项。(后面讲解)
I位:初始位,如果这个DBD是第一个DBD,此位置1
M位:数据包不是最后一个DBD,置1代表后续还有更多的数据包
MS位:主从位,置1代表为主,置0代表从。
序列号:用来确保路由器能收到完整的DBD序列。序列号将由主路由器在最初设置数值,而后递增。
LSA头部:包含一个完整的LSA头部信息。
LSR(链路状态请求包):
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/14/6eeb365ee830278df08cb507119cf5fb.jpg)
DBD报文同步过程中,路由器会查看发来的LSA哪些本地没有,或者相同的LSA比本地更新。
路由器会将这些LSA记录在链路状态请求列表中,然后,路由器发送一个或多个链路状态请求,来请求自己记录在链路状态请求列表中的这些LSA。
链路状态类型:用来指明LSA类型。
链路状态ID:不同的LSA类型此字段代表不同的意思。
通告路由器:始发LSA通告路由器的RID。
LSU(用于LSA泛洪或相应链路状态请求报文):
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/14/30c3643f6082cdad04f5842490a97a78.jpg)
LSA只能传送到直连的邻居,由直连的邻居重新封装传给下一个设备。TTL=1
LSA数量:标示此LSU包含多少个LSA的详细信息。
LSA:LSA数据包格式中描述的全部LSA。
LSAck:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/14/6b04b95dc7331876a6df711cfa764869.jpg)
LSAck用来做LSA的可靠泛洪,路由器从邻居收到的每条LSA都需要经过LSAck的确认。LSAck包含需要确认的LSA的头部信息。多个LSA可以通过一个LSAck去确认。
确认分为延时确认和直接确认
延时确认:通过此方法确认,更多的LSA可以被单个确认包来确认,被延时确认的数据包延时时间必须要小于5S,以避免不必要的重传
直接确认:直接确认总是以单播发送,发生在下面两种情况,1.从邻居收到了重复的LSA,意味着邻居没有收到我的LSA确认2.收到一条LSA老化时间达到了最大的生存时间,说明邻居没有此LSA的实例了
可选项字段:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202004/14/1a7ce22a3363531a2bdc343c716bd829.jpg)
DC:表示始发路由器具有支持按需电路的OSPF能力。
NP:N位和P位都用于NSSA区域,因此可以使用在同一位置,N位,仅用于HELLO包,置1时表示支持NSSA的外部LSA,如果N位置1,那么E位必须为0. P位表示可以路由器可以将7类转为5类LSA。
MC:具有转发组播IP数据包的能力,用于MOSPF。
E位:具有接受外部LSA的能力的路由器。此位置1,意味着,如果是Stub区域的话,所有STUB区域的路由器发出的LSA,此位应该为0,HELLO包中可以表示为一个接口是否有转发5类LSA的能力。
MT:多拓扑OSPF,没有实现。
本文出自 “_癫人。” 博客,请务必保留此出处http://zhangchiccie.blog.51cto.com/1579309/689172
相关文章推荐
- Open Shortest Path First; 内部网关协议之OSPF协议
- RIP和OSPF(Open Shortest Path First开放式最短路径优先) 区别
- Enhanced IGRP(EIGRP) and Open Shortest Path First(OSPF)
- OSPF(Open Shortest Path First)开放式最短路径优先协议03
- OSPF(Open Shortest Path First)开放式最短路径优先协议04
- Open Shortest Path First (OSPF)(1)
- OSPF(Open Shortest Path First)开放式最短路径优先协议02
- OSPF(Open Shortest Path First)开放式最短路径优先协议05
- OSPF(Open Shortest Path First)开放式最短路径优先协议06
- OSPF(Open Shortest Path First开放式最短路径优先 -链路状态路由协议
- OSPF(Open Shortest Path First)开放式最短路径优先协议07
- ospf6d.conf — Open Shortest Path First daemon configuration file
- CCNP精粹系列之三----OSPF(open short path first)
- CCNP精粹系列之四----OSPF(open short path first)
- CCNP精粹系列之五----OSPF(open short path first)
- shortest path first 程序的编写
- Openfire Plugin FastPath NullPointerException
- hdu The Shortest Path in Nya Graph(建图+spfa)
- 所有节点对之间的最短路问题(All Pair Shortest Path)--《算法导论》
- Python 文件操作中的读写模式:open(path, '-模式-',encoding='UTF-8')