菜菜的团队故事
2020 年,菜菜一直带领团队忙于渠道对接的项目,可谓是渠道接了 N 个,被甩锅的问题遇到 N*N,虽说问题形态千奇百怪,久而久之倒是沉淀了不少解决方案,下面择其一事儿而述之,望洗耳恭听。
菜菜带领兄弟们,挑灯夜战数余天,项目终于可以如期进行上线。
按照团队的惯例,上线前要把生产环境提前做好。菜菜预先安排兄弟小郭去打通 络环境(数据库、访问域名等),以免上线时出幺蛾子。
待 络打通后,兄弟们怀着乐呵的心情把应用部署到生产,应用启动后,未曾想一调用就 Connection Reset … …
见状,菜菜团队中的主力干将小于同学就找三方确认原因,而三方一口咬定没啥问题… … 在小于同学与三方交涉之际,经过岁月洗礼的菜菜同学,说时迟那时快,已经启动 Wireshark 软件。
只见菜菜在 Wireshark 上熟练的输入常用的表达式进行筛选过滤,让 络问题的原形毕露,抓下现场证据并扔给三方,三方见状哑口无言。
菜菜只是一心想传达:做技术就应该有做技术的样子,说话再多都是废话,唯有实现落地解决问题才是硬道理。
菜菜的诊断技巧
根据菜菜的经验,与三方对接时多数问题都出在 TCP 建立连接环节,也就是出在握手环节上,当遇到 TCP 连接建立失败时,最稳妥的排查方式莫过于借助 Wireshark 来分析,但是鉴于失败的握手表现各有不同,那么解决起来还是很需要技巧的。
【菜菜诊断技巧一:Connection Reset】
这个技巧(上述表达式)可以过滤出 Seq 为 1,且含有 Reset 标志的包,通常表示握手请求被对方拒绝了(建立连接时被对方拒绝了)。
实战如下:
右键点击关注的包,然后选择 Follow -> TCP Stream 菜单。
随后就可以把失败的全过程显示出来啦。
【菜菜诊断技巧二:TCP Retransmission】
这个技巧(表达式)可以过滤出因为对方没收到,或者对方回复的确认包丢失了的重传握手请求。
实战如下:
右键点击关注的包,然后选择 Follow -> TCP Stream 菜单。
随后就可以把失败过程显示出来啦,很显然此次握手失败的原因丢包导致 20.20.20.21 收不到握手请求。
【菜菜诊断技巧三:客户端服务端双管齐下】
当你排除一切不可能的情况,剩下的不管多么难以置信,那都是事实——福尔摩斯。用 Wireshark 排查问题,和福尔摩斯侦探破案的思路是一致的,首先要尽量全的把 络包捕捉到(客户端、服务端都进行抓包,不放过任何一个细节),然后在 络包中寻找各种线索,再根据 络协议作出推理,接着刨去人为掩盖的证据,才能得到最后的真相。
菜菜的闲话
本次主要谈了一下如何借助 Wireshark 来定位问题,希望对大家有帮助。纸上得来终觉浅,绝知此事要躬行,有些传达不到的地方,还需要结合 Wireshark 抓包自行分析一番。
本次 Wireshark 分享就写到这里,为了能够让分享不出现纰漏,查阅了很多文档、书籍以及官方资料,归纳汇总一下给老铁,希望对老铁能有所帮助。
资料分享:
参考书籍:
历史推文:
抓包神器 Wireshark,帮你快速定位线上 络故障(1)
抓包神器 Wireshark,帮你快速定位线上 络故障(2)
抓包神器 Wireshark,帮你快速定位线上 络故障(3)
抓包神器 Wireshark,帮你快速定位线上 络故障(4)
抓包神器 Wireshark,帮你快速定位线上 络故障(5)
写在最后:
2020,感恩生命中的所有遇见;2021,一起牛转钱坤涅槃重生。一起聊技术、谈业务、喷架构,少走弯路,不踩大坑。会持续输出精彩分享,敬请期待!
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!