C3 网络层 IP协议

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第三章网络层:IP协议
3.1 网络互联的概念
没有任何单独一种数据链路层机制能满足所有类型的网络应用环境;
需要一种最大范围的网络,它能以统一的方式向各种不同类型的网络应用提供公共的通讯服务。

通过IP协议统一实现网络层的逻辑功能,这些高级功能屏蔽了各种具体的数据链路层的功能特点,将其变换为统一的网络层服务,作为其结果的逻辑网络,就是因特网。

在体系结构上,因特网是各种局域网和广域网通过网络互连设备—以后称为路由器(router)—互相连接起来的网际,即网络的网络。

在因特网上,所有数据以统一的形式,即IP分组,从一台计算机传输到另一台计算机。

每个IP分组明确标识出其源计算机和目标计算机。

路由器实际上是一种专用计算机,用来连接多个网络,起IP分组的“中转”作用。

即对从邻接网络来的每个IP分组,路由器能按照该IP分组所标识的目标计算机找到正确的路径,将该IP分组“中转”到该路径的“下一站”,即使连接源计算机和目标计算机的路径发生变化甚至原来的路径因某段链路发生故障而失效,路由器仍然有能力自动“发现”一条新的合适的路径,将IP分组送到目的地。

因此,路由器是实现因特网的一个重要组成部分。

网络互联 = 网络 + 路由器
路由器 = 分组中转功能 + 路由发现功
路由器计算机
图3-1 网络互联
路由功能是针对每个IP分组独立进行的,即路由器将每个IP分组作为一个独立的数据传输单元为其检索路由、进行中转,即使两个IP 分组发送自同一个源计算机并到达同一个目标计算机,它们也可能在因特网中沿不同的路径传输,因此因特网是典型的分组交换网。

细心的读者会问,既然路由器的主要功能之一是“中转”IP分组,因此它需要“记住”因特网上各计算机的实际位置,由此推断每个路由器都需要非常大的存储空间来存储因特网上各计算机是如何分布的这一“因特网地理信息”,不仅如此,考虑到随时会有新计算机接入因特网、老计算机撤出因特网,还有计算机从一个接入位置移动到另一个接入位置,因此该“因特网地理信息”(以下称路由信息)不仅要求存储空间大,而且必须及时更新才能使前面描述的网络互联的架构能真正工作。

但实际上,这两种要求要做到哪一点都是不容易的。

因特网是如何解决这一难题的呢?方法既巧妙又简单,这就是下面要强调的第三个特点:路由器是根据每个IP分组所要去的目标网络(而非目标计算机!)决定其路由的(Destination-Driving)。

3.2 IPv4协议:IP地址
因特网是连接所有计算机的逻辑网络,因此接入该网络的计算机需要有一种统一的方式来标识自己,使得在发生通讯时IP分组能准确到达所期望的目标计算机。

这种统一的地址就是IP地址。

设计IP地址,需要解决两个问题:
用IP地址标识什么?如何标识?
对第一个问题的回答是:
IP地址用来标识因特网上的计算机设备与网络的连接关系。

这里要强调的是,IP地址表达的是“连接关系”,而非计算机设备本身。

正是在这一点上,IP地址与前一章的MAC地址在本质上完全不同,尽管两者都是“网络地址”。

读者务必准确区别不同类型地址的涵义
3.2.1 标准类型的IPv4地址
明确了标识什么,如何标识就有了依据。

具体地,IP地址是一个32位数,包括网络号和主机号(或称网络地址和主机地址)两个部分,根据网络号字段大小的不同,分成几种不同的类型,如图3-2所示(更准确地说,图3-2是IPv4地址,我们将在本章最后简要介绍新一代IPv6协议,读者将看到其编址方式与这里有很大不同,但“标识什么”仍然一致:标识计算机设备与网络的连接关系。

今后在不发生混淆的场合,均简称为IP地址)。

A类IP地址
0 网络号 主机号
B类IP地址
10 网络号 主机号
C类IP地址
110 网络号 主机号
D类IP地址
1110 组 群 号
E类IP地址
1111 保 留
图3-2 IPv4地址的标准类型
A类IP地址的网络号为8位,主机号为24位,最高1位约定必须为0。

