网站首页 > 博客文章 正文
某天接到一线工程师反馈,用户在登录和使用某台server的远程桌面过程中延迟非常大,而连接其他的server正常。一线工程师已经做了以下尝试:
1 使用client去ping server,没有丢包,返回延迟比较小;
2 更换server至交换机的物理链路;
3 更换上行交换机;
一线工程师怀疑是server端的问题,但无法证明自己的推测,陷入了"我"为什么是"我"的死锁,甩锅也是需要强力证据来支撑的。一切展示给我们的故障现象,一定都隐藏在底层的错误积累。
一线工程师在Client端的汇聚交换机做了端口镜像,从Client端(A:172.16.26.107)分别mstsc正常Server(B:172.16.4.26)和非正常Server(C:172.16.0.105),并使用wireshark抓包。
说到wireshark说段有趣的事,wireshark的开发者在分析和排查网络的故障的时候,最初使用sniffer,后来sniffer收费了,换成我们可能第一反应是去"破解",但是开发者有版权意识:)自己开发并开源至今,当然如果对于英文不好,可以使用科来(基于wireshark内核)等国产的软件。
分析:1 SYN ---SYN,ACK---ACK,通过time的时间戳能看的出响应时间都很短,在0.001S左右,印证了网络质量没有问题。
2 在SYN,ACK时,C并没有携带WS(windows scale),导致在三次握手协商后,滑动窗口为分别为:64240,525568(Calculated windows size = windows size *Window size scaling factor)。其实到这里基本可以判断出故障的原因了:C由于没有开启Window scale,导致tcp协商时无法自动调节CWS,导致在交互过程中需要大量的ACK,影响了整体相应时间。我们对比以下用户认证的过程也可以看得出,B只需要3次交互,而C需要6次:
问题反馈给系统工程师,通过修改相应的参数,msrdp访问缓慢故障解决。
以下简单介绍本次用到的tcp三次握手中的几个参数:
1 TCP ACK的时候默认最大64240,我们姑且不扣除ip和tcp头部的20+20开销,那么这个值应该是65535=2^16,也就是每个窗口16bit,最大64k的速度,但由于现在网络带宽的大幅提升不足以支撑目前的需求,因此设计了options位的window scale来放大,由TCP发起端携带,如果发起端未携带,则被请求段不会携带该option位,本次是8=2^3,2^8=256倍:
2 Server在SYN+ACK同理如上:
3 Ack,Client端最终协商出滑动窗口:2053*256=525568远大于本次故障的64420;
如大家对抓包并使用wireshark或者科来分析故障,可留言关注,分享更多案例和技巧。
猜你喜欢
- 2024-10-19 IP和TCP抓包分析实验(ipv4抓包实验)
- 2024-10-19 抓包分析之蠕虫网络行为特征(蠕虫抓取软件)
- 2024-10-19 wireshark抓包工具的使用详解(wireshark抓包工具的工作原理)
- 2024-10-19 西门子S7协议抓包分析并用代码实现(二)
- 2024-10-19 玩玩抓包(七)巧用“科来”,让分析更轻松
- 2024-10-19 WireShark抓包报文结构分析(wiresharkicmp抓包分析)
- 2024-10-19 SSL/TLS握手详解抓包分析(ssl握手失败是什么意思)
- 2024-10-19 记一次抓包的最基本原理(抓包程序原理)
- 2024-10-19 如何使用Wireshark捕获和分析网络数据包?
- 2024-10-19 Redis的RESP协议:抓包分析与深度揭秘
你 发表评论:
欢迎- 367℃用AI Agent治理微服务的复杂性问题|QCon
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 355℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 346℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 344℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 342℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)