Cổng 0 được sử dụng để làm gì?

Cổng 0 mang ý nghĩa đặc biệt trong việc lập trình mạng, đặc biệt là trong hệ điều hành Unix khi nói đến lập trình socket, nơi cổng này được sử dụng để yêu cầu các cổng động, do hệ thống cấp phát. Cổng 0 là một cổng ký tự đại diện, cho hệ thống biết phải tìm một số cổng phù hợp.

Không giống như hầu hết các số cổng, cổng 0 là một cổng dành riêng trong mạng TCP/IP, có nghĩa là nó không được sử dụng trong các thông điệp TCP hoặc UDP. Các cổng mạng trong TCP và UDP nằm trong khoảng từ số 0 đến 65535.

Số cổng trong phạm vi từ 0 đến 1023 được xác định là cổng hệ thống. Internet Assigned Numbers Authority (IANA) duy trì danh sách chính thức về mục đích sử dụng dự kiến ​​của các số cổng này trên Internet và cổng hệ thống 0 sẽ không được sử dụng.

Cách cổng TCP/UDP 0 hoạt động trong lập trình mạng

Cổng 0 mang ý nghĩa đặc biệt trong việc lập trình mạng
Cổng 0 mang ý nghĩa đặc biệt trong việc lập trình mạng

Việc cấu hình kết nối socket mạng mới yêu cầu một số cổng được cấp phát ở cả phía nguồn và phía đích. Thông điệp TCP hoặc UDP được gửi bởi người khởi tạo (nguồn) chứa cả hai số cổng, để người nhận thông báo (đích) có thể đưa ra thông báo phản hồi tới điểm cuối giao thức chính xác.

IANA đã cấp phát trước các cổng hệ thống được chỉ định cho những ứng dụng Internet cơ bản, như máy chủ web (cổng 80), nhưng nhiều ứng dụng mạng TCP và UDP không có cổng hệ thống riêng và phải lấy một cổng từ hệ điều hành của thiết bị mỗi khi chúng chạy.

Để được cấp phát số cổng nguồn, ứng dụng gọi các hàm mạng TCP/IP như bind() để yêu cầu một cổng. Ứng dụng có thể cung cấp một số cố định (được hard code) cho bind(), nếu muốn yêu cầu một cổng cụ thể, nhưng yêu cầu như vậy có thể không thành công trong trường hợp một ứng dụng khác chạy trên hệ thống hiện đang sử dụng cổng đó.

Ngoài ra, ứng dụng có thể cung cấp cổng 0 để bind() làm tham số kết nối. Điều đó kích hoạt hệ điều hành tự động tìm kiếm và trả về một cổng khả dụng phù hợp trong dải số cổng động TCP/IP.

Ứng dụng không được cấp cổng 0 mà thay vào đó là một số cổng động khác. Ưu điểm của quy ước lập trình này là tính hiệu quả. Thay vì mỗi ứng dụng phải triển khai và chạy code để thử nhiều cổng cho đến khi có được một cổng hợp lệ, thì các ứng dụng có thể dựa vào hệ điều hành.

Unix, Windows và các hệ điều hành khác sẽ không tương đồng trong việc xử lý cổng 0, nhưng áp dụng cùng một quy ước chung.

Cổng 0 và vấn đề an ninh mạng

Lưu lượng mạng được gửi qua Internet đến các máy chủ đang lắng nghe trên cổng 0 có thể được tạo ra từ những kẻ tấn công mạng, hoặc do các ứng dụng được lập trình không chính xác. Các thông điệp mà máy chủ tạo ra để phản hồi lại lưu lượng cổng 0 giúp những kẻ tấn công tìm hiểu hành vi và các lỗ hổng mạng tiềm ẩn của thiết bị đó.

Nhiều nhà cung cấp dịch vụ Internet (ISP) chặn lưu lượng truy cập trên cổng 0 - cả thông điệp đến và tin nhắn đi - để đề phòng những hành vi lợi dụng này.

Thứ Tư, 12/08/2020 17:17
51 👨 2.319
0 Bình luận
Sắp xếp theo