ECM 通用数据平面特性
核心数据传输机制
所有由本规范支持的网络设备模型的核心数据输入/数据输出管道机制都是相同的,独立于媒体类型(例如,电缆、xDSL、以太网)或媒体数据类型(例如,ATM信元、以太网帧)。
默认传输配置
典型的基于USB的网络设备将支持批量传输作为主机和USB设备之间交换数据的默认配置。
批量传输特性
虽然批量端点的每个数据包都限制在相关端点描述符中定义的最大数据包大小内,但应注意主机可能在单个USB帧内请求多个批量USB协议数据包。为了获得最大吞吐量,网络设备必须准备好在单个USB帧内传输多个批量数据包。
同步传输支持
一些基于USB的网络设备实现可能支持同步数据传输,作为批量传输的补充(或替代)。同步传输保证数据吞吐量和有界延迟,符合实时流(音频、视频)的需求。同步数据错误会报告给接收器,但USB链路不提供数据完整性(即重传)。
协议代码
所有网络控制模型的数据类接口描述符协议代码为00h。
流控制机制
USB不为同步管道提供固有的流控制机制,本规范也不定义更高级别的机制。相反,假设主机软件负责根据需要进行流量整形以匹配任何端到端协商。如果网络设备执行流量整形,则应使用批量端点,或应使用供应商特定方法提供流控制方法。
接口设置要求
网络设备的数据类接口应至少有两个接口设置:
默认接口设置
- 第一个设置(默认接口设置)不包含端点
- 因此,无论何时选择默认接口设置,都不会交换网络流量
正常操作设置
设备重置机制
为了将设备的网络方面恢复到已知状态,主机将:
- 首先选择默认接口设置(无端点)
- 然后选择适当的备用接口设置
作为对此操作的响应,设备应:
- 刷新设备缓冲区
- 清除任何过滤器或统计计数器
- 导致向主机发送NetworkConnection和ConnectionSpeedChange通知
设备物理层的”重置”效果取决于媒体类型,超出本规范的范围。
段界定(Segment Delineation)
对于几乎所有类型的USB网络设备,都需要一种机制,使网络设备和主机都能在端点传输的数据流中明确分割每个段(segment)的起止。段结束的含义和原因取决于具体的媒体类型,例如以太网帧的结束。
USB的正向段界定机制:
- 使用USB短包(short packet)机制来界定段的结束。
- 当一个段跨越N个USB数据包时,前N-1个包都应为端点定义的最大包长。
- 如果第N个包小于最大包长,则该短包的传输标志着段的结束。
- 如果第N个包正好等于最大包长,则必须紧跟一个零长度包(也是短包),以确保段的结束被正确识别。
主机向网络设备发送数据时:
- 假定主机USB驱动的客户端会采取适当措施,确保向网络设备发送短包。
- 对于长度正好是管道“最大包长”整数倍的段,必须支持写入零长度缓冲区,以生成短包。
段大小(Segment Size)
- 主机和网络设备必须协商以确定最大段大小。
- 最大段大小的上限通常取决于设备的缓冲能力,也可能受其他因素影响。
- 对于交换以太网帧的网络设备,最大段大小也是可协商的。
- 典型以太网帧长度为1514字节或更小(不包括CRC),但也可能更长(如带802.1Q VLAN标签时)。
总结
USB网络设备通过标准化的数据平面机制提供灵活的网络连接,支持批量传输和同步传输,具有完整的接口设置管理和设备重置功能,确保网络流量的可靠交换。
- 段界定:通过USB短包机制,短包或零长度包明确标识数据段的结束。
- 段大小:主机与设备协商,通常受设备缓冲区限制。以太网帧一般≤1514字节,但可更大。
- 实现要点:主机驱动需能发送零长度包,确保段界定准确。