ICMP 路由器发现消息

简介: 此 RFC 为 Internet 社区指定了 IAB 标准跟踪协议,并请求讨论和改进建议。本协议的标准化状态及现状请参考现行版本的《IAB官方协议标准》。本文档是 IETF 路由器发现工作组的产品。本备忘录的分发不受限制。

640.gif


RFC1256:ICMP Router Discovery Messages,September 1991


本备忘录的状态


此 RFC 为 Internet 社区指定了 IAB 标准跟踪协议,并请求讨论和改进建议。本协议的标准化状态及现状请参考现行版本的《IAB官方协议标准》。本文档是 IETF 路由器发现工作组的产品。本备忘录的分发不受限制。


梗概


本文档指定了 Internet 控制消息协议 (Internet Control Message Protocol,ICMP) 的扩展,以使连接到组播或广播网络的主机能够发现其相邻路由器的 IP 地址。


1、 术语


以下术语在本文档中使用时具有精确含义:


system


系统,一种实现 Internet 协议 IP [9] 的设备。


router


路由器,[2] 中指定的转发 IP 数据报的系统。这不包括虽然能够进行 IP 转发但已关闭该功能的系统。它也不包括仅在遵守 IP 源路由选项要求的情况下进行 IP 转发的系统。


host


主机,任何不是路由器的系统。


multicast


组播,除非另有限定,否则指使用 IP 组播 [4] 或 IP 广播 [6] 服务。


link


链路,一种通信设施或介质,系统可以通过它在链路层进行通信,即紧接在 IP 之下的协议层。有时(不准确地)为此使用了术语“物理网络”。链路的例子有 LAN(可能桥接到其他 LAN)、广域存储转发网络、卫星信道和点对点链路。


multicast link


组播链路,支持 IP 组播或 IP 广播服务的链路。这包括广播媒体,如 LAN 和卫星频道、单点对点链路,以及一些存储转发网络,如 SMDS 网络 [8]。


interface


接口,系统对链路的连接点。一个系统有可能(尽管不寻常)有多个接口连接到同一个链路。接口由 IP 单播地址唯一标识;一个接口可能有多个这样的地址。


multicast interface


组播接口,组播链路的接口,即支持IP组播或IP广播服务的链路的接口。


subnet


子网,子网 IP 网络 [7] 的单个子网或单个非子网 IP 网络,即由 IP 地址标识的实体与其分配的子网掩码进行逻辑与运算。同一链路上可能存在多个子网。


neighboring


邻接,具有属于同一子网的 IP 地址。


2、 协议概述


在主机可以将 IP 数据报发送到其直接连接的子网之外之前,它必须发现该子网上的至少一个运行路由器的地址。通常,这是通过在启动时从(可能是远程的)配置文件中读取一个或多个路由器地址的列表来完成的。在组播链路上,一些主机还通过侦听路由协议流量来发现路由器地址。这两种方法都有严重的缺点:必须手动维护配置文件——一个重大的管理负担——并且无法跟踪路由器可用性的动态变化;窃听路由流量需要主机识别正在使用的特定路由协议,这些协议因子网而异,并且随时可能发生变化。本文档指定了使用一对 ICMP [10] 消息的替代路由器发现方法,用于组播链路。它消除了手动配置路由器地址的需要,并且独立于任何特定的路由协议。


ICMP 路由器发现消息称为“Router Advertisements”和“Router Solicitations”。每个路由器周期性地从其每个组播接口组播路由器通告,宣布该接口的 IP 地址。主机仅通过侦听通告即可发现其相邻路由器的地址。当连接到组播链路的主机启动时,它可能会组播路由器请求以请求立即通告,而不是等待下一个周期性通告的到达;如果(且仅当)没有通告即将到来,主机可以重新发送请求几次,但随后必须停止发送任何更多请求。任何随后启动的路由器,或者由于数据包丢失或临时链路分区而未被发现的路由器,最终都会通过接收它们的周期性(未经请求的)通告来发现。(遭受高丢包率或频繁分区的链接通过增加通告速率来适应,而不是增加允许主机发送的请求数量。)


路由器发现消息不构成路由协议:它们使主机能够发现相邻路由器的存在,但不能发现哪个路由器最适合到达特定目的地。如果主机为特定目的地选择了较差的第一跳路由器,它应该从该路由器接收 ICMP 重定向,从而识别出更好的路由器。