举一个具体的例子,一个A类IP地址01100000 00000100 11000000 00001111表示一个计算机连接在网络01100000 00000000 00000000 00000000 上,在该网络上的主机号为 00000000 00000100 11000000 00001111,或等价地,一个主机号为00000000 00000100 11000000 00001111的计算机接入网络01100000 00000000 00000000 00000000(为清楚起见,用下划线分别标识出了网络号和主机号,注意两部分相结合构成一个完整的IP地址)。

归纳前面的描述并记住IP地址的涵义,读者不难得出结论:具有同一类型并具有相同网络号的所有IP地址,表示的是连接到同一网络上的各个主机。

特别是,一个网络是可以被IP 地址的网络号唯一标识的,以后称这个网络号为该网络的IP地址,并称A类IP地址网络号表示的网络为A类网络,B类IP地址网络号表示的网络为B类网络,等等。

例3-1:160.124.33.221是哪一类型的IP地址?其网络号是什么?主机号是什么?
解:160.124.33.221的最高字节的二进制表示为10100000,最高两位为10,故为B类地址,网络号为160.124.0.0,主机号为0.0.33.221。

IP地址中有几类特殊的地址,用来表达特殊的传输目的地。

广播地址,其主机域的位全为1,用来表示一个网络上的“所有主机”—这正是广播的含义。

例如,地址172.110.255.255表示一个B 类网络172.110.0.0上的所有主机。

注意从广播地址的含义,读者不难理解IP协议的一个重要规则:一个IP分组的源地址永远不应该为广播类IP地址。

另一个常用的特殊IP地址是所谓“回环地址”(Loopback Address),点分十进制形式为127.x.y.z,其最高字节为127,其它字节的值任意。

回环地址只能用做IP分组的目标IP地址,该地址永远表达本机上的一个逻辑网络接口,用于协议测试,因此实际在网络上传输的IP分组的目标地址永远都不能是回环地址,换句话讲,一个正常工作的主机永远都不应该将目标地址为回环地址的IP分组输出到网络上。

例3-2:一个A类网络上最多可以有多少台主机?
解:A类IP地址的主机号为24位,其中除去该24位全为1表示广播地址、全为0表示网络地址本身之外,其它值都是合法的主机号,因此最多可以有224-2台主机,约1千6百万台。

例子: IP地址在实际网络上的分配
图3-4是一个典型的局域网上的IP地址的分配情况,该网络有三个网段(以后称网络中的网络为网段或子网),每个网段分配以一个不同的B类IP地址172.100.0.0、172.200.0.0和172.212.0.0。

网段之间由路由器R1、R2连接,因为每个路由器有不止一个连接关系,因此针对每个连接关系有一个IP地址。

从图3-4读者可以看出,实际上每个网络接口都有一个IP地址,反之也对,每个IP地址表示一个网络接口。

A B
图3-4 一个网络上的IP地址的分配
最后说明一个约定:一个网络上的路由器常被分配以该网络地址范围内最小的IP地址,例如图3-4中的172.200.0.1。

这只是一种习惯,并非因为这些IP地址有何特殊之处,请读者注意。

3.2.2 子网掩码与VLSM/CIDR IPv4地址
继续考虑图3-4中的网络。

如果每个网段上计划连接500台主机,则需要分配三组不同的B类IP地址,分别有三个不同的B类地址前缀(参考概念题3)。

读者不难估算出来,这样做导致的地址使用效率非常低(低于0.8%)。

细心的读者会注意到,即使使用一个B类地址前缀,其可用的主机号(共65534个)在数量上也足以覆盖这三个网段所需要的IP地址的总和(1500个IP地址),问题在于使用标准类型的IP地址时,仅分配一组相同前缀的IP地址无法在路由器中正确表示出这里实际有三个网段而不是一个(在下一章学习路由表时候读者将更清楚地看到这一点)。

IP地址的总数毕竟是有限的,随着因特网应用日益广泛,IP地址越来越成为一种应珍惜的可用资源,那么,有没有一种方法能兼顾IP地址的使用效率,同时还能正确表达出主机-网段连接关系呢?
仔细思考这一问题,会发现要害在于标准IP地址实际上限定了只能有三类大小的网络,而提高使用效率的关键恰在于能否做到“按需分配”,即按照网络的实际大小(网络上需要的IP地址的多少)灵活地决定网络“类型”,使IP地址中的网络号的字长总能与网络的实际大小合理匹配。

