计算机网络¶
0. 要点汇总¶
本篇文章的要点整理如下
计算机网络:多台计算机互联实现资源共享和信息传递的系统
网络拓扑:网络的物理连接方式,如总线型、星型、环型、网状型
协议:网络通信的规则和约定,规定数据格式、传输顺序、错误处理等
分层模型:将网络功能划分为多个层次,便于设计和实现
OSI七层模型:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
TCP/IP四层模型:网络接口层、网络层、传输层、应用层
IP地址:标识网络中设备的唯一地址,分为IPv4和IPv6
子网掩码:用于划分网络和主机部分
路由:将数据包从源主机转发到目标主机的过程
交换机:数据链路层设备,根据MAC地址转发数据帧
路由器:网络层设备,根据IP地址转发数据包
TCP:面向连接的可靠传输协议,提供流量控制和拥塞控制
UDP:无连接的不可靠传输协议,适用于实时应用
HTTP:超文本传输协议,基于请求-响应模型
HTTPS:安全的HTTP协议,通过SSL/TLS加密传输
DNS:域名系统,将域名解析为IP地址
带宽:网络的传输能力,单位是bps(比特每秒)
延迟:数据从源到目的所需的时间,包括传播延迟、传输延迟、处理延迟、排队延迟
丢包:数据包在传输过程中丢失的现象
拥塞控制:防止网络拥塞的机制
流量控制:控制发送方发送速率的机制
1. 计算机网络基础¶
1.1 网络概述¶
计算机网络的定义
计算机网络是将地理位置不同的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统、网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的系统。
网络的基本功能
资源共享:硬件、软件、数据资源的共享
信息传递:电子邮件、即时通讯、视频会议等
分布式处理:将复杂任务分配到多台计算机上处理
集中管理:对网络资源进行统一管理和监控
网络的分类
按地理范围分类: - 局域网(LAN):范围通常在几公里内,如办公室、校园 - 城域网(MAN):范围通常在城市范围内,如城市光纤网 - 广域网(WAN):范围通常跨越多个城市甚至国家,如互联网
按传输介质分类: - 有线网络:双绞线、光纤、同轴电缆 - 无线网络:Wi-Fi、蓝牙、移动通信网络
按使用范围分类: - 公用网:面向公众提供服务的网络 - 专用网:特定机构内部使用的网络
网络拓扑结构
总线型拓扑:所有设备连接到一条公共总线上
星型拓扑:所有设备连接到中心设备(交换机)
环型拓扑:设备首尾相连形成环形
网状拓扑:设备之间有多条连接路径
树型拓扑:星型拓扑的扩展,形成层次结构
1.2 网络协议¶
协议的定义
协议是为网络通信制定的规则和约定,规定了数据格式、传输顺序、错误处理等。
协议的三要素
语法:数据与控制信息的结构或格式
语义:需要发出何种控制信息,完成何种动作以及做出何种响应
时序:事件实现顺序的详细说明
协议的分层
将网络功能划分为多个层次,每层通过接口向上一层提供服务。
分层的好处
各层独立:各层可以独立修改和实现
灵活性好:各层可以选择不同的实现技术
易于实现和维护:复杂的系统分解为多个相对简单的子系统
促进标准化:各层接口明确,便于标准化
1.3 性能指标¶
速率
速率是数据传输的速率,单位是比特每秒(b/s, bps)。
- 常见的速率:
1 Mbps = 10^6 bps
1 Gbps = 10^9 bps
1 Tbps = 10^12 bps
带宽
带宽原指信号具有的频带宽度,现在常用来表示网络的最大数据传输速率。
吞吐量
吞吐量是单位时间内实际通过网络的数据量,通常小于带宽。
时延
时延是数据从源到目的所需的时间,包括:
传播延迟:电磁波在介质中传播的时间
传输延迟:发送数据所需的时间
处理延迟:路由器处理数据包的时间
排队延迟:数据包在路由器队列中等待的时间
总时延 = 传播延迟 + 传输延迟 + 处理延迟 + 排队延迟
往返时间(RTT)
往返时间是数据从源到目的再返回源所需的时间。
带宽时延积
带宽时延积 = 带宽 × 往返时间
表示链路中能够容纳的数据量。
丢包率
丢包率是丢失的数据包占总数据包的比例。
利用率
利用率是网络实际使用的带宽占总带宽的比例。
2. 网络体系结构¶
2.1 OSI七层模型¶
物理层(Physical Layer - Layer 1)
- 功能:
传输比特流
规定电气特性、机械特性、功能特性、规程特性
- 设备:
中继器:放大和再生信号
集线器:多端口中继器
- 协议:
RS-232
RJ-45
数据链路层(Data Link Layer - Layer 2)
- 功能:
将比特流组织成帧
提供差错控制
提供流量控制
实现介质访问控制
- 设备:
网桥:连接两个网段
交换机:多端口网桥,根据MAC地址转发
- 协议:
以太网(Ethernet)
PPP(Point-to-Point Protocol)
HDLC
网络层(Network Layer - Layer 3)
- 功能:
提供逻辑寻址(IP地址)
路由选择
拥塞控制
- 设备:
路由器:连接不同网络
- 协议:
IP(Internet Protocol)
ICMP(Internet Control Message Protocol)
ARP(Address Resolution Protocol)
OSPF(Open Shortest Path First)
传输层(Transport Layer - Layer 4)
- 功能:
提供端到端通信
提供可靠传输
流量控制
拥塞控制
- 协议:
TCP(Transmission Control Protocol)
UDP(User Datagram Protocol)
会话层(Session Layer - Layer 5)
- 功能:
建立、管理和终止会话
提供会话同步
- 协议:
RPC(Remote Procedure Call)
NFS(Network File System)
表示层(Presentation Layer - Layer 6)
- 功能:
数据格式转换
数据加密解密
数据压缩解压缩
- 协议:
SSL/TLS
JPEG、MPEG
应用层(Application Layer - Layer 7)
- 功能:
为用户应用程序提供网络服务
- 协议:
HTTP/HTTPS
FTP(File Transfer Protocol)
SMTP(Simple Mail Transfer Protocol)
DNS(Domain Name System)
Telnet
SSH
2.2 TCP/IP四层模型¶
网络接口层(Network Interface Layer)
对应OSI模型的物理层和数据链路层。
- 功能:
处理物理传输介质
实现数据链路层功能
- 协议:
以太网
Wi-Fi
ARP
RARP
网络层(Internet Layer)
对应OSI模型的网络层。
- 功能:
提供逻辑寻址
路由选择
- 协议:
IP
ICMP
IGMP
路由协议(RIP、OSPF、BGP)
传输层(Transport Layer)
对应OSI模型的传输层。
- 功能:
提供端到端通信
提供可靠或不可靠传输
- 协议:
TCP
UDP
应用层(Application Layer)
对应OSI模型的会话层、表示层和应用层。
- 功能:
为应用程序提供网络服务
- 协议:
HTTP/HTTPS
FTP
SMTP
DNS
Telnet
SSH
2.3 数据封装与解封装¶
数据封装
从应用层到物理层,每层添加自己的协议头和尾:
应用层:数据 ↓ 传输层:TCP/UDP头 + 数据 ↓ 网络层:IP头 + TCP/UDP头 + 数据 ↓ 数据链路层:帧头 + IP头 + TCP/UDP头 + 数据 + 帧尾 ↓ 物理层:比特流
数据解封装
从物理层到应用层,每层剥离自己的协议头和尾,提取数据。
3. 网络层¶
3.1 IP协议¶
IPv4地址
IPv4地址是32位二进制数,通常表示为点分十进制,如192.168.1.1。
地址分类
A类地址: - 范围:1.0.0.0 ~ 126.255.255.255 - 网络位:8位 - 主机位:24位 - 首字节范围:1 ~ 126
B类地址: - 范围:128.0.0.0 ~ 191.255.255.255 - 网络位:16位 - 主机位:16位 - 首字节范围:128 ~ 191
C类地址: - 范围:192.0.0.0 ~ 223.255.255.255 - 网络位:24位 - 主机位:8位 - 首字节范围:192 ~ 223
D类地址 (组播地址): - 范围:224.0.0.0 ~ 239.255.255.255 - 首字节范围:224 ~ 239
E类地址 (保留地址): - 范围:240.0.0.0 ~ 255.255.255.255 - 首字节范围:240 ~ 255
特殊地址
0.0.0.0:表示本机
255.255.255.255:广播地址
127.0.0.1:环回地址
10.0.0.0 ~ 10.255.255.255:私有地址
172.16.0.0 ~ 172.31.255.255:私有地址
192.168.0.0 ~ 192.168.255.255:私有地址
IPv6地址
IPv6地址是128位二进制数,表示为8组十六进制数,每组4位,如2001:0db8:85a3:0000:0000:8a2e:0370:7334。
IPv6的优势
地址空间大:2^128个地址
简化头部:提高路由效率
支持自动配置
内置安全性
更好的服务质量支持
3.2 子网划分¶
子网掩码
子网掩码用于划分IP地址的网络部分和主机部分。
子网掩码表示方法
点分十进制:如255.255.255.0
CIDR表示法:如/24表示前24位是网络位
子网划分示例
将C类网络192.168.1.0/24划分为4个子网:
每个子网需要2位主机位,网络位变为26位。
子网掩码:255.255.255.192(/26)
- 子网范围:
192.168.1.0/26:192.168.1.0 ~ 192.168.1.63
192.168.1.64/26:192.168.1.64 ~ 192.168.1.127
192.168.1.128/26:192.168.1.128 ~ 192.168.1.191
192.168.1.192/26:192.168.1.192 ~ 192.168.1.255
VLSM(可变长子网掩码)
VLSM允许不同子网使用不同长度的子网掩码,提高地址利用率。
3.3 路由¶
路由的定义
路由是将数据包从源主机转发到目标主机的过程。
路由表
- 路由器维护的路由表包含以下信息:
目的网络地址
子网掩码
下一跳地址
接口
跃点数
路由算法
距离矢量算法: - 代表:RIP - 原理:每个路由器维护到所有目的地的距离,定期与邻居交换信息
链路状态算法: - 代表:OSPF - 原理:每个路由器维护网络的拓扑结构,计算最短路径
路径矢量算法: - 代表:BGP - 原理:结合距离矢量和链路状态的特点
RIP协议
RIP(Routing Information Protocol)是一种距离矢量路由协议。
- 特点:
使用跳数作为度量
最大跳数限制为15
每30秒广播一次路由表
简单但收敛慢
OSPF协议
OSPF(Open Shortest Path First)是一种链路状态路由协议。
- 特点:
使用带宽作为度量
支持VLSM
收敛快
支持区域划分
BGP协议
BGP(Border Gateway Protocol)是一种路径矢量路由协议,用于自治系统之间的路由。
- 特点:
支持大规模网络
使用路径向量防止路由环路
支持丰富的策略
4. 传输层¶
4.1 TCP协议¶
TCP的特点
面向连接:传输前建立连接,传输后释放连接
可靠传输:保证数据无差错、不丢失、不重复、按序到达
面向字节流:将数据视为字节流
全双工通信:支持双向同时传输
流量控制:控制发送方发送速率
拥塞控制:防止网络拥塞
TCP报文段格式
- TCP报文段包含:
源端口和目的端口:各16位
序号:32位
确认号:32位
数据偏移:4位
保留:6位
标志位:URG、ACK、PSH、RST、SYN、FIN
窗口大小:16位
检验和:16位
紧急指针:16位
选项:可变长度
数据:可变长度
TCP连接建立(三次握手)
第一次握手:客户端发送SYN=1、seq=x的报文段
第二次握手:服务器回复SYN=1、ACK=1、seq=y、ack=x+1的报文段
第三次握手:客户端回复ACK=1、seq=x+1、ack=y+1的报文段
TCP连接释放(四次挥手)
第一次挥手:客户端发送FIN=1的报文段
第二次挥手:服务器回复ACK=1的报文段
第三次挥手:服务器发送FIN=1的报文段
第四次挥手:客户端回复ACK=1的报文段
TCP流量控制
流量控制使用滑动窗口机制。
发送窗口大小 = 接收窗口大小 + 拥塞窗口大小
TCP拥塞控制
拥塞控制算法: 1. 慢启动:拥塞窗口从1开始,每经过一个往返时间加倍 2. 拥塞避免:每经过一个往返时间,拥塞窗口增加1 3. 快重传:收到3个重复ACK时立即重传 4. 快恢复:将拥塞窗口减半,进入拥塞避免阶段
4.2 UDP协议¶
UDP的特点
无连接:不需要建立连接
不可靠:不保证数据到达
面向报文:保留报文的边界
无拥塞控制:适合实时应用
头部开销小:仅8字节
UDP报文格式
- UDP报文包含:
源端口和目的端口:各16位
长度:16位
检验和:16位
数据:可变长度
UDP的应用
DNS
VoIP
视频流
在线游戏
TFTP
4.3 TCP与UDP对比¶
特性 |
TCP |
UDP |
|---|---|---|
连接性 |
面向连接 |
无连接 |
可靠性 |
可靠 |
不可靠 |
顺序 |
保证顺序 |
不保证顺序 |
流量控制 |
有 |
无 |
拥塞控制 |
有 |
无 |
头部开销 |
20-60字节 |
8字节 |
传输方式 |
字节流 |
数据报 |
应用场景 |
文件传输、邮件、网页 |
实时应用 |
5. 应用层¶
5.1 DNS¶
DNS的定义
DNS(Domain Name System)是域名系统,将域名解析为IP地址。
域名结构
域名采用层次结构:
- 顶级域名(TLD):
国家顶级域名:.cn、.us、.uk
通用顶级域名:.com、.org、.net、.edu
DNS查询过程
客户端向本地DNS服务器发送查询请求
本地DNS服务器查询缓存,如果命中则返回结果
如果缓存未命中,本地DNS服务器向根DNS服务器查询
根DNS服务器返回顶级域名服务器地址
本地DNS服务器向顶级域名服务器查询
顶级域名服务器返回权威DNS服务器地址
本地DNS服务器向权威DNS服务器查询
权威DNS服务器返回IP地址
本地DNS服务器将结果返回给客户端,并缓存结果
DNS记录类型
A记录:将域名映射到IPv4地址
AAAA记录:将域名映射到IPv6地址
CNAME记录:域名别名
MX记录:邮件交换服务器
NS记录:权威DNS服务器
TXT记录:文本信息
5.2 HTTP/HTTPS¶
HTTP的定义
HTTP(Hypertext Transfer Protocol)是超文本传输协议,用于在Web浏览器和Web服务器之间传输数据。
HTTP请求方法
GET:获取资源
POST:提交数据
PUT:更新资源
DELETE:删除资源
HEAD:获取响应头
OPTIONS:查询支持的请求方法
PATCH:部分更新资源
HTTP状态码
2xx成功: - 200 OK - 201 Created - 204 No Content
3xx重定向: - 301 Moved Permanently - 302 Found - 304 Not Modified
4xx客户端错误: - 400 Bad Request - 401 Unauthorized - 403 Forbidden - 404 Not Found
5xx服务器错误: - 500 Internal Server Error - 502 Bad Gateway - 503 Service Unavailable
HTTPS
HTTPS是安全的HTTP协议,在HTTP基础上添加SSL/TLS加密层。
SSL/TLS握手过程
客户端发送支持的加密算法
服务器选择加密算法并发送证书
客户端验证证书
客户端生成会话密钥并用服务器公钥加密
服务器解密会话密钥
双方使用会话密钥加密通信
HTTP/2
- HTTP/2相比HTTP/1.1的改进:
二进制协议
多路复用
头部压缩
服务器推送
5.3 其他应用层协议¶
FTP
FTP(File Transfer Protocol)是文件传输协议。
- 特点:
支持上传和下载
支持断点续传
使用两个连接:控制连接和数据连接
SMTP
SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议,用于发送邮件。
POP3/IMAP
POP3和IMAP是邮件接收协议。
POP3:下载邮件到本地
IMAP:在服务器上管理邮件
Telnet/SSH
Telnet和SSH是远程登录协议。
Telnet:明文传输,不安全
SSH:加密传输,安全
DHCP
DHCP(Dynamic Host Configuration Protocol)是动态主机配置协议,自动分配IP地址。
NAT
NAT(Network Address Translation)是网络地址转换,将私有地址转换为公有地址。
6. 网络安全¶
6.1 密码学基础¶
对称加密
加密和解密使用相同的密钥。
算法:AES、DES、3DES、RC4
非对称加密
加密和解密使用不同的密钥:公钥和私钥。
算法:RSA、ECC、Diffie-Hellman
哈希函数
将任意长度的输入映射为固定长度的输出。
算法:MD5、SHA-1、SHA-256、SHA-512
数字签名
使用私钥对消息进行签名,使用公钥验证签名。
6.2 网络攻击与防御¶
常见网络攻击
DDoS攻击:分布式拒绝服务攻击
中间人攻击:拦截和篡改通信
SQL注入:在输入中插入恶意SQL代码
XSS攻击:跨站脚本攻击
CSRF攻击:跨站请求伪造
防御措施
使用防火墙
启用HTTPS
输入验证和过滤
使用安全的编程框架
定期更新和打补丁
6.3 VPN¶
VPN的定义
VPN(Virtual Private Network)是虚拟专用网络,通过公共网络建立安全的私有网络。
VPN技术
SSL VPN
IPSec VPN
L2TP VPN
VPN的应用
远程办公
安全访问公司资源
绕过网络审查
7. 网络设备¶
7.1 集线器¶
集线器的特点
工作在物理层
广播发送数据
不支持全双工
容易产生冲突
集线器的缺点
带宽共享
安全性差
效率低
7.2 交换机¶
交换机的特点
工作在数据链路层
根据MAC地址转发数据
支持全双工
支持VLAN
交换机的功能
MAC地址学习
数据帧转发
冗余链路管理
流量监控
VLAN
VLAN(Virtual Local Area Network)是虚拟局域网,将一个物理网络划分为多个逻辑网络。
7.3 路由器¶
路由器的特点
工作在网络层
根据IP地址转发数据包
支持路由协议
支持NAT
路由器的功能
路由选择
数据包转发
网络地址转换
访问控制
8. 应用领域¶
8.1 互联网¶
万维网(WWW)
万维网是基于HTTP协议的分布式信息系统。
电子邮件
电子邮件使用SMTP、POP3、IMAP等协议。
即时通讯
即时通讯使用自定义协议或WebSocket等。
8.2 企业网络¶
Intranet
企业内部网络,使用私有IP地址。
Extranet
企业与合作伙伴之间的网络。
8.3 数据中心¶
网络架构
数据中心采用多层网络架构,提供高带宽、低延迟的连接。
负载均衡
负载均衡将流量分配到多台服务器,提高性能和可靠性。
8.4 物联网¶
物联网协议
CoAP
MQTT
LoRaWAN
边缘计算
在接近数据源的设备上进行计算,减少延迟。
9. 总结与展望¶
计算机网络是现代信息社会的基础设施,连接了全球数十亿设备,改变了人们的工作和生活方式。从OSI模型到TCP/IP协议栈,从路由算法到网络安全,计算机网络技术不断演进,为信息时代的繁荣提供了强有力的支撑。
核心价值
实现资源共享
促进信息交流
支持分布式计算
推动数字化转型
学习建议
理解分层模型和协议栈
掌握TCP/IP协议族
学习配置网络设备
了解网络安全知识
动手实践网络编程
进阶方向
软件定义网络(SDN)
网络功能虚拟化(NFV)
5G/6G网络
边缘计算
网络人工智能
计算机网络技术日新月异,掌握计算机网络知识将让你在信息技术领域拥有更广阔的发展空间。