TCP/IP 协议栈(TCP/IP Protocol Stack)

TCP/IP 是互联网的核心协议栈,定义了网络通信的标准。TCP/IP 模型将网络分为四层,是实际使用的网络模型。


什么是 TCP/IP

TCP/IP(Transmission Control Protocol/Internet Protocol)是一组网络通信协议,是互联网的基础。TCP/IP 模型将网络通信分为四层。

TCP/IP 模型的四层结构

应用层(Application Layer)      - 第 4 层
传输层(Transport Layer)        - 第 3 层
网络层(Internet Layer)         - 第 2 层
链路层(Link Layer)             - 第 1 层

各层功能详解

功能:负责在物理网络上传输数据帧

主要任务

  • 物理地址(MAC 地址)寻址
  • 数据帧的封装与解封装
  • 错误检测
  • 介质访问控制

协议

  • 以太网(Ethernet):最常用的局域网协议
  • PPP(Point-to-Point Protocol):点对点协议
  • ARP(Address Resolution Protocol):地址解析协议

数据单位:帧(Frame)

设备:网卡、交换机、集线器


2. 网络层(Internet Layer)

功能:负责数据包的路由和转发

主要任务

  • IP 地址寻址
  • 路由选择
  • 数据包的分片与重组
  • 拥塞控制

协议

  • IP(Internet Protocol):网络层核心协议
  • ICMP(Internet Control Message Protocol):控制消息协议(ping 使用)
  • IGMP(Internet Group Management Protocol):组播管理协议

数据单位:数据包(Packet)

设备:路由器

IP 地址示例

IPv4: 192.168.1.1
IPv6: 2001:0db8:85a3:0000:0000:8a2e:0370:7334

3. 传输层(Transport Layer)

功能:提供端到端的数据传输服务

主要任务

  • 端口号寻址
  • 数据分段与重组
  • 流量控制
  • 可靠性保证(TCP)
  • 错误检测

协议

  • TCP(Transmission Control Protocol):面向连接的可靠传输
  • UDP(User Datagram Protocol):无连接的不可靠传输

数据单位:段(Segment)

端口号范围:0-65535

  • 知名端口:0-1023(如 HTTP 80、HTTPS 443、FTP 21)
  • 注册端口:1024-49151
  • 动态端口:49152-65535

4. 应用层(Application Layer)

功能:为应用程序提供网络服务接口

主要任务

  • 提供用户接口
  • 应用协议定义
  • 各种网络应用服务

协议

  • HTTP/HTTPS:Web 服务(端口 80/443)
  • FTP:文件传输(端口 21)
  • SMTP:邮件发送(端口 25)
  • POP3/IMAP:邮件接收(端口 110/143)
  • DNS:域名解析(端口 53)
  • SSH:安全远程登录(端口 22)
  • Telnet:远程登录(端口 23)

数据单位:数据(Data)


TCP/IP 数据封装过程

发送端封装

应用层数据(HTTP 请求)
    ↓ 添加 TCP 头部(端口号、序列号等)
传输层数据(TCP 段)
    ↓ 添加 IP 头部(源 IP、目标 IP)
网络层数据(IP 数据包)
    ↓ 添加以太网头部(MAC 地址)
链路层数据(以太网帧)
    ↓ 转换为电信号
物理媒介传输

接收端解封装

物理媒介接收
    ↓ 转换为比特流
链路层数据(以太网帧)
    ↓ 移除以太网头部
网络层数据(IP 数据包)
    ↓ 移除 IP 头部
传输层数据(TCP 段)
    ↓ 移除 TCP 头部
应用层数据(HTTP 请求)

TCP/IP 协议族

核心协议

协议层次功能
IP网络层数据包路由和转发
TCP传输层可靠的数据传输
UDP传输层不可靠但快速的数据传输
HTTP应用层Web 服务
HTTPS应用层安全的 Web 服务
FTP应用层文件传输
SMTP应用层邮件发送
DNS应用层域名解析
ARP链路层IP 地址到 MAC 地址的映射

TCP/IP 与 OSI 模型对比

OSI 模型(七层)

应用层
表示层
会话层
传输层
网络层
数据链路层
物理层

TCP/IP 模型(四层)

应用层(对应 OSI 的应用层、表示层、会话层)
传输层(对应 OSI 的传输层)
网络层(对应 OSI 的网络层)
链路层(对应 OSI 的数据链路层、物理层)

实际应用示例

HTTP 请求在 TCP/IP 中的传输

1. 应用层:浏览器生成 HTTP 请求
   GET /index.html HTTP/1.1
   Host: www.example.com

2. 传输层:添加 TCP 头部
   - 源端口:随机端口(如 54321)
   - 目标端口:80(HTTP)
   - 序列号、确认号等

3. 网络层:添加 IP 头部
   - 源 IP:192.168.1.100
   - 目标 IP:93.184.216.34(www.example.com 的 IP)
   - 协议类型:TCP

4. 链路层:添加以太网头部
   - 源 MAC:AA:BB:CC:DD:EE:FF
   - 目标 MAC:路由器 MAC 地址
   - 类型:0x0800(IPv4)

5. 物理层:转换为电信号在网线上传输

常见问题

1. TCP/IP 为什么只有四层?

TCP/IP 模型更注重实用性,将 OSI 模型的上三层合并为应用层,将下两层合并为链路层,简化了模型,更符合实际网络实现。

2. TCP 和 UDP 的区别?

  • TCP:面向连接、可靠、有流量控制和拥塞控制、速度较慢
  • UDP:无连接、不可靠、无流量控制、速度快

3. IP 地址和 MAC 地址的区别?

  • IP 地址:逻辑地址,网络层使用,可以变化(如通过 DHCP)
  • MAC 地址:物理地址,链路层使用,固化在网卡中,全球唯一

总结

TCP/IP 协议栈要点:

  • 四层结构:链路层、网络层、传输层、应用层
  • 核心协议:IP、TCP、UDP 以及各种应用层协议
  • 数据封装:从上到下封装,从下到上解封装
  • 实际应用:互联网的基础协议栈

理解 TCP/IP 协议栈是网络编程和网络问题排查的基础。


相关链接


网络基础 IP 协议栈