我家里 Macbook Pro
老是上不了 github
,但用 windows
却能上。
当然有网络质量差的原因,但既然同路由局域网下的 win10 能上,说明 Mac 也有一些问题。
我用 wireshark
监听了 curl https://github.com
的过程,的确发现一些问题,但自己对TCP了解太少,希望有朋友帮助解答。
下面图中,192.168.0.4 是我的 Mac ip 地址, 192.30.253.113 是 github 的服务器
1, 刚开始三次握手、秘钥交换什么的挺正常
2, 到 github 服务开始返回网页数据就开始丢包了(第21行),不过很快触发了一次快速重传(第31行),总体还好。
3, 接着鬼畜的地方来了,客户端更新了一次 TCP window
, 接着就一直重复请求 Dup ACK=7155
,服务器也一点反应没有,自顾自发送网页数据,请问一下,这次怎么就没有快速重传了呢?客户端的 ACK
包全丢了吗?
4, 最后,好不容易服务端开始重传 seq=7155
的包了(第71行),但为什么我这边的客户端完全没反应啊?还是一个劲请求 ACK=7155
(第72行),这不都到了吗?接下来就一直重复这两种,直到连接结束了,这肯定是哪有问题吧?
困扰我好长时间了,完全没头绪,希望哪位给我解惑,不胜感激