Bộ giao thức TCP/IP

    0

    Khái niệm bộ giao thức

    Trên thiết bị đầu cuối đồng thời có rất nhiều giao thức cùng hoạt động: những giao thức gắn với các phần mềm ứng dụng và thường được tích hợp trong các phần mềm này; những giao thức cung cấp dịch vụ truyền thông end-to-end và host-to-host do hệ điều hành cung cấp. Ngoài ra còn có những giao thức gắn với các công nghệ và thiết bị phần cứng. 

    Các giao thức này không hoạt động độc lập mà có sự quan hệ với nhau. Quan hệ giữa các giao thức này gần giống như cách gọi hàm / phương thức trong các ngôn ngữ lập trình. Theo đó, giao thức gắn với ứng dụng sẽ gọi tới giao thức end-to-end. Giao thức end-to-end lại gọi tới giao thức host-to-host.

    Một nhóm các giao thức trên thiết bị đầu cuối có quan hệ với nhau như vậy tạo thành một bộ giao thức.

    Hiện nay, bộ giao thức TCP/IP là bộ giao thức phổ biến nhất, là chuẩn công nghiệp được hỗ trợ bởi mọi nhà sản xuất phần cứng và phần mềm mạng.

    Bộ giao thức TCP/IP

    Bộ giao thức TCP/IP chia các giao thức vào các nhóm, mỗi nhóm được gọi là một tầng. Tổng cộng có 4 tầng (tức là 4 nhóm giao thức), mỗi tầng được đặt một tên gọi riêng, bao gồm: tầng ứng dụng, tầng giao vận, tầng liên mạng, tầng liên kết. Trong đó:

    • Tầng ứng dụng (application layer) chứa các giao thức mà thực thi của nó tích hợp trong các phần mềm ứng dụng. Các giao thức tầng ứng dụng phổ biến cùng với phần mềm sử dụng chúng bao gồm:
      • HTTP (HyperText Transfer Protocol): sử dụng bởi trình duyệt và chương trình chủ web;
      • SMTP, POP3, IMAP: sử dụng bởi chương trình Email client và server;
      • FTP (File Transfer Protocol): sử dụng bởi chương trình FTP client và server.
    • Tầng giao vận (transport layer) chứa các giao thức cung cấp dịch vụ truyền thông end-to-end, chủ yếu bao gồm:
      • Giao thức TCP (Transmission Control Protocol): cung cấp dịch vụ truyền thông tin cậy hướng liên kết;
      • UDP (User Datagram Protocol): cung cấp dịch vụ truyền thông không tin cậy phi liên kết tốc độ cao.
    • Tầng liên mạng (internet layer) chứa các giao thức cung cấp dịch vụ truyền thông host-to-host:
      • Giao thức IP (Internet Protocol)
      • Giao thức IPv6 (Internet Protocol v6)
    • Tầng liên kết (link layer) chứa các giao thức giúp kết nối thiết bị đầu cuối với mạng cục bộ:
      • Giao thức ARP (Address Resolution Protocol): dùng để xác định địa chỉ vật lý MAC gắn với địa chỉ logic IP của thiết bị.
      • Giao thức RARP (Reverse ARP): dùng để xác định địa chỉ vật lý gắn với địa chỉ logic của thiết bị (giao thức đã cũ).
      • Giao thức NDP (Neighbor Discovery Protocol): phiên bản ARP cho IPv6.
      • Giao thức DHCP (Dynamic Host Configuration Protocol) và DHCPv6: tự động gán thông số cấu hình cho thiết bị.

    Các giao thức tối thiểu

    Mặc dù ở trên đã trình bày 4 tầng TCP/IP với rất nhiều giao thức, thực tế không phải tất cả các giao thức đó đều phải thực thi trên các thiết bị đầu cuối.

    Tối thiểu, bộ giao thức TCP/IP yêu cầu phải thực thi các giao thức sau: Internet Protocol (IP), Address Resolution Protocol (ARP), Internet Control Message Protocol (ICMP), Transmission Control Protocol (TCP), User Datagram Protocol (UDP), and Internet Group Management Protocol (IGMP).

    Ngoài ra, giao thức Internet Protocol version 6 yêu cầu thêm Neighbor Discovery Protocol (NDP), ICMPv6, và Multicast Listener Discovery (MLD).

    Có thể thấy rằng, đây đều là các giao thức ở tầng 2 và 3. Tất cả các giao thức ở tầng ứng dụng đều không bắt buộc vì chúng đi kèm với ứng dụng.

    Giao thức tầng ứng dụng

    Ngoài những giao thức thông dụng như đã trình bày, còn rất nhiều giao thức tầng ứng dụng khác do người lập trình tự thiết kế và thực thi.

    Các chương trình ứng dụng mạng bắt buộc phải tự mình xây dựng các giao thức riêng (giao thức độc quyền) hoặc sử dụng một giao thức sẵn có (giao thức mở). Các giao thức này đều thuộc về tầng ứng dụng. Do vậy có rất nhiều giao thức tầng ứng dụng khác nhau. 

    Các giao thức tầng ứng dụng luôn đi kèm với chương trình và thường được tích hợp thành một module của chương trình. Ví dụ, giao thức HTTP luôn đi kèm với hệ thống phần mềm web. Nó được tích hợp trong chương trình trình duyệt và chương trình chủ web.

    Giao thức tầng giao vận và tầng liên mạng

    Trên các hệ điều hành của thiết bị đầu cuối, các giao thức ở tầng giao vận và tầng liên mạng của bộ giao thức TCP/IP được cung cấp ở dạng các chương trình con của hệ thống. Nghĩa là trên thiết bị đầu cuối sẽ có các chương trình TCP, UDP và IP hoạt động.

    Chương trình ứng dụng có thể khai thác các dịch vụ truyền thông do các giao thức này cung cấp thông qua một giao diện lập trình ứng dụng (Application Programming Interface – API) có tên gọi là socket API. Nghĩa là thông qua socket API, chương trình ứng dụng có thể gọi tới các chương trình TCP, UDP hoặc IP để yêu cầu mang dữ liệu đi.

    Hầu hết các ngôn ngữ lập trình đều cho phép sử dụng socket API để phát triển các ứng dụng mạng. Do đó, có thể sử dụng gần như bất kỳ ngôn ngữ lập trình nào để phát triển ứng dụng mạng.

    Tất cả các giao thức ở hai tầng này làm việc với dữ liệu ở dạng chuỗi byte. Ví dụ, chương trình con TCP chỉ chấp nhận chuỗi byte do ứng dụng chuyển tới. Vì vậy, việc chuyển đổi dữ liệu thành chuỗi byte (và ngược lại – chuyển chuỗi byte về dữ liệu) là nhiệm vụ của chương trình ứng dụng.

    Các giao thức ở 2 tầng này sẽ tự động tạo ra chuỗi byte của riêng mình từ dữ liệu của ứng dụng bằng cách bổ sung thêm một chuỗi byte nhỏ (được gọi là header) gắn vào trước chuỗi byte dữ liệu nó nhận được (gọi là payload). Chuỗi byte lớn này được gọi là một đơn vị dữ liệu của giao thức. Đơn vị dữ liệu của TCP được gọi là segment, của UDP được gọi là datagram, của IP được gọi là packet.

    Giao thức tầng liên kết

    Các giao thức thuộc tầng liên kết khác biệt với các giao thức ở 3 tầng trên ở chỗ, chúng có thể hoạt động trên cả phần cứng.

    Các thiết bị mạng thông thường không hỗ trợ tất cả các giao thức trong bộ TCP/IP. Tùy thuộc vào loại thiết bị, thường chỉ có một bộ phận của bộ giao thức này được hỗ trợ. Do vậy, cũng có thể xác định vai trò của thiết bị đó trong mạng thông qua những giao thức TCP/IP được thiết bị đó hỗ trợ.

    Chi tiết về các giao thức TCP/IP sẽ được học ở chương Bộ giao thức TCP/IP.

    Địa chỉ của tiến trình

    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à một số nguyên 2 byte (16 bit) với giá trị từ 0 đến 65535. 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.

    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”.

    + Nếu bạn thấy site hữu ích, trước khi rời đi hãy giúp đỡ site bằng một hành động nhỏ để site có thể phát triển và phục vụ bạn tốt hơn.
    + Nếu bạn thấy bài viết hữu ích, hãy giúp chia sẻ tới mọi người.
    + Nếu có thắc mắc hoặc cần trao đổi thêm, mời bạn viết trong phần thảo luận cuối trang.
    Cảm ơn bạn!

    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