Cổng mạng, thường được gọi là port, là một khái niệm quan trọng trong lĩnh vực mạng máy tính. Trong ngữ cảnh này, cổng không phải là cổng vật lý trên thiết bị mạng mà thay vào đó, nó là một số nguyên tố phần mềm được sử dụng để xác định các dịch vụ hoặc ứng dụng cụ thể trên một thiết bị mạng.

Số cổng mạng giúp các thiết bị mạng biết cách xử lý các gói dữ liệu bằng cách xác định dịch vụ hoặc ứng dụng mà gói dữ liệu đó đi đến hoặc đến từ. Ví dụ, dịch vụ web HTTP thường sử dụng cổng 80, trong khi dịch vụ HTTPS sử dụng cổng 443. Cổng mạng thường được kết hợp với địa chỉ IP để xác định đích và nguồn của dữ liệu.

ví dụ số cổng mạng
ví dụ số cổng mạng

Phân biệt cổng mạng và cổng kết nối vật lý

Khi nhắc đến cổng mạng, nhiều người nhầm với các cổng kết nối vật lý trên các thiết bị mạng như Switch chia mạng hay Router. Các cổng vật lý giống như tên gọi, là cổng được sử dụng kết nối dây cáp mạng hoặc các thiết bị ngoại vi vào hệ thống mạng. Chúng ta có thể nhìn thấy, sờ và xác định một cách trực quan các cổng vật lý.

Cổng mạng là khái niệm phần mềm, tức là chúng là cổng ảo và không thể sờ được. Cổng mạng dùng để xác định dịch vụ và ứng dụng cụ thể trên một thiết bị mạng. Chức năng của mổng mạng là xác định dữ liệu hoặc dữ liệu gửi đến từ trên mạng và chỉ định cách xử lý dữ liệu đó dựa trên cổng truyền.

ảnh cổng Console trên Switch
ảnh cổng kết nối vật lý

Có bao nhiêu số cổng mạng?

Số cổng mạng có dạng số nguyên 16 bit. Do đó sẽ có 2^16 số cổng mạng. Tức là số mạng có thể nằm trong khoảng từ 0 đến 65535. Tuy nhiên, không tất cả các số cổng này đều được sử dụng cho mục đích truyền dữ liệu.

Trong giao thức TCP và UDP, cổng số 0 được dành trữ và không được sử dụng để tránh sự nhầm lẫn với các trường hợp không được gán cổng. Ngoài ra, một số cổng khác được xác định và quản lý bởi IANA cho các mục đích cụ thể, chẳng hạn như các cổng phổ biến được sử dụng cho các dịch vụ HTTP (port 80), HTTPS (port 443), SSH (port 22), và nhiều dịch vụ khác.

Điều này có nghĩa là không tất cả các số cổng từ 1 đến 65535 đều được sử dụng, mà chỉ một phần nhỏ trong số này thực sự được ánh xạ và sử dụng cho các dịch vụ và ứng dụng cụ thể trên mạng.

Số cổng mạng trong giao thức TCP và UDP

Hai giao thức TCPUDP là hai giao thức quy định cách truyền dữ liệu trên mạng sử dụng phổ biến nhất hiện nay. Mỗi số cổng là một số nguyên không dấu 16-bit, có giá trị từ 0 đến 65535. Để tổ chức và quản lý việc sử dụng các số cổng, chúng được phân chia thành ba loại chính:

các loại cổng mạng trong giao thức TCP và UDP

  • Well-known ports (cổng phổ biến) (0-1023)
  • Registered ports (cổng được đăng ký) (1024-49151)
  • Dynamic or private ports (cổng tĩnh hoặc cổng riêng tư) (49152-65535).

Các well-known ports được dùng cho các dịch vụ phổ biến và được gán cố định cho các mục đích như HTTP, HTTPS, FTP, SSH, Telnet, DNS, DHCP, và SNMP. Những số cổng này thường được gán cố định và được quản lý bởi Internet Assigned Numbers Authority (IANA).

