最近幫一個朋友測試服務器,其中一個測試項目是每次傳送數據後立刻斷開連接。然而測試開始沒幾 分鐘,客戶端就報告了大量的錯誤,錯誤原因是 only one usage of each socket address (protocol/network address/port) is normally permitted”. 用 netstat 查看客戶端的連接情況,發現有大量的狀態爲 TIME_WAIT 的連接存在。Google 以後確定 原因在於 TCP 會在關閉 Socket 之後繼續佔用端口一段時間,在這段時間內,如果要創建新的連接, Socket 會分配一個新端口給它。 這取決於兩個註冊表值,都是位於這個鍵下: HKLM/SYSTEM/CurrentControlSet/Services/Tcpip/Parameters TcpTimedWaitDelay 表示關閉 Socket 後佔用端口的秒數,默認是240 MaxUserPort 表示最大的可用端口,默認是 5000 如果發送請求的速度是 300/秒,那麼5000個端口(實際上還要扣掉1024個保留端口)只能用14秒左右 ,從第15秒開始就沒有可用端口,因此 WinSock 就要報錯了。 推薦的修改值爲 TcpTimedWaitDelay = 30 MaxUserPort = 65534
轉:http://www.cpper.com/site/comments/tcp_time_delay/一個怪異的服務器問題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
分享一份物聯網SAAS平臺架構設計
原創
2024-04-30 23:42:19
Python中兩種網絡編程方式:Socket和HTTP協議
原創
2024-04-16 10:33:01
uos安裝docker
原創
2024-03-09 23:48:38
優酷鴻蒙開發實踐 | 鴻蒙卡片開發
阿里巴巴移动技术
2021-10-22 15:33:55
數據庫測試的基礎要素
Jonathan Allen
2021-10-22 15:33:55
一年40萬次實驗,字節跳動A/B測試平臺是怎麼煉出來的?
Tina
2021-09-26 15:43:52
走過二十年的軟件測試業
Tim Bray
2021-08-06 17:03:57
爲了生存重寫軟件!面對“缺芯”,特斯拉很慌
Tina
2021-08-02 14:58:59
谷歌開發團隊犯低級錯誤?因一個字符拼寫Bug,Chromebook用戶被鎖在系統之外
Kent Duke
2021-07-25 16:38:56
10年磨一劍,雲測試頭部玩家如何爲數萬家客戶落地AI自動化測試
施尧
2021-07-25 10:04:06
Redis開源社區持續壯大,華爲云爲Valkey項目注入新的活力
原創
2024-05-06 22:32:57
瀏覽器輸入地址訪問網頁過程
原創
2024-04-16 11:34:39
爲什麼我們的系統複雜度這麼高了?
原創
2024-03-14 02:53:29
雲原生週刊:Terraform 1.8 發佈 | 2024.5.6
原創
2024-05-06 22:46:37