注:在閱讀以前要確認本身會tcpdump和wireshark的基本操做哈~windows
抓包位置:客戶端後端
現象:客戶端發了一個syn包,而後一直在重傳,時間間隔按1s、2s、4s...倍數增加,最後斷開鏈接。服務器
過濾命令: tcp.flags.syn==1 and tcp.analysis.retransmission
網絡
緣由:這種狀況通常是服務器沒有開放對應的服務,或者你的客戶端IP被防火牆加黑了tcp
抓包位置:服務器網站
現象:客戶端發來syn包,服務器迴應syn+ack,可是客戶端一直不回ack。阿里雲
過濾命令: tcp.flags.syn==1 and tcp.analysis.retransmission
操作系統
緣由:代理
抓包位置:客戶端/服務器code
現象:
當服務器後端對應多個服務,爲了區分https請求是請求哪一個服務,設定了擴展字段SNI(Sever Name Indication),裏面有請求的Host信息,服務器根據SNI來選擇對應的服務。
查看數據包,發現SSL握手時,client hello包裏面沒有SNI(Sever Name Indication)字段,服務器沒法識別,故SSL握手失敗。
解決方法:
抓包位置:客戶端+服務器、代理先後
緣由:
若經過不一樣廠家的設備來組建網絡,特別是裏面有代理轉發的設備,須要確認下是不是都支持標準的tcp協議,並根據協商好的MSS值來轉發數據。當數據包長度大於協商的MSS值,理應被丟棄。
以前有一個廠家的array設備作了代理,但未按照標準協議,轉發了數據包長度異常的數據包(一個請求),後面的設備按照標準協議,丟棄了數據包。
現象:
從客戶端看到的現象是請求發過去了,並被接受了,但在服務器上卻沒有看到請求。
解決方法:
阿里雲會對攻擊/大流量IP進行自動封鎖,並攔截應用層的數據包,同時,會發送一個rst包。
針對https請求,某廠商防火牆會發送一個告警(encrypted alert)數據包,中斷鏈接。