Các registered ports được sử dụng cho các dịch vụ được đăng ký hoặc cấp phép, như các cơ sở dữ liệu như MySQL (port 3306) hoặc PostgreSQL (port 5432). Những số cổng này cũng có thể được sử dụng cho các ứng dụng hoặc dịch vụ do cá nhân hoặc tổ chức tạo ra.

Các dynamic or private ports được sử dụng cho các kết nối tạm thời và không được gán cố định cho bất kỳ dịch vụ cụ thể nào. Khi một kết nối được tạo ra, hệ thống sẽ tự động gán một số cổng từ phạm vi này cho kết nối đó. Điều này giúp trong việc quản lý kết nối mạng đồng thời và đảm bảo tính linh hoạt cho việc sử dụng số cổng.

Các số cổng mạng phổ biến cần biết

Dịch vụ/Protocol Số cổng Mô tả
HTTP (Hypertext Transfer Protocol) 80 Truyền tải trang web qua Internet.
HTTPS (Hypertext Transfer Protocol Secure) 443 Truyền tải dữ liệu web một cách an toàn qua kết nối mã hóa SSL/TLS.
FTP (File Transfer Protocol) 21 Truyền tải tập tin giữa máy tính và máy chủ trên mạng.
SSH (Secure Shell) 22 Thiết lập kết nối bảo mật và điều khiển từ xa giữa các thiết bị trên mạng.
SMTP (Simple Mail Transfer Protocol) 25 Gửi email từ máy chủ email đến máy chủ email khác trên Internet.
DNS (Domain Name System) 53 Chuyển đổi tên miền sang địa chỉ IP và ngược lại.
DHCP (Dynamic Host Configuration Protocol) 67 và 68 Tự động cấu hình địa chỉ IP và các thông số mạng cho các thiết bị trong mạng.
SNMP (Simple Network Management Protocol) 161 và 162 Quản lý và giám sát các thiết bị mạng như router, switch, firewall.
Telnet 23 Thiết lập kết nối từ xa với thiết bị hoặc máy chủ khác qua mạng.
POP3 (Post Office Protocol version 3) 110 Lấy thư từ máy chủ email.
IMAP (Internet Message Access Protocol) 143 Lấy thư từ máy chủ email một cách linh hoạt.
SMTP (Submission) 587 Gửi email từ máy tính của người dùng đến máy chủ email.
LDAP (Lightweight Directory Access Protocol) 389 Truy cập và quản lý thông tin trong các thư mục mạng.
RDP (Remote Desktop Protocol) 3389 Thiết lập kết nối và điều khiển từ xa máy tính Windows.

Các loại số cổng mạng

Số cổng mạng được phân loại thành hai loại chính: cổng định tuyến và cổng nguồn. Đây là hai khái niệm cơ bản trong việc định danh và quản lý dữ liệu khi truyền qua mạng. Dưới đây là chi tiết về mỗi loại cổng:

Cổng Định Tuyến (Destination Port):

  • Khái niệm: Cổng định tuyến là cổng mà dữ liệu được gửi tới trên thiết bị đích (receiver) trong một kết nối mạng. Nó giúp hệ thống xác định dịch vụ hoặc ứng dụng mà dữ liệu được gửi tới.
  • Ví dụ: Khi bạn truy cập một trang web từ trình duyệt web của mình, trình duyệt sẽ gửi yêu cầu đến máy chủ web của trang đó thông qua cổng định tuyến 80 (hoặc 443 nếu sử dụng HTTPS).

Cổng Nguồn (Source Port):

  • Khái niệm: Cổng nguồn là cổng mà dữ liệu được gửi từ trên thiết bị gửi (sender) trong một kết nối mạng. Nó giúp hệ thống xác định ứng dụng hoặc dịch vụ gửi dữ liệu.
  • Ví dụ: Khi máy tính của bạn truy cập một trang web, nó sẽ sử dụng một cổng nguồn ngẫu nhiên (dynamic source port) để gửi yêu cầu đến máy chủ web. Cổng nguồn này thường được hệ điều hành tự động chọn và không cố định.

Tại sao mỗi dịch vụ cần có một số cổng mạng riêng?

Ví dụ minh họa cổng mạng

