Skip to content

计算机网络原理(04735) · IP、子网与路由:跨网络送达主机至传输层:端口、可靠交付与连接 ​

返回分篇目录

按“分层与性能 → 链路 → IP 与路由 → 传输 → 应用”的顺序理解一次请求,再补充无线与安全。历史课程中的电路交换、PPP、经典共享以太网等保留为原理对照,不与现代网络部署混写。

IP、子网与路由:跨网络送达主机 ​

IP 服务、转发与最长前缀匹配 ​

目的192.0.2.130同时匹配默认路由、192.0.2.0/24与192.0.2.128/25时,选/25,因为其约束的前缀位最多。更长前缀不是更短网络距离,而是更具体的地址匹配。

查看图表代码

IP 提供尽力而为的数据报传送,不保证到达、顺序或无重复。转发是在本节点为当前包选择输出,路由是计算与维护可达路径;两者职责不同。

路由器包含输入处理、交换结构、输出排队和控制处理。内存、总线或交换网络是交换结构实现方式;性能应按具体设计衡量,不能只凭分类断言价格高低。

转发表中多条路由匹配时,采用最长前缀匹配;没有更具体匹配才考虑默认路由。完全无路由时不能凭空转发。

IPv4 地址、CIDR 与子网计算 ​

IPv4 地址为 32 位;CIDR 写作 地址/前缀长度。网络号由地址与掩码按位与得到,传统 A/B/C 分类用于理解历史编址,实际规划应按前缀计算。

地址用途范围或示例
私有地址10.0.0.0/8、172.16.0.0/12、192.168.0.0/16
回环127.0.0.0/8,常用 127.0.0.1
未指定地址0.0.0.0,含义随地址字段与使用场景确定
有限广播255.255.255.255

以 203.123.1.135/26 为例:

  1. 掩码为 255.255.255.192,主机位 6 位,共 2^6=64 个地址。
  2. 所属网络为 203.123.1.128/26,广播地址 203.123.1.191。
  3. 普通广播子网可用主机范围为 .129 至 .190,62 个地址。

“地址总数减二”适用于这类普通子网,不直接套用到 /31 点对点或 /32 路由。路由聚合还要求地址块连续、对齐,且聚合后的下一跳行为符合要求。

MTU、IPv4 分片与 ICMP ​

本例每片都带独立20字节首部,片间偏移按原载荷计算。前两片载荷1480能被8整除,最后一片420不要求再按8补齐;重组必须等相应片段到达。

查看图表代码

MTU 是链路能承载的网络层包上限;IPv4 首部通常至少 20 字节,分片偏移以 8 字节为单位。DF 表示不允许分片,MF 表示后续还有分片。最终由目的主机重组,不能把分片当成提高吞吐的常规手段。

例:总长度 3400 字节、无选项首部 20 字节、MTU 1500,载荷共 3380 字节;可拆成 1480、1480、420 字节载荷。总长度分别为 1500、1500、440,偏移为 0、185、370,MF 为 1、1、0。

ICMP 承担差错与诊断,如不可达、超时和 Echo;ping 结果不能单独证明某个应用端口可用。历史“源点抑制”消息不能作为现代拥塞控制的推荐机制。

DHCP、NAT、IPv6 与路由协议 ​

DHCP 为主机提供地址、掩码、网关等配置;典型 IPv4 流程为发现、提供、请求、确认,使用 UDP 67/68。NAT 维护内部与外部地址/端口映射;外部主动访问需要额外映射或穿透设计,NAT 不等于安全策略。

IPv6 地址为 128 位,基本首部 40 字节;用冒号分隔的十六进制组表示,连续零压缩 :: 至多出现一次。它没有 IPv4 式广播,邻居发现也不使用 ARP。双栈与隧道是不同迁移策略。

路由机制思想或范围
链路状态传播拓扑信息,计算最短路径,如 OSPF
距离向量与邻居交换距离估计,基于 Bellman-Ford 思路,如 RIP
分层路由以自治系统 AS 等边界限制规模与管理范围
BGP交换自治系统间可达性及路径属性,受路由策略影响

