跳转至

网络层与 IP — 全球寻址与分组投递

这一章讲全书的心脏:IP。 它回答三个问题:地址——全球几十亿台设备,怎么用 32 位数字把每台 uniquely 标出来, 还不把路由表撑爆?投递——分组太大塞不进某段链路怎么办?一路上的路由器凭什么知道往哪转? 配套——IP 说不清的差错,谁来传话(ARP 与 ICMP)? 读这一章要时刻记着 IP 的合同:尽力而为、无连接、不可靠——分组可能丢、可能乱序、 可能重复,IP 不查、不补、不通知1。合同之所以敢这么签,因为可靠性由端到端解决(第 09 章)。

1. 网络层站在哪

链路层管「相邻两个结点之间」(一根网线、一段 Wi-Fi);网络层管「源主机到目的主机」, 中间的若干路由器只是接力者2。它是 OSI 低三层里最复杂、最关键的一层: 通信子网的运行控制全在它身上——选路、拥塞控制、网络互连3。

网络互连指把同构或异构的网络连成一个更大的网络。异构的麻烦在于:各网络的 寻址方式、路由选择、最大分组长度、接入机制、差错恢复……全都不同4。 TCP/IP 的解法是在 IP 层统一:所有参加互连的网络都讲 IP,性能各异的物理网络 在网络层上看起来就是一个统一的「虚拟互连网络」——底下的以太网、令牌环、帧中继的 差异全部消失5。这是互联网能用 40 年不变的根技术。

2. 顶层全景:一个分组的跨省旅行

主线例子(贯穿本章): 西安主机 A(IP 10.0.0.3,掩码 255.0.0.0)要给成都主机 C (IP 202.200.100.20)发一个 4000B 的 IP 分组(书里的分片算例同款参数), 中间经两个路由器 R1、R2。旅行的每一站:

  A:查目的 IP —— 不同网段 → 交给默认网关 R1(直接交付 vs 间接交付)
  R1:查路由表 → 下一跳 R2;但出去那段的 MTU 只有 1500B → 分组被切成 3 片(3.3 分片)
  R2:收到 3 片,继续逐片转发(路由器不重组!)
  片到齐 C:C 的 IP 层把 3 片按偏移量拼回原始分组,重组完成(只有目的主机重组)
  每一跳转发前:IP 地址 → ARP 查 MAC 地址 → 写入链路层帧头(3.4)
  任何一步出问题:ICMP 报文回话给源主机(3.5)

3. 核心原理

3.1 路由器:网络层的劳模

路由器是「具有多个输入/输出端口的专用计算机」,任务是连接不同网络并完成路由转发6。 它内部两大部件:

  • 路由选择(控制部分):路由选择处理机按路由协议构造路由表,并不断和相邻路由器 交换信息、更新路由表;
  • 分组转发(数据部分):交换结构 + 输入端口 + 输出端口。输入端口从比特流里剥出帧、 再剥出分组;交换结构按转发表把分组从入端口送到出端口;输出端口再重新打包成帧发出去7。

转发的关键事实:同网段直接交付,跨网段间接交付——源主机发现目的 IP 与自己不在同一网络, 就把分组交给默认网关(路由器),之后每个路由器都按「下一跳」接力8。

路由器与网桥的分界线在第 04 章埋过,这里正式划清:

网桥/交换机 路由器
工作层 数据链路层(MAC) 网络层(IP)
认什么地址 MAC 地址 IP 地址(网络号)
隔离冲突域 是 是
隔离广播域 否 是9

路由器的五大功能书里列得很全:互连异构网络、隔离广播风暴、建立并维护路由表、 子网间分组传输、提供安全访问机制(包过滤防火墙的雏形)10。最后一条值得点一句: 路由器对每个流经的分组按规则检查源/目的地址、端口等——ACL 过滤是「最基础的包过滤防火墙」, 第 11 章防火墙那套体系就是从这里长出来的。

3.2 IP 地址:32 位里的两级世界

IPv4 规定:每个网络接口用一个 32 位全局唯一地址标识11。32 位写成四段点分十进制 (202.202.100.100),每段 0~255。结构上只有两级:网络号(标识一个网络)+ 主机号 (标识该网络内的一台主机);没有两个网络能分同一个网络号,同一网络内没有两台机器能 分同一个主机号12。

五类地址(按前几位分类)13:

