Roblox 在良好網路下仍感覺卡頓:封包遺失指南
網速測試的錯覺
網速測試測的是頻寬:也就是在理想條件下,你的連線單向最多能傳多少 Mbps。Roblox 不在乎你的頻寬有多高。大多數 Roblox 體驗使用的傳輸量都不到 500 Kbps,只佔一般寬頻連線很小的一部分。真正重要的是,每個小型 UDP 封包能不能完整、準時地送到伺服器。 當你的設備和 Roblox 伺服器之間的傳輸路徑上有些封包在途中遺失時,就會出現移動卡頓、橡皮筋效應(也就是你的角色會突然被拉回先前的位置)、輸入延遲(你按下按鍵後,可能要過半秒才有反應),甚至還會發生道具從你的庫存中消失的情況,因為伺服器根本沒有確認你已經把它撿起來。 即使問題發生時,你的網速測試仍然可能全程顯示 100 Mbps,因為網速測試根本不會測量封包遺失。它測的是這條網路管道一次能塞進多少數據,不是數據能不能完整送達。封包遺失和頻寬或 Ping值是完全不同的指標。它代表的是:你的數據封包有多少百分比根本沒有成功抵達目的地。 對任何即時線上遊戲來說,可接受的封包遺失數值只有 0%,Roblox 也不例外。哪怕只有 1% 的封包遺失,也會讓你每隔幾秒就明顯卡一下。Roblox 的網路同步機制會在延遲一段時間後重傳遺失的封包。在等待重傳的這段時間裡,你的用戶端會先自行推測發生了什麼事。 當重傳封包帶著正確的資料送達時,伺服器就會覆蓋你用戶端原本的預測結果,你看到的就會是卡一下,或角色位置突然跳動。封包遺失的比例越高,這種修正就會越頻繁,也越明顯。 ## 先確認是不是封包遺失
在嘗試任何修復方法之前,先確認問題是不是真的由封包遺失造成。 其他像是高 Ping 值、伺服器延遲,或低 FPS 等問題,也可能造成看起來很像的畫面症狀。封包遺失有一個很明顯的特徵:在原本大致順暢的連線中,會不時出現中斷。開啟命令提示字元,先做一次基準封包遺失測試:Ping 值 -n 100 8. 8. 8. 8。這個指令會向 Google 的 DNS 伺服器送出 100 個 ICMP 封包,並在最後顯示遺失百分比。 如果結果顯示封包遺失為 0%,代表你的一般網際網路連線沒有在掉封包。問題可能出在你的 ISP 與你目前連線的 Roblox 伺服器之間這段路徑上。如果結果顯示有任何封包遺失,就表示你有整體性的封包遺失問題,這會影響所有網路流量,必須先從你的路由器或 ISP 這一層著手處理。 如果你要做 Roblox 專用的測試,先找出你的用戶端目前連到的伺服器IP。先在 [開始] 功能表輸入 resmon,開啟資源監視器。接著切到網路索引標籤,在 TCP 連線清單中找到 Roblox 的程式。遠端位址欄會顯示伺服器IP。先把它記下來,再執行 Ping 值 -n 100 [that IP]。 如果這個 Roblox 專用的 Ping值測試顯示有遺失,但前面對 Google 的 Ping值測試是 0,那就表示封包遺失發生在前往該伺服器的路由上。這就能確認問題出在你的 ISP 與 Roblox 託管基礎設施之間的路由。第三個值得做的測試,是使用 PacketLossTest. com 網站。 這個免費工具會在瀏覽器中執行 UDP 測試,比起 ICMP Ping值,更接近模擬遊戲流量的傳輸模式。有些網路硬體會用不同方式處理 ICMP 封包,因此測試結果不一定能準確反映遊戲中的 UDP 封包實際是怎麼被處理的。這個測試請跑兩次。第一次選在網路使用量較低的時段,也就是你家裡沒有其他人在串流或下載的時候。 在 Roblox 開著,而且你正好遇到明顯卡頓時,再做一次測試,並比較結果。如果差異很大,就表示網路負載會觸發或加重你的封包遺失問題。
封包最常遺失的四個位置
封包遺失一定會發生在你的設備與 Roblox 伺服器之間路徑上的某個實際位置。找出問題出在哪一段,才能判斷該用哪種方式處理。 家用 Wi-Fi 干擾是 Roblox 玩家最常見的封包遺失來源。Wi-Fi 訊號會和周圍所有其他無線設備競爭傳輸時段。 鄰居的路由器如果也在同一個頻道上發送訊號、廚房裡正在運轉的微波爐、在你的設備與路由器之間運作的 Bluetooth 喇叭或耳機,甚至是內有金屬骨架的厚牆,都可能讓封包在無線傳輸途中受損。這些受損的封包到達你的路由器時,會因為校驗和錯誤而被丟棄,並被計為封包遺失。要確認問題是不是 Wi-Fi 造成的,最直接的測試其實很簡單。 用乙太網路線把你的裝置接到路由器上。接著用有線連線玩 Roblox 30 分鐘。如果卡頓和橡皮筋效應完全消失,問題就在你的 Wi-Fi。若你不想長期改用有線 Ethernet 連接,但又想徹底改善 Wi-Fi,請進入路由器的管理後台,把頻段從 2.4 GHz 切換成 5 GHz。 5 GHz 可用的頻道更多,也比較不容易受到非 Wi-Fi 設備的干擾。你可以在手機上使用 Wi-Fi 分析器 App,找出你所在區域最不壅塞的頻道,然後把你的路由器設成使用該頻道。把路由器放在能清楚對到你遊玩區域的位置,盡量墊高、不要直接放在地板上,並且遠離其他電子設備。 你的路由器出現緩衝區膨脹(Bufferbloat)時,特別容易在網路負載升高時突然出現一陣一陣的封包遺失。比如你家裡有人開始用 Netflix 串流 4K 影片。你的路由器在試著管理這波突然增加的頻寬需求時,會很積極地把封包排進佇列。這時進來的遊戲封包就會卡在隊伍後面。等到這些封包真的被傳出去時,遊戲伺服器早就已經往下一步同步了。 這些延遲到達的封包通常也會被當成遺失封包處理,並觸發同樣的橡皮筋效應修正。你可以在瀏覽器中執行 Waveform 緩衝區膨脹(bufferbloat) Test。這項測試會在吃滿你的下載與上傳頻寬的同時,測量你的延遲,用來模擬網路負載較高時的狀況。如果結果顯示在負載下額外增加了超過 30 ms 的延遲,就能確認是緩衝區膨脹(Bufferbloat)造成的。解決方式是到你的路由器設定中啟用 QoS 或 SQM。 QoS 可以讓你把遊戲設備的流量優先於其他設備。SQM 更進一步,會主動管理排隊深度,避免任何單一設備獨佔緩衝區。如果你的路由器支援 SQM,就把它開啟。如果它只支援基本的 QoS,請在 QoS 規則中,至少分配總頻寬的 70% 給你的遊戲設備。套用變更後,再重新執行一次緩衝區膨脹(Bufferbloat)測試。 目標是在網路負載升高時,額外增加的延遲趨近於零。如果你現在使用的路由器既不支援 QoS,也不支援 SQM,那麼升級硬體就是唯一的長期解法。挑選路由器時,要找有明確標示支援緩衝區膨脹(Bufferbloat)處理的型號,不要只看是不是打著 gaming 品牌。像 Dong Knows Tech 這類網站的獨立評測,也會把緩衝區膨脹(Bufferbloat)測量納入測試方法中。 尖峰時段的ISP 壅塞,會讓你的流量經過特定網路交換節點時,封包遺失變得更嚴重。如果封包遺失只會在你當地時間大約晚上 7 點到 11 點之間出現,其他時段又會恢復正常,那多半代表你的 ISP 基礎設施已經超載了。在大家集中串流和玩遊戲的尖峰時段,太多用戶共用同一條骨幹連線,就會因為壅塞而出現封包掉失。 你可以在上午 10 點執行一次 Ping 值 -n 100 [the Roblox 伺服器 IP],晚上 9 點再執行一次來測試。比較兩次的封包遺失百分比。如果差距很大,而且連續好幾天都反覆出現,就能確認這是 ISP 在特定時段壅塞造成的問題。就算你聯絡 ISP 客服,通常也很難立刻有結果,因為這類修復往往需要投入基礎設施。短期內,你可以用網路優化工具繞過壅塞的兌換商店。 GearUP 會找出你目前連線的 Roblox 伺服器IP,並把你的遊戲流量改走另一條網路路徑,避開你 ISP 在晚間尖峰時段容易壅塞的路線。這項優化只會套用在 Roblox 的流量上。你的瀏覽器、串流應用程式和下載,仍會走原本的 ISP 連線,不會因為這條替代路徑而變慢。 安裝 GearUP 後,搜尋 Roblox,並選擇一個離你所在地較近的伺服器。應用程式會顯示可用路線的延遲和封包遺失率。啟用加速後,再啟動 Roblox。原本每天晚上都會出現的卡頓和橡皮筋效應,這時應該就會消失。伺服器端過載是最少見的原因,但也是最容易判斷的一種。 如果封包遺失只出現在某一個特定的 Roblox 體驗,而其他體驗都玩得很順,那通常代表那個體驗的伺服器實例因為同時線上的玩家太多而過載。你的連線本身沒有問題,是伺服器來不及處理所有人的封包。 除了離開後重新連線,加入同一個體驗的另一個伺服器實例,或是等待該體驗的開發者擴充伺服器容量之外,你這邊基本上沒有其他能做的事。 ## 哪些方法無法解決封包遺失 在 Roblox 的求助論壇裡,常常會看到一些建議,但它們根本是針對錯問題。把你的 DNS 伺服器改成 Google 的 8. 8. 8. 8 或 Cloudflare 的 1. 1. 1. 1 對封包遺失完全沒有任何影響。DNS 只會在建立連線當下,將網域名稱解析成 IP 位址一次。完成這次初始解析後,在你這次場次的其餘時間裡,DNS 都不會再介入。封包遺失發生在遊戲數據持續傳輸的過程中,而這不是 DNS 會參與的部分。 更換 DNS 可能會讓網站開始載入的速度變快,但對 Roblox 的封包遺失沒有幫助。使用代理伺服器會讓你的連線路徑多繞一跳。跳數越多,封包在途中掉失的機會就越高。代理伺服器是為了存取受限的地區內容而設計,不是用來維持穩定的即時連線。 對 Roblox 來說,使用代理伺服器很可能會讓你的封包遺失更嚴重,而不是減少。把 Roblox 的畫質調低,或限制你的 FPS,的確可以透過讓你本機的畫面幀傳遞更平順,來降低封包遺失在視覺上的影響;但這並不能防止封包在傳輸途中遺失。底層的網路問題依然存在。你處理到的只是症狀,不是根本原因。 唯一可靠的封包遺失解法,就是先找出封包是在路徑上的哪一段丟失,再針對那一段處理。若是本地 Wi-Fi 導致的封包遺失,就改用有線連線。若是路由器的緩衝區膨脹(Bufferbloat),就調整 QoS 或 SQM。若是 ISP路由 造成的封包遺失,就需要做路徑最佳化。要用哪種解法,完全取決於你有沒有先判斷對問題來源。
關於作者
完