Địa chỉ trong mạng máy tính, số cổng tiến trình

    0

    Giới thiệu chung về các loại địa chỉ trong mạng máy tính

    Trong mạng máy tính đồng thời có rất nhiều giao thức cùng hoạt động. Mỗi giao thức lại đòi hỏi một cách riêng để xác định đối tác của mình trên máy nguồn và máy đích. Thông thường, các giao thức sử dụng cơ chế đánh địa chỉ để đạt mục đích như vậy. 

    Tùy thuộc vào giao thức sẽ có các cơ chế đánh địa chỉ khác nhau. Giao thức TCP/UDP sử dụng loại địa chỉ có tên gọi là số cổng. Giao thức IP sử dụng loại địa chỉ có tên gọi là địa chỉ IP. Giao thức Ethernet sử dụng địa chỉ MAC của card mạng.

    Mỗi loại địa chỉ có cách thức cấu hình riêng. Ví dụ, địa chỉ MAC đã được gán cứng trong card mạng nên không cần cấu hình. Địa chỉ IP phải cấu hình trên hệ điều hành. Số cổng cần cấu hình thông qua phần mềm ứng dụng.

    Trong bài học này chúng ta sẽ học về địa chỉ tiến trình (cổng) địa chỉ vật lý của giao diện mạng (địa chỉ MAC). Trong bài học tiếp theo chúng ta sẽ xem xét địa chỉ logic của máy (địa chỉ IP và tên miền).

    Khái niệm số cổng

    Trên mỗi thiết bị đầu cuối đồng thời có rất nhiều tiến trình đồng thời khai thác các dịch vụ truyền thông do TCP hoặc UDP cung cấp. Khi dữ liệu đến đích TCP hoặc UDP cần một cơ chế để có thể phân biệt dữ liệu đó dành cho tiến trình nào. 

    Để TCP hoặc UDP xác định được tiến trình nào đang khai thác dịch vụ của mình, mỗi tiến trình được đánh một số không trùng lặp, gọi là số cổng (port). 

    Số cổng là loại địa chỉ dành cho các ứng dụng khai thác dịch vụ truyền thông end-to-end do TCP hoặc UDP cung cấp. Nói cách khác, đây là loại địa chỉ được sử dụng bởi giao thức TCP hoặc UDP để phân biệt các chương trình ứng dụng đang khai thác các dịch vụ truyền thông của hai giao thức này cung cấp.

    Về giá trị, số cổng là một số nguyên 2 byte (16 bit). Do đó, số cổng có giá trị từ 0 đến 65535 (2^16-1).

    Số cổng và tiến trình

    Một số cổng của một dịch vụ thì không thể cấp cho 2 tiến trình. Ví dụ, nếu một tiến trình đã chiếm cổng TCP 80 thì tiến trình tiếp theo yêu cầu sử dụng cổng TCP này sẽ bị từ chối.

    Số cổng cho dịch vụ TCP độc lập với số cổng cho dịch vụ UDP. Ví dụ, một tiến trình có thể chiếm dụng cổng TCP 80, đồng thời có thể chiếm dụng luôn cổng UDP 80. Một tiến trình đang chiếm cổng UDP 21 thì một tiến trình khác vẫn có thể chiếm dụng cổng TCP 21.

    Các tiến trình có thể chọn ngẫu nhiên bất kỳ giá trị số cổng nào, miễn là giá trị đó chưa được sử dụng cho tiến trình khác. Hệ điều hành cũng có thể chọn ngẫu nhiên số cổng để gán cho tiến trình.

    Các tiến trình tham gia vào quá trình truyền thông phải thỏa thuận được với nhau về giá trị cổng. Các giá trị cổng nguồn (tiến trình gửi) và cổng đích (tiến trình nhận) đều được gửi đi kèm gói tin TCP (hoặc UDP) để các máy có thể xác định được cần chuyển gói tin đến cho tiến trình nào.

    Các cổng nổi tiếng

    Mặc dù giá trị số cổng có thể gán ngẫu nhiên cho các tiến trình, một số ứng dụng mạng luôn chiếm một cổng cố định. Ví dụ, chương trình máy chủ web khi chạy luôn chiếm cổng 80, chương trình máy chủ FTP chiếm cổng 20, 21. Đây là những ứng dụng mạng phổ biến đi kèm với giao thức tầng ứng dụng của riêng chúng.

    Giá trị cổng mà các chương trình này chiếm dụng được quy định trong các bảng đặc tả của giao thức. Các số cổng từ 0 đến 1023 thường được dùng cho các dịch vụ hệ thống hoặc các chương trình ứng dụng mạng phổ biến và thường được gọi là “cổng nổi tiếng” hoặc “cổng hệ thống”.

    Dưới đây là danh sách một số cổng được “chiếm dụng” sẵn bởi các ứng dụng / giao thức mạng phổ biến:

    • 20 FTP – Kênh dữ liệu
    • 21 FTP – Kênh điều khiển
    • 22 SSH Remote Login Protocol
    • 23 Telnet
    • 25 Simple Mail Transfer Protocol (SMTP)
    • 53 Domain Name System (DNS)
    • 80 HTTP
    • 110 POP3
    • 161 SNMP
    • 443 HTTPS
    • 546 DHCP Client
    • 547 DHCP Server

    Số cổng có thể kết hợp với địa chỉ IP để tạo thành địa chỉ của tiến trình trên liên mạng. Loại địa chỉ này được viết theo cấu trúc địa_chỉ_ip : số_cổng. Loại địa chỉ này còn có tên gọi khác là địa chỉ điểm cuối (end-point).

    Ví dụ, 192.168.1.1:80 là địa chỉ của một chương trình web server trên mạng cục bộ. Chương trình này đang chạy trên máy có IP 192.168.1.1 và chiếm cổng 80.

    Theo dõi
    Thông báo của
    guest

    0 Thảo luận
    Phản hồi nội tuyến
    Xem tất cả bình luận