Lập trình 22/09/2026 9 phút

Heartbeat và kết nối chết đo thật: rút cáp bằng iptables, server Go nhận ra sau bao lâu, ping/pong 4,9 giây, TCP keepalive chỉnh tay 8,4 giây, keepalive mặc định của Go 150 giây, tắt keepalive thì không bao giờ, ReadDeadline không ping giết nhầm

Server Go trong dist-lab mở sáu cấu hình WebSocket, client trong go-lab im lặng, rồi rút cáp bằng iptables DROP hai chiều để không có FIN hay RST. Ping mỗi 5 giây với pongWait 8 giây nhận ra sau 4,9 giây; TCP keepalive idle 5 giây, 3 probe cách 2 giây nhận ra sau 8,4 giây; keepalive mặc định của net/http Go sau 150,2 giây, đúng 15 cộng 9 nhân 15; tắt keepalive thì socket còn ESTABLISHED hết 300 giây; server đẩy 20 byte mỗi giây vẫn ghi thành công 300 lần khi ss báo backoff 10. ReadDeadline không ping giết client khoẻ sau đúng 10 giây. Tiến trình client chết thì mọi cấu hình thấy trong 3 ms.