网络层与 IP — 全球寻址与分组投递
网络层与 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(把相邻网络合并,对外粗化), 合起来把「省地址」和「路由表别爆炸」两头都顾住31。
子网划分的思路:把「主机号」再劈成「子网号 + 主机号」,三级结构—— 同一个网络号下,不同的子网号就是不同的物理网段(一个部门、一栋楼、一种介质)32。 子网对外不可见:出了本单位,Internet 上其他人仍按原来的网络号路由, 子网是组织的内部事务。
子网掩码是切分的尺子:32 位模式,1 对应网络位(含子网位),0 对应主机位33。
默认掩码: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.0172.18.7.255 是子网 1,8.011.255 是子网 2……
(全 0、全 1 的子网号留作特殊——RFC950 的老规矩,RFC1878 已废止,但保留首尾地址的习惯仍在:
每子网的第一个地址是网络地址、最后一个是广播地址,都不分给用户)34。
划分公式的骨架值得背:子网位数定「块的大小」,主机位数定「每块容量」,两边都要 −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,恰好两个可用地址)。 一块地址切出五种大小的子网,一个比特不浪费35。这正是「先算主机位、再定掩码」 的实操流程:永远先问「这个网段要装几台机器」,而不是先拍一个掩码。
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)36。
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 条——只要按这条送到 企业的网关,内部分流是网关自己的事37。聚合成立要三个条件:地址高位相同、 路由表按「32 位地址 + 32 位掩码」决策、路由协议携带掩码——最后两条解释了为什么 RIPv1 不支持 CIDR 而 RIPv2 可以(第 07 章会接住这个话题)。 RFC 1519 还按地区分配连续 C 类地址段(欧洲 194/7、北美 198/7、中南美 200/7、亚太 202/7), 地址按块发,聚合才聚得起来——地址规划从分配政策这一层就开始为路由表减肥38。
4. 作者的判断与证据
- 「尽力而为是特性」:IP 的三大定语(不可靠、无连接、尽最大努力)作者逐条解释, 并明写「可靠性要由传输层等上层协议来提供」39——这是把架构决策当承诺写进协议定义。
- 「CIDR 同时治浪费与膨胀」:分类编址的两个病(地址浪费、路由表爆炸)被 子网与超网/CIDR 对症处理,例 6-2、6-3、6-4 三个算例分别演示定长子网、变长子网、 路由聚合40。这是本章证据密度最高的部分:每给一个机制配一道完整算例。
- **「重组只在目的主机」**是有争议点的工程裁决,书里给了理由(分片可走不同路径、 减轻路由器负担)41,也留下了「丢一片报废全组」的代价——判断与代价同框,是教材应有的写法。
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. 可带走的
- IP 的合同:尽力而为、无连接、不可靠;可靠性是上层的事;
- 路由器 = 控制(路由选择)+ 转发(交换结构);它隔离广播域,这是与交换机的分水岭;
- IP 地址 = 网络号 + 主机号,32 位点分十进制;五类只 A/B/C 可分配,主机数全要减 2;
- 私有地址三段(10/8、172.16/12、192.168/16)——内网全部在这;
- 特殊地址:主机号全 0=网络、全 1=广播、全 1 有限广播、127.x=回送;
- IP 头字段:ID/DF/MF/偏移管分片重组,TTL 防环(每跳减 1),协议字段给上层分流;
- 分片:路由器切、目的主机拼;偏移 8B 单位;「全到或全弃」;现代 TCP 尽量绕开它;
- ARP:广播问、单播答、缓存用;IP 地址端到端不变,MAC 地址每跳都换;
- ICMP:IP 的差错报告;类型 0/8 是 ping、11 是 traceroute 的探针、3 是不可达;
- 路由表按网络号做(不按主机),这是路由表不至于爆炸的第一道防线(第二道是 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」) |
Footnotes
-
出处:「6.2IP」第 45–55 段(
text/07-ch06-02-6-2ip.txt:46,搜「不保证每个分组都能够正确地送到」;text/07-ch06-02-6-2ip.txt:52,搜「尽最大努力」)。 ↩ -
出处:「6.1网络层服务与网络互连」第 14–16 段(
text/06-ch06-01-6-1.txt:14,搜「通信子网内」;text/06-ch06-01-6-1.txt:15,搜「相邻结点之间」)。 ↩ -
出处:「6.1网络层服务与网络互连」第 33–36 段(
text/06-ch06-01-6-1.txt:34,搜「最为复杂和关键」)。 ↩ -
出处:「6.1网络层服务与网络互连」第 67–70 段(
text/06-ch06-01-6-1.txt:68,搜「寻址方式」)。 ↩ -
出处:「6.1网络层服务与网络互连」第 82–88 段(
text/06-ch06-01-6-1.txt:84,搜「虚拟互连网络」)。 ↩ -
出处:「6.1网络层服务与网络互连」第 150–153 段(
text/06-ch06-01-6-1.txt:152,搜「专用计算机」)。 ↩ -
出处:「6.1网络层服务与网络互连」第 7–36 段(
text/07-ch06-02-6-2ip.txt:7,搜「两部分构成」;text/07-ch06-02-6-2ip.txt:29,搜「交换结构」)。 ↩ -
出处:「6.1网络层服务与网络互连」第 155 段至「6.2IP」第 1 段(
text/07-ch06-02-6-2ip.txt:1,搜「直接交付」;text/07-ch06-02-6-2ip.txt:3,搜「间接交付」)。 ↩ -
出处:「6.1网络层服务与网络互连」第 115–125 段(
text/06-ch06-01-6-1.txt:115,搜「阻止从一个子网到另外一个子网的广播」)。 ↩ -
出处:「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,搜「安全访问的机制」)。 ↩ -
出处:「6.2IP」第 64 段(
text/07-ch06-02-6-2ip.txt:64,搜「32 位全局唯一」)。 ↩ -
出处:「6.2IP」第 69–74 段(
text/07-ch06-02-6-2ip.txt:69,搜「net ID」;text/07-ch06-02-6-2ip.txt:72,搜「IANA」)。 ↩ -
出处:「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」)。 ↩ -
出处:「6.2IP」第 82–98 段(
text/07-ch06-02-6-2ip.txt:83,搜「127」;text/07-ch06-02-6-2ip.txt:93,搜「减 2」)。 ↩ -
出处:「6.2IP」第 117–120 段(
text/07-ch06-02-6-2ip.txt:119,搜「特殊形式」)。 ↩ -
出处:「6.2IP」第 149–154 段(
text/07-ch06-02-6-2ip.txt:149,搜「网络软件测试」)。 ↩ -
出处:「6.2IP」第 156–166 段(
text/07-ch06-02-6-2ip.txt:170,搜「10.0.0.0」)。 ↩ -
出处:「6.2IP」第 113–115 段(
text/07-ch06-02-6-2ip.txt:115,搜「一条链路的接口」)。 ↩ -
出处:「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,搜「生存时间」)。 ↩ -
出处:「6.2IP」第 253 段(
text/07-ch06-02-6-2ip.txt:253,搜「默认值为 64」)。 ↩ -
出处:「6.2IP」第 275–299 段(
text/07-ch06-02-6-2ip.txt:279,搜「MTU」;text/07-ch06-02-6-2ip.txt:294,搜「4000B」)。 ↩ -
出处:「6.2IP」第 318–323 段(
text/07-ch06-02-6-2ip.txt:323,搜「要么收到所有分片」)。 ↩ -
出处:「6.2IP」第 286–288 段(
text/07-ch06-02-6-2ip.txt:287,搜「减少路由器中保存的信息量」)。 ↩ -
出处:「6.3ARP和RARP」第 43–80 段(
text/08-ch06-03-6-3arp-rarp.txt:48,搜「ARP 缓存表」;text/08-ch06-03-6-3arp-rarp.txt:76,搜「广播发送」)。 ↩ -
出处:「6.3ARP和RARP」第 106–112 段(
text/08-ch06-03-6-3arp-rarp.txt:112,搜「一定的开销」)。 ↩ -
出处:「6.3ARP和RARP」第 82–94 段(
text/08-ch06-03-6-3arp-rarp.txt:85,搜「无盘工作站」)。 ↩ -
出处:「6.4ICMP」第 9–16 段(
text/09-ch06-04-6-4icmp.txt:13,搜「差错和控制报文协议」;text/09-ch06-04-6-4icmp.txt:15,搜「四大功能」)。 ↩ -
出处:「6.4ICMP」第 62–64 段(
text/09-ch06-04-6-4icmp.txt:64,搜「前 64 位」)。 ↩ -
出处:「6.4ICMP」第 70–84 段(
text/09-ch06-04-6-4icmp.txt:71,搜「源抑制」)。 ↩ -
出处:「6.4ICMP」末段(
text/10-ch06-05-6-5.txt:2,搜「Ping」;text/10-ch06-05-6-5.txt:2,搜「Traceroute」)。 ↩ -
出处:「6.2IP」第 325–343 段(
text/07-ch06-02-6-2ip.txt:331,搜「浪费」;text/07-ch06-02-6-2ip.txt:339,搜「超网」)。 ↩ -
出处:「6.2IP」第 344–355 段(
text/07-ch06-02-6-2ip.txt:350,搜「子网划分技术就是将主机部分」)。 ↩ -
出处:「6.2IP」第 357–362 段(
text/07-ch06-02-6-2ip.txt:357,搜「32 位的位模式」)。 ↩ -
出处:「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」)。 ↩ -
出处:「6.2IP」例 6-3(
text/07-ch06-02-6-2ip.txt:431,搜「例 6-3」;text/07-ch06-02-6-2ip.txt:445,搜「子网掩码划分方案」)。 ↩ -
出处:「6.2IP」第 453–467 段(
text/07-ch06-02-6-2ip.txt:460,搜「斜线记法」;text/07-ch06-02-6-2ip.txt:464,搜「232-N」)。 ↩ -
出处:「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 项」)。 ↩ -
出处:「6.2IP」第 471–472 段(
text/08-ch06-03-6-3arp-rarp.txt:32,搜「4 个地区」)。 ↩ -
出处:「6.2IP」第 45–48 段(
text/07-ch06-02-6-2ip.txt:48,搜「可靠性要由传输层」)。 ↩ -
出处:「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」)。 ↩ -
出处:「6.2IP」第 286–288 段(
text/07-ch06-02-6-2ip.txt:287,搜「不同的路径」)。 ↩