OSPF数据包格式
OSPF_协议的解析及详解
OSPF_协议的解析及详解OSPF协议的解析及详解一、引言OSPF(Open Shortest Path First)是一种开放式最短路径优先协议,用于在IP网络中进行路由选择。
本协议旨在提供高效、可靠、可扩展的路由选择机制,以满足大规模网络的需求。
本文将对OSPF协议进行解析和详解,包括协议的基本原理、工作机制、数据包格式、路由计算算法等内容。
二、OSPF协议基本原理1. 链路状态路由协议OSPF是一种链路状态(Link State)路由协议,它通过交换链路状态信息来构建网络拓扑图,从而计算最短路径。
每个路由器都维护一个链路状态数据库(Link State Database,LSDB),其中存储了整个网络的拓扑信息。
2. OSPF区域划分OSPF将网络划分为多个区域(Area),每个区域内部运行独立的SPF (Shortest Path First)计算,减少了计算复杂度和控制报文的传输量。
区域之间通过区域边界路由器(Area Border Router,ABR)进行连接。
3. OSPF邻居关系建立OSPF邻居关系是通过交换Hello报文来建立的。
当两个路由器在同一广播域内收到对方的Hello报文时,它们可以成为邻居,并交换链路状态信息。
三、OSPF协议工作机制1. Hello报文交换OSPF路由器通过周期性发送Hello报文来探测邻居,并维护邻居关系。
Hello报文包含了路由器的ID、Hello间隔时间等信息。
2. 链路状态信息交换OSPF邻居之间交换链路状态信息,包括链路状态更新报文(LSU)和链路状态请求报文(LSR)。
LSU报文用于广播链路状态信息,LSR报文用于请求缺失的链路状态信息。
3. SPF计算每个OSPF路由器通过收集链路状态信息,构建链路状态数据库,并使用SPF算法计算最短路径树。
SPF算法基于Dijkstra算法,通过计算最短路径树,确定到达目的地的最短路径。
4. 路由表生成根据最短路径树,每个OSPF路由器生成路由表,选择最佳路径并更新转发表。
OSPF协议详解总结
* Area ID-用于区分OSPF数据包属于的区域号,所有的OSPF数据包都属于一个特定
的OSPF区域。
* Checksum-校验位,用于标记数据包在传递时有无误码。
* Authentication type-定义OSPF验证类型。
* Authentication-包含OSPF验证信息,长为8个字节。
相邻关系。见下图
DR的选举过程:这里可以以选举村长为例
选举的时候用Hello包中的DR字节来标识,开始的时候都是标识的自己,一旦选举出一个DR来那么即使后来再有优先级更高的进来也不重新选举(因为一旦重新选举那么所有的邻接关系都要重新建立)
OSPF启动的过程:
down
init
发送Hello(224.0.0.5)DR字段为全零(因为还没有选出DR),
FDDI或快速以太网的Cost为1,2M串行链路的Cost为48,10M以太网的Cost为10等。
所有路由器会通过一种被称为刷新(Flooding)的方法来交换链路状态数据。Flooding是指路由器将其LSA数据包传送给所有与其相邻的OSPF路由器,相邻路由器根据其接收到的链路状态信息更新自己的数据库,并将该链路状态信息转送给与其相邻的路由器,直至稳定的一个过程。当路由器有了一个完整的链路状态数据库时,它就准备好要创建它的路由表以便能够转发数据流。CISCO路由器上缺省的开销度量是基于网络介质的带宽。要计算到达目的地的最低开销,链路状态型路由选择协议(比如OSPF)采用Dijkstra算法,OSPF路由表中最多保存6条等开销路由条目以进行负载均衡,可以通过"maximum-paths"进行配置。如果链路上出现fapping翻转,就会使路由器不停的计算一个新的路由表,就可能导致路由器不能收敛。路由器要重新计算客观存它的路由表之前先等一段落时间,缺省值为5秒。在CISCO配置命令中"timers spf spf-delay spy-holdtime"可以对两次连续SPF计算之间的最短时间(缺省值10秒)进配置。
OSPF路由协议概念及工作原理
OSPF路由协议概念及工作原理1.概述OSPF路由协议是一种典型的链路状态(Link-state)的路由协议,一般用于同一个路由域内。
在这里,路由域是指一个自治系统(Autonomous System),即AS,它是指一组通过统一的路由政策或路由协议互相交换路由信息的网络。
在这个AS中,所有的OSPF路由器都维护一个相同的描述这个AS结构的数据库,该数据库中存放的是路由域中相应链路的状态信息,OSPF路由器正是通过这个数据库计算出其OSPF路由表的。
作为一种链路状态的路由协议,OSPF将链路状态广播数据包LSA(Link State Advertisement)传送给在某一区域内的所有路由器,这一点与距离矢量路由协议不同。
运行距离矢量路由协议的路由器是将部分或全部的路由表传递给与其相邻的路由器。
2.数据包格式在OSPF路由协议的数据包中,其数据包头长为24个字节,包含如下8个字段:* Version number-定义所采用的OSPF路由协议的版本。
* Type-定义OSPF数据包类型。
OSPF数据包共有五种:* Hello-用于建立和维护相邻的两个OSPF路由器的关系,该数据包是周期性地发送的。
* Database Description-用于描述整个数据库,该数据包仅在OSPF初始化时发送。
* Link state request-用于向相邻的OSPF路由器请求部分或全部的数据,这种数据包是在当路由器发现其数据已经过期时才发送的。
* Link state update-这是对link state请求数据包的响应,即通常所说的LSA数据包。
* Link state acknowledgment-是对LSA数据包的响应。
* Packet length-定义整个数据包的长度。
* Router ID-用于描述数据包的源地址,以IP地址来表示。
* Area ID-用于区分OSPF数据包属于的区域号,所有的OSPF数据包都属于一个特定的OSPF区域。
OSPF数据包结构解析
OSPF数据包结构解析引言OSPF(Open Shortest Path First)是一种内部网关协议(IGP),用于在一组连通的路由器中计算最短路径并进行动态路由选择。
OSPF通过在路由器之间交换数据包来建立和维护路由信息。
本文将介绍OSPF数据包的结构,并解析其各个字段的含义和作用。
OSPF数据包结构一个OSPF数据包由多个字段组成,每个字段负责承载不同的信息。
下面是一个标准OSPF数据包的结构示意图:+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+OSPF包头(OSPF Header)-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+OSPF数据(OSPF Data)-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+OSPF包头(OSPF Header)OSPF包头包含以下字段:版本(Version):指定OSPF协议的版本号,通常为2。
类型(Type):指定OSPF数据包的类型,有多种类型,包括Hello、LSA Update、LSA Acknowledgement等。
包体长度(Packet Length):指定整个数据包的长度,单位为字节。
路由器ID(Router ID):唯一标识发送数据包的路由器。
区域ID(Area ID):标识OSPF网络中的区域,用于区分不同的子网。
校验和(Checksum):用于验证数据包的完整性。
OSPF数据(OSPF Data)OSPF数据包的具体内容取决于其类型。
下面是一些常见的OSPF 数据包类型及其相关字段:Hello数据包:用于邻居发现和监测相邻路由器的状态。
包含字段有:网络掩码(Network Mask)、优先级(Priority)、相邻路由器列表(Neighbor List)等。
OSPF报文格式分析
OSPF报文格式分析OSPF(Open Shortest Path First)是一种开放式的最短路径优先(SPF)路由协议,用于在网络中计算最短路径并进行路由选择。
OSPF报文格式定义了在OSPF中用于交换信息的数据包结构。
1. OSPF报文头(OSPF Header):该部分长度为24个字节,包含了OSPF报文的基本信息,如版本号、报文类型、报文长度等。
2. OSPF Hello报文(Hello Packet):Hello报文用于网络中的邻居发现和建立OSPF邻居关系。
其长度为44个字节,包含了发送者的路由器ID、OSPF区域ID以及其他邻居信息。
3. OSPF数据库描述报文(Database Description Packet):该报文用于交换邻居路由器的链路状态数据库(LSDB)的摘要信息。
其长度不定,根据需要而变化。
4. OSPF连通性状态请求报文(Link State Request Packet):该报文用于向邻居请求链路状态信息。
其长度不定,根据需要而变化。
5. OSPF连通性状态更新报文(Link State Update Packet):该报文用于向邻居更新链路状态信息。
其长度不定,根据需要而变化。
6. OSPF连通性状态确认报文(Link State Acknowledgement Packet):该报文用于确认其他OSPF报文的接收情况。
其长度不定,根据需要而变化。
以上是OSPF报文格式的主要部分。
其中,OSPF头部信息在每个报文中都会出现,用于标识报文类型和报文长度等信息。
根据OSPF的设计原则,不同的功能对应不同类型的报文,如Hello报文用于邻居发现,Database Description报文用于数据库同步等。
OSPF报文的格式设计考虑了网络性能和可扩展性的因素。
通过在报文中包含必要的标识和描述信息,OSPF路由器能够根据收到的报文类型和内容做出适当的响应,从而保证网络的正常运行。
数据包头格式
IPv4报头|8 | 8 |8 | 8 |*版本(version)——标识了数据包的IP版本号。
这个4位字段的值设置为二进制的0100表示IP版本4(IPv4),设置为0110表示IP版本6(IPv6)。
*报头长度(header length)——字段长度为4位,正如字段名所示,它表示32位字长的IP报头长度。
设计报头长度字段是因为数据包的可选项字段的大小会发生变化。
IP报头最小长度为20个八位组,最大可以扩展到60个八位组——通过这个字段也可以描述32位字的最大长度。
*服务类型(TOS,type of service)——字段长度为8位,它用来指定特殊的数据包处理方式。
服务类型字段实际上被划分为两个子字段:优先级和ToS。
优先级用来设置数据包的优先级,这就像邮寄包裹一样,可以是平信、隔日送到或两日内送到。
ToS允许按照吞吐量、时延、可靠性和费用方式选择传输服务。
虽然ToS字段通常不用(所有位均被设置为0),但是开放式最短路径优先(OSPF)协议的早期规范中还是称为ToS路由选择。
优先权位偶尔在服务质量(QoS)应用中使用。
更详细的信息可以参见RFC1340和RFC1349。
*总长度(total length)——数据包总长度字段的长度为16位,以八位组为单位计,其中包括IP报头。
接收者用IP 数据包总长度减去IP报头长度,就可以确定数据包数据有效负载的大小。
16位长的二进制数用十进制表示最大可以为65535,所以IP数据包的最大长度是65535。
*标识符(identifier)——字段长度为16位,通常与标记字段和分片偏移字段一起用于数据包的分段。
如果数据包原始长度超过数据包所要经过的数据链路的最大传输单元(MTU),那么必须将数据包分段为更小的数据包。
例如,一个大小为5000字节的数据包在穿过网络时,如果遇到一条MTU为1500字节的数据链路,即数据帧最多容纳大小为1500字节的数据包。
路由器需要在数据成帧之前将数据包分段成多个数据包,其中每个数据包长度不得超过1500字节;然后路由器在每片数据包的标识字段上打上相同的标记,以便接收设备可以识别出属于一个数据包的分段。
第三讲 OSPF
UESTC
第三讲 OSPF
技术要点: 技术要点:
1、路由器ID(Router ID):即路由 、路由器 ( ):即路由 ): 的名字。 确定Router ID遵 器 的名字。OSPF确定 确定 遵 循如下顺序: 循如下顺序: 配置router id: (1)通过 )通过CLI配置 配置 :
R1(config)#router ospf 1 R1(config-router)#router-id 1.1.1.1
UESTC
第三讲 OSPF
5、OSPF数据包格式 、 数据包格式 每个OSPF数据包都具有 数据包都具有OSPF数据包头部,OSPF数据包包括 数据包头部, 每个 数据包都具有 数据包头部 数据包包括 5种类型,每种数据包在OSPF路由过程中发挥各自的作用。 种类型,每种数据包在 路由过程中发挥各自的作用。 种类型 路由过程中发挥各自的作用
UESTC
第三讲 OSPF
6、OSPF 算法 、
每台 OSPF 路由器都会维持 一个链路状态数据库 链路状态数据库, 一个链路状态数据库,其中 包含来自其它所有路由器的 LSA。 。 一旦路由器收到所有 LSA 并建立其本地链路状态数据 库,OSPF 就会使用 Dijkstra 的最短路径优先 (SPF) 算法创建一个 SPF 树。 将根据 SPF 树,使用通向 每个网络的最佳路径填充 IP 每个网络的最佳路径填充 最佳路径 路由表。 路由表。
Hello数据包:用于与其它OSPF路由器建立和维持相邻关系。 数据包:用于与其它 路由器建立和维持相邻关系。 数据包 路由器建立和维持相邻关系 DBD(数据库描述)数据包:包含发送方路由器的链路状态数据库的 (数据库描述)数据包: 简略列表,接收方路由器使用本数据包与其本地链路状态数据库对比。 简略列表,接收方路由器使用本数据包与其本地链路状态数据库对比。 LSR(链路状态请求)数据包:接收方路由器可以通过发送链路状态 (链路状态请求)数据包: 请求数据包来请求DBD中任何条目的有关详细信息。 中任何条目的有关详细信息。 请求数据包来请求 中任何条目的有关详细信息 LSU(链路状态更新)数据包:用于回复LSR和通告新信息。 (链路状态更新)数据包:用于回复 和通告新信息。 和通告新信息 LSAck:路由器收到LSU后,会发送一个链路状态确认 (LSAck) 数 :路由器收到 后 据包来确认接收到了LSU。 据包来确认接收到了
OSPF详解
OSPF详解Open Shortest Path First(⼀)OSPF协议是由Internet⼯程任务组(Internet Engineering Task Force)开发的路由选择协议,且来替代存在⼀些问题的RIP协议。
OSPF协议是IETF 组织建议使⽤的内部⽹关协议(IGP)。
OSPF使⽤Dijkstra的最短路径优先(SPF)算法,其的发展经过了⼏个RFC,所有的RFC都是由John Moy撰写。
RFC1131详细说明了OSPF协议版本1,这个版本从来没有在实验平台以外使⽤过,OSPF协议版本2,也就是现在IPv4协议仍然使⽤的版本,最初是在RFC1247中说明的,最新是在RFC2328中说明的。
(⼀)OSPF基本原理与实现OSPF的基本特性:·OSPF属于IGP,是Link-State协议,基于IP Pro 89。
·采⽤SPF算法(Dijkstra算法)计算最佳路径。
·快速响应⽹络变化。
·以较低频率(每隔30分钟)发送定期更新,被称为链路状态刷新。
·⽹络变化时是触发更新。
·⽀持等价的负载均衡。
·OSPF协议将IP头部的TTL值设置为1,并且把优选位设置成互连⽹络控制OSPF的邻居与邻接关系:OSPF中路由器之间的关系分两种:1、邻居2、邻接·OSPF路由器可与它直连的邻居建⽴邻居关系。
·P2P链路上,邻居可以到达FULL状态,形成邻接关系·MA⽹络,所有路由器只和DR/BDR(Backup Designated Router)到达FULL状态。
形成邻接·路由器只和建⽴了邻接关系的邻居才可以到达FULL状态。
·路由更新只在形成FULL状态的路由器间传递。
·OSPF路由器只会与建⽴了邻接关系的路由器互传LSA。
同步LSDBR2#sh ip os neiNeighbor ID Pri State Dead Time Address Interface1.1.1.1 0 FULL/ - 00:00:35 12.1.1.1 Serial1/03.3.3.3 0 FULL/ - 00:00:38 23.1.1.3 Serial1/1⼀台OSPF路由器对其他OSPF路由器的跟踪需要每台路由器都提供⼀个路由器ID,路由器ID在OSPF区域内惟⼀标识⼀台路由器的IP地址,Cisco路由器通过下⾯的⽅法得到它的路由器ID:1)⼿⼯指定Route-ID x.x.x.x(可任意,但区域内不能重复) 2)⾃动选择最⼤的Loopback IP作route-id 3)⾃动选择最⼤的物理接⼝IP(接⼝必须是激活状态)推荐⼿⼯指定的router-id这⾥,使⽤Loopback接⼝作为路由器ID有两个好处:(1):Loopback接⼝⽐任何其他物理接⼝更稳定,只有整个路由器失效进它才会失效(2):⽹络管理只在预先分配和识别作为路由器ID的地址时有更多的回旋余地其实,Loopback接⼝的⼀个主要好处在于它具有更好控制路由器ID能⼒.OSPF开销值计算:·OSPF Cost = 10^8/BW (bps)⼏种常⽤接⼝的COST值:1、环回⼝的COST值是12、serial⼝的COST值是643、标准以太接⼝是104、快速以太接⼝是1SPF算法:最短路径优先算法1、在⼀个区域内的所有路由器有同样的LSDB2、每⼀个路由器在计算时都将⾃已做为树根3、具有去往⽬标的最低cost值的路由是最好的路径4、最好的路由被放⼊转发表·OSPF的报⽂:1:数据包头部:所有OSPF数据包都是由⼀个24个⼋位组字节的头部开始的,如下图所⽰:这⾥,如果认证类型=2。
各种数据报和数据包格式
IP 数据包格式版本字段:4位。
当前的IP 协议版本是4,通常称为IPv4。
下一个版本是6,称为IPv6首部长度:4位,IP 数据报首部的长度,每个单位为4个字节。
IP 数据报的长度是4个字节的整数倍。
服务类型:8位,服务类型。
前3位为优先级,用于表示数据报的重要程度,优先级取值从0(普通优先级)到7(网络控制高优先级)。
D 、T 和R 位表示本数据报希望的传输类型。
D 表示低时延(Delay )需求T 表示高吞吐量(Throughput )要求R 代表高可靠性(Reliability )要求。
总长度:总长度指首部和数据之和的长度,单位为字节。
总长度字段为16位,因此数据报的最大长度为216-1=65535字节。
标识(identification):占16位。
IP 软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1,并将此值赋给标识字段。
但这个“标识”并不是序号,因为IP 是无连接服务,数据报不存在按序接收的问题。
当数据报由于长度超过网络的MTU 而必须分片时,这个标识字段的值就被复制到所有的数据报的标识字段中。
相同的标识字段的值使分片后的各数据报片最后能正确地重装成为原来的数据报。
标志(flag):占3位,但目前只有2位有意义。
标志字段中的最低位记为MF(More Fragment)。
MF=1即表示后面“还有分片”的数据报。
MF=0表示这已是若干数据报片中的最后一个。
标志字段中间的一位记为DF(Don’t Fragment),意思是“不能分片”。
只有当DF=0时才允许分片。
片偏移:占13位。
片偏移指出:较长的分组在分片后,某片在原分组中的相对位置。
也就是说,相对用户数据字段的起点,该片从何处开始。
片偏移以8个字节为偏移单位。
这就是说,每个分片的长度一定是8字节(64位)的整数倍。
总长度 服务类型版本 首部长度 标识 源站IP 地址寿命 协议首部校验和 片偏移 标志目的站IP 地址IP 选项(可选)填充 数据……生存时间:占8位,生存时间字段常用的的英文缩写是TTL(Time To Live),表明是数据报在网络中的寿命。
OSPF介绍
OSPF(Open Shortest Path First)是一个基于链路状态的内部网关协议(IGP),它用于路由IP数据包。
OSPF的主要目标是在自治系统(AS)内部为IP网络提供高效、可扩展和快速收敛的路由。
OSPF是一个动态路由协议,它通过使用Dijkstra算法来计算最短路径树(SPT)以确定最佳路径。
OSPF报文结构分为头部和数据部分。
头部包含了报文的基本信息,而数据部分包含了不同类型的OSPF报文所需的详细信息。
OSPF头部字段:1.版本号(Version):占用一个字节,表示OSPF协议的版本。
目前的标准版本是OSPFv2(IPv4)和OSPFv3(IPv6)。
2.类型(Type):占用一个字节,表示报文类型。
OSPF有5种报文类型,分别是:Hello(1)、Database Description(2)、Link State Request(3)、Link State Update(4)和Link State Acknowledgment(5)。
3.报文长度(Packet Length):占用两个字节,表示整个OSPF报文(包括头部和数据部分)的长度。
4.路由器ID(Router ID):占用四个字节,用于唯一标识一个OSPF路由器。
5.区域ID(Area ID):占用四个字节,表示报文所属的OSPF区域。
6.校验和(Checksum):占用两个字节,用于检查报文在传输过程中是否出现错误。
7.预留字段(AuType and Authentication):在OSPFv2中,AuType字段占用两个字节,表示认证类型;接下来的8个字节为Authentication字段,用于报文认证。
在OSPFv3中,这些字段已被删除,因为它使用IPsec进行认证。
OSPF数据部分的字段因报文类型而异。
例如,在Hello报文中,主要字段包括:1.网络掩码(Network Mask,仅在OSPFv2中存在):占用四个字节,表示连接到OSPF路由器的子网掩码。
ospf
OSPF泛洪
1、Flooding采用2种报文
LSU Type 4---链路状态更新报文
LSA Type 5---链路状态确认报文
{
Hello Type 1 ---Hello协议报文
标识可选性能的5个标记位;
始发路由器的所有有效邻居的路由器ID
OSPF的网络类型
工作方式 是否选dr/bdr 是否手动指定邻居 适合拓扑
点到点 没有 邻居自动发现 点到点
思考:若关闭inverse-arp,配置frame-relay map 时是否需要加broadcast参数(不需要)
b)将OSPF网络类型修改为Broadcast
配置:保证所有的PVC必须能够支持广播
思考:若关闭inverse-arp,配置frame-relay map 时是否需要加broadcast参数(一定需要)
备份(Backup)
DR OTHER
LOOPBACK
OSPF路由器邻接的几个状态
1.Down:此状态还没有与其他路由器交换信息。首先从其ospf接口向外发送hello分组,还并不知道DR(若为广播网络)和任何其他路由器。发送hello分组是,使用组播地址224.0.0.5。
2.Attempt: 只适于NBMA网络,在NBMA网络中邻居是手动指定的,当一个具有DR资格的路由器接口变成active时,就进入到此状态
DD(Data Description) Type 2----链路数据描述报文
LSR Type 3----链路状态请求报文
}
在P-P网络,路由器是以组播方式将更新报文发送到组播地址224.0.0.5.
ospf数据包及LSA分析
SW2(config-if-range)#do sh mac addMac Address Table-------------------------------------------Vlan Mac Address Type Ports ---- ----------- -------- ----- All 000c.8575.eb80 STATIC CPUAll cc STATIC CPUAll cd STATIC CPUAll 0100.0cdd.dddd STATIC CPU1 0002.b933.ee61 DYNAMIC Fa0/22 1 0004.ddbc.0d11 DYNAMIC Fa0/24 1 00e0.1e7f.7101 DYNAMIC Fa0/23(OSPF-4)分析:R6发出的第一个HELLO,无邻居,无DR,BDR状态。
分析:R6发出的第五个HELLO包,此时DR BDR已选举成功,R6已经开始与邻接路由器同步。
分析:R6向R8发出的第一个DBD报文,I(初始位)位1表示为第一个DBD,M位(后继位)置1表示后面还有,MS位(主/从位)置1表示认为自已是主。
分析:R8向R6发出的第一个DBD报文,置位同上。
分析:R6向R8发出的第二个DBD报文,M位置1表示后面还有,MS置0表示同步中为从路由器,携带LSA HEADER,内容为一条ROUTER-LSA。
分析:R8向R6发出一条LSR(链路状态请求报文),请求一条一类的LSA分析:R6向R8回应一条LSU,携带具体的LSA信息。
LSA分析(R9LOOP0改为E1)一、路由器LSAR6#show ip ospf database routerOSPF Router with ID (1.1.6.6) (Process ID 10)Router Link States (Area 0)LS age: 409 //发出LSA后所经历的时间Options: (No TOS-capability, DC) //指明部分OSPF域中LSA能够支持的可选性能LS Type: Router Links //LSA 类型路由器LSALink State ID: 1.1.6.6 //一类LSA链路状态ID为始发路由器ID Advertising Router: 1.1.6.6 //始发路由器LS Seq Number: 80000003 //LSA的序列号Checksum: 0x3BAC //校验和Length: 48 //长度Number of Links: 2 //链路数量Link connected to: a Transit Network //链路有类型,(1)点到点(2)传送网络(3)末梢网络(4)虚链路(Link ID) Designated Router address: 192.168.68.6 //链路ID,用来标识连接的对象(Link Data) Router Interface address: 192.168.68.6 //链路数据,始发者与该网络相连的接口IPNumber of TOS metrics: 0 //TOS号:为列出的这条链路指定服务类型度量值的编号,目前已不用。
OSPF各种数据包结构解析
OSPF各种数据包结构解析Open Shortest Path First(OSPF)是一种用于路由选择的动态路由协议。
OSPF使用各种不同类型的数据包进行通信,包括Hello数据包、数据库描述数据包(DBD)、链路状态请求数据包(LSR)、链路状态更新数据包(LSU)和链路状态确认数据包(LSAck)。
下面将对OSPF各种数据包的结构进行解析。
1. Hello数据包:Hello数据包用于建立和维护OSPF邻居关系。
它包含了发送者的Router ID、Area ID、Hello Interval、Dead Interval等信息。
Hello 数据包可以用于发现邻居路由器并确认邻居的可达性。
由于Hello数据包提供了区域ID和邻居列表,它还可用于校验邻居关系的有效性。
2.数据库描述数据包(DBD):DBD数据包用于传输链路状态数据库的摘要信息。
发送端的路由器将其链路状态数据库的一部分压缩为DBD数据包并发送给相邻的路由器,以请求或更新链路状态信息。
DBD数据包由一系列的LSA(LSA Type、LSA ID和LSA Sequence Number)组成。
3.链路状态请求数据包(LSR):链路状态请求数据包用于请求目标路由器的链路状态信息。
它通常是作为对DBD数据包的响应,当一些路由器发现自身的链路状态数据库缺少一些信息,就可以向邻居请求这些缺失的链路状态。
4.链路状态更新数据包(LSU):链路状态更新数据包用于传输链路状态信息。
它包含了LSA的详细信息,包括LSA Type、LSA ID、LSA Sequence Number、Age等。
路由器通过发送LSU数据包,可以将自己的链路状态信息广播给OSPF领域内的其他路由器。
5. 链路状态确认数据包(LSAck):链路状态确认数据包用于确认其他路由器传输的链路状态信息。
当一个路由器接收到LSU数据包后,它将通过发送LSAck数据包向源路由器确认接收。
OSPF各种数据包结构解析Word版
OSPF Packet HeaderOSPF报头为24字节.Version OSPF的版本号.IPv4为OSPFv2,IPv6为OSPFv3. Type OSPF数据包类型.Packet Length OSPF数据包长度.Router ID 始发OSPF数据包的路由器的Router-ID. Area ID 始发OSPF数据包的路由器接口所在的区域. Checksum OSPF数据包的校验和.AuType OSPF认证类型.Authentication AuType为0,不检查该字段.AuType为1,包含最长为64bit的口令.AuType为2,包含Key-ID,消息摘要和不减小的加密序列号. Authentication Data Length 附加在OSPF数据包尾部的消息摘要长度.Cryptographic Sequence Number 一个不会减小的序列号,用于防重放攻击.OSPF Hello PacketHello包用于建立和维护邻接关系,也在MA网络中选举DR/BDR.*Network Mask 发送数据包的接口的网络掩码,必须匹配.*Hello Interval 接口上发送Hello包的时间间隔,BMA和P2P网络中默认为10s,NBMA网络中默认为30s.*OptionsDN MPLS VPN使用.O 用于Opaque LSA.DC按需链路上使用EA 接收和转发具有外部属性LSA的能力.N/P N为1表明支持NSSA LSA,N为0表明不接收和发送NSSA.P(Propagation)为1执行7类到5类LSA转换,P为0不执行转换.MC MOPSF中使用.E E为1接收5类LSA,E为0不接收5类LSA.MT MT-OSPF使用.Router Priority 接口优先级,用于选举DR/BDR.为0将不参与选举,默认接口优先级为1.*Router Dead Interval 将邻居视为down前等待Hello包的时间间隔,默认为Hello Interval的4倍.Designated Router MA网络中的DR接口的IP地址,如果不存在将设置为0.0.0.0. Backup Designated Router MA网络中的BDR接口的IP地址,如果不存在将设置为0.0.0.0.Neighbor 列出了始发路由器保存的邻居列表.* 必须匹配才可建立OSPF邻接关系.OSPF DBD PacketDBD中包含LSA头部信息,用于选举Master/Slave路由器,同步LSDB.Interface MTU 始发路由器接口可发送的最大IP数据包大小,在虚链路上传送时设置为0x0000.I Initial,发送是第一个DBD包时设置为1,后续DBD包设置为0.M More,发送不是最后一个DBD包时,设置为1,如果是最后一个DBD包设置为0.MS Master/Slave,如果设置为1代表是Master路由器,设置为0代表是Slave路由器.DD Sequence Number DBD包的序列号由Master路由器设置.LSA Headers 列出始发路由器LSDB中的全部或部分LSA头部.OSPF LSR Packet用于请求LSBD中不存在或者更新的LSA.Link State Type 用于指出请求的LSA的类型.Link State ID LSA描述的内容.Advertising Router 始发LSA的路由器的Router-ID.OSPF LSU Packet用于LSA的泛洪和响应LSR,组播方式发送.DROTHERS使用组播地址224.0.0.6将LSU发送给DR,DR使用组播地址224.0.0.5发送给DROTHERS.Number of LSAs 指出LSU包含的LSA条目的数量.LSAs 包含的LSA的类型.OSPF LSAck Packet用于确保LSA的泛洪是可靠的.OSPF LSA HeaderLSA报头为20字节.Age LSA的老化时间,默认3600s.OptionType LSA的类型.Link State ID 指出LSA所描述的内容.Advertising Router 始发LSA的路由器的Router-ID.Sequence Number LSA序列号,识别是否为最新,范围是0x80000001 - 0x7FFFFFFF. Checksum 除Age字段的其他信息的校验和.Length 包含LSA头部内的LSA的长度.OSPF Router LSA Packet每个路由器都会产生Router LSA.Link State ID 产生Router LSA的路由器的Router-ID.V(Virtual Link Endpoint bit) 设置为1表明是虚链路的一个端点.E(External bit) 始发Router LSA为ASBR时,设置为1.B(Border bit) 始发Router LSA为ABR时,设置为1.Number of Links 指出LSA所描述的路由器链路数量.Link TypeLink IDLink DataNumber of ToSMetric 一条链路接口的代价.ToS Cisco只支持ToS 0.ToS metricOSPF Network LSA PacketDR为MA网络产生的.Link State ID DR在MA网络中接口的IP地址.Network Mask MA网络中使用的网络掩码.Attached Router 列出了MA网络中和DR建立完全邻接关系的路由器的Router-ID以及DR 自己的Router-ID.OSPF Network & ASBR Summary LSA PacketLink State ID 对于3类LSA,ABR通告的网络或子网的IP地址.对于4类LSA,ABR通告的ASBR的Router-ID.Network Mask 对于3类LSA,为通告的网络的子网掩码或地址.对于4类LSA,被设置为0.0.0.0.Metric 为到达目的网络的路由的cost.OSPF Autonomous System LSA PacketASBR产生的.Link State ID 外部网络的网络地址.Network Mask 外部网络的网络掩码.E(External Metric bit) E为1,O E2. E为0,O E1.Forwarding Address 到达外部网络应该转发的地址,设置为0.0.0.0,则应该转发给ASBR.External Route TagOSPF NSSA LSA PacketASBR产生的(注:可编辑下载,若有不当之处,请指正,谢谢!)。
关于OSPF五个包七个状态的理解(自己的理解)如有不对请大家指教!
关于OSPF五个包七个状态的理解(⾃⼰的理解)如有不对请⼤家指教!五个不同的数据包:Hello、DBD、LSR、LSU、ACK;七个状态:down、init、two-way、exstart、exchange、loading、full;1、hello包是周期发送(直连⽹段),该包有router ID,保持时间40s,router优先级,邻居信息,area ID,DR、BDR、password,stub area标记;(就是发送看对⽅挂了没有)2、DBD 数据库描述包,该包其实是对LSA的摘要,是⽤来进⾏⽐较的(就像⼀本书的⽬录)3、LSR 链路状态请求,进⾏DBD⽐较后发现⾃⼰DBD中少lsa,会发送该包(两本书的⽬录不⼀样,少的向多的要)4、LSU 链路状态更新,收到LSR后把⾃⼰lsa发送给少的路由器,(把⾃⼰多的⽬录给他,让他和我的⼀样,少的向多的要)5、LSACK 确认包,收到LSA后发送确认,(我收到了!谢了!)1、down 双⽅接⼝down状态2、init 初始化状态即单向通信,A收到B的hello(或B收到A的hello);3、two-way 双⽅互相通信状态,彼此收到对⽅的hello,并且从hello包中读取信息,建⽴邻居关系;4、exstart 就是将要开始发送DBD,在发送之前确认谁先发,谁后发,他们⾃动协商,依靠router id,越⼤越优先;5、exchange 上边确认主从关系后,开始交换DBD即摘要,会有确认,6、loading 收到BDB后进⾏⽐较是否相同(⽐较依据查看序列号),然后进⾏LSR、LSU的请求和更新7、full 彼此的数据相同即LSA⼀样,此状态为邻接关系LSA在同步过程中有三种情况:A⽐B新的;A⽐B⼀样的;A⽐B旧的;LSA的初始序列号为: 0x80000001 最⼤为: 0x7FFFFFF,在⽹络中没有发⽣变化默认30分钟发送⼀次DBD进⾏同步,在⽹络发⽣更改会⽴即触发发送;。
OSPF数据包结构解析
OSPF数据包结构解析OSPF(开放最短路径优先)是一种用于在计算机网络中进行路由选择的动态路由协议。
它是一种链路状态路由协议,通过建立邻居关系并交换链路状态信息来计算最短路径。
数据头包含了一些与数据传输相关的信息,如源IP地址、目的IP地址、协议类型等。
OSPF报文头包含了OSPF协议的一些基本信息,如版本号、报文类型、报文长度等。
接下来,我将详细介绍OSPF数据包的结构和各个部分的含义。
1.数据头:数据头主要包含了网络层IP协议的相关信息。
包括源IP地址和目的IP地址,通过这两个地址可以确定数据包的源和目的地。
2.OSPF报文头:OSPF报文头是一个8字节的固定长度字段,包含了以下几个字段:-版本号:用来指示OSPF协议的版本,目前使用的版本是OSPFv2- 报文类型:用来指示该数据包的类型,包括Hello报文、LSU(链路状态更新)报文、LSR(链路状态请求)报文等。
-报文长度:表示整个OSPF数据包的长度。
-路由器ID:每个路由器都有一个唯一的路由器ID,用来唯一标识每个OSPF路由器。
-区域ID:将整个网络划分为不同的区域,每个区域都有一个唯一的区域ID。
3.OSPF数据包体:- Hello报文体:包含了路由器在邻居关系建立过程中的一些信息,如路由器ID、邻居路由器的IP地址、对等路由器的优先级等。
-LSU报文体:包含了路由器发送给邻居的链路状态信息,用来描述自己所连接到的网络拓扑结构。
-LSR报文体:用于请求邻居路由器发送其链路状态信息。
-LSA报文体:包含了一条最小的链路状态信息,用来描述网络中一个路由器的邻居关系。
总结起来,OSPF数据包在传输过程中首先通过数据头和OSPF报文头来确定数据包的源和目的地,然后根据报文类型,使用相应的数据包体结构来传输路由协议信息。
通过交换和计算链路状态信息,OSPF可以为网络提供最短路径的路由选择功能,从而实现高效的数据传输。
以太网数据包格式
时隙在一般的数字通信原理中是这样定义的:由各个消息构成的单一抽样的一组脉冲叫做一帧,一帧中相邻两个脉冲之间是时间间隔叫做时隙.而以太网的时隙有它自己的特定意义.(1)在以太网CSMA/CD规则中,若发生冲突,则必须让网上每个主机都检测到。
但信号传播到整个介质需要一定的时间。
(2)考虑极限情况,主机发送的帧很小,两冲突主机相距很远。
在A发送的帧传播到B的前一刻,B开始发送帧。
这样,当A的帧到达B时,B检测到了冲突,于是发送阻塞信号。
(3)但B的阻塞信号还没有传输到A,A的帧已发送完毕,那么A就检测不到冲突,而误认为已发送成功,不再发送。
(4)由于信号的传播时延,检测到冲突需要一定的时间,所以发送的帧必须有一定的长度。
这就是时隙需要解决的问题。
这里可以把从A到B的传输时间设为T,在极端的情况下A要在2T的时间里才可以检测到有冲突的存在1,电磁波在1KM电缆的传输时延约为5us(这个数字应该记下来~~~),如果在理想情况下2,在10Mbps的以太网中有个5-4-3的问题:10 Mb/s以太网最多只能有5个网段,4个转发器,而其中只允许3个网段有设备,其他两个只是传输距离的延长。
按照标准,10Mbps以太网采用中继器时,连接最大长度为2500米!那么在理想的情况下,时隙可以为2500/1000*5*2us=25us,但是事实上并非如此简单.实际上的时隙一定会比25us大些.接下来说明一下~~~3,在以太网在,时隙也可以叫做争用期,只有经过争用期这段时间没有检测到冲突碰撞,发送端才能肯定这次发送不会发生碰撞.然后当发生了碰撞而停止之后,以太网上的机器会再次侦听,再发送,这就有个再次碰撞的可能性,这里以太网使用了截断二进制指数类型的退避算法来解决,在碰撞之后,会推迟一个随机时间(具体略),这也会对争用期的选择有些影响.而这个截断二进制指数类型的退避算法的有关说明,可以看看我回的这个帖子~基于上面所说的原因,也因为考虑到了端到端时延,而且还包括其他的许多因素,如可能存在的转发器所增加的时延等等~~~~以太网取51.2us为争用期,也就是时隙对于10Mbps以太网来说,10Mb/s*51.2us=512bit,所以一般说的512bit时隙长度就是这样来的,这个长度为512/8=64字节.以太网在发送数据时,如果在前面64字节没有发生冲突的话,那么后续的数据就不会发生冲突,以太网就认为这个数据的发送是成功的.100Mbps和1000Mbps以太网的时隙(1)100Mbps以太网的时隙:100Mbps以太网的时隙仍为512位时,以太网规定一帧的最小发送时间必须为5.12μs。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8
网络LSA(类型2 网络LSA(类型2) LSA 32 8 8 老化时间 可选项 链路状态ID 通告路由器 序列号 校验和 长度 网络掩码 相连的路由器 相连的路由器 … 相连的路由器
网络汇总LSA(类型3 网络汇总LSA(类型3)和ASBR汇总LSA( LSA ASBR汇总LSA( 汇总LSA 32 8 8 8 老化时间 可选项 链路状态ID 通告路由器 序列号 长度 校验和 网络掩码
LSA头部 LSA头部 32 8 老化时间 8 8 可选项 链路状态ID 通告路由器 序列号 长度
校验和
路由器LSA(类型1 路由器LSA(类型1) LSA 32 8 8 8 老化时间 可选项 链路状态ID 通告路由器 序列号 校验和 长度 链路数量 00000|V|E|B 0x00 链路ID 链路数据 度量 链路类型 ToS的数量 ToS度量 ToS 0x00 … 链路ID 链路数据
长度
链路数据的值 链路类型 链路数据字段的值 1 和网络相连的始发路由器接口的IP地址* 2 和网络相连的始发路由器接口的IP地址 3 网络的IP地址或子网掩码 4 始发路由器接口的MIB-II ifindex值 *如果点到点链路是无编号的,那么这个字段将替代携带 接口的MIB-II ifindex值
长度
8 类型=1
长度 链路数量
度量 度量
类型代码 1 2 3 4
链路类型 连接 点到点连接到另一台路由器 连接到一个传送网络 连接到一个末梢网络 虚链路
链路类型 1 2 3 4 8 类型=2
链路ID的值 链路ID的值 ID 链路ID ID字段的值 链路ID字段的值 邻居路由器的路由器ID DR路由器的接口的IP地址 IP网络或子网地址 邻居路由器的路由器ID
OSPF数据包格式 OSPF数据包格式
OSPF包头 OSPF包头 32 8 版本 8 类型 路由器ID 区域ID 校验和 认证 认证 数据包数据 如果认证类型=2,那么认证字段就是: 0x0000 密钥ID 认证数据长度 加密序列号 认证类型 8 数据包长度 8 类型代码 1 2 3 4 5 OSPF 认证类型代码(AuType) 认证类型代码(AuType) 0 1 2 OSPF数据包类型 OSPF数据包类型
E|
E|
NSSA外部LSA(类型7 NSSA外部LSA(类型7) 外部LSA 32 8 8 8 老化时间 可选项 链路状态ID 通告路由器 序列号 校验和 长度 网络掩码 度量 ToS 转发地址 外部路由标志 … 网络掩码 度量 ToS 转发地址 外部路由标志
OSPF LSA 格式
LSA类型 LSA类型 8 类型 类型代码 1 2 3 4 5 6 7 8 9 10 11 描述 路由器LSA 网络LSA 网络汇总LSA ASBR汇总LSA AS外部LSA 组成员LSA NSSA外部LSA 外部属性LSA Opaquel LSA(链路本地范围) Opaquel LSA(本地区域范围) Opaquel LSA(AS范围)
OSPF链路状态请求数据包 OSPF链路状态请求数据包 32 8 8 8 8 数据包长度 版本 类型=3 路由器ID 区域ID 校验和 认证类型 认证 认证 链路状态类型 链路状态ID 通告路由器 … 链路状态类型 链路状态ID 通告路由器
链路状态更新数据包 32 8 8 8 8 数据包长度 版本 类型=4 路由器ID 区域ID 校验和 认证类型 认证 认证 LSA数目 LSA
长度
8 类型=5
长度
ห้องสมุดไป่ตู้8 类型=7
长度
OSPF协议Hello数据包 OSPF协议Hello数据包 协议Hello 32 8 8 8 8 数据包长度 版本 类型=1 路由器ID 区域ID 校验和 认证类型 认证 认证 网络掩码 Hello间隔 可选项 路由器优先级 路由器无效时间间隔 指定路由器 备份指定路由器 邻居 … 邻居
OSPF数据库描述数据包 OSPF数据库描述数据包 32 8 8 8 8 数据包长度 版本 类型=2 路由器ID 区域ID 校验和 认证类型 认证 认证 接口MTU 可选项 00000|I|M|MS DD序列号 LSA头部
链路状态确认数据包 32 8 8 8 8 数据包长度 版本 类型=5 路由器ID 区域ID 校验和 认证类型 认证 认证 LSA头部
数据包类型 描述 Hello 数据库描述 数据库状态请求 数据库状态更新 数据库状态确认 OSPF认证类型 OSPF认证类型 认证类型 空(没有认证) 简单(明文)口令认证 加密校验和(MD5)
(类型4) 类型4 8 类型=3或4 IP头部ToS字段 头部ToS IP头部ToS字段 0000 0001 0010 0100 1000
ToS的值 OSPF ToS的值 ToS的值 RFC ToS的值 正常的服务 最小的成本代价 最大的可靠性 最大的吞吐量 最小的时延 OSPF的ToS编码 OSPF的ToS编码 0 2 4 8 16
0x00 ToS … 0x00
度量 ToS度量 度量
自治系统外部LSA(类型5 自治系统外部LSA(类型5) LSA 32 8 8 8 老化时间 可选项 链路状态ID 通告路由器 序列号 长度 校验和 网络掩码 度量 E|0000000 转发地址 外部路由标志 ToS度量 E| ToS 转发地址 外部路由标志 … 网络掩码 度量 E|0000000 转发地址 外部路由标志