当前位置: 首页 > article >正文

车载以太网测试-13【网络层-IGMP协议】

目录

  • 1 摘要
  • 2 IGMP协议概述
    • 2.1 IGMP 在 TCP/IP 协议栈中的位置
    • 2.2 IGMP 与以太网的关系
    • 2.3 为什么需要IGMP协议?
    • 2.4 IGMP报文结构
      • 2.4.1 IGMPv1 报文结构
      • 2.4.2 IGMPv2 报文结构
      • 2.4.3 IGMPv3 报文结构
  • 3 IGMP通信原理
    • 3.1 GMP 的通信流程
    • 3.2 IGMP协议完整流程示例
  • 4 总结

1 摘要

IGMP 是 网络层协议,位于 TCP/IP 协议栈的网络层,它依赖于以太网作为底层传输介质,IGMP 报文封装在 IP 数据包中,而 IP 数据包又封装在以太网帧中传输。IGMP 主要用于在 IPv4 网络 中管理组播组成员关系,确保组播数据仅发送给加入组播组的设备。它的主要功能包括:

  1. 组成员管理:主机通过 IGMP 加入或离开组播组。
  2. 组播数据转发:路由器通过 IGMP 了解哪些设备属于哪个组播组,从而优化组播数据的转发。

总之,对于从事汽车行业的工程师来说,掌握IGMP协议也是必不可少的。

2 IGMP协议概述

2.1 IGMP 在 TCP/IP 协议栈中的位置

IGMP(Internet Group Management Protocol) 属于 网络层(Network Layer) 的协议,具体位于 TCP/IP协议栈 的网络层。

OSI 模型层TCP/IP 协议栈层协议示例
应用层(Application)应用层HTTP、FTP、DNS
表示层(Presentation)应用层SSL/TLS
会话层(Session)应用层SIP、RPC
传输层(Transport)传输层TCP、UDP
网络层(Network)网络层IGMP、IP、ICMP、ARP
数据链路层(Data Link)网络接口层Ethernet、PPP
物理层(Physical)网络接口层光纤、电缆

2.2 IGMP 与以太网的关系

虽然 IGMP 是网络层协议,但它依赖于 以太网(Ethernet) 作为其底层传输介质。IGMP 报文封装在 IP 数据包 中,而 IP 数据包又封装在 以太网帧 中。因此,IGMP 报文在以太网中的传输过程如下:

  1. IGMP 报文:网络层协议,封装在 IP 数据包中。
  2. IP 数据包:封装在以太网帧中。
  3. 以太网帧:通过物理介质(如网线、光纤)传输。

IGMP 报文封装示例

层级协议/数据单元描述
网络层IGMP 报文包含组播组成员管理信息
网络层IP 数据包封装 IGMP 报文,指定源和目的 IP 地址
数据链路层以太网帧封装 IP 数据包,指定源和目的 MAC 地址
物理层比特流通过物理介质传输

2.3 为什么需要IGMP协议?

IGMP(Internet Group Management Protocol)协议在组播通信中至关重要,主要原因如下:
1. 管理组播组成员
IGMP允许主机加入或离开组播组,确保只有感兴趣的设备接收组播数据,避免不必要的网络流量。

2. 优化网络资源
通过IGMP,网络设备(如交换机、路由器)能了解哪些设备属于哪个组播组,从而只将组播数据转发给相关设备,减少带宽浪费。

3. 动态组成员管理
IGMP支持动态加入和离开组播组,适应网络环境变化,如设备移动或新设备加入。

4. 支持多种组播应用
IGMP适用于多种组播应用场景,如视频会议、IPTV、在线游戏等,确保数据仅发送给需要的设备。

5. 减少网络拥塞
通过限制组播数据仅发送给加入组的设备,IGMP有效减少网络拥塞,提升整体性能。

6. 提高网络效率
IGMP帮助网络设备维护组播组信息,确保数据高效传输,避免不必要的复制和转发。

7. 支持大规模网络
在大规模网络中,IGMP帮助管理大量组播组和成员,确保数据准确传输到每个成员。

8. 与路由协议协同工作
IGMP与PIM等组播路由协议协同,确保组播数据在网络中正确路由和转发。

IGMP协议通过管理组播组成员、优化网络资源、支持动态成员管理等功能,确保组播通信的高效性和可靠性,是组播通信不可或缺的组成部分。

