TCP Protocol.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
บทที่ 2 แบบจำลอง OSI OSI Model.
Advertisements

ระบบมัลติโปรแกรมมิ่ง (Multiprogramming System)
ระบบบัส I2C I2C Bus System.
ระบบการจัดการเครือข่ายภายในคอนโด โดยใช้ระบบ Cloud Computing
TCP/IP.
Script Programming& Internet Programming
ATM NETWORK.
Chapter 15 Domain Name System
บทที่11 Transmission Control Protocol(TCP) Connection
Chapter 2 Switching.
Location object Form object
การจัดการอุปกรณ์รับ และแสดงผล
Network Model แบบจำลอง OSI
แผนผัง FlowChart Flow Chart คือ ขั้นตอนที่นำผลที่ได้จากการกำหนดและการ วิเคราะห์ปัญหามาเขียนเป็นแผนภาพหรือสัญลักษณ์ ประโยชน์ของผังงาน -ช่วยลำดับขั้นตอนการทำงานของโปรแกรม.
PART V Transport Layer.
การสื่อสารทางไกลและเครือข่าย (Telecommunication And Networks)
อุปกรณ์ X.25 และระบบโปรโตคอล ขอความกรุณาอย่าสงสัย OK
ARP (Address Resolution Protocol)
องค์ประกอบของระบบ Internet
Firewall IPTABLES.
IP TABLES เรียนรู้และทำความเข้าใจการทำงานของ iptables และสามารถนำไปประยุกต์ใช้กับ Firewall ได้
Transport Layer.
File Transfer (FTP), WWW, HTTP, DHCP.
Network Layer Protocal:
Network programming Asst. Prof. Dr. Choopan Rattanapoka
Network programming Asst. Prof. Dr. Choopan Rattanapoka
Network programming Asst. Prof. Dr. Choopan Rattanapoka
โดย อ.ปริญญา น้อยดอนไพร V
ปฏิบัติการประกอบเครื่องคอมพิวเตอร์
รูปแบบการเชื่อมต่อเครือข่ายแบ่งตามกลุ่มผู้ใช้
OSI MODEL.
What’s P2P.
ธนาวินท์ รักธรรมานนท์
บทที่ 2 แบบจำลอง OSI OSI Model.
CSC431 Computer Network System
Week 11: Chapter 25: UDP Chapter 26: TCP
โดย อาจารย์นัณฑ์ศิตา ชูรัตน์
ผศ. พิเชษฐ์ ศิริรัตนไพศาลกุล
อุปกรณ์เครือข่ายคอมพิวเตอร์
บทที่ 7 Deadlock Your company slogan.
Network Address Translation (NAT)
Lab 1 – 2 Protocols Guideline.
05/04/60 Ethernet IEEE Copyrights by Ranet Co.,Ltd., All rights reserved.
05/04/60 3 Copyrights by Ranet Co.,Ltd. All rights reserved.
DEVELOPMENT PRACTICING C- PROGRAMMING IMPLEMENTATION SYSTEM REQUIREMENT Wattanapong suttapak, Software Engineering, school of Information communication.
บทที่ 3 การจ่ายงาน (Process Management).
Interrupt.
อาจารย์จังหวัด ศรีสลับ เสนอ จัดทำ โดย แผนก คอมพิวเตอร์ ธุรกิจ นางสาวสุวรรณ รัตน์ ดำรัส นางสาวศศิธร ดำเกิงพันธุ์
DEVELOPMENT PRACTICING C- PROGRAMMING IMPLEMENTATION SYSTEM REQUIREMENT Wattanapong suttapak, Software Engineering, school of Information communication.
HTTP (Hyper Text Transfer Protocol )
การเชื่อมต่อ Internet การเชื่อมต่อไปยัง ISP การเชื่อมต่อไปยังระบบ LAN การเชื่อมต่อแบบไร้สาย การเชื่อมต่อผ่านระบบเคเบิลทีวี
Input / Output ธนวัฒน์ แซ่เอียบ.
ISP ในประเทศไทย
นางสาวกนกอร ศิริอำนาจ กลุ่ม 2.  บทที่ 7 หน้า 237 ในหนังสือเรียนโอเอส ใน บทนี้จะเป็นเรื่องเกี่ยวกับ deadlocks คือ สิ่งที่น่าจะ รู้อยู่แล้ว ก็คือ.
จัดทำโดย ด. ญ. เจนจิรา หอมรำพึง ด. ญ. ณัฐชยา บุญเชื่อม ด. ญ. นัทตะวัน โปธิ นำเสนอ อาจารย์ พรทิพย์ ตองติด รัมย์
ระบบเครือข่ายคอมพิวเตอร์ เครือข่ายคอมพิวเตอร์ เครือข่ายคอมพิวเตอร์
สิ่งที่สำคัญในระบบปฏิบัติการของเราในวันนี้คงหนีไม่พ้นในเรื่องของ เครือข่าย หรือ Network network คืออะไร เครือข่ายมีไว้เพื่อสื่อ สารกันระหว่างคอมพิวเตอร์
Network Security.
Secure Shell วรวิทย์ พูลสวัสดิ์.
การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์
คำศัพท์ระบบอินเตอร์เน็ต
Application Layer.
Deadloc ks. วันนี้เราเริ่มต้นเรียนบทที่ 7 เริ่มในหน้า 237 ในตำรา เรียนของคุณ. บทนี้จะเกี่ยวกับ deadlocks คือ สิ่งที่คุณรู้, มันคือ สิ่งที่ทำให้ application.
1. บทนำเกี่ยวกับอินเทอร์เน็ต อินเทอร์เน็ตมีจุดเริ่มต้นมาจากเหตุผล ทางการทหาร เนื่องจากในยุค สงครามเย็น เมื่อประมาณ พ. ศ 2510 ระหว่างฝ่ายคอมมิวนิสต์ และฝ่ายเสรี
ระบบคอมพิวเตอร์ และ การสื่อสาร กนกวรรธน์ เซี่ยงเจ็น สำนักวิชาเทคโนโลยีสารสนเทศ และการสื่อสาร มหาวิทยาลัยนเรศวร วิทยาเขต สารสนเทศพะเยา.
– Network operating systems and Protocols Choopan Rattanapoka.
C# Communication us/library/system.net.sockets.tcplistener(v=vs. 110).aspx 1.
Network programming Asst. Prof. Dr. Choopan Rattanapoka
TCP/IP Protocol นำเสนอโดย นส.จารุณี จีนชาวนา
เครือข่ายคอมพิวเตอร์
ใบสำเนางานนำเสนอ:

