第1章:计算机网络和因特网(Computer Networks and the Internet)
一、导读
1.1 本章学习目标
第1章是整本《计算机网络:自顶向下方法》的开篇之作,它回答了两个最基本的问题:什么是因特网?和什么是协议?。通过本章的学习,你将建立起计算机网络的全局视图,理解网络协议栈的分层模型,以及分组交换与电路交换的本质差异。
本章的核心学习目标包括:
- 理解因特网的两种视角:作为组成部分(硬件+软件)和作为服务(基础设施)
- 掌握协议层次模型:应用层→传输层→网络层→链路层→物理层
- 理解网络边缘与网络核心的区别:主机运行应用程序,路由器转发分组
- 掌握分组交换与电路交换的对比:统计复用 vs 预留资源
- 了解 ISP 的层次结构:Tier-1、Tier-2、接入ISP 的关系
- 理解性能指标:带宽、时延、丢包率、吞吐量
1.2 为什么第一章如此重要
很多初学者觉得第一章"太泛",急于跳到具体的协议细节。这种想法是错误的。正如建筑设计师需要理解整栋建筑的结构蓝图,网络工程师也需要理解网络的完整图景。没有全局观,后续学习就容易陷入"只见树木,不见森林"的困境。
Kurose 和 Ross 反复强调一个观点:网络是一个分层的协议栈,每一层都为上层提供服务。第一章正是这种视角的集中体现——它用一个简单的 Web 请求串联起了 HTTP、TCP、IP、以太网等几乎所有核心协议。
1.3 核心问题引导
在阅读本章时,请带着以下问题思考:
当你在浏览器输入 URL 并按下回车时,到底发生了什么?
一个 HTTP 请求是如何从你的电脑到达 Google 服务器的?
为什么分组交换比电路交换更适合互联网?
路由器在网络中扮演什么角色?
ISP 之间是如何互联的?
带宽和时延有什么区别?为什么两者都重要?
二、核心概念详解
2.1 什么是因特网
因特网可以从两个角度来描述:
2.1.1 组成视角(硬件+软件)
从组成部分来看,因特网是一个全球性的计算机网络,由以下要素组成:
- 网络边缘:连接在因特网上的所有主机(end systems/hosts),包括PC、服务器、智能手机、IoT设备等
- 网络核心:由路由器(router)和链路(link)组成的网状结构,负责将分组从源转发到目的
- 接入网络:将主机连接到网络核心的物理介质,包括WiFi、光纤、蜂窝网络等
[主机] [主机]
\ /
[路由器]----[路由器]
| |
[路由器]----[路由器]
/ \
[主机] [主机]2.1.2 服务视角(基础设施)
从服务角度来看,因特网是一个为分布式应用提供通信服务的基础设施。它向上层应用提供两种服务:
- 可靠传输服务:基于 TCP,保证数据无差错、按序、不丢失、不重复地送达
- 尽最大努力传输服务:基于 UDP,不保证任何服务质量,但延迟更低
2.2 协议层次模型
协议(protocol)定义了通信实体之间消息的格式和规则。因特网采用五层协议栈:
| 层次 | 功能 | 核心协议 | 数据单元 |
|---|---|---|---|
| 应用层 | 支持网络应用 | HTTP, SMTP, DNS, FTP | 报文(Message) |
| 传输层 | 端到端数据传输 | TCP, UDP | 报文段(Segment) |
| 网络层 | 路由和寻址 | IP, OSPF, BGP | 数据报(Datagram) |
| 链路层 | 相邻节点传输 | 以太网, WiFi, PPP | 帧(Frame) |
| 物理层 | 比特传输 | 光纤, 铜缆, 无线电波 | 比特(Bit) |
每一层都向上一层提供"服务",同时利用下一层提供的服务。这种分层设计使得每一层可以独立演进,而不影响其他层。
2.3 分组交换 vs 电路交换
2.3.1 电路交换(Circuit Switching)
电路交换在通信前需要预留端到端的资源(带宽、时隙),类似于传统电话网络:
- 优点:保证带宽,延迟可预测
- 缺点:资源利用率低,建立连接慢
A ──── 预留 ──── B
│ (独占链路) │
└── 资源被浪费 ──┘2.3.2 分组交换(Packet Switching)
分组交换将数据分成小块(分组),每个分组独立传输,共享链路资源:
- 优点:统计复用,资源利用率高
- 缺点:可能产生拥塞和丢包,延迟不确定
A → [分组1] → [分组2] → [分组3] → B
↓ ↓ ↓
路由器1 路由器2 路由器3因特网采用分组交换,这是它成功的关键设计决策之一。
2.4 网络中的时延、丢包和吞吐量
分组在网络中经历四种时延:
节点处理时延(d_proc):检查比特、决定输出链路
排队时延(d_queue):等待输出链路空闲
传输时延(d_trans):将分组推送到链路上,= L/R(L=分组长度,R=链路带宽)
传播时延(d_prop):比特在链路上传播,= d/s(d=链路长度,s=传播速度)
总时延 = d_proc + d_queue + d_trans + d_prop
总时延 = d_proc + d_queue + d_trans + d_prop
↓ ↓ ↓ ↓
微秒级 可变 毫秒级 毫秒级三、重要知识点
3.1 ISP 的层次结构
因特网不是由单一组织运营的,而是由多个 ISP(Internet Service Provider)互联而成:
- Tier-1 ISP:全球性骨干网(AT&T, Sprint, Level3),彼此对等互联
- Tier-2 ISP:区域性网络,连接到 Tier-1 并为其提供接入
- Tier-3 ISP / 接入 ISP:直接连接终端用户(如家庭宽带、校园网)
IXP(Internet Exchange Point)是 ISP 之间交换流量的物理位置。
3.2 协议分层的设计哲学
协议分层的核心思想是模块化:
- 每一层只关心自己的功能,不关心其他层的实现
- 层与层之间通过明确定义的接口交互
- 任何一层的变化不影响其他层
这种设计使得因特网能够持续演进。例如,从 IPv4 到 IPv6 的过渡可以在网络层独立完成,而不需要修改应用层协议。
3.3 网络安全威胁
因特网面临多种安全威胁:
- 恶意软件:病毒、蠕虫、木马
- DoS/DDoS 攻击:洪水攻击、放大攻击
- 分组嗅探:在共享介质上截获数据
- IP 欺骗:伪造源地址发送分组
四、常见误区与难点
4.1 误区一:"因特网就是万维网"
因特网(Internet)是基础设施,万维网(WWW)是运行在因特网上的一个应用。因特网还支持电子邮件、文件传输、即时通讯等多种应用。
4.2 误区二:"带宽越大,速度越快"
带宽(bandwidth)是链路的最大传输速率(bps),但实际传输速度还受时延、丢包、拥塞等因素影响。高带宽低时延的链路才是真正"快"的链路。
4.3 难点:理解排队时延
排队时延是四种时延中最不可预测的,它取决于到达流量和链路容量的比值。当流量接近链路容量时,排队时延会急剧增加,这就是拥塞的本质。
五、实践应用
5.1 使用 traceroute 观察路由路径
# Linux/Mac
traceroute www.google.com
# Windows
tracert www.google.comtraceroute 会显示分组从源到目的经过的所有路由器,以及每一跳的时延。
5.2 使用 ping 测量时延
ping -c 10 www.google.comping 测量的是往返时延(RTT),包括传输时延、传播时延和处理时延。
5.3 使用 Wireshark 抓包分析
Wireshark 是最常用的网络抓包工具,可以观察网络中传输的所有分组。
# 安装 Wireshark(Ubuntu)
sudo apt install wireshark
# 启动 Wireshark
sudo wireshark六、本章小结
第1章建立了计算机网络的全局视图:
因特网是一个由主机、路由器和链路组成的全球性网络
协议栈分为五层:应用层、传输层、网络层、链路层、物理层
分组交换是因特网的核心设计,通过统计复用提高资源利用率
时延和丢包是网络性能的关键指标,受排队和拥塞影响
ISP 层次结构使得全球数十亿设备能够互联互通
后续章节将自顶向下逐层深入:第2章讲解应用层协议,第3章讲解传输层的 TCP/UDP,第4章讲解网络层的 IP 和路由,第5章讲解链路层的以太网和 WiFi。