类 前导位 网络号/主机号 地址范围 网络数 每网主机数
A 0 7 位 / 24 位 1.0.0.0 ~ 127.255.255.255 126 16,777,214
B 10 14 位 / 16 位 128.0.0.0 ~ 191.255.255.255 16,384 65,534
C 110 21 位 / 8 位 192.0.0.0 ~ 223.255.255.255 2,097,152 254
D 1110 — 224.0.0.0 ~ 239.255.255.255 组播地址 —
E 1111 — 240.0.0.0 起 保留实验 —

两个细节容易考也容易错:A 类网络数要减 2(网络号全 0 和 127 有特殊用途), 每网主机数也要减 2;B、C 类的网络号不会自然出现全 0/全 1,不用减14。 分类编址的痼疾从这里就能看见:A 类网一千六百万台主机,没有单位用得完,白白蒸发; C 类网 254 台又嫌小——「大网撑死、小网饿死」,地址在分类体系里注定浪费。

特殊地址(书里图 6-7 一张表)15:

  • 主机号全 0:表示网络本身(192.168.1.0 就是这个 C 类网);
  • 主机号全 1:该网络的直接广播地址(192.168.1.255)——发往它,本网所有主机都收;
  • 32 位全 1(255.255.255.255):有限广播,只在本网内广播,路由器不转发;
  • 网络号全 0:表示「本网络上的某台主机」,0.0.0.0 用于启动时不知道自己是谁的场合;
  • 127.x.x.x:回送地址(loopback),发给它的分组不出网卡,交给本机的协议栈—— 127.0.0.1(localhost)用于网络软件的本地测试16。

私有地址(RFC 1918)是另一条常考又实用的支线:机构内部自行分配的地址段, 不在 Internet 上路由17:

类 范围
A 10.0.0.0 ~ 10.255.255.255
B 172.16.0.0 ~ 172.31.255.255
C 192.168.0.0 ~ 192.168.255.255

你家里、公司里、云服务器内网里用的几乎全是这三段——它们是怎么上公网的?第 08 章的 NAT 登场。

一个重要的世界观修正:IP 地址标识的是「接口与链路的连接」,不是一台主机。 一台主机插两块网卡有两个 IP,路由器有几个接口就有几个 IP18。「这台机器的内网 IP」 这种说法,工程上其实指「那块网卡上配的那个地址」。

3.3 IP 分组:头里的每个字段都有工作

IP 分组 = 20B 固定头(+可选头)+ 数据区。照原书的格式逐字段走一遍19:

  0        4        8             16   19       24       31
  ├ 版本(4) ├ 头长 IHL(4) ├ 服务类型 ToS(8)  ├ 总长度(16) ┤
  ├ 标识符(16)          ├ 0 DF MF(3) ├ 分片偏移(13)      ┤
  ├ 生存时间 TTL(8)     ├ 协议(8)    ├ 头部校验和(16)    ┤
  ├ 源 IP 地址(32)                                        ┤
  ├ 目的 IP 地址(32)                                      ┤
  ├ 选项(可变)+ 填充                                       ┤
  ├ 数据                                                  ┤
字段 干什么 备注
版本 4=IPv4,6=IPv6
头长 IHL 头多少 4B 单位 固定头 20B → IHL=5
总长度 整个分组字节数 16 位 → 最长 65535B
标识符 ID 同一分组的分片共享同一个 ID 重组时「这些片是一家」
DF Don't Fragment,禁止分片 DF=1 且太长 → 丢弃 + ICMP 报错
MF More Fragments,后面还有片 最后一片 MF=0
分片偏移 本片数据在原始分组中的位置,8B 为单位 重组的拼图坐标
TTL 生存时间 每过一个路由器减 1,减到 0 丢弃——防环(3.5)
协议 上层是谁:1=ICMP,6=TCP,17=UDP 解复用的钥匙(第 09 章)
头部校验和 只校验 IP 头 每跳重算(TTL 在变);数据区不校验
源/目的 IP 全程不变 无论经过多少路由器

三个字段值得多说几句。TTL:虽然名字带「时间」,实际按跳数递减(路由器不知道 链路耗时,简化处理);默认值 64(各种系统常自己定)20。它的现实用途有二: 防路由环路把分组困死(减到 0 就是处决);以及 traceroute 的原理——故意发 TTL=1、2、3… 的分组,看 ICMP 超时报告从哪一跳回来(3.5)。协议字段:IP 自己不解释数据, 只负责递到「协议字段指定的那个上层」——TCP 和 UDP 的报文全靠这个号分流, 这是「分层」在分组头上的直接物证。头部校验和只保头不保数据:头错了(比如地址错了) 后果灾难性,数据错了反正上层有 TCP 或应用自己管。

