网络协议分析:从MAC到TCP的奥秘

数据封包与协议头分析

MAC头

位于数据链路层,包含源MAC地址和目标MAC地址,用于局域网内设备间的直接通信。

IP头

  • TTL(生存周期):初始值通常为64,数据包每经过一个网络节点(如路由器)减1。若TTL为0,数据包被丢弃,防止无限循环。
  • IP Flag :
    • D(Don't Fragment):若置1,禁止分片传输。
    • M(More Fragments):若置1,表示后续还有分片;0则为最后一片。

TCP头

  • 控制标志位 :
    • A(ACK):确认应答。
    • P(PSH):推送数据,要求接收方立即处理。
    • R(RST):强制断开连接。
    • S(SYN):发起连接请求。
    • F(FIN):正常终止连接。

UDP头

无连接协议,头部简单,仅包含源端口、目标端口、长度和校验和,不提供可靠性保证。


Wireshark抓包工具使用

启动与设备选择

  • Linux系统通过sudo wireshark启动,选择网络接口:
    • 本机通信选loopback。
    • 外网通信选ens33(或类似网卡名)。
    • 不确定时可选any捕获所有流量。

过滤条件

  • 按IP过滤:ip.addr == 192.0.2.1
  • 按端口过滤:tcp.port == 80 || udp.port == 80

HTTP协议详解

基本概念

  • 用途:传输网页数据,基于TCP实现可靠传递。
  • URL结构 :http://主机名:端口号/路径(默认端口80可省略,如http://news.sohu.com/)。

通信流程

  • 请求报文 :文本格式,包含请求行(方法、URL、协议版本)、头部字段(如Host、User-Agent)、空行及可选正文。
  • HTML:超文本标记语言,浏览器解析后渲染为可视化网页。

关键字段示例

  • 请求方法:GET / HTTP/1.1

  • 头部示例:

    复制代码
    Host: example.com
    User-Agent: Mozilla/5.0

代码与公式规范示例

若需描述校验和计算(如UDP):

  • 校验和公式 :
    \sum_{i=1}^{n} (data_word_i \oplus mask)

Python伪代码示例:

python 复制代码
def calculate_checksum(data):
    checksum = 0
    for word in data:
        checksum += word
    return checksum & 0xFFFF
相关推荐
Nil2081 分钟前
leetcode 139单词拆分
linux·运维·服务器
Starry-sky(jing)5 分钟前
BUG: unable to handle kernel paging request 完整排查:dmesg 四要素与三路定罪
linux·运维·服务器·内核·排障
mounter62511 分钟前
从硬件互连到操作系统变革:CXL 技术演进与 Linux 内核工程挑战
linux·运维·服务器
xh didida2 小时前
Linux -- 基础IO
linux·服务器·开发语言·c++
zly35002 小时前
centos7 mount设备挂载 /dev/sda1/硬盘挂载
linux·运维·服务器
工业一体机老司机3 小时前
工业一体机选购后的系统部署:Ubuntu下Docker容器化运行与GPIO配置
linux·ubuntu·docker·人机交互
哎呦,帅小伙哦3 小时前
进程监控工具——htop
linux·运维·服务器
夏虫不可与之言冰4 小时前
Windows WSL2 (Ubuntu) 搭建 ESP‑IDF 6.1 开发环境全过程演示
linux·windows·ubuntu·esp32·乐鑫科技·乐鑫eim·乐鑫代理商
春涧草茶5 小时前
慢就是快12-12手动抛出异常
java·linux·前端
KING-WU5126 小时前
Linux 工具之Make 与 Makefile
java·linux·服务器