跳转至

第 5 章 网络互联技术

大纲定位:张海霞主编《计算机网络技术》(机械工业出版社,2016 年版),课程代码 02141 配套自学考试大纲。按该版知识范围复习,不代表现行考试公告或当前产品指南;讲解、算例与练习由项目独立编写。

复习导航

大纲条目索引 层次 讲解 自编练习
1 网络互联技术的基本概念 识记 第 1 节 1
2 网际协议IP的基本概念 领会 第 2 节 1、2、3
3 IP地址 综合应用 第 3 节、第 4 节、第 5 节、第 6 节 4、5、6
4 IP路由 领会 第 7 节 7
5 ARP、DHCP、ICMP和IGMP的功能和工作原理 简单应用 第 8 节 6、7、8
6 IPv6协议基本知识 识记 第 9 节 8

1 从物理连接到网络互联

把线接通,只解决了物理连接。网络互联还要求两边能按照共同规则交换数据。异构网络可能采用不同的帧结构、寻址方式和传输技术;协议转换在边界转换有关格式,虚拟互联网络则在不同底层网络之上约定统一的数据分组。

IP 采用后一种思路:主机和路由器处理统一的 IP 分组,分组在每段链路上再封装为该链路能传送的帧。以太网与另一种网络不必改成相同的物理介质,也能参与同一个 IP 互联网络。判断方案时,应说明统一的是哪一层,而不是只说“接上路由器”。

2 IPv4 服务与首部字段

IP 提供无连接、尽力而为的分组传输:发送前不建立端到端连接,不承诺分组不丢失、不重复或按序到达。可靠传输可以由上层机制承担,不能把 IP 的服务能力直接当成 TCP 的能力。

字段组 读报文时要回答的问题
版本、首部长度、区分服务 按哪个版本解释、首部在哪里结束、服务标记是什么
总长度 首部加数据一共多少字节
标识、DF、MF、片偏移 是否允许分片、是否还有后续片、数据在原分组中的位置
TTL、协议 还允许多少次路由转发、交给哪个上层协议
首部校验和、源地址、目的地址 首部有无检出的差错、分组从哪里到哪里
选项、填充 有无附加控制信息、首部是否按 4 字节对齐

IPv4 基本首部为 20 B,首部长度字段以 4 B 为单位,最大首部为 60 B;总长度字段以字节计,最大表示 65535 B。两者单位不同。首部校验和只覆盖首部;路由器改变 TTL 后要重新计算,不能据此保证应用数据完整。

DF=1 表示禁止分片,MF=1 表示后面还有片。片偏移以 8 B 为单位,算偏移先累计原分组数据字节,再除以 8。非末片数据长度需满足这个单位要求。MF=0 也可能是根本没有分片的分组。TTL 逐次转发递减,用于限制分组在网络中循环,并非以秒计量的停留时间。

3 IPv4 表示与分类地址

IPv4 地址共 32 位,点分十进制把它分为四个 8 位数,每段在 0~255 之间。地址应联系接口和所在网络理解,多接口路由器不能只用一个地址代表全部接口。

分类编址按高位前缀划分类别:A 类为 0,B 类为 10,C 类为 110,D 类为 1110,E 类为 1111。A、B、C 类原有网络号长度分别为 8、16、24 位;D 类用于多播,E 类保留。这里采用成书对原书第 108 页的明确校注:A 类最高位为 0。

主机号全 0 用于表示网络,主机号全 1 用于该网络的广播;127 开头的地址用于本机回环。分类地址是理解编址发展过程的模型,读到带掩码的地址时,要按掩码确定边界,不能只凭首字节推断实际子网。

4 掩码、子网与主机范围

子网划分从原主机号中借位标识内部网络。子网掩码用连续的 1 标出网络部分,其余位为 0;IP 地址与掩码按位与,得到网络地址。网络部分增长一位,单个子网的地址数量减半。

自编算例:172.18.40.147/26 的掩码为 255.255.255.192,最后一字节的掩码是 11000000。147 与 192 按位与得到 128,所以网络为 172.18.40.128/26,共 64 个地址,末地址为 172.18.40.191。在本章普通广播子网模型中,可分配主机范围为 129~190,共 62 个。这个“减 2”有明确模型,不拿去推断所有前缀长度下的接口配置规则。

自编地址块分配:一个 /24 分成 /25、/26、/27 和保留区

设计子网先列主机数量,再选能容纳主机及网络、广播地址的块大小,最后核对块起点是否对齐、各块是否重叠。不要把地址总数与可分配主机数混写。成书已校注的原书子网末项错误,不作为本章算例复用。

5 CIDR、地址块与路由聚合

