网络协议分析:从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
相关推荐
学嵌入式的小杨同学4 小时前
从零打造 Linux 终端 MP3 播放器!用 C 语言实现音乐自由
linux·c语言·开发语言·前端·vscode·ci/cd·vim
EverydayJoy^v^4 小时前
RH134学习进程——十二.运行容器(1)
linux·运维·容器
syseptember4 小时前
Linux网络基础
linux·网络·arm开发
zl_dfq5 小时前
Linux 之 【多线程】(线程的概念、Linux中的线程、页表)
linux
郝亚军5 小时前
如何在Ubuntu和win10/11之间通过samba访问对方的文件
linux·服务器·ubuntu
曦云沐6 小时前
【避坑指南】Ubuntu更新报错“Repository is not signed”的快速修复
linux·ubuntu·docker
带土17 小时前
10. .out文件
linux
STCNXPARM7 小时前
Linux camera之V4L2子系统详解
android·linux·camera·v4l2架构
yueyuexiaokeai17 小时前
linux kernel常用函数整理
linux·c语言
郝亚军9 小时前
ubuntu-18.04.6-desktop-amd64安装步骤
linux·运维·ubuntu