e. Cổng giao tiế p Gateway
5.3.2. Cấu trúc gói số liệu TCP Gồm 2 phần:
• Tiêu đề giả (Pseudo Header TCP), cần thiết để xây dựng IP packet. Bao gồm:
– IP Source - Địa chỉ nguồn (32 bit) – IP Destination - Địa chỉ đích (32 bit) – Protocol = 0x06 (thuộc giao thức TCP) – Length: độ dài của TCP segment. • Gói số liệu TCP thực (TCP Segment)
Cấu trúc TCP segment:
• Source/Destination port number: 2 điểm cuối của kết nối TCP. Port number + IP add → socket (48 bit)
• Seq. number = số thứ tự byte đầu tiên của data so với byte đầu của dòng dữ liệu của thực thể gửi. Giá trị ban đầu = ISN+1 (Initial Sequence Number)
• ACK: Byte tiếp theo có thể nhận (stt byte cuối cùng đã nhận đúng + 1) • TCP header length: đơn vị 32 bit; đó cũng chính là data offset.
• Resered = 0: để dùng trong tương lai. • Flags (6):
– URG =1: có sử dụng trường Urgent pointer. – ACK =1: trường Ack đúng.
– PSH =1: thực thể nhận được y/c chuyển ngay segment này – RST =1: Reset kết nối; từ chối kết nối v.v.
– SYN =1: đồng bộ trường Seq. , dùng để thiết lập kết nối TCP – FIN =1: thông báo thực thể gửi đã kết thúc việc gửi số liệu.
• Window size: Độ lớn cửa sổ nhận, cho bên sender biết có thể gửi tiếp bao nhiêu byte, tính từ byte được biên nhận (ack).
• Checksum: checksum của cả TCP segment + Pseudo header. Trước khi tính, trường này = 0. (Tổng các word 16 bit kiểu bù 1, kết quả thu được lại tính bù 1 - XOR).
• Urgent pointer: byte trong trường data của TCP segment cần được xử lý đầu tiên. • Options: Các tuỳ chọn. Hiện nay tuỳ chọn duy nhất được dùng là MSS (Maximum
Segment Size). Giá trị default = 536 byte payload + 20 byte header = 556 byte. • Pad (ở hình trên slide trước khơng vẽ): chèn thêm để chiều dài trường Options là
bội của 32 bit.
Hình 5.6. Cấu trúc gói tin TCP segment