手机通过 usb 共享 PC 网络是用啥技术实现的?

2014-04-03 14:24:51 +08:00
 mantianyu
今天才知道这个玩意儿, 惭愧... 这之中的技术细节是啥啊??
2932 次点击
所在节点    问与答
4 条回复
loading
2014-04-03 14:33:45 +08:00
以前的是手机当猫
现在是就是一根线传数据,手机转发
shawngao
2014-04-03 14:34:44 +08:00
这是手机端USB驱动实现的
以Android为例:你可以Google “Android USB Tethering"
具体的实现还得看modem芯片套件怎么对接
allenforrest
2014-04-03 14:36:23 +08:00
usb net 驱动,一般使用 cdc driver
jt6562
2014-04-03 16:49:43 +08:00
其实就是usb rndis gadget,kernel源码里有,只要设备支持USB device或OTG就可以加载这个驱动(当然,前提是编译好)。加载后,当设备连接到PC时,PC(尤其是windows,毕竟rndis是windows实现的cdc ether协议版本)就会出现一个网卡。这个时候,在PC端设置好网关、路由就能上网了。

android稍有一点不同,android在kernel里增加了一个android的gadget,这个gadget是个大杂烩,包括U盘功能,串口,ADB调试,MTP,PTP,NET等功能。但是,android不会同时支持这些功能,毕竟USB的端点数不是无限的,而是根据手机配置选择一个或两个(ADB+其他)。这样修改的好处是,功能的选择和组合更灵活,也不需要来回卸载/加载ko

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/107108

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX