Post

TCP/IP là gì? Tìm hiểu mô hình TCP/IP

TCP/IP là một trong những nền tảng quan trọng nhất của mạng máy tính hiện đại. Từ việc truy cập website, gửi email, xem video trực tuyến cho đến kết nối giữa các máy chủ và cơ sở dữ liệu, rất nhiều hoạt động trên Internet đều dựa trên các giao thức thuộc bộ TCP/IP.

Vậy TCP/IP là gì? TCP và IP có vai trò như thế nào? Mô hình TCP/IP gồm những tầng nào và dữ liệu được truyền qua mạng ra sao? Hãy cùng tìm hiểu trong bài viết dưới đây.

TCP/IP là gì?

TCP/IP là tên gọi chung của một bộ giao thức mạng được sử dụng để các thiết bị có thể giao tiếp và trao đổi dữ liệu với nhau.

TCP/IP là viết tắt của hai giao thức quan trọng:

  • TCP (Transmission Control Protocol): chịu trách nhiệm cung cấp cơ chế truyền dữ liệu đáng tin cậy giữa các thiết bị.
  • IP (Internet Protocol): chịu trách nhiệm xác định địa chỉ và định tuyến dữ liệu giữa các mạng.

Tuy nhiên, TCP/IP không chỉ bao gồm TCP và IP. Đây là một bộ gồm nhiều giao thức khác nhau, trong đó có HTTP, HTTPS, DNS, DHCP, SMTP, SSH, UDP, ICMP và nhiều giao thức khác.

Có thể hiểu đơn giản:

IP giúp dữ liệu biết cần đi đến đâu, còn TCP giúp dữ liệu được truyền đến nơi một cách có kiểm soát và đúng thứ tự.

TCP là gì?

TCP là viết tắt của Transmission Control Protocol, thuộc nhóm giao thức ở tầng Transport.

TCP được thiết kế để cung cấp một phương thức truyền dữ liệu có độ tin cậy cao giữa hai thiết bị.

Khi sử dụng TCP, hai bên thường thiết lập kết nối trước khi truyền dữ liệu. Trong quá trình truyền, TCP theo dõi dữ liệu, xác nhận dữ liệu đã nhận và có thể yêu cầu truyền lại những phần bị mất.

TCP cũng sử dụng cơ chế đánh số để đảm bảo dữ liệu được sắp xếp đúng thứ tự ở phía nhận.

Ví dụ, một dữ liệu lớn có thể được chia thành nhiều phần để truyền qua mạng. Các phần này có thể đến máy nhận không đúng thứ tự. TCP có nhiệm vụ hỗ trợ sắp xếp chúng lại để ứng dụng nhận được luồng dữ liệu đúng.

TCP thường được sử dụng trong các dịch vụ yêu cầu dữ liệu phải chính xác và đầy đủ như:

  • HTTP và HTTPS
  • SSH
  • FTP
  • SMTP
  • Kết nối cơ sở dữ liệu

IP là gì?

IP là viết tắt của Internet Protocol.

Nhiệm vụ chính của IP là cung cấp cơ chế địa chỉ hóa và định tuyến các gói dữ liệu giữa các thiết bị và mạng.

Mỗi thiết bị tham gia mạng có thể được gán một địa chỉ IP để xác định vị trí logic của thiết bị trong hệ thống mạng.

Ví dụ:

192.168.1.10

Đây là một địa chỉ IPv4.

Khi một thiết bị gửi dữ liệu đến một địa chỉ IP khác, các router trên đường truyền có thể sử dụng thông tin IP để quyết định cách chuyển tiếp packet đến mạng đích.

IP không đảm bảo dữ liệu chắc chắn sẽ đến nơi hoặc đến đúng thứ tự. Những nhiệm vụ liên quan đến độ tin cậy của quá trình truyền có thể được đảm nhiệm bởi các giao thức ở tầng Transport, chẳng hạn như TCP.

TCP và IP kết hợp với nhau như thế nào?

TCP và IP đảm nhiệm những nhiệm vụ khác nhau nhưng thường hoạt động cùng nhau.

Có thể hình dung:

TCP: Dữ liệu được truyền như thế nào?

IP: Dữ liệu cần đi đến đâu?

Ví dụ, khi một máy tính kết nối đến máy chủ:

Client
192.168.1.10

        |
        | TCP
        |
        v

Server
10.0.0.20

IP xác định địa chỉ của máy chủ là 10.0.0.20.

TCP quản lý kết nối giữa hai đầu và đảm bảo dữ liệu được truyền theo cơ chế của TCP.

Kết hợp lại, TCP/IP tạo thành nền tảng cho việc giao tiếp giữa các thiết bị trên mạng.

Mô hình TCP/IP gồm những tầng nào?

Mô hình TCP/IP thường được mô tả với 4 tầng:

  1. Application
  2. Transport
  3. Internet
  4. Network Access

