Download - TCP Protocol
![Page 1: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/1.jpg)
TCP Protocol
![Page 2: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/2.jpg)
TCP protocol
IP Header TCP Header DataEthernet Header
IP datagram
TCP segment
IP datagram : ข้�อมู�ลตั้�งแตั้�หั�ว IP (IP header) ถึ�ง ข้�อมู�ลตั้�วสุ�ดท้�าย
UDP datagram : ข้�อมู�ลตั้�งแตั้� UDP header ถึ�ง ข้�อมู�ลตั้�วสุ�ดท้�าย
TCP segment : ข้�อมู�ลตั้�งแตั้� TCP header ถึ�ง ข้�อมู�ลตั้�วสุ�ดท้�าย
![Page 3: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/3.jpg)
TCP protocol
• ก่�อนก่ารสุ��อสุารท้�ก่คร�งด�วยโปรโตั้คอล TCP จะตั้�องท้"าก่ารสุถึาปนาก่ารเชื่��อมูตั้�อก่�อน เพื่��อตั้รวจความูพื่ร�อมูระหัว�างเคร��องตั้�นท้างและปลายท้างก่�อนจะแลก่เปล&�ยนข้�อมู�ลก่�น
• เมู��อสุ'นสุ�ดก่ารสุ��อสุารจะป(ดก่ารเชื่��อมูโยง
• TCP ร�บประก่�นความูเชื่��อถึ�อในก่ารสุ�งข้�อมู�ลโดยจะตั้รวจสุอบ segment ท้&�ผิ'ดปก่ตั้' และท้"าก่ารจ�ดสุ�ง segment ซ้ำ"าใหัมู�
![Page 4: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/4.jpg)
TCP header
Source Port Destination Port
Sequence number
Acknowledgement number
HL reserved Code Window size
Checksum Urgent pointer
Options
data
0 15 16 31
![Page 5: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/5.jpg)
TCP header
Source Port Destination Port
Sequence number
Acknowledgement number
HL reserved Code Window size
Checksum Urgent pointer
Options
data
0 15 16 31
Source Port (16 bits) : หัมูายเลข้พื่อร-ตั้ข้องสุถึาน&ตั้�นท้าง
![Page 6: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/6.jpg)
TCP header
Source Port Destination Port
Sequence number
Acknowledgement number
HL reserved Code Window size
Checksum Urgent pointer
Options
data
0 15 16 31
Destination Port (16 bits) : หัมูายเลข้พื่อร-ตั้ข้องสุถึาน&ปลายท้าง
![Page 7: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/7.jpg)
TCP header
Source Port Destination Port
Sequence number
Acknowledgement number
HL reserved Code Window size
Checksum Urgent pointer
Options
data
0 15 16 31
Seq number (32 bits) : หัมูายเลข้เร'�มูตั้�นสุ"าหัร�บชื่&ข้�อมู�ล byte แรก่
![Page 8: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/8.jpg)
TCP header
Source Port Destination Port
Sequence number
Acknowledgement number
HL reserved Code Window size
Checksum Urgent pointer
Options
data
0 15 16 31
Ack number (32 bits) : หัมูายเลข้ตั้อบร�บว�ารอร�บข้�อมู�ล seq number อะไร ถึ�าเป/น ACK อย�างเด&ยวจะไมู�น�บ
![Page 9: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/9.jpg)
TCP header
Source Port Destination Port
Sequence number
Acknowledgement number
HL reserved Code Window size
Checksum Urgent pointer
Options
data
0 15 16 31
Header Length (4 bits) : ข้นาดข้อง header (x 4 bytes)
![Page 10: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/10.jpg)
TCP header
Source Port Destination Port
Sequence number
Acknowledgement number
HL reserved Code Window size
Checksum Urgent pointer
Options
data
0 15 16 31
Reserved (6 bits) : สุงวนไว�ไมู�ใชื่�งาน
![Page 11: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/11.jpg)
TCP header
Source Port Destination Port
Sequence number
Acknowledgement number
HL reserved Code Window size
Checksum Urgent pointer
Options
data
0 15 16 31
Code (6 bits) : เป/น flags
![Page 12: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/12.jpg)
Code (6 bits)URG
ACK
PSH
RST
SYN
FIN
URGent : ถึ�ามู&ค�า 1 หัมูายถึ�ง Urgent pointer บรรจ�ตั้"าแหัน�งข้�อมู�ลเร�งด�วนACKnowledgement : มู&ค�า 1 หัมูายถึ�ง เซ้ำก่เมูนตั้-ตั้อบร�บ โดยอ�างอ'งจาก่ Acknowledgement numberPuSH : มู&ค�า 1 หัมูายถึ�งเมู��อปลายท้างร�บข้�อมู�ลใหั�ร&บสุ�งตั้�อไปท้&�ชื่� น application ท้�นท้&โดยไมู�ตั้�องรอใหั� buffer เตั้0มูก่�อนReSeT : มู&ค�า 1 หัมูายถึ�งใหั�ยก่เล'ก่ก่ารเชื่��อมูตั้�อเน��องจาก่มู&ความูผิ'ดปก่ตั้'SYNchronize : มู&ค�า 1 หัมูายถึ�งเร'�มูตั้�นสุถึาปนา และมู&ค�า 0 เมู��อก่ารสุถึาปนาเสุร0จสุ'น หัล�งจาก่น�นจ�งผิ�านข้�อมู�ลระหัว�างก่�นFINish : มู&ค�า 1 หัมูายถึ�งข้อจบก่ารเชื่��อมูตั้�อเพื่ราะไมู�มู&ข้�อมู�ลสุ�งอ&ก่ตั้�อไป
![Page 13: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/13.jpg)
TCP header
Source Port Destination Port
Sequence number
Acknowledgement number
HL reserved Code Window size
Checksum Urgent pointer
Options
data
0 15 16 31
Window size (16 bits) : สุถึาน&ปลายท้างจะแจ�งข้นาดข้องบ�ฟเฟอร-ท้&�มู&อย�� เพื่��อท้&�สุถึาน&ตั้�นท้างจะได�ไมู�สุ�งข้�อมู�ลเก่'นก่ว�าข้นาดบ�ฟเฟอร-น&
![Page 14: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/14.jpg)
TCP header
Source Port Destination Port
Sequence number
Acknowledgement number
HL reserved Code Window size
Checksum Urgent pointer
Options
data
0 15 16 31
Urgent pointer(16 bits) : pointer ชื่&ตั้"าแหัน�งไบตั้-ข้องข้�อมู�ลท้&�ตั้�องด"าเน'นก่ารเร'�มูด�วน จะมู&ก่ารอ�านค�าน&ถึ�า URG flag เป/น 1
![Page 15: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/15.jpg)
TCP header
Source Port Destination Port
Sequence number
Acknowledgement number
HL reserved Code Window size
Checksum Urgent pointer
Options
data
0 15 16 31
Options (32 bits) : เป/น option เพื่'�มูเตั้'มู มู&หัร�อไมู�มู&ก่0ได�
![Page 16: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/16.jpg)
SEQ number and ACK number•Seq number จะเริ่��มต้�นจากการิ่สุ่ �มค่�าจาก่น�นจะเพื่'�มูข้�นเร��อยๆตั้ามูจ"านวนไบตั้-ข้�อมู�ลท้&�สุ�ง•Ack number จะเป/นหัมูายเลข้ท้&�ผิ��ร �บข้�อมู�ลตั้อบก่ล�บผิ��สุ�งซ้ำ��งค�อหัมูายเลข้ข้อง sequence number ท้&�ผิ��ร �บรออย��
SEQ 500 : ข้�อม�ลข้นาด 100 ไบต้�SEQ 600 : ข้�อม�ลข้นาด 100 ไบต้�SEQ 700 : ข้�อม�ลข้นาด 100 ไบต้�
ACK 800
![Page 17: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/17.jpg)
SEQ number and ACK number
SEQ 500 : ข้�อม�ลข้นาด 100 ไบต้�SEQ 600 : ข้�อม�ลข้นาด 100 ไบต้�SEQ 700 : ข้�อม�ลข้นาด 100 ไบต้�
ACK 700SEQ 700 : ข้�อม�ลข้นาด 100
ไบต้�
![Page 18: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/18.jpg)
ก่ลไก่ก่ารท้"างานข้อง TCP : สุถึาปนาก่ารเชื่��อมูตั้�อ
• ตั้�วอย�าง A ข้อเชื่��อมูตั้�อก่�บ BA B
SYN, SEQ 500, ACK 0
SYN, SEQ 700, ACK 501
ACK, SEQ 501, ACK 701
เมู��อสุ'นสุ�ด 3 ข้�นตั้อน ท้�งสุองฝั่4� งจะพื่ร�อมูในก่ารแลก่เปล&�ยนข้�อมู�ล 3 ข้�นตั้อนน&เร&ยก่ว�า “Three way handshake”
![Page 19: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/19.jpg)
ก่ลไก่ก่ารท้"างานข้อง TCP : ก่ารถึ�ายโอนข้�อมู�ล (ท้างเด&ยว)• สุมูมู�ตั้'ก่ารสุ�งข้�อมู�ลคร�งละ 100 ไบตั้- และ SEQ number
ข้อง A เร'�มูท้&� 501A B
SEQ 501, ACK 701,data
ACK 601, no data
SEQ 601, ACK 701, dataSEQ 701, ACK 701, dataSEQ 801, ACK 701, data
ACK 901, no data
![Page 20: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/20.jpg)
ก่ลไก่ก่ารท้"างานข้อง TCP : ก่ารถึ�ายโอนข้�อมู�ล (2 ท้าง)• สุมูมู�ตั้'ก่ารสุ�งข้�อมู�ลคร�งละ 100 ไบตั้-
A B
SEQ 901, ACK 701,data
SEQ 701, ACK 1001, data
SEQ 1001, ACK 801, data
SEQ 1101, ACK 901, data
SEQ 801, ACK 1101, data
SEQ 901, ACK 1201, data
![Page 21: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/21.jpg)
ก่ลไก่ก่ารท้"างานข้อง TCP : ยก่เล'ก่ก่ารเชื่��อมูตั้�อ• ต้�วอย่�าง : A ข้องเล'ก่ก่ารเชื่��อมูตั้�อก่�บ B
A B
FIN, SEQ 1201, ACK 1001
SEQ 1001, ACK 1202
SEQ 1202, ACK 1002
FIN, SEQ 1001, ACK 1202
![Page 22: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/22.jpg)
ก่ลไก่ก่ารท้"างานข้อง TCP : ก่ารสุ�ง segment ซ้ำ"าA B
SEQ 100
ACK 200SEQ 200
SEQ 300
SEQ 400
SEQ 300
ACK 300
ACK 500
![Page 23: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/23.jpg)
ก่ลไก่ก่ารท้"างานข้อง TCP : segment ตั้อบร�บหัาย
A B
SEQ 100
ACK 200SEQ 200
SEQ 300
SEQ 400ACK 300
ACK 500
ACK 400
![Page 24: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/24.jpg)
![Page 25: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/25.jpg)
สุถึานะ TCP : ข้�นตั้อนสุถึาปนาข้อง Server
• CLOSED สุถึานะจ"าลองท้&�สุร�างข้�นเพื่��ออ�างอ'งเน��องจาก่ในสุถึานะน&จะไมู�มู&ก่ารจ�ดสุรรหัน�วยความูจ"าเพื่��อเก่0บค�าใด
• LISTEN เซ้ำ'ฟเวอร-รอคอยก่ารข้อบร'ก่ารจาก่ไคลเอ0นตั้-
• SYN_RECEIVED เซ้ำ'ฟเวอร-ได�ร�บ SYN และสุ�ง SYN,ACK และรอร�บ ACK จาก่ไคลเอ0นตั้-
• ESTABLISHED เซ้ำ'ฟเวอร-ได�ร�บ ACK จาก่ไคลเอ0นตั้-และพื่ร�อมูท้&�จะแลก่เปล&�ยนข้�อมู�ล
![Page 26: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/26.jpg)
สุถึานะ TCP : ข้�นตั้อนก่ารสุถึาปนาข้อง client
• CLOSED สุถึานะจ"าลองท้&�สุร�างข้�นเพื่��ออ�างอ'งเน��องจาก่ในสุถึานะน&จะไมู�มู&ก่ารจ�ดสุรรหัน�วยความูจ"าเพื่��อเก่0บค�าใด
• SYN_SENT ไคลเอ0นตั้-สุ�งสุ�ญญาณร�องข้อก่ารเชื่��อมูตั้�อด�วยก่ารสุ�ง SYN
• ESTABLISH ไคลเอ0นตั้-ได�ร�บ SYN,ACK ตั้อบก่ล�บจาก่เซ้ำ'ฟเวอร-และท้"าก่ารสุ�ง ACK ก่ล�บไปหัาเซ้ำ'ฟเวอร-แล�ว ไคลเอ0นตั้-จะอย��ในสุถึานะพื่ร�อมูในก่ารแลก่เปล&�ยนข้�อมู�ล
![Page 27: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/27.jpg)
สุถึานะ TCP : ฝั่7ายท้&�ข้อป(ดก่ารเชื่��อมูตั้�อ
• FIN_WAIT_1 สุ�ง FIN และเข้�าสุ��สุถึานะรอคอยเพื่��อรอก่ารย�นย�นว�าได�ร�บค"าสุ��งป(ดก่ารเชื่��อมูตั้�อ
• FIN_WAIT_2 ฝั่7ายข้อป(ดได�ร�บ ACK ย�นย�นว�าได�ร�บค"าสุ��งป(ดก่ารเชื่��อมูตั้�อ
• CLOSING ฝั่7ายข้อป(ดได�ร�บ FIN และสุ�ง ACK ก่ล�บ• TIME_WAIT สุถึานะรอคอยเพื่��อรอสุ��ก่ารป(ดก่าร
เชื่��อมูตั้�อ• CLOSED ป(ดก่ารเชื่��อมูตั้�อแล�ว ข้�อมู�ลก่ารเชื่��อมูโยง
ถึ�ก่ก่"าจ�ดท้'งหัมูด
![Page 28: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/28.jpg)
สุถึานะ TCP : ฝั่7ายท้&�ถึ�ก่ข้อป(ดก่ารเชื่��อมูตั้�อ
• CLOSED_WAIT ได�ร�บ FIN ข้อป(ดก่ารเชื่��อมูตั้�อ และสุ�ง ACK
• LAST_ACK เมู��อพื่ร�อมูท้&�จะป(ดก่ารเชื่��อมูตั้�อจะสุ�ง FIN ไปหัาผิ��ร �องข้อป(ดก่ารเชื่��อมูตั้�อ และรอ ACK ย�นย�น
• CLOSED ป(ดก่ารเชื่��อมูตั้�อแล�ว ข้�อมู�ลก่ารเชื่��อมูโยงถึ�ก่ก่"าจ�ดท้'งหัมูด
![Page 29: TCP Protocol](https://reader035.vdocuments.pub/reader035/viewer/2022062304/5681322e550346895d9893f7/html5/thumbnails/29.jpg)
ก่ารด�สุถึานะข้อง TCP ข้องเคร��องใชื่�งานท้�ง Windows และ Linux สุามูารถึตั้รวจสุอบสุถึานะข้อง TCP ได�โดย
ใชื่�ค"าสุ��ง netstat –n