Introduction
Uses of Computer Networks
What Is a Computer Network?
计算机网络(Computer Network) 是相互连接、能够交换信息的自主计算设备的集合。
设备能够独立工作、设备之间互联、互联后能够交换信息
设备可以是计算机,也可以是手机、传感器和其他带有计算能力的终端。
按照网络用途分为五类:
| 用途 | 典型内容 |
|---|---|
| 获取信息 | 浏览网页、查阅数字图书馆、获取课程资料,以及根据用户行为投放广告 |
| 人与人通信 | 即时消息、微信等多人消息服务、社交网络、多人共同编辑的 Wiki |
| 电子商务 | 网上购物、企业采购、在线金融交易、二手商品交易 |
| 娱乐 | 基于 IP 的网络电视(IPTV)、音视频流媒体、多人游戏、共享虚拟世界 |
| 物联网 | 环境监测、智能家居、联网传感器、停车管理 |
Client–Server and Peer-to-Peer Communication
客户端—服务器模型(Client–Server,C/S) :客户端主动请求信息或服务,服务器接收请求、处理后返回结果。

客户端进程 ── 请求 ──→ 服务器进程客户端进程 ←─ 应答 ─── 服务器进程 ↑ 处理请求例如,用手机或笔记本访问浙大网站:浏览器一侧发出请求,网站服务器提供对应内容。同一台服务器可以服务多个客户端。
对等通信(Peer-to-Peer,P2P) :没有固定的客户端与服务器划分。参与者可以向别人请求资源,也可以把自己的资源提供给别人。