Mỗi tầng chịu trách nhiệm cho một nhóm chức năng khác nhau.

Tầng 1: Network Access

Network Access là tầng thấp nhất của mô hình TCP/IP.

Tầng này liên quan đến việc truyền dữ liệu trên mạng vật lý hoặc mạng cục bộ.

Các công nghệ phổ biến gồm:

  • Ethernet
  • Wi-Fi
  • ARP
  • Một số công nghệ liên kết mạng khác

Tầng này chịu trách nhiệm đưa dữ liệu lên môi trường truyền dẫn như cáp mạng hoặc sóng vô tuyến.

Trong mô hình OSI, chức năng của tầng Network Access thường tương ứng với Physical và Data Link.

Tầng 2: Internet

Internet là tầng chịu trách nhiệm chính về địa chỉ và định tuyến.

Giao thức quan trọng nhất ở tầng này là IP.

Các giao thức liên quan gồm:

  • IPv4
  • IPv6
  • ICMP

Dữ liệu ở tầng Internet thường được gọi là packet.

Router chủ yếu hoạt động ở tầng này khi thực hiện việc định tuyến packet giữa các mạng.

Ví dụ, khi một máy tính ở mạng nội bộ muốn truy cập một máy chủ trên Internet, packet có thể phải đi qua nhiều router trước khi đến được mạng đích.

Tầng 3: Transport

Transport chịu trách nhiệm truyền dữ liệu giữa các ứng dụng trên hai thiết bị.

Hai giao thức phổ biến nhất ở tầng này là:

  • TCP
  • UDP

TCP cung cấp cơ chế truyền dữ liệu có kiểm soát và đáng tin cậy.

UDP có cơ chế đơn giản hơn và không cung cấp các cơ chế đảm bảo dữ liệu giống TCP.

Một khái niệm rất quan trọng ở tầng Transport là port.

Port giúp xác định dịch vụ hoặc ứng dụng đang nhận dữ liệu trên một thiết bị.

Một số port phổ biến:

Dịch vụPort thường dùngGiao thức
HTTP80TCP
HTTPS443TCP
SSH22TCP
DNS53TCP/UDP
PostgreSQL5432TCP

Ví dụ:

10.0.0.20:5432

Trong địa chỉ trên:

  • 10.0.0.20 là địa chỉ IP của máy chủ.
  • 5432 là port thường được PostgreSQL sử dụng.

Tầng 4: Application

Application là tầng cao nhất trong mô hình TCP/IP.

Tầng này chứa các giao thức phục vụ trực tiếp cho các ứng dụng và dịch vụ mạng.

Một số giao thức phổ biến gồm:

HTTP và HTTPS

HTTP và HTTPS được sử dụng để giao tiếp giữa trình duyệt và máy chủ web.

Ví dụ khi bạn truy cập:

https://example.com

trình duyệt có thể gửi HTTP request đến máy chủ.

HTTPS bổ sung cơ chế bảo vệ dữ liệu bằng TLS.

DNS

DNS là viết tắt của Domain Name System.

DNS giúp chuyển đổi tên miền thành địa chỉ IP.

Ví dụ:

example.com
        ↓
93.184.216.34

Nhờ DNS, người dùng có thể sử dụng tên miền thay vì phải nhớ địa chỉ IP của máy chủ.

SSH

SSH cho phép người dùng kết nối và quản lý máy chủ từ xa.

SSH thường sử dụng port 22.

SMTP

SMTP là giao thức được sử dụng trong quá trình gửi email.

Ngoài những giao thức trên, tầng Application còn có nhiều giao thức khác phục vụ các nhu cầu khác nhau.

TCP/IP hoạt động như thế nào?

Để hiểu cách TCP/IP hoạt động, hãy lấy ví dụ đơn giản là khi người dùng truy cập một website.

Giả sử người dùng nhập:

https://example.com

Bước 1: Phân giải tên miền

Trước tiên, hệ thống có thể cần sử dụng DNS để tìm địa chỉ IP tương ứng với tên miền.

Ví dụ:

example.com
      ↓
IP của máy chủ

Bước 2: Thiết lập kết nối

Nếu sử dụng TCP, client và server thực hiện quá trình thiết lập kết nối TCP.

Một cơ chế nổi tiếng của TCP là three-way handshake.

Quá trình cơ bản gồm:

Client                 Server

  SYN  ---------------->

       <--------------- SYN + ACK

  ACK  ---------------->

Sau khi quá trình bắt tay hoàn tất, hai bên có thể bắt đầu truyền dữ liệu qua kết nối TCP.

Bước 3: Gửi dữ liệu ứng dụng

Trình duyệt gửi HTTP request đến máy chủ.

Dữ liệu từ tầng Application được chuyển xuống tầng Transport.

TCP xử lý dữ liệu và chia thành các segment khi cần.

Bước 4: Đóng gói thành packet IP

