針對 TCP/IP 連線能力進行疑難解答

試用我們的虛擬代理程式 - 它可協助您快速識別並修正常見的 Active Directory 複寫問題。

適用於: Windows 10

您可能會在應用程式端遇到連線錯誤或逾時錯誤。 以下是最常見的案例:

  • 資料庫伺服器的應用程式連線能力
  • SQL 逾時錯誤
  • BizTalk 應用程式逾時錯誤
  • 遠端桌面通訊協定 (RDP) 失敗
  • 檔案共用存取失敗
  • 一般連線能力

當您懷疑問題發生在網路上時,您會收集網路追蹤。 接著會篩選網路追蹤。 在針對連線錯誤進行疑難解答期間,您可能會在網路擷取中遇到可能表示網路問題的 TCP 重設。

  • TCP 定義為連線導向和可靠的通訊協定。 TCP 確保可靠性的其中一種方式是透過交握程式。 建立 TCP 工作階段的開頭是三向交握,後面接著數據傳輸,然後是四向關閉。 傳送者和接收者同意關閉會話的四向關閉稱為正常關閉。 在四向關閉之後,伺服器會允許 4 分鐘的時間 (預設) ,在這段期間內,網路上任何擱置的封包都會進行處理,這段期間是TIME_WAIT狀態。 TIME_WAIT狀態完成之後,會釋放配置給此聯機的所有資源。
  • TCP 重設是會話突然關閉;它會立即釋放配置給連線的資源,並清除連線的所有其他資訊。
  • TCP 重設是由 TCP 標頭中設為 1 的 RESET 旗標所識別。

來源和目的地上的網路追蹤可協助您判斷流量的流量,並查看何時會觀察到失敗。

下列各節說明當您看到 RESET 時的一些案例。

封包卸除

當一個 TCP 對等傳送出沒有從另一端收到任何回應的 TCP 封包時,TCP 對等最後會重新傳輸數據,如果沒有收到任何回應,則會藉由傳送 ACK RESET 來結束會話 (此 ACK RESET 表示應用程式認可目前為止交換的任何數據, 但由於封包卸除,連線) 關閉。

來源和目的地上同時進行的網路追蹤可協助您驗證此行為,其中您會在來源端看到重新傳輸的封包,且在目的地上看不到這些封包。 此案例表示來源與目的地之間的網路裝置正在卸除封包。

如果初始 TCP 交握因為封包捨棄而失敗,則您只會看到 TCP SYN 封包重新傳輸三次。

連接埠 445 上的來源端連線:

網路監視器中畫面摘要的螢幕快照。

目的地端:套用相同的篩選條件時,您不會看到任何封包。

網路監視器中具有篩選條件的畫面摘要螢幕快照。

針對其餘數據,TCP 會重新傳輸封包五次。

來源 192.168.1.62 端追蹤:

顯示封包端追蹤的螢幕快照。

目的地 192.168.1.2 端追蹤:

您不會看到上述任何封包。 Engage 您的網路小組調查不同的躍點,並查看是否有任何躍點可能造成網路下降。

如果您看到 SYN 封包到達目的地,但目的地仍未回應,請確認您嘗試連線的埠是否處於接聽狀態。 (Netstat 輸出將有助於) 。 如果埠正在接聽,但仍然沒有回應,則可能會有 wfp 卸除。

TCP 標頭中的參數不正確

當中間裝置在網路中修改封包,且接收端上的 TCP 無法接受封包時,例如正在修改的序號,或是透過變更序號由中間裝置重新執行封包時,您會看到此行為。 同樣地,來源和目的地上的同時網路追蹤將能夠告訴您是否有任何 TCP 標頭已修改。 從比較來源追蹤和目的地追蹤開始,您將能夠注意到封包本身是否有變更,或是否有任何新的封包代表來源抵達目的地。

在此情況下,您再次需要網路小組的協助,以識別正在修改封包或將封包重新執行至目的地的任何裝置。 最常見的是 RiverBed 裝置或 WAN 加速器。

應用程式端重設

當您發現重設不是因為重新傳輸或參數不正確,或是利用網路追蹤的協助修改封包時,您已將其縮小為應用層級重設。

應用程式重設是您看到通知旗標與重設旗標一起設定為1的重設。 此設定表示伺服器認可封包的收據,但基於某些原因,它將不會接受連線。 這個階段是接收封包的應用程式不喜歡收到的封包時。

在下列螢幕快照中,您會看到來源和目的地上看到的封包相同,而不需要任何修改或卸除,但您會看到目的地傳送至來源的明確重設。

來源端

網路監視器中來源端封包的螢幕快照。

在目的地端追蹤上

網路監視器中目的地端封包的螢幕快照。

當 TCP 建立封包 SYN 傳送出時,您也會看到 ACK+RST 旗標封包。當用戶端想要在特定埠上連線時,會傳送 TCP SYN 封包,但如果目的地/伺服器基於某些原因而不想接受封包,則會傳送 ACK+RST 封包。

具有 ACK RSK 旗標的封包螢幕快照。

造成重設 (埠號碼所識別) 的應用程式應該進行調查,以瞭解造成重設連線的原因。

注意事項

上述資訊是關於從 TCP 觀點重設,而不是 UDP。 UDP 是無連線通訊協定,且封包會以不可靠的方式傳送。 使用 UDP 作為傳輸通訊協定時,您不會看到重新傳輸或重設。 不過,UDP 會使用 ICMP 作為錯誤報告通訊協定。 當您已在埠上傳送 UDP 封包,且目的地未列出埠時,您會看到傳送 ICMP 目的地主機的目的地無法連線: UDP 封包之後立即傳送無法連線的埠訊息。

10.10.10.1  10.10.10.2  UDP UDP:SrcPort=49875,DstPort=3343
 
10.10.10.2  10.10.10.1  ICMP    ICMP:Destination Unreachable Message, Port Unreachable,10.10.10.2:3343

在疑難解答連線問題期間,您可能也會在網路追蹤中看到計算機接收封包但未回應。 在這種情況下,伺服器層級可能會下降。 若要瞭解本機防火牆是否正在卸除封包,請在計算機上啟用防火牆稽核。

auditpol /set /subcategory:"Filtering Platform Packet Drop" /success:enable /failure:enable

然後,您可以檢閱安全性事件記錄檔,以查看特定埠 IP 上的封包卸除,以及與其相關聯的篩選標識符。

具有篩選標識碼的事件屬性螢幕快照。

現在,執行 命令 netsh wfp show state,此執行將會產生 wfpstate.xml 檔案。 開啟此檔案並篩選您在上述事件 (2944008) 中找到的標識符之後,您將能夠看到與封鎖連線之此標識符相關聯的防火牆規則名稱。

wfpstate xml 檔案的螢幕快照,其中包含與封鎖連線之篩選標識符相關聯的防火牆規則名稱。