Types of Computer Networks
Network Roles
| 类型 | 主要职责 | 典型场景 |
|---|---|---|
| 宽带与移动接入网络 | 把终端用户接入互联网 | 家庭宽带、手机移动网络 |
| 数据中心与内容提供商网络 | 存放数据、运行应用、向用户提供内容 | 云服务、视频服务的服务器集群 |
| 中转网络 | 在不同网络之间承载流量 | 接入网络与内容网络之间的连接 |
| 企业网络 | 支持一个组织内部的资源共享与协作 | 校园、办公楼、跨地区分支机构 |
一次访问可能依次经过“接入网络 → 中转网络 → 内容提供商网络”,也可能通过直接互联省去部分中转环节。
Broadband Access and Network Value
梅特卡夫定律(Metcalfe’s law) 用网络规模解释网络价值:用户越多,潜在的交流与资源连接越多。教材将它明确表述为一种假说,即网络价值大致与用户数的平方成正比:
一个直观解释是, 个用户之间可能形成 对联系。
Wireless and Mobile Networks
无线描述通信链路使用的介质;移动描述设备或用户的使用方式。
| 无线 | 移动 | 使用场景 |
|---|---|---|
| 否 | 否 | 办公室里通过网线连接的固定台式机 |
| 否 | 是 | 随身携带笔记本,到酒店后插网线使用 |
| 是 | 否 | 固定放置、通过无线网络连接的设备 |
| 是 | 是 | 工作人员拿着无线手持设备在仓库盘点 |
台式机可以装无线网卡,酒店也可以提供 Wi-Fi;携带笔记本到其他地方使用,不要求它在移动过程中一直联网。
移动设备还支持定位和移动业务:GPS 用于定位;地理标记把拍摄位置附在照片、视频上;移动商务通过手机完成交易;近场通信(NFC) 让设备与附近读卡器交互,课上用手机靠近读卡设备完成支付来说明。
Example
停车服务 :
车位状态采集 :车位上的传感器感知车辆进入或离开。地磁感知与微波雷达配合判断,再通过低功耗无线通信,把“有车/无车”状态送往网关和云端。
车辆身份关联 :仅有占用状态,还不知道停的是哪辆车。系统需要结合入口处的车牌识别等信息,把车辆身份与车位状态关联起来。
云端业务处理 :云端记录到达和离开时刻,根据
及计费规则计算费用,再与支付、账单等功能衔接。
车辆进入/离开 → 传感器采集占用状态 → 无线网关 → 云端 ↓车牌识别与车辆信息 ───────────────────────→ 关联、计时、计费传感器负责取得物理状态,网络负责送达信息,应用系统负责解释信息并执行业务。
Data Centers and Content Delivery Networks
数据中心网络连接大量服务器,既要承载服务器之间的数据交换,也要承载数据中心与外部互联网之间的流量。
面临挑战是吞吐能力、规模扩大后的能耗,以及截面带宽;
内容分发网络(Content Delivery Network,CDN) 通过地理上分布的服务器,把内容放到更靠近用户的位置。
Transit and Enterprise Networks
当内容提供商与用户所在的接入网络没有直接连接时,中转网络(Transit Network) 可以代为承载流量,并按商业安排提供服务。
内容逐渐集中到大型内容提供商,接入运营商的网络覆盖也在扩大。
企业或校园网络支持共享设备和信息、网络语音(VoIP)、远程桌面及电子业务。跨地区的组织可使用虚拟专用网络(Virtual Private Network,VPN),把分散地点连接成一个逻辑网络。 能够跨越实际地理距离,保持组织内部的逻辑连通性。
Network Technology: from local to global
Broadcast and Point-to-Point Links
网络硬件的两个重要分类维度是传输技术与规模。
| 传输技术 | 连接与接收方式 | 需要解决的问题 |
|---|---|---|
| 广播链路 | 多台机器共享通信信道,信号可能被范围内多台设备接收 | 谁可以发送,以及哪些设备应处理该消息 |
| 点到点链路 | 一条链路连接一对机器;完整路径可能由多条这样的链路组成 | 如何经过中间节点到达目的地,如何选择路径 |
在共享信道上,接收方需要检查地址。即使听到了某个发送信号,也不意味着消息就是发给自己的。
按接收对象分类:
| 方式 | 接收对象 |
|---|---|
| 单播(Unicast) | 一个指定接收者 |
| 广播(Broadcast) | 相应广播范围内的所有接收者 |
| 多播/组播(Multicast) | 一个指定组中的接收者 |
前面的 P2P 描述应用参与者的角色;这里的“点到点链路”描述链路连接两个端点。
Networks by Scale
| 类型 | 名称 | 典型量级与场景 |
|---|---|---|
| PAN | 个人区域网(Personal Area Network) | 米级,个人周围的计算机与外设 |
| LAN | 局域网(Local Area Network) | 房间、楼宇、校园,图中约 10 m–1 km |
| MAN | 城域网(Metropolitan Area Network) | 城市范围,图中约 10 km |
| WAN | 广域网(Wide Area Network) | 国家或洲的范围,图中约 100–1000 km |
| 互联网络 | 多个网络互相连接形成的网络 | 全球互联网是典型例子,图中列在约 10,000 km 的量级 |
Transmission Media, Bit Rate, and Bit Duration
常见通信介质有:双绞线,用于电话线等连接;同轴电缆,用于有线电视;光纤,用于高速骨干等连接;无线电频谱,用于移动通信等无线链路。
链路传输速率 的单位是 bit/s,表示每秒传输多少比特。若按均匀的比特间隔计算,一个比特的持续时间为:
,,。速率与时间互为倒数。
Example
持续 10 ms 的噪声最多影响多少比特?
两条链路:第一条每秒传 1000 bit,第二条每秒传 100 bit。一次噪声持续 10 ms,问两条链路上最多有多少个比特可能受到影响。
| 链路 | 速率 | 每比特持续时间 | 噪声与比特边界对齐时覆盖 | 起点任意时最多可能影响 |
|---|---|---|---|---|
| 第一条 | 1000 bit/s | 1 ms | 10 个比特 | 11 个比特 |
| 第二条 | 100 bit/s | 10 ms | 1 个比特 | 2 个比特 |
噪声的开始时刻不保证与比特边界对齐。
例如,第一条链路上,噪声在某个比特开始后的 0.5 ms 出现,到 10.5 ms 时结束。它触及开头半个比特、中间 9 个完整比特和结尾半个比特,共 11 个比特区间。第二条链路上,10 ms 的干扰也可能跨过两个相邻比特区间。
Personal Area Networks
蓝牙外设 :
计算机连接鼠标、键盘、打印机都算个人区域网。在其采用的蓝牙简化模型中,计算机作为主设备协调外设,决定地址、发送时机、发送持续时间和使用频率等。
多个外设可以共享无线通信能力,但仍需要协调规则。
2.4 GHz 无线鼠标与蓝牙鼠标的工作原理有什么差异?
NOTE核心差异在通信协议。 两者通常都工作在 2.4 GHz ISM 频段,但“2.4G 无线鼠标”一般使用厂商自定义的无线协议,需要专用 USB 接收器;蓝牙鼠标使用标准化的 Bluetooth 协议栈,可以直接和电脑自带的蓝牙模块通信。
Local Area Networks
按信道分配方式区分静态设计与动态设计。
Static Allocation
预先划出使用份额
时分复用(TDM) :把不同时间段分给不同使用者。 频分复用(FDM) :把不同频率范围分给不同使用者。
对应到网络,问题是:某个使用者暂时无数据,预留给它的资源仍可能闲置。 当流量突发、各用户需求不均匀时,这种浪费尤其值得注意。而其静态分配的优点则是规则和份额明确。
Dynamic Allocation
根据实际需求安排发送
| 方法 | 谁决定下一次发送 | 特点 |
|---|---|---|
| 集中式 | 一个中心实体协调 | 蜂窝网络的基站决定谁接下来发送 |
| 分散式 | 各设备依据协议自行决定 | 没有单一调度中心,需要处理竞争与冲突 |
冲突(Collision) 是共享信道中需要处理的问题:多个设备在相互干扰的条件下同时发送,接收可能失败。
Metropolitan and Wide Area Networks
城域网覆盖城市。
广域网的典型通信子网由两类部分构成:传输线路负责在节点间传递数据,交换设备负责把数据从一条线路转向另一条线路。
Site-to-Site Connectivity
专用资源与共享互联网 :
三张图都以澳大利亚 Perth、Brisbane、Melbourne 三处分支为例,从左到右说明跨站点通信的不同实现方式:
- 左图:用传输线路与路由器组成广域网。 线路负责在节点之间传递数据,路由器负责交换和转发,二者构成连接各处分支的通信子网。企业可以通过建设或租用连接来实现这一结构,但图中的实线本身并不能证明整条物理线路都由企业独占。
- 中图:通过互联网建立 VPN。 虚线表示站点之间的逻辑连接,实际数据仍经由底层互联网的线路和路由器传送。这样可以复用已有通信资源,减少自建跨地区网络的投入,但企业对底层路径、可用带宽和拥塞情况的控制较弱。
- 右图:通过 ISP 网络连接。 各分支的客户网络接入运营商提供的通信子网,由运营商维护内部线路与路由器。企业购买连接服务,具体带宽、服务质量及资源保障取决于所购买的服务;这不等于运营商的整个骨干网只服务这一家企业。
逻辑上的专用网络与底层物理资源是否独占,是两个需要分别检查的问题。 VPN 描述逻辑连接方式,ISP 描述网络服务的提供者,二者并不互斥;运营商也可以提供 VPN 服务。
Routing and Forwarding
| 概念 | 作用 | 观察层次 |
|---|---|---|
| 路由(Routing) | 从源到目的地可以选择什么路径? | 网络范围内的路径选择 |
| 转发(Forwarding) | 当前路由器收到这个分组后,下一步送往哪里? | 单个节点的一次处理 |
点到点链路组成的网络可能提供多条路径;路由形成路径选择,沿途设备逐跳执行转发。
Internetworks, Gateways, and the Internet
互联网络(Internetwork) :由多个相互连接的网络构成。这些网络可能分别管理,也可能采用不同技术,例如把局域网连接到广域网,或连接两个局域网。 网关(Gateway) :连接不同网络、完成必要适配的设备。 路由器(Router) :网络层交换分组的网关。
互联网(Internet)是网络的网络,并向分布式应用提供通信服务。
Examples of Networks
The Internet
从早期研究网络到多网络互联
互联网仍由多个网络共同构成。
互联网与万维网 :互联网提供基础连通能力;万维网是利用这种能力组织和访问网页的一类应用。
Distributed Topology

