网络协议分析:从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
相关推荐
T1mzhou4 小时前
ARM64 Linux 6.10内核启动流程7-ioremap和readl writel
linux·服务器·c语言
bwz999@88.com4 小时前
Ubuntu Server 24.04 设置中文
linux·运维·ubuntu
fly-975 小时前
Ubuntu FTP/SFTP 报错:找不到匹配的 hostkey 算法 完整解决
linux·ubuntu
Cx330❀5 小时前
【Linux网络】网络层协议 IP :从网络层原理到 Linux 内核源码
linux·运维·服务器·网络·tcp/ip·ai·ai编程
Gl�ria6 小时前
Linux 清理日志常用命令
linux·运维·服务器
天道jimmy6 小时前
VulnHub 系列:HA, Wordy
linux·服务器·web安全
君生我老7 小时前
Linux中调式器gbd/cgdb
linux
两斤牛肉一壶酒7 小时前
opencode 技能加载全挂背后,竟是不用系统的ripgrep
linux
j7~8 小时前
【Linux网络加餐(二)】《进程组,会话,控制终端,作业控制和守护进程》---详解
linux·运维·服务器·守护进程·会话·进程组·控制终端
天道jimmy8 小时前
VulnHub 系列:Prime,1
linux·运维·服务器