使用wireshark分析一下数据包

注:在阅读以前要确认本身会tcpdump和wireshark的基本操做哈~windows

syn包不回

抓包位置:客户端后端

现象:客户端发了一个syn包,而后一直在重传,时间间隔按1s、2s、4s...倍数增加,最后断开链接。服务器

过滤命令: tcp.flags.syn==1 and tcp.analysis.retransmission网络

缘由:这种状况通常是服务器没有开放对应的服务,或者你的客户端IP被防火墙加黑了tcp

syn+ack不回

抓包位置:服务器网站

现象:客户端发来syn包,服务器回应syn+ack,可是客户端一直不回ack。阿里云

过滤命令: tcp.flags.syn==1 and tcp.analysis.retransmission操作系统

缘由:代理

  1. 客户端和服务器间网络问题,客户端能够到服务器,服务器没法到客户端,建议排查主机之间的路由
  2. 客户端在搞鬼了,在进行syn攻击,建议封堵这些攻击IP

SSL握手失败

抓包位置:客户端/服务器code

现象:

  1. windows xp系统下使用ie访问不了https网站

当服务器后端对应多个服务,为了区分https请求是请求哪一个服务,设定了扩展字段SNI(Sever Name Indication),里面有请求的Host信息,服务器根据SNI来选择对应的服务。

查看数据包,发现SSL握手时,client hello包里面没有SNI(Sever Name Indication)字段,服务器没法识别,故SSL握手失败。

解决方法:

  1. 升级客户端操做系统
  2. 服务器仅对应一个服务

请求没回应

抓包位置:客户端+服务器、代理先后

缘由:

  1. 多层代理下的MSS值协商问题
  2. 防火墙拦截

MSS协商问题

若经过不一样厂家的设备来组建网络,特别是里面有代理转发的设备,须要确认下是不是都支持标准的tcp协议,并根据协商好的MSS值来转发数据。当数据包长度大于协商的MSS值,理应被丢弃。

以前有一个厂家的array设备作了代理,但未按照标准协议,转发了数据包长度异常的数据包(一个请求),后面的设备按照标准协议,丢弃了数据包。

现象:
从客户端看到的现象是请求发过去了,并被接受了,但在服务器上却没有看到请求。

解决方法:

  1. 换掉不遵循协议的设备
  2. 在后面的设备上取消对MSS的限制

防火墙拦截

阿里云会对攻击/大流量IP进行自动封锁,并拦截应用层的数据包,同时,会发送一个rst包。

针对https请求,某厂商防火墙会发送一个告警(encrypted alert)数据包,中断链接。

相关文章
相关标签/搜索