Giao thức TCP là gì?
Giao thức TCP (Transmission Control Protocol) là giao thức phân phối dữ liệu theo thứ tự giữa các ứng dụng chạy trên máy chủ trên mạng TCP/IP. TCP là tiêu chuẩn truyền thông cho phép các chương trình ứng dụng và máy tính trao đổi tin nhắn qua Internet. Bởi vì tính tin cậy cao mà TCP được sử bởi các ứng dụng như FTP, SSH, SMTP, HTTP,…
Cách giao thức TCP hoạt động
TCP là giao thức có kết nối. Ngĩa là trước khi dữ liệu được gửi, giữa 2 máy chủ sẽ được thiết lập kết nối. Để thiết lập kết nối TCP cần 1 quá trình được gọi là bắt tay ba bước. Sau khi kết nối thiết lập, dữ liệu sẽ được truyền và sau khi truyền xong thì kết nối sẽ ngắt.
Giao thức TCP phân phối dữ liệu rất tin cậy vì dùng số thứ tự để xác định thứ tự các Byte được gửi từ mỗi máy tính đề dữ liệu có thể được xây dựng lại thứ tự. Nếu có dữ liệu bị mất trong quá trình truyền thì máy chủ người gửi sẽ truyền lại dữ liệu.
Để chắc chắn rằng mỗi gói tin được gửi đến đúng mục tiêu một cách chính xác và đầy đủ nhất, mô hình TCP/IP chia dữ liệu thành các gói nhỏ và tập hợp lại các gói đó thành gói tin gốc. Việc chia nhỏ và gửi thông tin theo từng nhóm giúp việc duy trì truyền dẫn dữ liệu đơn giản và hiệu quả hơn so với việc gửi tất cả cùng một lúc.
Sau khi một tin nhắn cụ thể được chia thành các gói, các gói này có thể di chuyển theo nhiều tuyến đường nếu một tuyến bị kẹt nhưng đích đến vẫn giữ nguyên.
Ví dụ: Nếu bạn tương tác với trang web trên internet, máy chủ sẽ xử lý yêu cầu và gửi lại trang HTML cho bạn. Máy chủ sử dụng giao thức HTTP. Giao thức thức sau đó sẽ yêu cầu TCP thiết lập kết nối và gửi tệp HTML.
Định dạng tiêu đề TCP
Giao thức TCP khá phức tạp và tốn kém tài nguyên khi sử dụng dụng. Một tiêu đề TCP dài tối đa 24 Byte và có thể bao gồm các trường hợp theo hình sau:
- Cổng nguồn (source port): số cổng của ứng dụng trên máy chủ gửi dữ liệu.
- Cổng đích (destiantion Port): số cổng của ứng dụng trên máy chủ nhận dữ liệu.
- Số thứ tự (sequence number): được sử dụng để xác định từng byte dữ liệu.
- Số xác nhận (knowledgement number): số thứ tự tiếp theo mà người nhận mong đợi.
- Độ dài tiêu đề (header length): kích thước của tiêu đề TCP.
- Dành riêng (reserved): luôn được đặt thành 0.
- Cờ (Flags): được sử dụng để thiết lập và kết thúc một phiên.
- Window: kích thước cửa sổ mà người gửi sẵn sàng chấp nhận.
- Checksum: được sử dụng để kiểm tra lỗi tiêu đề và dữ liệu.
- Urgent: cho biết độ lệch so với số thứ tự hiện tại, nơi bắt đầu phân đoạn dữ liệu không khẩn cấp.
- Options: các tùy chọn TCP khác nhau, chẳng hạn như Kích thước phân đoạn tối đa (MSS) hoặc Chia tỷ lệ cửa sổ.
Lưu ý rằng: giao thức TCP là giao thức nằm trong lớp vận chuyển (lớp 4 trong mô hình OSI).
Ưu điểm và nhược điểm của giao thức TCP
Ưu điểm TCP:
- Giao thức đáng tin cậy.
- Có cơ chế kiểm tra lỗi và phục hồi.
- Kiểm soát dòng lưu lượng.
- Đảm bảo dữ liệu được gửi đến đúng đích theo đúng thứ tự được gửi.
- TCP là giao thức mở và không thuộc bất kỳ tổ chức hay cá nhân.
- TCP gắn một địa chỉ IP cho mỗi máy tính trên Internet và một tên miền cho từng trang. Do đó mỗi trang thiết bị đều được phân biệt cụ thể qua Internet.
Nhược điểm TCP:
- TCP được tạo cho mạng WAN nên kích thước của nó là vấn đề với các mạng nhỏ với băng thông ít.
- TCP chạy nhiều lớp nên có thể làm chậm tốc độ mạng.
- TCP không thể biểu diễn các giao thức nào ngoài TCP/IP. Ví dụ: TCP không thể hoạt động với bluetooth.
- Giao thức này chưa được sửa đổi lần nào kể từ khi được phát triển.
Giao thức TCP và IP khác nhau thế nào?
Giao thức TCP và IP là 2 giao thức riêng biệt hoạt động cùng với nhau nhằm đảm bảo dữ liệu được gửi đến đích một cách chính xác tỏng mạng. Giao thức IP lấy và xác nhận địa chỉ IP được gửi dữ liệu đích. Sau đó, TCP chịu trách nhiệm vận chuyển và định tuyến dữ liệu và đảm bảo dữ liệu được gửi đến ứng dụng hoặc thiết bị đích mà IP đã xác định.
Do đó, hai giao thức TCP và IP có chức năng khác nhau nhưng lại hoạt động cùng nhau để quá trình truyền dẫn dữ liệu trên Internet.
Giao thức TCP là một trong những giao thức quan trọng trong bộ giao thức Internet và chiếm vai trò quan trọng Transport Layer của mô hình OSI. Mong rằng qua bài viết này, bạn đã hiểu được giao thức TCP là gì? Cách thức hoạt động và vai trò của nó ra sao? 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 để mình hỗ trợ giải đáp nhanh chóng nhất!
Xem thêm các bài viết:
ACL (Access Control List) có vai trò như thế nào trong mạng?