NDIS和Rndis、NCM和ECM
NDIS和Rndis
NDIS是一种规范,定义了网络驱动接口的api。RNDIS是一种技术,是将TCP/IP封装在USB报文里,实现网络通信。(即将TCP/IP包 封装成为USB总线要求的格式)
类似的封装报文的情况也出现在PPPoE(将点对点协议(PPP)封装在以太网(Ethernet)框架中)等技术中。
NCM和ECM
USB NCM,属于USB-IF定义的CDC(Communication Device Class)下的一个子类:Network Control Model,用于Host和Device之间交换以太网帧。NCM主要用于高速网络场景下比如HSPA和LTE数据服务。NCM协议规范基于ECM改进而来,支持了更高的数据率。
ECM和NCM都适用于IEEE 802.3类型的以太网功能,可以将IP流量传输到外部网络。ECM是为USB全速设备设计的,特别是支持docsis 1.0电缆调制解调器。尽管ECM功能完备,但它在吞吐量或效率上不能很好地扩展到更高的USB速度和更高的网络速度。NCM借鉴了从ECM实现中获得的经验,调整了数据传输协议**(本质区别)**,使其实质上更加高效。
使用NCM的主要优点在于它在单个USB批量传输中传输多个数据报。
NCM允许设备和主机使用一个USB传输有效地传输一个或多个以太网帧。USB传输被格式化为NCM传输块(NTB)。有两种NTB格式:NTB-16和NTB-32。前者用来表示长度小于65536字节的NTB,后者用来表示不超过4GB的NTB。下图是NTB-32的格式。具体格式不再赘述。
NCM功能由一个NCM控制接口和一个NCM数据接口来实现,NCM控制接口用于配置和管理网络功能,NCM数据接口用于传输数据。
NDIS和Rndis、NCM和ECM相关推荐
- RmNet和CDC-ECM的区别,NDIS和RNDIS的区别。
RmNet,CDC-ECM ,NDIS,RNDIS区别 一.RmNet和CDC-ECM区别:更像是两种拨号方式的区别,RmNet获取公网IP,ECD-ECM获取局域网IP. 1.如果是使用RmNet, ...
- RmNet,CDC-ECM ,NDIS,RNDIS区别
RmNet和CDC-ECM区别:更像是两种拨号方式的区别,RmNet获取公网IP,ECD-ECM获取局域网IP. 在高通平台上,rmnet driver 和标准的CDC-ECM是有区别的,rmnet ...
- NDIS和Rndis区别
NDIS和Rndis区别:NDIS是一种规范,定义了网络驱动接口的api.RNDIS是一种技术,是将TCP/IP封装在USB报文里,实现网络通信. 1,RNDIS是指Remote NDIS,基于USB ...
- mbim ndis ecm ncm之我的理解
这几个问题困扰了我很长时间,经过我不懈的努力 加上 我的悟性, 我自认为 理解了那么一点. ndis (Network Driver Interface Specification) 网络驱动接口 ...
- ecm、ppp、ndis 拨号
RmNet和CDC-ECM区别:更像是两种拨号方式的区别,RmNet获取公网IP,ECD-ECM获取局域网IP. 在高通平台上,rmnet driver 和标准的CDC-ECM是有区别的,rmnet ...
- 【随笔记】linux usb gadget ncm wrong ndp sign 问题修复
一.模拟网卡简介 在 Linux 通过 usb 模拟网卡时,有四种方式: 1. 使用 usb gadget rndis 2. 使用 usb gadget ecm 3. 使用 usb gadget nc ...
- 首创STM32 USB主机驱动4G rndis设备
1.4G模块使用技术现状与难题 4G模块支持的对外通信接口有串口和USB接口,串口一般使用AT指令的方式,这个在MCU类产品上面使用的很多,USB接口主用于在连接APU应用处理器上面,由LINUX操作 ...
- Quectel EC200A-CN移植
Quectel EC200A-CN移植 一:usb转串口 二:usb网卡驱动 三:源码修改 四:测试 一:usb转串口 usb-serial-option,USB转串口驱动,生产/dev/ttyUSB ...
- OpenHarmony3.1适配移远EC20模组4G上网功能
OpenHarmony3.1适配移远EC20模组4G上网功能 一.概述 通过阅读本篇文档,您将学习到如何适配移远EC20模组到OpenHarmony3.1(以下简称OHOS),并添加4G上网功能. 本 ...
最新文章
- 汇编语言--转移指令的原理
- 知乎用户行为预测数据比赛,10万奖金等你来Battle!
- Ubuntu14下安装svn仓库,以及权限配置
- MWeb 的基本使用
- follow 开源项目关于NoClassDefFoundError错误的解决方法
- mysql 字符集测试_MySQL多字符集备份恢复测试
- Navicat导入数据库数据结构sql报错datetime(0)
- 如何建语料库_关于语料库的建立
- 皮尔森相关系数_克莱姆相关系数的计算
- Scrapy 爬取电影网站开发微信公众号
- html table冻结首行,Html Table的首行和首列冻结效果
- Java操作xls文件,数据去重
- jmeter之http取样器
- ajax 网页加速,20 种提升网页速度的技巧
- 吴军《态度》读后感(1):人生哲学
- 建了个微信交流群,和我一起在 b 站学 Python
- STARK Low Degree Testing——FRI
- Python Pytorch
- 一文了解SCI论文投稿全流程
- 盘点全球最热门十家大数据公司中国占据三席