Quy trình bắt tay 3 bước TCP (Three-way handsake)

Trong bài viết giới thiệu về giao thức TCP, mình có giới thiệu rằng đây là một giao thức kết nối có định hướng. Tức là giữa 2 máy chủ gửi và nhận sẽ được thiết lập kết nối trước khi truyền gửi dữ liệu. Quy trình này được gọi là bắt tay 3 bước (Three-way Handshake). Trong bài viết này mình sẽ giải thích chi tiết hơn về quy trình này!

Hai thiết bị kết nối qua Internet hiện nay sẽ tuân theo mô hình TCP/IP. Trong đó, lớp ứng dụng (Application) là lớp trên cùng của một loạt các mô hình TCP/IP. Từ đó các ứng dụng được tham chiếu mạng như trình duyệt web (google chorme) ở máy khách sẽ kết nối với máy chủ.

Từ lớp ứng dụng, thông tin được gửi đến lớp vận chuyển, đây là nơi giao thức TCP xuất hiện và hoạt động. TCP là giao thức điều khiển truyền dẫn. Trong lớp vận chuyển TCP và giao thức UDP là 2 giao thức quan trọng nhất. Tuy nhiên TCP phổ biến hơn.

TCP có khả năng cung cấp kết nối đáng tin cậy hơn với PAR. Các đơn vị dữ liệu của giao thức PDU trong lớp vận chuyển gọi là segment (phân đoạn). Thiết bị sử dụng PAR sẽ gửi lại đơn vị dữ liệu cho đến khi nhận được xác nhận. Nếu đơn vị dữ liệu nhận ở thiết bị đầu bên kia bị hỏng (Nó kiểm tra dữ liệu bằng chức năng tổng kiểm tra của lớp vận chuyển được sử dụng để phát hiện lỗi) thì bên nhận sẽ loại bỏ Segment đó.

Do đó, người gửi phải gửi lại dữ liệu mà không nhận được xác nhận PAR. Quy trình này có thể dễ dàng quan sát được trong “Bắt tay 3 bước” giữa máy khách (người gửi) và máy chủ (người nhận) để thiết lập kết nối TCP. Hãy cùng tìm hiểu cơ chế hoạt động 3 bước này:

minh họa quy trình bắt tay 3 bước TCP
minh họa quy trình bắt tay 3 bước TCP

Sở dĩ được gọi là quy trình bắt tay 3 bước vì nó có 3 bước sau:

  • Bước 1: Máy chủ A khởi tạo kết nối bằng cách gửi gói TCP SYN đến máy chủ đích. Gói chứa số thứ tự ngẫu nhiên (ví dụ: 5432 ) đánh dấu sự bắt đầu của số thứ tự cho dữ liệu mà Máy chủ A sẽ truyền.
  • Bước 2: Máy chủ nhận gói và phản hồi bằng số thứ tự của chính nó. Phản hồi cũng bao gồm số xác nhận, là số thứ tự của Máy chủ A được tăng thêm 1 (Ví dụ như: 5433 ).
  • Bước 3: Máy chủ A xác nhận phản hồi của Máy chủ bằng cách gửi số xác nhận, là số thứ tự của Máy chủ tăng thêm 1.

Dưới đây là hình ảnh minh họa cụ thể với ví dụ trên:

ví dụ minh họa cụ thể quá trình bắt tay 3 bước TCP
ví dụ minh họa cụ thể quá trình bắt tay 3 bước TCP

Sau khi quá trình truyền dữ liệu hoàn thành, TCP sẽ ngắt kết nối giữa 2 máy chủ. Tức là một quá trình từ khi TCP được khởi tạo đến kết thúc sẽ có 4 bước theo hình sau:

quy trình 4 bước của TCP
quy trình 4 bước của TCP

4 Bước này được diễn tả như sau:

  1. Ứng dụng từ máy khách muốn đóng kết nối sẽ gửi Segment TCP có cờ FIN (Hoàn thành) được đặt thành 1.
  2. Máy chủ nhận được segment TCP và xác nhận nó bằng segment ACK.
  3. Máy chủ gửi segment TCP của riêng nó với cờ FIN được đặt thành 1 cho máy khách để chấm dứt kết nối.
  4. Máy khách xác nhận segment FIN của máy chủ và đóng kết nối.

Kết luận:

Đến đây thì bạn cũng đã nắm rõ được các bước trong quy trình bắt tay 3 bước diễn ra như thế nào rồi? Mong rằng bài viết này đã giúp ích cho bạn trong việc hiểu rõ hơn về giao thức TCP – một giao thức đặc biệt quan trọng trong lớp vận chuyển của mô hình OSI.

Nếu có bất kỳ câu hỏi nào khác, hãy để lại dưới phần bình luận bài viết để mình hỗ trợ giải đáp nhanh chóng nhất!

Xem thêm các bài viết khác:

Bảo mật cổng là gì? Cách cấu hình Security Port trên Switch Cisco

Tác dụng và Cách cấu hình Giao thức STP (Spanning Tree Protocol)