计算机网络模型
理解 OSI 七层模型、TCP/IP 四层模型和五层网络模型的结构与协议
问题
如何理解计算机网络模型的分层结构?
解答
网络模型分类
计算机网络的各层及其协议的集合被称为网络的体系结构,主要分为三种模型:
七层网络模型(OSI)
开放式系统互联模型(OSI)是国际标准化组织提出的概念模型,包含应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
四层网络模型(TCP/IP)
TCP/IP 协议族包含应用层、传输层、网际层、网络接口层,是事实上的国际标准。
五层网络模型
五层模型是学习和开发中最常用的模型,将 TCP/IP 的网络接口层细化为数据链路层和物理层:
- 应用层:直接为应用进程提供服务,如 HTTP、FTP、SMTP、DNS 等协议
- 传输层:为两台主机中的进程提供通信服务,主要协议为 TCP 和 UDP
- 网络层:为两台主机提供通信服务,通过路由选择将数据传递到目标主机
- 数据链路层:将 IP 数据报封装成帧,在相邻节点间传送
- 物理层:确保数据在各种物理媒介上传输
物理层
物理层定义了与传输媒介相关的接口特性,包括机械特性、电气特性、功能特性和规程特性。
传输媒介分为导引型(双绞线、同轴电缆、光缆)和非导引型(短波、微波)。
信道分类:
- 单工信道:只能单向通信
- 半双工信道:双向通信但不能同时进行
- 全双工信道:可同时双向通信
信道复用技术:
- 频分复用(FDM):将总带宽划分为多个子频带
- 时分复用(TDM):不同时段传输不同信号
- 统计时分复用(STDM):动态分配时隙,提高利用率
- 波分复用(WDM):不同波长的光载波在同一光纤中传输
- 码分复用(CDM):通过不同编码区分各路信号
数据链路层
基本功能:
- 封装成帧:在数据前后添加首部(SOH)和尾部(EOT),构成完整的帧
- 透明传输:使用转义字符 ESC 处理数据中的控制字符
- 差错检测:使用循环冗余校验(CRC)生成校验码
PPP 协议
点到点协议是最广泛使用的数据链路层协议,包含 IP 数据报封装方法、链路控制协议(LCP)和网络控制协议(NCP)。
MAC 地址
MAC 地址是 48 位的物理地址,用于在网络中唯一标识网卡。格式为 6 个字节,如 08:00:20:0A:8C:6D,前 3 字节为厂商标识,后 3 字节由厂商分配。
以太网
以太网是使用最广泛的局域网,帧格式包含目的 MAC 地址、源 MAC 地址、类型、数据和校验和。
网络层
IP 协议
IP 数据报格式包含版本、首部长度、总长度、标识、标志、片偏移、生存时间(TTL)、协议、首部校验和、源地址和目的地址等字段。
ARP 协议
地址解析协议用于根据 IP 地址获取 MAC 地址。主机维护 ARP 缓存表,存储 IP 地址与 MAC 地址的映射关系。查询过程:
- 查看本地 ARP 表,如有则直接使用
- 如无则广播 ARP 请求
- 目标主机单播回复 MAC 地址
IP 地址分类
传统 IP 地址分为 A、B、C、D、E 五类:
- A 类:网络号 1-126,每个网络最多 16777215 台主机
- B 类:网络号 128.1-191.255,每个网络最多 65534 台主机
- C 类:网络号 192.0.1-223.255.255,每个网络最多 254 台主机
子网划分
从主机号借用若干位作为子网号,将 IP 地址划分为:网络号 + 子网号 + 主机号。通过子网掩码进行路由选择,例如:
IP 地址:192.168.10.198 11000000.10101000.00001010.11000110
子网掩码:255.255.255.224 11111111.11111111.11111111.11100000
网络地址:192.168.10.192 11000000.10101000.00001010.11000000
CIDR 无类别域间路由
采用无分类的两级编址:网络前缀 + 主机号,使用斜线记法表示,如 128.14.35.7/20。支持路由聚合,减少路由表项目。
专用地址
三个专用地址块只能用于内部通信:
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
NAT 和 VPN
NAT(网络地址转换)允许专用地址主机通过路由器的全球 IP 地址访问互联网。VPN(虚拟专用网)利用公共互联网连接远程专用网,使用 IPSec 加密保证安全。
IPv6
IPv6 地址长度为 128 位,解决 IPv4 地址耗尽问题。
传输层
UDP 协议
用户数据报协议特点:
- 无连接,不保证可靠交付
- 面向报文
- 无拥塞控制
- 支持一对一、一对多、多对一、多对多通信
- 首部开销小,仅 8 字节
首部包含源端口号、目的端口号、长度和校验和。
TCP 协议
传输控制协议特点:
- 面向连接
- 提供可靠交付
- 全双工通信
- 面向字节流
TCP 报文段首部包含源端口、目的端口、序号、确认号、数据偏移、控制位(URG、ACK、PSH、RST、SYN、FIN)、窗口、校验和、紧急指针等字段。
三次握手
建立连接过程:
- 客户端发送 SYN=1,seq=x,进入 SYN-SENT 状态
- 服务器回复 SYN=1,ACK=1,ack=x+1,seq=y,进入 SYN-RCVD 状态
- 客户端发送 ACK=1,ack=y+1,seq=x+1,进入 ESTABLISHED 状态
- 服务器收到确认后进入 ESTABLISHED 状态
四次挥手
释放连接过程:
- 客户端发送 FIN=1,seq=u,进入 FIN-WAIT-1 状态
- 服务器回复 ACK=1,ack=u+1,seq=v,进入 CLOSE-WAIT 状态
- 服务器发送 FIN=1,seq=w,ack=u+1,进入 LAST-ACK 状态
- 客户端回复 ACK=1,ack=w+1,seq=u+1,进入 TIME-WAIT 状态
- 客户端等待 2MSL 后进入 CLOSED 状态
可靠传输
采用停止等待协议、连续 ARQ 协议和滑动窗口协议。超时重传时间计算:
RTO = RTT_S + 4 × RTT_D
新的 RTT_S = (1-α) × 旧的 RTT_S + α × 新的 RTT 值
新的 RTT_D = (1-β) × 旧的 RTT_D + β × |RTT_S - 新的 RTT 值|
拥塞控制
采用四种算法:
- 慢启动:拥塞窗口成倍增长
- 拥塞避免:达到阈值后线性增长
- 快重传:收到 3 个重复确认立即重传
- 快恢复:调整阈值和窗口大小
应用层
DNS 域名系统
将域名转换为 IP 地址。域名分为根域名、顶级域名(国家顶级域名、通用顶级域名、基础结构域名、新顶级域名)和子域名。
FTP 文件传输协议
用于网络文件传输,服务器包含一个主进程和多个从属进程,可同时为多个客户端提供服务。
HTTP 超文本传输协议
定义浏览器如何请求文档以及服务器如何传送文档。配合 URL(统一资源定位符)和 HTML(超文本标记语言)构成万维网基础。
DHCP 动态主机配置协议
提供即插即用联网机制,自动配置 IP 地址、子网掩码、默认路由器和域名服务器等信息。工作流程:
- 主机广播发现报文(DHCP DISCOVER)
- DHCP 服务器回复提供报文(DHCP OFFER)
- 分配临时 IP 地址,设置租用期
关键点
- 五层网络模型是学习的基础,从下到上依次为物理层、数据链路层、网络层、传输层、应用层
- 数据链路层使用 MAC 地址标识设备,网络层使用 IP 地址标识主机,传输层使用端口号标识进程
- TCP 通过三次握手建立连接,四次挥手释放连接,提供可靠的字节流传输服务
- UDP 无连接、不可靠但开销小,适用于实时性要求高的场景
- IP 地址分类、子网划分和 CIDR 是网络层地址管理的核心技术
目录