路由器通告包括每个通告路由器地址的“优先级”。当主机必须选择默认路由器地址时(即,对于特定目的地,主机没有被重定向或配置为使用特定路由器地址时),它应该从那些具有最高优先级的路由器地址中进行选择(请参阅主机要求 - 通信层 RFC [1] 中的第 3.3.1 节)。网络管理员可以配置路由器地址首选项级别,以鼓励或阻止将特定路由器用作默认路由器。


路由器通告还包括一个“寿命”字段,指定在没有进一步通告的情况下,所通告的地址被主机视为有效路由器地址的最大时间长度。这用于确保主机最终忘记出现故障、无法访问或停止充当路由器的路由器。


默认通告速率为每 7 到 10 分钟一次,默认生命周期为 30 分钟。这意味着,使用默认值,通告不足以作为“黑洞”检测的机制,即检测活动路径的第一跳故障——理想情况下,黑洞应该被检测到足够快以切换在任何传输连接或更高层会话超时之前到另一个路由器。假设主机已经具备[1]所要求的黑洞检测机制。主机不能为此目的依赖路由器通告,因为它们可能在任何特定链接或任何特定路由器上不可用或被管理禁用。因此,选择默认的广播速率和生命周期值只是为了使周期性组播广播对链路和主机施加的负载可以忽略不计,即使存在许多路由器也是如此。然而,希望使用通告作为补充黑洞检测机制的网络管理员可以自由配置较小的值。


3、 消息格式


3.1、 ICMP 路由器通告消息


640.png


IP字段:


Source Address:源地址,属于发送此消息的接口的 IP 地址。

Destination Address:目的地址,配置的 AdvertisementAddress 或相邻主机的 IP 地址。

Time-to-Live:生存时间,如果目标地址是 IP 组播地址,则为1;否则至少为1。


ICMP 字段:


Type:类型,9。

Code:代码,0。

Checksum:校验和,ICMP 消息的反码和的 16 位反码,以 ICMP 类型开头。为了计算校验和,校验和字段设置为 0。

Num Addrs:地址数量,此消息中通告的路由器地址数。

Addr Entry Size:地址条目大小,每个路由器地址的 32 位信息字数(在此处描述的协议版本中为 2)。

Lifetime:寿命,路由器地址可被视为有效的最大秒数。

Router Address:路由器地址[i],i = 1.. 地址数量,发送此消息的接口上的发送路由器的 IP 地址。

Preference Level:优先级[i], i = 1.. 地址数量,每个路由器地址的优选性[i]。

作为默认路由器地址,相对于同一子网上的其他路由器地址。有符号的二进制补码值;更高的值意味着更可取。


3.2、 ICMP 路由器请求消息


640.png


IP字段:


Source Address:源地址,属于发送此消息的接口的 IP 地址,或 0。

Destination Address:目的地址,配置的 SolicitationAddress。

Time-to-Live:生存时间,如果目标地址是 IP 组播地址,则为1;否则至少为1。


ICMP 字段:


Type:类型,10。

Code:代码,0。

Checksum:校验和,ICMP 消息的反码和的 16 位反码,以 ICMP 类型开头。为了计算校验和,校验和字段设置为 0。

Reserved:保留,作为 0 发送;接收时忽略。


4、 路由器规格


4.1、 路由器配置变量


实现 ICMP 路由器发现消息的路由器必须允许系统管理配置以下变量;指定默认值是为了在许多情况下无需配置这些变量中的任何一个。


对于每个组播接口:


AdvertisementAddress,通告地址


用于从接口发送的组播路由器通告的 IP 目标地址。唯一允许的值是全系统组播地址 224.0.0.1 或受限广播地址 255.255.255.255。(尽可能首选全系统地址,即在所有侦听主机都支持 IP 组播的任何链路上。)


默认值:如果路由器在接口上支持 IP 组播,则为 224.0.0.1,否则为 255.255.255.255


MaxAdvertisementInterval,最大通告间隔


从接口发送组播路由器通告之间允许的最长时间,以秒为单位。必须不小于 4 秒且不大于 1800 秒。


默认值:600 秒


MinAdvertisementInterval,最小通告间隔


从接口发送未经请求的组播路由器通告之间允许的最短时间,以秒为单位。必须不少于 3 秒且不大于 MaxAdvertisementInterval。


默认值:0.75 * MaxAdvertisementInterval


