网络协议分析:从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、协议版本)、头部字段(如HostUser-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
相关推荐
草莓熊Lotso32 分钟前
Linux 文件描述符与重定向实战:从原理到 minishell 实现
android·linux·运维·服务器·数据库·c++·人工智能
历程里程碑36 分钟前
Linux22 文件系统
linux·运维·c语言·开发语言·数据结构·c++·算法
wdfk_prog8 小时前
[Linux]学习笔记系列 -- [drivers][input]input
linux·笔记·学习
盟接之桥9 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
忆~遂愿9 小时前
ops-cv 算子库深度解析:面向视觉任务的硬件优化与数据布局(NCHW/NHWC)策略
java·大数据·linux·人工智能
湘-枫叶情缘9 小时前
1990:种下那棵不落叶的树-第6集 圆明园的对话
linux·系统架构
Fcy64810 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满10 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠10 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
Gary Studio10 小时前
rk芯片驱动编写
linux·学习