软件定义网络(Software Defined Network,SDN)是近年流行的一种创新网络架构,它采用集中式的控制平面和分布式的数据平面,两个平面相互分离,控制平面利用控制 - 数据接口对数据平面上的路由器进行集中式控制,方便软件来控制网络。传统网络中的路由器既有转发表,又有路由选择软件,即既有数据平面,又有控制平面。但是在图 4.4 所示的 SDN 结构中(此处无图 4.4 实际内容,按原文逻辑叙述),路由器都变得简单了,它的路由选择软件都不需要了,因此路由器之间不再相互交换路由信息。在网络的控制平面有一个逻辑上的远程控制器(可由多个服务器组成)。远程控制器掌握各主机和整个网络的状态,为每个分组计算出最佳路由,通过 Openflow 协议(或其他途径)将转发表(在 SDN 中称为流表)下发给路由器。路由器的工作很单纯,即收到分组、查找转发表、转发分组。
这样,网络又变成集中控制的,而本来互联网是分布式的。SDN 并非要把整个互联网都改造成如图 4.4 所示的集中控制模式,这是不现实的。然而,在某些具体条件下,特别是像一些大型的数据中心之间的广域网,使用 SDN 模式来建造,就可使网络的运行效率更高。
命题追踪 SDN 的南向接口的定义(2022)
SDN 的可编程性通过为开发者提供强大的编程接口,使得网络具有很好的可编程性。对上层应用的开发者,SDN 提供的编程接口称为北向接口,北向接口提供了一系列丰富的 API,开发者可以在此基础上设计自己的应用,而不必关心底层的硬件细节。SDN 控制器和转发设备建立双向会话的接口称为南向接口,通过不同的南向接口协议(如 Openflow),SDN 控制器就可兼容不同的硬件设备,同时可在设备中实现上层应用的逻辑。SDN 控制器集群内部控制器之间的通信接口称为东西向接口,用于增强整个控制平面的可靠性和可拓展性。
路由器是网络层设备,其任务是转发分组。每个路由器都维护一个路由表以决定分组的转发。为了提高路由器的查询效率并减少路由表维护的内容,路由表只保留到达目的地址的下一个路由器的地址,而不保留整个传输路径的信息。另外,采用目的网络可使每个路由表项包含很多目的主机 IP 地址,这样可减少路由表中的项目。因此,路由表通常包含目的网络和到达该目的网络路径上的下一个路由器的 IP 地址。
每跳路由器都根据路由表来选择 IP 分组的下一跳地址,只有到了下一跳路由器,才知道再下一跳应当怎样走。主机仅知道到达本地网络的路径,到达其他网络的 IP 分组均转发到路由器。而源主机也只把 IP 分组发给网关,所以路由器和源主机都不知道 IP 分组要经过的完整路径。
08.下列协议中,属于网络层协议的是( )。
I. IP II. TCP III. FTP IV. ICMP
A. I 和 II
B. II 和 III
C. III 和 IV
D. I 和 IV
D
TCP 属于传输层协议,FTP 属于应用层协议,只有 IP 和 ICMP 属于网络层协议。
09.下列关于各种数据交换方式的叙述中,错误的是( )。
A. 电路交换不提供差错控制功能
B. 分组交换的分组有最大长度的限制
C. 虚电路是面向连接的,它提供的是一种可靠的服务
D. 在故障率很高的传输系统中,选择虚电路方式更合适
D
电路交换不具备差错控制能力,选项 A 正确。分组交换对每个分组的最大长度有规定,超过此长度的分组都被分割成几个长度较小的分组后再发送,选项 B 正确。
分组交换又分为数据报和虚电路两种方式。数据报是无连接的,它提供的是不可靠的服务,分组有可能丢失、失序,也不保证到达的时间,但因每个分组独立选择传送路径,当某个节点发生故障时,后续的分组可另选路径,另外通过高层协议如 TCP 也可保证其传输的可靠性和有序性。虚电路是面向连接的,它提供的是可靠的服务,能保证数据的可靠性和有序性,但是一旦虚电路中的某个节点出现故障,就必须重新建立一条虚电路,对于故障率高的传输系统,易出现节点故障,这项任务就显得相当艰巨,因此采用数据报方式更合适。选项 C 正确、选项 D 错误。
虚电路是一种分组交换技术,它可以采用存储转发的方式工作,选项 A 错误。虚电路不只是临时性的,它提供的服务包括永久性虚电路(PVC)和交换型虚电路(SVC),其中前者是一种提前定义好的、基本上不需要任何建立时间的端点之间的连接,而后者是端点之间的一种临时性连接,这些连接只持续所需的时间,且在会话结束时就取消这种连接,选项 B 错误。数据报服务是无连接的,既不提供可靠性保障,又不保证分组的有序到达,选项 C 错误。在数据报服务中,每个分组都必须携带源地址和目的地址;而虚电路服务中,建立连接后,分组只需携带虚电路标识。
虚电路是一种分组交换技术,它在数据传输前要建立逻辑连接而非物理连接,选项 A 错误。虚电路的中间节点发生故障后,会导致整条虚电路失效,需要重新建立连接,选项 B 错误。虚电路只有建立连接的分组需要携带目的地址,以进行路由选择,之后传送的分组只需携带虚电路号即可。一个会话的虚电路是事先建立好的,因此它的数据分组所走的路径也是固定的,选项 D 错误。
选项 A、B 和 C 都是 SDN 的特点。Openflow 协议是控制平面和数据平面之间的接口。在 SDN 中,路由器之间不再相互交换路由信息,由远程控制器计算出最佳路由。
18.下列关于 SDN(软件定义网络)的描述中,错误的是( )。
I. SDN 是近年来出现的一种新型物理网络结构
II. OpenFlow 交换机基于 "流表" 来转发分组
III. SDN 远程控制器位于 OpenFlow 交换机中
IV. OpenFlow 可视为 SDN 的控制层面与数据层面的通信接口
A. I 和 III
B. I 和 IV
C. II 和 IV
D. I、III 和 IV
A
SDN 是一种新型网络体系结构,是一种设计、构建和管理网络的新方法,不是一种新型物理网络结构。在 SDN 中,完成 "匹配 + 动作" 的设备通常也称 OpenFlow 交换机。相应地,在 SDN 中取代传统路由器中转发表的是流表。SDN 远程控制器是一种控制平面的实现方式,它由一个远程的服务器来计算和分发流表给网络设备,SDN 远程控制器不在 OpenFlow 交换机中。
19.【2011 统考真题】TCP/IP 模型的网络层提供的是( )。
A. 无连接不可靠的数据报服务
B. 无连接可靠的数据报服务
C. 有连接不可靠的虚电路服务
D. 有连接可靠的虚电路服务
A
TCP/IP 的网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。考察 IP 首部,若是面向连接的,则应有用于建立连接的字段,但是首部中没有;若提供可靠的服务,则至少应有序号和检验和两个字段,但是 IP 分组头中也没有(IP 首部中只有首部检验和)。通常有连接、可靠的应用是由传输层的 TCP 实现的。
①在 IP 数据报首部中有三个关于长度的标记,即首部长度、总长度、片偏移,它们的基本单位分别为 4B、1B、8B(需记住)。题中常出现这几个长度之间的加减运算。另外,读者要熟悉 IP 数据报首部中的各个字段的意义和功能,但不需要记忆 IP 数据报的首部,正常情况下若需要参考首部,则题目会直接给出。第 5 章学习的 TCP、UDP 的首部也是一样的。②在分析 IP 首部时,IP 地址通常是用十六进制表示的,要注意其与十进制之间的转换。
2.IP 数据报分片
一个链路层数据帧能承载的最大数据量称为最大传送单元(MTU)。因为 IP 数据报被封装在链路层的帧中,因此链路层的 MTU 严格地限制了 IP 数据报的长度,而且在 IP 数据报的源与目的地路径上的各段链路可能使用不同的链路层协议,有不同的 MTU。例如,以太网的 MTU 为 1500B,而许多广域网的 MTU 不超过 576B。当 IP 数据报的总长度大于链路 MTU 时,就需要将 IP 数据报中的数据分装在多个较小的 IP 数据报中,这些较小的数据报称为片。 命题追踪 分片时会影响首部中的哪些字段(2011)
片在目的地的网络层被重新组装。目的主机使用 IP 首部中的标识、标志和片偏移字段来完成对片的重组。创建一个 IP 数据报时,源主机为该数据报加上一个标识号。当一个路由器需要将一个数据报分片时,形成的每个数据报(片)都具有原始数据报的标识号。当目的主机收到来自同一发送主机的一批数据报时,它可通过检查数据报的标识号来确定哪些数据报属于同一个原始数据报的片。IP 首部中的标志位占 3 位,但只有后 2 位有意义,分别是 DF(Don't Fragment)位和 MF(More Fragment)位。只有当 DF = 0 时,该 IP 数据报才可被分片。MF 则用来告知目的主机该 IP 数据报是否为原始数据报的最后一个片。当 MF = 1 时,表示相应的原始数据报还有后续的片;当 MF = 0 时,表示该数据报是相应原始数据报的最后一个片。目的主机在对片进行重组时,使用片偏移字段来确定片应放在原始 IP 数据报的哪个位置。 命题追踪 IP 分片的原理及相关字段的分析(2021)
IP 分片涉及一定的计算。例如,一个长 4000B 的 IP 数据报(首部 20B,数据部分 3980B)到达一个路由器,需要转发到一条 MTU 为 1500B 的链路上。这意味着原始数据报中的 3980B 数据必须分配到 3 个独立的片中(每片也是一个 IP 数据报),每片的数据部分依次为 1480B、1480B 和 1020B。假定原始数据报的标识号为 777,则分成的 3 片如图 4.6 所示(此处无图 4.6 实际内容,按原文逻辑叙述)。可见,因为偏移值的单位是 8B,所以除最后一个片外,其他所有片中的数据部分都为 8B 的倍数。
4.2.2 IPv4 地址与 NAT
1.IPv4 地址
IP 地址是给连接到互联网上的每台主机(或路由器)的每个接口,分配的一个在全球范围内唯一的 32 位标识符。IP 地址由互联网名字和数字分配机构 ICANN 进行分配。为方便书写和记忆,常把 32 位 IP 地址分成 4 段,每段 8 位,用等效的十进制数表示,并在每段数字之间加一个小数点,即一个 IP 地址用 4 段十进制数表示,称为点分十进制记法。
互联网早期采用的是分类的 IP 地址,如下所示:
无论哪类 IP 地址,都由网络号和主机号两部分组成。即 IP 地址::={<网络号>, < 主机号 >}。其中网络号标志主机(或路由器)所连接到的网络。一个网络号在整个互联网范围内必须是唯一的。主机号标志该主机(或路由器)。一个主机号在它前面的网络号所指明的网络范围内必须是唯一的。由此可见,一个 IP 地址在整个互联网范围内是唯一的。 命题追踪 特殊 IP 地址 0.0.0.0 的用途(2017)
在各类 IP 地址中,有些 IP 地址具有特殊用途,不用作主机的 IP 地址:
主机号全为 0 表示本网络本身,如 202.98.174.0。
主机号全为 1 表示本网络的广播地址,也称直接广播地址,如 202.98.174.255。
127.×.×.× 保留作为本地软件环回测试(Loopback Test)本主机的进程之间的通信用,本主机不会将目的地址为环回地址的 IP 数据报发送到任何网络。
32 位全为 0,即 0.0.0.0,表示本网络上的本主机(见 DHCP)。
32 位全为 1,即 255.255.255.255,表示受限广播地址,只在本网络上进行广播。
常用的三种类别 IP 地址的使用范围见下表:
在表4.2中,A 类地址可用的网络数为2^7−2,减 2 的原因是:第一,网络号字段全为 0 的 IP 地址是保留地址,意思是 "本网络";第二,网络号为 127 的 IP 地址是环回自检地址。每个网络中的最大主机数减 2 的原因是:全 0 和全 1 的主机号一般不指派。
IP 地址有以下重要特点:
1)每个 IP 地址都由网络号和主机号两部分组成,因此 IP 地址是一种分等级的地址结构。分等级的好处是:①IP 地址管理机构在分配 IP 地址时只分配网络号,而主机号则由得到该网络的单位自行分配,方便了 IP 地址的管理;②路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目标主机号),从而减小了路由表所占的存储空间。
2)IP 地址是标志一台主机(或路由器)和一条链路的接口。当一台主机同时连接到两个网络时,该主机就必须同时具有两个相应的 IP 地址,其网络号必须是不同的。因此路由器至少应具有两个或两个以上的 IP 地址,每个端口都有一个不同网络号的 IP 地址。
3)用转发器或桥接器(网桥等)连接的若干 LAN 仍然是同一个网络(同一个广播域),因此该 LAN 中所有主机的 IP 地址的网络号必须相同,但主机号必须不同。
4)在 IP 地址中,所有分配到网络号的网络(无论是 LAN 还是 WAN)都是平等的。
5)在同一个局域网上的主机或路由器接口的 IP 地址中的网络号必须是相同的。
近年来,因为广泛使用无分类 IP 地址进行路由选择,这种传统分类的 IP 地址已成为历史。
2. 网络地址转换(NAT)
网络地址转换(Network Address Translation,NAT)是指通过将专用网络地址(如 Intranet)转换为公用地址(如 Internet),从而对外隐藏内部管理的 IP 地址。它使得整个专用网只需要一个全球 IP 地址就可与互联网连通,因为专用网本地 IP 地址是可重用的,所以 NAT 大大节省了 IP 地址的消耗。同时,它隐藏了内部网络结构,从而降低了内部网络受到攻击的风险。
命题追踪 私有 IP 地址访问 Internet 的处理(2011)
此外,为了网络安全,划出了三个私有 IP 地址块。私有 IP 地址只用于 LAN,不用于 WAN 连接(因此私有 IP 地址不能直接用于互联 网,必须通过网关利用 NAT 将私有 IP 地址转换为互联网中合法的全球 IP 地址后,才能出现在互联网上),并且允许私有 IP 地址被 LAN 重复使用 。这有效地解决了 IP 地址不足的问题。这三个私有 IP 地址块如下:
1)10.0.0.0/8,即 10.0.0.0~10.255.255.255,相当于 1 个 A 类网络。
2)172.16.0.0/12,即 172.16.0.0~172.31.255.255,相当于 16 个连续的 B 类网络。
3)192.168.0.0/16,即 192.168.0.0~192.168.255.255,相当于 256 个连续的 C 类网络。
在互联网中的所有路由器,对目的地址是私有地址的数据报一律不进行转发。这种采用私有 IP 地址的互联网络称为专用互联网或本地互联网。私有 IP 地址也称可重用地址。
使用 NAT 时需要在专用网连接到互联网的路由器上安装 NAT 软件,NAT 路由器至少有一个有效的外部全球 IP 地址。当使用本地地址的主机和外界通信时,NAT 路由器使用 NAT 转换表进行本地 IP 地址和全球 IP 地址的转换。NAT 转换表中存放着 {本地 IP 地址:端口} 到 {全球 IP 地址:端口} 的映射。通过这种映射方式,可让多个私有 IP 地址映射到一个全球 IP 地址。
命题追踪 NAT 的原理和应用(2016、2019、2020、2023)
如图 4.8 所示,假设某家庭办理了 10Mb/s 的电信宽带,那么该家庭就获得一个全球 IP 地址(如 138.76.29.7),而家庭网络内 3 台主机使用私有地址(如 10.0.0.0 网段),家庭网关路由器应开启 NAT 功能。NAT 路由器的工作原理:①假设用户主机 10.0.0.1(随机端口 3345)向 Web 服务器 128.119.40.186(端口 80)发送请求。②NAT 路由器收到 IP 分组后,为该 IP 分组生成一个新端口号 5001,将 IP 分组的源地址改为 138.76.29.7(NAT 路由器的全球 IP 地址),将源端口号改为 5001。NAT 路由器在 NAT 转换表中增加一个表项。③Web 服务器并不知道刚抵达的 IP 分组已被 NAT 路由器改装,更不知道用户的专用地址,它响应的 IP 分组的目的地址是 NAT 路由器的全球 IP 地址 138.76.29.7,目的端口号是 5001。④响应分组到达 NAT 路由器后,通过 NAT 转换表将 IP 分组的目的 IP 地址改为 10.0.0.1,将目的端口号改为 3345。
这样,只需要一个全球 IP 地址,就可让多台主机同时访问互联网。
注意:
普通路由器在转发 IP 分组时,其源 IP 地址和目的 IP 地址都不会改变。而 NAT 路由器在转发 IP 分组时,一定要更换其 IP 地址(转换源 IP 地址或目的 IP 地址)。普通路由器仅工作在网络层,而 NAT 路由器转发数据报时需要查看和转换传输层的端口号。
在某些场合,内网中的一些服务器需要向公网用户提供服务,比如私网中部署的一些 Web 服务器、FTP 服务器等。此时,可在 NAT 表中配置 "公网 IP 地址 + 端口号" 与 "私网 IP 地址 + 端口号" 的映射关系,实现公网用户通过该映射关系访问私网服务器的功能。
4.2.3 划分子网与路由聚合
1. 划分子网
两级 IP 地址的缺点:IP 地址空间的利用率有时很低;给每个物理网络分配一个网络号会使路由表变得太大,进而使网络性能变坏;两级 IP 地址不够灵活。
从 1985 年起,在 IP 地址中又增加了一个 "子网号字段",使两级 IP 地址变成了三级 IP 地址。这种做法称为划分子网。划分子网已成为互联网的正式标准协议。
划分子网的基本思路如下:
划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的一个网络。
划分子网的方法是从网络的主机号借用若干位作为子网号,当然主机号也相应减少了相同的位数。三级 IP 地址的结构:IP 地址::={<网络号>, < 子网号 >, < 主机号 >}。
路由器转发分组根据的仍然是 IP 数据报的目的网络号,本单位的路由器收到 IP 数据报后,再按目的网络号和子网号找到目的子网。最后把 IP 数据报交付给目的主机。
例如,将一个 C 类网络 208.115.21.0 划分为 4 个子网,子网号占用 2 位,因此主机号就只有 6 位,各子网的网络地址分别为 208.115.21.0、208.115.21.64、208.115.21.128、208.115.21.192。每个子网可分配的 IP 地址数为2^6−2=62。
注意:
①划分子网只是把 IP 地址的主机号部分进行再划分,而不改变 IP 地址原来的网络号。因此,从一个 IP 地址本身无法判断该主机所连接的网络是否进行了子网划分。②子网中的主机号全 0 或全 1 的地址不能被指派,其中主机号全 0 的地址为子网的网络地址,主机号全 1 的地址为子网的广播地址。③划分子网增加了灵活性,但减少了能够连接在网络上的主机总数。 2. 子网掩码和默认网关
子网掩码可用来指明分类 IP 地址的主机号部分被借用了多少位作为子网号。
命题追踪 根据 IP 地址和子网掩码求网络地址(2022)
子网掩码是一个与 IP 地址相对应的、长 32 位的二进制串,它由一串 1 和跟随的一串 0 组成。其中,1 对应于 IP 地址中的网络号及子网号,而 0 对应于主机号。主机或路由器只需将 IP 地址和其对应的子网掩码逐位 "与"(AND 运算),就可得出相应子网的网络地址。
命题追踪 默认网关和子网掩码的配置分析(2015、2016、2019、2022)
默认网关是子网与外部网络连接的设备,也就是连接本机或子网的路由器接口的 IP 地址。当主机发送数据时,根据所发送数据的目的 IP 地址,通过子网掩码来判定目的主机是否在子网中,若目的主机在子网中,则直接发送。若目的主机不在子网中,则将该数据发送到默认网关,由网关(路由器)将其转发到其他网络,进一步寻找目的主机。
现在的互联网标准规定:所有网络都必须使用子网掩码。若一个网络未划分子网,则该网络的子网掩码就使用默认子网掩码。A、B、C 类地址的默认子网掩码分别为 255.0.0.0、255.255.0.0、255.255.255.0。例如,某主机的 IP 地址为 192.168.5.56,子网掩码为 255.255.255.0,进行逐位 "与" 运算后,得出该主机所在子网的网络号为 192.168.5.0。
得到下一跳路由器的 IP 地址后,并不是直接将该地址填入待发送的数据报,而是将该 IP 地址转换成 MAC 地址(通过 ARP),将此 MAC 地址填入 MAC 帧首部,然后根据这个 MAC 地址找到下一跳路由器。在不同网络中传送时,MAC 帧的源地址和目的地址要发生变化。
4.2.5 地址解析协议
1.IP 地址与硬件地址
IP 地址是网络层及网络层之上使用的地址,它是分层式的。硬件地址(MAC 地址)是数据链路层使用的地址,它是平面式的。IP 地址放在 IP 数据报的首部,而 MAC 地址放在 MAC 帧的首部。把 IP 数据报封装为 MAC 帧后,数据链路层看不见 IP 数据报中的 IP 地址。
因为路由器的隔离,IP 网络中无法通过广播 MAC 地址来完成跨网络的寻址,所以在网络层只使用 IP 地址来完成寻址。寻址时,每个路由器依据其路由表(依靠路由协议生成)选择到目标网络(主机号全为 0 的网络地址)需要转发到的下一跳(路由器的物理端口号或下一网络地址),而 IP 数据报通过多次路由转发到达目标网络后,改为在目标局域网中通过数据链路层的 MAC 地址以广播方式寻址。这样可以提高路由选择的效率。
下列几个性质是计算机网络的精髓,有必要特别强调:
1)在 IP 层抽象的互联网上只能看到 IP 数据报。
2)虽然在 IP 数据报首部中有源 IP 地址,但路由器只根据目的 IP 地址进行转发。
3)在局域网的链路层,只能看见 MAC 帧。IP 数据报被封装在 MAC 帧中。通过路由器转发时,IP 数据报在每个网络中都被路由器解封装和重新封装,其 MAC 帧首部中的源地址和目的地址会不断改变。这也决定了无法使用 MAC 地址跨网络通信。
4)尽管互连在一起的网络的硬件地址体系各不相同,但 IP 层抽象的互联网屏蔽了下层这些复杂的细节。只要我们在网络层上讨论问题,就能够使用统一的、抽象的 IP 地址研究主机与主机或路由器之间的通信。
注意:
路由器因为互连多个网络,所以它不仅有多个 IP 地址,还有多个硬件地址。 2. 地址解析协议
命题追踪 ARP 的功能和应用(2011、2012、2021)
无论网络层使用什么协议,在实际网络的链路上传送数据帧时,最终必须使用硬件地址。所以需要一种方法来完成 IP 地址到 MAC 地址的映射,这就是地址解析协议(Address Resolution Protocol,ARP)。每台主机都设有一个 ARP 高速缓存,用来存放本局域网各主机和路由器的 IP 地址到 MAC 地址的映射表,称 ARP 表。使用 ARP 来动态维护 ARP 表。ARP 对高速缓存中的每个映射表项都设置了生存时间(如 20min),超时的项目会从高速缓存中删除。
命题追踪 ARP 请求帧的目的 MAC 地址(2011、2015)
ARP 工作在网络层,其工作原理如下:主机 A 欲向本局域网的某台主机 B 发送 IP 数据报时,先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。若有,则可以查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。若没有,则通过使用目的 MAC 地址为 FF-FF-FF-FF-FF-FF 的帧来封装并广播 ARP 请求分组(广播发送),使同一个局域网里的所有主机都收到此 ARP 请求。主机 B 收到该 ARP 请求后,向主机 A 发出 ARP 响应分组(单播发送),分组中包含主机 B 的 IP 地址与 MAC 地址的映射关系,主机 A 收到 ARP 响应分组后就将此映射写入 ARP 缓存,然后按查询到的硬件地址发送 MAC 帧。ARP 因为 "看到了" IP 地址,所以它工作在网络层,而 NAT 路由器因为 "看到了" 端口,所以它工作在传输层。对于某个协议工作在哪个层次,读者应该能通过协议的工作原理进行推测。
注意:
ARP 用于解决同一局域网的主机或路由器的 IP 地址和硬件地址的映射问题。若目的主机和源主机不在同一个局域网,则要通过 ARP 找到本局域网的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络,剩下的工作就由下一个网络来做。尽管 ARP 请求分组是广播发送的,但 ARP 响应分组是普通的单播。
DHCP 服务器分配给 DHCP 客户的 IP 地址是临时的,因此 DHCP 客户只能在一段有限的时间内使用这个分配到的 IP 地址。DHCP 称这段时间为租用期。租用期的数值应由 DHCP 服务器自己决定,DHCP 客户也可在自己发送的报文中提出对租用期的要求。DHCP 客户可随时提前终止服务器提供的租用期,这时只需向 DHCP 服务器发送释放报文。
DHCP 客户和服务器端需要通过广播方式来进行交互,原因是在 DHCP 执行初期,客户机不知道服务器端的 IP 地址,而在执行中间,客户机并未被分配 IP 地址,从而导致两者之间的通信必须采用广播的方式。采用 UDP 而不采用 TCP 的原因也很明显:TCP 需要建立连接,若连对方的 IP 地址都不知道,则更不可能通过双方的套接字建立连接。
4.2.7 网际控制报文协议 ICMP
命题追踪 直接为 ICMP 提供服务的协议(2012)
为了有效地转发 IP 数据报和提高交付成功的机会,在网络层使用了网际控制报文协议(Internet Control Message Protocol,ICMP),让主机或路由器报告差错和异常情况。ICMP 报文被封装在 IP 数据报中发送,但 ICMP 不是高层协议,而是网络层的协议。
协议字段表示使用 IP 的上层协议,如值为 6 表示 TCP,值为 17 表示 UDP。版本字段表示 IP 的版本,值为 4 表示 IPv4,值为 6 表示 IPv6。
03.IPv4 分组首部中有两个有关长度的字段:首部长度和总长度,其中( )。
A. 首部长度字段和总长度字段都以 8 比特为计数单位
B. 首部长度字段以 8 比特为计数单位,总长度字段以 32 比特为计数单位
C. 首部长度字段以 32 比特为计数单位,总长度字段以 8 比特为计数单位
D. 首部长度字段和总长度字段都以 32 比特为计数单位
03.C
在首部中有三个关于长度的标记:首部长度、总长度和片偏移,基本单位分别为 4B、1B 和 8B。IP 分组的首部长度必须是 4B 的整数倍,取值范围是 5~15(默认值是 5)。因为 IP 分组的首部长度是可变的,所以首部长度字段必不可少。总长度字段给出 IP 分组的总长度,单位是字节,包括分组首部和数据部分的长度。数据部分的长度可以从总长度减去分组首部长度计算。
04.下列关于 IP 分组的首部检验和字段的说法中,正确的是( )。
A. 检验和字段检查的范围是整个 IP 分组
B. 计算检验和的方法是对首部的每个 16 比特按反码运算求和再取反码
C. 若网络层发现检验和错误,则丢弃该 IP 分组并发送 ICMP 差错报文
D. IP 分组的检验和的计算需要加入一个伪首部
04.B
检验和字段只检查 IP 数据报的首部,不包括数据部分,选项 A 错误。计算检验和的方法是:先把 IP 数据报的首部划分为许多 16 比特的序列,用反码算术运算把所有 16 比特相加后,将得到的和的反码写入检验和字段,选项 B 正确。IP 并不要求源主机重传有差错的 IP 数据报,保证无差错传输是由 TCP 完成的。另一方面,首部检验和只能检验 IP 数据报的首部是否出错,但不知道首部中的源地址字段是否出错,若源地址出现差错,则将差错报文传送到错误的地址是没有任何意义的,因此接收方的网络层发现检验和出错后,就丢弃该数据报,但不会发送差错报文,选项 C 错误。IP 数据报的检验和的计算不需要加入伪首部,伪首部用于计算 UDP 或 TCP 检验和,选项 D 错误。
05.当数据报到达目的网络后,要传送到目的主机,需要知道 IP 地址对应的( )。
A. 逻辑地址
B. 动态地址
C. 域名
D. 物理地址
05.D
在数据链路层,MAC 地址用来标识主机或路由器,数据报到达具体的目的网络后,需要知道目的主机的 MAC 地址才能成功送达,因此需要将 IP 地址转换成对应的 MAC 地址,即物理地址。
10.255.255.255 为 A 类地址,主机号全 1,代表网络广播,为广播地址。192.168.24.59/30 为 CIDR 地址,只有后面 2 位为主机号,而 59 用二进制表示为 00111011,可知主机号全 1,代表网络广播,为广播地址。224.105.5.211 为 D 类多播地址。
在下列 4 个地址中,属于本地回路地址的是( )。
A. 10.10.10.1
B. 255.255.255.0
C. 192.0.1
D. 127.0.0.1
16.D
所有形如 127.xx.yy.zz 的 IP 地址,都作为保留地址,用于回路测试。
访问互联网的每台主机都需要分配 IP 地址(假定采用默认子网掩码),下列可以分配给主机的 IP 地址是( )。
A. 192.46.10.0
B. 110.47.10.0
C. 127.10.10.17
D. 211.60.256.21
17.B
选项 A 是 C 类地址,掩码为 255.255.255.0,由此得知 A 地址的主机号为全 0(未使用 CIDR),因此不能作为主机地址。选项 C 是为回环测试保留的地址。选项 D 是语法错误的地址,不允许有 256。选项 B 为 A 类地址,其网络号是 110,主机号是 47.10.0。
IP 规定,一些特殊的 IP 地址一般是不会被指派的,下列说法错误的是( )。
A. 0.0.0.0 可以作为 DHCP 客户的源 IP 地址
B. 路由器不会转发目的 IP 地址是 255.255.255.255 的 IP 数据报
C. 127.0.0.1 可以作为目的 IP 地址,但不能作为源 IP 地址
D. 路由器可以转发目的 IP 地址的主机号为全 1 的 IP 数据报
18.C
127.x.x.x 用于本地软件的回环测试,既可作为源 IP 地址,又可作为目的 IP 地址,选项 C 错误。0.0.0.0 可作为源 IP 地址,表示本网络上的本主机,通常作为 DHCP 客户的源 IP 地址。255.255.255.255 可作为目的 IP 地址,表示在本网络上进行广播(各路由器均不转发)。网络号为特定网络,主机号为全 1 的目的 IP 地址表示直接广播地址,可对特定网络上的所有主机进行广播。
为了提供更多的子网,为一个 B 类地址指定了子网掩码 255.255.240.0,则每个子网最多可以有的主机数是( )。
不考虑 NAT,在 Internet 中,IP 数据报从源节点到目的节点可能需要经过多个网络和路由器。在整个传输过程中,IP 数据报首部中的( )。
A. 源地址和目的地址都不会发生变化
B. 源地址有可能发生变化而目的地址不会发生变化
C. 源地址不会发生变化而目的地址有可能发生变化
D. 源地址和目的地址都有可能发生变化
20.A
在 Internet 中,IP 数据报从源节点到目的节点可能需要经过多个网络和路由器。当一个路由器接收到一个 IP 数据报时,路由器根据 IP 数据报首部的目的 IP 地址进行路由选择,并不改变源 IP 地址的取值。即使 IP 数据报被分片时,原 IP 数据报的源 IP 地址和目的 IP 地址也将复制到每个分片的首部,因此在整个传输过程中,IP 数据报首部的源 IP 地址和目的 IP 地址都不发生变化。
把 IP 网络划分成子网,这样做的好处是( )。
A. 增加冲突域的大小
B. 增加主机的数量
C. 减少广播域的大小
D. 增加网络的数量
21.C
划分子网可以增加子网的数量(把一个大的网络划分成许多小的网络,这是子网划分的结果,并不是目的),子网之间的数据传输需要通过路由器进行,因此减少了广播域的大小,提高网络的效率和安全性。划分子网后,因为各子网中主机号全 0 和全 1 的地址不能使用,所以会减少总的主机数量,但划分子网提高了 IP 地址的利用率。
一个网段的网络号为 198.90.10.0/27,最多可以分成( )个子网;此网段划分成若干子网后,每个子网最多具有( )个可分配给主机的 IP 地址。
采用网络地址转换(NAT),可以使一些使用本地地址的专用网连接到互联网上,进而使得一些机构的内部主机可以使用专用地址,只需给该机构分配一个 IP 地址即可,并且这些专用地址是可重用的 ------ 其他机构也可使用,所以大大节省了 IP 地址的消耗。
尽管以上三种方法可以在一定阶段内有效缓解 IP 地址耗尽的危机,但无论是从计算机本身发展来看还是从互联网的规模和传输速率来看,现在的 IPv4 地址已很不适用,所以治本的方法还是使用 128 比特编址的 IPv6 地址。
下列对 IP 分组的分片和重组的描述中,正确的是( )。
A. IP 分组可以被源主机分片,并在中间路由器进行重组
B. IP 分组可以被路径中的路由器分片,并在目的主机进行重组
C. IP 分组可以被路径中的路由器分片,并在中间路由器上进行重组
D. IP 分组可以被路径中的路由器分片,并在最后一跳的路由器上进行重组
B
当路由器准备将 IP 分组发送到网络上,而该网络又无法将整个分组一次发送时,路由器必须将该分组分片,使其长度能满足这一网络对分组长度的限制。IP 分片可以独立地通过各个路径发送,而且在传输过程中仍然存在分片的可能(不同网络的 MTU 可能不同),因此不能由中间路由器进行重组。分片后的 IP 分组直至到达目的主机后才能汇集在一起,并且甚至不一定以原先的次序到达。这样,进行接收的主机都要求支持重组能力。
选项 A 与 192.168.6.192/26 不重叠,聚合后的地址块为 192.168.6.0/24,聚合后的地址块会引入多余地址。选项 B 与 192.168.6.192/26 不重叠,聚合后的地址块为 192.168.6.0/24,聚合后的地址块会引入多余地址;选项 C 与 192.168.6.192/26 不重叠,聚合后的地址块为 192.168.6.128/25,聚合后的地址块未引入多余地址;选项 D 在 192.168.6.192/26 内,有重叠。
IP 数据报的首部既有源 IP 地址,又有目的 IP 地址,但在通信中路由器只会根据目的 IP 地址进行路由选择。IP 数据报在通信过程中,首部的源 IP 地址和目的 IP 地址在经过路由器时不会发生改变。ARP 广播只在子网中传播,因为相互通信的主机不在同一个子网内,所以不可以直接通过 ARP 广播得到目的站的硬件地址。硬件地址只具有本地意义,因此每当路由器将 IP 数据报转发到一个具体的网络中时,都需要重新封装源硬件地址和目的硬件地址。
255.255.255.255 是受限的广播地址,仅用于主机配置过程中 IP 分组的目的地址。在任何情况下,路由器都不转发目的地址为受限广播地址的 IP 分组,这种 IP 分组仅出现在本地网络中。
某以太网中,甲的 IP 地址为 211.71.136.23,子网掩码为 255.255.240.0,已知网关地址为 211.71.136.1。若甲向乙(IP 地址为 211.71.130.25)发送一个 IP 分组,则( )。
A. 该分组封装成帧后直接发送给乙,帧中目的 MAC 地址为网关的 MAC 地址
B. 该分组封装成帧后直接发送给乙,帧中目的 MAC 地址为乙的 MAC 地址
C. 该分组封装成帧后交由网关转发,帧中目的 MAC 地址为网关的 MAC 地址
D. 该分组封装成帧后交由网关转发,帧中目的 MAC 地址为乙的 MAC 地址
B
先判断乙和甲是否在同一个子网内,用 IP 地址和子网掩码进行按位 AND 运算,然后检查它们的网络前缀是否相同。若乙和甲在同一个子网内,则直接交付,无须经过网关,因此将乙的 MAC 地址作为帧的目的 MAC 地址。若乙和甲不在同一个子网内,则要通过网关转发,因此将网关的 MAC 地址作为帧的目的 MAC 地址。经计算,甲的网络前缀为 211.71.128.0/20,乙的网络前缀为 211.71.128.0/20,乙和甲在同一个子网内,因此帧的目的 MAC 地址为乙的 MAC 地址。
下列情况需要启动 ARP 请求的是( )。
A. 主机需要接收信息,但 ARP 表中没有源 IP 地址与 MAC 地址的映射关系
B. 主机需要接收信息,但 ARP 表中已有源 IP 地址与 MAC 地址的映射关系
C. 主机需要发送信息,但 ARP 表中没有目的 IP 地址与 MAC 地址的映射关系
D. 主机需要发送信息,但 ARP 表中已有目的 IP 地址与 MAC 地址的映射关系
C
当源主机向本地局域网上的某主机发送 IP 数据报时,先在其 ARP 高速缓存中查看有无目的 IP 地址与 MAC 地址的映射。若有,就把这个硬件地址写入 MAC 帧,然后通过局域网把该 MAC 帧发往此硬件地址;若没有,则先通过广播 ARP 请求分组,在获得目的主机的 ARP 响应分组后,将目的主机的 IP 地址与硬件地址的映射写入 ARP 高速缓存。若目的主机不在本局域网上,则将 IP 分组发送给本局域网上的路由器,当然要先通过同样的方法获得路由器的 IP 地址和硬件地址的映射关系。
H3 向 H1 发送数据:①H3 用目的 IP 地址、子网掩码逐位 "与",192.168.3.2 & 255.255.255.128 = 192.168.3.0,因为与 H3 自身的网络前缀不同,所以判定 H3 和 H1 不属于同一个网络。②H3 使用 ARP 获得默认网关 E1 的 MAC 地址,并将发往 H1 的 IP 数据报封装成 MAC 帧(H3 判定和 H1 不属于同一个网络,因此目的 MAC 地址是默认网关 E1),该帧经过集线器、交换机的转发,最终被默认网关 E1 接收(H1 收不到这个帧),路由器不再向入口 E1 转发 IP 数据报。综上,H3 不会向 H1 发送 ARP 响应报文,选项 B 错误。读者可尝试分析其他选项的通信过程。
网络层的广播指的是目的 IP 地址是广播 IP 地址,数据链路层的广播指的是目的 MAC 地址是广播 MAC 地址,下列报文段封装成 IP 数据报和以太网 MAC 帧后,目的 IP 地址是广播地址,目的 MAC 地址是单播地址的是( )。
I. ARP 请求报文
II. ARP 响应报文
III. DHCP 发现报文
IV. DHCP 提供报文
V. DHCP 请求报文
VI. DHCP 确认报文
A. IV、VI
B. I、III、VI
C. II、V、VI
D. III、IV、V、VI
A
ARP 请求报文的目的 IP 地址是目的主机的 IP 地址,目的 MAC 地址是广播 MAC 地址。ARP 响应报文的目的 IP 地址是发起 ARP 请求的主机的 IP 地址,目的 MAC 地址是发起 ARP 请求的主机的 MAC 地址。DHCP 发现报文的目的 IP 地址是广播 IP 地址 255.255.255.255,目的 MAC 地址是广播 MAC 地址。DHCP 提供报文的目的 IP 地址同样是广播 IP 地址 255.255.255.255,但目的 MAC 地址是客户端主机的 MAC 地址。DHCP 请求报文和 DHCP 发现报文类似;DHCP 确认报文和 DHCP 提供报文类似。
可以动态为主机配置 IP 地址的协议是( )。
A. ARP
B. RARP
C. DHCP
D. NAT
C
DHCP 提供了一种机制,使得使用 DHCP 可自动获得 IP 的配置信息而无须手工干预。
若某路由器收到一个 TTL 值为 1 的 IP 数据报,则路由器的操作是( )。
A. 转发该 IP 数据报
B. 仅仅丢弃该 IP 数据报
C. 丢弃该 IP 数据报并向源主机发送类型为终点不可达的 ICMP 差错报告报文
D. 丢弃该 IP 数据报并向源主机发送类型为时间超过的 ICMP 差错报告报文
D
若路由器收到一个 TTL 值为 1 的 IP 数据报,则它先将 TTL 值减 1,然后判断是否为 0。若为 0,则丢弃该 IP 数据报并向源主机发送类型为时间超过的 ICMP 差错报告报文。
下列关于 ICMP 报文的说法中,错误的是( )。
A. ICMP 报文封装在数据链路层帧中发送
B. ICMP 报文可以用于报告 IP 数据报发送错误
C. ICMP 报文封装在 IP 数据报中发送
D. 对于已经携带 ICMP 差错报文的分组,不再产生 ICMP 差错报文
A
ICMP 属于网络层协议,ICMP 报文被封装在 IP 数据报中发送,但 ICMP 不是高层协议。
下列关于 ICMP 差错报文的描述中,错误的是( )。
A. ICMP 报文分为差错报告报文和询问报文两类
B. 对于已经分片的分组,只对第一个分片产生 ICMP 差错报文
C. PING 使用了 ICMP 差错报文
D. 对于多播的分组,不产生 ICMP 差错报文
C
PING 命令使用了 ICMP 的询问报文中的回送请求和回答报文。
【2010 统考真题】某网络的 IP 地址空间为 192.168.5.0/24,采用定长子网划分,子网掩码为 255.255.255.248,则该网络中的最大子网个数、每个子网内的最大可分配地址个数分别是( )。
【2018 统考真题】路由器 R 通过以太网交换机 S1 和 S2 连接两个网络,R 的接口、主机 H1 和 H2 的 IP 地址与 MAC 地址如下图所示。若 H1 向 H2 发送一个 IP 分组 P,则 H1 发出的封装 P 的以太网帧的目的 MAC 地址、H2 收到的封装 P 的以太网帧的源 MAC 地址分别是( )。
A. 00-a1-b2-c3-d4-62,00-1a-2b-3c-4d-52
B. 00-a1-b2-c3-d4-62,00-a1-b2-c3-d4-61
C. 00-1a-2b-3c-4d-51,00-1a-2b-3c-4d-52
D. 00-1a-2b-3c-4d-51,00-a1-b2-c3-d4-61
D
在网络的数据传送中,会经常用到两个地址:MAC 地址和 IP 地址。其中,MAC 地址会随着数据被发往不同的网络而改变,但 IP 地址当且仅当数据在私有网络与外部网络之间传递时才会改变。分组 P 在如题图所示的网络中传递时,首先由主机 H1 将分组发往路由器 R,这时源 MAC 地址为 H1 主机本身的 MAC 地址,即 00 - 1a - 2b - 3c - 4d - 52,目的 MAC 地址为路由器 R 的 MAC 地址,即 00 - 1a - 2b - 3c - 4d - 51。路由器 R 收到分组 P 后,根据分组 P 的目的 IP 地址,得知应将分组从另一个端口转发出去,于是会给分组 P 更换新的 MAC 地址,此时因为从另外的端口转发出去,所以 P 的新源 MAC 地址变为负责转发的端口 MAC 地址,即 00 - a1 - b2 - c3 - d4 - 61,目的 MAC 地址应为主机 H2 的 MAC 地址,即 00 - a1 - b2 - c3 - d4 - 62。根据分析过程,题目所问的 MAC 地址应为路由器 R 两个端口的 MAC 地址,因此选 D。
【2019 统考真题】若将 101.200.16.0/20 划分为 5 个子网,则可能的最小子网的可分配 IP 地址数是( )。
A. 126
B. 254
C. 510
D. 1022
B
网络前缀为 20 位,将 101.200.16.0/20 划分为 5 个子网,为了保证有子网的可分配 IP 地址数尽可能小,即要让其他子网的可分配 IP 地址数尽可能大,不能采用平均划分的方法,而要采用变长的子网划分方法,也就是最大子网用 1 位子网号,第二大子网用 2 位子网号,以此类推。
子网 1:101.200.0001 0000.00000001~101.200.0001 0111.11111110;地址范围为 101.200.16.1/21~101.200.23.254/21;可分配的 IP 地址数为 2046 个。
子网 2:101.200.0001 1000.00000001~101.200.0001 1011.11111110;地址范围为 101.200.24.1/22~101.200.27.254/22;可分配的 IP 地址数为 1022 个。
子网 3:101.200.0001 1100.00000001~101.200.0001 1101.11111110;地址范围为 101.200.28.1/23~101.200.29.254/23;可分配的 IP 地址数为 510 个。
子网 4:101.200.0001 1110.00000001~101.200.0001 1110.11111110;地址范围为 101.200.30.1/24~101.200.30.254/24;可分配的 IP 地址数为 254 个。
子网 5:101.200.0001 1111.00000001~101.200.0001 1111.11111110;地址范围为 101.200.31.1/24~101.200.31.254/24;可分配的 IP 地址数为 254 个。
综上,可能的最小子网的可分配 IP 地址数是 254 个。
【2021 统考真题】现将一个 IP 网络划分为 3 个子网,若其中一个子网是 192.168.9.128/26,则下列网络中不可能是另外两个子网之一的是( )。
A. 192.168.9.0/25
B. 192.168.9.0/26
C. 192.168.9.192/26
D. 192.168.9.192/27
B
划分子网的原则是要求划分出来的子网的 IP 地址空间互不重叠,且原来的 IP 地址空间不遗漏,求解本题最好的方法是代入选项,观察是否可将原 IP 地址空间分割为 3 个互不重叠的子网。根据题意,将 IP 网络划分为 3 个子网。其中一个是 192.168.9.128/26。可简写成 10/26(省略前面相同的 24 位前缀,其中 10 是 128 的二进制 1000 0000 的前两位,因为 26 - 24 = 2)。同理,A 可简写成 0/25;B 可简写成 00/26;C 可简写成 11/26;D 可以简写成 110/27。采用二叉树形式画出这些子网的地址空间如下图所示。
对于 A 和 C,可以组成 0/25、10/26、11/26 这 3 个互不重叠的子网。对于 D,可以组成 10/26、110/27、111/27 这 3 个互不重叠的子网。但对于 B,要想将一个 IP 网络划分为几个互不重叠的子网,3 个是不够的,至少需要划分为 4 个子网:00/26、01/26、10/26、11/26。
【2021 统考真题】若路由器向 MTU = 800B 的链路转发一个总长度为 1580B 的 IP 数据报(首部长度为 20B)时进行了分片,且每个分片尽可能大,则第 2 个分片的总长度字段和 MF 标志位的值分别是( )。
A. 796, 0
B. 796, 1
C. 800, 0
D. 800, 1
B
链路层 MTU = 800B。IP 分组首部长 20B。片偏移以 8 个字节为偏移单位,因此除了最后一个分片,其他每个分片的数据部分长度都是 8B 的整数倍。所以,最大 IP 分片的数据部分长度为 776B。在总长度为 1580B 的 IP 数据报中,数据部分占 1560B,1560B/776B = 2.01...,需要分成 3 片。所以第 2 个分片的总长度字段为 796,MF 为 1(表示还有后续的分片)。
【2022 统考真题】若某主机的 IP 地址是 183.80.72.48,子网掩码是 255.255.192.0,则该主机所在网络的网络地址是( )。
A. 183.80.0.0
B. 183.80.64.0
C. 183.80.72.0
D. 183.80.192.0
B
主机所在网络的网络地址可以通过主机的 IP 地址和子网掩码逐位 "与" 得到。子网掩码 255.255.192.0 的二进制前 18 位为 1、后 14 位为 0,把主机 IP 地址的后 14 位变为 0,得到的结果为 183.80.64.0,即为主机所在网络的网络地址。
【2023 统考真题】某网络拓扑如下图所示,其中路由器 R2 实现 NAT 功能。若主机 H 向 Internet 发送 1 个 IP 分组,则经过 R2 转发后,该 IP 分组的源 IP 地址是( )。
A. 195.123.0.33
B. 195.123.0.35
C. 192.168.0.1
D. 192.168.0.3
A
H 向 Internet 发送 IP 分组,初始的源 IP 地址为 192.168.0.3,经过 NAT 路由器的转发后,将源 IP 地址从私有 IP 地址改成全球 IP 地址(R2 外部接口的 IP 地址),因为 R2 外部接口和 195.123.0.34/30 处于同一子网,该子网可分配的 IP 地址范围是 195.123.0.33~195.123.0.34,所以 R2 外部接口的 IP 地址是 195.123.0.33,也就是经过 R2 转发后的源 IP 地址。
【2023 统考真题】主机 168.16.84.24/20 所在子网的最小可分配 IP 地址和最大可分配 IP 地址分别是( )。
【2024 统考真题】如下图所示的支持 VLAN 划分的交换机,已按端口划分了 3 个 VLAN,部分端口连接主机的 IP 地址和 MAC 地址如图中所示,ARP 表结构为 <IP 地址,MAC 地址,TTL>。下列选项中,不会出现在 H4 的 ARP 表中的是( )。
A. 192.168.3.81,00-18-A2-3B-36-21,14:32:00
B. 192.168.3.91,00-3E-C2-39-12-B5,14:37:00
C. 192.168.3.125,00-E5-78-4A-09-B2,14:45:00
D. 192.168.3.129,00-08-6E-05-A7-82,14:52:00
D
ARP 用于解决局域网上的主机或路由器的 IP 地址和 MAC 地址的映射问题。因此 H4 的 ARP 表中只有和 H4 处于同一虚拟局域网上的主机的 IP 地址和 MAC 地址的映射,H4 位于 VLAN1,H6 位于 VLAN3,因此 D 表示的 H6 的 IP 地址与 MAC 地址的映射不应出现在 H4 的 ARP 表中。
02.某网络的一台主机产生了一个 IP 数据报,首部长度为 20B,数据部分长度为 2000B。该数据报需要经过两个网络到达目的主机,这两个网络所允许的数据链路层的最大传输单位(MTU)分别为 1500B 和 576B。问原 IP 数据报到目的主机时分成了几个 IP 小报文?每个报文的数据部分长度分别是多少?
【解答】
在 IP 层下面的每种数据链路层都有自己的帧格式,其中包括帧格式中的数据字段的最大长度,这称为最大传输单位(MTU)。1500 - 20 = 1480,2000 - 1480 = 520,所以原 IP 数据报经过第一个网络后分成了两个 IP 小报文,第一个报文的数据部分长度是 1480B,第二个报文的数据部分长度是 520B。
09.某个网络地址块 192.168.75.0 中有 5 台主机 A、B、C、D 和 E,主机 A 的 IP 地址为 192.168.75.18,主机 B 的 IP 地址为 192.168.75.146,主机 C 的 IP 地址为 192.168.75.158,主机 D 的 IP 地址为 192.168.75.161,主机 E 的 IP 地址为 192.168.75.173,共同的子网掩码是 255.255.255.240。请回答:
1)5 台主机 A、B、C、D、E 分属几个网段?哪些主机位于同一网段?主机 D 的网络地址为多少?
2)若要加入第 6 台主机 F,使它能与主机 A 属于同一网段,则其 IP 地址范围是多少?
3)若在网络中另加入一台主机,其 IP 地址为 192.168.75.164,则它的广播地址是多少?哪些主机能够收到?
【解答】
1)共同的子网掩码为 255.255.255.240,表示前 28 位为网络号,同一网段内的 IP 地址具有相同的网络号。主机 A 的网络号为 192.168.75.16;主机 B 的网络号为 192.168.75.144;主机 C 的网络号为 192.168.75.144;主机 D 的网络号为 192.168.75.160;主机 E 的网络号为 192.168.75.160。因此 5 台主机 A、B、C、D、E 分属 3 个网段,主机 B 和 C 在一个网段,主机 D 和 E 在一个网段,A 主机在一个网段。主机 D 的网络号为 192.168.75.160。
2)主机 F 与主机 A 在同一个网段,所以主机 F 所在的网段为 192.168.75.16,第 4 个字节 16 的二进制表示为 0001 0000,最后边的 4 位为主机位,去掉全 0 和全 1。则其 IP 地址范围为 192.168.75.17 - 192.168.75.30,并且不能为 192.168.75.18。
3)因为 164 的二进制为 1010 0100,将最右边的 4 位置 1,即 1010 1111,则广播地址为 192.168.75.175。主机 D 和主机 E 可以收到。
1)由上图可知,源 IP 地址为 IP 首部的第 13、14、15、16 个字节,即 7C 4E 03 02,转换为点分十进制表示可得源 IP 地址为 124.78.3.2。目的 IP 地址为 IP 首部的第 17、18、19、20 个字节,即 B4 0E 0F 02,转换为点分十进制表示可以得到目的 IP 地址为 180.14.15.2。
11.主机 A 的 IP 地址为 218.207.61.211,MAC 地址为 00:1d:72:98:1d:fc。A 收到一个帧,该帧的前 64 个字节的十六进制形式和 ASCII 形式如下图所示。
IP 分组的首部格式见图 4.5,以太网帧的格式参见 3.6.2 节。问:
1)主机 A 所在网络的网关路由器的相应端口的 MAC 地址是多少?
2)该 IP 分组所携带的数据量为多少字节?
3)若该分组需要被路由器转发到一条 MTU 为 380B 的链路上,则路由器将做何种操作?
【解答】
1)根据收到的帧,找出源 IP 地址为 da c7 66 28,表示成十进制为 218.199.102.40,是一个 C 类 IP 地址,与 A 的 IP 地址 218.207.61.211 不在同一个网络中,所以需经过路由器转发。MAC 地址只具有本地意义(ARP 也只能工作在同一局域网中)。该帧为 A 收到的帧,因此目的 MAC 地址为 A 的 MAC 地址,源 MAC 地址为网关路由器端口的 MAC 地址(若为 A 发出的帧,则目的 MAC 地址为默认网关的 MAC 地址)。首先找到目的 MAC 地址 00:1d:72:98:1d:fc 的位置(在下图中的位置 1 标出),根据以太网帧的结构,目的 MAC 地址后面紧邻的是源 MAC 地址,因此源 MAC 地址为 00:00:5e:00:01:01。
2)要求得 IP 分组所携带的数据量,需要知道首部长度和总长度。218.207.61.211 表示成十六进制是 da.cf.3d.d3,并且作为分组中的目的 IP 地址。在图中确定目的 IP 地址的位置(位3)置 2),再根据 IP 首部的结构,分别从目的 IP 的位置向前数 14 和 16 个字节,即可找到总长度和首部长度字段的位置。但首部长度字段所在的字节值为 0x45,首部长度字段只有 4 位,前 4 位是版本号。因此首部长度的值为 5,单位为 4B,所以首部长度为 20B。总长度字段的值为 0x0190,十进制为 400B。因此分组携带的数据长度为 380B。
因为整个 IP 分组的长度是 400B,大于输出链路 MTU(380B)。这时需要考虑分片,但是否能够分片还得看 IP 首部中的标志位。IP 首部中的标志字段占 3 位,从前到后依次为保留位、DF 位、MF 位。根据 IP 首部结构找到标志字段所在的字节,其值为 0x40,二进制表示为 01000000,于是 DF = 1,不能对该 IP 分组进行分片。此时,路由器应进行的操作是丢弃该分组,并用 ICMP 差错报文向源主机报告。
2)在 H1→R2→H3 传送 IP 分组的过程中,分别使用了两次 ARP,交换机进行了相关的自学习,还需要考虑 Hub 的广播特性。H1 给 H3 发送一个 IP 分组 A,能收到封装 A 的以太网帧的主机有 H3 和 H4,其中 H4 发现帧的目的 MAC 地址与自身的不同且不是广播地址,于是丢弃该帧,而 H3 发现帧的目的 MAC 地址与自身的相同,于是接收该帧。H3 给 H1 发送一个 IP 分组 B,能收到封装 B 的以太网帧的主机有 H4 和 H1,其中 H4 发现帧的目的 MAC 地址与自身的不同且不是广播地址,于是丢弃该帧,而 H1 接收该帧。
3)当 H1 发出 C 时,首部中的源 IP 地址为 H1 的 IP 地址 172.18.1.33,目的 IP 地址为 Web 服务器 S 的 IP 地址 213.48.226.31。当 C 从 R2 转发出去时,首部中的源 IP 地址为 R2 接口 E1 的 IP 地址 203.10.2.1,目的 IP 地址为 Web 服务器 S 的 IP 地址 213.48.226.31。
13.【2009 统考真题】某网络拓扑图如下图所示,路由器 R1 通过接口 E1、E2 分别连接局域网 1、局域网 2,通过接口 L0 连接路由器 R2,并通过路由器 R2 连接域名服务器与互联网。R1 的 L0 接口的 IP 地址是 202.118.2.1;R2 的 L0 接口的 IP 地址是 202.118.2.2,L1 接口的 IP 地址是 130.11.120.1,E0 接口的 IP 地址是 202.118.3.1;域名服务器的 IP 地址是 202.118.3.2。
1)将 IP 地址空间 202.118.1.0/24 划分为两个子网,分别分配给局域网 1 和局域网 2,每个局域网需分配的 IP 地址数不少于 120 个。请给出子网划分结果,说明理由或给出必要的计算过程。
1)DHCP 服务器可为主机 2~N 动态分配 IP 地址的最大范围是 111.123.15.5~111.123.15.254;主机 2 发送的封装 DHCP Discover 报文的 IP 分组的源 IP 地址和目的 IP 地址分别是 0.0.0.0 和 255.255.255.255。
2)主机 2 发出的第一个以太网帧的目的 MAC 地址是 ff-ff-ff-ff-ff-ff;封装主机 2 发往 Internet 的 IP 分组的以太网帧的目的 MAC 地址是 00-a1-a1-a1-a1-a1。
3)主机 1 能访问 WWW 服务器,但不能访问 Internet。因为主机 1 的子网掩码配置正确而默认网关 IP 地址被错误地配置为 111.123.15.2(正确 IP 地址是 111.123.15.1),所以主机 1 可以访问在同一个子网内的 WWW 服务器,但当主机 1 访问 Internet 时,主机 1 发出的 IP 分组会被路由到错误的默认网关(111.123.15.2),从而无法到达目的主机。
15.【2018 统考真题】某公司的网络如下图所示。IP 地址空间 192.168.1.0/24 均分给销售部和技术部两个子网,并已分别为部分主机和路由器接口分配了 IP 地址,销售部子网的 MTU = 1500B,技术部子网的 MTU = 800B。
回答下列问题:
1)销售部子网的广播地址是什么?技术部子网的子网地址是什么?若每台主机仅分配一个 IP 地址,则技术部子网还可以连接多少台主机?
2)假设主机 192.168.1.1 向主机 192.168.1.208 发送一个总长度为 1500B 的 IP 分组,IP 分组的首部长度为 20B,路由器在通过接口 F1 转发该 IP 分组时进行了分片。若分片时尽可能分为最大片,则一个最大 IP 分片封装数据的字节数是多少?至少需要分为几个分片?每个分片的片偏移量是多少?
16.【2020 统考真题】某校园网有两个局域网,通过路由器 R1、R2 和 R3 互连后接入 Internet,S1 和 S2 为以太网交换机。局域网采用静态 IP 地址配置,路由器部分接口以及各主机的 IP 地址如下图所示。
请回答下列问题:
1)为使 H2 和 H3 能够访问 Web 服务器(使用默认端口号),需要进行什么配置?
2)若 H2 主动访问 Web 服务器时,将 HTTP 请求报文封装到 IP 数据报 P 中发送,则 H2 发送的 P 的源 IP 地址和目的 IP 地址分别是什么?经过 R3 转发后,P 的源 IP 地址和目的 IP 地址分别是什么?经过 R2 转发后,P 的源 IP 地址和目的 IP 地址分别是什么?
【解答】
1)H2 和 H3 与 Web 服务器处于不同的局域网,路由器 R2、R3 具有 NAT 功能。当 R2 从 WAN 口收到来自 H2 或 H3 发来的 HTTP 请求时,根据 NAT 表发送给 Web 服务器的对应端口。为使外部主机能正常访问 Web 服务器,应在 R2 的 NAT 表中增加一项,外网的 IP 地址配置为路由器的外端 IP 地址,内网的 IP 地址配置为 Web 服务器的 IP 地址,HTTP 的服务器端的默认端口号为 80,因此外网和内网的端口号都需配置为 80。只需在 R2 中配置 Web 服务器的 NAT 表项,而不用在 R3 中配置 H2 和 H3 的 NAT 表项,原因在于 H2 和 H3 是主动访问 Web 服务器,若不提前配置好 Web 服务器的 NAT 映射,则当 IP 分组到达 R2 时,就不知道应当把目的 IP 地址转换成专用网中的哪个本地 IP 地址。而 R3 会自动记录 H2 和 H3 所对应的 IP 地址和端口号,且客户端的端口号是随机分配的,无法做静态配置,只能通过自动动态配置实现。R2 的 NAT 表配置如下:
2)因为启用了 NAT 服务,H2 发送的 P 的源 IP 地址应该是 H2 的内网地址,目的地址应该是 R2 的外网 IP 地址,源 IP 地址是 192.168.1.2,目的 IP 地址是 203.10.2.2。R3 转发后,将 P 的源 IP 地址改为 R3 的外网 IP 地址,目的 IP 地址仍然不变,源 IP 地址是 203.10.2.6,目的 IP 地址是 203.10.2.2。R2 转发后,将 P 的目的 IP 地址改为 Web 服务器的内网地址,源地址仍然不变,源 IP 地址是 203.10.2.6,目的 IP 地址是 192.168.1.2。
IF (若原来的路由表中没有目的网络N)
则把该项目添加到路由表中(表明这是新的目的网络)。
ELSE IF (若原来的路由表中有目的网络N,且下一跳路由器的地址是X)
用收到的项目替换原路由表中的项目(因为要以更新的消息为准)。
ELSE IF (若原来的路由表中有目的网络N,且下一跳路由器的地址不是X)
若收到的项目中的距离d小于路由表中的距离,则进行更新。
ELSE 什么也不做。
为了使 OSPF 能用于规模很大的网络,将一个自治系统再划分为若干更小的范围,称为区域。划分区域的好处是,把利用洪泛法交换链路状态信息的范围局限在各个区域,而不是整个 AS,从而减少了整个网络上的通信量。在一个区域内,由一个或多个区域边界路由器负责为流向该区域以外的分组提供路由选择。在 AS 内只有一个区域配置成主干区域,它包含 AS 内的所有区域边界路由器,可能还包含一些非边界路由器,主干区域的作用是连通其他区域。当分组在 AS 内的不同区域之间传送时,要先找到本区域内的一个区域边界路由器(如 R3、R4、R7),再通过主干区域路由到位于目的区域的区域边界路由器,最后路由到目的地。在图 4.18 中,R3、R4 和 R7 都是区域边界路由器,每个区域至少有一个区域边界路由器。主干区域还要有一个路由器专门负责和本 AS 外的其他 AS 交换路由器信息,称为自治系统边界路由器(如 R6)。
来自 B 的向量为 (5, 0, 8, 12, 6, 2);来自 D 的向量为 (16, 12, 6, 0, 9, 10);来自 E 的向量为 (7, 6, 3, 9, 0, 4)。经过测量,C 到 B、D 和 E 的延迟分别为 6、3 和 5,则 C 到达所有节点的最短路径是( )。
A. (5, 6, 0, 9, 6, 2)
B. (11, 6, 0, 3, 5, 8)
C. (5, 11, 0, 12, 8, 9)
D. (11, 8, 0, 7, 4, 9)
22.B
距离 - 向量路由算法要求每个路由器维护一张路由表,该表给出了到达每个目的地址的已知最佳距离(最小代价)和下一步的转发地址。算法要求每个路由器定期与所有相邻路由器交换整个路由表,并更新自己的路由表项。注意从邻接节点接收到路由表不能直接进行比较,而要加上相邻节点传输消耗后再进行计算。C 到 B 的距离是 6,于是从 C 开始通过 B 到达各节点的最短距离向量是 (11, 6, 14, 18, 12, 8)。同理,通过 D 和 E 的最短距离向量分别是 (19, 15, 9, 3, 12, 13) 和 (12, 11, 8, 14, 5, 9)。于是,C 到所有节点的最短路径应该是 (11, 6, 0, 3, 5, 8)。
某分组交换网络的拓扑如下图所示,各路由器使用 OSPF 协议且均已收敛,各链路的度量已在图中标注。假设各段链路的带宽均为 100Mb/s,分组长度为 1000B,其中分组的首部长度为 20B。若主机 A 向主机 B 发送一个大小为 980000B 的文件,忽略分组的传播时延和封装 / 解封时间,从 A 发送开始到 B 接收完毕为止,需要的时间是( )。
A. 80.08ms
B. 80.16ms
C. 80.32ms
D. 80.64ms
23.C
根据 OSPF 算法,从 A 到 B 转发经过的链路代价依次为 2、3、1、1、2,一共经过 4 个路由器。分组长度为 1000B,首部长度为 20B,数据长度为 980B,所以共有 980000/980 = 1000 个分组,每次存储转发时延为 1000B÷100Mb/s = 0.08ms,第一个分组从 A 到 B 的时间为 0.08×5 = 0.4ms,剩下的 999 个分组每经过 0.08ms 就到达一个,所以总时间为 0.4 + 0.08×999 = 80.32ms。
27.【2021 统考真题】某网络中的所有路由器均采用距离向量路由算法计算路由。若路由器 E 与邻居路由器 A、B、C 和 D 之间的直接链路距离分别是 8、10、12 和 6,且 E 收到邻居路由器的距离向量如下表所示,则路由器 E 更新后的到达目的网络 Net1 ~ Net4 的距离分别是( )。
A. 9, 10, 12, 6
B. 9, 10, 28, 20
C. 9, 20, 12, 20
D. 9, 20, 28, 20
27.D
根据距离向量路由算法,E 收到相邻路由器的距离向量后,更新它的路由表:
① 当原路由表中没有目的网络时,把该项目添加到路由表中。
② 发来的路由信息中有一条到达某个目的网络的路由,该路由与当前使用的路由相比,有较短的距离,就用经过发送路由信息的节点的新路由替换。
分析题意可知,E 与邻居路由器 A、B、C 和 D 之间的直接链路距离分别是 8, 10, 12 和 6。到达 Net1~Net4 没有直接链路,需要通过邻居路由器。从上述算法可知,E 到达目的网络一定是经过 A、B、C 和 D 中距离最小的。根据题中所给的距离信息,计算 E 经邻居路由器到达目的网络 Net1~Net4 的距离,如下表所示,选择到达每个目的网络距离的最短值。
多播数据报的源地址是源主机的 IP 地址,目的地址是 IP 多播地址。IP 多播地址就是 IPv4 中的 D 类地址。D 类地址的前四位是 1110,因此 D 类地址范围是 224.0.0.0~239.255.255.255。每个 D 类 IP 地址标志一个多播组,一台主机可以随时加入或离开一个多播组。
多播数据报和一般的 IP 数据报的区别是,前者使用 D 类 IP 地址作为目的地址,并且首部中的协议字段值是 2,表明使用 IGMP。需要注意的是:
1)多播数据报也是 "尽最大努力交付",不提供可靠交付。
2)多播地址只能用于目的地址,而不能用于源地址。
3)对多播数据报不产生 ICMP 差错报文。
IP 多播可以分为两种:①只在本局域网上进行硬件多播;②在互联网的范围内进行多播。目前大部分主机都是通过局域网接入互联网的。因此,在互联网上进行多播的最后阶段,还是要把多播数据报在局域网上用硬件多播交付给多播组的所有成员[见图 4.22 (b)]。
因为局域网支持硬件多播,所以只要把 IP 多播地址映射成多播 MAC 地址,即可将 IP 多播数据报封装在局域网的 MAC 帧中,而 MAC 帧首部的目的 MAC 地址字段就设置为由 IP 多播地址映射成的多播 MAC 地址。这样,就很方便地利用硬件多播实现了局域网内的 IP 多播。
IANA 拥有的以太网多播地址的范围是从 01-00-5E-00-00-00 到 01-00-5E-7F-FF-FF。在这些地址中,只有后 23 位可用作多播。但 D 类 IP 地址可供分配的有 28 位,即这 28 位中的前 5 位无法映射到以太网多播地址,因此两者是多对一的映射关系,如图 4.23 所示。
例如,IP 多播地址 224.128.64.32(E0-80-40-20)和另一个 IP 多播地址 224.0.64.32(E0-00-40-20)转换成以太网的多播地址都是 01-00-5E-00-40-20。因此收到多播数据报的主机,还要在 IP 层利用软件进行过滤,把不是本主机要接收的数据报丢弃。
4.5.4 IGMP 与多播路由协议
路由器要获得多播组的成员信息,需要利用网际组管理协议(Internet Group Management Protocol,IGMP)。连接到局域网上的多播路由器还必须和互联网上的其他多播路由器协同工作,以便把多播数据报用最小代价传送给所有组成员,这就需要使用多播路由选择协议。
IGMP 是让连接到本地局域网上的多播路由器,知道本局域网上是否有主机参加或退出了某个多播组。IGMP 并不是在互联网范围内对所有多播组成员进行管理的协议。IGMP 不知道 IP 多播组包含的成员数,也不知道这些成员分布在哪些网络上。
IGMP 报文被封装在 IP 数据报中传送,但它也向 IP 提供服务。因此不把 IGMP 视为一个单独的协议,而视为整个网际协议 IP 的一个组成部分。IGMP 的工作可分为两个阶段。
移动 IP 技术是指移动站以固定的 IP 地址实现跨越不同网络的漫游功能,并保证基于 IP 的网络权限在漫游过程中不发生任何改变。移动 IP 的目标是把分组自动地投递给移动站。一个移动站是把其连接点从一个网络或子网改变到另一个网络或子网的主机。
移动 IP 定义了三种功能实体:移动节点、本地代理(也称归属代理)和外地代理。
1)移动节点:具有永久 IP 地址的移动主机。
2)本地代理:通常就是连接在归属网络(原始连接到的网络)上的路由器。
3)外地代理:通常就是连接在被访网络(移动到另一地点所接入的网络)上的路由器。
值得注意的是,某用户将笔记本关机后从家里带到办公室重新上网,在办公室能很方便地通过 DHCP 自动获取新的 IP 地址。虽然笔记本移动了,更换了地点及所接入的网络,但是,这并不是移动 IP。但是,若我们需要在移动中进行 TCP 传输,则在移动站漫游时,应一直保持这个 TCP 连接,否则移动站的 TCP 连接就会断断续续。可见,若要使移动站在移动中的 TCP 连接不中断,就必须使笔记本的 IP 地址在移动中保持不变。这就是移动 IP 要研究的问题。
4.6.2 移动 IP 通信过程
用一个通俗的例子来描述移动 IP 的通信原理。例如,在以前科技不那么发达的年代,本科毕业时都将走向各自的工作岗位。因为事先并不知道自己未来的准确通信地址,所以怎样继续和同学们保持联系呢?实际上也很简单。彼此留下各自的家庭地址(永久地址)。毕业后若要和某同学联系,只要写信寄到该同学的永久地址,再请其家长把信件转交即可。
在移动 IP 中,每个移动站都有一个原始地址,即永久地址(或归属地址),移动站原始连接的网络称为归属网络。永久地址和归属网络的关联是不变的。在图 4.24 中,移动站 A 的永久地址是 131.8.6.7/16,而其归属网络是 131.8.0.0/16。归属代理通常是连接到归属网络上的路由器,然而它实现的代理功能是在应用层完成的。当移动站移动到另一地点,所接入的外地网络也称被访网络。在图 4.24 中,移动站 A 被移动到被访网络 15.0.0.8。被访网络中使用的代理称为外地代理,它通常是连接在被访网络上的路由器。外地代理有两个重要功能:①要为移动站创建一个临时地址,称为转交地址。在图 4.24 中,移动站 A 的转交地址是 15.5.6.7/8。转交地址的网络号显然和被访网络一致。②及时把移动站的转交地址告诉其归属代理。
图4.22 移动IP的基本通信过程
请注意两点:转交地址是供移动站、归属代理及外地代理使用的,各种应用程序都不会使用。外地代理要向连接在被访网络上的移动站发送 IP 分组时,直接使用移动站的 MAC 地址。
在图 4.24 中,通信者 B 要和移动站 A 进行通信。B 并不知道 A 在什么地方,但 B 使用 A 的永久地址作为发送的 IP 分组中的目的地址,移动 IP 的基本通信流程如下:
1)移动站 A 在归属网络时,按传统的 TCP/IP 方式进行通信。
2)移动站 A 漫游到被访网络时,向外地代理进行登记,以获得一个临时的转交地址。外地代理要向 A 的归属代理登记 A 的转交地址。
3)归属代理知道移动站 A 的转交地址后,会构建一条通向转交地址的隧道,将截获的发送给 A 的 IP 分组进行再封装,并通过隧道发送给被访网络的外地代理。
4)外地代理把收到的封装的 IP 分组进行拆封,恢复成原始的 IP 分组,然后发送给移动站 A,这样 A 在被访网络就能收到这些发送给它的 IP 分组。
5)移动站 A 在被访网络对外发送 IP 分组时,仍然使用自己的永久地址作为 IP 分组的源地址,此时显然无须通过 A 的归属代理来转发,而是直接通过被访网络的外部代理。
6)移动站 A 移动到另一被访网络时,在新外地代理登记后,然后新外地代理将 A 的新转交地址告诉其归属代理。无论如何移动,A 收到的 IP 分组都是由归属代理转发的。
当源主机向目标主机发送数据报时,路由器先检查源主机与目标主机是否连接在同一个网络上。若源主机和目标主机在同一个网络上,则直接交付而无须通过路由器。若源主机和目标主机不在同一个网络上,则路由器按照转发表(由路由表得出)指出的路由将分组转发给下一个路由器,这称为间接交付。可见,在同一个网络中传递数据无须路由器的参与,而跨网络通信必须通过路由器进行转发。例如,路由器可以连接不同的 LAN,连接不同的 VLAN,连接不同的 WAN,或者把 LAN 和 WAN 互连起来。路由器隔离了广播域。
转发表是从路由表得出的,其表项和路由表项有直接的对应关系,如图 4.27 所示。但转发表的格式和路由表的格式不同,其结构应使查找过程最优化(而路由表则需对网络拓扑变化的计算最优化)。转发表中含有一个分组将要发往的目的网络,以及分组的下一跳(下一步接收者的目的地址,实际为 MAC 地址)。转发表中还可设置一条默认路由,只要目的网络不在转发表中,就一律选择默认路由转发,默认路由表项的匹配优先级最低。路由表总是用软件来实现的;转发表可以用软件来实现,甚至也可以用特殊的硬件来实现。
注意转发和路由选择的区别:"转发" 是路由器根据转发表把收到的 IP 数据报从合适的端口转发出去,它仅涉及一个路由器。而 "路由选择" 则涉及很多路由器,路由表是许多路由器协同工作的结果。这些路由器按照复杂的路由算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由,并由此构造出整个路由表。
路由器是第三层设备,要处理的内容比第二层设备交换机更多,因而转发速度比交换机慢,选项 A 错误。虽然一些路由协议也将延迟等作为参数进行路由选择,但路由协议使用得最多的参数是传输距离,此外还有一些其他参数,选项 B 错误。默认路由的匹配优先级最低,只要目的网络不在转发表中,就一律选择默认路由转发,选项 C 正确。路由器只能根据 IP 地址进行转发,D 错误。
(未使用 CIDR)当一个 IP 分组进行直接交付时,要求发送方和目的站具有相同的( )。
A. IP 地址
B. 主机号
C. 端口号
D. 子网地址
D
判断一个 IP 分组的交付方式是直接交付还是间接交付,路由器需要根据分组的目的 IP 地址和该路由器接收端口的 IP 地址是否属于同一个子网来判断。具体来说,将该分组的源 IP 地址和目的 IP 地址分别与子网掩码进行 "与" 操作,若得到的子网地址相同,则该分组就采用直接交付方式,否则采用间接交付方式。
路由器具有较大的传输时延,因为它需要根据所接收的每个分组首部中的 IP 地址决定是否转发分组,处理分组首部的任务一般由软件完成,将带来较长的处理时间。因为局域网交换机由硬件进行帧的转发,而且不关心数据链路层以上的数据,所以具有比路由器要小得多的传输时延。从数量级上看,若局域网交换机的传输时延为几十微秒,则路由器的传输时延为几千微秒。集线器的每个接口都具有收发功能,当某个接口收到信号时,立即向所有其他接口转发,因此其传输时延最小。
A. 仅 III、IV B. 仅 I、II、III C. 仅 I、II、IV D. I、II、III、IV
C
选项 I 和 IV 显然是路由器的功能。对于选项 II,当路由器监测到拥塞时,可合理丢弃 IP 分组,并向发出该 IP 分组的源主机发送一个源点抑制的 ICMP 报文(最新标准已不再使用)。对于选项 III,路由器对收到的 IP 分组首部进行差错检验,丢弃有差错首部的报文,但不保证 IP 分组不丢失。
4)主机 H3 发送一个目的地址为 192.168.1.127 的 IP 数据报,主机号全为 1,为本网络的广播地址,因为路由器可以隔离广播域,所以只有主机 H4 会接收到数据报。
4.8 本章小结及疑难点
1."尽最大努力交付" 有哪些含义?
1)不保证源主机发送的 IP 数据报一定无差错地交付到目的主机。
2)不保证源主机发送的 IP 数据报都在某一规定的时间内交付到目的主机。
3)不保证源主机发送的 IP 数据报一定按发送时的顺序交付到目的主机。
4)不保证源主机发送的 IP 数据报不会重复交付给目的主机。
5)不故意丢弃 IP 数据报。丢弃 IP 数据报的情况是:路由器检测出首部检验和有错误;或者因为网络中通信量过大,路由器或目的主机中的缓存已无空闲空间。
但要注意,IP 数据报的首部中有一个 "首部检验和" 字段。当它检验出 IP 数据报的首部出现了差错时,就丢弃该数据报。因此,凡交付给目的主机的 IP 数据报都是 IP 首部没有差错的或没有检测出差错的。也就是说,在传输过程中,出现差错的 IP 数据报都被丢弃了。
现在互联网上绝大多数的通信量都属于 "尽最大努力交付"。若数据必须可靠地交付给目的地,则使用 IP 的高层软件必须负责解决这一问题。
2.假定在一个局域网中,计算机 A 广播一个 ARP 请求分组,希望找出计算机 B 的硬件地址。试问这时由哪个计算机发送 ARP 响应分组?将谁的硬件地址告诉计算机 A?
这要区分两种情况。第一,若计算机 B 和计算机 A 都连接在同一个局域网,则计算机 B 发送 ARP 响应分组,给出计算机 B 的硬件地址。第二,若计算机 B 和计算机 A 不连接在同一个局域网,则必须由一个连接计算机 A 所在局域网的路由器来响应,这时该路由器向计算机 A 发送 ARP 响应分组,给出该路由器的硬件地址。
3.在数据报的首部中只有源 IP 地址和目的 IP 地址,而没有中间经过的路由器的 IP 地址,更没有指明下一跳路由器的 IP 地址,那么待转发的数据报怎样才能找到下一跳路由器呢?
当路由器收到一个待转发的数据报时,由路由表得出下一跳路由器的 IP 地址后,不是把这个地址填入数据报,而是送交数据链路层的网络接口软件。网络接口软件负责把下一跳路由器的 IP 地址转换成硬件地址(使用 ARP),并将此硬件地址写入 MAC 帧的首部,然后根据此硬件地址找到下一跳路由器。可见,当发送一连串的数据报时,上述的查找路由表、用 ARP 得到硬件地址、把硬件地址写入 MAC 帧的首部等过程,将不断地重复进行,造成了一定的开销。
那么,能不能在路由表中不使用 IP 地址而直接使用硬件地址呢?不行。我们要清楚,使用抽象的 IP 地址,本来就是为了隐蔽各种底层网络的复杂性而便于分析和研究问题,这样就不可避免地要付出一些代价,例如在选择路由时多了一些开销。反过来,若在路由表中直接使用硬件地址,则因为硬件地址是平面的,将导致路由表极为庞大,从而带来更多的麻烦。
UDP 是面向报文的。发送方 UDP 对应用层交下来的报文,在添加首部后就向下交付给 IP 层,一次发送一个报文,既不合并,又不拆分,而是保留这些报文的边界;接收方 UDP 对 IP 层交上来 UDP 数据报,在去除首部后就原封不动地交付给上层应用进程,一次交付一个完整的报文。因此报文不可分割,是 UDP 数据报处理的最小单位。因此,应用程序必须选择合适大小的报文,若报文太长,则 UDP 把它交给 IP 层后,可能导致分片;若报文太短,则 UDP 把它交给 IP 层后,会使 IP 数据报的首部的相对长度太大,两者都会降低 IP 层的效率。
仅仅使用 IP 分组还不够。IP 分组包含 IP 地址,该地址指定一个目的机器。一旦这样的分组到达目的机器,网络控制程序如何知道把它交给哪个进程呢?UDP 分组包含一个目的端口,这一信息是必需的,因为有了它,分组才能被投递到正确的进程。此外,UDP 可以对数据报做包括数据段在内的差错检测,而 IP 只对其首部做差错检测。
TCP 连接传送的数据流中的每个字节都编上一个序号。序号字段的值是指本报文段所发送的数据的第一个字节的序号。如图 5.8 所示,假设 A 和 B 之间建立了一条 TCP 连接,A 的发送缓存区中共有 10B,序号从 0 开始排序,第一个报文段包含第 0~2 个字节,则该 TCP 报文段的序号是 0,第二个报文段的序号是 3。
2.确认
TCP 首部的确认号是期望收到对方的下一个报文段的数据的第一个字节的序号。在图 5.8 中,若接收方 B 已收到第一个报文段的数据,此时 B 希望收到的下一个报文段的数据是从第 3 个字节开始的,则 B 发送给 A 的报文段中的确认号字段应为 3。发送方缓存区会继续存储那些已发送但未收到确认的报文段,以便在需要时重传。
TCP 默认使用累积确认,即 TCP 只确认数据流中至第一个丢失字节为止的字节,这样可以减小传输开销。接收方可在合适的时候发送确认,也可在自己有数据要发送时将确认信息顺便捎带上(捎带确认)。例如,在图 5.8 中,接收方 B 收到了 A 发送的包含字节 0~2 及字节 6~7 的报文段。由于某种原因,B 还未收到字节 3~5 的报文段,此时 B 仍在等待字节 3(和其后面的字节),因此 B 传到 A 的下一个报文段将确认号字段置为 3。
图 5.9 说明了如何利用滑动窗口机制进行流量控制。假设数据只从 A 发往 B,而 B 仅向 A 发送确认报文段,则 B 可通过设置确认报文段首部中的窗口字段来将 rwnd 通知给 A。rwnd 即接收方允许连续接收的能力,单位是字节。发送方 A 总是根据最新收到的 rwnd 值来限制自己发送窗口的大小,从而将未确认的数据量控制在 rwnd 大小之内,保证 A 不会使 B 的接收缓存溢出。设 A 向 B 发送数据,在连接建立时,B 告诉 A:"我的接收窗口 rwnd = 400"。接收方 B 进行了三次流量控制,这三个报文段都设置了 ACK = 1,只有在 ACK = 1 时确认号字段才有意义。第一次把窗口减到 rwnd = 300,第二次又减到 rwnd = 100,最后减到 rwnd = 0,即不允许发送方再发送数据。这使得发送方暂停发送的状态将持续到 B 重新发出一个新的窗口值为止。