如果能有一种方法表示出一个IP地址中的网络号的实际字长,或等价地,网络号与主机号的分界的位置,而不再僵硬地预先规定之,问题应该是可以解决的,这就是可变长子网掩码(VLSM:Variable Length Subnet Mask)的概念。

这种做法的目的是保持IP地址的实质涵义不变—表达主机-网络的连接关系,但使得表示的方式效率更高、更灵活.
我们以图3-4的例子解释这一方法。

如果图中三个网段各需要连接500台主机,我们期望按较合理的方法分配一组IP地址,可以仅选择一个B类网络地址,例如172.100.0.0,以此为基础对三个网段分别指派的网络地址可以为172.100.192.0、172.100.128.0和172.100.64.0,即借用B类地址主机号的最高两位,与固定的网络号172.100一起来表示出三个网段,因此实际分配的IP地址中是最高18位(而非16位)表示网络号。

VLSM对这一信息以掩码的方式指示出来,掩码是一个形式上与IP地址点分十进制表示很相似的记号,表示一个二进制32位字,其中实际网络号的那些位为1,其余位为0。

对这里的例子,二进制掩码就是
11111111.11111111.11000000.000000
十进制掩码是255.255.192.0。

读者会注意到掩码与IP地址按位与的结果将得到该IP地址的网络地址,这是对路由器在实现路由检索时很有帮助的一个特性,在学习路由表时会进一步看到。

掩码的另一种常用表示是直接指出IP地址中哪些最高位是实际的网络号,用一条斜线标注在IP地址右面,例如172.100.195.38/18表示该IP地址的最高18位为实际网络号。

读者不难自行验证,该网络号是172.100.192。

以上两种表示显然是等价的,读者都要熟练掌握。

例3-3:按以上的说明重新为图3-4分配IP地址。

解:如图3-5,注意图中工作站A的IP地址是172.100.194.12/18,其主机号是0.0.2.12(14位),B的IP地址是172.100.65.23/18,其主机号是0.0.1.23,C的IP地址是172.100.131.55/18,其主机号是0.0.3.55。

A B
图3-5 以一组单一前缀的IP地址分配所有网段
如果将以上思想发展到极端,便是无类型编址方案,该方案仍然保持IP地址的涵义,但完全放弃任何特定类型。

例如,还是针对上面这个例子,既然只有三个网段,我们可以不妨指派一个共同前缀为最高5位等于10000,接下来2位随网段而不同,最后25位任意的一组IP地址。

这时的掩码是7位,图3-5中的工作站A不妨被赋予IP地址135.45.67.8/7。

请读者自行计算,该IP地址的网络号为134.0.0.0、主机号为1.45.67.8。

基于这种无类型编址方案实现的路由称为无类型域间路由(CIDR:Classless Inter-Domain /Routing)。

它们都已成为当今因特网的标准。

我们在讲述IP路由的具体机制及组网设计时,会大量使用这里的方法分配IP地址,特别是VLSM方法,读者务必牢固掌握。

3.3 IPv4协议:工作机理
3.3.1 IP协议的特点
IP协议的目标是实现一种统一的、与低层的数据链路协议无关的网络通讯服务,以此实现网络互连。

IP最基本、最本质的功能是将每个IP分组传输到目标计算机,无论源、宿计算机在网络上处于何种位置。

在具体的实现方式上,IP协议有以下几个最显著的特点,事实上也是IP协议的主要设计原则:
非可靠的分组传输,是指IP本身并不试图纠正传输过程中的错误(分组丢失、传输延迟超界、分组错序等),甚至在一些情况下不试图发现这些错误。

IP仅仅关心如何将IP分组送达目的地,但并不保证分组一定能没有任何差错地到达。

分组交换,指IP在实际发送、接收、特别是中转IP分组时,是将每个IP分组单独作为一个独立单元进行处理。

特别是,路由器单独为每个IP分组检索路由,而不考虑这些分组之间可能存在的任何关系。

强调一点,IP只是完整的因特网协议层次中的一个层次,因此许多关于IP为什么如此实现、包括什么功能或不包括什么功能的问题,常常需要放在完整的TCP/IP协议栈中平衡考虑,见图3-6。

