确认测试端(你的客户端)与目标端(位于香港的服务器或CDN节点)IP地址,最好目标明确在香港或有香港出口的CN2线路。准备工具:ping/mtr/traceroute、tcpdump/tshark或Wireshark、iperf3(服务器端需运行iperf3 -s)、curl/wget、openssl、Chrome(或Chromium)DevTools 和 WebPageTest(可选)。在Windows上可用WinPcap/Wireshark和Chrome,Linux/macOS直接安装相应工具。
用traceroute或mtr检测路由:Linux示例:traceroute -n -w 1 -q 1 目标IP;或 mtr -r -c 10 目标IP。看中间跳点是否含有“ct”/“china-telecom”或“cn2”字样,以及到香港跳点延迟(一般40ms以内视乎位置)。若有专门的CN2转发器或ASN(如ChinaTelecom CN2相关AS),说明可能走CN2。
用ping测几组(不同时间段)稳定性:ping -c 20 目标IP。注意ICMP可能被限速或优先级较低,不能完全代表TCP延迟,但可作为初步参考。记录平均、最小、最大延迟与丢包率。
在客户端用tcpdump只抓与目标的TCP交互:sudo tcpdump -i eth0 tcp and host 目标IP and port 443 -w syn.pcap。发起一次新的TCP连接(例如 curl https://目标域名/),停止抓包。用tshark或Wireshark打开syn.pcap,查找第一个SYN包时间与对应SYN/ACK时间,计算差值即为服务器响应SYN的RTO近似(SYN RTT)。SYN→SYN/ACK差通常等于一次往返延迟(RTT)。
可用tshark脚本计算:tshark -r syn.pcap -Y "tcp.flags.syn==1 && tcp.flags.ack==0" -T fields -e frame.time_epoch -e tcp.seq 查找SYN时间,再筛选tcp.flags.syn==1 && tcp.flags.ack==1 找到SYN/ACK时间,两者相减。也可用Wireshark的“Follow TCP Stream”并查看Time列。
使用openssl s_client可以看到握手过程:openssl s_client -connect 目标域名:443 -msg -debug。通过抓包也能测量ClientHello到ServerFinished的时间差,或直接在tcpdump中测量TCP层到TLS层的时间,记录TLS握手完成时间(会影响TTFB)。
用curl测量各阶段时间:curl -o /dev/null -s -w "time_namelookup:%{time_namelookup} time_connect:%{time_connect} time_appconnect:%{time_appconnect} time_pretransfer:%{time_pretransfer} time_starttransfer:%{time_starttransfer} time_total:%{time_total}\n" https://目标域名/。重点看time_connect(TCP建立)与time_starttransfer(TTFB)差异,time_appconnect为TLS握手所耗时间。
在Chrome DevTools Network面板清空缓存(Disable cache),勾选Preserve log,加载页面并记录:DNS lookup、Initial connection(TCP)、TLS、Request sent、Waiting(TTFB)、Content Download。导出HAR文件(右键 -> Save all as HAR with content)以便精确分析每个请求的时间线。
在目标香港服务器上运行iperf3 -s,然后客户端运行 iperf3 -c 目标IP -P 4 -t 30。观察带宽、丢包与抖动。CN2通常在带宽和稳定性上优于普通公网路径,iperf结果可反映TCP流量在中间链路的实际吞吐。
每项测试至少重复5-10次并取均值或中位数。对于页面加载,用不同时间段(高峰、非高峰)统计。记录本地网络状况(Wi-Fi vs 有线)、同时其它流量,尽量在空闲网络中做测量以减少干扰。
用tcpdump抓包后查看TCP重传、SYN重传、RST等:tshark -r file.pcap -q -z conv,tcp 或在Wireshark中应用tcp.analysis.retransmission和tcp.analysis.fast_retransmission过滤。丢包常导致页面加载显著变慢,即便RTT低。
做对比测试:分别测站点的香港IP与中国大陆出口的测试IP,或使用不同运营商(电信/联通/移动)比较traceroute与RTT差异。若CN2路径延迟普遍更低、少丢包,则证实CN2效果较好。
确保测试前清理浏览器缓存、关闭加速插件、在客户端禁止CDN缓存影响(可用带时间戳的URL),并保存所有抓包与日志以便复核。若要复现:1) 启动抓包;2) 清空缓存;3) 运行对应curl/浏览器加载;4) 停止抓包并分析。
不要只看ICMP ping来判定TCP性能;也不要忽略中间设备(防火墙、DPI)对TCP的影响。CN2优势表现为更稳定的路径和可能更短的AS跳数,但最终体验取决于服务器端响应速度与CDN分发。
答:没有固定值,通常从大陆发往香港走CN2可降低几毫秒到几十毫秒RTT,并减少丢包与抖动;对于长传输或多并发请求,带宽与稳定性提升更明显。实际收益需用上文的方法在你的具体节点上测量对比。
答:用tcpdump/tshark在客户端抓包,只抓目标IP端口,发起新的连接,找出SYN包时间戳与对应SYN/ACK时间戳,两者相减即为握手往返时间。使用tshark可脚本化批量计算以减少手工误差。
答:通过分层测量可区分:若TCP/TLS handshake及TTFB都高,倾向网络延迟或中间链路问题;若TTFB低但Content Download或DOM/JS执行慢,倾向服务器或页面自身。结合curl的各阶段时间与Chrome DevTools的水瀑图即可明确定位。