2.4 IGMP报文结构

IGMP 的报文类型主要包括以下几种:

报文类型描述
成员查询(Membership Query)路由器发送,询问主机是否属于某个组播组。
成员报告(Membership Report)主机发送,告知路由器其组成员身份。
离开组(Leave Group)主机发送,通知路由器其离开组播组的意图(仅 IGMPv2 和 IGMPv3 支持)。

以下是 IGMP报文结构 的表格示例,分别展示了 IGMPv1IGMPv2IGMPv3 的报文字段及其含义。

2.4.1 IGMPv1 报文结构

字段名长度(字节)描述
类型(Type)10x11:成员查询(Membership Query)
0x12:成员报告(Membership Report)
未使用(Unused)1全0,保留字段
校验和(Checksum)2用于检测报文传输中的错误
组播组地址(Group Address)4组播组的IP地址(查询报文中为 0.0.0.0

2.4.2 IGMPv2 报文结构

字段名长度(字节)描述
类型(Type)10x11:成员查询(Membership Query)
0x16:成员报告(Membership Report)
0x17:离开组(Leave Group)
最大响应时间(Max Response Time)1主机响应查询报文的最大时间(单位:0.1秒)
校验和(Checksum)2用于检测报文传输中的错误
组播组地址(Group Address)4组播组的IP地址(查询报文中为 0.0.0.0

2.4.3 IGMPv3 报文结构

IGMPv3 支持源特定组播(SSM),报文结构更复杂,分为 查询报文报告报文

  1. IGMPv3 查询报文
字段名长度(字节)描述
类型(Type)10x11:成员查询(Membership Query)
最大响应时间(Max Response Time)1主机响应查询报文的最大时间(单位:0.1秒)
校验和(Checksum)2用于检测报文传输中的错误
组播组地址(Group Address)4组播组的IP地址(一般查询为 0.0.0.0,特定组查询为组播组地址)
S标志(S Flag)1位指示是否抑制路由器处理
QRV(Querier’s Robustness Variable)3位查询者的健壮性变量
QQIC(Querier’s Query Interval Code)1字节查询间隔代码
源地址数量(Number of Sources)2字节指定源地址的数量(仅特定组查询有效)
源地址(Source Addresses)4字节 × N源地址列表(仅特定组查询有效)
  1. IGMPv3 报告报文
字段名长度(字节)描述
类型(Type)10x22:成员报告(Membership Report)
保留(Reserved)1全0,保留字段
校验和(Checksum)2用于检测报文传输中的错误
保留(Reserved)2全0,保留字段
组记录数量(Number of Group Records)2字节组记录的数量
组记录(Group Records)可变长度每个组记录包含组播组地址、源地址列表和记录类型等信息
  1. 组记录(Group Record)结构
字段名长度(字节)描述
记录类型(Record Type)1组记录类型(如 MODE_IS_INCLUDEMODE_IS_EXCLUDE 等)
辅助数据长度(Aux Data Len)1辅助数据的长度(通常为0)
源地址数量(Number of Sources)2字节源地址的数量
组播组地址(Multicast Address)4字节组播组的IP地址
源地址(Source Addresses)4字节 × N源地址列表
辅助数据(Auxiliary Data)可变长度辅助数据(通常为空)

以上表格展示了 IGMPv1IGMPv2IGMPv3 的报文结构。IGMPv3 的报文结构更为复杂,支持源特定组播(SSM),适用于更灵活的组播场景。

3 IGMP通信原理

IGMP(Internet Group Management Protocol) 是一种用于管理组播组成员的协议,主要应用于 IPv4 网络 中。它的工作原理是通过路由器/交换机与主机之间的交互,动态维护组播组成员关系,确保组播数据仅发送给加入组播组的设备。以下是 IGMP 协议的工作原理详解:

3.1 GMP 的通信流程

IGMP 协议通过路由器/交换机与主机之间的交互,动态维护组播组成员关系,确保组播数据仅发送给需要的设备。它的工作原理包括成员查询、成员报告和离开组报文,支持动态组成员管理和高效数据转发。IGMP 的不同版本(v1、v2、v3)在功能和报文结构上有所改进,适用于不同的组播场景。IGMP 的工作流程主要包括以下步骤:

(1)路由器发送成员查询(Membership Query)

  • 路由器定期向局域网发送 IGMP 成员查询报文,询问网络中的主机是否属于某个组播组。
  • 查询报文分为两种:
    • 一般查询(General Query):询问所有组播组。
    • 特定组查询(Group-Specific Query):询问特定组播组。

(2)主机响应成员报告(Membership Report)

  • 主机收到查询报文后,如果属于某个组播组,会发送 IGMP 成员报告报文,告知路由器其组成员身份。
  • 主机也可以在加入新组播组时主动发送成员报告报文,无需等待查询。

(3)主机离开组播组(Leave Group)

  • 当主机不再需要接收某个组播组的数据时,会发送 IGMP 离开组报文(IGMPv2 和 IGMPv3 支持),通知路由器其离开意图。
  • 路由器收到离开组报文后,会发送特定组查询,确认是否还有其他主机属于该组播组。

(4)路由器维护组播组信息

  • 路由器根据主机的成员报告和离开组报文,动态维护组播组成员信息。
  • 如果某个组播组没有成员,路由器会停止向该组播组转发数据。

3.2 IGMP协议完整流程示例

以下是一个车载以太网通过 IGMP协议 实现组播数据交互的完整流程示例,包含详细的报文数据。
假设场景如下:

  • 网络设备
    • 车载网关(路由器):IP地址 192.168.1.1,MAC地址 00:1A:2B:3C:4D:5E
    • 车载设备 Host A:IP地址 192.168.1.2,MAC地址 00:1B:2C:3D:4E:5F
    • 车载设备 Host B:IP地址 192.168.1.3,MAC地址 00:1C:2D:3E:4F:5A
  • 组播组地址239.255.10.1
  • IGMP版本:IGMPv2
  • 组播数据:车载传感器数据(例如车速、温度等)

1. 车载网关发送IGMP一般查询(General Query)
车载网关定期发送IGMP一般查询报文,询问网络中的设备是否属于任何组播组。

  • 报文数据

    • 目的MAC地址01:00:5E:00:00:01(组播MAC地址,对应IP地址 224.0.0.1
    • 目的IP地址224.0.0.1(所有主机的组播地址)
    • 源IP地址192.168.1.1(车载网关的IP地址)
    • IGMP字段
      • 类型0x11(成员查询)
      • 最大响应时间10(单位:0.1秒,即1秒)
      • 校验和0xABCD(示例值)
      • 组播组地址0.0.0.0(一般查询,组播组地址为0)
  • 报文示例

    Ethernet Header:Destination MAC: 01:00:5E:00:00:01Source MAC: 00:1A:2B:3C:4D:5E
    IP Header:Destination IP: 224.0.0.1Source IP: 192.168.1.1
    IGMP Payload:Type: 0x11Max Response Time: 10Checksum: 0xABCDGroup Address: 0.0.0.0
    

2. Host A响应IGMP成员报告(Membership Report)
Host A属于组播组 239.255.10.1,发送IGMP成员报告报文,告知车载网关其组成员身份。

  • 报文数据

    • 目的MAC地址01:00:5E:7F:0A:01(组播MAC地址,对应IP地址 239.255.10.1
    • 目的IP地址239.255.10.1(组播组地址)
    • 源IP地址192.168.1.2(Host A的IP地址)
    • IGMP字段
      • 类型0x16(IGMPv2成员报告)
      • 最大响应时间0(成员报告中该字段为0)
      • 校验和0x1234(示例值)
      • 组播组地址239.255.10.1
  • 报文示例

    Ethernet Header:Destination MAC: 01:00:5E:7F:0A:01Source MAC: 00:1B:2C:3D:4E:5F
    IP Header:Destination IP: 239.255.10.1Source IP: 192.168.1.2
    IGMP Payload:Type: 0x16Max Response Time: 0Checksum: 0x1234Group Address: 239.255.10.1
    

3. Host B主动加入组播组
Host B决定加入组播组 239.255.10.1,主动发送IGMP成员报告报文。

  • 报文数据

    • 目的MAC地址01:00:5E:7F:0A:01(组播MAC地址,对应IP地址 239.255.10.1
    • 目的IP地址239.255.10.1(组播组地址)
    • 源IP地址192.168.1.3(Host B的IP地址)
    • IGMP字段
      • 类型0x16(IGMPv2成员报告)
      • 最大响应时间0
      • 校验和0x5678(示例值)
      • 组播组地址239.255.10.1
  • 报文示例

    Ethernet Header:Destination MAC: 01:00:5E:7F:0A:01Source MAC: 00:1C:2D:3E:4F:5A
    IP Header:Destination IP: 239.255.10.1Source IP: 192.168.1.3
    IGMP Payload:Type: 0x16Max Response Time: 0Checksum: 0x5678Group Address: 239.255.10.1
    

4. 车载网关转发组播数据
车载网关开始向组播组 239.255.10.1 转发车载传感器数据(例如车速、温度等)。

  • 报文数据

    • 目的MAC地址01:00:5E:7F:0A:01(组播MAC地址,对应IP地址 239.255.10.1
    • 目的IP地址239.255.10.1(组播组地址)
    • 源IP地址192.168.1.1(车载网关的IP地址)
    • 数据内容车速:60 km/h,温度:25°C
  • 报文示例

    Ethernet Header:Destination MAC: 01:00:5E:7F:0A:01Source MAC: 00:1A:2B:3C:4D:5E
    IP Header:Destination IP: 239.255.10.1Source IP: 192.168.1.1
    Data Payload:车速:60 km/h,温度:25°C
    

5. Host A和Host B接收组播数据
Host A和Host B作为组播组 239.255.10.1 的成员,接收并处理组播数据。

  • Host A接收的报文

    Ethernet Header:Destination MAC: 01:00:5E:7F:0A:01Source MAC: 00:1A:2B:3C:4D:5E
    IP Header:Destination IP: 239.255.10.1Source IP: 192.168.1.1
    Data Payload:车速:60 km/h,温度:25°C
    
  • Host B接收的报文

    Ethernet Header:Destination MAC: 01:00:5E:7F:0A:01Source MAC: 00:1A:2B:3C:4D:5E
    IP Header:Destination IP: 239.255.10.1Source IP: 192.168.1.1
    Data Payload:车速:60 km/h,温度:25°C
    

6. Host A离开组播组
Host A不再需要接收组播组 239.255.10.1 的数据,发送IGMP离开组报文。

  • 报文数据

    • 目的MAC地址01:00:5E:00:00:02(组播MAC地址,对应IP地址 224.0.0.2
    • 目的IP地址224.0.0.2(所有路由器的组播地址)
    • 源IP地址192.168.1.2(Host A的IP地址)
    • IGMP字段
      • 类型0x17(IGMPv2离开组)
      • 最大响应时间0
      • 校验和0x9ABC(示例值)
      • 组播组地址239.255.10.1
  • 报文示例

    Ethernet Header:Destination MAC: 01:00:5E:00:00:02Source MAC: 00:1B:2C:3D:4E:5F
    IP Header:Destination IP: 224.0.0.2Source IP: 192.168.1.2
    IGMP Payload:Type: 0x17Max Response Time: 0Checksum: 0x9ABCGroup Address: 239.255.10.1
    

7. 车载网关发送特定组查询(Group-Specific Query)
车载网关收到Host A的离开组报文后,发送特定组查询报文,确认是否还有其他设备属于组播组 239.255.10.1

  • 报文数据

    • 目的MAC地址01:00:5E:7F:0A:01(组播MAC地址,对应IP地址 239.255.10.1
    • 目的IP地址239.255.10.1(组播组地址)
    • 源IP地址192.168.1.1(车载网关的IP地址)
    • IGMP字段
      • 类型0x11(成员查询)
      • 最大响应时间10(单位:0.1秒,即1秒)
      • 校验和0xDEF0(示例值)
      • 组播组地址239.255.10.1
  • 报文示例

    Ethernet Header:Destination MAC: 01:00:5E:7F:0A:01Source MAC: 00:1A:2B:3C:4D:5E
    IP Header:Destination IP: 239.255.10.1Source IP: 192.168.1.1
    IGMP Payload:Type: 0x11Max Response Time: 10Checksum: 0xDEF0Group Address: 239.255.10.1
    

8. Host B响应特定组查询
Host B仍然属于组播组 239.255.10.1,发送IGMP成员报告报文。

  • 报文数据

    • 目的MAC地址01:00:5E:7F:0A:01(组播MAC地址,对应IP地址 239.255.10.1
    • 目的IP地址239.255.10.1(组播组地址)
    • 源IP地址192.168.1.3(Host B的IP地址)
    • IGMP字段
      • 类型0x16(IGMPv2成员报告)
      • 最大响应时间0
      • 校验和0x5678(示例值)
      • 组播组地址239.255.10.1
  • 报文示例

    Ethernet Header:Destination MAC: 01:00:5E:7F:0A:01Source MAC: 00:1C:2D:3E:4F:5A
    IP Header:Destination IP: 239.255.10.1Source IP: 192.168.1.3
    IGMP Payload:Type: 0x16Max Response Time: 0Checksum: 0x5678Group Address: 239.255.10.1
    

以上流程展示了车载以太网通过IGMP协议实现组播数据交互的完整过程,包括一般查询、成员报告、组播数据转发、离开组和特定组查询的报文数据。通过IGMP协议,车载网络能够高效管理组播组成员,确保组播数据仅发送给需要的设备。

4 总结

以上是对IGMP协议在以太网协议栈的位置、IGMP协议的作用、IGMP报文结构、通信原理以及示例进行了详细介绍。希望能对大家学习车载以太网有所帮助!

相关文章:

车载以太网测试-13【网络层-IGMP协议】

目录 1 摘要2 IGMP协议概述2.1 IGMP 在 TCP/IP 协议栈中的位置2.2 IGMP 与以太网的关系2.3 为什么需要IGMP协议?2.4 IGMP报文结构2.4.1 IGMPv1 报文结构2.4.2 IGMPv2 报文结构2.4.3 IGMPv3 报文结构 3 IGMP通信原理3.1 GMP 的通信流程3.2 IGMP协议完整流程示例 4 总…...

2024山东大学计算机复试上机真题

2024山东大学计算机复试上机真题 2024山东大学计算机复试机试真题 历年山东大学计算机复试上机真题 历年山东大学计算机复试机试真题 在线评测:传动门:pgcode.cn 最长递减子序列 题目描述 输入数字 n,和 n 个整数,输出该数字…...

Vue 计算属性与 Data 属性同名问题深度解析

文章目录 1. 问题背景与核心概念1.1 Vue 响应式系统架构1.2 核心概念定义 2. 同名问题的技术分析2.1 同名场景示例2.2 问题发生机制 3. 底层原理剖析3.1 Vue 初始化流程3.2 响应式系统关键代码 4. 问题解决方案4.1 最佳实践建议4.2 错误处理机制 5. 性能影响分析5.1 递归调用性…...

深入理解 Xtensa 架构 ESP32 内存架构(SRAM、IRAM、IROM、DRAM、DROM详解)

在 ESP32 及其他 Xtensa 架构 MCU 中,内存被划分为不同的区域,以优化性能和存储管理。这些内存区域包括 SRAM, IRAM, DRAM, IROM, DROM,它们各有用途。 1. 内存区域总览 ESP32 的内存架构主要由: SRAM(Static RAM&am…...

每日一题——63. 不同路径 II

题目链接&#xff1a;63. 不同路径 II - 力扣&#xff08;LeetCode&#xff09; 代码&#xff1a; class Solution { public:int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) {int m obstacleGrid.size();int n obstacleGrid[0].size();…...

如何配置 Docker 以实现无需 sudo 使用

1. 背景知识&#xff1a;为什么需要 sudo&#xff1f; Docker 是一个容器化平台&#xff0c;其核心组件包括&#xff1a; Docker 守护进程&#xff08;dockerd&#xff09;&#xff1a;负责管理容器的创建、运行和销毁。Docker CLI&#xff1a;用户通过命令行工具&#xff08…...

[文献阅读] 可变形卷积DCN - Deformable Convolutional Networks

**文献信息&#xff1a;**Deformable Convolutional Networks arxiv.org/abs/1703.06211 发表于ICCV 2017&#xff0c;提出了可变形卷积DCN&#xff08;Deformable ConvNets&#xff09; 摘要 卷积神经网络&#xff08;CNN&#xff09;由于其构建模块固定的几何结构天然地局限…...

【统计学相关笔记】2. 多元正态的Cochran定理

fisher 引理 如何说明一个线性变换和二次型独立&#xff1a; 二次型矩阵和线性变换阵乘积0即可。...

蓝桥杯刷题——第十五届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组

一、0握手问题 - 蓝桥云课 算法代码&#xff1a; #include <iostream> using namespace std; int main() {int sum0;for(int i49;i>7;i--)sumi;cout<<sum<<endl;return 0; } 直接暴力&#xff0c;题意很清晰&#xff0c;累加即可。 二、0小球反弹 - 蓝…...

Canoe Panel常用控件

文章目录 一、Panel 中控件分类1. 指示类控件2. 功能类控件3. 信号值交互类控件4. 其他类控件 二、控件使用方法1. Group Box 控件2. Input/Output Box控件3. Static Text控件4. Button控件5. Switch/Indicator 控件 提示&#xff1a;Button 和 Switch 的区别参考 一、Panel 中…...

【软考-架构】11.3、设计模式-新

✨资料&文章更新✨ GitHub地址&#xff1a;https://github.com/tyronczt/system_architect 文章目录 项目中的应用设计模式创建型设计模式结构型设计模式行为型设计模式 &#x1f4af;考试真题题外话 项目中的应用 在实际项目中&#xff0c;我应用过多种设计模式来解决不同…...

【后端】【django】Django 自带的用户系统与 RBAC 机制

Django 自带的用户系统与 RBAC 机制 Django 自带的用户系统&#xff08;django.contrib.auth&#xff09;提供了 身份验证&#xff08;Authentication&#xff09; 和 权限管理&#xff08;Authorization&#xff09;&#xff0c;能够快速实现 用户管理、权限控制、管理员后台…...

洛谷每日1题-------Day20__P1401 [入门赛 #18] 禁止在 int 乘 int 时不开 long long

题目描述 在比赛中&#xff0c;根据数据范围&#xff0c;分析清楚变量的取值范围&#xff0c;是非常重要的。int 类型变量与 int 类型变量相乘&#xff0c;往往可能超出 int 类型可以表示的取值范围。 现在&#xff0c;给出两个 int 类型变量 x,y 及其取值范围&#xff0c;请…...

【大模型(LLMs)RAG 检索增强生成 面经】

1 RAG 基础面 1.1 为什么大模型需要外挂 (向量) 知识库? 如何将外部知识注入大模型,最直接的方法:利用外部知识对大模型进行微调。 思路: 构建几十万量级的数据,然后利用这些数据 对大模型进行微调,以将 额外知识注入大模型 优点: 简单粗暴 缺点: 这几十万量级的数据…...

Centos 7 安装达梦数据库

一、环境准备 1. 确认操作系统的版本和数据库的版本是否一致 cat /etc/redhat-release 2. 关闭防火墙 查看防火墙状态 firewall-cmd --state 停止firewall systemctl stop firewalld.service 禁止firewall开机启动 systemctl disable firewalld.service 3. 修改文件l…...

@Autowired 注解在构造器上的使用规则(字段注入也挺好的)

背景 在看Spring Framework官方文档时&#xff0c;看到这样一段描述&#xff1a; As of Spring Framework 4.3, an Autowired​ annotation on such a constructor is no longer necessary if the target bean defines only one constructor to begin with. However, if seve…...

深度学习视觉2D检测算法综述

目录 一、两阶段目标检测算法 1.1 R-CNN&#xff08;Region-based CNN&#xff0c;2014&#xff09; 1.2 Fast R-CNN&#xff08;Fast Region-based CNN&#xff0c;2015&#xff09; 1.3 Faster R-CNN&#xff08;Faster Region-based CNN&#xff0c;2016&#xff09; 1…...

复试不难,西电马克思主义学院—考研录取情况

01、马克思主义学院各个方向 02、24马克思主义学院近三年复试分数线对比 PS&#xff1a;马院24年院线相对于23年院线增加15分&#xff0c;反映了大家对于马克思主义理论学习与研究的热情高涨&#xff0c;也彰显了学院在人才培养、学科建设及学术研究等方面的不断进步与成就。 6…...

Axios 请求取消:从原理到实践

Axios 请求取消&#xff1a;从原理到实践 在现代前端开发中&#xff0c;网络请求是不可或缺的一部分。Axios 是一个基于 Promise 的 HTTP 客户端&#xff0c;广泛应用于浏览器和 Node.js 环境中。然而&#xff0c;在某些场景下&#xff0c;我们可能需要取消正在进行的请求&…...

【Leetcode 每日一题】3306. 元音辅音字符串计数 I

问题背景 给你一个字符串 w o r d word word 和一个 非负 整数 k k k。 返回 w o r d word word 的 子字符串 中&#xff0c;每个元音字母&#xff08;‘a’、‘e’、‘i’、‘o’、‘u’&#xff09;至少 出现一次&#xff0c;并且 恰好 包含 k k k 个辅音字母的子字符串…...

【A2DP】深入解读A2DP中通用访问配置文件(GAP)的互操作性要求

目录 一、模式支持要求 1.1 发现模式 1.2 连接模式 1.3 绑定模式 1.4 模式间依赖关系总结 1.5 注意事项 1.6 协议设计深层逻辑 二、安全机制&#xff08;Security Aspects&#xff09; 三、空闲模式操作&#xff08;Idle Mode Procedures&#xff09; 3.1 支持要求 …...

分享一个免费的CKA认证学习资料

关于CKA考试 CKA&#xff08;Certified Kubernetes Administrator&#xff09;是CNCF基金会&#xff08;Cloud Native Computing Foundation&#xff09;官方推出的Kubernetes管理员认证计划&#xff0c;用于证明持有人有履行Kubernetes管理的知识&#xff0c;技能等相关的能力…...

观成科技:​加密C2框架Platypus流量分析

一、工具介绍 Platypus 是一款支持多会话的交互式反向 Shell 管理器。在实际的渗透测试中&#xff0c;为了解决 Netcat/Socat 等工具在文件传输、多会话管理方面的不足,该工具在多会话管理的基础上增加了在渗透测试中能更好发挥作用的功能&#xff08;如&#xff1a;交互式 Sh…...

Jetson Nano NX 重装系统

本篇记录了自己刚拿到Jetson板子后&#xff0c;刻意去学习给板子重刷系统的过程&#xff0c;学会重装系统是玩嵌入式开发板的基操。 注意&#xff1a;我使用的是 Nvidia 官方 SDK Manager 给 Jetson 刷系统的&#xff0c;需要额外准备一台 linux 电脑&#xff08;双系统或者虚拟…...

注解+AOP实现权限控制

注解与AOP实战&#xff1a;实现权限控制 在现代Java开发中&#xff0c;注解&#xff08;Annotation&#xff09;和面向切面编程&#xff08;AOP&#xff09;是两种强大的技术&#xff0c;它们能够帮助我们实现代码的解耦&#xff0c;提高代码的可读性和可维护性。本文将通过一…...

Java数据结构第二十三期:Map与Set的高效应用之道(二)

专栏&#xff1a;Java数据结构秘籍 个人主页&#xff1a;手握风云 目录 一、哈希表 1.1. 概念 1.2. 冲突 1.3. 避免冲突 1.4. 解决冲突 1.5. 实现 二、OJ练习 2.1. 只出现一次的数字 2.2. 随机链表的复制 2.3. 宝石与石头 一、哈希表 1.1. 概念 顺序结构以及平衡树中…...

linux系统命令——权限

一、有哪些权限 读&#xff08;r&#xff09;——对应数字4 写&#xff08;w&#xff09;——对应数字2 执行&#xff08;x&#xff09;——对应数字1 二、权限及数字的对应 4对应r-- 2对应-w- 1对应--x 5对应r-x 6对应rw- 7对应rwx 三、文件的基本属性 如图&#…...

设计模式-工厂模式、策略模式、代理模式、责任链模式

目录 1 工厂模式 1.1 简单工厂模式 1.2 工厂方法模式 1.3 抽象工厂模式 1.4 工厂模式适用的场合 1.5 三种工厂模式的使用选择 2 策略模式 2.1 定义 2.2 结构 3 代理模式 3.1 啥是代理模式 3.2 为啥要用代理模式 3.3 代理模式分类 3.3.1 静态代理 3.3.2 动态代理…...

nginx中间件部署

普通权限账户安装NGINX中间件 1、拥有高级权限的账户安装必要的插件 sudo yum install -y gcc-c make pcre pcre-devel zlib zlib-devel openssl openssl-devel 2、普通账户进行NGINX的脚本式安装 vi nginx_intall.sh #!/bin/bash TAR_NAME"$1" TAR_NAME_DIRba…...

PentestGPT 下载

PentestGPT 下载 PentestGPT 介绍 PentestGPT&#xff08;Penetration Testing GPT&#xff09;是一个基于大语言模型&#xff08;LLM&#xff09;的智能渗透测试助手。它结合了 ChatGPT&#xff08;或其他 GPT 模型&#xff09;与渗透测试工具&#xff0c;帮助安全研究人员自…...