事实上,这也是设计复杂软件系统时反复出现的一类问题,TCP/IP则是一个具体而且设计合理、取舍得当的好例子。

读者学习完TCP/IP后,会有一个更完整的认识。

图3-6 因特网协议栈
3.3.2 IP分组的格式
要实现一种统一的、与具体的数据链路层协议无关的通讯服务,首先需要提供一种统一格式的数据传输单元,这就是IP分组。

在实际发生数据传输时,IP分组总是由特定的数据链路帧所承载,一段链路、一段链路地在因特网上传输。

两者的组合关系如图3-7所示。

帧首部中有特定的域指示当前所承载的是什么类型的数据,例如,若图3-7中是一个承载IPv4分组的以太网帧,则该帧首部中的类型域值为0800(对IPv6则为86DD,均为十六进制表示,以太网帧格式参考图2-3)。

图3-7 数据链路层的帧对IP分组的承载关系
IP分组的格式如图3-8所示。

数据部分的格式取决于IP分组所承载的高层协议是什么,而与IP本身无关。

IP首部包含的大部分域用来表示对IP分组传输的控制信息,在传输过程中,路由器正是依据这些域的值决定分组应如何被转发。

下面分别介绍各个域的涵义与用途。

0 4 8 16 31
版本号首长度TOS 分组长度
分段位置
分组标识号分段
标志
TTL 上层协议标识号首校验字
源IP地址
目标IP地址
选项及填充
数据
图 3-8 IP分组的格式
版本号:4位域,对IPv4就是4,事实上这也是唯一合法的值。

任何路由器或计算机在接收到IP分组时第一步就必须检查该域的值是否合法。

首长度:4位域,表示IP首部的长度,注意该域值以4字节为单位,例如,若该域值=6,表示IP首部长度为24字节。

注意一个IP首部除了选项部分之外,其它部分(从版本号直到目标IP地址)是必须存在的,这部分总长度为20字节。

由于4位首长度域的最大值=15,最多能表示一个15×4=60字节长度的IP首部,因此IP选项部分最多只能有60-20=40字节。

TOS:8位域,表示该IP分组所要求的服务等级和最优指标。

具体地说,其低3位表示IP 分组在路由器上被调度时的优先等级,其它四位表示所要求的最优指标,分别是D-位、T-位、R-位和C-位,若置位则分别表示要求传输延迟最短、负载最小、可靠性最高和费用最低1。

TOS 域的最高位没有定义。

分组长度:16位域,域值表示完整IP分组(包括首部及数据)的总长度,并以字节为单位(注意与首长度域的单位不同),因此一个IP分组的最大长度是216-1=65535。

分组标识号(16位域)、分段标志(3位域)和分段位置(13位域):用于IP分组的切割和重组,具体用法在下一小节描述。

TTL:8位域,表示一个IP分组的寿命。

在IP分组被发送时,发送方为该域设置一个初1读者可以进一步参考第5.5节。

始值,随后IP分组每经过一个路由器,该域的值被路由器减1,而一个TTL-域值为0的IP 分组将被接收到它的任何设备所废弃,以此来避免因特网上的IP分组垃圾灾害。

上层协议号:8位域,表示该IP分组的数据部分所属的协议,即目标计算机应如何解释IP数据。

目标计算机上的IP协议软件正是依据该域值决定将IP分组中的数据提交给哪个协议软件继续处理。

一些常见的情形如下:
表3-1 常见的上层协议号及其涵义
上层协议号 数据部分应被哪个协议解释 说 明
0、255 保留
1 ICMPv4 差错报告协议,见3.4.2
2 IGMP 组群管理协议
6 TCP 传输控制协议(传输层协议)
17 UDP 用户数据报协议(传输层协议)
51 AH 身份验证协议(IPSec)
52 ESP 数据加密协议(IPSec)
89 OSPF 开放最短路由发现协议
首校验字、IP选项:首校验字对IP首部提供校验,具体计算方法及各种IP选项的涵义与表示方法读者都可以参考3.7节所列举的参考书,不在此赘述了。

3.3.3 IP分组的切割与重组
在实际发生数据传输时,IP分组总是由特定的数据链路帧所承载,一段链路、一段链路地在因特网上传输,两者的组合关系如图3-7所示。

