CHO THIẾT BỊ ROOTED
(được sao chép từ câu trả lời của Mansour trên bài đăng này )
Thanh toán BradyBound . Đây là một máy ép / giới hạn tốc độ tải xuống toàn hệ thống. Vài điều cần lưu ý:
- Ứng dụng này yêu cầu quyền truy cập root.
- Nó hoạt động bằng cách thả các gói bằng cách sử dụng
iptables
. Điều này gây lãng phí một số lưu lượng truy cập - bao nhiêu tùy thuộc vào loại lưu lượng truy cập (ví dụ: tải xuống chạy dài, duyệt web).
- Đo tốc độ được thực hiện theo số lượng gói thay vì byte nên giới hạn tốc độ sẽ không chính xác.
- Điều này chỉ giới hạn lưu lượng TCP (không có nghĩa là bỏ các gói UDP).
Cũng lưu ý rằng tôi là tác giả của ứng dụng này.
Chỉnh sửa số 1:
Giải trình:
Dữ liệu được chia thành các phần nhỏ gọi là Gói sẽ được truyền qua mạng.
Nó có thể được truyền bằng TCP (Giao thức điều khiển truyền) hoặc UDP (Giao thức gói dữ liệu người dùng)
Hãy lấy một ví dụ:
Giả sử bạn là máy chủ và tôi là máy chủ lưu trữ và tôi muốn tải xuống một tệp, vì vậy trước tiên tôi sẽ gửi cho bạn một yêu cầu cho nó, sau đó bạn sẽ xử lý và thay vì gửi toàn bộ tệp, bạn sẽ chia tệp lớn trong Gói nhỏ.
Bây giờ mỗi gói đã được tạo sẽ chứa thông tin như IP nguồn (của bạn) và IP đích (của tôi), cùng với một số dữ liệu bổ sung (chuỗi số, kích thước dữ liệu, thời gian tồn tại, v.v.)
Bạn sẽ gửi những gói đó và họ có thể liên lạc với tôi qua bộ định tuyến.
Không nhất thiết là tất cả các gói phải đến với tôi qua cùng một tuyến đường. Họ có thể đến với tôi thông qua các tuyến đường có sẵn khác nhau.
Khi họ liên lạc với tôi, TCP / UDP xuất hiện.
Nếu bạn đã sử dụng TCP để truyền, khi một gói đến tay tôi, một xác nhận cho biết rằng gói đến tôi được gửi lại cho bạn.
Tính năng này thiếu UDP. Nếu bạn đã sử dụng UDP, không giống như TCP, nó sẽ không gửi xác nhận cho bạn. Điều đó có nghĩa là bạn, với tư cách là một máy chủ, không biết liệu các gói có đến được với tôi hay không. Trong trường hợp nó bị mất trong truyền, nó bị mất mãi mãi.
Thả gói
Bỏ gói có nghĩa là loại bỏ các gói. Vì vậy, về cơ bản, khi tôi sẽ thả gói tin do bạn gửi, một xác nhận sẽ được gửi cho bạn (trong trường hợp TCP) rằng gói bị mất khi truyền, do đó bạn sẽ phải gửi lại.
Theo cách này, nó lãng phí lưu lượng và giới hạn tốc độ cùng lúc tôi nhận được toàn bộ tệp.
Nếu tôi sẽ bỏ các gói UDP, tôi sẽ không nhận được toàn bộ tệp. Đó là lý do ứng dụng không kiểm soát lưu lượng UDP.
Và vâng, đặc quyền root là bắt buộc, vì iptable chỉ có thể được truy cập với quyền truy cập superuser.