分布式拓扑更能抵抗局部故障
在层次式网络与具有较多冗余连接的分布式网络之中,分布式结构具有更强的容错能力。
在层次式结构中,很多通信依赖少数关键交换节点,关键节点故障可能切断大片区域的联系。在分布式结构中,同一对端点之间可能存在多条路径,部分线路或设备故障后,可以尝试其他路径。冗余连接提供替代路径,路由负责找到仍可用的路径。
ARPANET Hosts and Communication Subnet

原始系统分为主机部分和通信子网部分。图中的 IMP 是承担分组交换的中间设备,主机经 IMP 接入子网。
图中有几种不同范围的协议关系:
- 主机与相邻 IMP 之间;
- 相邻 IMP 之间;
- 源 IMP 与目的 IMP 之间;
- 最终的主机与主机之间。
源 IMP 到目的 IMP 的协议用于提高传输可靠性。同一次通信需要不同范围的规则协作。
Home Internet Access

一次跨网络访问可按下列示意路径理解:
用户设备 → 接入链路 → 本地 ISP 的接入点 → ISP 骨干 → 与其他网络交换流量 → 目的网络 → 服务器/数据中心互联网服务提供商(Internet Service Provider,ISP) 向用户提供网络连接。用户设备如何进入 ISP,可以采用不同的接入技术:
| 接入方式 | 用户侧及运营商侧 | 关键特点 |
|---|---|---|
| 拨号接入 | 电话线两端的调制解调器 | 通过一次电话连接传数据,上网会占用电话 |
| 数字用户线(DSL) | DSL modem ↔ DSLAM | 复用入户铜线;DSLAM 汇聚多条用户线 |
| 光纤到户(FTTH) | 光纤延伸到用户侧 | 使用光纤作为入户接入介质 |
| 有线电视网络接入 | Cable modem ↔ CMTS | 复用有线电视基础设施 |
| 移动网络接入 | 手机、基站与运营商核心网 | 无线连接首先解决终端接入问题 |
调制解调器(Modem) 在数字信息与适合线路传输的信号之间转换。 HFC :光纤同轴混合网络。 分组数据传输使用 DOCSIS; 用户家中使用 cable modem,前端使用 CMTS。一套接入基础设施可以承载电视、数据与语音等不同业务。
POPs, IXPs, Peering, and Transit
| 术语 | 含义 | 细节 |
|---|---|---|
| POP(Point of Presence) | 用户分组进入 ISP 网络、获得服务的接入位置 | 描述网络中的位置,不能当作一种分组协议 |
| IXP(Internet Exchange Point) | 不同 ISP/网络交换流量的互联设施 | 描述互联地点与基础设施 |
| 对等互联(Peering) | 两个网络按约定直接交换相应流量 | 描述网络之间的关系 |
| 中转服务(Transit) | 向上游购买经其网络到达其他目的网络的服务 | 涉及承载范围、路径及商业安排 |
IXP :多个 ISP 把各自的路由器接入同一个局域网,借此交换分组。但物理上能连接,并不自动决定哪些流量可以由谁转送;实际路径还取决于互联关系和路由选择。因此,分组经过的路径未必是地理上最短的路径。
Tier-1 ISP的核心特征是无需向其他网络购买中转服务,依靠自己的网络和互联关系获得全网可达性。
From Hierarchical to Flat Networks

传统结构画成“用户 → 本地 ISP → 区域 ISP → 骨干运营商”。

增加了更多直接互联,以及大型内容提供商与其他网络的直接连接。
扁平化 :通信不必总是逐级上升到最高层再逐级下降。网络间互联更加密集,内容部署也更靠近用户。
Mobile Networks
无线接入、核心网与蜂窝设计
Mobile Network Architecture
手机接入是无线的,整条端到端路径通常还包括有线骨干,无线往往只是基站到手机这最后一跳的过程。
4G 网络的示意结构:

| 部分 | 图中名称 | 作用 |
|---|---|---|
| 用户设备 | UE | 手机等终端 |
| 无线接入网 | E-UTRAN,基站 eNodeB | 连接终端与移动网络 |
| 分组核心网 | EPC | 核心网采用分组交换,处理接入后的通信 |
| 服务网关 | S-GW | 核心网中的分组转送节点 |
| 分组数据网络网关 | P-GW | 连接外部数据网络,例如互联网 |
| 归属用户服务器 | HSS | 与用户资料、认证授权及用户位置管理有关 |
| 控制实体 | MME | 图中的控制部分,本节没有展开其完整处理流程 |
HSS :关注用户身份、资料及访问资格等信息。 PGW :承担对外数据网络的接口角色。
TIP例子:人在日本,数据出口为什么可能仍在国内?
手机在当地连接访问网络;访问网络需要与归属网络配合,确认用户身份和使用资格。在回传归属网络的路径中,数据再经国内的网关接入互联网。因此,设备所处的国家、当前连接的基站所在地,以及互联网数据出口所在地,可以不同。
Cellular Frequency Reuse
移动通信需要使用无线电频谱,而可使用的频谱有限。

