网络协议分析:从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
相关推荐
比奇堡派星星26 分钟前
Linux OOM Killer
linux·开发语言·arm开发·驱动开发
wifi chicken1 小时前
Linux 内核开发之单链表的增删查改详解
linux·数据结构·链表
jiuri_12152 小时前
深入理解 Linux 内核同步机制
linux·内核
郝学胜-神的一滴2 小时前
Python数据封装与私有属性:保护你的数据安全
linux·服务器·开发语言·python·程序人生
٩( 'ω' )و2602 小时前
linux--库的制作与原理
linux
海盗12342 小时前
VMware 中 CentOS 7 无法使用 yum 安装 wget 的完整解决方案
linux·运维·centos
gtr20203 小时前
Ubuntu24.04 基于 EtherCAT 的 SVD60N 主站
linux·ethercat
weixin_462446233 小时前
ubuntu真机安装tljh jupyterhub支持跨域iframe
linux·运维·ubuntu
小码吃趴菜3 小时前
select/poll/epoll 核心区别
linux
Ghost Face...3 小时前
深入解析网卡驱动开发与移植
linux·驱动开发