EIGRP在与邻居路由器进行通信时,使用以下7种不同类型的数据包:
 
Hello包
确认包
更新包
查询包
响应包
SIA查询包
SIA响应包
 
更新包,查询包,响应包,SIA查询包和SIA响应包也称为可靠数据包,因为EIGRP会确保它们传输成功且顺序正确。
 
1.有用的EIGRP数据包
 
可以使用show ip eigrp traffic来查看路由器上发送和接收到的所有EIGRP数据包的统计信息。
 
接下来详细介绍每一种EIGRP数据包
 
2.Hello
 
—旦管理员在路由器的某个接口上启用了EIGRP.它就会周期性地发送Hello包。这些 Hello消息能够用来识別邻居.确认邻居的配置是否合适(属于相同IP 子网、使用相同AS 号、K值和认证.如果配置了的话).还是用作邻居之间的存活确认机制。EIGRP Hello包 的目的组播组地址是:在IPv4中为224.0.0.10.在IPv6中为FF02:: A。如果邻居是工程师静态配置的.那么EIGRP会将Hello包以单播的形式发送到那个明确配置的邻居地址。默认的Hello间隔是5杪;在NBMA接口上.当带宽设置为1544 kbit/s及以下时.默认的Hello间 隔是60杪。EIGRP Hello包的操作码是5.不需要确认。
 
3.确认包
 
EIGRP确认(ACK)包用来确认接收到的EIGRP数据包,从而实现EIGRP数据包的可靠传输。对于更新包、査询包、响应包、SIA査询包和SIA响应包来说,需要用ACK作为确认,确认包总是以单播形式发送。根据数据包的格式规定,EIGRP ACK本质上就是没有内容 (没有TLV)的Hello包,只携带图8-3中展示的通用EIGRP数据包头部,确认号字段为非零的值,具体设置为需要确认的可靠数据包的序列号。ACK包的操作码与Hello包一样,都是5。
 
再次注意之前展示的EIGRP数据包头部,每个头部中都包含确认号字段。在EIGRP中,任何以单播形式传输的可靠数据包中都可以携带一个确认号。如果路由器既需要向一 个邻居发送一个单播可靠数据包,同时又需要确认之前从这个邻居那里收到的可靠数据包,它就可以在要发送的这个可靠数据包的确认号字段中,写入接收到的可靠数据包的序列号,而无须单独发送一个ACK包。对于携带有非零确认号的单播可靠数据包,接收方会根据它的实际类型进行处理,也会将它当作ACK包进行处理。
 
EIGRP对于确认号字段的使用,与TCP非常类似:在TCP会话建立后,每个TCP分段中可以同时在负戟中包含数据,在头部的确认号字段中包含确认信息。如果TCP分段的发送方需要向对方发送数据,它会在这个TCP分段中包含上次接收到的字节的确认信息(加1)。 如果它不需要向对方发送任何数据,它就会发送不携带内容的TCP分段头部,其中记录了 正确的确认信息。EIGRP的做法基本上是一样的:如果路由器需要向同一个邻居发送ACK包和可靠数据包,它可以将确认号写入可靠数据包的确认号字段中,无需发送单独的ACK包。 如果路由器不需要向邻居发送任何可靠数据包,而只需要发送确认包,EIGRP会选择能够携带空内容的数据报类型来承戟这个确认号,显然它会使用Hello包;因此单独的ACK包实际上就是没有任何TLV的Hello包,其中只设置了确认号字段。需要注意的是,ACK包实际 上只包含EIGRP数据包头部,这一点与TCP使用分段头部和空负戟来传输确认信息是一样的。
 
—定要记住这一点,除了可靠数据包外,EIGRP只能使用那些以单播形式发送的数据包来承载确认号。在组播可靠数据包中携带确认号是没有任何意义的,因为这种数据包是发送给多台路由器的,而确认信息本身只与一个邻居发送的一个数据包相关。
 
4.更新包
 
EIGRP的更新包中包含路由信息的更新.用来传输目的地的可达性信息。更新包可以是单播数据包.也以是组播数据包。使用组播还是单播来发送更新包的规则总结如下。
 