蜂窝设计把服务区域划成多个小区,每个小区由基站覆盖,再通过空间分隔复用频率资源。
在经典的频率复用模型中,相邻小区采用不同频率组,减少强干扰;距离较远、相互干扰已衰减的小区,可以使用相同频率组。同一份频谱在不同空间位置再次使用,从而提高整个系统的容量。
同色表示使用相同的一组频率,重点是这些小区之间的空间关系。
为什么画成六边形?
正六边形可以铺满平面,六个相邻小区中心与本小区中心的距离相同;方格中边邻居与对角邻居的距离不同。这便于建立覆盖与干扰分析模型。实际无线覆盖会受环境影响,不会严格长成正六边形。
在 3G 系统中,各小区可以使用全部频率,同时把相邻小区的干扰控制到可接受水平。
Handover and SIM
设备从一个小区移向另一个小区时,需要进行切换(Handover),把服务关系转移到新的基站。
硬切换 :先断开旧连接,再建立新连接。
软切换 :先与新基站建立联系,再释放旧基站,因此会有短暂的双基站连接阶段。软切换可以减小业务中断,但需要额外资源。
资源代价是需要同时维持两组上下行链路,其中上行是终端到基站,下行是基站到终端。
用户身份模块(SIM) :把用户身份和账户信息与手机设备分开。把 SIM 换到另一部手机,仍可使用相应用户身份;这些信息也是认证与通信安全的基础。
From 1G to 5G
| 代际 | 主要业务 | 代表技术 | 语音与数据的交换方式 |
|---|---|---|---|
| 1G | 模拟语音 | AMPS(1982)、频分多址 FDMA | 主要是电路交换 |
| 2G | 数字语音、短信、低速数据 | D-AMPS、GSM(1991)、IS-95;TDMA/CDMA | 语音采用电路交换,逐渐引入分组数据 |
| 3G | 移动互联网与更高速数据 | UMTS(2001)、WCDMA、CDMA2000 | 电路交换语音与分组数据并存 |
| 4G | 高速上网、视频与多媒体 | LTE、OFDMA、MIMO、全 IP 核心网 | 分组交换;VoLTE 承载语音 |
| 5G | 高速移动宽带、大规模物联网、低时延与工业应用 | 5G NR、大规模 MIMO、波束成形、灵活 OFDM | 全 IP/分组交换;课件以 VoNR 说明语音承载 |
Packet Switching and Circuit Switching
| 比较项 | 数据报式分组交换 | 电路交换 |
|---|---|---|
| 通信开始 | 可以按分组发送,无需先建立专用电路 | 先建立连接,再传送信息 |
| 路径 | 各分组独立进行路由选择 | 建立的通路维持到通信结束 |
| 资源 | 多个通信共享网络资源 | 为已建立的电路关联相应资源 |
| 故障影响 | 有可用替代路径时,可重新选择路径 | 原通路故障会影响相应连接 |
| 服务质量 | 需要面对共享资源下的竞争 | 较容易为已接通的通信提供稳定资源 |
Wireless LANs: 802.11
Standards, Shared Spectrum, and Access Points
早期无线局域网产品互不兼容,促使业界制定共同标准。IEEE 802.11(Wi-Fi)
802.11 系统使用免单独许可的频段,例如 ISM 频段。
这不表示可以无限制发送:设备仍须控制发射功率,允许不同设备共存。无线局域网可能受到其他共用频谱的设备影响。
第 66 页给出两种组织形式:
| 形式 | 通信方式 |
|---|---|
| 有基础设施的网络 | 终端通过接入点通信,接入点连接有线网络 |
| 自组织网络(Ad hoc) | 在无线覆盖范围内的终端直接通信,无需该图中的接入点 |
接入点(Access Point,AP) 负责无线接入;网关负责跨网络连接。 Wi-Fi 到 AP 的一段是无线链路,后续路径可以由有线网络继续承载。

Multipath Fading

多径衰落(Multipath Fading) :无线信号可经直接路径和反射路径到达接收机。不同路径的距离与到达时间不同,收到的信号叠加时,可能相互增强,也可能相互抵消,导致接收强度明显波动。
Diversity
路径分集(Path Diversity) :利用多条不同、尽量独立的路径或传输机会,降低信息全部落在较差信道条件下的可能性。
| 分集维度 | 做法 | 对应直觉 |
|---|---|---|
| 频率 | 在不同频率上传送信息 | 一个频率条件差,其他频率可能仍可用 |
| 空间 | 不同天线对提供不同空间路径 | 不把接收完全寄托于单一路径 |
| 时间 | 在不同时刻重复传送有关信息 | 避开某一时刻的不利条件 |
Channel Sensing, Backoff, and Collisions
**载波侦听多路访问(CSMA)**的基本思想是发送前先听信道:发现别人正在发送,就推迟自己的发送;设备使用随机等待,冲突后再随机延迟并重传。

