• Thứ Năm, 17/09/2009 14:57 (GMT+7)

    Port - Cổng giao tiếp

    Trong giao thức TCP và UDP, port là số nguyên 16 bit được chèn vào phần đầu (header) của mỗi gói tin. Chẳng hạn, phía người dùng (client) có thể yêu cầu một máy chủ nào đó trên Internet cung cấp dịch vụ chia sẻ tập tin (file) qua máy chủ FTP. Để đáp ứng yêu cầu này, lớp phần mềm TCP trên máy của bạn phải nhận diện được port số 21 (đăng ký sẵn cho dịch vụ FTP) trong số các port 16 bit số nguyên được ghép theo gói tin yêu cầu của bạn. Tại máy chủ, lớp TCP sẽ đọc port 21 và chuyển tiếp yêu cầu đến máy chủ FTP.

    Hay nói cách khác, với một địa chỉ IP, chúng ta chỉ có thể xác định được một máy tính duy nhất trên mạng, tuy nhiên khi một máy tính chạy nhiều dịch vụ khác nhau thì chúng phải được phân biệt bởi khái niệm port. Ví dụ, máy chủ A (Server A) có dịch vụ web, DNS và FTP server, có địa chỉ IP là 210.245.126.14. Các máy tính khác khi muốn đến Server A thì cần đến địa chỉ IP (hay tên miền), nhưng để phân biệt dịch vụ là web, DNS hay FTP, cần xác định thêm port. Chẳng hạn, khi máy B muốn truy nhập dịch vụ web trên server A, trong gói tin gửi đi, IP đích sẽ là 210.245.126.14 và port đích sẽ là 80. Cùng lúc đó có máy C truy nhập đến dịch vụ DNS trên server A thì trong gói tin IP gửi đi, IP đích vẫn là 210.245.126.14 nhưng port đích sẽ là 53. Tương tự, máy D truy cập đến dịch vụ FTP trên server A, IP đích sẽ là 210.245.126.14 và port là 21. Thông thường các ứng dụng thường ẩn các port này để giảm tính phức tạp của giao thức TCP/IP.

    Có tất cả 65535 cổng (port) và được chia thành 3 đoạn: Well Known Port (WKP), Registered Port (RP) và Dynamic/Private Port (D/PP). WKP gồm các port từ 0 đến 1023 và được giữ cho các ứng dụng phổ biến như web (port 80), mail (port 25), ftp (port 21)... RP gồm các port từ 1024 đến 49151. Còn D/PP là các port từ 49152 đến 65535. IANA qui định WKP và RP phải được đăng ký với IANA (iana.org) trước khi sử dụng.

    Cổng phổ biến (Well Known Port 0-1023)

    Trong tầm từ 0-1023, hầu hết các port đã được đăng ký, tham khảo tại iana.org/assignments/port-numbers. Trong đó, nổi bật có các port phổ biến được liệt kê theo danh sách bên dưới. Với mạng cá nhân, muốn triển khai được các dịch vụ, chẳng hạn web server, ftp server... hệ thống của bạn phải mở các port tương ứng. Ứng với mỗi thiết bị định tuyến (router) của từng hãng, bạn sẽ có cách mở port khác nhau. Để dễ dàng mở các port cũng như hướng dẫn chi tiết trên từng router, bạn có thể vào trang portforward.com để tìm đúng router đang có. Trang web này luôn cập nhật danh sách router mới nhất của nhiều hãng.

    Một điều cần lưu ý trước khi mở port là bạn nên kiểm tra lại hệ thống đã mở sẵn cổng này chưa bằng cách vào trang www.grc.com (nhớ tắt firewall trên Windows) hoặc dùng lệnh netstat -an để biết máy của bạn đang sử dụng và "lắng nghe" những port nào.

    Danh sách các port thông dụng

    20 TCP File Transfer - FTP data
    21 TCP File Transfer - FTP control
    22 TCP/UDP SSH Remote Login Protocol/ pcAnywhere
    23 TCP Telnet
    25 TCP Simple Mail Transfer Protocol (SMTP)
    38 TCP UDP Route Access Protocol (RAP)
    42 UDP Host Name Server - Microsoft WINS
    45 TCP Message Processing Module (receive)
    46 TCP Message Processing Module (send)
    50 TCP UDP Remote Mail Checking Protocol (RMCP)
    66 TCP UDP Oracle SQL*NET
    69 TCP UDP Trivial File Transfer Protocol (TFTP)
    88 TCP UDP Kerberos Network Authentication Service
    101 TCP UDP Network Information Center (NIC) Hostname Server
    110 TCP UDP Post Office Protocol (POP) Version 3
    118 TCP UDP SQL Services
    119 TCP UDP Network News Transfer Protocol
    130 TCP UDP Cisco FNATIVE
    143 TCP UDP Internet Message Access Protocol (IMAP) Mail Server
    161 TCP UDP SNMP
    211 TCP UDP Texas Instruments 914C/G Terminal
    280 TCP UDP http-mgmt
    314 TCP UDP Opalis Robot
    333 TCP UDP Texar Security Port
    742 TCP UDP Network Revision Control System
    747 TCP UDP Fujitsu Device Control
    749 TCP UDP Kerberos Administration
    767 TCP UDP Phonebook
    777 TCP UDP Multiling HTTP
    800 TCP UDP MDBS Daemon, Remotely Possible (Remote Control)
    989 TCP UDP FTP Data Over TLS/SSL
    990 TCP UDP FTP Control Over TLS/SSL
    991 TCP UDP Netnews Administration System
    992 TCP UDP Secure Telnet (over TLS/SSL)
    993 TCP UDP Secure IMAP4 (over TLS/SSL)
    994 TCP UDP Secure IRC (over TLS/SSL)
    995 TCP UDP Secure POP3 (over TLS/SSL)
    996 TCP Vsinet / Central Point Software Xtree License Server

    Cổng đăng ký (Registered port: 1024–49151)

    Các cổng TCP và UDP có số từ 1024 đến 49151 được gọi là các cổng đăng ký (registered ports). IANA quản lý danh sách các dịch vụ sử dụng các port trong tầm số này để giảm thiểu việc sử dụng trùng nhau. Không giống nhu các port có số thấp hơn (0-1023), những nhà phát triển dịch vụ TCP/UDP mới có thể chọn một số mới để đăng ký với IANA thay vì dùng trùng số đã đăng ký.

    Cổng động/Cổng riêng (Dynamic/ Private Port: 49152–65535)

    Các cổng TCP và UDP có số bắt đầu từ 49152 đến 65535 được gọi là port động (dynamic port), port riêng (private port) hay port tạm (ephemeral port). IANA không quản lý Dynamic port cũng như không giới hạn việc sử dụng của người dùng. Các dịch vụ có thể chọn một hoặc vài port ngẫu nhiên miễn phí trong tầm số này khi cần truyền trên nhiều socket.

    Ứng dụng

    Hãy tưởng tượng, chiếc máy tính giống như ngôi nhà của bạn và port sẽ giống như các cửa ra vào. Bạn muốn mời một người nào đó vào nhà, nghĩa là phải chỉ cho họ biết lối vào (địa chỉ nhà) và mở sẵn cửa đón khách. Tương tự với máy tính, bạn phải cho biết server đang lắng nghe (listening) ở port nào để client biết và gửi yêu cầu. Router trong mô hình bên dưới giữ vai trò như một người gác cổng. Nó sẽ mở các port dịch vụ trong mạng.

    Đức Thịnh
    Tham khảo: iana.org; compnetworking.about.com; wikipedia.org

    ID: O0909_8