分片与重组21。链路层帧有最大长度 MTU(以太网 1500B),而 IP 分组最长可达 64KB——分组比某段链路 MTU 大怎么办?路由器把它切成若干分片,每片带原分组的 ID、 自己的偏移和 MF 标志;重组只在目的主机做,中途路由器不管。 主线例子算分片账: A 发出总长 4000B 的原始分组(头 20B + 数据 3980B), R1 出口 MTU 1500B——每片最多装 1480B 数据(8 的倍数约束):

  片 1:长度 1500,ID=x,MF=1,偏移 0      (数据 0~1479)
  片 2:长度 1500,ID=x,MF=1,偏移 185    (数据 1480~2959;1480/8=185)
  片 3:长度 1040,ID=x,MF=0,偏移 370    (数据 2960~3979,共 1020B)

(偏移按 8B 计:185×8=1480,370×8=2960。书里的图 6-11 同款。) C 收到三片:ID 相同判定同族,按偏移排序拼接;MF=0 的一片是「最后一片」的标志; 任一片丢失,重组定时器到期,全部丢弃——「要么全收到,要么全不要」22。 进一步:如果路径上第二段 MTU 只有 576B,R2 还可以把 1500B 的片再切成片(分片可以再分片, 偏移照常累计)。

为什么不在中途重组?书里的理由:分片可能走不同路径,中间重组会强迫所有片走同一条路, 而且增加路由器负担23。代价是「哪怕只丢一片,整个分组报废」——这就是为什么现代 TCP 宁愿自己按 MSS(不超过路径 MTU)切段,也尽量不触发 IP 分片(DF 位常态置 1)。

3.4 ARP 与 RARP:两种地址之间的翻译

问题: IP 分组要交给链路层打包成帧时,帧头需要的是 MAC 地址(第 04 章); 可上层只告诉你目的 IP 地址——下一站的那块网卡是谁?

ARP(地址解析协议)干的就是这个翻译24。每台主机维护一张 ARP 缓存表 (IP→MAC 的映射),发分组前先查表;查不到就广播一个 ARP 请求:「谁的 IP 是 202.200.100.20? 请告诉我你的 MAC」。谁是那个 IP,谁就单播回一个 ARP 应答(应答里带上自己的 MAC); 发问方把映射写进缓存,后续分组直接用。ARP 包本身直接装在链路层帧里(协议字段 0x0806), 不在 IP 之上——它是 IP 的「下手」,不是「上层」。

主线例子的每一跳: A 给 R1 发第一片前,ARP 问出 R1 接口的 MAC 写进帧头; R1 转发给 R2 前,ARP 问出 R2 接口的 MAC;R2 交付给 C 前同理。 IP 分组头里的地址从头到尾不变,而每一跳的帧头 MAC 地址都在换—— 「IP 地址管端到端,MAC 地址管这一跳」这个口诀,就是从这里来的。 书里还给了一个工程观察:一连串分组发同一目的地,每跳都要查路由表、ARP、改写帧头, 有一定的开销25——ARP 缓存就是为削掉这个开销存在的。

RARP(反向 ARP)走反方向:无盘工作站启动时只有自己的 MAC,不知道 IP, 广播问 RARP 服务器要——「我是这个 MAC,请发我一个 IP」26。今天 RARP 已被 DHCP(第 10 章)全面取代,但「启动时不知道自己是谁」这个场景和它的解决方案 值得记住。

3.5 ICMP:IP 的嘴和耳朵

IP 只管闷头送信,不报告错误;ICMP(Internet 控制报文协议,RFC 792)是它的 差错与控制报文渠道——网络层的错误诊断、拥塞控制、路径控制、查询服务四大功能 都靠它27。ICMP 报文装在 IP 分组的数据区里发(协议字段 = 1),它自己不保证可靠。

报文头三个字段:类型(1B)、代码(1B,细分同一类型的原因)、校验和。类型值记住常用的几个:

类型 报文 干什么
0 / 8 回送应答 / 回送请求 ping 的原声
3 目的不可达 网络不可达、主机不可达、端口不可达……
4 源抑制 早期的拥塞控制(让源降速)
5 重定向 「下次走那边更近」
11 超时 TTL 减到 0(traceroute 的探针)