Segment TCP được đặt bên trong IP packet.

Packet chứa các thông tin cần thiết, trong đó có địa chỉ IP nguồn và IP đích.

Ví dụ:

Source IP
192.168.1.10

Destination IP
10.0.0.20

Bước 5: Truyền qua mạng

IP packet tiếp tục được đóng gói ở tầng Network Access để truyền qua Ethernet, Wi-Fi hoặc một công nghệ mạng phù hợp.

Packet có thể đi qua nhiều router trước khi đến được máy chủ.

Bước 6: Máy chủ xử lý dữ liệu

Khi dữ liệu đến máy chủ, quá trình được thực hiện theo chiều ngược lại.

Có thể hình dung:

Network Access
      ↓
Internet
      ↓
Transport
      ↓
Application

Máy chủ nhận packet, xử lý TCP và chuyển dữ liệu đến ứng dụng web.

Ứng dụng web sau đó xử lý HTTP request và gửi HTTP response trở lại client.

Encapsulation trong TCP/IP là gì?

Một khái niệm quan trọng khi học TCP/IP là encapsulation, hay đóng gói dữ liệu.

Khi dữ liệu đi từ ứng dụng xuống các tầng thấp hơn, mỗi tầng có thể bổ sung thêm thông tin điều khiển của mình.

Có thể hình dung:

Application
    Data
      ↓
Transport
    TCP + Data
      ↓
Internet
    IP + TCP + Data
      ↓
Network Access
    Frame

Ở phía nhận, dữ liệu được xử lý theo chiều ngược lại. Quá trình này thường được gọi là decapsulation.

Một cách ghi nhớ đơn giản:

Application → Data

Transport → Segment

Internet → Packet

Network Access → Frame

TCP và UDP khác nhau như thế nào?

TCP và UDP đều là giao thức Transport nhưng có cách hoạt động khác nhau.

Đặc điểmTCPUDP
Thiết lập kết nốiCóKhông
Đảm bảo thứ tựCóKhông
Truyền lại dữ liệu mấtCóKhông
Kiểm soát luồngCóKhông giống TCP
Độ phức tạpCao hơnThấp hơn
Một số ứng dụngHTTPS, SSH, databaseDNS, streaming, game, VoIP

TCP phù hợp với những trường hợp cần độ tin cậy cao.

UDP phù hợp với những trường hợp ứng dụng có thể tự xử lý việc mất dữ liệu hoặc ưu tiên giảm độ trễ và overhead giao thức.

Việc lựa chọn TCP hay UDP phụ thuộc vào yêu cầu cụ thể của ứng dụng.

TCP/IP và OSI khác nhau như thế nào?

TCP/IP và OSI đều là những mô hình quan trọng trong lĩnh vực mạng máy tính nhưng có cách phân chia khác nhau.

Mô hình OSI có 7 tầng:

7. Application
6. Presentation
5. Session
4. Transport
3. Network
2. Data Link
1. Physical

Trong khi TCP/IP thường được mô tả với 4 tầng:

4. Application
3. Transport
2. Internet
1. Network Access

Có thể đối chiếu:

OSITCP/IP
ApplicationApplication
PresentationApplication
SessionApplication
TransportTransport
NetworkInternet
Data LinkNetwork Access
PhysicalNetwork Access

OSI giúp mô tả chức năng mạng theo 7 tầng một cách chi tiết.

TCP/IP phản ánh bộ giao thức được sử dụng rộng rãi trong Internet và các hệ thống mạng hiện đại.

Vì sao cần hiểu TCP/IP?

TCP/IP là kiến thức nền tảng đối với nhiều lĩnh vực công nghệ thông tin.

Đối với lập trình viên, hiểu TCP/IP giúp giải thích cách ứng dụng kết nối đến API, database và server.

Đối với người làm DevOps, kiến thức TCP/IP rất quan trọng khi cấu hình server, container, load balancer, firewall hoặc troubleshooting kết nối giữa các dịch vụ.

Đối với quản trị mạng, TCP/IP là nền tảng để tìm hiểu routing, subnet, NAT, DNS, DHCP và firewall.

Ngay cả khi làm backend, một lỗi như:

Connection refused
Connection timed out
DNS resolution failed

cũng có thể liên quan đến những thành phần khác nhau trong TCP/IP.

Do đó, hiểu mô hình TCP/IP giúp người kỹ thuật có cách tiếp cận có hệ thống hơn khi phân tích sự cố.

Sau khi hiểu mô hình TCP/IP, người mới học Networking có thể tiếp tục tìm hiểu các khái niệm theo trình tự:

IP → Subnet → Gateway → Routing → Port → TCP/UDP → DNS → NAT → DHCP → Firewall → HTTP/HTTPS

Trong đó, IP, subnet, gateway, port và DNS là những kiến thức đặc biệt quan trọng để xây dựng nền tảng về mạng.