•在建立新邻接关系的过程中.新发现的邻居之间是以单播形式发送更新包的。在特殊环境中.如果在短时间内.EIGRP在一个多访问接口上检测到了多个新邻居.它可能会选择使用组播.以便高效地发送更新包(比如.DMVPN[动态多点VPN]网络中的中心路由器启动后.检测到了几十或上百个分支路由器)。在邻接关系建立阶段.选择以 何种形式(单播或组播)发送更新包的方法并没有公开。最终的选择只与初始化同步阶段的工作效率有关.并不会影响邻居间交换的实际信息。
•路由器完全同步后.之后的更新包都是以组播形式发送的。
•如果某个邻居没有对收到的更新包进行确认.EIGRP以单播形式.向未响应的邻居重传更新包。
•在点到点接口上.对于工程师静态配置的邻居.EIGRP总是以单播形式向其发送更新包。
 
更新包的传输是可靠的.因为它们总是需要确认.如果在特定时间段内没有收到确认信息.EIGRP就会重传未确认的更新包。更新包的操作码是1。
 
5.查询包
 
EIGRP使用查询包让邻居参与到寻找去往某目的地的工作中。与更新包类似,查询包的传输也是可靠的。查询包可以是单播数据包,也可以是组播数据包;默认情况下,在只连接动态邻居的多访问接口上.ElGRP以组播形式发送查询包。如果在特定时间段内没有收到某个邻居的确认信息,ElGRP就会以单播形式向这个未响应的邻居重传这个查询包。 在连接静态配置邻居的点到点接口上.ElGRP总是以单播形式发送查询包。需要注意的是, 虽然邻居必须发送ACK包,来对自己接收到的查询包进行确认,但这个ACK包中并不包含对这个查询消息的响应,而是只确认自己收到了这个查询包。下面介绍的响应包是用作这 目的的。EIGRP查询包的操作码是30
 
6.响应包
 
EIGRP使用响应包来对查询包做出响应,其中包含发送方去往该目的地的当前距离,这个距离是依照触发了查询包的拓扑变化重新计算过的。响应包总是以单播形式发送给查询包发送者的,同时它的传输也是可靠的。EIGRP响应包的操作码是4。
 
7.SIA查询包和SIA响应包
 
这两个数据包类型是在弥散计算过程中使用的,用来确认那些还未对查询包发出响应包的邻居是否确实可达,是否还在忙于相应的弥散计算。SIA查询包用来询问某个邻居. 它是否还在处理最初的查询包。如果邻居仍然可达,并且仍在对SIA查询中指定的目的地 进行弥散计算,那这个邻居会马上以SIA响应包作为回应。这样一来,定义了弥散计算可以持续多长时间的计时器会被重置.为计算提供更多的时间。SIA查询包和SIA响应包都是以单播形式发送的,它们的传输都是可靠的。SIA查询包的操作码是10. SIA响应包的操作码是11。
 
 
 
 
 

EIGRP-6-EIGRP数据包的更多相关文章

  1. EIGRP-5-EIGRP数据包格式

    EIGRP数据包直接承戟在IP数据包中.协议号为88.EIGRP数据包的最大长度取决于具体接口上的最大IP MTU设置——通常完整IP数据包为1500字节.其中1480字节可以用于 EIGRP数据包. ...

  2. 用Java代码实现拦截区域网数据包

    起因: 吃饭的时间在想如果区域网内都是通过路由器上网,那如何实现拦截整个区域网的数据包,从而实现某种窥探欲. 思路:      正常是通过电脑网卡预先设置或分配的IP+网关对路由器进行通讯,比如访问百 ...

  3. C# TCP socket发送大数据包时,接收端和发送端数据不一致 服务端接收Receive不完全

    简单的c# TCP通讯(TcpListener) C# 的TCP Socket (同步方式) C# 的TCP Socket (异步方式) C# 的tcp Socket设置自定义超时时间 C# TCP ...

  4. sk_buff封装和解封装网络数据包的过程详解

    转自:http://www.2cto.com/os/201502/376226.html 可以说sk_buff结构体是Linux网络协议栈的核心中的核心,几乎所有的操作都是围绕sk_buff这个结构体 ...

  5. 浅谈UDP(数据包长度,收包能力,丢包及进程结构选择)

    UDP数据包长度 UDP数据包的理论长度 udp数据包的理论长度是多少,合适的udp数据包应该是多少呢?从TCP-IP详解卷一第11章的udp数据包的包头可以看出,udp的最大包长度是2^16-1的个 ...

  6. android应用安全——(数据抓包)跟踪监控android数据包

    转载博客:http://blog.csdn.net/xyz_lmn/article/details/8808169 web开发中Chrome.IE.firefox等浏览器都自带提供了插件帮助开发者跟踪 ...

  7. Linux iptables原理--数据包流向

    Iptable与Netfilter 在上一篇文章 linux iptables常用命令--配置一个生产环境的iptables 我们知道iptables有好几个表,如raw,mangle,nat,fil ...

  8. iOS开发之Socket通信实战--Request请求数据包编码模块

    实际上在iOS很多应用开发中,大部分用的网络通信都是http/https协议,除非有特殊的需求会用到Socket网络协议进行网络数 据传输,这时候在iOS客户端就需要很好的第三方CocoaAsyncS ...

  9. Charles 如何抓取https数据包

    Charles可以正常抓取http数据包,但是如果没有经过进一步设置的话,无法正常抓取https的数据包,通常会出现乱码.举个例子,如果没有做更多设置,Charles抓取https://www.bai ...

