TCP/IP协议栈详解

TCP/IP 协议栈是互联网通信的基础,采用分层架构设计,是事实上的网络通信标准。

OSI 与 TCP/IP 对照

OSI 七层TCP/IP 四层主要协议数据单元
应用层应用层HTTP、DNS、FTP、SSH、SMTP报文 Message
表示层应用层SSL/TLS、JPEG、ASCII—
会话层应用层NetBIOS、RPC—
传输层传输层TCP、UDP段 Segment / 数据报 Datagram
网络层网络层IP、ICMP、ARP数据包 Packet
数据链路层网络接口层Ethernet、PPP、VLAN帧 Frame
物理层网络接口层双绞线、光纤、Wi-Fi比特 Bit

四层模型

1. 网络接口层 (Network Interface Layer)

  • 功能:负责物理网络传输,处理硬件细节
  • 协议:Ethernet、Wi-Fi、PPP
  • 数据单元:帧 (Frame)
  • 地址:MAC 地址(48 位)

2. 网络层 (Internet Layer)

  • 功能:逻辑寻址和路由选择
  • 核心协议:IP (Internet Protocol)
  • 数据单元:数据包 (Packet)
  • 地址:IP 地址(IPv4/IPv6)
  • 关键协议:
    • IP:无连接、不可靠的数据报传输(尽力而为)
    • ICMP:错误报告和诊断(ping、tracert)
    • ARP:IP 地址到 MAC 地址的映射
    • RARP:MAC 地址到 IP 地址的解析(早期无盘工作站,已被 BOOTP/DHCP 取代)

3. 传输层 (Transport Layer)

  • 功能:端到端通信和可靠性保障
  • 主要协议:

TCP (Transmission Control Protocol)

  • 面向连接、可靠传输
  • 三次握手建立连接,四次挥手释放连接
  • 流量控制(滑动窗口)和拥塞控制(慢开始/拥塞避免/快重传/快恢复)
  • 数据单元:段 (Segment)
  • 端口范围:0-65535

UDP (User Datagram Protocol)

  • 无连接、不可靠传输
  • 简单高效,开销小(头部仅 8 字节)
  • 支持广播和多播
  • 适用于实时应用(语音、视频、游戏)
  • 数据单元:数据报 (Datagram)

4. 应用层 (Application Layer)

  • 功能:为用户提供网络服务
  • 常见协议:
    • HTTP/HTTPS:Web 服务(80/443 端口)
    • FTP:文件传输(20/21 端口)
    • SMTP/POP3/IMAP:邮件服务(25/110/143)
    • DNS:域名解析(53 端口)
    • DHCP:动态主机配置(67/68 端口)
    • SSH:安全远程登录(22 端口)

数据封装与解封装

发送端封装(逐层加头):

应用数据 → [TCP头+数据] → [IP头+TCP头+数据] → [以太网头+IP头+TCP头+数据+FCS] → 比特流

接收端解封装(逐层去头):

比特流 → 数据链路层校验FCS并去帧头 → 网络层查看IP目的地址 → 传输层还原端口 → 应用层还原数据

MTU 与分片:以太网 MTU 通常为 1500 字节,超过则 IP 分片;TCP 通过 MSS 协商避免分片。

端口分类

类别范围说明
知名端口0-1023系统保留,如 HTTP 80、HTTPS 443
注册端口1024-49151应用程序注册使用,如 MySQL 3306
动态/私有端口49152-65535客户端临时分配,用于主动连接

常见协议端口速查

应用传输层端口
Web 浏览TCP80/443
文件传输TCP20/21
域名解析UDP/TCP53
远程登录TCP22 (SSH) / 23 (Telnet)
邮件发送/接收TCP25 / 110、143
DHCPUDP67/68
NTP 时间同步UDP123
SNMPUDP161/162

💡 学习建议:理解协议栈的关键是掌握每一层的功能、数据单元名称和封装过程;配合 Wireshark 抓包观察真实报文。

🔗 相关笔记:01.01_网络基础知识 02.01_网络协议详解 01.03_IPv4地址与子网划分