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相关推荐

  1. RmNet和CDC-ECM的区别,NDIS和RNDIS的区别。

    RmNet,CDC-ECM ,NDIS,RNDIS区别 一.RmNet和CDC-ECM区别:更像是两种拨号方式的区别,RmNet获取公网IP,ECD-ECM获取局域网IP. 1.如果是使用RmNet, ...

  2. RmNet,CDC-ECM ,NDIS,RNDIS区别

    RmNet和CDC-ECM区别:更像是两种拨号方式的区别,RmNet获取公网IP,ECD-ECM获取局域网IP. 在高通平台上,rmnet driver 和标准的CDC-ECM是有区别的,rmnet ...

  3. NDIS和Rndis区别

    NDIS和Rndis区别:NDIS是一种规范,定义了网络驱动接口的api.RNDIS是一种技术,是将TCP/IP封装在USB报文里,实现网络通信. 1,RNDIS是指Remote NDIS,基于USB ...

  4. mbim ndis ecm ncm之我的理解

    这几个问题困扰了我很长时间,经过我不懈的努力 加上  我的悟性,  我自认为 理解了那么一点. ndis (Network Driver Interface Specification) 网络驱动接口 ...

  5. ecm、ppp、ndis 拨号

    RmNet和CDC-ECM区别:更像是两种拨号方式的区别,RmNet获取公网IP,ECD-ECM获取局域网IP. 在高通平台上,rmnet driver 和标准的CDC-ECM是有区别的,rmnet ...

  6. 【随笔记】linux usb gadget ncm wrong ndp sign 问题修复

    一.模拟网卡简介 在 Linux 通过 usb 模拟网卡时,有四种方式: 1. 使用 usb gadget rndis 2. 使用 usb gadget ecm 3. 使用 usb gadget nc ...

  7. 首创STM32 USB主机驱动4G rndis设备

    1.4G模块使用技术现状与难题 4G模块支持的对外通信接口有串口和USB接口,串口一般使用AT指令的方式,这个在MCU类产品上面使用的很多,USB接口主用于在连接APU应用处理器上面,由LINUX操作 ...

  8. Quectel EC200A-CN移植

    Quectel EC200A-CN移植 一:usb转串口 二:usb网卡驱动 三:源码修改 四:测试 一:usb转串口 usb-serial-option,USB转串口驱动,生产/dev/ttyUSB ...

  9. OpenHarmony3.1适配移远EC20模组4G上网功能

    OpenHarmony3.1适配移远EC20模组4G上网功能 一.概述 通过阅读本篇文档,您将学习到如何适配移远EC20模组到OpenHarmony3.1(以下简称OHOS),并添加4G上网功能. 本 ...

最新文章

  1. 汇编语言--转移指令的原理
  2. 知乎用户行为预测数据比赛,10万奖金等你来Battle!
  3. Ubuntu14下安装svn仓库,以及权限配置
  4. MWeb 的基本使用
  5. follow 开源项目关于NoClassDefFoundError错误的解决方法
  6. mysql 字符集测试_MySQL多字符集备份恢复测试
  7. Navicat导入数据库数据结构sql报错datetime(0)
  8. 如何建语料库_关于语料库的建立
  9. 皮尔森相关系数_克莱姆相关系数的计算
  10. Scrapy 爬取电影网站开发微信公众号
  11. html table冻结首行,Html Table的首行和首列冻结效果
  12. Java操作xls文件,数据去重
  13. jmeter之http取样器
  14. ajax 网页加速,20 种提升网页速度的技巧
  15. 吴军《态度》读后感(1):人生哲学
  16. 建了个微信交流群,和我一起在 b 站学 Python
  17. STARK Low Degree Testing——FRI
  18. Python Pytorch
  19. 一文了解SCI论文投稿全流程
  20. 盘点全球最热门十家大数据公司中国占据三席

热门文章

  1. php搞笑证件,什么软件可以制作搞笑证件,多种搞笑证件制作
  2. 分享两年折腾DIY-NAS的经验和小技巧
  3. Bootstrap实战练习---Web全栈课程体系(表格+巨幕)
  4. 用Python进行文本分析时出现UnicodeDecodeError错误的解决方法
  5. 全国高校人工智能选修课该怎么上?附赠全套PPT
  6. 华为OD机试 - 不含101的数
  7. python制作海报_生成海报(前端 | python)
  8. Latex中斜线表头的制作方法
  9. 【老九学堂】【C语言进阶】内置函数补充
  10. php引入百度Ueditor富文本编辑器