差错报文的格式有个共同设计:数据区里装着出错的那个 IP 分组的头部 + 数据前 64bit, 让源主机一眼认出是哪个分组出的事28。

源抑制是早期互联网的控制机制,过程值得了解(它也是 TCP 拥塞控制的史前史): 路由器输出队列积压就向源发源抑制报文;源收到就按比例降速,不再收到新的抑制报文再慢慢恢复29。 今天网络层显式的拥塞信号已被「丢包即拥塞」的端到端推断取代(RFC 792 的设计在 RFC 3168 之后另有 ECN),但这个「源降速—观察—恢复」的循环正是 TCP 拥塞控制的原型。

两个日常工具的本尊:ping 用回送请求/应答测「对方活没活、来回多久」; traceroute(tracert) 故意发 TTL 递增的分组,让每个路由器各回一个超时报告, thereby 把整条路径上的路由器 IP 逐个「问」出来30。

3.6 子网、掩码与 CIDR:一部「省地址」奋斗史

分类编址的病,3.2 已经看见:地址大把浪费,而路由表按每个网络号一条记录膨胀。 两大补丁由此诞生:子网(把大网切小,对内精细化)与 CIDR(把相邻网络合并,对外粗化), 合起来把「省地址」和「路由表别爆炸」两头都顾住34。

子网划分的思路:把「主机号」再劈成「子网号 + 主机号」,三级结构—— 同一个网络号下,不同的子网号就是不同的物理网段(一个部门、一栋楼、一种介质)35。 子网对外不可见:出了本单位,Internet 上其他人仍按原来的网络号路由, 子网是组织的内部事务。

子网掩码是切分的尺子:32 位模式,1 对应网络位(含子网位),0 对应主机位36。 默认掩码:A 类 255.0.0.0、B 类 255.255.0.0、C 类 255.255.255.0;划了子网就往左借位。 运算只有一招——按位 AND:IP AND 掩码 = 网络地址;IP AND 掩码取反 = 主机号。

主线例子算一遍(书里的例 6-1):192.168.1.1 配默认掩码 255.255.255.0——

  IP:    11000000 10101000 00000001 00000001
  掩码:  11111111 11111111 11111111 00000000
  AND:   11000000 10101000 00000001 00000000  → 网络号 192.168.1.0
  掩码取反 AND IP:                             → 主机号 1

定长划分算例(书里的例 6-2):某单位拿 B 类地址 172.18.0.0,要建 60 个物理网络。 子网号取几位?满足 2ⁿ ≥ 60+2 的最小 n = 6——借 6 位,掩码变成 255.255.252.0 (11111111 11111111 11111100 00000000)。剩 10 位主机号,每子网可容纳 2¹⁰−2 = 1022 台。 子网地址按 4 的倍数排布:172.18.4.0~172.18.7.255 是子网 1,8.0~11.255 是子网 2…… (全 0、全 1 的子网号留作特殊——RFC950 的老规矩,RFC1878 已废止,但保留首尾地址的习惯仍在: 每子网的第一个地址是网络地址、最后一个是广播地址,都不分给用户)37。 划分公式的骨架值得背:子网位数定「块的大小」,主机位数定「每块容量」,两边都要 −2 的保留。

变长划分(VLSM)对付「各子网人数差十倍」的现实(书里的例 6-3):一个 C 类地址 202.200.100.0,要喂饱 5 个网段——60 台的主网、13 台、12 台、两个只有 2 台的路由器互联段。 做法:按需求从大到小,一人发一块大小刚好的掩码:60 台需要 6 位主机号 → 掩码 /26 (255.255.255.192,块 64);13、12 台各 4 位 → /28(255.255.255.240,块 16); 两个点对点链路各 2 位主机号 → /30(255.255.255.252,块 4,恰好两个可用地址)。 一块地址切出五种大小的子网,一个比特不浪费38。这正是「先算主机位、再定掩码」 的实操流程:永远先问「这个网段要装几台机器」,而不是先拍一个掩码。

CIDR(无类别域间路由,1993 年,RFC 1519)是更大的手术刀:扔掉 A/B/C 的分类和 子网概念,IP 地址 = 任意长度的「网络前缀 + 主机号」,用斜线记法写明界限: 166.100.20.82/20 表示前 20 位是网络前缀,后 12 位是主机号; 一个前缀就圈出一个地址块,200.100.160.0/20 这个块里有 2¹² = 4096 个地址 (202.100.160.0 ~ 202.100.175.255)39。