TCP Protocol

TCP protocol IP datagram TCP segment Ethernet Header IP Header TCP Header Data TCP segment IP datagram : ข้อมูลตั้งแต่หัว IP (IP header) ถึง ข้อมูลตัวสุดท้าย UDP datagram : ข้อมูลตั้งแต่ UDP header ถึง ข้อมูลตัวสุดท้าย TCP segment : ข้อมูลตั้งแต่ TCP header ถึง ข้อมูลตัวสุดท้าย

TCP protocol ก่อนการสื่อสารทุกครั้งด้วยโปรโตคอล TCP จะต้องทำการสถาปนาการเชื่อมต่อก่อน เพื่อตรวจความพร้อมระหว่างเครื่องต้นทางและปลายทางก่อนจะแลกเปลี่ยนข้อมูลกัน เมื่อสิ้นสุดการสื่อสารจะปิดการเชื่อมโยง TCP รับประกันความเชื่อถือในการส่งข้อมูลโดยจะตรวจสอบ segment ที่ผิดปกติ และทำการจัดส่ง segment ซ้ำใหม่

Acknowledgement number TCP header 15 16 31 Source Port Destination Port Sequence number Acknowledgement number HL reserved Code Window size Checksum Urgent pointer Options data

Acknowledgement number TCP header 15 16 31 Source Port Destination Port Sequence number Acknowledgement number HL reserved Code Window size Checksum Urgent pointer Options data Source Port (16 bits) : หมายเลขพอร์ตของสถานีต้นทาง

Acknowledgement number TCP header 15 16 31 Source Port Destination Port Sequence number Acknowledgement number HL reserved Code Window size Checksum Urgent pointer Options data Destination Port (16 bits) : หมายเลขพอร์ตของสถานีปลายทาง

Acknowledgement number TCP header 15 16 31 Source Port Destination Port Sequence number Acknowledgement number HL reserved Code Window size Checksum Urgent pointer Options data Seq number (32 bits) : หมายเลขเริ่มต้นสำหรับชี้ข้อมูล byte แรก

