tlv协议格式应用(tlv格式数据解析案例)
tlv协议格式应用(tlv格式数据解析案例)
2024-11-22 11:43:58  作者:冬涩诺言  网址:https://m.xinb2b.cn/life/hpn431871.html
说明

之前介绍过EIGRP建立邻居的过程,并且介绍了一些特性,这次主要看的是EIGRP的数据包格式,包括TLV,和EIGRP的三张表的内容。

EIGRP的包头字段

1、版本:从EIGRP发布以来,一直为版本22、操作码:指出EIGRP数据包的类型,1为更新 3为查询 4为答复 5为hello和ACK3、标记:包括两个标记,一个为init位,表示新的邻居开始,第二位为接收位,使用一个私有可靠组播算法4、序列号:RTP中使用的32位序列号5、确认序列号(ACK):本地路由器从邻居路由器那收到最新的序列号,单播传送的6、自主系统号(AS):指定EIGRP协议所处的标示号,所以,两端都必须一致7、TLV:(1)一般TLV:携带K值和hold time时间,包括序列、软件版本和下一个组播序列(一般用Hello包进行发送)

TLV的类型

在EIGRP中引用TLV的字段,TLV称为 Type/Length/Value ,这个TLV在路由选择协议中有非常好的扩展性,特别是ISIS中,它就是利用TLV字段来扩展支持更多的特性,当一个新的协议或者特性出现,路由协议需要去支持它,像OSPF的话,IPV6的支持就必须开发新的版本了,而ISIS对IPV6的支持,直接用TLV字段就能实现,EIGRP也是如此。


(1)一般TLV:携带K值和hold time时间,包括序列、软件版本和下一个组播序列(一般用Hello包进行发送)


(2)IP内部路由TLV:从同一个AS内学习到的路由参数

1、下一跳:包括这个路由的更新源,如果为0.0.0.0,那么表示自身2、延迟(delay):以10us为单位,沿途更新入向接口延迟总和3、带宽(bandwidth):2560 000 000/沿途更新入向接口的最小带宽4、MTU:指路由器沿途抵达目的地路由器上所有链路中最小的MTU,一般不作为metric的参数计算5、跳数:表示到达目的地路由的跳数,最大为255。6、可靠性:用于反映到达目的的路由上接口的出站误码率的总和,取值0x01~0xFF7、负载:用于反映到达目的的路由上接口的出站负载的总和,取值0x01~0xFF8、保留字段:未使用的字段9、前缀长度:携带子网掩码10、目的地址:一个路由的目的地址


(3)IP外部路由TLV:从不同AS或不同路由协议重分布进本AS内的路由参数

1、下一跳:路由的下一跳地址。2、原路由器:一个IP地址,或者重分布外部路由到EIGRP的RID3、原自主系统号:始发路由的路由器所在的AS4、Arbitrary Tag:路由映射 Tag5、外部协议度量:标注外部路由的度量值6、保留字段:不被使用7、外部协议ID:用来标示外部路由从哪个协议学习到。8、标记:定义了两个值,如果为0x01的话,那么表示外部路由,如果是0x02表示缺省路由

EIGRP的五种类型数据包

1、hello :目标地址为224.0.0.10,用于发现和维持邻居关系。邻居收到后不需要确认,Hello间隔由接口类型决定,低速链路–90s,高速链路–5s。(hello包中包含版本号、Opcode=5、seq、ACK、AS、EIGRP K值,seq和ACK永远为0,AS和EIGRP包括IP包的源地址是检查能否成为邻居的关键)


在Hello包中携带了K值、hold time时间,还包括软件的版本号,Opcode为5,如果两边邻居处于同一网段的话,邻居检查Hello包,还会看K值是否一致,如果不一致,则邻居建立不起来。

K值和软件版本是携带在TLV中传递的,也就是一般TLV字段

2、Update:发送给邻居路由表,通过单播或组播发送update数据包,邻居收到以后必须回复确认信息,如果没有收到来自邻居的确认信息,那么就会单播发送这个跟新包16次,在16次后还没有关于这个邻居的ACK信息,则认为邻居失效。会标明这路由信息属于外部还是内部的,内部的只携带了K值的参数,而外部标明了起源着是谁,还有tag信息。


在update包中,携带了路由信息,可以看到我ip interal route,它就是内部TLV字段,内部TLV的每个路由条目中包含的内容,在TLV字段中介绍了,可以查看数据包看看


可以看到Opcode为1,携带了子网掩码,和5个K值的参数,next hop为0.0.0.0,怎么是自己发送的。

3、Query:当路由信息丢失并没有备用路由时,使用Query数据包向邻居查询,邻居必须回复确认ACK和等待邻居的reply。


可以看到Opcode为3,当一条路由失效,并且没有FS的时候,就会对邻居进行插叙,可以看到192.168.4.0/24标记为目的不可达,这里序列号为46,看下回应的ACK内容


