Bài viết mới nhất

Tổng 1804 bài
Bảo mật 02/09/2026 10 phút

yaml.load từng chạy lệnh shell của kẻ tấn công chỉ với một dòng — bản vá đổi mặc định sang an toàn, nhưng tôi tự mở lại lỗ hổng bằng đúng cách 'sửa lỗi' ai cũng làm

'Vá thì cứ nâng phiên bản là xong' bỏ qua ba câu hỏi thật: vá sửa cái gì, lỗ hổng có biến mất hẳn không, và bạn phơi nhiễm bao lâu giữa lúc vá ra và lúc thật sự dùng nó. Tôi tái dựng RCE của PyYAML: bản cũ dính, bản mới chặn — rồi vô tình dán lại đúng lỗ hổng bằng cách thêm Loader=yaml.Loader để hết TypeError, đúng cái bẫy khiến lỗ này sống sót qua bản vá.

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

Đường rơi 10% gói, mà datagram lớn của bạn mất tới 37% — số học tàn nhẫn của phân mảnh IP

Vượt MTU thì gói hoặc bị cắt thành mảnh, hoặc bị chặn thẳng nếu đặt cờ DF (ngưỡng đúng 1472 byte trên MTU 1500). Và mất một mảnh là hỏng cả datagram: 10% mất gói biến thành 37% mất datagram khi cắt 5 mảnh. Đo thật từng byte trong container, kèm cú gắn netem nhầm chỗ.

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

connect() có cảm giác 'kết nối ngay' — bắt gói ra mới thấy nó tốn 3 gói và trọn một RTT trước byte đầu

Mở một kết nối TCP phải trao đổi SYN, SYN-ACK, ACK — ba gói và một vòng khứ hồi trước khi gửi được byte dữ liệu nào. Trên loopback là vài chục micro giây, nhưng qua hai châu lục là 150ms trả cho mỗi kết nối mới. Đo thật bằng tcpdump, kèm vì sao mọi connection pool tồn tại để né đúng cái thuế này.

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

99% gói vẫn tới nơi, mà đường ống chỉ chạy 3% công suất — cú sập TCP mà ai cũng nên biết

Chỉ 1% mất gói làm sập thông lượng CUBIC khoảng 30 lần, để 97% băng thông nằm không — vì giao thức đọc mọi gói rơi thành 'đường tắc'. Đường cong sập theo căn bậc hai của tỉ lệ mất gói, nên vài phần trăm đầu tiên hại nặng nhất. Đo thật bằng netem, kèm vì sao BBR ra đời.

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

Thêm 10% mất gói: TCP giao đủ 100% nhưng đuôi trễ vọt lên 842ms, UDP giữ trễ thấp mà rơi 9%

Mạng hoàn hảo thì TCP và UDP gần như giống hệt nhau — khác biệt chỉ lộ ra khi mất gói. Dưới 10% loss, TCP mua độ tin cậy bằng đuôi trễ gấp gần 2000 lần UDP; UDP mua trễ thấp đều bằng việc chấp nhận mất. Và cái đo bằng trung vị suýt lừa tôi kết luận ngược. Đo thật bằng netem.

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

Vì sao gói đầu tiên tới một máy hàng xóm luôn chậm hơn — và một IP không ai giữ khiến kết nối 'treo' thay vì báo lỗi

Trước khi gửi khung đầu tiên tới một máy cùng mạng con, máy phải dịch IP sang MAC bằng một vòng ARP tốn ~190 micro giây — hỏi to, đáp riêng, rồi cache. Trả một lần cho mỗi hàng xóm. Đo thật bằng tcpdump, kèm vì sao ping một IP trống lại kẹt ở INCOMPLETE.