Networking
為什麼我在 LAN 中連接時的 TCP 連接延遲很長(通過交叉!)?
我正在測量連接到同一個 Cisco 交換機的兩台 Linux 電腦之間從發送 TCP SYN 到獲得 SYN/ACK 大約 100-150 毫秒的時間。考慮:
- 這些機器非常強大,它們和交換機都不是很重。
- 通過分析兩台機器上的 tcpdumps 日誌,我發現問題不在於端點,而在於網路本身(客戶端看到 100-150 毫秒的延遲,但伺服器在大約 10 毫秒內處理響應)。
- 只有 SYN 請求很慢。之後,正常的 TCP 數據包會立即收到 ACK。
所以,我的問題是:
- 我認為這是正確的,太多了嗎?
- 我應該瞄準什麼延遲?
- 我可以做些什麼來進一步診斷和解決問題?
編輯- 我們已將開關從等式中移除。兩台電腦現在通過交叉電纜連接,我們仍然看到問題。兩者都是全雙工,100 MBPS。
嗯,廢話。看來我誤讀了 tcpdump 和 wireshark 日誌。我得到的延遲是 100 微秒,而不是毫秒!
替代文字 http://ironicsurrealism.blogivists.com/files/2009/10/homer-simpson-doh.gif
普通嫌疑犯:
雙工不匹配
- 檢查開關是否有衝突或錯誤
- 檢查主機是否存在衝突或錯誤如果你看到衝突,那一端是半雙工的,應該設置為全雙工。如果您看到錯誤,請檢查另一端是否存在衝突。如果兩端都有錯誤,則可能是電纜損壞。
DNS 超時
- 登錄到一台主機,使用 nslookup 查找另一台主機的 IP。你應該很快得到一個名字或一個錯誤