Cache

下載經常暫停和超時

  • December 31, 2014

我是新的系統和網路管理員。我的經驗是系統和伺服器的硬體和軟體,網路部分對我來說很新。我熟悉將數字插入網路配置,但如果你問我關於子網劃分或丟包 (;) 的問題,你會看到我臉上閃過這種真正失落的表情。我在學。

這是我的問題:

在接管這里大約兩個月前,以前的網路管理員報告說他們在下載大文件時遇到了問題。好吧,不僅僅是大文件,大文件更令人沮喪。現在我是負責下載的人(從隨機驅動程序到我們的 Technet 訂閱和許可協議中的最新發行版和 SP,再到我們各個部門的數 GB 工程軟體包),我必須“照看”下載,讓我一次被鎖在辦公桌上幾個小時。

如果我不暫停並在下載失敗之前重新啟動下載,下載將開始正常並到達從幾 K 到幾 G 的隨機點,然後下載將停止並失敗。有時暫停/重新啟動會立即起作用,下載會加快速度並在循環重複之前進行一點。有時我必須經過幾個暫停/重新啟動循環才能開始下載實際再次下載。

網路和 ISP 詳細資訊:

  • 由我們的 ISP 提供的光纖網際網路連接(我們當地的城市是我們的 ISP)。下載速度通常在 1.1Mbps 左右,峰值高達 1.6Mpbs。有時在暫停/重啟週期中,我們會看到速度低至幾百 Kbps,但在幾個週期之後,它會再次加速。來自不同主機的速度非常一致。
  • 我們的內部網路中沒有代理,也沒有我知道阻止連接的防火牆。我們使用 Cisco 1811W 作為我們的網關,但之前沒有遇到任何問題。

這個問題是在 9 月左右首次注意到的,我們可以將其歸因於那個時候我們方面沒有任何變化。

我應該進行哪些測試、檢查等,以確定問題出在我們這邊還是 ISP?

更新:

我正在觀看為大型下載的 TCP 流過濾的 Wireshark 提要,這幾天我遇到了麻煩。大多數流量幀都被標記…

持續或非 HTTP 流量

…我認為這只是包含下載的後續數據包。然而,相對頻繁(每 3-20 秒之間)並且與 Firefox 報告的下載速度的任何下降幾乎完全對應的是標記為…

$$ TCP Retransmission $$持續或非 HTTP 流量

還有一些隨機幀,通常在重傳數據包周圍散佈,兩邊各有幾十幀,標記為…

$$ TCP Previous segment lost $$持續或非 HTTP 流量

…而且 whadayaknow,下載在 3.2GB 文件的一半左右就失敗了。最後一幀是 TCP Previous Segment Lost 幀。這是在我不得不暫停下載並嘗試重新啟動它之後立即出現的:隊列立即失敗。

下載的最後一幀是http$$ ACK $$接著是http$$ FIN, ACK $$,我相信這表明了一個“優雅的” TCP 連接關閉。

我沒有看到任何其他跡象表明中間人打斷了我。

更新 2

在所有下載的瀏覽器和應用程序中都觀察到該問題,並且在所有允許暫停/重新啟動的應用程序中,暫停/重新啟動功能在 99% 的時間內都有效。特定的應用程序和瀏覽器我可以很容易地複制它:Firefox(目前版本)、IE(9)、iTunes(為 iOS 設備下載應用程序和更新)。我不確定這些是否都對下載中的暫停/恢復功能使用相同的功能。

iTunes 從所有允許重新啟動的伺服器下載(iOS 更新文件除外),因此我暫停下載多長時間並不重要。我從(MS、PTC、Solidworks、AutoDesk)下載大文件的大多數網站不支持恢復停止/取消的下載(MS 支持但僅從那里基於 java 的下載管理器),所以我只能暫停大約 15 秒max before download 將在嘗試恢復時立即失敗。

更新 3

