使用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)數據包,中斷鏈接。

相關文章
相關標籤/搜索