自动配置MTU值的USB设备设计与研究

2020-01-06 10:21肖蕾蕾史二娜
网络安全技术与应用 2020年1期
关键词:网卡消息驱动

◆肖蕾蕾 史二娜

自动配置MTU值的USB设备设计与研究

◆肖蕾蕾 史二娜

(西安交通工程学院电气工程学院 陕西 710300)

在使用USB数据卡产品时,由于不同运营商的网关MTU值设置不同,使得用户无法达到理想的数据吞吐率,上网效果不理想。针对这一问题,设计了一种自动修改PC的MTU值的USB设备,大大提高了用户体验。

MTU值;USB设备;数据卡

随着互联网时代的到来,人们对网络的质量需求越来越高,相应的USB数据卡产品越来越丰富,不同的网络运营商网关的MTU值设置也都不一致,如何配置合适的MTU值,达到理想的上网体验,成为亟待解决的问题。

目前已有配置MTU值的方法,需要使用该数据卡终端的用户知道当前运营商网关的MTU值,对于一般的普通用户而言,无法确认当前接入网络的网关MTU值,从而也就不清楚需要设置多少,才可以达到理想的上网效果。

针对以上存在的问题,本文为用户提供一种新的方法,即通过USB设备自动配置当前接入的PC MTU值,并且实现了相配套的USB设备系统。该方法与系统在不需要用户手动设置MTU值的情况下,将USB网卡设备接入到PC,通过USB设备自动来修改PC的MTU值,从而可以达到在特定网络接入时的数据吞吐率的最优效果,此方法对于普通的终端用户而言,与原有的方法相比,可以大大提高USB设备的用户体验。

1 方法原理

原有通过数据卡配置MTU值的方法是:在UI上提供可配置界面,用户通过在该配置界面中输入具体的MTU值[2],最终将该MTU值写入PC的后台文件中,并且使用该MTU值进行拨号链接的动作[1]。该方法需要用户确认当前网络的网关MTU值,因此,对普通用户来说没有多大的使用价值,而且未能达到改善用户体验的目的。

本方法与系统的原理是:用户电脑通过USB数据卡联网时,需要先安装该USB数据卡的驱动,当数据卡连接到PC并枚举USB网卡设备时,PC会通过该驱动与数据卡交互,从而在用户电脑上枚举出USB网卡设备[2]。同时,电脑在与USB网卡设备交互时,会获取到数据卡中预先设置的MTU值,并写入到该网卡在电脑中的注册表项,从而达到无须用户手动配置MTU的效果。

2 设备组成

本方法与系统的组成如下图1,包括PC侧MTU自动配置模块、PC侧MTU请求模块、数据卡侧MTU响应模块、数据卡侧网卡驱动模块[3]。

图1 设备组成框图

(1)USB设备侧网卡驱动模块:按照USB协议,实现一个USB网卡设备。当该设备连接到USB主设备时,会在对应的USB主设备上枚举出一个USB网卡设备,供该主设备通过此USB网卡设备接入网络。

(2)USB设备侧MTU响应模块:在USB数据卡设备出厂前,该模块负责根据不同的运营商网络,预设对应网络的最优MTU值,并响应来自USB主机上厂商驱动下发的,获取MTU值的请求消息。

(3)PC侧MTU请求/响应模块:在USB数据卡设备枚举过程中,由于下发获取MTU值的请求消息于USB设备,并且响应收到的MTU响应模块的响应消息后进行解析处理。

(4)PC侧MTU自动配置模块:用于将从USB设备获取到的MTU值,写到该数据卡在主设备上枚举的网卡设备对应的注册表中。

3 PC机使用USB实施过程

如图2所示,当USB设备插入PC后:

(1)首先,PC向设备发送获取该设备描述信息的请求消息(Get_Descriptor消息),USB从设备收到消息后,给主机回复包含描述设备描述信息的USB响应消息。包括设备厂商ID,产品ID,以及该USB设备所符合的设备类、子类、协议类、MI信息等;

(2)其次,PC接着给USB从设备发送获取该设备配置信息的请求消息(Get_Configure消息),USB从设备收到此消息后,给主机回复包含设备自身配置信息的USB响应消息。包括该USB设备所支持的所有接口的描述信息、以及每个接口所包含的端点数、端点方向等;

(3)然后,PC给USB从设备发送获取MTU值的请求消息,目的是获取该USB设备需要接入网络MTU值,设备在收到该消息后,给主机回复包含MTU值的响应消息。获取MTU值的请求、响应消息,必须按照USB规范定义的消息格式,实现该扩展消息;

(4)最后,PC侧收到设备回复的包含MTU值的响应消息后,MTU自动配置模块将获取到的MTU值配置到该USB网卡设备对应的PC注册表中。

图2 实现MTU值设置的USB设备枚举过程

bmRequestType字段代表该USB消息为用户自定义的扩展消息;

bRequest字段代表获取的消息类型,本文为GET MTU VALUE请求消息;

wValue字段代表接口索引,也就是USB网卡设备对应的接口编号;

wIndex字段代表请求的特性索引;

wLength字段代表USB网卡设备后续要返回的,包含MTU值的响应消息的长度。

4 软件部分

该系统包括PC侧软件与USB数据卡侧软件两部分:

在该PC侧USB网卡设备驱动中,除了实现基本的USB网卡枚举消息,还需要实现图3中到获取MTU值的扩展USB消息;

同理,对于USB数据卡侧软件,则需要实现USB网卡驱动[]、以及当接收到图3中的,获取MTU值的扩展USB请求消息后,发送包含特定网络MTU值的响应等功能[5]。

实验证明,通过将实现了自动配置MTU值功能的USB设备接入到PC上,发现其可以根据当前的网络类型,自动修改PC的MTU值,达到理想的上网效果。

5 结束语

该USB设备通过与PC驱动的自动配合,从而达到无须用户手动配置MTU值的情况下,通过USB设备自动配置MTU值的目的,使得用户接入USB设备时提供了方便。

计算机后,PC驱动会自动从USB设备获取到MTU值,并且自动将该值配置到用户的注册表中,从而大大提高了用户体验。

[1]杨伟.Linux下USB设备驱动研究与开发[J].计算机工程,2006,32(19):283-285.

[2]朱晓锦.一种嵌入式USB主机功能模块设计与实现[J].计算机工程,2007,33(21):240-243.

[3]彭亚龙.USB设备自动识别操作系统的方法[J].操作系统,2011(10).

[4]John Garney.Universal Serial Bus rev3.2 Specification[EB/OL].(September 22,2017)[2018.3].

[5]胡唯唯,王宜怀,张永.基于K64的USB驱动构件化设计[J].电子技术应用,2017,43(7):55-58.

陕西省教育厅科研计划项目资助(项目编号:18JK1039)。

猜你喜欢
网卡消息驱动
数据驱动世界。你得懂它 精读
基于模糊PI控制的驱动防滑仿真系统分析
联网全靠它 认识笔记本的无线网卡
屈宏斌:未来五年,双轮驱动,砥砺前行
一张图看5G消息
深入实施创新驱动发展战略
Server 2016网卡组合模式
晚步见道旁花开
挑战Killer网卡Realtek网游专用Dragon网卡
USB故障又一原因