V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
TeaTalk
V2EX  ›  宽带症候群

手机与电脑在使用同一个 WIFI 的情况下,上网的差异到底是由何产生的呢?

  •  
  •   TeaTalk · 2023-10-14 16:11:03 +08:00 · 1543 次点击
    这是一个创建于 439 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我一直很好奇也一直不明白,为什么在连接了同一个 WIFI 的情况下,手机与电脑在上网的体验上为什么会有差异。包括但不限于以下几种情况:

    1. 一方能上网,一方不能上网。
    2. 接收信息的速度不同(如微信信息)。
    3. 相同的机场节点,一方能用,一方不能。

    我目前能想到的原因有:

    1. 网卡等硬件的差异。
    2. 上网协议不同。这点其实不太确定,因为这两者的上网协议似乎是一样的吧?

    希望有网络方面的大佬能够来答疑解惑。

    7 条回复    2023-10-15 17:01:48 +08:00
    LLaMA2
        1
    LLaMA2  
       2023-10-14 16:16:58 +08:00
    一方能上网,一方不能上网。
    手机和电脑的操作系统不同,网卡差异,请求接入时的额先后顺序,路由分配 IP 的机制等引起的兼容问题

    接收信息的速度不同(如微信信息)。
    手机微信和电脑微信获取通知的机制不同,两者网络连接不同,路由系统针对不同连接的处理顺序不一样,循环也有先后啊

    相同的机场节点,一方能用,一方不能。
    软件差异导致,为了连接不同引起的等等等
    totoro625
        2
    totoro625  
       2023-10-14 16:17:58 +08:00
    能上网和不能上网这种差异,首先要排除 DNS 原因和第三方软件的原因

    可以拿第三台设备测试一下
    datocp
        3
    datocp  
       2023-10-14 18:34:40 +08:00
    一方能上网,一方不能上网。
    1.DNS 服务器有问题,如果直接将位于外网的 DNS 服务器提供给客户端,那么可能存在查询延时+客户端自身的缓存消亡时间问题
    2.早些年的 QQ 浏览器竟然内置 DNS 服务器,可以逃脱本地网关的强制方法,拒绝使用 QQ 浏览器

    接收信息的速度不同(如微信信息)。
    至今不知道为什么,虽然有人专门写了一篇关于微信消息收发的心跳导致的电池省电问题.但我问过同事,他们的 vivo 之类的国产手机同样存在两端接收时间延迟问题.并不像是 google 版本导致的.我的手机应该装的是 weixin.qq.com 直接下载的,依然有这个问题

    相同的机场节点,一方能用,一方不能。

    openwrt 的解决方案
    #强制所有的 DNS 查询使用网关 dnsmasq 提供,任何终端无法使用外部,除非像 QQ 浏览器那种自己内置通道
    -A prerouting_rule -s 192.168.0.0/16 -p udp -m udp --dport 53 -j DNAT --to-destination 192.168.8.253

    #解决 mtu 导致的网络呑吐,据说非常有用.对当年就是为了解决亚马逊英文站的,是不是用了它很多网站页面都能浏览了,不会因为分包而导致页面无法呈现
    -A FORWARD -o pppoe-wan -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu
    -A FORWARD -i pppoe-wan -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu

    #用来解决 DSCP 在不同交换设备而导致的流量控制问题
    -A PREROUTING -i pppoe-wan -j DSCP --set-dscp 0x00

    #qos,用访问目的端口 qos 来解决不同优先级的上行数据,达到网页刷刷刷迎面扑来的感觉.
    udp_5000:5500,6060,8088_0x10/0xff
    tcp_2099,5222,5223,5060,6060,8088,8393:8400,992,1992,26241_0x10/0xff
    udp_53,123_0x20/0xff
    tcp_22,23,3389_0x20/0xff
    tcp_80,443,1080,1863,8080:8081,12000,14000_0x30/0xff
    udp_500,1701,4000:4030,4500,8000:8001,16285_0x30/0xff
    tcp_20,21,25,143,465,993,1024:65535_0x40/0xff
    udp_1:65535_0x40/0xff
    jim9606
        4
    jim9606  
       2023-10-14 19:29:59 +08:00
    我知道的一些差异:
    1. Windows 支持有状态 DHCPv6 ,但 Android 不支持;如果路由器设置不当,可能导致一方有 v6 另一方无 v6 的情况
    2. DNS 相应有问题,部分 APP 自带替代 DNS 解析方案,PC 上通常不会动用类似机制( chrome 就会拿 8.8.8.8 当备用,不知道能不能用组策略禁用)
    3. 推送机制,例如手机上使用的推送机制相对被动一些
    4. Windows 的启发式 TCP 流控比较怂,这个没实证过
    5. 机场的话多数是客户端差异,PC 可能不会使用 TUN 模式接入,手机基本只能用 TUN
    Dreax
        5
    Dreax  
       2023-10-14 21:45:21 +08:00
    "It's always DNS!"
    Greatshu
        6
    Greatshu  
       2023-10-14 21:56:07 +08:00
    多半是 DNS 或 IPv6 问题。之前我的 Play 商店打开始终处于正在检查信息,花了大量时间最后发现是代理工具的 IPv6 路由问题,禁用 IPv6 路由后就好了。
    zanewayne
        7
    zanewayne  
       2023-10-15 17:01:48 +08:00
    ipv6 问题,租期过期了安卓 wifi 获取不到新的 ipv6 地址,我就是这样,要关闭再打开手机 wifi 就能获取到
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1167 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 18:30 · PVG 02:30 · LAX 10:30 · JFK 13:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.