回应了ACK 46,并且是单播回应给10.0.0.2的

4、Reply:是对邻居Query数据包的回复,也需要邻居回复确认。


Opcode为4,reply,它回应的是关于192.168.4.0/24的不可达信息,另外,看下啊 Sequece:57,Acnowledge为48,这个48回应就是之前query,它的序列号为48,这是一种可靠性的表现查看关于回应ACK的信息,因为在收到一个reply后,也需要回应ACK


5、Ack:是对收到的数据包的确认,告诉邻居我已经收到数据包了,收到ACK,不需要对ACK做回复,这样导致死循环 (因为在IP中没有可靠的传输机制,必须依靠EIGRP来完成)

其中hello包中还携带了hold time时间,这个时间是给邻居使用的 ,告诉邻居如果在这个时间内还没收到关于我的任何hello信息的话,那么就认为邻居不存在了。

EIGRP的三张表探讨

地址信息如图,从R1上观看EIGRP的三张表情况,与在A与B之间还有个网段10.1.1.0/24

R1(config)#router eigrp 1R1(config-router)#network 10.1.1.1 0.0.0.0R1(config-router)#network 12.1.1.0 0.0.0.255

R2(config)#router eigrp 1R2(config-router)#network 12.1.1.2 0.0.0.0R2(config-router)#network 23.0.0.0R2(config-router)#network 10.1.1.2 0.0.0.0

R3(config)#router eigrp 1R3(config-router)#network 23.1.1.2 0.0.0.0

这里一定要注意IGP也就是内部协议network的含义匹配上network范围的网段都参路由协议,并且把这个网段宣告出去,也就是说12.1.1.2 0.0.0.0代表精确匹配,这里掩码为反掩码,0代表精确匹配,1代表忽略,就像12.1.1.0 0.0.0.255,它匹配的范围就是,12.1.1不变,因为0代表精确匹配,而255,则为忽略,也就是1~254, 另外不携带反掩码信息的话,那么就是以主类网络宣告

一、邻居表

通过 show ip eigrp neighbos查看邻居状态,包括可以加 detail参数,可以看到更加详细的内容


1、H:代表序列号,邻居的先后建立的顺序

2、address:显示邻居建立的地址信息,EIGRP对于同一个直连路由器建立的邻居,在有多条链路的情况下,会认为是多个邻居存在,就像B一样,同一台路由器,有多条链路,在A看来是不同的邻居存放的

3、interface:自己哪个接口参与建立的邻居关系

4、hold:在对方Hello包中携带的参数,在高速链路上,默认为15,也就是Hello包的3倍,当15s没有收到来自邻居的Hello包后,就认为对方失效 ,当然在正常情况下,每5s收到一个对方的Hello包,也就是hlod不低于10

5、uptime:与邻居建立的时间计时器。

6、SRTT(Smooth Round-Trip Timer):平均往返时间,用来计算当一个路由器发送EIGRP数据包到邻居,从邻居接收到该数据包并且确认的平均时间。

7、multicast flow tmer:在说RTO之前,介绍个组播流计时器,当一个更新发送出去以后,邻居没有回应,那么这个等待的时间就由组播计时器决定,当计时器超时以后,就切换成单播来再次发送更新给邻居,等待邻居回应的ACK

8、RTO:决定单播传送之间的间隔时间

9、Q:当组播发送了更新后,而对方没有回应ACK的时候,会缓存在本地 ,那么会以单播的形式重新发送这个数据包给邻居,如果16次还没收到ACK,重置邻居

10、 Seq : 收到了邻居更新的次数,每次增加1

这里说下,关于SRTT和RTP是思科私有的算法,所以,没有公开的计算方法,在正常情况下,RTO是ST的6倍,但是,当邻居出现了故障以后,这个参数就会改变,RTO最大值为5000, 另外 在Cisco IOS中,没有可以定义这两个值的命令,卷一也没有提及过。

二、拓扑表

对于EIGRP来说,拓扑表中存在的内容是整个网络收敛的关键,对于EIGRP在网络中部署的关键,就是让每条路由都有可用的FS,关于FS和其他概念在DUAL算法总总结,这里拓扑表只做一个小小的介绍。

show ip eigrp topology来查看参数


可以看到,拓扑表中存放着去往每个目的地的路由信息,这里有FD和AD的概念,这个是DUAL的核心算法,在后面会再次介绍,当有多条路径去往同一个目的地的,当满足了特定的条件后,它也会出现在拓扑表中,这个条件就是FC,这个在DUAL算法的时候进行详细说明。

三、路由表

路由表是存放最优的下一跳的信息,可以看到在拓扑表中去往23.0.0.0/8,经过不同的下一跳到达,在路由表中出现的则只会是最优的,在拓扑表中为FD is 3087200,也就是最优的,下一跳为12.1.1.2。