AdvertisementLifetime,通告寿命


放置在从接口发送的 Router Advertisements 的 Lifetime 字段中的值,以秒为单位。必须不小于 MaxAdvertisementInterval 且不大于 9000 秒。


默认值:3 * MaxAdvertisementInterval


对于每个路由器在其组播接口上的 IP 地址:


Advertise,通告


    指示地址是否要被通告的标志。


默认值:真


PreferenceLevel,优先级


相对于同一子网上的其他路由器地址,该地址作为默认路由器地址的可取性。一个 32 位有符号二进制补码整数,值越高表示越可取。最小值(十六进制 80000000)用于指示该地址,即使它可能被通告,也不会被相邻主机用作默认路由器地址。


默认值:0


如第 2 节所述,在将通告用于“黑洞”检测时,配置优先级为十六进制 80000000(而不是简单地将其 Advertise 标志设置为 FALSE)的地址很有用。特别是,仅用于到达特定 IP 目的地的路由器可以以十六进制 80000000 的首选项级别通告其地址(以便相邻主机不会将其用作到达任意 IP 目的地的默认路由器)和非零生存期(以便已被重定向或配置为使用它的相邻主机可以通过超时接收其通告来检测其故障)。


有人建议,当没有明确配置地址的优先级时,路由器可以根据路由器的“默认路由”(如果有的话)的度量来设置它,而不是像建议的那样将其默认为零。因此,对于其默认路由具有更好度量的路由器将为其地址通告更高的优先级。(请注意,编码为“越低越好”的路由指标在用作路由器通告消息中的优先级之前必须被反转。)这样的策略可能会减少某些链路上的 ICMP 重定向流量,使其更多主机到达任意目的地的首选路由器可能也是最佳选择。另一方面,重定向流量很少是链接上的重大负载,并且在某些情况下,这种策略会导致更多的重定向流量,而不是更少(例如,在最常选择的目的地最好到达的链接上通过具有最佳默认路由的路由器以外的路由器)。本文档对这个问题不做任何建议,实现者可以自由地尝试这样的策略,只要他们也支持上面指定的优先级的静态配置。


4.2、 路由器的消息验证


路由器必须静默丢弃任何收到的不满足以下有效性检查的路由器请求消息:


- IP 源地址是 0 或邻居的地址(即,在与该地址链路的子网掩码下,与到达接口上路由器自己的地址之一匹配的地址。)


- ICMP 校验和有效。


- ICMP 代码为 0。


- ICMP 长度(源自 IP 长度)为 8 个或更多八位字节。


ICMP 保留字段的内容以及前 8 个字节之外的任何八位字节都将被忽略。将来,对协议的向后兼容更改可能会在消息末尾指定保留字段或附加八位字节的内容;向后不兼容的更改可能使用不同的代码值。


通过有效性检查的请求称为“有效请求”。


路由器可以默默地丢弃任何收到的路由器通告消息。路由器接收此类消息的任何其他操作(例如,作为“对等发现”过程的一部分)超出了本文档的范围。


4.3、 路由器行为


路由器在路由器支持 IP 组播的所有接口上加入全路由器 IP 组播组 (224.0.0.2)。


术语“通告接口”是指具有至少一个其配置的 Advertise 标志为 TRUE 的 IP 地址的任何正常工作且已启用的组播接口。从每个通告接口,路由器发送周期性的组播路由器通告,包含以下值:


- 在 IP 头的目的地址字段中:接口配置的 AdvertisementAddress。


- 在 Lifetime 字段中:接口配置的 AdvertisementLifetime。


- 在Router Address[i] 和Preference Level[i] 字段中:所有Advertise 标志为TRUE 的接口地址,以及它们对应的PreferenceLevel 值。 (在不太可能的情况下,由于链路的 MTU 限制,并非所有地址都适合单个通告,因此会发送多个通告,除了最后一个之外,每个通告都包含尽可能多的地址。)


通告不是严格周期性的:后续传输之间的间隔是随机的,以降低与同一链路上其他路由器的通告同步的概率。这是通过为每个通告接口维护一个单独的传输间隔计时器来完成的。每次从接口发送组播通告时,该接口的计时器都会重置为接口配置的 MinAdvertisementInterval 和 MaxAdvertisementInterval 之间的均匀分布的随机值;定时器到期会导致从接口发送下一个通告,并选择一个新的随机值。(建议路由器在用于初始化其伪随机数生成器的种子中包含一些唯一值,例如其 IP 或链路层地址之一。虽然随机化范围以秒为单位配置,但实际随机-选择的值不应以整秒为单位,而应以最高可用计时器分辨率为单位。)


