Mạng 03/09/2026 9 phút

Tôi dựng lại màn 'bufferbloat' kinh điển để độ trễ nổ tung — nó nhất quyết không chịu nổ

Bóp băng thông xuống 10 mbit thì tc làm chính xác (ra 9 mbit). Nhưng cảnh đệm phình làm ping vọt hàng giây mà tôi định tái hiện lại không xảy ra: TCP đời nay tự ghìm nên đệm 3 MB chỉ đọng 8 gói. Phải flood UDP — một nguồn không biết lùi — mới bơm nó lên 86 gói và làm ping gấp ba. Đo thật.

Mạng 03/09/2026 9 phút

Hai server cùng bind cổng 8080 mà không đụng nhau — còn tôi thì hiểu sai 'cổng đã bị chiếm' suốt bao năm

Hai network namespace cùng giữ cổng 8080 sống song song không xung đột; nhưng bind lại trong cùng một vùng thì Errno 98 ngay. Danh tính một socket nghe không phải số cổng, mà là bộ ba (vùng, địa chỉ, cổng) — và đó là toàn bộ lý do trăm container chạy cổng 80 trên một máy. Đo thật.

Mạng 03/09/2026 10 phút

Cùng là 'chặn' mà một luật khiến client treo 2 phút, luật kia từ chối trong 0,1 ms

DROP nuốt gói trong im lặng khiến client treo ~127 giây trên máy mặc định; REJECT từ chối ngay 0,1 ms. Và 10000 luật iptables làm RTT gấp 2,5 lần, còn đúng một luật ipset thì không. Vì sao chọn nhầm giữa hai kiểu 'chặn' là gốc rễ của vô số buổi gỡ lỗi mất hàng giờ. Đo thật.

Mạng 03/09/2026 9 phút

Vì sao máy chủ root DNS gần như không bao giờ bị hỏi tới, dù cả thế giới tra tên mỗi giây

Một tra cứu nguội đi ba vòng — root, TLD, thẩm quyền, mỗi vòng một khứ hồi (~75ms). Nhưng lần thứ hai 0 vòng, và một tên khác cùng đuôi chỉ 2 vòng vì chuỗi ủy quyền đã đệm. Đó là lý do root/TLD toàn cầu hầu như rảnh rỗi. Đo thật bằng cây DNS ba tầng tự dựng — kèm một bug gắn nhãn suýt qua mặt tôi.

Mạng 03/09/2026 9 phút

gzip ép JSON 20 KB còn 2,3 KB, Brotli còn 1 KB — nhưng nén nhầm thứ lại làm phình thêm và đốt CPU

Văn bản co lại 88-95% nhờ nén, gần như miễn phí. Nhưng nén dữ liệu ngẫu nhiên (ảnh, video đã nén) chỉ phình thêm byte, và nén payload tí xíu còn to hơn bản gốc. Cộng thêm một phép so gzip-vs-Brotli thiếu công bằng suýt lừa tôi. Đo thật cả hai bộ nén ở nhiều mức.

Mạng 03/09/2026 9 phút

Hạ tcp_fin_timeout để 'dọn' TIME-WAIT — lời khuyên nhan nhản trên diễn đàn mà tôi đo ra là sai

Đọc vòng đời một kết nối TCP qua ss: LISTEN, ESTABLISHED, TIME-WAIT, CLOSE-WAIT. Tôi hạ tcp_fin_timeout để rút TIME-WAIT như lời khuyên phổ biến — nó chẳng nhúc nhích, vì nó chỉnh một trạng thái KHÁC. Và TIME-WAIT với CLOSE-WAIT: hai bệnh cùng chữ 'wait' nhưng chẩn đoán ngược nhau. Đo thật.