A 和 C 可能互相听不到,但它们的信号都能到达 B。 于是,两者各自在本地听到“空闲”,仍可能在 B 处造成相互干扰。仅凭发送者自己没有听见别人,不能保证接收端没有冲突。
Mobility and Security
多个 AP 及连接它们的分布系统,可以组成多个小区,支持用户从一个位置移动到另一个位置时继续接入网络。
Network Protocols
Four Protocol Design Goals
| 目标 | 要解决的问题 | 机制 |
|---|---|---|
| 可靠性 | 组成网络的部件可能出错或失效,系统如何继续正确工作? | 差错检测、差错纠正、寻找可用路由 |
| 资源分配 | 有限通信资源如何供多个用户与应用共享? | 统计复用、流量控制、拥塞处理、服务质量 |
| 可演进性 | 网络扩大、新技术出现后如何继续互联? | 分层与隐藏实现细节、寻址与命名、适配不同网络 |
| 安全性 | 如何防止窃听、冒充和秘密篡改? | 保密性、身份认证、完整性保护 |
差错检测与差错纠正。 :检测负责发现收到的信息有误;发现错误后可以通过重传等办法处理。纠正则利用额外信息,从有错的数据恢复原消息。
统计复用(Statistical Multiplexing)。 :多个使用者根据需求共享资源,利用它们并非始终同时需要全部资源的特点。
Flow Control and Congestion Control
| 问题 | 矛盾 | 理解 |
|---|---|---|
| 流量控制(Flow Control) | 发送者的发送速度超过接收者处理能力 | 发得快的一方需要照顾收得慢的一方 |
| 拥塞控制(Congestion Control) | 网络中的总体需求超过可承载能力 | 很多发送者把中间网络挤满,排队或丢失随之出现 |
单个接收者处理得过来,不代表整个网络一定承载得了所有流量。反过来,网络总体不拥塞,也可能有某个接收者跟不上发送者。**服务质量(QoS)**还要协调不同业务对时延、速率等的不同需求。
Evolvability and Security
分层把整体问题拆开,并把实现细节封装在层内。这样,新增网络或改变某部分实现时,不必要求所有上层应用同时重写。寻址与命名用于识别发送者和接收者;不同技术的限制不同,还需要通过互联机制适配。
安全目标可用三个问题理解:别人能否偷看?对方是否真是声称的身份?消息是否被偷偷改动? 它们分别对应保密性、认证和完整性。
Protocols, Peers, Interfaces, and Protocol Stacks
协议(Protocol) :规定通信实体之间交换消息的格式、顺序,以及发送、接收消息或其他事件发生时应采取的动作。
| 概念 | 含义 |
|---|---|
| 层 | 在协议体系中负责一组职责,使用下层能力并向上层提供能力 |
| 对等实体(Peer) | 不同机器中处于对应层、按共同协议交流的实体 |
| 接口(Interface) | 同一机器相邻两层之间的边界,规定下层向上层开放哪些操作与服务 |
| 网络体系结构 | 一组层及相应协议的组织方式 |
| 协议栈(Protocol Stack) | 某个系统实际采用的各层协议的组合 |
Logical Communication and Actual Data Flow

两种不同方向的联系:
横向:对等层之间按协议交流。 例如,主机 A 的第 4 层与主机 B 的第 4 层使用共同的规则,可以把它们抽象为正在直接“对话”。图中用虚线表示这种逻辑关系。
纵向:本机相邻层通过接口协作。 发送端的数据逐层向下交付,到达物理介质;接收端再逐层向上交付。
发送端 接收端第 n 层 ····· 对等层逻辑通信 ····· 第 n 层 ↓ 使用下层服务 ↑ 向上层交付 …… ……第 1 层 ────── 经物理介质传输 ──────→ 第 1 层因此,对等层的逻辑通信依赖下层服务实现。第 4 层不会绕过第 3、2、1 层,直接把数据“跳送”到另一台机器的第 4 层。
Encapsulation, Fragmentation, and Reassembly

记 为上层消息, 为第 层添加的头部, 为第 2 层的尾部。
Sending a Message
第 5 层产生消息 。 交给第 4 层后,第 4 层加上自己的控制头部,形成 。
第 3 层按需要拆分。 图中把消息分成 、 两部分,每份分别加上第 3 层头部。原有的 随第一份数据传递:
第 5 层: [ M ]
第 4 层: [ H4 | M ]
第 3 层: [ H3 | H4 | M1 ] [ H3 | M2 ]
第 2 层: [ H2 | H3 | H4 | M1 | T2 ] [ H2 | H3 | M2 | T2 ]
第 1 层: 通过物理介质传输比特第 2 层再封装。 给每一份分别加上 和 ,构成可以在相应链路上传送的单位。尾部可以承载差错检测所需的信息;具体字段取决于协议。
Reconstructing a Message
接收端从低层往高层处理:第 2 层解释自己的头尾并完成相应检查,把内部数据交给第 3 层;第 3 层依据其规则识别、组织和重组各部分,恢复第 4 层交付的整体;第 4 层解释并移除自己的控制头部,最后向第 5 层交付 。
封装关注添加本层控制信息;分片关注把过大的数据单位拆成较小单位;重组则恢复拆分前的整体。它们需要区分,且并非每次经过一层都必须同时发生。
Connection-Oriented and Connectionless Services
分层体系中,一层可以向上层提供不同形式的服务。
| 服务形式 | 过程与特点 | 类比 |
|---|---|---|
| 面向连接(Connection-oriented) | 先建立连接,再使用连接,最后释放连接 | 打电话:接通 → 通话 → 挂断 |
| 无连接(Connectionless) | 每个消息独立提交,携带目的地址,由网络分别处理 | 寄信:每封信写地址,分别投递 |
面向连接:发送端放入数据,接收端取出数据。 无连接传递:不同消息可能经历不同等待或路径,先发出的消息也可能后到。
面向连接不自动保证可靠,无连接也可以增加确认机制。
| 连接形式 | 服务 | 例子 |
|---|---|---|
| 面向连接 | 可靠消息流 | 一页一页发送书页 |
| 面向连接 | 可靠字节流 | 下载电影文件 |
| 面向连接 | 不可靠连接 | 网络语音 |
| 无连接 | 不可靠数据报 | 对送达保证要求不高的垃圾消息示例 |
| 无连接 | 有确认的数据报 | 短信 |
| 无连接 | 请求—应答 | 数据库查询 |
可靠传递需要付出代价,例如确认、检测和重传带来的开销与等待。文件传输通常要求内容完整正确;实时语音则可能更难容忍等待过久。
Example
消息流与字节流的边界
假设发送方连续发送两条 1024 字节的消息。
可靠消息流保留消息边界: 接收方得到的是两条分别为 1024 字节的消息。
可靠字节流不保留原始发送边界: 接收方得到正确的 2048 字节,但仅从这些字节无法判断发送方原来是发送了一次 2048 字节、两次 1024 字节,还是很多次更小的数据。
因此,消息边界属于服务语义。逐页处理的书页可能需要保留边界,下载电影则更关注字节内容及顺序。
Store-and-Forward and Cut-Through Switching
中间节点收到多少数据以后,开始向下一跳发送?
| 对比项 | 存储转发(Store-and-forward) | 直通转发(Cut-through) |
|---|---|---|
| 转发开始时机 | 完整接收一帧后,再开始转发 | 取得目的地址等必要信息后,在整帧收完前开始转发 |
| 延迟 | 较高(帧长度越长延迟越大) | 极低(接近零延迟) |
| 完整帧的 CRC 检查 | 可以在转发前检查并丢弃损坏帧 | 不支持,错误帧可能传播 |
| 错误传播 | 有机会在该节点拦住损坏帧 | 损坏帧可能已经被部分或全部转出 |
| 使用场景 | 企业网络、数据中心 | 高性能计算、低时延应用 |
| 不同速率端口 | 支持 | 不支持 |
| 可靠性 | 高 | 较低 |
| 性能 | 稍慢 | 极快 |
Service Primitives
服务原语(Service Primitive) :是用户进程访问某项服务时可调用的基本操作。
若协议栈位于操作系统中,原语通常通过系统调用提供。调用原语是在本机要求服务执行动作;实际发什么消息、怎样与对端配合,由协议实现。
| 原语 | 含义 |
|---|---|
LISTEN | 等待到来的连接请求;示例中为阻塞操作 |
CONNECT | 请求与等待中的对端建立连接 |
ACCEPT | 接受对端的连接请求 |
RECEIVE | 等待接收消息;示例中会阻塞调用进程 |
SEND | 向对端发送消息 |
DISCONNECT | 终止连接 |
Request–Reply Sequence Diagram