总结:这次详细讲解了EIGRP的数据包格式,包括TLV中的作用,另外关于拓扑表的详细内容必须到DUAL算法中才好讲解,拓扑表的内容都是通过DUAL算法得来的。

  • 带你看养老社区之成熟的泰康之家(高端养老社区篇一)
  • 2024-11-22高端养老社区篇一第一次参观位于北京昌平的高端养老社区泰康燕园,就被震撼到了!对它一见钟情,相见恨晚!恨不得自己马上退休入住!泰康的高端养老社区在业界独树一帜,口碑良好!泰康之家致力于打造大规模、全功能、世界级标准的医。
  • 王者荣耀友商是什么(OPPO成为王者荣耀友商)
  • 2024-11-22OPPO成为王者荣耀友商OPPO、高通、王者荣耀三方一拍即合,oppo是王者荣耀安卓用户量第一的手机品牌,所以重视用户体验的OPPO针对这款游戏的体验进行了优化为此,OPPO并没有孤军作战,先与高通商榷开展优化工作,随后两者。
  • 白癜风是血瘀原因吗(白癜风调和气血)
  • 2024-11-22白癜风调和气血文章来源慢病公社,为慢病公社原创,谢绝转载白癜风作为一种常见的皮肤病,中医对它有着怎样的分析和认识呢?风湿、肝肾不足以及气血两虚造成的白癜风都有什么不同的治疗方法呢?01医案王某,女,45岁1993年。
  • 食肉海绵长什么样子(自然密码主动)
  • 2024-11-22自然密码主动主动“出击”的食肉海绵提及海洋动物海绵,许多人都想当然地认为它们很温顺,但实际上它们中也不乏猎食者譬如,地中海有一种非常厉害的海绵——食肉海绵这种海绵进化出了钩状的棘刺,不再通过体壁虑食营养物质,而是。
  • 卡鱼刺怎么办(试试这几种方法)
  • 2024-11-22试试这几种方法可以采用苹果和梨的皮,我们把这些皮要削下来,然后开始大口大口的吃,在吃到一定的程度后,先积攒到一块,猛然间吞下去,这种也是一个处理被鱼刺卡住的好方法也可以用菠菜,我们采用半斤菠菜,把水烧开以后,在放进。
  • 什么时候去呼伦贝尔最合适(去呼伦贝尔不带上妹纸)
  • 2024-11-22去呼伦贝尔不带上妹纸昨天头条号刊发了我行摄呼伦贝尔第一天的文章,今天继续讲述第二天的精彩故事今天从恩和—哈乌尔河—室韦—八间房—莫尔道嘎,是从草原到森林过渡到莫尔道嘎兴安林区,一路美景继续!8:30出发9:15白桦林徜徉。
  • 雷鸟f11优点(更为精准强劲的打击AX100ZZ)
  • 2024-11-22更为精准强劲的打击AX100ZZ2020年公开赛—作为天斧AX100ZZ(ASTROX100ZZ)的处子秀无疑是获得巨大成功的,初次使用AX100ZZ的两位选手:安塞龙、远藤大由都获得了各自比赛项目的男单、男双的冠军按照YONEX以。
  • 花间提壶方大厨演员怎么退圈了(花间提壶方大厨大剧透)
  • 2024-11-22花间提壶方大厨大剧透没有爱奇艺会员的同胞们,这是福利篇,想知道一勺是什么身份吗?想知道沈勇最后有什么恶果子吃吗?还有里面的三个帅男人太子、沈大哥、刘公子的结局吗?太子为什么对一勺有仇,因为一个误解,皇帝爱上了一勺的娘,就。
  • 他用一支笔写了所有人的孤独(向命运所安排的荆棘坎坷宣战)
  • 2024-11-22向命运所安排的荆棘坎坷宣战来源:中央广电总台中国之声“虽然我没有健康的身体俊秀的相貌……但我不气馁我有一颗快乐的心剥开生命最精彩的云彩”这些动人的诗句是由一位重度脑瘫小伙用鼻尖和下巴敲出来的他的励志故事打动了全网“只要我还在,。
  • 老母鸡炖香菇做法(养生香菇炖老母鸡)
  • 2024-11-22养生香菇炖老母鸡1张图片“香菇炖老母鸡,香菇和鸡肉搭配在一起口味特别清香,而且因为其营养价值特别高,鸡肉本身一直被人们看着是滋补身体的好东西,而香菇也是养生保健必不可少的食物之一,两者都具有很浓的香味,搭配在一起做成。
  • 哪些女明星都拍了古装剧(各大80后女星拍古装剧)
  • 2024-11-22各大80后女星拍古装剧 同样回归古代偶像,有人说赵丽颖的新剧阵容远不如杨幂这波输了吗?80后明星回归古装偶像剧,扛起80后女星古装偶像剧的半边天!虽然年龄上都过三十了,但风采依然不减古偶是她们的大本营,玩起来也是得心应手随。