CIDR 的杀手锏是路由聚合(构造超网),主线例子给它结账:成都有四个连续的 C 类网络 202.0.44.0、45.0、46.0、47.0——

  44 = 00101100    45 = 00101101    46 = 00101110    47 = 00101111
                    └── 前 22 位完全相同(202.0.44),后 2 位任意 ──┘
  → 聚合成一条 202.0.44.0/22(掩码 255.255.252.0)

西安方向的路由器上,关于这家企业的路由表项从 4 条压成 1 条——只要按这条送到 企业的网关,内部分流是网关自己的事40。聚合成立要三个条件:地址高位相同、 路由表按「32 位地址 + 32 位掩码」决策、路由协议携带掩码——最后两条解释了为什么 RIPv1 不支持 CIDR 而 RIPv2 可以(第 07 章会接住这个话题)。 RFC 1519 还按地区分配连续 C 类地址段(欧洲 194/7、北美 198/7、中南美 200/7、亚太 202/7), 地址按块发,聚合才聚得起来——地址规划从分配政策这一层就开始为路由表减肥41。

4. 作者的判断与证据

  • 「尽力而为是特性」:IP 的三大定语(不可靠、无连接、尽最大努力)作者逐条解释, 并明写「可靠性要由传输层等上层协议来提供」31——这是把架构决策当承诺写进协议定义。
  • 「CIDR 同时治浪费与膨胀」:分类编址的两个病(地址浪费、路由表爆炸)被 子网与超网/CIDR 对症处理,例 6-2、6-3、6-4 三个算例分别演示定长子网、变长子网、 路由聚合32。这是本章证据密度最高的部分:每给一个机制配一道完整算例。
  • 「重组只在目的主机」是有争议点的工程裁决,书里给了理由(分片可走不同路径、 减轻路由器负担)33,也留下了「丢一片报废全组」的代价——判断与代价同框,是教材应有的写法。

5. 边界与局限

  • IP 头只校验头不校验数据的设计,在 NAT、隧道叠加时出过安全问题(校验和盲区), 本章按经典教材口径讲,未涉及这些后续补丁。
  • ARP 的安全面(ARP 欺骗)未提——同一网段的主机可以冒答 ARP,把流量引到自己。 这是企业内网最常见的攻击面之一,读到「广播问、无条件信」时要自行补上这根弦。
  • ICMP 源抑制机制已过时(被端到端拥塞控制取代),书中当作现役机制讲; 另外 IPv6 里 ICMP 的角色大得多(替代 ARP 的邻居发现),第 08 章只给了一张对比。
  • 路由表怎么算出来不在本章(那是第 07 章);NAT 与 VPN 也拆到了第 08 章。

判断(我们的,不是书里的): 这一章是全书对「程序员日常」回报最高的一章: 子网划分是面试题,更是云网络里每天都在做的事(给 VPC 划网段);MTU 与分片解释了 「为什么 UDP 大包老丢、TCP 却没事」;ping/traceroute 是排障起手式。 而 ARP 与「同网段才能直接交付」解释了「为什么改了 IP 通不了、原来网关配错了」。 建议把 3.2 的三个算例亲手各算一遍,胜过把表格背三遍。 如果错,会错在: 本书按「分类地址 → 子网 → CIDR」的历史顺序讲,容易让人以为 今天还有 A/B/C 类地址在路由——实际运营商分配早已全是 CIDR,分类地址只剩教材意义; 若按「掩码思维」直接理解 CIDR,反而更接近今天的工程现实(补充,不在书里)。

6. 可带走的

  1. IP 的合同:尽力而为、无连接、不可靠;可靠性是上层的事;
  2. 路由器 = 控制(路由选择)+ 转发(交换结构);它隔离广播域,这是与交换机的分水岭;
  3. IP 地址 = 网络号 + 主机号,32 位点分十进制;五类只 A/B/C 可分配,主机数全要减 2;
  4. 私有地址三段(10/8、172.16/12、192.168/16)——内网全部在这;
  5. 特殊地址:主机号全 0=网络、全 1=广播、全 1 有限广播、127.x=回送;
  6. IP 头字段:ID/DF/MF/偏移管分片重组,TTL 防环(每跳减 1),协议字段给上层分流;
  7. 分片:路由器切、目的主机拼;偏移 8B 单位;「全到或全弃」;现代 TCP 尽量绕开它;
  8. ARP:广播问、单播答、缓存用;IP 地址端到端不变,MAC 地址每跳都换;
  9. ICMP:IP 的差错报告;类型 0/8 是 ping、11 是 traceroute 的探针、3 是不可达;
  10. 路由表按网络号做(不按主机),这是路由表不至于爆炸的第一道防线(第二道是 CIDR,第 3.2 之后)。