服务器先执行 LISTEN 等待连接,客户端再执行 CONNECT。
| 次序 | 消息方向与内容 | 原语及进程状态的变化 |
|---|---|---|
| 1 | 客户端 → 服务器:连接请求 | 客户端执行 CONNECT 后等待;服务器收到请求,等待连接的进程被唤醒 |
| 2 | 服务器 → 客户端:接受连接 | 服务器执行 ACCEPT;客户端收到响应后继续运行 |
| 3 | 客户端 → 服务器:业务请求 | 服务器先 RECEIVE 等待;客户端 SEND 后再 RECEIVE 等待应答;请求到达后服务器继续处理 |
| 4 | 服务器 → 客户端:业务应答 | 服务器处理请求后 SEND;应答到达使客户端继续运行 |
| 5 | 客户端 → 服务器:断开请求 | 客户端执行 DISCONNECT,在该示例中等待对方确认 |
| 6 | 服务器 → 客户端:断开响应 | 服务器也执行 DISCONNECT 并释放连接;响应到达后客户端结束等待 |
某层呈现的服务形式,不必与其下层使用的传递方式相同。
Services and Protocols
| 对比项 | 服务(Service) | 协议(Protocol) |
|---|---|---|
| 关联对象 | 本机相邻层:下层提供,上层使用 | 不同机器的对等实体 |
| 图中的方向 | 纵向 | 横向 |
| 核心问题 | 本层向上层提供什么能力、什么操作? | 对等实体如何交换和解释消息,共同实现这些能力? |
| 使用者能看到什么 | 可调用的操作及其服务语义 | 报文规则通常属于该层内部实现,上层不必直接处理 |
例如,上层通过“发送”操作要求交付数据;本层究竟怎样编号、确认、处理错误,需要通过它与对端之间的协议来实现。上层可以使用服务,而无需直接构造这套协议的全部控制信息。
保持对上层可见的服务不变,就可以更换内部协议或实现。 前提是参与通信的对等实体仍能遵守一致、兼容的规则,不能只改一端的报文解释就期望另一端自动理解。
Reference Models
OSI Seven-Layer Model
开放系统互连参考模型(OSI) 规定了七层的职责划分,是理解网络功能与协议组织的参考框架。自下而上的顺序为:
物理层 → 数据链路层 → 网络层 → 传输层 → 会话层 → 表征层 → 应用层。
| 层次 | 名称 | 数据单位标记 |
|---|---|---|
| 7 | 应用层 | APDU |
| 6 | 表征层(亦称表示层) | PPDU |
| 5 | 会话层 | SPDU |
| 4 | 传输层 | TPDU |
| 3 | 网络层 | 分组(Packet) |
| 2 | 数据链路层 | 帧(Frame) |
| 1 | 物理层 | 比特(Bit) |
物理层传比特,数据链路层组织帧,网络层处理分组。 OSI 模型本身没有规定各层必须采用的具体服务和协议,因此不是一套完整的网络体系结构。
End-to-End and Hop-by-Hop Processing