对于从接口发送的前几个通告(最多 MAX_INITIAL_ADVERTISEMENTS),如果随机选择的间隔大于 MAX_INITIAL_ADVERT_INTERVAL,则应将计时器设置为 MAX_INITIAL_ADVERT_INTERVAL。使用这个较小的间隔进行初始通告会增加路由器在第一次可用时被快速发现的可能性,因为可能存在数据包丢失。


除了周期性的、未经请求的通告之外,路由器还会发送通告以响应在其任何通告接口上接收到的有效请求。路由器可以选择将响应直接单播到请求主机的地址(如果它不为零),或者将其组播到接口配置的 AdvertisementAddress;在后一种情况下,接口的间隔计时器被重置为一个新的随机值,就像未经请求的通告一样。单播响应可能会延迟,并且组播响应必须延迟一个不大于 MAX_RESPONSE_DELAY 的小随机间隔,以防止与其他响应路由器同步,并允许使用单个响应来响应多个紧密间隔的请求组播通告。


如果路由器接收到发送到 IP 广播地址的请求,则在其配置的 AdvertisementAddress 为 IP 组播地址的接口上,路由器可能会将其响应发送到 IP 广播地址而不是配置的 IP 组播地址。此类事件表示配置不一致,应记录下来以供网络管理员采取可能的纠正措施。


需要注意的是,在系统启动以外的时候,接口可能会成为通告接口,这是从接口故障中恢复或通过系统管理操作的结果,例如:


- 启用接口,如果它已被管理禁用并且它具有一个或多个 Advertise 标志为 TRUE 的地址,或者


- 当接口具有一个或多个 Advertise 标志为 TRUE 的地址时,启用 IP 转发功能(即,将系统从主机更改为路由器),或


- 将一个或多个接口地址的 Advertise 标志设置为 TRUE(或添加一个带有 TRUE Advertise 标志的新地址),而之前该接口没有 Advertise 标志为 TRUE 的地址。


在这种情况下,路由器必须开始在新的通告接口上传输周期性通告,将前几个通告限制在不大于 MAX_INITIAL_ADVERT_INTERVAL 的时间间隔内。在主机成为路由器的情况下,系统还必须在路由器支持 IP 组播的所有接口上加入全路由器 IP 组播组(无论它们是否是通告接口)。


通过系统管理的操作,一个接口也可能不再是一个通告接口,例如:


- 以管理方式禁用接口,

- 关闭系统,或禁用 IP 转发功能(即,将系统从路由器更改为主机),或

- 将所有接口地址的 Advertise 标志设置为 FALSE。


在这种情况下,建议(但不要求)路由器在接口上传输最终的组播通告,与之前的传输相同,但 Lifetime 字段为零。在路由器成为主机的情况下,系统还必须在路由器支持 IP 组播的所有接口上脱离全路由器 IP 组播组(无论它们是否已通告接口)。


当一个或多个接口地址的 Advertise 标志被系统管理设置为 FALSE,但该接口上仍有其他地址的 Advertise 标志为 TRUE 时,建议路由器发送一个单独的组播通告,其中只包含那些其地址为通告标志设置为 FALSE,Lifetime 字段为零。


5、 主机规格


5.1、 主机配置变量


实现 ICMP 路由器发现消息的主机必须允许系统管理配置以下变量;指定默认值是为了在许多情况下无需配置这些变量中的任何一个。


对于每个组播接口:


PerformRouterDiscovery,执行路由器发现


指示主机是否要在接口上执行 ICMP 路由器发现的标志。


默认值:真


SolicitationAddress,请求地址


用于从接口发送路由器请求的 IP 目标地址。唯一允许的值是所有路由器组播地址 224.0.0.2 或受限广播地址 255.255.255.255。(尽可能首选所有路由器地址,即在所有通告路由器都支持 IP 组播的任何链路上。)


默认值:如果主机在接口上支持 IP 组播,则为 224.0.0.2,否则为 255.255.255.255


