计算机网络模型

理解 OSI 七层模型、TCP/IP 四层模型和五层网络模型的结构与协议

问题

如何理解计算机网络模型的分层结构?

解答

网络模型分类

计算机网络的各层及其协议的集合被称为网络的体系结构,主要分为三种模型:

七层网络模型(OSI)

开放式系统互联模型(OSI)是国际标准化组织提出的概念模型,包含应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。

四层网络模型(TCP/IP)

TCP/IP 协议族包含应用层、传输层、网际层、网络接口层,是事实上的国际标准。

五层网络模型

五层模型是学习和开发中最常用的模型,将 TCP/IP 的网络接口层细化为数据链路层和物理层:

  1. 应用层:直接为应用进程提供服务,如 HTTP、FTP、SMTP、DNS 等协议
  2. 传输层:为两台主机中的进程提供通信服务,主要协议为 TCP 和 UDP
  3. 网络层:为两台主机提供通信服务,通过路由选择将数据传递到目标主机
  4. 数据链路层:将 IP 数据报封装成帧,在相邻节点间传送
  5. 物理层:确保数据在各种物理媒介上传输

物理层

物理层定义了与传输媒介相关的接口特性,包括机械特性、电气特性、功能特性和规程特性。

传输媒介分为导引型(双绞线、同轴电缆、光缆)和非导引型(短波、微波)。

信道分类

  • 单工信道:只能单向通信
  • 半双工信道:双向通信但不能同时进行
  • 全双工信道:可同时双向通信

信道复用技术

  • 频分复用(FDM):将总带宽划分为多个子频带
  • 时分复用(TDM):不同时段传输不同信号
  • 统计时分复用(STDM):动态分配时隙,提高利用率
  • 波分复用(WDM):不同波长的光载波在同一光纤中传输
  • 码分复用(CDM):通过不同编码区分各路信号

数据链路层

基本功能

  1. 封装成帧:在数据前后添加首部(SOH)和尾部(EOT),构成完整的帧
  2. 透明传输:使用转义字符 ESC 处理数据中的控制字符
  3. 差错检测:使用循环冗余校验(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 地址的映射关系。查询过程:

  1. 查看本地 ARP 表,如有则直接使用
  2. 如无则广播 ARP 请求
  3. 目标主机单播回复 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)、窗口、校验和、紧急指针等字段。

三次握手

建立连接过程:

  1. 客户端发送 SYN=1,seq=x,进入 SYN-SENT 状态
  2. 服务器回复 SYN=1,ACK=1,ack=x+1,seq=y,进入 SYN-RCVD 状态
  3. 客户端发送 ACK=1,ack=y+1,seq=x+1,进入 ESTABLISHED 状态
  4. 服务器收到确认后进入 ESTABLISHED 状态

四次挥手

释放连接过程:

  1. 客户端发送 FIN=1,seq=u,进入 FIN-WAIT-1 状态
  2. 服务器回复 ACK=1,ack=u+1,seq=v,进入 CLOSE-WAIT 状态
  3. 服务器发送 FIN=1,seq=w,ack=u+1,进入 LAST-ACK 状态
  4. 客户端回复 ACK=1,ack=w+1,seq=u+1,进入 TIME-WAIT 状态
  5. 客户端等待 2MSL 后进入 CLOSED 状态

可靠传输

采用停止等待协议、连续 ARQ 协议和滑动窗口协议。超时重传时间计算:

RTO = RTT_S + 4 × RTT_D
新的 RTT_S = (1-α) × 旧的 RTT_S + α × 新的 RTT 值
新的 RTT_D = (1-β) × 旧的 RTT_D + β × |RTT_S - 新的 RTT 值|

拥塞控制

采用四种算法:

  1. 慢启动:拥塞窗口成倍增长
  2. 拥塞避免:达到阈值后线性增长
  3. 快重传:收到 3 个重复确认立即重传
  4. 快恢复:调整阈值和窗口大小

应用层

DNS 域名系统

将域名转换为 IP 地址。域名分为根域名、顶级域名(国家顶级域名、通用顶级域名、基础结构域名、新顶级域名)和子域名。

FTP 文件传输协议

用于网络文件传输,服务器包含一个主进程和多个从属进程,可同时为多个客户端提供服务。

HTTP 超文本传输协议

定义浏览器如何请求文档以及服务器如何传送文档。配合 URL(统一资源定位符)和 HTML(超文本标记语言)构成万维网基础。

DHCP 动态主机配置协议

提供即插即用联网机制,自动配置 IP 地址、子网掩码、默认路由器和域名服务器等信息。工作流程:

  1. 主机广播发现报文(DHCP DISCOVER)
  2. DHCP 服务器回复提供报文(DHCP OFFER)
  3. 分配临时 IP 地址,设置租用期

关键点

  • 五层网络模型是学习的基础,从下到上依次为物理层、数据链路层、网络层、传输层、应用层
  • 数据链路层使用 MAC 地址标识设备,网络层使用 IP 地址标识主机,传输层使用端口号标识进程
  • TCP 通过三次握手建立连接,四次挥手释放连接,提供可靠的字节流传输服务
  • UDP 无连接、不可靠但开销小,适用于实时性要求高的场景
  • IP 地址分类、子网划分和 CIDR 是网络层地址管理的核心技术