然而,不同类型的链路,其数据帧所能承载的数据大小是不同的,例如以太网链路帧最大可达1500字节,FDDI的帧最大可达4470字节,而某些链路帧最大仅128字节,凡此种种。

每种类型链路的帧所能承载的最大数据长度,称为这种链路的最大传输单位(MTU:Maximum Transfer Unit),是每种类型链路的基本参数。

IP分组在传输过程中如何跨越MTU值不同的链路?
IP解决这一问题的方式简洁明了:在IP分组从大MTU的链路向小MTU的链路传输前,对IP分组进行切割,使切割出的每个新IP分组的大小与小MTU匹配,同时在每个新IP分组的首部加入必要的信息,使得最终能重新组装出原来的IP分组。

用来存储这些切割-重组信息的首部域,就是上小节未详细解释的分组标识号域(16位)、分段标志域(3位)和分段位置域(13位,以8字节为单位),下面以一个例子来解释IP分组的切割-重组过程是如何发生的,以及在这一过程中以上三个域是如何起作用的。

图3-9(a)是一个包含三个网段的网络,每个网段的MTU标注在图中,计算机A发送出一个含1110字节数据的IP分组,目标计算机为B。

该IP分组总长度=IP首部长度+IP数据长度=20字节+1110字节=1130字节。

显而易见,这样一个IP分组在经过路由器转发时必须被切割,图3-9(b)是实际被切割出来的三个新IP分组及其首部中相应域的值。

A B
a)
原始IP分组, 数据1110字节
b)
设原始IP分组的分组标识号为X,分段标志域的DF位=0,则每个新IP分组的首部域值如下:
第一个IP分组:分组标识号=X,分段标志域的MF位=1,分段位置=0,分组长度=508
第二个IP分组:分组标识号=X,分段标志域的MF位=1,分段位置=61,分组长度=508
第三个IP分组:分组标识号=X,分段标志域的MF位=0,分段位置=122,分组长度=154
图3-9 IP分组的切割
a) 发生IP分组切割的网络 b) 在R1上发生的IP分组切割过程
请读者仔细验算图3-9(b)中的数值。

从这个例子我们可以总结出IP分组切割的规则:计算机发送每个IP分组时,给IP分组一个唯一的16位分组标识号,如果该分组被切割,则所有切割出的IP分组都继承该标识号。

接收方正是根据这一分组标识号识别出哪些IP分组是从同一个IP分组切割出来的。

计算机发送每个IP分组时,给IP分组首部域中分段标志域的DF位(该3位域的中间一位)赋值,仅当该值为0时,IP分组在途中允许被切割,否则,当需要切割而DF位为1时,该IP分组被废弃并以ICMP协议向分组的始发方报告一个错误(ICMP协议见3.4.2小节)。

当切割发生时,切割出的最后一个IP分组的首部域中分段标志域的MF位(该3位域的最低一位)赋值为0,其它分组的MF位为1,由此,重构分组的计算机能准确判定哪一个分组是切割出的最后一个分组。

因为IP是分组交换机制,因此每个切割出的分组都被独立地传输,而且在后续的传输过程中还可能被继续切割。

但读者通过仔细验算图3-9中的例子,不难理解无论切割实际发生多少次,原始IP分组最终都能被完整、准确地恢复出来。

IP分组切割的最后一条规则是,IP分组的重构过程永远只在目标计算机上发生。

请读者思考这是为什么?
3.4 ARP协议及ICMP协议
IP协议族= IP+ICMP + ARP + 各种路由协议(下一章开始学习)
3.4.1 IP地址/MAC地址映射:ARP协议
如何将IP分组将要经过的下一站的IP地址自动翻译为对应的MAC地址?这里的关键在于自动,即最有效地表达IP地址与MAC地址之间的对应关系。

因为IP地址和MAC地址的涵义完全不同,两者之间的对应关系也没有任何规律可循,还可能动态地变化,如何最有效地识别这一对应关系似乎很不容易。

细心的读者会注意到,这种对应关系总是只需要局部地获得,因为IP分组是一段链路一段链路被传输的,IP分组的发送方或转发方(即路由器)实际上需要知道的只是它的“下一站”的MAC地址,这样的MAC地址当然总是在该发送方或转发方直接邻接的一个物理网络上。

