Psh, ACK là gì

Bài viết dựa trên cuốn Addison-Wesley_TCPIP_Illustrated tập 1 và một số tài liệu tham khảo khác.

Một số đặc điểm của TCP:

Oriented connection

Một kết nối duy nhất giữa hai endpoint phải được thực hiện trước khi data thực sự được truyền qua. Quá trình thiết lập kết nối này gọi là bắt tay ba bước.

Reliable

  • TCP được cắt nhỏ thành các segment để tiện vận chuyển. Sau đó mỗi segment này được đóng vào trong một IP datagram để truyền đi. Do nằm trong IP datagram nên thứ tự các segment này có thể sai biệt khi đến đích. TCP segment có cơ chế để sắp xếp lại.

  • TCP discard các duplicate data

  • TCP duy trì checksum trên cả header và data.

  • TCP có các cơ chế sửa lỗi như stop and wait, go back và repeat selected để phát hiện và retransmission.

  • TCP sử dụng flow control để điều khiển tốc độ đẩy data từ client lên server và tốc độ response từ server và client.

Packet data TCP hay UDP đều được đóng vào IP datagram truyền đi theo cùng con đường nhưng vì TCP có cơ chế giám sát và điều khiển nên nó có tính đảm bảo hơn UDP. Tuy vậy, cũng vì chính cơ chế này mà TCP hoạt động chậm hơn UDP.

Cấu trúc TCP

Tối thiểu một TCP data sẽ lên đến 41 byte.

  • Port number có hai trường src port và destination port.

  • Sequence number: Là thứ tự byte của TCP data. Dựa vào trường giá trị này mà TCP ở đầu nhận biết cách ráp các segment thành một TCP hoàn chỉnh.

  • Ack number: chứa thứ tự byte tiếp theo mà receiver muốn nhận.

  • Vì TCP là full duplex nên mỗi endpoint sẽ có sequence number và ack number của riêng nó.

  • Window size là kích cỡ cửa sổ sử dụng trong sliding window protocol. Đây là cơ chế flow control ngăn client không làm tràn receiving buffer của receiver.

  • Header length là kích cỡ của header. Giá trị trường này cần thiết vì phần options có thể có.

  • Checksum: Checksum được thực hiện trên cả TCP header và data.

  • Mỗi một TCP segemt sẽ có một cờ xác định. Cờ ACK bật khi ack number có gía trị hợp lệ. Cờ PSH bật khi truyền data. Nó cũng là chỉ dấu ra hiệu receiver nên xử lý data này nhanh chóng. Cờ RST để reset kết nối. Cờ SYN để khởi tạo một kết nối. Cờ FIN để đóng kết nối.

Video liên quan

Chủ Đề