主机要求——通信层 RFC [1],第 3.3.1.6 节,指定每个主机实现必须支持默认路由器地址的可配置列表。ICMP 路由器发现消息的目的是消除在连接到组播链接的主机中配置该列表的需要。在非组播链路上,以及在路由器(尚)不支持 ICMP 路由器发现或被管理禁用的组播链路上,仍然需要在每个主机中配置默认路由器列表。列表中的每个条目都包含(至少)以下可配置变量:


RouterAddress,路由器地址


默认路由器的 IP 地址。


默认值:(无)


PreferenceLevel,优先级


相对于同一子网上的其他路由器地址,RouterAddress 作为默认路由器地址的可取性。主机要求 RFC 没有指定如何对这个值进行编码;为了允许在Router Advertisement中传送或由系统管理配置优先级,这里指定将其编码为32位、有符号、二进制补码整数,值越高表示更优选。保留最小值(十六进制 80000000),表示该地址不用作默认路由器地址,即仅用于特定 IP 目标,其中主机已通过 ICMP 重定向或配置通知.


默认值:0


5.2、 主机验证消息


主机必须静默丢弃任何收到的不满足以下有效性检查的路由器通告消息:


- ICMP 校验和有效。

- ICMP 代码为 0。

- ICMP Num Addrs 大于或等于 1。

- ICMP Addr Entry Size 大于或等于 2。

- ICMP 长度(源自 IP 长度)大于或等于 8 + (Num Addrs * Addr Entry Size * 4) 个八位字节。


每个地址信息的任何附加字的内容(即,除了路由器地址和优先级字段),以及前 8 + (Num Addrs * Addr Entry Size * 4) 八位字节之外的任何八位字节的内容,都将被忽略.未来,对协议的向后兼容更改可能会在消息末尾指定额外的每个地址信息字或额外的八位字节;向后不兼容的更改可能使用不同的代码值。


通过有效性检查的通告称为“有效通告”。


主机必须静默丢弃任何收到的路由器请求消息。


5.3、 主机行为


在主机支持 IP 组播的任何接口上,主机都是全系统 IP 组播组 (224.0.0.1) 的成员。这会自动发生,如 [4] 中所述;路由器发现协议实现部分不需要明确的操作。


主机从不发送路由器通告消息。


主机默默地丢弃到达主机配置的 PerformRouterDiscovery 标志为 FALSE 的接口的任何路由器通告消息,并且它从不在这样的接口上发送路由器请求。


主机在为接收通告的接口确定自己的 IP 地址和子网掩码之前,不能处理通告。(在某些链路上,主机可能能够使用 BOOTP [3]、RARP [5] 或 ICMP 地址掩码消息 [7] 的某种组合来发现自己的地址和掩码。)在等待学习地址和掩码时对于接口,主机可以保存在该接口上接收到的任何有效通告以供以后处理;这允许路由器发现和地址/掩码发现并行进行。


为了处理通告,主机扫描其中包含的路由器地址列表。它忽略任何非相邻地址,即在与该地址链路的子网掩码下与到达接口上的主机自己的地址之一不匹配的地址。对于每个相邻地址,主机执行以下操作:


- 如果该地址尚未出现在主机的默认路由器列表中,则将一个新条目添加到列表中,其中包含该地址及其随附的优先级和一个初始化为来自通告的 Lifetime 值的计时器。


- 如果由于先前接收到的通告,该地址已经出现在主机的默认路由器列表中,则更新其优先级并将其计时器重置为新接收到的通告中的值。


- 如果地址由于系统配置已经出现在主机的默认路由器列表中,则不会更改其优先级;没有与配置的地址链路的计时器。 (请注意,从 BOOTP 数据包 [11] 的供应商扩展字段的“网关”子字段获取的任何路由器地址都被视为已配置地址;它们被分配了默认的首选级别零,并且它们没有链路的计时器. 进一步注意,在 BOOTP 数据包 [3] 的“giaddr”字段中找到的任何地址都标识了不一定是 IP 路由器的 BOOTP 转发器;这样的地址不应安装在主机的默认路由器列表中。)


每当由于接收到的通告而创建的任何条目中的计时器到期时,都会丢弃该条目。


为了限制默认路由器列表所需的存储空间,主机可以选择不存储通过通告发现的所有路由器地址。如果是这样,主机应该丢弃那些优先级别较低的地址,转而支持优先级别较高的地址。最好在列表中保留一个以上的默认路由器地址,这样,如果发现当前选择的默认路由器已关闭,主机可以立即选择另一个默认路由器,而不必等待下一个通告到达。


