分秒必爭的網絡遊戲講究連線速度和低時延,封包遲 0.3 秒發送都會影響戰果。偏偏 Windows 就有一個機制會令到封包最多延遲 0.3 秒發送。今次就讓我們來消除 Windows 裡影響網絡遊戲傳輸的問題吧!
有效率傳送變成時延元兇
Windows 有一個機制稱為 Nagle 算法,原意是希望減少網絡充斥的微小封包,提升傳送效率,令網絡傳輸更暢順。原理是將細小的 TCP/IP 封包集合成一個大封包才一起發送,利用算法來決定發送時間。一看就知這過程會令部分封包延遲了發送,微軟指最多可能延遲 300ms ,這延遲對網絡遊戲可能會構成致命性影響。
雖然這機制只影響透過 TCP/IP 協定下的封包發送,而網絡遊戲中有很多(不是全部!)通訊是使用較不精確的 UDP 協定來進行,例如不要求極端精確的移動。不過關鍵的操作如勝負判定、物品交易等還是要用到 TCP 協定進行的。所以玩網絡遊戲的話,當然要移除這個影響不安要素!
Step 1. 右擊開始功能表的 Windows 標誌,選擇「 Windows Terminal (終端機)」;
Step 2. 輸入「 ipconfig 」,記下 IPv4 Address 一欄的 IP 地址(本例是 192.168.1.232 ),然後可以關閉終端機視窗;
Step 3. 在開始功能表或任務列的搜尋列輸入「 Registry Editor (登錄檔編輯器)」並開啟它;
Step 4. 在編輯器的地址列輸入「 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces 」跳到有關 TCP/IP 通信參數的區段。這裡會有多組設定。逐一查看以找出哪一組設定裡含有「 DhcpIPAddress 」機碼,且設定值與 Step 2 記下的 IP 地址相同(本例是「 {73727eee-0534-49e1…」);
Step 5. 在右側空白區域右擊,選擇「 New > DWORD (32-bit) Value 」加入新的機碼;
Step 6. 將新機碼命名為「 TcpAckFrequency 」,並將「 Value data 」設定為「 1 」,然後按「 OK 」確認;
Step 7. 重覆 Step 5-6 ,加入另一個機碼「 TCPNoDelay 」,「 Value data 」同樣是「 1 」;
Step 8. 完成後「 {73727eee-0534-49e1…」區段就會多了兩個新機碼。重新開機令機碼生效就能停止 Nagle 算法。如果發現有問題,可以將上述機碼設為「 0 」回復原狀。
轉用更快的 DNS
除非是臨時修補,否則大型網絡遊戲都會使用 DNS 來解譯遊戲伺服器的 IP 地址進行通信,所以使用較快的 DNS 能加快解譯 IP 的過程。根據 NDSPerf 排名,現時全球最快的免費公眾 DNS 服務是 CloudFlare 的 1.1.1.1/1.0.0.1 。不過在亞洲區, Google 的 8.8.8.8/8.8.4.4 會較 1.1.1.1 快一些。讓我們來看看如何修改 Windows 的 DNS 設定吧。
Step 1. 開啟「設定」,在左邊選擇「 Network & internet 」,並在右邊選擇「 Advanced networks settings 」;
Step 2. 點選您在用的網絡卡右邊的「 v 」向下箭頭打開詳細資料,然後點擊那張網絡卡的「 View additional properties 」右邊的「 > 」;
」;”>
Step 3. 在 DNS 一欄點擊右邊的「 Edit 」按鈕;
Step 4. 在「 Edit DNS settings 」介面設為「 Manual 」,並修改 IPv4 一節中的 Preferred DNS ,本例選用 CloudFlare 1.1.1.1 。如果想提升私隱,可以將 Preferred DNS encryption 改為「 Encrypted preferred, unencrypted allowed (能用加密就加密,否則也可以不加密) 」。然後也要修改「 Alternate DNS 」,本例繼續選用 CloudFlare 的備用 DNS 「 1.0.0.1 」。完成後按「 Save 」鍵關閉即可。
Game Mode 與 Windows Update
大家都知道 Windows Update 會不受控地在背景下載更新,有些玩家會想停止 Windows Update ,但這會影響系統安全性,所以 Microsoft 只提供一個暫停 Windows Update 7 天的按鈕給玩家可以制止一下 Windows Update 的囂張。
Windows 其實還有另外一個方法,可以在遊戲時同時停止 Windows Update 、通知和驅動程式更新,同時讓遊戲優先取用 CPU 和 GPU 資源。不過這東西並非兼容所有遊戲,也有玩家認為開了 Game mode 反而令遊戲不順暢,情況因人、因遊戲而異。對於使用 Windows 10 且電腦較舊的玩家開啟 Game Mode 的得益會較大,高階電競電腦就可能沒有太大感覺。
禁止 Steam 自動更新遊戲
不少玩家都會使用 Steam 平台來選購遊戲,不過它預設會自動更新遊戲,玩遊戲期間這樣做當然會影響網絡速度。讓我們設定遊戲只在啟動遊戲時才更新吧。
Step 1. 在 Steam 客戶端點擊右上角「 Steam > 設定」;
Step 2. 在 設定視窗左邊選單選擇「下載」,首先勾選「只在下列時段自動更新」,設定一個您很少遊玩的時間,然後確認沒有勾選「允許在遊玩時進行下載」,和勾選了「串流時限制下載」。按「確定」鍵關閉設定視窗;
Step 3. 在「收藏庫」右擊安裝了的遊戲,在彈出選單中選擇「內容⋯」;
Step 4. 在左邊選單選擇「更新」,然後在「自動更新」一項的下拉式選單選擇「只有當我啟動此遊戲時才開始更新」。
大家不用擔心從此會不知道遊戲更新,因為即使沒有自動下載,已安裝的遊戲有更新的話,「收藏庫」左邊軟件清單上那款遊戲會顯示為藍色,讓你決定是否手動更新。