CIDR 用“地址/前缀长度”表达地址块,不再依赖 A、B、C 类固定边界。前缀长度为 p 时,块中有 \(2^{32-p}\) 个地址;把主机位全部清零得最小地址,全部置 1 得最大地址。这里统计地址总数,不先减 2。

自编聚合:10.24.8.0/23 覆盖第三字节 8、9,10.24.10.0/23 覆盖 10、11;两个块大小相等、连续且满足较短前缀的对齐要求,可以聚合为 10.24.8.0/22。如果换成第三字节 10~11 与 12~13,两块虽然连续,却不构成一个对齐的 /22。

聚合减少外部需要记录的路由项,内部仍可用更长前缀区分子网。不能为了缩短写法,把不属于本组织的地址也作为可达地址对外通告。遇到聚合块和更具体的路由并存时,转发用最长前缀匹配,见本章第 7 节。

6 私有地址与 NAT 的边界

本书列出的私有地址块为 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16。不同专用网可以重复使用私有地址,但同一需要直接通信的地址范围内必须避免冲突;私有地址不能当成全球唯一的公网标识。

NAT 在内外网边界改写有关地址,并记录转换关系。按本书的内网主动访问模型,请求出站时把私有源地址转换为公网地址,响应到达边界后按转换表还原给内部主机。转换记录解释了响应发给谁,单有一个公网地址并不能回答这个问题。

此模型没有配置从外部主动访问内部服务的映射,因此不能据它设计内网对外服务,也不能把这个限制推广成“任何 NAT 都绝不允许内网服务器”。NAT 的主要目的在于地址转换;它不等同于内容加密或完整的访问控制。

7 路由器、转发与路由协议

路由器的输入端口接收并处理分组,交换结构把分组送往选定输出端口,输出端口排队并重新封装发送;路由处理器运行路由协议、计算并维护路由信息。排队缓存有限,输入或输出跟不上时仍会丢包。

路由负责获得路径信息,转发负责对收到的一个分组选出口。路由项至少要理解目的网络/掩码、下一跳与出口。查表时把目的地址分别与掩码按位与,只在匹配项中选择网络前缀最长的一项。默认路由 0.0.0.0/0 是最不具体的匹配;若不存在默认项且没有其他匹配,不能假设总有出口。

自编查表:目的 10.24.9.150 同时匹配 10.24.0.0/16、10.24.8.0/22 与 10.24.9.128/25,应选 /25,不能按表中先后顺序选 /16。下一跳是邻接路由器或直连目的,不一定是最终接收主机。

路径信息的取得方式 基本思路
静态路由 人工配置,变化后需要维护
距离向量 与邻居交换距离,迭代更新;需处理无穷计数等问题
链路状态 汇集链路状态,用拓扑和最短路径计算路由
层次路由 按自治系统分工,区分域内与域间路由

RIP 属域内距离向量协议,以跳数为度量,书中模型最多 15 跳,16 表示不可达;OSPF 属域内链路状态协议,使用 Dijkstra 算法并可划分区域;BGP 在自治系统间交换可达性,选择还受策略影响。不要把所有路由协议都理解成求地理距离最短。

8 ARP、DHCP、ICMP 与 IGMP

ARP 解决本地链路上 IP 地址与硬件地址的对应关系。先判断目的是否在本子网:同网时解析目的主机,异网时解析所选下一跳的硬件地址。缓存无记录时,用 ARP 请求在本地链路寻找对应设备,再依据应答建立映射。ARP 请求不是去整个互联网搜索远端主机。

自编情境:A 要把 IP 分组发往另一子网的 B,出口为本地网关 G。A 所发帧的目的 MAC 是 G 的 MAC,所承载 IP 分组的目的地址仍是 B。路由器换链路时重新封装,MAC 地址与 IP 地址的职责不能交换。

DHCP 用客户机/服务器模式自动提供地址及有关配置。初次接入通过发现、提供、请求、确认完成分配,地址按租约管理,不能理解成永久占有。ICMP 报告差错和提供查询,例如不可达、超时与回送查询;收到回送应答不等于所有上层应用均正常。IGMP 管理本地链路的多播组成员关系,通过加入报告及路由器查询判断组是否仍有成员,不负责计算跨网络的完整多播路径。

9 IPv6 首部与地址表示

IPv6 把地址扩展到 128 位,基本首部固定为 40 B,并通过“下一个首部”字段串接可选的扩展首部或上层协议。它与 IPv4 的字段布局不同,不能把 IPv4 首部长度或首部校验和的位置照搬。跳数限制继续用于防止无限转发。