随机推荐

  1. linux命令学习笔记(58):telnet命令

    telnet命令通常用来远程登录.telnet程序是基于TELNET协议的远程登录客户端程序.Telnet协议是TCP/IP协议族 中的一员,是Internet远程登陆服务的标准协议和主要方式.它为用 ...

  2. Python 标准库 —— 邮件(email)与邮件服务器(smtplib)

    你真的懂邮件吗?邮件包括如下四部分内容: 发送人:from_addr 接收人:to_addr 主题:subject 正文:msg(mime text 格式文本) 其中发送者,接收者,又需要两部分的内容 ...

  3. bzoj1059ZJOI2017矩阵游戏

    小Q是一个非常聪明的孩子,除了国际象棋,他还很喜欢玩一个电脑益智游戏——矩阵游戏.矩阵游戏在一个N *N黑白方阵进行(如同国际象棋一般,只是颜色是随意的).每次可以对该矩阵进行两种操作:行交换操作:选 ...

  4. L2-016 愿天下有情人都是失散多年的兄妹(25 分)

    呵呵.大家都知道五服以内不得通婚,即两个人最近的共同祖先如果在五代以内(即本人.父母.祖父母.曾祖父母.高祖父母)则不可通婚.本题就请你帮助一对有情人判断一下,他们究竟是否可以成婚? 输入格式: 输入 ...

  5. uoj problem 14 DZY Loves Graph

    题目: DZY开始有 \(n\) 个点,现在他对这 \(n\) 个点进行了 \(m\) 次操作,对于第 \(i\) 个操作(从 \(1\) 开始编号)有可能的三种情况: Add a b: 表示在 \( ...

  6. BZOJ4009:[HNOI2015]接水果

    浅谈树状数组与线段树:https://www.cnblogs.com/AKMer/p/9946944.html 题目传送门:https://www.lydsy.com/JudgeOnline/prob ...

  7. 彻底删除kafka下面的topic

    如果只是用kafka-topics.sh的delete命令删除topic,会有两种情况: 如果当前topic没有使用过即没有传输过信息:可以彻底删除 如果当前topic有使用过即有过传输过信息:并没有 ...

  8. Linux根据端口查看进程

    若不知道具体目录,可以根据端口查找,查看端口22000的信息: sudo lsof -i:22000 RelaySvr 4322 root   13u  IPv4 75680495      0t0  ...

  9. web攻击之八:溢出攻击(nginx服务器防sql注入/溢出攻击/spam及禁User-agents)

    一.什么是溢出攻击 首先, 溢出,通俗的讲就是意外数据的重新写入,就像装满了水的水桶,继续装水就会溢出,而溢出攻击就是,攻击者可以控制溢出的代码,如果程序的对象是内核级别的,如dll.sys文件等,就 ...

  10. RSA-CRT leaks__因使用中国余数定理计算RSA所引起的私钥泄露

    在heartbleed[1]漏洞后,很多用户打开了PFS[2]功能.但很不幸,之后RedHat又报告出在多个平台上存在RSA-CRT导致的密钥泄露[3]. 中国余数定理(CRT)常被用在RSA的计算中 ...