通过分析tcp三次握手,查找故障

简介:
故障:一台服务器开放tcp 80端口,一些客户端能正常访问,还有一些客户端不能访问,但通过telnet ip 80,却能打开端口。
故障分析:服务器外边防火墙原因?服务器原因?客户端浏览器原因?客户端防火墙原因?
在服务器上tcpdump抓包,使用命令:tcpdump host 192.168.0.123 -A and port 80 -i eth2
抓包结果如下:
[root@system ~]# tcpdump host 172.16.0.23 -A and port 80 -i eth1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
16:58:46.734731 IP 172.16.0.23.1120 > 192.168.101.253.http: S 96697639:96697639(0) win 65535 <mss 1460>
E..,
.@.x...D.
;
        ..e..`.P..}'....`....)........
16:58:46.799835 IP 192.168.101.253.http > 172.16.0.23.1120: S 1625956342:1625956342(0) ack 96697640 win 5840 <mss 1460>
E..,..@.@..i..e.D.
;
        .P.``.....}(`....h......
16:58:49.933302 IP 192.168.101.253.http > 172.16.0.23.1120: S 1625956342:1625956342(0) ack 96697640 win 5840 <mss 1460>
E..,..@.@..i..e.D.
;
        .P.``.....}(`....h......
16:58:55.932385 IP 192.168.101.253.http > 172.16.0.23.1120: S 1625956342:1625956342(0) ack 96697640 win 5840 <mss 1460>
E..,..@.@..i..e.D.
;
        .P.``.....}(`....h......
16:59:07.930560 IP 192.168.101.253.http > 172.16.0.23.1120: S 1625956342:1625956342(0) ack 96697640 win 5840 <mss 1460>
E..,..@.@..i..e.D.
;
        .P.``.....}(`....h......
16:59:32.126894 IP 192.168.101.253.http > 172.16.0.23.1120: S 1625956342:1625956342(0) ack 96697640 win 5840 <mss 1460>
E..,..@.@..i..e.D.
;
        .P.``.....}(`....h......
17:00:20.319557 IP 192.168.101.253.http > 172.16.0.23.1120: S 1625956342:1625956342(0) ack 96697640 win 5840 <mss 1460>
E..,..@.@..i..e.D.
;
        .P.``.....}(`....h......
抓包分析:
16:58:46.734731 客户端172.16.0.23主动访问192.168.101.253的80端口。此为tcp三次握手的第一阶段,syn发送
16:58:46.799835一直到17:00:20.319557 服务器端一直都在发送syn,并ack客户端过来的syn,此为三次握手的第二阶段,被动发送syn,并进行ack
但一直未收到客户端的最后一阶段的ack。
而客户端能通过telnet 192.168.101.253 80,则证明,客户端已能接受到服务器三次握手的第二阶段,并发送了最后一个ack,进入establishe阶段,并显示为端口打开。
而服务器没有收到,服务器端不会认为三次握手结束啦,所以一直发送syn,直到超时。
证明在客户端有防火墙之类把ack给屏蔽住了。
解决策略:由于整个网络当时有两个网络合并而成,有些路由器配置有问题。后来听说修改了一下链路上的路由器,问题解决了。
疑问:路由器上有什么限制,能允许tcp的syn通过,但阻止ack通过呢?
分析可能有错误之处,请高手指点。


本文转自 此号无效1 51CTO博客,原文链接:http://blog.51cto.com/test2016/200733
相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务&nbsp;ACK 容器服务&nbsp;Kubernetes&nbsp;版(简称&nbsp;ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情:&nbsp;https://www.aliyun.com/product/kubernetes
相关文章
|
缓存 网络协议 安全
TCP通信机制:三次握手、四次挥手、滑动窗口
TCP通信机制:三次握手、四次挥手、滑动窗口
635 1
TCP通信机制:三次握手、四次挥手、滑动窗口
|
网络协议
TCP/UDP相关-三次握手四次挥手以及为什么三次握手-如何实现可靠UDP传输
TCP/UDP相关-三次握手四次挥手以及为什么三次握手-如何实现可靠UDP传输
123 0
|
缓存 网络协议 安全
TCP三次握手四次挥手及常见问题解决方案
TCP三次握手四次挥手及常见问题解决方案
TCP三次握手四次挥手及常见问题解决方案
|
网络协议
ACK的累加规则-wireshark抓包分析-不包含tcp头部、ip头部、数据链路层头部等。
ACK的累加规则-wireshark抓包分析-不包含tcp头部、ip头部、数据链路层头部等。
ACK的累加规则-wireshark抓包分析-不包含tcp头部、ip头部、数据链路层头部等。
|
网络协议 测试技术
软件测试|TCP三次握手四次挥手
软件测试|TCP三次握手四次挥手
123 0
软件测试|TCP三次握手四次挥手
|
网络协议
TCP三次握手与四次挥手
TCP三次握手与四次挥手
135 0
|
网络协议 网络性能优化
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(下)
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(下)
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(下)
|
缓存 网络协议 网络性能优化
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(上)
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(上)
计算机网络【UDP与TCP协议(三次握手、四次挥手)】(上)
|
网络协议 安全 Linux
《我要进大厂》- 计算机网络夺命连环23问,你能坚持到第几问?(TCP 三次握手、四次挥手
《我要进大厂》- 计算机网络夺命连环23问,你能坚持到第几问?(TCP 三次握手、四次挥手
《我要进大厂》- 计算机网络夺命连环23问,你能坚持到第几问?(TCP 三次握手、四次挥手
|
存储 网络协议 算法
《我要进大厂》- 计算机网络夺命连环20问,你能坚持到第几问?(应用层协议 | TCP三次握手、四次挥手 | TCP可靠传输 | Cookie&Session)(下)
《我要进大厂》- 计算机网络夺命连环20问,你能坚持到第几问?(应用层协议 | TCP三次握手、四次挥手 | TCP可靠传输 | Cookie&Session)
《我要进大厂》- 计算机网络夺命连环20问,你能坚持到第几问?(应用层协议 | TCP三次握手、四次挥手 | TCP可靠传输 | Cookie&Session)(下)