完整地址写成八组十六进制数,每组 16 位,组间以冒号分隔。组内前导 0 可省略,连续的全零组可用一次 :: 压缩。自编转换:2001:0db8:0000:0000:0042:0000:0000:0007 可写成 2001:db8::42:0:0:7;还原时补足八组。一个地址里不能用两次 ::,否则无法确定每处省略几组。

单播标识一个接口;组播把副本交给组中成员;任播从一组接口中选择一个接收者。学习这些机制即可,本章不把 2016 年版中的部署比例、标准化进度等时点性描述当作现状。

自编练习

1. 实验室把两种不同链路接到同一台路由器上,便认定端到端传输必定可靠。分别指出“互联”和“可靠性”还缺少哪一层解释。

考点:第 1、2 节;层次:识记、领会。

答案与解析

参考答案: 需要说明异构链路如何承载共同的 IP 分组,物理接线不等于完成协议层面的互联。IP 的尽力而为服务不承诺交付和顺序;如要求端到端可靠传输,还需由 TCP 等上层机制提供相应控制。

2. 一份自编抓包记录显示首部长度值为 6,总长度为 900。求数据部分字节数,并判断首部校验和能否确认应用数据无误。

考点:第 2 节;层次:领会。

答案与解析

参考答案: 首部为 6×4=24 B,数据为 900−24=876 B。总长度已经包含首部,不能再把 900 当成纯数据。IPv4 首部校验和只检验首部,无法据此确认应用数据完整。

3. 一份 IPv4 分组有 2700 B 数据、20 B 首部,出口 MTU=1000 B,DF=0,不含选项。按尽量装满各片的方式,写出各片数据长度、总长度、片偏移和 MF。

考点:第 2 节;层次:领会。

答案与解析

参考答案: 非末片最多装 floor((1000−20)/8)×8=976 B 数据。三片数据分别 976、976、748 B;总长度 996、996、768 B;片偏移分别 0、122、244;MF 分别 1、1、0。偏移累计的是原数据位置,不能把重复的首部计入。

4. 某普通广播子网主机为 172.18.40.147/26。写出掩码、网络、广播和主机范围,并说明为何不能直接按 B 类默认掩码计算。

考点:第 3、4 节;层次:综合应用。

答案与解析

参考答案: 掩码 255.255.255.192;网络 172.18.40.128,广播 172.18.40.191;主机 172.18.40.129~172.18.40.190,共 62 个。实际题设指定 /26,分类编址的默认边界不能覆盖这个明确条件。

5. 将 192.168.72.0/24 分配给需 70、40、20 台主机的三间机房。每间独立普通广播子网,按由大到小连续分配,并给出剩余块。能否把任意两个相邻块直接聚合?

考点:第 4、5 节;层次:综合应用。

答案与解析

参考答案: 依次分配 192.168.72.0/25、192.168.72.128/26、192.168.72.192/27,可用主机分别 126、62、30;剩余 192.168.72.224/27。分配同时满足容量和对齐。聚合还要求共同前缀和块大小对齐,相邻本身不是充分条件。

6. 内网主机通过动态 NAT 主动请求外部服务,又向本地网关查询远端服务器的 MAC。请指出后一行为的问题,并解释 NAT 返回报文的去向如何确定。

考点:第 6、8 节;层次:综合应用、简单应用。

答案与解析

参考答案: 远端服务器不在本地链路,主机需要的是下一跳网关的 MAC,可用 ARP 获得。IP 目的仍为远端服务器。NAT 根据已建立的转换表把响应恢复到内部地址;不能把公网地址直接解释成某个固定内部主机。

7. 路由表含 10.24.0.0/16→A、10.24.8.0/22→B、10.24.9.128/25→C 和默认→D。目的 10.24.9.150、10.24.10.6 各走哪里?如需跨自治系统交换可达性,优先辨认哪种协议?

考点:第 7、8 节;层次:领会、简单应用。

答案与解析

参考答案: 前一个走 C,后一个走 B,依据是匹配项中的最长前缀。跨自治系统应辨认 BGP;RIP 和 OSPF 属域内协议。若排障涉及不可达或超时,可检查 ICMP 差错信息,但它不会代替路由表维护。

8. 把 2001:0db8:0000:0000:0042:0000:0000:0007 压缩后,再检查“2001:db8::42::7”为何不能作为确定地址。IGMP 的成员管理可否代替完整路由计算?

考点:第 8、9 节;层次:简单应用、识记。

答案与解析

参考答案: 可写成 2001:db8::42:0:0:7。两次 :: 会使补零长度不确定,因此后一写法不合法。IGMP 解决本地多播组是否有成员的问题,跨网络路径仍需相应多播路由机制。