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

Cổng 0 không phải là số cổng thực, nhưng có mục đích cho nó

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 nên được sử dụng trong các thông điệp TCP hoặc UDP .

Cổng 0 mang ý nghĩa đặc biệt trong lập trình mạng , đặc biệt là lập trình socket Unix, để yêu cầu các cổng động, được cấp phát cho hệ thống. Cổng số không giống như một cổng ký tự đại diện cho hệ thống tìm một số cổng phù hợp.

Các cổng mạng trong phạm vi TCP và UDP từ số không lên đến 65535. Số cổng trong phạm vi từ 0 đến 1023 được xác định là cổng hệ thống hoặc cổng nổi tiếng. Cơ quan cấp số điện thoại Internet (IANA) duy trì một danh sách chính thức về mục đích sử dụng dự định của các số cổng này trên internet và cổng hệ thống 0 không được sử dụng.

Port 0 hoạt động như thế nào trong lập trình mạng

Cấu hình kết nối ổ cắm mạng mới yêu cầu một số cổng được cấp phát trên cả nguồn và bên đí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ư (đích) có thể phát hành thư trả lời đến điểm cuối giao thức chính xác.

IANA đã phân bổ trước các cổng hệ thống được chỉ định cho các ứ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 có một cổng từ hệ điều hành của thiết bị mỗi khi chúng bắt đầu chạy.

Để phân bổ số cổng nguồn của nó, các ứng dụng gọi các hàm mạng TCP / IP như bind () để yêu cầu một. Ứng dụng có thể cung cấp một số cố định (được mã hóa cứng) để bind () nếu chúng muốn yêu cầu một số cụ thể, nhưng yêu cầu đó có thể thất bại vì một số ứng dụng đang chạy khác trên hệ thống có thể đang sử dụng nó.

Ngoài ra, nó có thể cung cấp cổng 0 để ràng buộc () làm tham số kết nối của nó thay thế. Điều đó kích hoạt hệ điều hành để tự động tìm kiếm và trả lại một cổng thích hợp có sẵn trong phạm vi số cổng động TCP / IP.

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

Hệ điều hành Unix, Windows và các hệ điều hành khác thay đổi một chút trong việc xử lý cổng 0, nhưng cũng áp dụng cùng một quy ước chung.

Cổng 0 và an ninh mạng

Lưu lượng truy cập mạng được gửi qua internet đến máy chủ lưu trữ trên cổng 0 có thể được tạo ra từ kẻ tấn công mạng hoặc vô tình do các ứng dụng được lập trình không chính xác. Các thông điệp phản hồi mà máy chủ tạo ra để đáp ứng với lưu lượng cổng 0 có thể giúp kẻ tấn công tìm hiểu thêm về hành vi và các lỗ hổng mạng tiềm ẩn của các 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ư đến và thư đi) để giúp bảo vệ chống lại những lần khai thác này.