网络的封包与拆包

发布于:2025-07-05 ⋅ 阅读:(16) ⋅ 点赞:(0)
一、网络的封包和拆包
1. TCP/IP协议的体系结构



  • 分层结构:
    • 应用层(Telnet、FTP、HTTP、DNS、SMTP等)
    • 传输层(TCP/UDP)
    • 网络层(IP、ICMP、IGMP)
    • 网络接口和物理层(以太网、令牌环网、FDDI等)
  • 工业标准:TCP/IP协议是Internet事实上的工业标准,共分为四层结构
  • 空间划分:
    • 应用层运行在用户空间
    • 传输层及以下运行在内核空间
2. 数据的封装与传输过程
  • 封装过程:
    • 应用层:原始用户数据(data)
    • 传输层:添加TCP头(20字节)
    • 网络层:添加IP头(20字节)
    • 物理层:添加以太网头(14字节)和CRC校验(4字节)
  • 传输特点:
    • 每层将上层数据视为透明传输
    • 通过系统调用(socket编程)实现用户空间到内核空间的转换
  • 拆包过程:
    • 硬件接收后存入网卡RAM
    • 驱动逐层拆解:物理层→网络层→传输层→应用层
    • 最终还原原始用户数据(data)
3. TCP/IP协议下的数据包
  • 包结构组成:
    • 以太网头(14字节)
    • IP头(20字节)
    • TCP头(20字节)
    • 应用数据(46-1500字节)
    • CRC校验(4字节)
  • 传输范围:
    • 完整包大小:64-1518字节
    • 有效载荷范围:46-1500字节(从IP头开始计算)
4. 封包和拆包知识点总结
  • 关键概念:
    • MTU(Maximum Transmission Unit):
      • 最大传输单元,由网络类型决定
      • 以太网MTU=1500字节(从IP头到用户数据)
      • 静态参数,仅与网络类型相关
    • MSS(Maximum Segment Size):
      • 最大分段大小,指纯用户数据部分
      • 以太网中MSS=1460字节(当MTU=1500时)
      • 动态参数,受网络线路质量等因素影响
  • 协议开销:
    • 头部信息属于传输开销
    • 实际有效数据仅占部分比例
    • 优化传输应考虑减少协议开销
二、知识小结

知识点

核心内容

考试重点/易混淆点

网络分层模型

工业标准分为四层(应用层、传输层、网络层、物理层),各层协议与作用

区分内核空间(传输层及以下)与用户空间(应用层)

封包与拆包流程

数据从应用层→传输层(加TCP头)→网络层(加IP头)→物理层(加以太网头/CRC校验)的封装过程;接收端逆向拆包

MTU(1500字节)与MSS(1460字节)的区别:前者含协议头,后者仅用户数据

TCP协议特性

FTP基于TCP实现可靠传输,通过头部信息(如TCP头20字节)保障稳定性

TCP头部长度固定,但应用层协议(如FTP)可能附加额外头部

硬件层处理

网卡驱动添加CRC校验(4字节),物理层头部(如以太网头14字节)可能被路由器替换

硬件CRC校验由网卡自动完成,与软件无关

协议头结构

以太网包组成:14字节头+20字节IP头+20字节TCP头+用户数据+4字节CRC

包长范围:64~1518字节(含头部与CRC)


网站公告

今日签到

点亮在社区的每一天
去签到