关注最小单位:Physical layer 是 bit, Data link layer 是 frame,Network layer 是 packet,Transport layer 是 segment。
端到端传输的最底层是transport layer
图中有源主机、中间路由器和目的主机。两台主机可能相隔很远,数据需经过多个中间节点。
源主机 A → 路由器 R1 → 路由器 R2 → 目的主机 B第 1–3 层沿途参与逐跳处理。 在图中,中间路由器从物理层接收,经数据链路层取得内部的分组,再在网络层根据地址决定转发方向,最后通过下一条链路继续发送。
第 4–7 层体现端到端的逻辑关系。 这些层在图中连接两端主机,中间路由器不作为对应上层会话的一端。端到端也不要求两端之间存在直接物理链路,它可以依靠多跳网络实现。
访问百度:本机先到默认网关,再经学校出口、运营商网络等节点,逐跳到达目的地。
Physical Layer
物理层(Physical Layer) 负责在通信信道上传输原始比特,是上层网络功能的基础。它需要约定:用什么信号表示 0 和 1、每个比特持续多长时间、通信能否同时双向进行,以及连接器和线路如何连接等。
物理层中的基本数据单位是 bit。
Physical media 分为三类:
- Guided media:有线传输介质,例如双绞线、同轴电缆、光纤。
- Unguided media:无线传输介质,例如电磁波、红外线。
- Satellite:卫星通信,通常使用微波频段。
Data Link Layer
数据链路层(Data Link Layer) 负责在相邻节点之间可靠传输帧,处理物理层可能出现的误码、丢帧等问题。
基本数据单位是 帧(Frame)。
三大功能
分帧(Framing) :发送方把数据组织成一帧一帧,再依次发送 差错控制(Error Control) :检测错误,并按协议采用重传或纠错等处理方式 (Important)流量控制(Flow Control) :协调发送速度,避免接收方被数据淹没
为什么较易出错的无线链路需要考虑纠错?
一帧因噪声或干扰受损,要求重传后,新的一次传输仍可能受损。若编码能在一定差错范围内恢复原信息,就可以减少依赖重传的次数。
Medium Access Control
广播网络还多出一个问题:多台设备共享同一个信道,谁可以在什么时候发送?
这由数据链路层中的介质访问控制子层(Medium Access Control,MAC) 处理。
它关注共享信道的访问与冲突问题;前面的分帧、差错控制与流量控制关注怎样完成链路上的数据传送。
教室内多台设备通过无线接入点上网。
大家都要使用无线通信资源,多个发送活动可能相互干扰,因此需要访问规则。
典型链路层协议有 Ethernet、Wi-Fi、PPP
Network Layer
网络层(Network Layer) 负责让分组从源端到达目的端。它要把多条链路连接成完整路径,并处理不同网络之间的互联问题。
基本数据单位是 分组(Packet)。
路由选择 是核心:网络分布在许多设备上,各节点需要协作,让分组沿适当的路径前进。
两类路由算法:链路状态(Link-state) 与 距离向量(Distance-vector)。
路由协议 : IPv4、IPv6、ICMP,以及 RIP、OSPF、BGP 等。
网络层还需要面对拥塞控制、服务质量(QoS)与异构网络互联:即使找到一条可达路径,也要考虑这条路径能否承载流量,以及不同网络的地址、分组大小等条件是否兼容。
Transportation Layer
传输层(Transport Layer,亦称运输层)是本章分层模型中最低的端到端层。 源主机与目的主机中的对等实体通过协议进行通信,下方的网络层负责让分组经过沿途节点。
根据具体协议,传输层接收上层数据,进行必要的分段,把数据交给网络层,并在接收端完成相应处理。
传输层的数据单位是 segment(报文段)。
Connection-oriented transport protocols(面向连接的运输协议)如 TCP 提供可靠的字节流服务
Connectionless transport protocols(无连接的运输协议)如 UDP 提供不可靠的数据报服务.
Session Layer and Presentation Layer
会话层(Session Layer) 为不同机器上的用户建立会话,并提供以下服务:
| 服务 | 含义 |
|---|---|
| 对话控制 | 记录当前轮到哪一方发送 |
| 令牌管理 | 避免双方同时执行某个关键操作 |
| 同步 | 为长时间传输设置检查点,故障恢复后从相应位置继续 |
表征层(Presentation Layer,亦称表示层) 关注所传信息的语法与语义。不同计算机内部的数据表示可能不同,通信时需要约定抽象的数据结构及传输编码,使双方能够一致地解释信息。
会话层协调一次交互如何进行,表征层处理信息如何表示和解释。
Application Layer
应用层(Application Layer) 包含用户应用所需的网络协议。浏览器、电子邮件、文件传输等业务利用下层的通信能力,按照各自的应用协议交换信息。
| 协议 | 本章给出的用途 |
|---|---|
| HTTP | 获取网页,支撑万维网 |
| SMTP | 电子邮件传送 |
| FTP | 文件传输 |
| DNS | 将主机名映射到网络地址 |
| TELNET | 虚拟终端/远程终端 |
| RTP | 传送语音、视频等实时媒体 |
The TCP/IP Reference Model
模型自下而上分为四层:
链路层 → 互联网层 → 传输层 → 应用层。

The Link Layer
链路层(Link Layer) 规定主机如何利用底层传输链路,满足上方互联网层的需要。
主机与传输链路之间的接口
The Internet Layer
互联网层(Internet Layer) 大致对应 OSI 的网络层。它定义 IP 分组的格式及处理规则,使分组能够穿过不同网络到达目的地;各分组可以独立传递,接收顺序也可能与发送顺序不同。
两个关键协议是:IP 负责分组传递,ICMP 为 IP 提供配套的控制功能。路由与拥塞是这一层的重要问题。
The Transport Layer
TCP/IP 的传输层让源主机与目的主机的对等实体通信。
TCP 在 IP 提供的传递能力之上,形成可靠、面向连接的字节流服务。 发送端把字节流分成报文段,交给互联网层;接收端的 TCP 再把收到的内容组织为输出字节流。
发送端应用字节流 → TCP 分段 → IP 分组传递 ↓接收端应用字节流 ← TCP 重组 ← 接收端 IP下层无连接,上层仍可以面向连接。 IP 的服务形式与 TCP 的服务形式并不冲突。每一层可以通过自己的协议,为上层提供不同于下层的服务。
UDP 则为不需要 TCP 这套服务保证、或希望自行处理相关问题的应用提供无连接传递。
The Application Layer
应用可以包含自己需要的会话与表示功能

The Model Used in This Book
五层混合模型,保留物理层与数据链路层的区分,同时把上层应用相关功能集中到应用层:
物理层 → 数据链路层 → 网络层 → 传输层 → 应用层。
| 层次 | 英文名称 | 主要问题 |
|---|---|---|
| 5 | Application | 应用按照什么规则交换信息? |
| 4 | Transport | 端到端提供什么传输服务? |
| 3 | Network | 分组怎样穿过网络到达目的地? |
| 2 | Link | 直接相连的节点怎样传送帧、处理差错与共享信道? |
| 1 | Physical | 比特怎样变成信号并通过介质传输? |