RIP 用跳数度量,16 表示不可达;OSPF 支持区域与等价路径;BGP 通过 TCP 179 建立会话,关注 AS_PATH、NEXT_HOP 等属性,不只是选择物理最短路。OPEN、UPDATE、KEEPALIVE、NOTIFICATION 分别承担建会话、更新、保活和错误通知。

传输层:端口、可靠交付与连接 ​

TCP 与 UDP 的边界 ​

端口号为 16 位;TCP 连接通常由源/目的 IP 与源/目的端口四元组区分。端口范围区分熟知、登记与动态端口,不代表客户端或服务端在技术上只能使用某段范围。

协议提供什么应用需考虑什么
TCP面向连接、有序可靠的字节流、流量与拥塞控制应用消息边界、超时、连接中断与业务重试
UDP数据报、端口复用及校验等基础能力丢失、重复、乱序以及是否自行实现可靠性/拥塞控制

UDP 首部 8 字节,TCP 基本首部通常 20 字节,选项会增加长度。可靠字节流不代表业务一定成功:连接断开后应用仍需判断处理结果与幂等性。

停等、GBN 与选择重传 ​

可靠交付需要组合差错检测、序号、确认与重传计时器。停等一次只等待一个未确认分组,逻辑简单但长时延链路利用率低;滑动窗口允许流水发送。

协议接收行为重传行为
停等按序接收,区分新旧分组等待确认或超时重发
GBN典型接收窗口为 1,丢弃乱序包累计确认,超时重发一段未确认分组
SR缓存窗口内乱序包,逐个确认只重传未确认的分组

序号空间必须与窗口大小协调,防止旧包与新包混淆。TCP 借鉴这些机制,但不是把教材中的 GBN 或 SR 原封不动套用。

假设发送方窗口允许发送 1、2、3、4,分组 2 丢失,3、4 正常到达:

  • GBN:接收方只接纳下一个按序分组,因此丢弃 3、4,继续累计确认到 1。发送方通常为最早未确认分组维护一个计时器;2 超时后重发 2、3、4。收到累计确认到 n 后,发送窗口左沿推进到 n+1。
  • SR:接收方缓存窗口内的 3、4 并分别确认;发送方标记它们已确认,但窗口左沿仍等 2。每个待确认分组各有逻辑计时,2 超时只重发 2;收到它的确认后,左沿可连续越过已确认的 2、3、4。接收方此时也可把连续序列交给上层。

ACK 丢失还需要重发确认与去重处理。这里的“每包计时”是协议逻辑,不要求实现必须为每个包创建一个操作系统定时器。

TCP 序号、三次握手与关闭 ​

TCP 按字节编号,累计确认号表示下一期待的字节;SYN 与 FIN 各消耗一个序号。连接建立的典型过程:

查看图表代码

客户端经过 SYN-SENT,服务端经过 SYN-RECEIVED 后进入 ESTABLISHED。握手同步双方序号并确认连接状态;第三步可以携带数据。

关闭时两个方向分别结束。以下假定对端在收到 FIN 后又发送了数据,最后一个数据字节之后的序号是 w:

查看图表代码

典型状态包括 FIN-WAIT-1/2、CLOSE-WAIT、LAST-ACK、TIME-WAIT。ACK 与 FIN 可能合并,不是所有关闭都固定四个包;不能不看中间发送的数据就把 FIN 序号机械写成 v+1。

流量控制与拥塞控制 ​

流量控制保护接收端缓冲能力,接收窗口 rwnd 由接收方通告;拥塞控制考虑网络承载能力,发送方通过 cwnd 等状态调节在途数据。发送量同时受两者等因素限制。

教材中的慢启动、拥塞避免、快速重传与快速恢复是理解经典机制的入口。超时与重复确认触发的处理不同,具体窗口更新取决于算法;不能把所有实现都概括成“降到 1 MSS 再开始”。

网络层还可通过调度、队列管理、流量调节和准入控制降低拥塞;增加带宽与丢弃负载解决的条件不同。

继续阅读