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版本 .这…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
如何理解 IP 数据报中的 TTL?
目录 前言理解 前言 面试灵魂一问:说说对 IP 数据报中 TTL 的理解?我们都知道,IP 数据报由首部和数据两部分组成,首部又分为两部分:固定部分和可变部分,共占 20 字节,而即将讨论的 TTL 就位于首…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
Java毕业设计:WML信息查询与后端信息发布系统开发
JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发,实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构,服务器端使用Java Servlet处理请求,数据库采用MySQL存储信息࿰…...