正是因为如此,IP解决该问题的方法非常简单:每当需要知道一个IP地址所对应的MAC 地址时,IP协议便以一种约定的消息格式广播其询问,而那个正确的“下一站”将回答该询问,以此方式来报告其IP地址/MAC地址的对应关系。

图3-10是对这一工作机理的说明。

工作站B 工作站B
a) b)
图3-10 ARP协议
a) 路由器广播ARP消息request(IP#B),查询IP地址IP#B所对应的MAC地址
b) 工作站B向路由器回答消息reply(IP#B, MAC#B)
ARP协议由数据链路帧承载,举以太网为例,帧首部中的类型域(参考图2-3和图3-11(a))
的值为十六进制数0806,表示该帧数据部分所承载的是一个ARP消息。

对实现IP地址到以太网MAC地址映射的ARP消息,格式如图3-11(b)所示。

ARP消息的硬件类型域表示要映射的目标MAC地址的类型,例如1表示要映射的是以太网MAC地址。

协议类型域表示被映射的网络地址类型,对IP地址就是0800(十六进制)。

MAC地址长度和网络地址长度两个域的解释是不言而喻的,对以太网MAC地址和IP地址分别就是6和4。

ARP操作域的值表示该ARP消息的类型,1表示该消息是ARP请求、2表示该消息是ARP响应、3表示该消息是RARP请求、4表示该消息是RARP响应。

该消息格式实际上被ARP和RARP两个协议所共用。

关于什么是RARP协议,请读者参考概念题7。

细心的读者可能会问:既然帧首部总是自然地包括发送方MAC地址,为什么在ARP消息中还要出现发送方MAC地址域?答案在于某些NIC硬件不能让操作系统读出帧首部,因此这种重复并不总是冗余的。

在实现ARP协议时,为了提高效率,并不是每次都要广播ARP询问,而是在第一次通过ARP广播询问/应答获取IP/MAC地址映射关系后,将该映射缓存起来,使今后再次需要该IP地址的对应MAC地址时能直接从缓存中读取,避免延迟较长的广播/应答过程。

但为了避免IP地址或MAC地址发生变化导致缓存的映射关系失效,每个映射的缓存寿命是有限的,数量级一般为一分钟左右,超时后自动作废,重新通过ARP的广播询问/应答过程来获取最新的IP地址/MAC地址映射关系。

a)
0 16 31
硬件类型协议类型
MAC地址长度网络地址长度ARP操作
发送方MAC地址的第0-3字节
发送方MAC地址的第4-5字节发送方IP地址的第0-1字节
发送方IP地址的第2-3字节目标MAC地址的第0-1字节
目标MAC地址的第2-5字节
目标IP地址
b)
图3-11 ARP/RARP协议的消息
a)数据链路层的帧对ARP消息的承载关系,帧首部中类型
3.4.2 差错报告:ICMP协议
IP分组在传输过程中会出现各种错误或故障,原因各种各样,例如确实需要切割IP分组以适应下一段链路MTU时,该IP分组首部的分段标识域中的DF位却为1;又例如路由器可能找不到能到达目标IP地址的路由,凡此种种,会导致IP分组在传输途中不得不被废弃,因此需要一种机制来处理这些错误。

ICMP与IP配合使用,处理IP分组传输中可能出现的各种差错、检测网络状态。

特点:
第一,ICMP只用来报告错误或状态,本身并不试图尝试任何动作来校正发现的错误或状态;
第二,当一个IP分组在传输过程中发生差错时,ICMP总是向该IP分组的始发计算机而非任何中间路由器报告该差错;
第三,ICMP消息是由IP分组承载的,如图3-12;
第四,和任何IP分组一样,承载ICMP消息的IP分组也可能发生其它IP分组可能发生的任何差错,但当承载ICMP消息的IP分组发生差错时,不再报告这种差错,而是将该分组简单地废弃了事。

这里需要强调一点,尽管ICMP消息由IP承载,但从功能上看,ICMP和IP是平行的关系,而不是一个调用另一个的关系,因此ICMP和IP同属因特网的网络层协议,这一点读者要特别注意。

相关文档
最新文档