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
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
RFC 3449: TCP Performance Implications of Network Path AsymmetryIETF 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
Smart Queue ManagementBufferbloat.net Giữ hàng đợi ngắn trên router bằng quản lý hàng đợi và shaping
tc-cake(8) — Linux manual pageiproute2 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)
ss(8) — Linux manual pageiproute2 rtt (thời gian khứ hồi trung bình) và rttvar (độ lệch) trong ss -i