当前位置 : 主页 > 编程语言 > 其它开发 >

手机USB共享网络是个啥

来源:互联网 收集:自由互联 发布时间:2022-05-14
智能手机一般都提供了USB共享网络的功能,将手机通过USB线与电脑连接,手机端开启『USB共享网络』,电脑就能通过手机上网。 智 能 手 机 一 般 都 提 供 了 U S B 共 享 网 络 的 功 能
智能手机一般都提供了USB共享网络的功能,将手机通过USB线与电脑连接,手机端开启『USB共享网络』,电脑就能通过手机上网。

智能手机一般都提供了USB共享网络的功能,将手机通过USB线与电脑连接,手机端开启『USB共享网络』,电脑就能通过手机上网。

手机端开启『USB共享网络』:

 

电脑端出现新的网络连接:

 

通过设备管理器看一看新增加的网卡设备,如下图红框所示,增加了一个名为Remote NDIS based Internet Sharing Device #3的网卡设备。

 

Remote NDIS(简称RNDIS)是微软为即插即用的以太网设备制定的一套规范。USB Class驱动实现了这个规范,在电脑端生成了上述网卡。下图来自微软官网对RNDIS的介绍。

 

到这里,我们可以看到USB共享网络的底层,是通过USB RNDIS协议来实现以太网数据的传输。电脑端生成一张USB网卡,手机端也会生成一张USB网卡,两张网卡之间进行网络通信。

在命令行窗口输入 ipconfig /all,看一下网络信息。如下图所示,电脑端和手机端处于同一私有地址网段192.168.42.X,通过DCHP来动态获得IP地址。这个默认网关的IP地址就是手机端USB网卡的IP地址。

 

不妨再通过Wireshark抓包来看一看通过电脑端ping www.baidu.com的过程。

ping之前,先看看ARP包,192.168.42.32和192.168.42.129在相互询问对方的MAC地址。192.168.42.129,也就是默认网关,它的MAC地址是e6:22:87:8a:e9:db。

 

电脑端ping www.baidu.com的过程如下:

 

展开其中的一个ping request包,可以看到它指定的目的地IP是163.177.151.110(baidu),但是MAC却是默认网关的MAC地址(e6:22:87:8a:e9:db),表明电脑希望通过网关(即手机)把包转发给baidu。

 

------ END ------

上一篇:asyncio 异步编程
下一篇:没有了
网友评论