한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

遊戲 Lag 白皮書 › L8 Socket 與協定

可靠 UDP 的重傳設定 Reliable-UDP tuning (KCP, ENet…)

原因 ID sk-reliable-udp · 主要負責 遊戲開發團隊(伺服器開發) · 協同 遊戲開發團隊(用戶端開發)

在含圖解與實驗的完整版中開啟卡片 →

在 UDP 上自行實作的重傳規則太保守時復原會變慢,太積極時反而讓線路更壅塞。

為什麼 重傳間隔、次數、視窗大小的設定與線路不相符 → 於是 復原太慢,或重複傳送讓壅塞惡化 → 畫面上 技能被吃、快轉、壅塞時 lag 更嚴重

症狀
吃指令/回檔, 快轉
因素
遺失, 延遲
誰會遇到
只有我
何時
偶爾隨機發生
負責單位
主要負責 遊戲開發團隊(伺服器開發) · 協同 遊戲開發團隊(用戶端開發)
遊戲開發團隊要做的事
伺服器:依實測的往返時間決定重傳時機,並依重要程度分開通道。用戶端:套用與伺服器相同的重傳與通道設定。
圖表上
偶爾隨機飆高 · 可靠 UDP 的重傳比例、遊戲內 RTT
查看位置
在伺服器與用戶端記錄所用函式庫的每條連線統計(重傳次數、估計往返時間、重傳等待時間),並與同一玩家實際的線路遺失率(用 mtr 測得的值)比較
符合的跡象
重傳比例比實際線路遺失率高出好幾倍時是設定太積極;重傳等待時間是實測往返時間的好幾倍時是設定太保守
不符合的跡象
重傳比例與線路遺失率相近、等待時間也符合往返時間時,就不是設定問題。要查線路遺失本身
確認方式
需要遊戲伺服器/用戶端的 log 與指標

出處

  1. RFC 8085: UDP Usage Guidelines IETF
    重傳可能加劇壅塞,因此應納入壅塞控制;往返時間以多次量測的平均(EWMA)估計,初始值 1 秒;計時器到期時降低傳送速率

相關原因

同一層:L8 Socket 與協定

同一症狀(吃指令/回檔)在其他層的原因

查看含圖解與實驗的完整版卡片