任何以十六进制 80000000 的优先级通告的路由器地址都不会被主机用作默认路由器地址;这样的地址可以从默认路由器列表中省略,除非它的定时器被用作“黑洞”检测机制,如第 4.1 节所述。


应该理解,从通告中获知的优先级不会影响任何主机缓存的路由条目。例如,如果主机已被重定向以使用特定路由器地址到达特定 IP 目标,它会继续使用该路由器地址作为该目标,即使它发现另一个具有更高优先级的路由器地址。首选项级别仅影响没有缓存或配置路由的 IP 目的地的路由器选择,或者其缓存路由指向的路由器随后被发现为死路或无法到达。


在以下任何事件发生后,允许(但不是必需)主机从其任何组播接口传输最多 MAX_SOLICITATIONS 路由器请求消息:


- 接口在系统启动时初始化。

- 接口在临时接口故障或被系统管理临时禁用后重新初始化。

- 通过系统管理关闭其 IP 转发功能,系统从路由器变为主机。

- 接口的 PerformRouterDiscovery 标志由系统管理从 FALSE 更改为 TRUE。


请求的 IP 目标地址是为接口配置的 SolicitationAddress。如果主机尚未确定接口的地址,则 IP 源地址可能包含零;否则它包含接口的地址之一。


如果主机确实选择在上述事件之一之后发送请求,它应该将该传输延迟 0 到 MAX_SOLICITATION_DELAY 之间的随机时间量。当许多主机同时在一条链路上启动时,这有助于缓解拥塞,例如从电源故障恢复后可能发生的情况。(建议主机在用于初始化其伪随机数生成器的种子中包含一些唯一值,例如其 IP 或链路层地址之一。虽然随机化范围以秒为单位指定,但实际随机-选择的值不应以整秒为单位,而应以最高可用计时器分辨率为单位。)


在上述事件之一之后,主机还可以选择进一步推迟其请求,直到它第一次需要使用默认路由器。


在接收到包含至少一个优先级不是十六进制 80000000 的相邻地址的有效通告后,在上述事件之一之后,主机必须停止在该接口上发送任何请求(即使尚未发送任何请求),直到下次发生上述事件之一时。如果没有接收到这样的通告,那么少量的请求重传是允许的,应该以 SOLICITATION_INTERVAL 秒的间隔发送,没有随机化。


6、 协议常量


路由器常量:

MAX_INITIAL_ADVERT_INTERVAL :16 秒
MAX_INITIAL_ADVERTISEMENTS  :3 次传输
MAX_RESPONSE_DELAY          :2 秒


主机常量:

MAX_SOLICITATION_DELAY :1 秒
SOLICITATION_INTERVAL  :3 秒
MAX_SOLICITATIONS      :3 次传输

附加协议常量在第 3 节中使用消息格式定义,在第 4.1 节和第 5.1 节中使用路由器和主机配置变量定义。


所有协议常量都可能在协议的未来版本中发生变化。


7、 安全考虑


ICMP 的这种扩展使得连接到链接的任何系统都可以伪装成连接到该链接的主机的默认路由器。发送给此类冒名顶替者的任何流量都容易受到窃听、拒绝转发服务以及通过插入、删除或更改数据包进行修改。应该注意的是,在大多数预计运行该协议的组播或广播链路上,连接到该链路的任何系统都已经可以进行窃听,并且在这些链路上使用的地址解析协议 (Address Resolution Protocol,ARP) 提供了类似的机会服务拒绝和消息流修改。对于这些威胁被认为是不可接受的环境,有一些配置变量可以禁用主机的动态路由器发现。


Router Advertisement 消息格式被定义为允许以向后兼容的方式将附加信息添加到消息中。该功能的一种可能用途是向通告添加数字签名或某种其他形式的身份验证信息,以使主机能够验证其真实性。这是为了进一步研究。


参考


