USB接口虚拟网卡
1 基本概念
1.1 USB转以太网
- ASIX
4-byte length header before every ethernet packet.
- Microchip LAN7800
128x32 bit Descriptor RAM, 32 bits DP_DATA address offset 030h for Descriptor RAM access.
- Windows CMD参数格式:
route /? -> Linux -h
getmac /V -> Linux -V
- Windows CMD: ping ip -l 1024 -w timeout, timeout unit: milliseconds
- Windows SocketTool
- Linux TCP Server: busybox nc -lvz -s 192.168.0.10 -p 8001
1.2 SR9900
USB网卡SR9900使用外接的SPI Flash模拟成CDROM。
1.3 RT3070 USB PDMA
1)CAST 8051 and USB core come from Poland Evatronix SA (OTG 3.0 spec), Evatronix SA was acquired by Cadence in 2013.
2)MT7620中的WiFi模块和CAST CUSB2来自于RT3070,并且保持了同样的寄存器映射。
3)CUSB2中的PDMA(Packet DMA)硬件上支持Bulk Out WiFi报文聚合加速。
4)集成了8051单片机。
2 ECM
- 驱动文件路径drivers/net/usb/cdc_ether.c;
- 包含MAC头,需要MAC地址,由eth_random_addr(u8 *addr)产生;
- ECM虚拟网卡host和device端的MAC地址,都由device端生成,并且host_mac通过USB字符串描述符(字符串索引是iMACAddress)传给host;
- 传输的是纯粹的以太网包,一次USB传输只包含一个以太网帧。
3 EEM
- 包含MAC头,需要MAC地址,由eth_random_addr(u8 *addr)产生;
- 每个EEM报文有2个字节的EEM报头,每个EEM报文只包含一个以太网帧;报头由代码中的wrap()和unwrap()处理。
4 MBIM
- 不包含MAC头,Raw IP mode。
5 NCM
- 包含MAC头,需要MAC地址,由eth_random_addr(u8 *addr)产生;
- NCM虚拟网卡host和device端的MAC地址,都由device端生成,并且host_mac通过USB字符串描述符(字符串索引是iMACAddress)传给host;
- 每个NCM报文有12个字节的NCM报头和不定长的NDP报头,每个NCM报文可以包含多个以太网帧,这种特性称为报文聚合,即调用一次URB可以发送或者接收多个IP报文。报头由代码中的wrap()和unwrap()处理。
6 RNDIS
- 包含MAC头,需要MAC地址,由eth_random_addr(u8 *addr)产生;
- RNDIS虚拟网卡host和device端的MAC地址,都由device端生成,并且host_mac通过控制传输传给host;
- 每个RNDIS报文有RNDIS报头,每个RNDIS报文可以包含多个以太网帧(MaxPacketsPerTransfer),这种特性称为报文聚合,即调用一次URB可以发送或者接收多个IP报文。
7 RMNET
7.1 RMNET
- 不包含MAC头,Raw IP mode;
- device端MAC地址由eth_random_addr(u8 *addr)产生;host端的MAC地址由host端驱动指定;
- 每个RMNET报文有RMNET报头,每个RMNET报文可以包含多个以太网帧,这种特性称为报文聚合,即调用一次URB可以发送或者接收多个IP报文。
7.2 IPA
ETH_P_MAP: 0x00F9, Qualcomm multiplexing and aggregation protocol
8 debug
8.1 QMI dial-up
1) Legacy: AT/DUN
2) New: QMI/RmNet
SEND_ENCAPSULATED_COMMAND
GET_ENCAPSULATED_RESPONSE
RESPONSE_AVAILABLE
GitHub - sensiki/quectel-cm
Wireshark QMI dissector
https://github.com/dnlplm/WiresharkQMIDissector
8.2 QCSuper
https://github.com/P1sec/QCSuper
8.3 Windows CMD方式配置IP地址
:: netsh: Network Shell
@echo off
if [%1] == [] (
echo "Usage:"
echo "WIN_IP.bat static"
echo "WIN_IP.bat dhcp"
echo "WIN_IP.bat speed"
goto :EOF
)
if %1 == static (
call :static_ip
) else if %1 == dhcp (
call :dhcp_ip
) else if %1 == speed (
call :nic_speed
)
goto :EOF
:: get interface name, use the following command
:: getmac /V /FO LIST
:static_ip
set name="Ethernet"
set ip=192.168.0.100
set mask=255.255.255.0
:: gwmetric=1
echo "setting static ip address..."
netsh interface ipv4 set address %name% static %ip% %mask% none 1
:: netsh interface ipv4 set dns %name% static 114.114.114.114
:: netsh interface ipv4 add dns %name% 8.8.8.8
goto :EOF
:dhcp_ip
set name="Ethernet"
echo "setting dhcp..."
netsh interface ipv4 set address %name% dhcp
netsh interface ipv4 set dns %name% dhcp
goto :EOF
:nic_speed
wmic NIC where NetEnabled=true get Name, Speed
9 Abbreviations
DAD:IPv6 Duplicate Address Detection for CarPlay
GSI: Generic Software Interface, which replaced BAM
OIDs: Object Identifiers
PVID:Port default VID,PVID属于IEEE 802.1Q,不属于Port-based VLAN
RmNet: Remote Network
S2C: System to Chip
wmic: Windows Management Instrumentation Command-line
x86 OTG:APL (Gen9) 8-port MPH xHCI和dwc3组成一个PCI多功能设备,xHCI的func号为0,dwc3的func号为1
相关文章:
USB接口虚拟网卡
1 基本概念 1.1 USB转以太网 - ASIX 4-byte length header before every ethernet packet. - Microchip LAN7800 128x32 bit Descriptor RAM, 32 bits DP_DATA address offset 030h for Descriptor RAM access. - Windows CMD参数格式: route /? -> Linux -h …...
基于SpringBoot的外卖项目的优化
基于SpringBoot的外卖项目的优化1、缓存优化1.1、缓存短信验证码问题分析代码改造1.2、缓存菜品数据实现思路1.3、Spring Cache介绍常用注解CachePutCacheEvictCacheable使用方式1.4、缓存套餐数据实现思路代码改造2、读写分离2.1、主从复制存在的问题介绍配置配置主库--master…...
Ubuntu20.04/22.04 ESP32 命令行开发环境配置
ESP32 芯片系列 ESP32分三个系列 ESP32-S ESP32-S3: Xtensa 32位 LX7 双核 240 MHz, 384KB ROM, 512KB SRAM, QFN7x7, 56-pin, 2.4G Wi-Fi BTESP32-S2: Xtensa 32位 LX7 单核 240 MHz, 128KB ROM, 320KB SRAM, QFN7x7, 56-pin, 2.4G Wi-Fi ESP32-C ESP32-C3: RISC-V 32位 单…...
Kali Linux使用Metasploit生成木马入侵安卓系统
额,这是我最后一篇文章了,周一我们开学了 文章目录前言一、Metasploit是什么?演示环境二、生成可执行木马文件1.生成2.运行命令并生成木马配置参数入侵安卓手机命令1.查看对方手机系统信息查看对方手机安装哪些app文件总结前言 前言…...
数据库复习1
一. 简答题(共1题,100分) 1. (简答题) 存在数据库test,数据库中有如下表: 1.学生表 Student(Sno,Sname,Sage,Ssex) --Sno 学号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 主键Sno 2.教师表 Teacher(Tno,Tname) --T…...
18. linux系统基础
shell 命令解析器 命令解析器作用: 他把在终端上输出的命令 给你解析成内核可以识别的指令,内核 是经过命令解析器的加工 shell在找命令的时候,所包含的路径,就是在这些路径里去 找 找到就执行 找不到就报错 报错 要么 这个命…...
ssh远程登录报错:kex_exchange_identification: Connection closed by remote host
基本信息系统:MacOS Catalina 10.15.7报错信息:终端登录远程服务器时报错:kex_exchange_identification: Connection closed by remote host复制然而服务商的一键登录或VNC登录正常。解决方案首先使用以下命令debug登录过程,以便定…...
Quartus II 的入门级使用
好久没有用VHDL写东西了,今天需要完成一个项目,重新复习一下新建工程新建工程file-->New Project Wizard, next, 选择存放的路径名字(projecttop-level 名字要相同),next,File name名字同上,…...
Java EE|TCP/IP协议栈之TCP协议工作机制上
文章目录前言一、确认应答二、超时重传三、连接管理三次握手四次挥手前言 前边,我们已经大概交代了TCP的报文结构。但是仍有一些字段我们不确定到底怎么理解,这里就分析TCP的内部工作机制了。 TCP的内部很复杂,有很多机制,这里我们…...
智能化人机协作 遮挡情况下准确识别目标信息
研究背景 废旧产品(end-of-life products)的拆卸是工程全生命周期管理的一个基本步骤。在减少资源消耗和温室气体排放的同时,回收可重复使用的部件可能创造相当的经济价值,同时也能推动碳中和目标的实现。 但目前EoL的拆卸仍然严…...
React(一):初识React、类组件、jsx的基础语法
React(一)一、初识React1.简单介绍2.React的三个依赖3.Hello React案例二、类组件1.定义类组件并渲染2.绑定事件函数(奇怪的this问题)3.数组形式数据的展示(电影案例)4.计数器案例三、jsx语法详解1.jsx的书…...
2023-2-24 刷题情况
获取单值网格的最小操作数 题目描述 给你一个大小为 m x n 的二维整数网格 grid 和一个整数 x 。每一次操作,你可以对 grid 中的任一元素 加 x 或 减 x 。 单值网格 是全部元素都相等的网格。 返回使网格化为单值网格所需的 最小 操作数。如果不能,返…...
测试员拿到新项目怎么着手测试?不要慌,照做准没错
一、目标 结合公司现有的项目情况制定合理规范的测试流程,提高测试效率和产品质量,尽可能减少客户对产品的问题反馈, 核心还是要加强项目组成员之间的工作交流和沟通,保证整个项目的高效率的按质按量的交付。 二、测试流程说明…...
通过cfssl自签证书https证书
背景 公司内部自建Web服务,通过自签CA,然后签发https证书 工具地址: GitHub - cloudflare/cfssl: CFSSL: Cloudflares PKI and TLS toolkit 使用步骤: 1. 在release页面中下载最新的二进制包,我使用的是1.5的解压并重命名二进制文件 tar…...
openEuler部署Ceph集群(块存储)
openEuler部署Ceph集群1 目标2 环境2.1 服务器信息2.2 软件信息3 部署流程3.1 获取系统镜像3.2 创建虚拟机3.3 配置虚拟机3.3.1 配置互信3.3.2 关闭防火墙3.3.3 配置免密登录3.3.4 配置NTP3.3.4.1 安装NTP服务3.3.4.2 配置NTP服务端3.3.4.3 配置NTP客户端3.3.4.4 启动NTP服务3.…...
npm install vue2-ace-editor 安装报错
npm install vue2-ace-editor 安装报错,如下图 目录 npm install vue2-ace-editor 安装报错,如下图 🧨🧨🧨解决方法:在命令后面加上 神秘代码 npm install vue2-ace-editor --save --legacy-peer-deps &a…...
【PyQt5图形界面编程(2)】:创建工程
创建工程 一、创建工程二、开始开发1、运行Qt5Designer,创建QT窗口2、运行pyUIC,转换xx.ui成xx.py3、main.py中引用xx.py中的类4、打包main.py成main.exe来发布5、执行终端报警处理方法三、其他(如果涉及)1、配置环境变量一、创建工程 采用虚拟环境来创建工程 相关的paka…...
ansible实战应用系列教程9:管理inclusions
ansbile实战应用系列教程8:管理inclusions InclusionsIncluding TasksIncluding VariablesInclusions 当处理复杂或冗长的剧本时,管理员可以使用单独的文件将任务和变量列表划分为更小的部分,以便于管理。在playbook中引入外部任务文件和变量有多种方法。 方法一:tasks使用…...
MyBatis学习笔记(五) —— MyBatis获取参数值的两种方式
5、MyBatis获取参数值的两种方式 MyBatis获取参数值的两种方式:${} 和 #{} ${} 的本质就是字符串拼接, #{} 的本质就是占位符赋值 ${} 使用字符串拼接的方式拼接sql,若为字符串类型或日期类型的字段进行赋值时,需要手动加单引号&a…...
go module构建项目
在go 1.11版本中引入了Go Module内置的包管理模块,是GOPATH的替代品,集成了版本控制和软件包分发支持的功能。即go使用modules管理依赖,项目依赖构建时不需要再依赖GOPATH环境变量。 要使用go module首先要激活modules .升级go到1.11版本 .这…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
全球首个30米分辨率湿地数据集(2000—2022)
数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
前端调试HTTP状态码
1xx(信息类状态码) 这类状态码表示临时响应,需要客户端继续处理请求。 100 Continue 服务器已收到请求的初始部分,客户端应继续发送剩余部分。 2xx(成功类状态码) 表示请求已成功被服务器接收、理解并处…...
高端性能封装正在突破性能壁垒,其芯片集成技术助力人工智能革命。
2024 年,高端封装市场规模为 80 亿美元,预计到 2030 年将超过 280 亿美元,2024-2030 年复合年增长率为 23%。 细分到各个终端市场,最大的高端性能封装市场是“电信和基础设施”,2024 年该市场创造了超过 67% 的收入。…...