The OSI vs. TCP/IP
OSI 七层,TCP/IP 四层,教材五层。
| 比较项 | OSI | TCP/IP |
|---|---|---|
| 模型与对应协议的先后 | 先提出参考模型,再设计相应协议 | 先有协议,再用模型描述已有协议 |
| 层数 | 7 层 | 4 层 |
| 会话层、表征层 | 单独列出 | 不单独列出;应用包含所需功能 |
| 物理层、数据链路层 | 分别列出 | 底层由 Link 部分概括,没有单独列出的 Physical 层 |
| 第三层对应名称 | Network | Internet |
| 所在层 | OSI | TCP/IP |
|---|---|---|
| 网络层/互联网层 | 支持无连接与面向连接两种通信 | 提供无连接通信 |
| 传输层 | 面向连接通信 | TCP 面向连接,UDP 无连接 |
为什么 TCP 仍然可以面向连接?
TCP 属于传输层。它使用下层 IP 的分组传递能力,再通过自身协议向应用提供面向连接、可靠的服务,因此“IP 无连接”与“TCP 面向连接”能够同时成立。
Standardization
| 编号 | 主题 |
|---|---|
| 802.1 | 局域网的概述与体系结构 |
| 802.2 | 逻辑链路控制 |
| 802.3 | 以太网 |
| 802.11 | 无线局域网/Wi-Fi |
| 802.15 | 个人区域网,表中以 Bluetooth、Zigbee 为例 |
| 802.16 | 宽带无线,表中以 WiMAX 为例 |
ISO、OSI、IEEE 802.11、WiFi Alliance 分别属于什么?
ISO 是标准化组织;OSI 是参考模型;IEEE 802.11 是无线局域网标准;WiFi Alliance 承担产品互操作相关的角色。
Metric Units
Bits, Bytes, and Prefixes
| 常用量 | 换算 |
|---|---|
| 1 kbps | |
| 1 Mbps | |
| 1 Gbps | |
| 1 Tbps | |
| 1 ms | |
| 1 μs | |
| 1 ns | |
| 1 ps |
小写 b 表示 bit,大写 B 表示 byte。 速率单位带 /s,表示单位时间内传送的数据量;时间单位不带 /s。
完整前缀表
| 小量级前缀 | 数量级 | 大量级前缀 | 数量级 |
|---|---|---|---|
| milli | kilo | ||
| micro | mega | ||
| nano | giga | ||
| pico | tera | ||
| femto | peta | ||
| atto | exa | ||
| zepto | zetta | ||
| yocto | yotta |
The Textbook’s Unit Convention
通信速率的 kbps、Mbps、Gbps、Tbps 采用 、、、 bit/s。
Quantitative Metrics of the Performance of Packet-Switching Networks
时延(Delay)、丢包(Loss)、吞吐量(Throughput)。
时延回答“要等多久”,丢包回答“有没有未能继续传送的数据”,吞吐量回答“单位时间实际传了多少数据”。
Four Types of Delay
| 时延 | 发生在什么阶段 | 主要取决于什么 |
|---|---|---|
| 处理时延(Processing delay) | 检查首部、确定输出方向,完成必要检查 | 节点处理工作与处理能力 |
| 排队时延(Queuing delay) | 等待前面到达的分组获得发送机会 | 之前积压的分组、流量负载与调度情况 |
| 发送时延(Transmission delay) | 把整个分组逐步送上输出链路 | 分组长度 与链路速率 |
| 传播时延(Propagation delay) | 信号沿链路从一端传播到另一端 | 链路距离 与传播速度 |
在“节点处理 → 排队 → 输出链路发送 → 沿链路传播”的记账方式下,可把一次节点及后续链路的时延写为:
这里后两个量为:
用 bit, 用 bit/s; 用 m, 用 m/s。
Processing Delay
处理时延包括检查分组首部中的有关字段,以及决定从哪个输出接口继续发送。
Queuing Delay
排队时延是等待其他分组先被处理或发送的时间。它受当时的队列情况影响,不能只根据链路距离计算。
Transmission Delay
发送时延是把整个分组送上链路所需的时间。
若分组长 bit,链路每秒能接收 bit,发送完成就需要 秒。开始发送时,后面的比特还没有进入链路;发送完成时,最后一个比特刚刚进入链路。
因此,分组越长,发送时延越大;链路速率越高,发送时延越小。 这一项与链路的地理长度没有直接关系。
Propagation Delay
传播时延是信号从链路一端到另一端所需的时间。
Transmission vs. Propagation
| 改变的条件 | 发送时延 | 传播时延 |
|---|---|---|
| 只把分组长度变为原来两倍 | 变为两倍 | 不变 |
| 只把链路比特率变为原来两倍 | 变为一半 | 不变 |
| 只把链路距离变为原来两倍 | 不变 | 变为两倍 |
| 只改变信号在介质中的传播速度 | 不变 | 随 改变 |
定义推导:第一个比特与最后一个比特什么时候到达?
只考虑一条链路,忽略处理、排队和额外开销;以第一个比特开始进入链路的时刻为 。
| 事件 | 时刻 |
|---|---|
| 第一个比特开始发送 | |
| 整个分组发送完毕 | |
| 第一个比特到达接收端 | |
| 最后一个比特到达接收端,分组收齐 |
End-to-End Delay
在单个分组、逐跳存储转发、各段分组长度不变的简化模型中,端到端时延可写为:
主机 A → 路由器 R1 → 路由器 R2 → 主机 B 三条链路、两个中间路由器Packet Loss
链路前的队列容量有限。 当新分组到达时,如果相关缓冲区已经满了,就没有空间继续存放它,可能发生丢包。
两种丢弃情形:检查发现数据受损,以及缓冲区已满。前者与差错有关,后者与队列容量及负载有关。
到达负载较大 → 队列积压 → 缓冲区用满 → 新到达的分组被丢弃Throughput and the Bottleneck Link
吞吐量描述单位时间内实际传送的数据量,常用 bit/s。它受路径上的**瓶颈链路(Bottleneck link)**限制。
若一条固定路径依次经过速率为 的链路,在没有其他流量竞争、节点处理不构成更低限制的简化模型中: