NoOps

Ops make no ops | Ops的目标是没有Ops,嗯!

微信、手机QQ网络行为简析

作者: |   8,491 浏览  | 

阿土对于微信和手机QQ的网络连通性分析

测试环境:

智能手机一部(打开wifi关闭gprs) —-> linux wifi 热点 —-> 公网

分析手段:

  1. 在linux 上用tcpdump抓包,用wireshark分析抓到的数据
  2. 在linux上用iptables阻断特定流量,模拟网络故障,分别模拟了拦截udp 53/tcp 80/tcp 8080/tcp 14000/tcp全拦截等各种情况以及他们的组合
  3. 通过 adb shell在手机内执行netstat了解手机网络链接情况

微信网络行为:

  1. 程序启动后,优先尝试DNS解析特定域名(support.weixin.qq.com,short.weixin.qq.com,long.weixin.qq.com,wx.qlogo.cn);
  2. 如果DNS查询不可用,程序转为使用hardcode的ip链接服务;
  3. 如果dns可用,返回的ip为根据ISP智能解析的结果,程序使用返回的ip链接服务;
  4. 程序仅在注册阶段使用https链接,内容不详;
  5. 程序使用tcp 80/8080链接服务器,其中80为http协议,8080为未知协议;
  6. 80/8080两个端口同时或任何单独一个,均可提供服务;
  7. 80端口为短链接,8080为长链接, 程序会优先使用8080端口;
  8. 没有使用udp传输数据;
  9. 当1-2次发送失败时,客户端会弹出提示“当前网络状况不好,是否提交反馈数据”,确认后客户端试图通过web提交反馈数据;

手机qq网络行为:

仅列出跟微信不同之处

  1. 尝试的域名不同: monitor.uu.qq.com,3gimg.qq.com, msfwifi.3g.qq.com, kiss.3g.qq.com;
  2. 除了80/8080外,还有tcp 14000,功能与8080相同;
  3. 程序会优先尝试80/8080,只有这两个不可用时,才尝试14000;
  4. 其余同微信;

6 Comments

  1. 2013/05/10 at 9:48 上午

    亲,“htpps链***”应该是“https”吧。博客交换友情链接么?谢谢拉

    • wilbur
      2013/05/10 at 9:15 下午

      加好链接了

  2. ffts
    2013/05/10 at 11:58 上午

    要是手机root了的话,可以直接装这个应用来抓包
    https://play.google.com/store/apps/details?id=lv.n3o.shark&feature=search_result

  3. Marco
    2013/10/09 at 4:20 下午

    应该是 support.weixin.qq.com 而不是 upport.weixin.qq.com 。

    • wilbur
      2013/10/10 at 11:24 上午

      :)

  4. 2013/10/17 at 1:22 上午

    我的操作比较简单(主要是内网有一个七层小流控)

    有一些需求需要分析手机应用特征。例如给小米商城、豌豆荚商城、appstore 下载app加速(找到目标域名和对应ip段,带宽资源多给点。)。例如手机访问facebook,或无法正常连接某些海外热门厂商游戏app。(国内访问某些海外链路不稳定,甚至访问不了。需要走香港vpn隧道网络才能正常通讯。)

    dns部分,手机使用公司内部dns服务器,在上面tcpdump抓包,可查到手机请求的域名。(dns请求和目标ip网络都转到香港vpn处理,翻墙问题就解决了。)

    手机网络连接状态,在七层流控上查看。(内网用panabit在管理流量,基于unix) (我上次优化小米商城应用下载速度,发现实际下载ip地址和dns中的域名对不上。郁闷了半天,最终按照实际下载ip做的优化。最近几天看到你们团队在技术大会的ppt,才发现你们做过优化,省掉了dns解析这个环节。)

    手机网络控制,在panabit流控上操作。

发表评论