180 likes | 334 Views
บทที่ 11 Transmission Control Protocol(TCP) Connection. Transmission Control Protocol(TCP).
E N D
บทที่11 Transmission Control Protocol(TCP) Connection
Transmission Control Protocol(TCP) TCP เป็นโปรโตคอลพื้นฐานในการเชื่อมต่อ ก่อนที่ข้อมูลจะสามารถไหลนั้น TCP ต้องทำการเชื่อมต่อกับสถานีปลายทาง ซึ่งจะต้องทำการจัดตั้งการเชื่อมต่อที่เป็นทางการผ่านกระบวนการ handshake เพื่อให้สามารถหยุดหรือชะลอการไหลของข้อมูล และทำการยกเลิกการเชื่อมต่อเมื่อส่งข้อมูลเรียบร้อยแล้ว
Topics • The TCP Connection • TCP Connection Establishment • TCP Half-Open Connections • TCP Connection Maintenance • TCP Connection Termination • TCP Connection Reset • TCP Connection States • Summary
11.1 The TCP Connection • การเชื่อมต่อ TCP เป็นแบบ full-duplex จะมีการสื่อสารแบบสองทิศทาง TCPจะเป็นโปรโตคอลที่ขั้นกลางระหว่างแอปพลิเคชันและเครือข่ายไอพี รูปที่ 11-1 แสดงเส้นทางการเชื่อมต่อ TCP ทั้งขาเข้าและขาออก
11.1 The TCP Connection(ต่อ) TCPConnectionประกอบด้วย 3 ส่วน • การจัดตั้งการเชื่อมต่อผ่านกระบวนการ handshake สถานีทั้งสองตกลงที่จะสร้างการเชื่อมต่อ TCP • บำรุงรักษา Optionally ผ่านกระบวนการ keepalive ในกรณีที่ไม่มีข้อมูลไหล ทำให้มั่นใจว่าทั้งสองสถานี มีการใช้งานในการเชื่อมต่อ • ยกเลิกกระบวนการ handshake ในสถานีทั้งสอง ทำการตกลงเพื่อปิดการเชื่อมต่อ TCP
11.2 TCP ConnectionEstablishment เพื่อสร้างการเชื่อมต่อ TCP ให้สามารถเริ่มต้นการไหลของแต่ละสถานี ต้องได้รับข้อมูลต่อไปนี้จาก สถานีอื่นๆ • หมายเลขลำดับเริ่มต้นสำหรับการส่งข้อมูลบนเส้นทางขาเข้า • จำนวนสูงสุดของข้อมูลที่สามารถส่งในเส้นทางขาออกก่อนที่จะรอ acknowledgment (ได้รับขนาด window ของ TCP peer อื่นๆ) • ขนาด segment สูงสุด (MSS) ที่สามารถรับได้ • Option ที่ต้องการใช้
11.2 TCP ConnectionEstablishment(ต่อ) รูปที่ 11-2 กระบวนการจัดตั้งการเชื่อมต่อ TCP แสดงการแลกเปลี่ยนทั้งสาม segments
11.2 TCP ConnectionEstablishment(ต่อ) Result Of The TCP Connection ผลของการจัดตั้งการเชื่อมต่อ TCP มีดังนี้ : -แต่ละสถานีจะรู้หมายเลขลำดับของ byte แรกของข้อมูลที่จะส่ง -แต่ละสถานีจะรู้ขนาดข้อมูล(MSS) ที่สามารถส่งในการเชื่อมต่อ -แต่ละสถานีรู้ขนาดหน้าต่างของสถานีอื่นๆ • แต่ละสถานีจะทราบว่าสถานีอื่นๆสามารถรับ acknowledgments และเลือกใช้ SACK TCP option ได้ • TCP จะส่งสัญญาณ 3 SYN segment เมื่อมีการพยายามสร้างการเชื่อมต่อ
11.3 TCP Half-Open Connections รูปที่ 11-3 การเชื่อมต่อ TCP ครึ่งเปิด แสดงส่วน SYN และ retransmissions ของส่วน SYN-ACK
11.3TCP Half-Open Connections(ต่อ) The SYN Attack SYNAttack คือ denial-of-service เป็นการหาประโยชน์จากretransmission และการหมดเวลา โดยพฤติกรรมของ SYN-ACK SYNAttack เป็นดังต่อไปนี้ • ใช้หน่วยความจำที่มีทั้งหมด • ใช้รายการที่เป็นไปได้ทั้งหมดใน TCP Transmission Control Block (TCB) • ใช้การเชื่อมต่อแบบ Half-Open ทั้งหมด
11.4 TCP Connection Maintenance การเชื่อมต่อ TCP สามารถรักษาสภาพการเชื่อมต่อผ่านการแลกเปลี่ยนเป็นระยะๆของ TCP ในส่วนของ keepalive ซึ่งเป็นส่วน ACK ที่ไม่มีข้อมูล พื้นที่หมายเลขลำดับในส่วนหัวของส่วน TCP keepalive จะถูกตั้งเป็น 1 หรือให้น้อยกว่าจำนวนลำดับปัจจุบัน รูปที่ 11-4 แสดง TCP keepalive
11.5 TCP Connection Termination รูปที่ 11-5 แสดงการสิ้นสุดการเชื่อมต่อ TCP และการแลกเปลี่ยนสี่ส่วนของ TCP
11.6 TCP Connection Reset การตั้งค่าการเชื่อมต่อ TCP จะเกิดขึ้นเมื่อพบปัญหาพารามิเตอร์อยู่ในส่วนหัวของ TCP และส่วน TCP ขาเข้าที่ไม่สามารถเข้ากันได้ รูปที่ 11-6 การตั้งค่าการเชื่อมต่อ TCP แสดงSYN และ RST segments
11.6 TCP Connection Reset(ต่อ) ส่วนของการตั้งค่าการเชื่อมต่อ: • การตั้งค่า RST และ ACK flags • หมายเลขลำดับเป็น 0 • หมายเลข acknowledgment คือ 1 หรือเกินกว่าจำนวนลำดับของส่วน SYN (ISN1 + 1) ใน SYN-ACK ส่วนของการจัดตั้งการเชื่อมต่อ TCP ทำหน้าที่ เช่นหากมีการกำหนด SYN flag ตรงบริเวณ byte พื้นที่ลำดับและเป็นที่ยอมรับอย่างชัดเจน • ขนาดของ window size เป็น 0
11.7 TCP Connection States สถานะการเชื่อมต่อที่สถานีขึ้นอยู่กับสถานีแรก ของการจัดตั้งการเชื่อมต่อ TCP หรือการสิ้นสุดการเชื่อมต่อ TCP รูปที่ 11-7 แสดงสถานะของการเชื่อมต่อ TCP
11.7 TCP Connection States(ต่อ) • รูปที่ 11-8 แสดงสถานะการเชื่อมต่อของสองสถานีระหว่างกระบวนการการจัดตั้งการเชื่อมต่อ • รูปที่ 11-9 แสดงสถานะการเชื่อมต่อของสองสถานีระหว่างกระบวนการการสิ้นสุดการเชื่อมต่อ
11.8 Summary การเชื่อมต่อ TCP ถูกสร้างขึ้นผ่านกระบวนการ TCP connection establishment เมื่อใดที่สถานีแลกเปลี่ยน SYN segments ระหว่างกัน จะมีการตกลงหมายเลขลำดับเริ่มต้น, ขนาดหน้าต่าง, มาตราส่วนของหน้าต่าง, ขนาดสูงสุดของ segment และ TCP option อื่นๆ การเชื่อมต่อ TCP จะช่วยรักษาระยะการโต้ตอบของ keepalive segment แม้ว่าระยะนี้ไม่ได้พร้อมเพรียงกันก็ตามในการยุติการเชื่อมต่อ TCP แต่ละ สถานีต้องส่งส่วน FIN segment ของมันให้รับทราบ เพื่อให้สถานีอื่นใช้ส่วนนี้ในการยกเลิก Segment ที่เชื่อมต่ออยู่ในปัจจุบัน หรือปฏิเสธความพยายามในการเชื่อมต่อ
ผู้จัดทำ • นางสาวพวงทอง สิทธิยุโณ • รหัสนักศึกษา 115130462009-9 • 51346CPE