Acknowledgement number TCP header 15 16 31 Source Port Destination Port Sequence number Acknowledgement number HL reserved Code Window size Checksum Urgent pointer Options data Ack number (32 bits) : หมายเลขตอบรับว่ารอรับข้อมูล seq number อะไร ถ้าเป็น ACK อย่างเดียวจะไม่นับ

Acknowledgement number TCP header 15 16 31 Source Port Destination Port Sequence number Acknowledgement number HL reserved Code Window size Checksum Urgent pointer Options data Header Length (4 bits) : ขนาดของ header (x 4 bytes)

Acknowledgement number TCP header 15 16 31 Source Port Destination Port Sequence number Acknowledgement number HL reserved Code Window size Checksum Urgent pointer Options data Reserved (6 bits) : สงวนไว้ไม่ใช้งาน

Acknowledgement number TCP header 15 16 31 Source Port Destination Port Sequence number Acknowledgement number HL reserved Code Window size Checksum Urgent pointer Options data Code (6 bits) : เป็น flags

Code (6 bits) U R G A C K P S H R S T S Y N F I N URGent : ถ้ามีค่า 1 หมายถึง Urgent pointer บรรจุตำแหน่งข้อมูลเร่งด่วน ACKnowledgement : มีค่า 1 หมายถึง เซกเมนต์ตอบรับ โดยอ้างอิงจาก Acknowledgement number PuSH : มีค่า 1 หมายถึงเมื่อปลายทางรับข้อมูลให้รีบส่งต่อไปที่ชั้น application ทันทีโดยไม่ต้องรอให้ buffer เต็มก่อน ReSeT : มีค่า 1 หมายถึงให้ยกเลิกการเชื่อมต่อเนื่องจากมีความผิดปกติ SYNchronize : มีค่า 1 หมายถึงเริ่มต้นสถาปนา และมีค่า 0 เมื่อการสถาปนาเสร็จสิ้น หลังจากนั้นจึงผ่านข้อมูลระหว่างกัน FINish : มีค่า 1 หมายถึงขอจบการเชื่อมต่อเพราะไม่มีข้อมูลส่งอีกต่อไป

Acknowledgement number TCP header 15 16 31 Source Port Destination Port Sequence number Acknowledgement number HL reserved Code Window size Checksum Urgent pointer Options data Window size (16 bits) : สถานีปลายทางจะแจ้งขนาดของบัฟเฟอร์ที่มีอยู่ เพื่อที่สถานีต้นทางจะได้ไม่ส่งข้อมูลเกินกว่าขนาดบัฟเฟอร์นี้

Acknowledgement number TCP header 15 16 31 Source Port Destination Port Sequence number Acknowledgement number HL reserved Code Window size Checksum Urgent pointer Options data Urgent pointer(16 bits) : pointer ชี้ตำแหน่งไบต์ของข้อมูลที่ต้องดำเนินการเริ่มด่วน จะมีการอ่านค่านี้ถ้า URG flag เป็น 1

Acknowledgement number TCP header 15 16 31 Source Port Destination Port Sequence number Acknowledgement number HL reserved Code Window size Checksum Urgent pointer Options data Options (32 bits) : เป็น option เพิ่มเติม มีหรือไม่มีก็ได้

SEQ number and ACK number จำนวนไบต์ข้อมูลที่ส่ง Ack number จะเป็นหมายเลขที่ผู้รับข้อมูลตอบกลับผู้ส่ง ซึ่งคือหมายเลขของ sequence number ที่ผู้รับรออยู่ SEQ 500 : ข้อมูลขนาด 100 ไบต์ SEQ 600 : ข้อมูลขนาด 100 ไบต์ SEQ 700 : ข้อมูลขนาด 100 ไบต์ ACK 800

SEQ number and ACK number

กลไกการทำงานของ TCP : สถาปนาการเชื่อมต่อ ตัวอย่าง A ขอเชื่อมต่อกับ B A B SYN, SEQ 500, ACK 0 SYN, SEQ 700, ACK 501 ACK, SEQ 501, ACK 701 เมื่อสิ้นสุด 3 ขั้นตอน ทั้งสองฝั่งจะพร้อมในการแลกเปลี่ยนข้อมูล 3 ขั้นตอนนี้เรียกว่า “Three way handshake”