[1] Braden, R., Editor, "Requirements for Internet Hosts -- Communication Layers", RFC 1122, USC/Information Sciences Institute, October 1989.
[2] Braden, R., and J. Postel, "Requirements for Internet Gateways", RFC 1009, USC/Information Sciences Institute, June 1987.
[3] Croft, B, and J. Gilmore, "Bootstrap Protocol (BOOTP)", RFC 951, Stanford and SUN Microsystems, September 1985.
[4] Deering, S., "Host Extensions for IP Multicasting", RFC 1112, Stanford University, August 1989.
[5] Finlayson, R., Mann, T., Mogul J., and M. Theimer, "A Reverse Address Resolution Protocol", RFC 903, Stanford University, June 1984.
[6] Mogul, J., "Broadcasting Internet Datagrams", RFC 919, Stanford University, October 1984.
[7] Mogul J., and J. Postel, "Internet Standard Subnetting Procedure", RFC 950, USC/Information Sciences Institute, August 1985.
[8] Piscitello D., and J. Lawrence, "Transmission of IP datagrams over the SMDS Service", RFC 1209, Bell Communications Research, March, 1991.
[9] Postel, J., "Internet Protocol - DARPA Internet Program Protocol Specification", RFC 791, DARPA, September 1981.
[10] Postel, J., "Internet Control Message Protocol - DARPA Internet Program Protocol Specification", RFC 792, USC/Information Sciences Institute, September 1981.
[11] Reynolds, J., "BOOTP Vendor Information Extensions", RFC 1084, USC/Information Sciences Institute, December 1988.


相关文章
|
Linux
将数据包发往10.0.0.0/24网络,并通过eth1网卡发送
如果你想将数据包发往10.0.0.0/24网络,并通过eth1网卡发送,可以按照以下步骤设置路由规则: 1. 使用root用户或具有sudo权限的用户登录到CentOS服务器。 2. 使用以下命令查看当前的路由表: ``` ip route show ``` 3. 使用以下命令添加新的路由规则: ``` sudo ip route add 10.0.0.0/24 dev eth1 ``` 这条命令将设置一个直接路由,将发往10.0.0.0/24网络的数据包发送到eth1网卡上。 4. 使用以下命令验证新的路由规则是否生效: ```
104 0
|
2月前
|
监控
交换机中接收数据帧
【10月更文挑战第1天】
51 1
|
3月前
|
网络协议 Unix 网络架构
网际控制报文协议ICMP
网际控制报文协议(ICMP)是TCP/IP体系结构中网际层的关键组件,用于提高IP数据报的成功传输率。ICMP主要处理两类报文:差错报告报文与询问报文。前者包括终点不可达、源点抑制、时间超过、参数问题及重定向等五类;后者则涵盖回送请求/回答及时间戳请求/回答。ICMP广泛应用于检测网络连通性的PING工具和追踪数据包路径的traceroute工具中。两者分别利用ICMP的回送请求报文及差错报告报文实现功能。
102 10
|
4月前
|
网络协议 搜索推荐
网络中的单播、多播和广播
【8月更文挑战第24天】
161 0
|
5月前
|
人工智能 缓存 网络协议
网络层之三层交换、icmp协议、arp协议
网络层之三层交换、icmp协议、arp协议
|
7月前
|
网络协议 数据库 数据安全/隐私保护
|
7月前
|
网络协议 Unix 网络架构
IP多播需要使用两种协议(IGMP和多播路由选择协议)
IP多播需要使用两种协议(IGMP和多播路由选择协议)
176 0
|
机器学习/深度学习 网络协议 网络架构
【计算机网络】网络层 : ICMP 协议 ( ICMP 差错报文 | 差错报文分类 | ICMP 询问报文 | ICMP 应用 | Ping | Traceroute )
【计算机网络】网络层 : ICMP 协议 ( ICMP 差错报文 | 差错报文分类 | ICMP 询问报文 | ICMP 应用 | Ping | Traceroute )
692 0
【计算机网络】网络层 : ICMP 协议 ( ICMP 差错报文 | 差错报文分类 | ICMP 询问报文 | ICMP 应用 | Ping | Traceroute )
|
网络协议
Internet控制消息协议ICMP报文详解
Internet 协议的设计并非绝对可靠。这些控制消息的目的是提供有关通信环境中问题的反馈,而不是使 IP 可靠。仍然不能保证数据报将被传递或控制消息将被返回。某些数据报可能仍未送达,而没有任何丢失报告。如果需要可靠的通信,使用 IP 的更高级别的协议必须实现自己的可靠性程序。
394 0
Internet控制消息协议ICMP报文详解
|
缓存 中间件
SOME/IP 报文帧格式是什么
SOME/IP 报文帧格式是什么
SOME/IP 报文帧格式是什么