我一朋友公司反應,公司網絡卡頓,測試掉包嚴重,抓包wireshark測試,發現arp包有大量mac欺騙,因為公司有幾百臺電腦,所以建議更換了三層交換機,劃分了vlan,這樣有效的避免了網絡風暴等,網絡掉包卡頓現象就解決了,但出現一個新問題,因為公司用的金蝶K3 ERP,同網段打開軟件不卡,但跨網段打開軟件操作的時候,加載程序會慢很多,通過wireshark 對特定服務器IP過濾抓包分析,發現 跨網段打開時候 紅色條目出現異常,TCP報文win=0,或者很小的值,所以打開很慢,而本網段打開的時候 條目正常,tcp報文也正常,所以判定是服務器同網段和跨網段訪問機制不一樣。
排查思路:
網絡連通性測試
使用ping 服務器IP -t持續測試網絡延遲和丟包
默認小包32字節 如果大包測試 ping -f -l 1472 目標IP ?# Windows MTU值(1472+28=1500)
執行tracert 服務器IP查看路由跳轉情況 tracert -d 目標IP?
正常延遲應<50ms,企業內網通常<10ms
Wireshark抓包分析關鍵過濾
# 捕獲跨網段通信
ip.src==本地網段 && ip.dst==目標網段
# 典型問題過濾器
tcp.analysis.retransmission ?# 重傳包
tcp.analysis.window_update ?# 窗口更新
icmp.type==3 ?# 目標不可達錯誤
當Wireshark抓包顯示目標IP的TCP窗口大小(Win)為0時,如:[ACK] Seq=1 Ack=1 Win=0 Len=0這表明接收方的接收緩沖區已滿,無法繼續接收數據。這是TCP流控的重要機制,但持續出現會導致通信停滯。只要客戶端 cmd命令 直接運行 需要管理員權限 :
# Windows調整(管理員CMD)更改后無需重啟立即生效
netsh int tcp set global autotuninglevel=restricted
查看當前自動調優級別:netsh int tcp show global
Windows 提供多個自動調優級別:
級別?? ?說明?? ?適用場景
disabled?? ?完全禁用自動調優?? ?兼容老舊系統,性能最差
restricted?? ?有限制的自動調優?? ?高延遲/丟包網絡(推薦)
highlyrestricted?? ?高度限制?? ?極不穩定的網絡
normal?? ?默認自動調優?? ?低延遲局域網(默認值)
experimental?? ?實驗性調優?? ?微軟測試用途
為什么使用 restricted 模式
解決零窗口問題:
減少接收緩沖區過載導致的 Win=0 情況,更保守的窗口大小調整策略
優化高延遲網絡:
在跨網段/廣域網環境中表現更好,減少因網絡延遲導致的重傳
平衡性能與穩定性:
比默認的 normal 模式更穩定,比 disabled 模式性能更好
在以下場景特別有效:
遠程桌面連接卡頓,文件傳輸速度不穩定,視頻會議卡頓,跨網段應用響應慢,能顯著改善在高延遲網絡環境下的TCP傳輸性能。
服務器端集中式TCP優化方案
# 設置接收窗口自動調優級別
netsh int tcp set global autotuninglevel=restricted
# 啟用RSS(接收端縮放)
netsh int tcp set global rss=enabled
# 設置ECN(顯式擁塞通知)
netsh int tcp set global ecncapability=enabled