第十八章 网络与互联网 — 全球连接
导读
1969年10月29日晚上10点30分,加州大学洛杉矶分校(UCLA)的一台计算机向斯坦福研究院(SRI)的另一台计算机发送了历史上第一条网络消息——"LO"。原本要发送的是"LOGIN",但系统在发送完前两个字母后崩溃了。这个不成功的开始,却标志着ARPANET——互联网的前身——的诞生。
今天,互联网已经连接了全球超过50亿人和数百亿设备。你可以在几秒钟内与地球另一端的人视频通话,可以在毫秒内访问存储在万里之外的数据,可以在瞬间将信息传播到全世界。互联网是人类历史上最伟大的工程成就之一,它深刻地改变了我们获取信息、交流思想、开展商业和参与社会的方式。
本章将全面介绍计算机网络和互联网的基本原理。我们将从网络的基本概念开始,了解分层模型和协议栈;然后深入探讨TCP/IP协议族的核心协议;接着了解路由、DNS、HTTP等关键技术和应用;最后探讨互联网的安全挑战和未来发展方向。
核心概念详解
18.1 计算机网络的基本概念
计算机网络是将地理位置不同的多台计算机通过通信链路和交换设备连接起来,实现资源共享和信息传递的系统。
网络的分类
按覆盖范围分类:
- PAN(Personal Area Network):个人区域网,如蓝牙连接(~10米)
- LAN(Local Area Network):局域网,如家庭/办公室网络(~100米)
- MAN(Metropolitan Area Network):城域网(~城市范围)
- WAN(Wide Area Network):广域网(~国家/全球范围)
- 互联网(Internet):连接全球网络的网络
网络拓扑
网络的物理或逻辑布局称为拓扑。常见拓扑:
- 星形:所有设备连接到一个中心节点(如交换机)
- 总线形:所有设备共享一条通信线路
- 环形:设备连成环形
- 网状:设备之间有多条路径(互联网采用)
传输介质
- 有线:双绞线(以太网)、同轴电缆(有线电视)、光纤(长距离高速传输)
- 无线:无线电波(Wi-Fi、蜂窝)、微波、红外线、卫星
18.2 网络分层模型
网络通信是一个极其复杂的任务,涉及硬件、信号、编码、路由、错误处理、应用逻辑等多个层面。为了管理这种复杂性,网络工程师采用了分层(Layering)的设计方法。
OSI七层模型
国际标准化组织(ISO)提出的OSI(Open Systems Interconnection)模型将网络通信分为七层:
| 层 | 名称 | 功能 | 示例协议 |
|---|---|---|---|
| 7 | 应用层 | 为用户提供网络服务 | HTTP, FTP, SMTP |
| 6 | 表示层 | 数据格式转换、加密 | SSL/TLS |
| 5 | 会话层 | 管理通信会话 | NetBIOS |
| 4 | 传输层 | 端到端的可靠传输 | TCP, UDP |
| 3 | 网络层 | 路由和寻址 | IP |
| 2 | 数据链路层 | 帧的传输和错误检测 | Ethernet, Wi-Fi |
| 1 | 物理层 | 比特流的物理传输 | 电缆、光纤 |
TCP/IP四层模型
实际使用的TCP/IP模型更为简洁,分为四层:
| 层 | 对应OSI | 功能 | 示例协议 |
|---|---|---|---|
| 应用层 | 5-7层 | 应用程序间的通信 | HTTP, DNS, SMTP |
| 传输层 | 4层 | 主机到主机的通信 | TCP, UDP |
| 网络层 | 3层 | 网络间的数据包路由 | IP, ICMP |
| 网络接口层 | 1-2层 | 物理网络上的数据传输 | Ethernet, Wi-Fi |
每一层为其上层提供服务,同时使用下层提供的服务。层与层之间通过接口(Interface)交互,每一层的具体实现可以独立变化。
18.3 数据封装
当数据从一台计算机发送到另一台时,在每一层都会被添加该层的头部(Header)信息。这个过程称为封装(Encapsulation)。
应用层数据
↓
传输层:添加TCP/UDP头部 → TCP段
↓
网络层:添加IP头部 → IP数据报
↓
数据链路层:添加帧头和帧尾 → 帧
↓
物理层:转换为比特流 → 信号接收端的处理过程相反——从物理层到应用层,逐层去除头部,提取数据。
18.4 IP协议
IP(Internet Protocol)是互联网的核心协议,负责将数据包从源主机路由到目的主机。
IP地址
IPv4地址:32位,通常表示为四个十进制数(点分十进制),如192.168.1.1。总共约43亿个地址。
IPv6地址:128位,表示为八组十六进制数,如2001:0db8:85a3:0000:0000:8a2e:0370:7334。总共约3.4×10³⁸个地址,足以解决IPv4地址耗尽的问题。
IP地址分类:
- 公网地址:在互联网上唯一可路由
- 私有地址:在局域网内使用,不可在互联网上路由
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
IP数据报
IP数据报由头部和数据两部分组成。头部包含:
- 源IP地址和目的IP地址
- 生存时间(TTL):防止数据包在网络中无限循环
- 协议字段:标识上层协议(TCP=6, UDP=17)
- 校验和:检测头部错误
IP的"尽力而为"
IP是一个无连接、不可靠的协议:
- 无连接:每个数据包独立处理,不需要预先建立连接
- 不可靠:不保证数据包一定到达、不保证顺序、不保证不重复
可靠性由上层的TCP协议来保证。
18.5 TCP协议
TCP(Transmission Control Protocol)是面向连接的、可靠的传输层协议。它在IP的不可靠服务之上,提供了可靠的数据传输。
TCP的可靠机制
序列号和确认:每个字节都有序列号,接收方发送确认(ACK)
超时重传:如果发送方在一定时间内没有收到确认,重新发送数据
排序:接收方根据序列号重新排序乱序到达的数据包
去重:丢弃重复的数据包
流量控制:使用滑动窗口机制,防止发送方发送过快
拥塞控制:根据网络状况调整发送速率
TCP三次握手
建立TCP连接需要三次握手:
客户端 服务器
│ │
│──── SYN (seq=x) ───────→│ 客户端请求连接
│ │
│←─── SYN+ACK (seq=y, │ 服务器同意连接
│ ack=x+1) ──────────│
│ │
│──── ACK (ack=y+1) ────→│ 连接建立
│ │TCP四次挥手
关闭TCP连接需要四次挥手:
客户端 服务器
│ │
│──── FIN ───────────────→│ 客户端请求关闭
│ │
│←─── ACK ───────────────│ 服务器确认
│ │
│←─── FIN ───────────────│ 服务器也请求关闭
│ │
│──── ACK ───────────────→│ 客户端确认
│ │18.6 UDP协议
UDP(User Datagram Protocol)是无连接的、不可靠的传输层协议。它比TCP简单,开销小,延迟低。
UDP的特点:
- 无连接:不需要建立和断开连接
- 不可靠:不保证送达、不保证顺序、不重传
- 无拥塞控制:发送速率不受网络状况限制
- 支持广播和多播
UDP适用于:
- 实时应用(视频通话、在线游戏)——容忍丢包但不能容忍延迟
- DNS查询——简单的请求-响应
- 流媒体——可以容忍一定丢包率
18.7 路由
路由(Routing)是确定数据包从源到目的的路径的过程。路由器根据路由表(Routing Table)做出转发决策。
路由算法
距离向量(Distance Vector):每个路由器维护到所有目的地的距离(跳数)向量。使用Bellman-Ford算法。代表协议:RIP。
链路状态(Link State):每个路由器了解整个网络的拓扑,使用Dijkstra算法计算最短路径。代表协议:OSPF。
路径向量(Path Vector):不仅记录距离,还记录完整路径。用于域间路由。代表协议:BGP。
BGP
BGP(Border Gateway Protocol)是互联网的核心路由协议,负责在不同的自治系统(AS)之间交换路由信息。BGP是一个路径向量协议,每个AS宣告自己可以到达的目的网络,其他AS据此构建路由表。
BGP的安全问题是互联网面临的重要挑战之一——BGP劫持可以导致流量被错误路由。
18.8 DNS
DNS(Domain Name System)是互联网的"电话簿",将人类可读的域名(如www.google.com)转换为机器可读的IP地址。
DNS查询过程
用户输入 www.example.com
操作系统检查本地缓存和hosts文件
如果没有,向本地DNS服务器(通常由ISP提供)发送查询
本地DNS服务器递归或迭代查询:
- 根DNS服务器 → 返回.com顶级域服务器地址
- .com顶级域服务器 → 返回example.com权威DNS服务器地址
- example.com权威DNS服务器 → 返回www.example.com的IP地址
结果返回给用户,并缓存一段时间(TTL)
DNS记录类型
- A记录:域名 → IPv4地址
- AAAA记录:域名 → IPv6地址
- CNAME记录:域名 → 另一个域名(别名)
- MX记录:邮件交换服务器
- NS记录:名称服务器
- TXT记录:文本信息(常用于SPF、DKIM等验证)
DNS安全
DNS最初设计没有安全机制,容易受到DNS欺骗(DNS Spoofing)和DNS放大攻击。DNSSEC(DNS Security Extensions)通过数字签名来验证DNS响应的真实性。
18.9 HTTP与Web
HTTP(HyperText Transfer Protocol)是万维网(World Wide Web)的基础协议。
HTTP的工作方式
HTTP是请求-响应协议:
客户端(浏览器)发送HTTP请求到服务器
服务器处理请求,返回HTTP响应
HTTP请求方法:
- GET:获取资源
- POST:提交数据
- PUT:更新资源
- DELETE:删除资源
- HEAD:获取响应头(不含body)
HTTP响应状态码:
- 2xx:成功(200 OK)
- 3xx:重定向(301 永久重定向,302 临时重定向)
- 4xx:客户端错误(404 Not Found,403 Forbidden)
- 5xx:服务器错误(500 Internal Server Error)
HTTPS
HTTPS(HTTP Secure)是HTTP over TLS/SSL——在HTTP之下加入加密层。
TLS握手过程:
客户端发送ClientHello(支持的加密套件、随机数)
服务器发送ServerHello(选择的加密套件、证书)
客户端验证证书,生成预主密钥,用服务器公钥加密发送
双方根据预主密钥和随机数生成会话密钥
后续通信使用会话密钥加密
HTTP/2和HTTP/3
HTTP/2(2015):
- 二进制分帧(替代HTTP/1.1的文本格式)
- 多路复用(一个TCP连接上并行多个请求-响应)
- 头部压缩(HPACK)
- 服务器推送
HTTP/3(2022):
- 基于QUIC(UDP上的可靠传输)
- 解决TCP的队头阻塞问题
- 更快的连接建立(0-RTT)
- 连接迁移(网络切换不中断)
18.10 CDN与云计算
CDN(Content Delivery Network)将内容缓存到分布在全球的边缘节点,用户从最近的节点获取内容,减少延迟。
云计算将计算资源(服务器、存储、数据库、网络等)作为服务通过互联网提供:
- IaaS(Infrastructure as a Service):虚拟服务器、存储(如AWS EC2)
- PaaS(Platform as a Service):应用运行平台(如Google App Engine)
- SaaS(Software as a Service):应用程序(如Gmail、Office 365)
18.11 物联网(IoT)
物联网将互联网的连接范围从计算机和手机扩展到日常物品——家电、汽车、传感器、穿戴设备等。
物联网的挑战:
- 设备数量巨大(预计2030年超过300亿设备)
- 设备资源受限(低功耗、低计算能力)
- 安全性(许多IoT设备缺乏基本的安全措施)
- 互操作性(不同厂商的设备需要协同工作)
物联网的通信协议:
- MQTT:轻量级发布-订阅协议
- CoAP:受限设备的RESTful协议
- Zigbee/Z-Wave:家庭自动化
- LoRaWAN/NB-IoT:低功耗广域网
18.12 互联网的未来
Web3与去中心化
区块链技术催生了去中心化的互联网愿景——用户拥有自己的数据和数字资产,不依赖中心化平台。
低轨卫星互联网
SpaceX的Starlink、OneWeb等低轨卫星星座正在为全球偏远地区提供高速互联网接入。
6G
预计2030年商用的6G将提供太赫兹频段通信、Tbps级速率、亚毫秒延迟,支持全息通信和数字孪生。
AI与网络
AI正在改变网络的设计、管理和安全:
- 智能路由和流量工程
- 自动化网络运维(AIOps)
- AI驱动的网络安全
重要知识点
知识点一:分层模型管理了网络通信的复杂性
OSI七层模型和TCP/IP四层模型将复杂的网络通信分解为可管理的层次。
知识点二:IP是不可靠的尽力而为服务
IP负责将数据包从源路由到目的,但不保证可靠性。可靠性由TCP在上层保证。
知识点三:TCP提供了可靠的端到端传输
通过序列号、确认、重传、流量控制和拥塞控制,TCP在不可靠的IP之上构建了可靠的传输。
知识点四:DNS将域名转换为IP地址
DNS是互联网的关键基础设施,采用分布式数据库和层次化命名。
知识点五:HTTP/HTTPS是Web的基础
HTTP是请求-响应协议,HTTPS通过TLS加密提供安全性。HTTP/2和HTTP/3大幅提升了性能。
常见误区
误区一:"互联网和万维网是一回事"
互联网(Internet)是网络的基础设施,万维网(WWW)是运行在互联网之上的一种应用。互联网还包括电子邮件、文件传输、即时通信等其他应用。
误区二:"TCP是完美的协议"
TCP有自己的局限性:队头阻塞(一个丢包阻塞所有后续数据)、握手延迟(建立连接需要1-3个RTT)、不适合短连接。这就是为什么HTTP/3选择了基于UDP的QUIC。
误区三:"IPv6会很快取代IPv4"
IPv4地址耗尽的问题通过NAT(网络地址转换)得到了缓解。IPv6的部署进展缓慢,主要因为缺乏杀手级应用和升级成本。
误区四:"网络是安全的"
互联网最初设计时没有考虑安全性。许多协议(DNS、BGP、HTTP)缺乏内置的安全机制。安全是后来"打补丁"加上去的(DNSSEC、BGPsec、HTTPS)。
实践应用
应用一:跟踪网络路径
使用traceroute(Linux/Mac)或tracert(Windows)命令,查看数据包从你的电脑到目标服务器的路径:
traceroute www.google.com应用二:DNS查询
使用dig或nslookup命令查询DNS记录:
dig www.google.com
dig example.com MX应用三:抓包分析
使用Wireshark或tcpdump抓取网络数据包,观察TCP三次握手、HTTP请求-响应等过程。
应用四:测试网络速度
使用speedtest.net或iperf3测试网络带宽和延迟。分析影响网络性能的因素。
本章小结
本章全面介绍了计算机网络和互联网的基本原理:
网络基础:PAN/LAN/MAN/WAN分类,星形/总线/环形/网状拓扑。
分层模型:OSI七层和TCP/IP四层,每层为上层提供服务。
数据封装:数据在每一层被添加头部信息。
IP协议:无连接、不可靠的数据报传输,IPv4和IPv6。
TCP协议:面向连接、可靠的传输,三次握手、四次挥手。
UDP协议:无连接、不可靠但低延迟的传输。
路由:距离向量、链路状态、BGP。
DNS:域名到IP地址的转换,分布式层次数据库。
HTTP/Web:请求-响应协议,HTTPS加密,HTTP/2和HTTP/3。
CDN与云计算:内容分发和计算资源服务化。
物联网:将互联网扩展到日常物品。
未来方向:Web3、卫星互联网、6G、AI与网络。
互联网连接了全世界,但也带来了安全挑战。在下一章中,我们将学习安全与加密——如何保护信息不被窃取和篡改。