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

Sách trắng lag game › Nguyên nhân gốc của truyền lại TCP

ACK đến muộn hoặc bị mất (chiều tải lên bị bão hòa) ACK path congestion on asymmetric links

ID nguyên nhân rt-ack-path · Phụ trách chính Bên ngoài (Bên ngoài) · Phối hợp Phát triển client (Đội phát triển game)

Mở thẻ gốc có hình minh họa và thí nghiệm →

Dữ liệu đã đến nơi, nhưng nếu ACK báo “đã nhận” bị trễ hoặc bị mất trong hàng đợi upload đang đầy, bên gửi sẽ xác định là mất gói rồi truyền lại.

Vì sao Ở nhà có người upload video hoặc sao lưu lên cloud làm chiều tải lên bị đầy → Dẫn đến ACK bị trễ vài trăm ms trong hàng đợi của router, hoặc bị bỏ vì hàng đợi tràn → Trên màn hình Gói server game gửi xuống nhìn chung vẫn đến đúng lúc. Input của bạn nằm chung hàng đợi upload nên bị chậm, gây trễ thao tác và kéo ngược, thỉnh thoảng có truyền lại không cần thiết

Triệu chứng
Trễ thao tác, Kéo ngược
Yếu tố
Độ trễ, Mất gói
Ai gặp phải
Cùng một nhà
Khi nào
Thỉnh thoảng bất chợt, Giờ cao điểm buổi tối
Phụ trách
Phụ trách chính Bên ngoài (Bên ngoài) · Phối hợp Phát triển client (Đội phát triển game)
Việc cần làm (Đội phát triển game)
Khi ping tăng vọt thì hiển thị trạng thái mạng trên màn hình, kèm hướng dẫn “Kiểm tra chương trình đang upload”.
Việc cần làm (Bên ngoài)
Hướng dẫn người chơi dùng SQM trên router để giữ hàng đợi upload ngắn, ưu tiên gói nhỏ (ACK), giới hạn tốc độ upload (upload video, sao lưu lên cloud).
Con số tham khảo
ACK phía sau xác nhận thay cho ACK phía trước, nên mất vài ACK thường không sao. Vấn đề nằm ở việc ACK bị trễ trong hàng đợi.
Trên đồ thị
Chỉ một phần cao · RTT (ping) theo từng kết nối
Chỗ cần xem
Từ PC của người chơi, so sánh ping tới server game khi đang bật và khi tắt việc upload (upload video, sao lưu lên cloud). Trên server, xem rtt của kết nối người chơi đó bằng ss -ti
Đúng nếu
chỉ khi đang upload thì ping mới lên vài trăm ms và xuất hiện trễ thao tác, kéo ngược; dừng upload thì trở lại bình thường ngay. Nhìn từ server, lúc đó rtt của kết nối này cũng tăng theo
Loại trừ nếu
mất gói và độ trễ xảy ra bất kể có upload hay không → “Mất gói ở chặng không dây” hoặc nguyên nhân phía tuyến đường. Chỉ chiều từ server tới người chơi bị chậm và không liên quan upload → “Tràn hàng đợi ở điểm nghẽn”
Cách kiểm tra
Kiểm tra ở môi trường phía người chơi

Nguồn

  1. RFC 3449: TCP Performance Implications of Network Path Asymmetry IETF
    Trên đường truyền bất đối xứng có chiều tải lên hẹp, ACK bị trễ hoặc bị mất làm giảm hiệu năng TCP; ACK là xác nhận tích lũy nên mất một phần thì ACK sau vẫn thay thế được; các biện pháp như lập lịch ưu tiên ACK
  2. Smart Queue Management Bufferbloat.net
    Giữ hàng đợi ngắn trên router bằng quản lý hàng đợi và shaping
  3. tc-cake(8) — Linux manual page iproute2
    CAKE tách riêng từng luồng và giảm tối đa độ trễ của các luồng gửi thưa thớt (sparse flow)
  4. ss(8) — Linux manual page iproute2
    rtt (thời gian khứ hồi trung bình) và rttvar (độ lệch) trong ss -i

Nguyên nhân nên xem cùng

Cùng tầng: Nguyên nhân gốc của truyền lại TCP

Nguyên nhân ở tầng khác gây cùng triệu chứng (Trễ thao tác)

Xem thẻ gốc có hình minh họa và thí nghiệm