Lập trình mạng Python: giao thức UDP (phần 16)

Gắn tới các giao diện (tiếp tục)

Nó làm việc! Bây giờ có 2 servers chạy trên cùng một máy với cùng số cổng UDP, một trong
số chúng được gắn với loopback interface nhìn vào bên trong và cái kia nhìn ra ngoài cho
các gói dữ liệu đi đến mạng tới đó card không dây của tôi đã kết nối. Nếu bạn tình cờ trên
một máy với một vài giao diện ở xa, bạn có thể khởi động thậm chí nhiều server hơn, một cái
trên mỗi giao diện ở xa.
Một khi bạn đã có các servers này đang chạy, thử gửi chúng một vài gói dữ liệu với UDP client
của bạn. Bạn sẽ thấy rằng chỉ một server nhận mỗi request, và trong mỗi trường hợp
nó sẽ là server cái giữ địa chỉ IP cụ thể tới nó bạn đã điều hướng gói dữ liệu UDP request.
Bài học của tất cả cái này là rằng stack mạng IP không bao giờ nghĩ về một cổng UDP như một
thực thể độc lập cái hoặc là có sẵn hoàn toàn hoặc mặt khác đang trong sử dụng, vào thời điểm
đã cho. Thay vào đó, nó nghĩ về mặt các tên socket UDP cái luôn là một cặp liên kết một giao
diện IP – thậm chí nếu nó là giao diện đại diện – với một số cổng UDP. Nó là các tên socket này
cái phải không xung đột giữa các servers đang lắng nghe tại thời điểm đã cho, hơn là các cổng
UDP trần cái đang trong sử dụng.
Một cảnh báo cuối cùng là trong trật tự. Vì thảo luận sắp tới chỉ ra rằng gắn server của bạn với
giao diện 127.0.0.1 bảo vệ bạn khỏi các gói dữ liệu độc hại khởi tạo trên mạng ngoài, bạn có thể
nghĩ rằng gắn với một giao diện ngoài sẽ bảo vệ bạn khỏi các gói dữ liệu độc hại khởi tạo bởi nội
dung độc hại trên các mạng ngoài khác. Ví dụ, trên một server lớn với nhiều card mạng, bạn có thể
dụ dỗ gắn tới một private subnet cái đối diện các servers khác của bạn và vì vậy nghĩ rằng bạn sẽ
tránh các gói dữ liệu giả mạo đi đến địa chỉ IP public đối diện Internet.
Buồn là, đời không đơn giản như vậy. Nó thực sự phụ thuộc vào lựa chọn của bạn về hệ điều hành và nó
được cấu hình như thế nào bất kể các gói dữ liệu có đi vào đánh địa chỉ tới một giao diện được phép đi đến
giao diện khác. Nó có thể là rằng hệ thống của bạn sẽ hoàn toàn vui vẻ chấp nhận các gói dữ liệu cái tự
nhận là từ các servers khác trên mạng của bạn nếu chúng xuất hiện trên kết nối internet public của bạn!
Kiểm tra với tài liệu hướng dẫn hệ điều hành của bạn, hay quản trị viên hệ thống của bạn, để tìm ra nhiều
hơn về trường hợp cụ thể của bạn. Cấu hình và chạy một firewall trên máy của bạn cũng cung cấp bảo vệ nếu hệ
điều hành của bạn không.

Chia sẻ