TCP nhận dữ liệu từ lớp ứng dụng, định dạng chỳng thành cỏc đơn vị dữ liệu riờng (gọi là segment) và sau đú gửi xuống tầng dƣới. Khuụn dạng gúi tin TCP đƣợc mụ tả [5] nhƣ hỡnh 2.4. í nghĩa cỏc trƣờng dữ liệu cụ
thể [4], [5], [20], [22] nhƣ sau:
Source Port (Cổng nguồn – 16 bit) – Số hiệu cổng đƣợc chỉ định cho ứng dụng trờn mỏy nguồn.
Destinatin Port (Cổng đớch – 16 bit) - Số hiệu cổng đƣợc chỉ định cho ứng dụng trờn mỏy đớch.
Sequence Number (Số tuần tự – 32 bit) – Số thứ tự của byte đầu tiờn trong segment khi SYN đƣợc thiết lập.
Nếu bit SYN đƣợc thiết lập thỡ Sequence Number là số thứ tự tuần tự khởi đầu (ISN) và byte dữ liệu đầu tiờn là ISN + 1.
Acknowledgement Number (Số bỏo nhận – 32 bit) – Số hiệu bỏo nhận của đoạn. Trƣờng này cú giỏ trị là số thứ tự kế tiếp mà mỏy nhận mong
Acknowledgment Senquence Number
Source Port Destination Port
Data
offset Reserve Window
d
0 15 16 31
Data TCP Options Checksum
Hỡnh 2.4. Khuụn dạng gúi tin TCP
Padding Urgent Pointer U R G A C K P S H R S T F I N S Y N
muốn nhận đƣợc, hay núi cỏch khỏc, là số thứ tự của byte cuối cựng nhận đƣợc cộng với 1.
Data offset (Độ rời phần dữ liệu – 4 bit) – Trƣờng này bỏo cho phần mềm TCP trờn mỏy nhận biết đƣợc phần tiờu đề cú kớch thƣớc bao nhiờu, cũng cú nghĩa là dữ liệu đƣợc bắt đầu từ vị trớ nào.
Control flags ( Cỏc cờ điều khiển – mỗi cờ 1 bit) – Cỏc cờ này cung cấp những thụng tin quan trọng về đoạn dữ liệu, gồm:
- URG: Nếu cú giỏ trị 1, segment cần đƣợc xử lý ngay và trƣờng con trỏ khẩn đƣợc xột đến.
- ACK: Nếu cú giỏ trị 1, trƣờng số bỏo nhận đƣợc xem xột.
- PSH: Giỏ trị1 , phần mềm TCP sẽ đẩy toàn bộ dữ liệu đƣợc gửi theo một luồng đến ứng dụng nhận.
- RST: Giỏ trị 1, kết nối sẽ đƣợc thiết lập lại.
- SYN: Giỏ trị 1, cỏc số tuần tự sẽ đƣợc đồng bộ, đỏnh dấu bắt đầu một kết nối.
- FIN: Giỏ trị 1, mỏy tớnh gửi đó truyền hết dữ liệu. Cờ này đƣợc sử dụng để đúng một kết nối.
Window (Cửa sổ – 16 bit) – Là tham số dƣợc sử dụng trong điều khiển luồng. Cửa sổ xỏc định dóy cỏc số tuần tự phỏt sau số tuần tự bỏo nhận sau cựng của mỏy gửi cú thể truyền đi mà khụng chờ bỏo nhận.
Checksum (Kiểm tra lỗi – 16 bit) - Để kiểm tra tớnh đỳng đắn của đoạn dữ liệu. Dựng mó kiểm soỏt lỗi theo phƣơng thức CRC cho toàn bộ tiờu đề + dữ liệu.
Urgent Pointer (Con trỏ khẩn – 16 bit) – Con trỏ độ dời chỉ đến số tuần tự đỏnh dấu sự bắt đầu của thụng tin khẩn trong vựng dữ liệu.
Options (Tuỳ chọn - độ dài thay đổi) – Xỏc định một trong cỏc tập thiết lập tuỳ chọn.
Padding (Đệm - độ dài thay đổi) – Cỏc bớt 0 đƣợc thờm vào (nếu cần thiết) để đảm bảo dữ liệu đƣợc bắt đầu đỳng ở giới hạn 32 bớt.
TCP Data (Dữ liệu ) – Phần dữ liệu đƣợc truyền trong đoạn.