TCP/IP 模型每层的封装格式

TCP/IP 模型是一个四层网络架构,每一层在数据传输时都会对数据进行封装,添加相应的头部(和尾部)信息。以下是各层的封装格式及关键字段说明:


1. 应用层(Application Layer)

  • 封装格式:取决于具体应用协议(如 HTTP、FTP、DNS、SMTP 等)。

  • 示例

    • HTTP 请求

      plaintext 复制代码
      GET /index.html HTTP/1.1
      Host: www.example.com
      User-Agent: Mozilla/5.0
    • DNS 查询
      包含查询域名、记录类型(A、AAAA、MX 等)和事务 ID。

  • 作用:定义数据内容和应用交互规则。


2. 传输层(Transport Layer)

  • 协议:TCP 或 UDP。

  • 封装格式

    • TCP 段(Segment)

      plaintext 复制代码
      | 源端口 (16 bits) | 目的端口 (16 bits) |
      | 序列号 (32 bits)                 |
      | 确认号 (32 bits)                 |
      | 头部长度 | 保留 | 控制标志 (SYN/ACK/FIN等) | 窗口大小 (16 bits) |
      | 校验和 (16 bits) | 紧急指针 (16 bits)     |
      | 选项 (可选)                       |
      | 数据 (应用层数据)                 |
    • UDP 数据报(Datagram)

      plaintext 复制代码
      | 源端口 (16 bits) | 目的端口 (16 bits) |
      | 长度 (16 bits)   | 校验和 (16 bits)    |
      | 数据 (应用层数据)                 |
  • 关键字段

    • 端口号:标识应用进程(如 80 用于 HTTP)。
    • TCP 特有:序列号、确认号、控制标志(可靠传输)。
    • UDP 更简单,无连接和可靠性保证。

3. 网络层(Internet Layer)

  • 协议:IP(IPv4 或 IPv6)。

  • 封装格式(IPv4 数据包)

    plaintext 复制代码
    | 版本 (4 bits) | 头部长度 (4 bits) | 服务类型 (8 bits) | 总长度 (16 bits)      |
    | 标识 (16 bits)                | 标志 (3 bits) | 片偏移 (13 bits)    |
    | 生存时间 TTL (8 bits) | 协议 (8 bits, e.g., TCP=6, UDP=17) | 头部校验和 (16 bits) |
    | 源 IP 地址 (32 bits)                                           |
    | 目的 IP 地址 (32 bits)                                         |
    | 选项 (可选)                                                    |
    | 数据 (传输层段)                                                |
  • 关键字段

    • 源/目的 IP 地址:标识主机。
    • 协议字段:指示上层协议(TCP/UDP)。
    • TTL:防止数据包无限循环。

  • 协议:以太网(Ethernet)、Wi-Fi(802.11)、PPP 等。

  • 封装格式(以太网帧)

    plaintext 复制代码
    | 前导码 (7 bytes) | 帧开始符 (1 byte) |
    | 目的 MAC 地址 (6 bytes) | 源 MAC 地址 (6 bytes) |
    | 类型 (2 bytes, e.g., IPv4=0x0800, ARP=0x0806)                  |
    | 数据 (IP 数据包)                                               |
    | 帧校验序列 FCS (4 bytes, CRC校验)                              |
  • 关键字段

    • MAC 地址:标识本地网络中的设备。
    • 类型字段:指示上层协议(如 IPv4 或 ARP)。
    • FCS:错误检测。

完整封装流程示例(HTTP over TCP/IP)

  1. 应用层:HTTP 请求 → 添加 HTTP 头部。
  2. 传输层:将 HTTP 数据封装为 TCP 段 → 添加源/目的端口、序列号等。
  3. 网络层:将 TCP 段封装为 IP 数据包 → 添加源/目的 IP 地址。
  4. 链路层:将 IP 数据包封装为以太网帧 → 添加源/目的 MAC 地址和 FCS。

最终数据通过物理介质(如网线)传输,接收方逐层解封装。


关键点总结

  • 分层封装:每层添加自己的头部,形成"洋葱式"结构。
  • 协议标识
    • 链路层通过类型字段标识网络层协议(如 IPv4)。
    • 网络层通过协议字段标识传输层协议(如 TCP)。
    • 传输层通过端口号标识应用层协议(如 HTTP 的 80 端口)。
  • MTU 限制:链路层帧大小有限(如以太网默认 1500 字节),超长的 IP 数据包会被分片。
相关推荐
网络研究院16 天前
2026年网络安全
网络·安全·法律·法规·趋势·发展
酣大智16 天前
ARP代理--工作原理
运维·网络·arp·arp代理
treesforest16 天前
AI安全系统如何识别异常访问?IP风险识别正在成为关键能力
网络·人工智能·tcp/ip·安全·web安全
shushangyun_16 天前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
2601_9618451516 天前
粉笔行测题库|系统班|刷题
网络·百度·微信·微信公众平台·facebook·新浪微博
程序猿阿伟16 天前
《Chrome离线扩展安装的底层逻辑与场景落地指南》
服务器·网络·chrome
InHand云飞小白16 天前
无人值守站点网络困境?工业级路由器IR315破解连接难题
网络·物联网·4g·工业路由器·4g路由器·iiot·蜂窝路由器
森G16 天前
75、服务器源码解析---------云视频服务项目
linux·服务器·网络·c++·qt
江华森16 天前
TCP/IP 协议栈实战 — 7 个实验详解
网络·tcp/ip·智能路由器
酉鬼女又兒16 天前
零基础入门计算机网络运输层:端到端通信核心作用、端口号分类规则、复用分用工作机制及UDP与TCP协议全方位对比详解
网络·网络协议·tcp/ip·计算机网络·考研·udp·php