<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 網絡基本功(二十四):Wireshark抓包實例分析TCP重傳 **轉載請在文首保留原文出處:EMC中文支持論壇**[https://community.emc.com/go/chinese](https://community.emc.com/go/chinese) [![image001.gif](https://community.emc.com/servlet/JiveServlet/downloadImage/2-862231-106211/image001.gif)](https://community.emc.com/servlet/JiveServlet/showImage/2-862231-106211/image001.gif) ## 介紹 TCP發送一個或一組報文,會等待收到報文的確認信息。重傳,即發生在報文沒有到達或確認信息沒有及時返回的情況下。當發現網速變慢時,原因之一可能就是重傳。發生重傳的原因有多種,在客戶機或服務器兩邊端口應用Wireshark有助于診斷問題。本文通過抓包實例闡述各種可能性。 ## 更多信息 **診斷過程:** 1. 在相應端口開始抓數據。 2. 找到**Analyze** | **Expert Info**菜單。 3. 在**Notes**之下,查找**Retransmission**。 4. 點擊(+)符號即可打開重傳列表。鼠標點擊各行可在抓包面板看到重傳報文。 5. 現在問題來了,怎樣定位問題呢? 6. 通過以下方式查看重傳來自哪里: * 在Expert Info窗口一個一個查看報文,在抓包面板查看哪些是重傳報文(適合于有經驗的用戶) * 在報文面板,配置顯示過濾器expert.message == “Retransmission (suspected)”,即可看到抓包文件中所有重傳報文 * 應用過濾器,在**Statistics & Conversations**窗口查看**Limit to display filter**部分。 Case 1:重傳至多個目的地址 以下截屏中,可看到有多次重傳,分布于多臺服務器,目的端口號為80(HTTP)。也可以發現重傳由端口10.0.0.5發送,因此報文是丟失在發往Internet的途中,或確認信息沒有及時從web服務器發回。 [![image002.jpg](https://community.emc.com/servlet/JiveServlet/downloadImage/2-862231-106224/670-248/image002.jpg)](https://community.emc.com/servlet/JiveServlet/showImage/2-862231-106224/image002.jpg) 問題發生在發往Internet的線路上,怎樣知道是什么問題呢? 1. 從**Statistics**菜單,打開**IO Graph**。 2. 本例中,可看到鏈路負載非常低。可能是有故障,或有另一條高負載鏈路。 3. 可以通過登錄到通信設備或SNMP瀏覽器查看引起重傳的原因:**報文丟失及錯誤**。參考以下截屏: [![image003.jpg](https://community.emc.com/servlet/JiveServlet/downloadImage/2-862231-106225/670-511/image003.jpg)](https://community.emc.com/servlet/JiveServlet/showImage/2-862231-106225/image003.jpg) Case 2:重傳至單一連接 如果所有重傳發生于同一IP,同一TCP端口號,則可能是**慢速應用引起**。看以下截屏: [![image004.jpg](https://community.emc.com/servlet/JiveServlet/downloadImage/2-862231-106226/670-239/image004.jpg)](https://community.emc.com/servlet/JiveServlet/showImage/2-862231-106226/image004.jpg) 對于單一連接的重傳,進行以下操作: 1. 從Statistics菜單打開Conversations,選擇Limit to display filter,可以看到所有發生重傳的會話,本情況下,是一個單一會話。 2. 如下圖所示,通過選擇**IPv4**標簽可看到從哪個IP地址重傳: [![image005.jpg](https://community.emc.com/servlet/JiveServlet/downloadImage/2-862231-106227/670-194/image005.jpg)](https://community.emc.com/servlet/JiveServlet/showImage/2-862231-106227/image005.jpg) ?? 3\. 如下圖所示,通過選擇TCP標簽看到重傳來自哪一端口: [![image006.jpg](https://community.emc.com/servlet/JiveServlet/downloadImage/2-862231-106228/670-191/image006.jpg)](https://community.emc.com/servlet/JiveServlet/showImage/2-862231-106228/image006.jpg) 要定位問題,進行以下步驟: 1. 查看IO graph,確保鏈路不忙。(鏈路忙的表征例如流量接近帶寬。例如,帶寬為10Mbps,在IO graph中看見流量接近10Mbps,這就表明鏈路負載較高。不忙的鏈路IO會有很多高低起落,峰值以及空閑間隙)。 2. 如果鏈路不忙,則可能是服務器對于IP地址10.1.1.200有問題(10.90.30.12發送了絕大多數重傳,所以可能是10.1.1.200響應較慢) 3. 從報文面板可以看出應用是FTP數據。有可能FTP服務器工作于active模式。因此在端口2350打開連接,服務器將端口更改為1972,所以可能是慢速FTP軟件響應問題引起的重傳。 Case 3:重傳模式 觀察TCP重傳的一個重要考量是是否能看出一些重傳模式。在以下截屏中,可以看見所有重傳來自單一連接,位于客戶端與服務器的NetBIOS會話服務(TCP端口139)。 [![image007.jpg](https://community.emc.com/servlet/JiveServlet/downloadImage/2-862231-106229/670-409/image007.jpg)](https://community.emc.com/servlet/JiveServlet/showImage/2-862231-106229/image007.jpg) 看起來像一個簡單的服務器/客戶端問題,但查看抓包面板,如下圖所示: [![image008.jpg](https://community.emc.com/servlet/JiveServlet/downloadImage/2-862231-106230/670-230/image008.jpg)](https://community.emc.com/servlet/JiveServlet/showImage/2-862231-106230/image008.jpg) 可以看見重傳總是周期性的每30ms發生一次。問題是由于客戶端在軟件中執行了財務進程,導致軟件每30-36ms就減速一次。 Case 4:應用無響應導致重傳 另一個可能導致重傳的原因是客戶端或服務器沒有響應請求。這種情況下,會看到五次重傳,時間也會逐漸延長。五次連續重傳后,發送方認為連接斷開(某些情況下,會發送reset來關閉連接,取決于軟件實施)。斷開連接之后,可能會發生兩件事情: * 發送SYN請求至客戶端,以打開一個新的連接。這種情況下用戶會看到應用凍結,過了15-20秒之后重新開始工作。 * 不發送SYN,用戶需要重新運行應用程序(或應用程序的一部分) 下圖顯示了打開新連接的情況: [![image009.jpg](https://community.emc.com/servlet/JiveServlet/downloadImage/2-862231-106231/670-199/image009.jpg)](https://community.emc.com/servlet/JiveServlet/showImage/2-862231-106231/image009.jpg) Case 5:由于延時變化導致重傳 TCP能夠充分容忍延時,前提是延時大小不發生變化。當延時改變時,就會發生重傳。診斷是否由該原因引起的方法: 1. 第一件事是ping目的地址,并且得到檢查通信鏈路延時的第一條信息。 2. 檢查延時變量,可能由以下原因引起: * 由于**不穩定或繁忙通信鏈路**引起。這種情況下,可以看到ping命令的延時變化,通常由于帶寬較窄。 * 由于**應用過載或資源不足**,這種情況下,只有該應用發生很多重傳。 * **通信設備過載(CPU,緩存)**引起延時。檢查方式直接連接通信設備。 3. 使用Wireshark工具診斷延時問題。 如果重傳達到0.5個百分比,性能就會下降,斷開連接將會達到5個百分比。這取決于應用及其對于重傳的敏感性。 定位重傳問題 當你看到通信鏈路上發生重傳,進行以下步驟: 1. 定位問題——是一個特定IP地址,特定連接,特定應用,還是其他問題。 2. 查看問題是否由于通信鏈路,丟包,慢速服務器還是PC。查看應用是否慢速。 3. 如果不是由于上述原因,檢查延時變化。 **工作原理:** TCP序列號/確認機制詳見前文:[網絡基本功(十):細說TCP確認機制](https://community.emc.com/message/842879#842879) 。那么重傳是由什么原因引起呢?當報文確認信息丟失,或ACK沒有及時到達,發送方會進行以下兩步操作: 1. 再次發送報文 2. 減少吞吐量。 更多TCP重傳內容詳見前文:[網絡基本功(九):細說TCP重傳](https://community.emc.com/message/842129#842129) 。 以下圖中展示了重傳減少發送方吞吐量(紅色細線): [![image010.jpg](https://community.emc.com/servlet/JiveServlet/downloadImage/2-862231-106232/670-369/image010.jpg)](https://community.emc.com/servlet/JiveServlet/showImage/2-862231-106232/image010.jpg) ## 參考 Network Analysis Using Wireshark Cookbook
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看