使用 mturoute(感謝 Tom H),我發現一致的路由最大 MTU 在分段之前為 1500 字節,並且路徑承載 ICMP 有效負載,端到端分段為 10000 字節,沒有太多問題,包括通過我的 ISP 設備的躍點。所以問題似乎不是碎片或不兼容的 MTU 設置。

ICMP 也沒有被我的 ISP 阻止,BitTorrent 也沒有,儘管我沒有使用 BT 下載這些文件。

更新 4

因此,從 WireShark 日誌來看,我需要研究的是如何確定重傳和前段失去幀的原因。我將如何隔離這些可能的來源?

通常,您可以通過系統地證明網路的各個部分良好來隔離和解決問題。是一個自信的過程

  1. 如果您可以在連接到乙太網和無線的設備中複製問題,可以問題隔離在網路 <=> Cisco 1811W <=> DSL 光纖 <=> ISP <=> 和 Internet 之間的最終鏈路中
  2. 如果您只在有線網路無線設備中看到問題,那麼您可以針對 Cisco 1811W 上的有線乙太網或無線配置。然後,您可以在下一步中查看問題段的通用設置。
  3. 通常,在測試某些設備時,重新安裝任何常用連接的乙太網電纜,並嘗試更換 DSL 電纜(如果有)。
  4. 檢查路由器上為 DSL 設置的 MTU 和自動協商設置,查看來自 IOS 的路由器日誌文件。

路由器將執行 IOS 12 或類似的系統,它將有一些通過 ssh 訪問的好命令行工具來檢查協商設置。

使用該show interfaces命令查看錯誤統計資訊,例如重新發送和丟棄的數據包。它甚至可能有一個 Web 界面(但我目前沒有使用 cisco IOS 設備,所以這不是僅從我對解決 cisco 網路故障所做的一些筆記中測試的)

但是,您應該能夠使用從 cisco 控制台提取每個埠錯誤統計資訊的表

# show interfaces status
# show interfaces counter errors

對於特定的埠,例如

# show interface GigabitEthernet 5/28 status
# show interface GigabitEthernet 0/24 switchport

編輯:這是一些人的小影片,展示瞭如何使用 ios“顯示介面計數器錯誤”來解決問題。它實際上非常酷,但它可能過於深入,但它為您提供了檢測雙工不匹配或自動協商設置所需的資訊。

ps您可以通過將替代DSL路由器插入光纖連接來證明連接的路由器部分,如果下載工作找到它們,您就知道問題出在這一端,而不是ISP端。

一些 ISP 做出了一個奇怪的決定,即在其交換機或防火牆上阻止所有 ICMP 數據包。這會阻止路徑 MTU 的計算,這意味著當它們通過具有較低 MTU 的路由時,會出現更多碎片數據包。也許你看到了這個結果。

碎片數據包必須重新組裝,如果您也有封包遺失,這可能是一個問題!鑑於您正在嘗試下載大文件,碎片和封包遺失將是一個更大的問題。路徑 MTU 發現旨在減少碎片。

那麼,您如何知道您的 ISP 是否對您這樣做了呢?你可以問他們——但是,根據我的經驗,ISP 更願意讓你在幾天/幾週內進行基本的故障排除,而不是承認他們可能做錯了什麼。當然,有時他們是對的!

您應該收集資訊以向他們展示您所看到的。像您在 Wireshark 中所做的或在防火牆處收集的數據包擷取很有幫助,因為它們通常會顯示碎片級別。tracepath您可以使用(*nix) 或mturoute(Windows)檢查路徑 MTU 發現是否正常工作。

如果您確實發現 pMTU 無法正常工作,則可能是您的 ISP 或您嘗試下載的站點的 ISP。如果您發現從多個站點下載的問題,很可能是您的 ISP。

當然,它也可能是一大堆其他的東西:-) 祝你好運!

引用自:https://serverfault.com/questions/355456