TCP là một trong những giao thức thuộc tầng vận chuyển (Transport Layer) trong mô hình OSI. Sau đây hãy cùng mình tìm hiểu chi tiết cụ thể nhé!
Xem thêm:
- Mô hình osi và chức năng cơ bản của từng tầng
- Mạng ngang hàng là gì? Phân loại, Ưu nhược điểm
- giao thức udp là gì
1. Giao thức TCP là gì?
TCP (Transmission Control Protocol) là một giao thức tầng vận tải giúp các máy tính trên mạng truyền dữ liệu cho nhau một cách tin cậy. Giao thức đảm bảo rằng dữ liệu được truyền đúng thứ tự, không bị lỗi và không bị mất.
Để làm được điều này, giao thức TCP sử dụng một số nguyên lý sau:
- Phát hiện lỗi: TCP sử dụng mã kiểm tra lỗi (checksum) để phát hiện các lỗi trong quá trình truyền dữ liệu. Nếu phát hiện lỗi, TCP sẽ yêu cầu máy tính gửi lại dữ liệu đó.
- Đánh số thứ tự các đoạn tin: TCP đánh số thứ tự cho từng đoạn tin được truyền. Điều này giúp đảm bảo rằng các đoạn tin được nhận đúng thứ tự.
- Cơ chế xác nhận: TCP sử dụng cơ chế xác nhận để đảm bảo rằng máy tính nhận đã nhận được dữ liệu. Nếu máy tính nhận không nhận được xác nhận, TCP sẽ yêu cầu máy tính gửi lại dữ liệu đó.
Giao thức TCP thuộc loại kết nối có hướng vì trước khi gửi dữ liệu, hai máy tính phải thiết lập một kết nối với nhau. Việc thiết lập kết nối này được gọi là thủ tục bắt tay. Nghĩa là chúng phải gửi một số đoạn tin đặc biệt để xác định các tham số đảm bảo cho quá trình truyền dữ liệu.
Xem thêm: Máy tính nào có thể làm việc với nhau – Bài tập IPv4
2. Đặc điểm
Giao thức TCP có các đặc điểm sau:
- Định hướng kết nối: Hai máy tính muốn truyền dữ liệu cho nhau phải thiết lập một liên kết trước. Điều này đảm bảo rằng dữ liệu được truyền đi một cách an toàn và đáng tin cậy. Sau khi truyền dữ liệu xong thì một trong hai bên hoặc cả hai bên gửi tín hiệu yêu cầu hủy bỏ liên kết.
- Đánh số tuần tự: Mỗi đoạn tin được truyền đi đều được đánh một số thứ tự. Điều này giúp cho máy tính nhận biết được các đoạn tin bị thất lạc và bên nhận sẽ sắp xếp lạ các đoạn tin chính xác.
- Đảm bảo tính tin cậy: Giao thức TCP sẽ đảm bảo rằng dữ liệu được truyền đi không bị thất lạc, bị thay đổi hoặc bị mất. Nếu có lỗi xảy ra, giao thức TCP sẽ yêu cầu máy tính gửi lại dữ liệu đó.
- Điều khiển lưu lượng: Giao thức TCP sẽ điều chỉnh tốc độ truyền dữ liệu để phù hợp với khả năng xử lý của máy tính nhận. Năng lực xử lý của mỗi máy tính chỉ có hạn nhất định
(thường phụ thuộc ba tài nguyên cơ bản trong mỗi máy tính: tốc độc CPU, dung lượng bộ nhớ, tốc độ đọc/ghi thiết bị lưu trữ, ngoài ra có thể xét thêm các yếu tố khác như: số lượng người dùng, băng thông mạng…). Nếu không có cơ chế điều khiển lưu lượng thì bên nhận có thể không kịp xử lý các đoạn tin gửi đến và dẫn đến tình trạng lỗi như: tràn bộ nhớ, treo hệ thống.
3. Phương pháp điều khiển tắc nghẽn
Một chức năng quan trọng của giao thức TCP là cơ chế kiểm soát tắc nghẽn. Cơ chế này của TCP chỉ dựa vào các thiết bị đầu cuối chứ không dựa vào cơ chế kiểm soát tắc nghẽn của tầng mạng vì tầng IP không cung cấp cho TCP các thông tin minh bạch khi có tắc nghẽn. Kết nối TCP kiểm soát tốc độ truyền của nó bằng cách giới hạn số lượng các đoạn tin đã gửi nhưng chưa được biên nhận.
4. Một số thuật toán kiểm soát tắc nghẽn
Tên thuật toán | Đặc điểm | Ưu điểm | Nhược điểm |
Tahoe | – Dùng timeout để xác định congestion.
– Quay lại giai đoạn slow start (cwnd = 1) khi phát hiện congestion. |
– Có thể phát hiện tắt nghẽn. | – Gây lãng phí băng thông khi chờ timeout.
– Độ trễ rất cao. |
TCP Reno | – Cài đặt thêm thuật toán ReTransmit để gởi lại các gói tin bị mất.
– Dùng dấu hiệu 3 duplicate ACK để phát hiện mất gói tin. – Thêm giai đoạn phục hồi Fast Recovery. |
– Quá trình phục hồi truyền dữ liệu nhanh hơn so với Tahoe.
– Reno hoạt động tốt khi số lượng gói tin bị mất là tương đối nhỏ. |
– Nếu cwnd size của Reno quá nhỏ (nhỏ hơn 4 gói) thì có thể sẽ không nhận đủ 3 gói ACK để chạy thuật toán.
– Không thể nhận biết được nhiều gói tin bị mất một lần. – Không biết chính xác gói tin nào đã được ACK. |
TCP New Reno | – New Reno chỉ thoát khỏi giai đoạn Fast Recovery khi tất cả các gói tin bị mất đã được ACK.
– Có thể phát hiện nhiều gói tin bị mất. |
– New Reno có thể phát hiện nhiều gói tin bị mất cùng một lúc.
– Cho phép gởi lại nhiều gói tin khi Re Transmit. – Khi xác suất lỗi nhiều thì New Reno chạy tốt hơn hẳn Reno |
– Phải tốn một round trip time (RTT) để phát hiện mỗi gói tin bị mất. |
TCP Vegas |
– Tính toán thời gian RTT chính xác hơn. – Thay đổi cách giảm Window size (cwnd). – Cơ chế mới xác định thời điểm thích hợp để Re Transmit. – Kiềm chế tăng đột biến (Spike Suppression). – Phát hiện và tránh tắt nghẽn hiệu quả. |
– Phát hiện và và Re Transmit nhiều gói tin trước khi timeout xảy ra. – Không cần phải chờ đủ 3 gói duplicate ACK để gởi lại gói tin. – Phát hiện tắt nghẽn sớm. – Ít phải gởi lại gói tin. – Không giảm cwnd quá sớm. – Tận dụng băng thông tốt hơn. |
– Cơ chế phát hiện tắt nghẽn phụ thuộc quá nhiều vào việc tính toán RTT. |
TCP SANK |
– Mỗi gói tin ACK được thêm vào một trường miêu tả gói ACK này là cho gói tin nào trước đó. – SACK sử dụng phương thức “selective-N”. |
– Gửi lại chính xác gói tin bị mất. – Giảm tải băng thông trong giai đoạn fast re transmit do chỉ cần gởi đúng các gói bị mất. |
– Khó cài đặt, phải cài đặt cho cả bên gởi và bên nhận |
TCP FACK |
– Điểm đặc biệt của FACK là dự đoán trạng thái của mạng một cách chính xác nhờ vào gói tin có số sequence number lớn nhất (hay gói tin được forward-most) được gởi tới bên nhận. – Mục tiêu chính của FACK là thực hiện chính xác giai đoạn kiểm soát tắt nghẽn khi Fast Recovery bằng cách ước tính chính xác lượng gói tin bị gởi sai lệch trên đường truyền. |
– Dự đoán lượng gói tin bị gởi sai chính xác hơn SACK. – Có thể xử lý được những trường hợp bị mất gói tin quá nghiêm trọng. |
– Chưa được triển khai rộng rãi. – Khó cài đặt. |
5. Các ứng dụng dùng giao thức TCP
1. Trình duyệt web: Khi bạn truy cập một website, trình duyệt sử dụng giao thức TCP (http/https) để gửi yêu cầu đến máy chủ và nhận về dữ liệu.
2. Email: Các giao thức gửi mail như SMTP hoặc nhận mail như POP3 và IMAP đều sử dụng TCP.
3. FTP: Giao thức truyền file dùng TCP để đảm bảo độ tin cậy trong việc truyền tải file giữa máy khách và máy chủ.
4. SSH: Secure Shell dùng TCP để tạo một kết nối an toàn giữa máy khách và máy chủ.
5. Telnet: Giao thức Telnet dùng TCP để tạo một kênh truy cập từ xa đến máy chủ.
Nói chung, mọi ứng dụng cần độ tin cậy cao trong việc truyền tải dữ liệu đều dùng TCP.
6. Chức năng chính của giao thức TCP
Chức năng chính của giao thức TCP bao gồm:
1. Thiết lập kết nối: TCP hỗ trợ kết nối đầu cuối, nghĩa là nó cho phép hai máy tính tạo ra một kết nối chính xác trước khi bắt đầu truyền dữ liệu.
2. Dữ liệu tin cậy: TCP cung cấp chế độ truyền dữ liệu tin cậy. Nó đảm bảo rằng dữ liệu được gửi từ nguồn tới đích mà không bị mất mát hoặc hỏng hóc.
3. Kiểm soát luồng: TCP chuẩn bị và quản lý việc gửi gói tin, để tránh tình trạng quá tải. Nếu một máy tính gửi dữ liệu quá nhanh so với khả năng nhận dữ liệu của máy tính khác, TCP sẽ giảm tốc độ gửi.
4. Xác nhận gói tin: TCP xác nhận việc nhận dữ liệu bằng cách gửi lại các gói xác nhận. Nếu một gói tin không được xác nhận, nó sẽ được gửi lại.
5. Sắp xếp lại gói dữ liệu: TCP tự động sắp xếp lại các gói tin mà đã được truyền một cách không tuần tự.
6. Kiểm soát tắc nghẽn: Khi mạng bị tắc nghẽn, TCP giảm tốc độ truyền dữ liệu để giảm tải cho mạng.
7. So sánh giao thức TCP và giao thức UDP
8. TCP Header
Source Port: Xác định ứng dụng nguồn theo số cổng.
Destination Port: Xác định ứng dụng đích theo số cổng.
Sequence Number: Thứ tự gói tin, mục đích để tập hợp lại dữ liệu.
Acknowledgment Number: Cho biết dữ liệu đã được nhận và chờ gói tin tiếp theo.
Header Length: độ dài tiêu đề phân đoạn TCP
Reserved
Control bits: Cho biết mục đích và chức năng của phân đoạn TCP.
Window size: Số byte có thể chấp nhận được cùng một lúc.
Checksum: Kiểm tra lỗi
Urgent: Cho biết dữ liệu có khẩn cấp hay không.
Câu hỏi liên quan
TCP là giao thức chịu trách nhiệm
Giao thức TCP (Transmission Control Protocol) chịu trách nhiệm truyền vận, kiểm tra và đảm bảo sự an toàn cho mỗi gói tin khi đi qua các trạm. Giao thức TCP sẽ chịu trách nhiệm phát hiện các gói tin bị lỗi trong quá trình truyền vận. Sau đó giao thức này sẽ phát một tín hiệu, yêu cầu hệ thống máy chủ gửi lại một gói tin khác.
Như vậy, chúng ta đã tìm hiểu về giao thức TCP trong môn quản trị mạng. Giao thức giúp mạng internet hoạt động một cách ổn định, an toàn và hiệu quả, nhờ khả năng kiểm soát lưu lượng dữ liệu và đảm bảo việc truyền tải dữ liệu một cách chính xác. Cảm ơn các bạn đã tham khảo trên ttnguyen.net.
Bài viết liên quan: so sánh mạng internet so với mạng Lan, mạng Wan