7. 原文地图

主题 原书章 原文位置
网络层服务与运行环境 6.1网络层服务与网络互连 text/06-ch06-01-6-1.txt:14(搜「通信子网内」) · text/06-ch06-01-6-1.txt:34(搜「最为复杂和关键」)
网络互连与虚拟互连网络 6.1网络层服务与网络互连 text/06-ch06-01-6-1.txt:64(搜「统一的平台」) · text/06-ch06-01-6-1.txt:84(搜「虚拟互连网络」)
路由器功能与隔离广播域 6.1网络层服务与网络互连 text/06-ch06-01-6-1.txt:108(搜「互连不同类型的网络」) · text/06-ch06-01-6-1.txt:111(搜「隔离广播风暴」)
路由器结构与两大部件 6.1网络层服务与网络互连 text/07-ch06-02-6-2ip.txt:7(搜「两部分构成」) · text/07-ch06-02-6-2ip.txt:26(搜「路由选择部分」)
直接交付与间接交付 6.1网络层服务与网络互连 text/07-ch06-02-6-2ip.txt:1(搜「直接交付」)
IP 三大定语 6.2IP text/07-ch06-02-6-2ip.txt:46(搜「不保证每个分组」)
IP 地址格式与五类 6.2IP text/07-ch06-02-6-2ip.txt:64(搜「32 位全局唯一」) · text/07-ch06-02-6-2ip.txt:78(搜「5 类」)
特殊用途地址 6.2IP text/07-ch06-02-6-2ip.txt:117(搜「特殊用途」) · text/07-ch06-02-6-2ip.txt:149(搜「127」)
私有地址 RFC1918 6.2IP text/07-ch06-02-6-2ip.txt:162(搜「私有地址」) · text/07-ch06-02-6-2ip.txt:170(搜「10.0.0.0」)
IP 分组格式逐字段 6.2IP text/07-ch06-02-6-2ip.txt:180(搜「分组头和一个数据区」) · text/07-ch06-02-6-2ip.txt:245(搜「生存时间」) · text/07-ch06-02-6-2ip.txt:256(搜「协议」)
分片重组与 4000B 算例 6.2IP text/07-ch06-02-6-2ip.txt:275(搜「分片和重组」) · text/07-ch06-02-6-2ip.txt:294(搜「4000B」) · text/07-ch06-02-6-2ip.txt:321(搜「重装定时器」)
子网与子网掩码运算 6.2IP text/07-ch06-02-6-2ip.txt:344(搜「子网」) · text/07-ch06-02-6-2ip.txt:356(搜「子网掩码」) · text/07-ch06-02-6-2ip.txt:374(搜「例 6-1」)
子网划分算例 B 类 6.2IP text/07-ch06-02-6-2ip.txt:398(搜「例 6-2」)
变长子网算例 C 类 6.2IP text/07-ch06-02-6-2ip.txt:431(搜「例 6-3」)
CIDR 与路由聚合 6.2IP text/07-ch06-02-6-2ip.txt:453(搜「CIDR」) · text/07-ch06-02-6-2ip.txt:473(搜「例 6-4」) · text/08-ch06-03-6-3arp-rarp.txt:3(搜「公共前缀」)
ARP 过程与缓存 6.3ARP和RARP text/08-ch06-03-6-3arp-rarp.txt:47(搜「地址解析协议」) · text/08-ch06-03-6-3arp-rarp.txt:72(搜「执行过程」)
RARP 与无盘工作站 6.3ARP和RARP text/08-ch06-03-6-3arp-rarp.txt:84(搜「反向地址解析协议」)
IP 层处理流程、IP 地址不出现在逐跳 6.3ARP和RARP text/08-ch06-03-6-3arp-rarp.txt:98(搜「两种情况」) · text/08-ch06-03-6-3arp-rarp.txt:106(搜「不出现下一站路由器的 IP 地址」)
ICMP 四大功能与封装 6.4ICMP text/09-ch06-04-6-4icmp.txt:13(搜「差错和控制报文协议」) · text/09-ch06-04-6-4icmp.txt:15(搜「四大功能」) · text/09-ch06-04-6-4icmp.txt:17(搜「封装在 IP 分组的数据区」)
ICMP 类型表 6.4ICMP text/09-ch06-04-6-4icmp.txt:27(搜「类型字段」)
差错报文含原分组头部 6.4ICMP text/09-ch06-04-6-4icmp.txt:64(搜「64 位」)
源抑制过程 6.4ICMP text/09-ch06-04-6-4icmp.txt:71(搜「源抑制」)
ping 与 traceroute 6.4ICMP text/10-ch06-05-6-5.txt:2(搜「Ping」)

  1. 出处:「6.2IP」第 45–55 段(text/07-ch06-02-6-2ip.txt:46,搜「不保证每个分组都能够正确地送到」;text/07-ch06-02-6-2ip.txt:52,搜「尽最大努力」)。 ↩

  2. 出处:「6.1网络层服务与网络互连」第 14–16 段(text/06-ch06-01-6-1.txt:14,搜「通信子网内」;text/06-ch06-01-6-1.txt:15,搜「相邻结点之间」)。 ↩

  3. 出处:「6.1网络层服务与网络互连」第 33–36 段(text/06-ch06-01-6-1.txt:34,搜「最为复杂和关键」)。 ↩

  4. 出处:「6.1网络层服务与网络互连」第 67–70 段(text/06-ch06-01-6-1.txt:68,搜「寻址方式」)。 ↩

  5. 出处:「6.1网络层服务与网络互连」第 82–88 段(text/06-ch06-01-6-1.txt:84,搜「虚拟互连网络」)。 ↩

  6. 出处:「6.1网络层服务与网络互连」第 150–153 段(text/06-ch06-01-6-1.txt:152,搜「专用计算机」)。 ↩

  7. 出处:「6.1网络层服务与网络互连」第 7–36 段(text/07-ch06-02-6-2ip.txt:7,搜「两部分构成」;text/07-ch06-02-6-2ip.txt:29,搜「交换结构」)。 ↩

  8. 出处:「6.1网络层服务与网络互连」第 155 段至「6.2IP」第 1 段(text/07-ch06-02-6-2ip.txt:1,搜「直接交付」;text/07-ch06-02-6-2ip.txt:3,搜「间接交付」)。 ↩

  9. 出处:「6.1网络层服务与网络互连」第 115–125 段(text/06-ch06-01-6-1.txt:115,搜「阻止从一个子网到另外一个子网的广播」)。 ↩

  10. 出处:「6.1网络层服务与网络互连」第 107–148 段(text/06-ch06-01-6-1.txt:108,搜「互连不同类型的网络」;text/06-ch06-01-6-1.txt:127,搜「建立并维护路由表」;text/06-ch06-01-6-1.txt:136,搜「安全访问的机制」)。 ↩

  11. 出处:「6.2IP」第 64 段(text/07-ch06-02-6-2ip.txt:64,搜「32 位全局唯一」)。 ↩

  12. 出处:「6.2IP」第 69–74 段(text/07-ch06-02-6-2ip.txt:69,搜「net ID」;text/07-ch06-02-6-2ip.txt:72,搜「IANA」)。 ↩

  13. 出处:「6.2IP」第 78–105 段(text/07-ch06-02-6-2ip.txt:81,搜「A 类地址」;text/07-ch06-02-6-2ip.txt:96,搜「C 类地址」;text/07-ch06-02-6-2ip.txt:105,搜「如表 6-1」)。 ↩

  14. 出处:「6.2IP」第 82–98 段(text/07-ch06-02-6-2ip.txt:83,搜「127」;text/07-ch06-02-6-2ip.txt:93,搜「减 2」)。 ↩

  15. 出处:「6.2IP」第 117–120 段(text/07-ch06-02-6-2ip.txt:119,搜「特殊形式」)。 ↩

  16. 出处:「6.2IP」第 149–154 段(text/07-ch06-02-6-2ip.txt:149,搜「网络软件测试」)。 ↩

  17. 出处:「6.2IP」第 156–166 段(text/07-ch06-02-6-2ip.txt:170,搜「10.0.0.0」)。 ↩

  18. 出处:「6.2IP」第 113–115 段(text/07-ch06-02-6-2ip.txt:115,搜「一条链路的接口」)。 ↩

  19. 出处:「6.2IP」第 178–273 段(text/07-ch06-02-6-2ip.txt:200,搜「版本号」;text/07-ch06-02-6-2ip.txt:229,搜「标识符」;text/07-ch06-02-6-2ip.txt:245,搜「生存时间」)。 ↩

  20. 出处:「6.2IP」第 253 段(text/07-ch06-02-6-2ip.txt:253,搜「默认值为 64」)。 ↩

  21. 出处:「6.2IP」第 275–299 段(text/07-ch06-02-6-2ip.txt:279,搜「MTU」;text/07-ch06-02-6-2ip.txt:294,搜「4000B」)。 ↩

  22. 出处:「6.2IP」第 318–323 段(text/07-ch06-02-6-2ip.txt:323,搜「要么收到所有分片」)。 ↩

  23. 出处:「6.2IP」第 286–288 段(text/07-ch06-02-6-2ip.txt:287,搜「减少路由器中保存的信息量」)。 ↩

  24. 出处:「6.3ARP和RARP」第 43–80 段(text/08-ch06-03-6-3arp-rarp.txt:48,搜「ARP 缓存表」;text/08-ch06-03-6-3arp-rarp.txt:76,搜「广播发送」)。 ↩

  25. 出处:「6.3ARP和RARP」第 106–112 段(text/08-ch06-03-6-3arp-rarp.txt:112,搜「一定的开销」)。 ↩

  26. 出处:「6.3ARP和RARP」第 82–94 段(text/08-ch06-03-6-3arp-rarp.txt:85,搜「无盘工作站」)。 ↩

  27. 出处:「6.4ICMP」第 9–16 段(text/09-ch06-04-6-4icmp.txt:13,搜「差错和控制报文协议」;text/09-ch06-04-6-4icmp.txt:15,搜「四大功能」)。 ↩

  28. 出处:「6.4ICMP」第 62–64 段(text/09-ch06-04-6-4icmp.txt:64,搜「前 64 位」)。 ↩

  29. 出处:「6.4ICMP」第 70–84 段(text/09-ch06-04-6-4icmp.txt:71,搜「源抑制」)。 ↩

  30. 出处:「6.4ICMP」末段(text/10-ch06-05-6-5.txt:2,搜「Ping」;text/10-ch06-05-6-5.txt:2,搜「Traceroute」)。 ↩

  31. 出处:「6.2IP」第 45–48 段(text/07-ch06-02-6-2ip.txt:48,搜「可靠性要由传输层」)。 ↩

  32. 出处:「6.2IP」第 325–472 段(text/07-ch06-02-6-2ip.txt:398,搜「例 6-2」;text/07-ch06-02-6-2ip.txt:431,搜「例 6-3」;text/07-ch06-02-6-2ip.txt:473,搜「例 6-4」)。 ↩

  33. 出处:「6.2IP」第 286–288 段(text/07-ch06-02-6-2ip.txt:287,搜「不同的路径」)。 ↩

  34. 出处:「6.2IP」第 325–343 段(text/07-ch06-02-6-2ip.txt:331,搜「浪费」;text/07-ch06-02-6-2ip.txt:339,搜「超网」)。 ↩

  35. 出处:「6.2IP」第 344–355 段(text/07-ch06-02-6-2ip.txt:350,搜「子网划分技术就是将主机部分」)。 ↩

  36. 出处:「6.2IP」第 357–362 段(text/07-ch06-02-6-2ip.txt:357,搜「32 位的位模式」)。 ↩

  37. 出处:「6.2IP」例 6-2(text/07-ch06-02-6-2ip.txt:398,搜「例 6-2」;text/07-ch06-02-6-2ip.txt:415,搜「1022」)与注意事项(text/07-ch06-02-6-2ip.txt:423,搜「RFC950」)。 ↩

  38. 出处:「6.2IP」例 6-3(text/07-ch06-02-6-2ip.txt:431,搜「例 6-3」;text/07-ch06-02-6-2ip.txt:445,搜「子网掩码划分方案」)。 ↩

  39. 出处:「6.2IP」第 453–467 段(text/07-ch06-02-6-2ip.txt:460,搜「斜线记法」;text/07-ch06-02-6-2ip.txt:464,搜「232-N」)。 ↩

  40. 出处:「6.2IP」例 6-4 与「6.3」续(text/07-ch06-02-6-2ip.txt:473,搜「例 6-4」;text/08-ch06-03-6-3arp-rarp.txt:3,搜「公共前缀」;text/08-ch06-03-6-3arp-rarp.txt:6,搜「压缩为 1 项」)。 ↩

  41. 出处:「6.2IP」第 471–472 段(text/08-ch06-03-6-3arp-rarp.txt:32,搜「4 个地区」)。 ↩