กลไกการทำงานของ TCP : การถ่ายโอนข้อมูล (ทางเดียว) สมมุติการส่งข้อมูลครั้งละ 100 ไบต์ และ SEQ number ของ A เริ่มที่ 501 A B SEQ 501, ACK 701,data ACK 601, no data SEQ 601, ACK 701, data SEQ 701, ACK 701, data SEQ 801, ACK 701, data ACK 901, no data

กลไกการทำงานของ TCP : การถ่ายโอนข้อมูล (2 ทาง) สมมุติการส่งข้อมูลครั้งละ 100 ไบต์ A B SEQ 901, ACK 701,data SEQ 701, ACK 1001, data SEQ 1001, ACK 801, data SEQ 801, ACK 1101, data SEQ 1101, ACK 901, data SEQ 901, ACK 1201, data

กลไกการทำงานของ TCP : ยกเลิกการเชื่อมต่อ ตัวอย่าง : A ของเลิกการเชื่อมต่อกับ B A B FIN, SEQ 1201, ACK 1001 SEQ 1001, ACK 1202 FIN, SEQ 1001, ACK 1202 SEQ 1202, ACK 1002

กลไกการทำงานของ TCP : การส่ง segment ซ้ำ A B SEQ 100 SEQ 200 ACK 200 SEQ 300 ACK 300 SEQ 400 SEQ 300 ACK 500

กลไกการทำงานของ TCP : segment ตอบรับหาย A B SEQ 100 SEQ 200 ACK 200 SEQ 300 ACK 300 SEQ 400 ACK 400 ACK 500

สถานะ TCP : ขั้นตอนสถาปนาของ Server CLOSED สถานะจำลองที่สร้างขึ้นเพื่ออ้างอิงเนื่องจากในสถานะนี้จะไม่มีการจัดสรรหน่วยความจำเพื่อเก็บค่าใด LISTEN เซิฟเวอร์รอคอยการขอบริการจากไคลเอ็นต์ SYN_RECEIVED เซิฟเวอร์ได้รับ SYN และส่ง SYN,ACK และรอรับ ACK จากไคลเอ็นต์ ESTABLISHED เซิฟเวอร์ได้รับ ACK จากไคลเอ็นต์และพร้อมที่จะแลกเปลี่ยนข้อมูล

สถานะ TCP : ขั้นตอนการสถาปนาของ client CLOSED สถานะจำลองที่สร้างขึ้นเพื่ออ้างอิงเนื่องจากในสถานะนี้จะไม่มีการจัดสรรหน่วยความจำเพื่อเก็บค่าใด SYN_SENT ไคลเอ็นต์ส่งสัญญาณร้องขอการเชื่อมต่อด้วยการส่ง SYN ESTABLISH ไคลเอ็นต์ได้รับ SYN,ACK ตอบกลับจากเซิฟเวอร์และทำการส่ง ACK กลับไปหาเซิฟเวอร์แล้ว ไคลเอ็นต์จะอยู่ในสถานะพร้อมในการแลกเปลี่ยนข้อมูล

สถานะ TCP : ฝ่ายที่ขอปิดการเชื่อมต่อ FIN_WAIT_1 ส่ง FIN และเข้าสู่สถานะรอคอยเพื่อรอการยืนยันว่าได้รับคำสั่งปิดการเชื่อมต่อ FIN_WAIT_2 ฝ่ายขอปิดได้รับ ACK ยืนยันว่าได้รับคำสั่งปิดการเชื่อมต่อ CLOSING ฝ่ายขอปิดได้รับ FIN และส่ง ACK กลับ TIME_WAIT สถานะรอคอยเพื่อรอสู่การปิดการเชื่อมต่อ CLOSED ปิดการเชื่อมต่อแล้ว ข้อมูลการเชื่อมโยงถูกกำจัดทิ้งหมด

สถานะ TCP : ฝ่ายที่ถูกขอปิดการเชื่อมต่อ CLOSED_WAIT ได้รับ FIN ขอปิดการเชื่อมต่อ และส่ง ACK LAST_ACK เมื่อพร้อมที่จะปิดการเชื่อมต่อจะส่ง FIN ไปหาผู้ร้องขอปิดการเชื่อมต่อ และรอ ACK ยืนยัน CLOSED ปิดการเชื่อมต่อแล้ว ข้อมูลการเชื่อมโยงถูกกำจัดทิ้งหมด

การดูสถานะของ TCP ของเครื่องใช้งาน ทั้ง Windows และ Linux สามารถตรวจสอบสถานะของ TCP ได้โดยใช้คำสั่ง netstat –n