View
13
Download
0
Category
Preview:
Citation preview
CPE 426 Computer Networks
Chapter 8: Text Chapter 26: TCP
TOPICS Chapter 26: TCP (Transmission Control Protocol)
Transport Services Transport Protocol Techniques Congestion Control/Avoidance Techniques Packet Loss and Adaptive Retransmission Buffers, Flow Control and Windows TCP Three-Way Handshake TCP Congestion Control TCP Segment Format
Chapter 26 TCP Transport Control Protocol Reliable Protocol for the Internet TCP/IP (TCP over IP)
Chapter 26 TCP: Reliable Transport Service
ในกรณทเราตองการความม นใจในการสงขอมลไดอยางถกตอง ผาน IP ทมการทางานแบบ Datagram เราตองใส Mechanism เพอใหความม นใจดงกลาวลงใน Protocol ของ Layer 4 (Host-to-Host หรอ Transport)
เราจะตองเลอกใช TCP (Transmission Control Protocol) เรยกรวมๆวา TCP/IP การใช TCP+IP ทาใหผเขยน Application ไมตองกงวลเรองของการสงขอมลอกตอไป
เพยงแตนาขอมลสงให พรอมกาหนด IP Address และ Port Number จากนน ระบบ TCP/IP จะจดการทเหลอให ผดกบกรณทใช UDP/IP ในบททแลว กลาวคอ TCP จะให Reliability ในการสอสาร
Chapter 26 TCP: 26.3 TCP Service
TCP ใหบรการของ 7 สวนใหญๆ ดงน Connection Orientation
TCP ใหบรการแบบ Connection-Oriented ซง Application จะตองรองขอการเชอมตอกอนทจะมการสงขอมล
Point-to-Point Communication แตละ Connection ของ TCP จะมสอง End Points เทานน (กาหนด Port ตนทาง-ปลายทาง และ IP ตนทาง-ปลายทาง )
Complete Reliability TCP จะ Guarantee วาขอมลทสง จะไปถงทหมายไดอยางถกตอง สมบรณ และเปนลาดบ
Full Duplex Communication แตละ TCP Connection จะยอมใหขอมลสงไดสองทศทาง ตลอดเวลา
Chapter 26 TCP: 26.3 TCP Service(2)
TCP ใหบรการของ 7 สวนใหญๆ ดงน(ตอ) Stream Interface
Application สามารถสงขอมลไดอยางตอเนอง Octet ตอ Octet ผาน TCP Connection โดย TCP จะไมมการรวมกลมของ Data ใหเปน Record หรอ Message และจะไม Guarantee วาแตละสวนของขอมลทไปถงมขนาดเทากบท Application สงให(มการทา Segmentation)
Reliable Connection Startup TCP ใหสอง Application สามารถเรมตนการสอสารไดอยางมนใจ
Graceful Connection Shutdown กอนทจะจบ Connection นน TCP จะใหความมนใจวาขอมลได ถกสงอยางครบถวนทงสองฝง และทงสองฝงยนยอมใหมการจบการเชอมตอ
Chapter 26 TCP: 26.4 End-to-End Service and Virtual Connection
TCP จดวาเปน End-to-End Protocol เหมอน UDP
เนองจากมนใหบรการการสอสารระหวาง Application ของสอง Computer
แตมนเปน Connection-Oriented เนองจากตองมการทา Connection กอนสงขอมล และตองมการทา Disconnection
Connection ของ TCP จดวาเปน Virtual Connection
เนองจากกระทาผาน Software เพราะตว Network (IP) นนเปน Connectionless(Datagram)
Chapter 26 TCP: 26.4 End-to-End Service and Virtual Connection
แตละ TCP Message(Segment) จะถกบรรจใน IP Datagram และสงผาน Internet เมอถงปลายทาง IP จะปลอก Datagram Payload และสงตอไปยง TCP
IP จะมอง TCP เปนแค Data ทจะตองสง TCP จะมอง IP เปนพาหนะสาหรบสงขอมล ไปยง TCP อกฝงหนง
Chapter 26 TCP: 26.5 Transport Protocol Techniques
ปญหาท End-to-End Transport Protocol จะตองเจอ ในการไดมาซง Reliable Service
Unreliable Communication Message อาจจะสญหาย ซาซอน ผดพลาด ถกหนวงเวลา หรอสงมาไมเปนลาดบ (Lost, Duplicated, Corrupted, Delayed, Out of Order)
End System Reboot ถา Host เกด Crash หรอมการ Reboot ขอมลทคางอย จะตองไมสบสนกบ Session ทถกสรางขนมาใหม
Heterogeneous End System แตละ Host ทเชอมตอใน Internet มความสามารถรบ-สงขอมลไดไมเทากน
Congestion in the Internet เมอมการสงขอมลมากเกนไป จะเกดความคบคงภายใน Network ได
ปกตแลว Transport Protocol จะใชหลายๆวธรวมกน ในการจดการกบปญหาเหลาน เราจะกลาวพนฐานแตละอนตอไป
Chapter 26 TCP: 26.5.1 Sequencing to Handle Duplicates and Out-of-Order Delivery
Transport Protocol จะทา Sequencing (กาหนดหมายเลขลาดบของขอมล) ในการจดการกบปญหาเรอง Duplicate Data และขอมลทไปถงอยางไมเปนลาดบ
คลายกบวธทกระทาใน Layer 2 หมายเลขขอมลทาใหเรารวาขอมลนนมาซากนหรอไม ทาใหรวาขอมลมาเปนลาดบหรอไม
Chapter 26 TCP: 26.5.2 Retransmission to Handle Lost Packet ในการจดการกบ Packet Lost น น Transport Protocol จะใช Positive Acknowledgement รวมกบการ Retransmission
คลายกบ Mechanism ใน Layer 2 เชนกน เมอ Frame มาถงอยางถกตอง จะมการสง ACK Message กลบไป เมอผสง สงขอมลแตละ Packet จะมการจบเวลาโดยใช Timer
ถา Timer Expire (คอไมไดรบ ACK ในเวลาทกาหนด) ผสงจะทาการ Retransmission ขอมลนนไปใหม
ถา Packet มการ Delay มาก อาจจะทาใหเกด Retransmission ยงผลใหเกด Duplicate Packet
Chapter 26 TCP: 26.5.3 Techniques to Avoid Replay ในกรณท Network ม Delay สง อาจจะทาใหเกด ‘Replay Error’ โดยท Packet ท Delay น นจะสงผลตอการสอสารในตอนหลง ยกตวอยาง
สองคอมพวเตอรตกลงจะสอสารกนเมอเวลา 13.00 น. คอมพวเตอรเครองหนง สง 10 Packet ตดตอกนไปยงฝงตรงขาม ปญหาดาน Hardware ทาให Packet 3 ถก Delay ไป เสนทางการสงขอมลถกเปลยน เพอใชเสนทางทไมผานอปกรณทมปญหา Protocol ทคอมพวเตอรตนทางสง Packet 3 ไปใหม จากนนสง Packet อนๆตาม จากนนจบการสอสาร
Chapter 26 TCP: 26.5.3 Techniques to Avoid Replay
สองคอมพวเตอรตกลงจะสอสารกนเมอเวลา 13.00 น. คอมพวเตอรเครองหนง สง 10 Packet ตดตอกนไปยงฝงตรงขาม ปญหาดาน Hardware ทาให Packet 3 ถก Delay ไป เสนทางการสงขอมลถกเปลยน เพอใชเสนทางทไมผานอปกรณทมปญหา Protocol ทคอมพวเตอรตนทางสง Packet 3 ไปใหม จากนนสง Packet อนๆตาม จากนนจบการสอสาร เวลา 13.05 น. คอมพวเตอรทงสองตกลงทจะสอสารกนใหม หลงจากผสงคนเดม สงไปไดสอง Packet แลว ตว Packet 3 จากการสอสารครงแรกทถก Delay มาถงยงผรบ ตอจากนน Packet ท 3 จากการสอสารครงทสองมาถงยงผรบ
Transport Protocol ตองออกแบบเพอจดการกบเร องน มฉะน นผรบจะได Packet 3 ทผดพลาด ในขณะทโยนทง Packet ทถกตอง
Protocol จะตอง Mark แตละ Session โดยใช ID ทเฉพาะ ไมซากน โดยการนา ID กลบมาใชใหมตองใหแนใจวาจะไมเกด Replay (เวลาตองหางกน)
9
4
1
Replay (Selective Reject)
?
0
3 5 6 7 8
2
0 1 2 3
Chapter 26 TCP: 26.5.3 Techniques to Avoid Replay Replay ยงสามารถเกดกบ Control Packet ไดเชนกน
เชน Connection Closing Packet ถก Delay และไปถงหลงจากมการทา Connection ใหมครงทสอง
Chapter 26 TCP: 26.5.4 Flow Control to Prevent Data Overrun
ในการจดการเรอง Heterogeneous End System ทมความสามารถไมเทากน ตว Transport Protocol จะใชวธการของ Flow Control เพอควบคม
Stop-and-go Protocol มกจะไมใช เนองจากมประสทธภาพตา ปกตจะใช Sliding Window Flowcontrol เชนเดยวกน จะคลายกบ Flow Control ใน Layer 2
การคานวณ Efficiency จะคลายกบทกลาวมาแลวใน Layer 2 ใหดใน Slide กอนหนา หรอดจาก CPE 326 Course Notes
Chapter 26 TCP: 26.5.4 Flow Control to Prevent Data Overrun
Chapter 26 TCP: 26.6 Techniques To Avoid Congestion
Congestion เกดเมอมขอมลทจะสงมากเกนกวาท Network จะรบได
อธบายไดโดยใช Queuing Theory Packet จะถก Delay ไปมาก ในลกษณะ Exponential ถา Queue ลน Packet จะสญหาย
1 Gbps 1 Gbps
1 Gbps
Chapter 26 TCP: 26.6 Techniques To Avoid Congestion
Retransmission เนองจาก Queue ลน จะทาใหเกด Congestion Collapse
Packet ท Retransmit จะถกโยนทงอก เพราะ Queue ลน Congestion จะตองตรวจจบไดอยางทนทวงท และทาการแกไข มฉะน นจะเกดผลเสยหายตอท ง Network ซงการตรวจจบของ Transport Protocol จะใชพนฐานจากสองวธ
Intermediate System(Router) จะตองแจงไปยงผสง เมอม Congestion ผสงตรวจจบการเกด Congestion เอง โดยดจากคา Delay หรอจานวน Loss ของ Packet
ใน Internet จะใชวธการน เนองจาก Delay และ Loss สวนใหญ (ถา ไมใชเกดจาก Hardware Failure) จะเปนผลมาจาก Congestion การแกคอลดการสงลง ทาไดโดยการควบคมท Flow Control (ลดขนาดของ Window ลง)
Chapter 26 TCP: 26.7 The Art of Protocol Design
แตละ Technique ทกลาวมาจะตองถกเลอกใชอยาระวง และสงผลตอการออกแบบ Protocol Protocol Header จะตองม Field ทจะรองรบขอมลตางๆเพอควบคมการทางาน จะตองแกปญหาเรอง Computer Reboot ดวย เพอปองกน Duplicate Connection หรอการทา Connection ทไมถกตอง ในหวขอทจะกลาวตอไป จะเปนรายละเอยดเฉพาะท TCP เลอกใช
Chapter 26 TCP: 26.8 Techniques Used In TCP To Handle Packet Loss
TCP ใชการ Retransmission ในกรณท Packet Loss
ผานการทา Positive Acknowledge ในการสอสารทงสองทศทาง มการใช Transmission Timer
Transmission Timer ควรตงไวเทาไร ตาเกนไป จะมผลใหม Duplicate Data ใน Network ทชาเชน Satellite Network สงเกนไป จะทาใหประสทธภาพลดลง เชนใน LAN Congestion ทเกดขนจะทาใหเกด Delay และมผลตอการตง Retransmission Timer
Ack อาจจะม Delay เพมในระดบ Magnitude ถาม Congestion Retransmission Timer ใน TCP จะตองมความสามารถปรบให เหมาะกบ Delay ใน Network
ไมเหมอนกบ Layer 2 Retransmission Timer ซงเปนระดบ Point-to-Point (Link) ทสามารถคานวณและกาหนดลวงหนาได
Chapter 26 TCP: 26.8 Techniques Used In TCP To Handle Packet Loss
Chapter 26 TCP: 26.9 Adaptive Retransmission
ผออกแบบ TCP เลงเหนวา การต ง Retransmission Timer ทคงทจะมผลตอประสทธภาพทลดลงของ Internet
เนองจาก Internet ประกอบดวย Network หลายๆ Technology ทมคา Delay ตางกน
TCP จะใช Adaptive Retransmission Timer ทสามารถปรบคาตามคา Delay ของ Network
TCP จะประมาณคา Round-trip Delay จากเวลาทสง Packet ออกไปและไดรบคาตอบกลบมา เชนตอนทา Connection หรอชวงการสงขอมลและไดรบ ACK
มนจะคานวณคา Round-Trip Delay โดยใช Weighted Average รวมกบคา Variance ปกต มนจะตงคา Timer สงกวา Round Trip เลกนอย เมอ Delay เรมมการเปลยนแปลง มนจะตงคา Timer เพมขนทสงกวาคา Mean ทคานวณได รวมกบคา Variance การใช Weight Average จะทาใหสามารถ Reset Timer เมอ Delay กลบเขาสคาปกต
Chapter 26 TCP: 26.10 Comparison of Retransmission Timer
พจารณาจากการเกด Packet Loss ของสอง Network ทม Delay ตางกน
ถา Delay มคาสง TCP จะตงคา Timer ทสงตาม
Chapter 26 TCP: 26.11 Buffers, Flow Control and Windows
TCP ใช Window Mechanism ในการควบคมการใหลขอมล
ตางจาก Window Flow Control ใน Layer 2 ทนบเปน Frame แต TCP จะกาหนด Window เปน Byte ของ Data ทสงได หลงจากทา Connection คอมพวเตอรทงสองฝงจะกาหนดคา Buffer (Memory) เพอใชในการรบ-สงขอมล
จากนนมนจะสงขนาดของ Buffer ทเหลอไปยงฝงตรงขาม เมอไดรบขอมล มนจะ Acknowledge ดวยคาของ Buffer ทยงสามารถรบได (Buffer ทเหลอ) ดงนนคาวา Window ในความหมายของ TCP คอ จานวน Buffer เปน Byte ทยงเหลออยทจะรบขอมลได
เรยก Window Advertisement ถาผสง สงขอมลเรวเกนไป ผรบไมสามารถ Process ทน มนจะ Acknowledge กลบมาดวย Zero Window
ผสงตองหยดสง
Chapter 26 TCP: 26.11 Buffers, Flow Control and Windows(2)
ในตวอยาง ผสงใชขนาดของ Segment สงสด 1000 Bytes โดยกาหนด Initial Window Size 2500 Bytes
ผสงสงสาม Segment ขนาด 1000, 1000 และ 500 Bytes ผรบ Process ไมทน สง Zero Window Advertisement ผสงหยดสง ตอมาผรยทาการ Process 2000 Byte ของ Data จากนนทาการ Advertise วารบไดอก 2000 Byte เหนอจากทรบแลว 2500 Byte
Window Size จะวดตอจาก Data ททาการ Acknowledge เสมอ
ผสงสงอกสอง Segment แตละอนมขนาด 1000 Byte Window Size ลดลงเหลอศนยอก ทาใหผสงหยดสง
Chapter 26 TCP: 26.11 Buffers, Flow Control and Windows(3)
Chapter 26 TCP: 26.12 TCP Three-Way Handshake
ในการทจะใหแนใจวาการทา Connection และการ Terminate Connection ไมผดพลาด TCP จะใชวธการของ Three-Way Handshake
ระหวางการทา Three-way Handshake จะมการแลกเปลยน Control Message และกาหนดขนาดของ Buffer Three-Way Handshake จะสามารถจดการกบกรณทเกด Packet Loss, Duplicate, Delay และ Replay ได และจะ Guarantee วา Connection จะสรางและจบลง เมอทงสองฝายตกลงกน
Control Message ทใชระหวางทา Three-Way Handshake Connection เรยก Synchronization Segment (SYN Segment) และเรยก Finish Segment(FIN Segment) สาหรบ Control Message ตอนทา Termination ตอนทา Three-Way Handshake จะมการเลอก Sequence Number
แตละดานจะเลอกเลข 32 Bit แบบ Random เปน Sequence เรมตน ของ Data ถาเกดการ Reboot และ Application พยายามจะทา Connection ใหม โอกาสทจะได Sequence เดมจะนอยมาก ดงนนปญหา Replay จะเลยงได
ในกรณททา Close Connection จะมการสง FIN รวมกบ Acknowledge เพอใหแนใจวา Data ไดรบครบถวนกอนจะปด Connection
Chapter 26 TCP: 26.12 TCP Three-Way Handshake(Open Connection)
Chapter 26 TCP: 26.12 TCP Three-Way Handshake(Close Connection)
Chapter 26 TCP: 26.13 TCP Congestion Control
TCP ม Congestion Control ทดเหมอนประหลาดกวาท วไป
เนองจาก Congestion ทาใหเกด Delay สงผลใหเกด Retransmission สงผลกลบมาให Congestion หนกขน คอเกด Congestion Collapse แมวาการจดการกบ Congestion ทวไปจะใชวธลดอตราการสง แต TCP ไมสามารถคานวณอตราการสงได เพราะวดการสงจาก Buffer ทไดรบจากอกฝงหนง ดงนนการควบคมอตราการสงใน TCP จะควบคมจากการเปลยนแปลงขนาดของ Window แทน
การลดขนาด Window ลงชวคราว จะเปนการลดอตราการสงขอมลไปในตว เมอม Data Loss (คอ Congestion ในมมมอง TCP) ขนาด Window จะถกลดลง
Chapter 26 TCP: 26.13 TCP Congestion Control(2)
TCP ม Congestion Control หลาย Algorithm ทนยมคอวธของ ‘Slow Start’
เมอเรม Connection ใหม หรอกรณทม Message Loss มนจะเรมจากการสงหนง Message
ถามนไดรบ ACK มนจะสงสอง Message ถาไดรบ ACK ทงสอง มนจะสง 4 Messgae และจะสงเปนสองเทาตราบใดทไดรบ ACK ครบ เรอยไปจนถงสงเทากบครงหนงของ Window Size ท Advertise จากผรบ
จากนนมนจะเพมการสงแบบ Linear ตราบเทาทไมมการ Congestion
ถาม Congestion จะเรมสงทละ Message ใหม ดงนนทกคนจะหยดสงถาเกด Congestion และปองกนการเกด Congestion Collapse
Congestion Control จะใชรวมกบ Congestion Avoidance ซงม Algorithm มากมาย
Chapter 26 TCP: 26.14 TCP Segment Format
ม Format เดยว ใชกบ Message, Acknowledge, SYN, FIN
แตละ Message ของ TCP เรยก Segment แตละ Segment สามารถสง Data, Acknowledge ของ Data ทไดรบ, Window Advertisement
Acknowledgement Number และ Window Field หมายถง Data ทไดรบ คอ Sequence Number เรมตนของ Data ถดไปทตองการ และ Buffer ทเหลอ ถา Data ทไดไมเปน Order มนจะสง Ack Number ของ Data ทคาดหวงซาๆจนกวาจะไดรบ Sequence Number หมายถง Sequence Number ของ Byte แรกของ Data ทสง Checksum จะเปน Checksum ของ Header และ Data Code Bit บงบอกวาเปน Segment ชนดใหน (Data, SYN, FIN)
Chapter 26 TCP: 26.14 TCP Segment Format
TCP Port เชนเดยวกนกบ UDP Port
Well-Known Port: 0-1023 FTP: 20/21 (Data/Control) Telnet: 23 SMTP: 25 DNS: 53 (UDP/TCP) BOOTP: 67/68 (Server/Client) (Mostly UDP) HTTP: 80
Registered Port: 1024-49151 Dynamic Port: 49152-65535
End of Week 11 HW 6: UDP และ TCP
ให Download Question จาก Web สง สปดาหหนา
Next Week, Week 12 Routing Part I: Routing Mechanism
Recommended