Các dịch vụ trên mạng cần có số cổng mạng riêng biệt với mục đích định danh và quản lý truy cập. Điều này là cần thiết để phân biệt giữa các dịch vụ và ứng dụng khác nhau trên cùng một hệ thống mạng.

Bằng cách sử dụng các số cổng riêng biệt, hệ thống có thể xác định chính xác dịch vụ nào đang được truy cập hoặc sử dụng, giúp kiểm soát lưu lượng dữ liệu và bảo vệ tính toàn vẹn của mạng.

Đồng thời, việc phân biệt các dịch vụ qua các số cổng mạng cũng hỗ trợ trong việc triển khai các biện pháp bảo mật phù hợp với từng loại dịch vụ, giúp tăng cường tính an toàn và bảo mật cho hệ thống mạng.

Quá trình Socket

địa chỉ Socket

Khi một quá trình (process) trên máy tính muốn kết nối đến một cổng mạng, nó thực hiện việc này thông qua một internet socket, một thành phần quan trọng trong việc thiết lập và quản lý kết nối mạng.

Socket được coi là một loại đặc biệt của bộ mô tả tập tin (file descriptor), có thể được sử dụng để truyền và nhận dữ liệu qua mạng. Mỗi socket được liên kết với một giao thức truyền tải (transport protocol) như TCP (Transmission Control Protocol) hoặc UDP (User Datagram Protocol), một địa chỉ mạng như địa chỉ IP của máy tính đích, và một số cổng.

Quá trình liên kết socket của một ứng dụng với một cổng cụ thể được gọi là binding. Quá trình này thường diễn ra khi ứng dụng khởi động hoặc khi thiết lập một kết nối mạng mới.

Khi một socket được liên kết, nó trở thành điểm đích hoặc điểm gửi dữ liệu cho các kết nối mạng đến hoặc đi từ ứng dụng. Các socket được sử dụng để gửi và nhận dữ liệu qua mạng, và quá trình binding đảm bảo rằng dữ liệu được định tuyến đúng cách tới và từ các ứng dụng hoặc dịch vụ cụ thể.

Nếu hai dịch vụ cùng sử dụng một số cổng mạng thì sao?

Xung đột cổng (port conflicts) xảy ra khi nhiều chương trình hoặc quá trình trên cùng một máy tính cố gắng sử dụng cùng một số cổng trên cùng một địa chỉ IP với cùng một giao thức.

Điều này dẫn đến một tình huống không thể chấp nhận được, khi mà mỗi quá trình chỉ có thể liên kết với một cặp địa chỉ IP và số cổng cụ thể trong giao thức TCP.

Khi xảy ra xung đột cổng, máy tính không thể phân biệt được giữa các dịch vụ hoặc ứng dụng và có thể gặp phải những vấn đề như mất dữ liệu, sự cố kết nối hoặc hoạt động không chính xác của các ứng dụng hoặc dịch vụ.

Ví dụ, nếu máy tính có hai chương trình cố gắng sử dụng cùng một số cổng 80 trong giao thức TCP để thực hiện các dịch vụ web, xung đột cổng sẽ xảy ra và gây ra sự cố trong việc hoạt động của các dịch vụ hoặc ứng dụng web server.

Điều này làm mất đi tính khả dụng và đáng tin cậy của các dịch vụ mạng, và do đó cần được giải quyết để đảm bảo sự trôi chảy của dữ liệu và hoạt động ổn định của hệ thống mạng.

Mong rằng qua bài viết chi tiết này, bạn đã hiểu rõ về cổng mạng? số cổng mạng là gì? Và vai trò của nó trong mạng máy tính!

Thông Tin Về Tác Giả

Tổng Biên Tập at Thiết Bị Mạng Giá Rẻ | Website | + posts

Nguyễn Thành Hợp là một chuyên gia về lĩnh vực thiết bị mạng, viễn thông gần 10 năm kinh nghiệm với nhiều chứng chỉ chất lượng như CCNA 200-301, CCNP, CCDA, CCDP,... do Cisco cung cấp. Sở thích cá nhân là khám phá những kiến thức mới mẻ về công nghệ nói chung và đặc biệt là liên quan đến lĩnh vực mạng!