Page 231 - Computer Network
P. 231

222                                                          บทที่ 28. การป้องกันความคับคั่ง



                     เลื่อนขึ้นมาจนเป็นส่วนที่ 2 และ 1 ตามลำดับ เมื่อได้รับ ACK จากนั้นส่วนที่ 1 จะถูกกำจัดออกจากระบบไป
                         นอกจากการใช้ ACK เพื่อควบคุมการส่งข้อมูลแล้ว ขนาดของ Window size ใน TCP ไม่จำเป็นต้องเท่ากัน
                     ตลอดการเชื่อมต่อ โดยที่หากภาครับพบว่าตนไม่สามารถที่จะประมวลผลข้อมูลได้ทัน ภาครับสามารถที่จะลดขนาด
                     ของ Window ลง หรือแม้กระทั่งการลดขนาดลงจนกระทั่งเป็น 0 และรอให้มีการแจ้งจากภาครับเพื่อเปลี่ยนแปลง

                     ขนาดของ window อีกครั้ง
                         จากที่กล่าวไปแล้ว ในหัวข้อที่ ?? ถึง ?? เราอาจกล่าวได้ว่าค่า d คือค่าของ Round Trip Time (RTT) ของ
                     การส่งแพกเกต (การประมาณค่า RTT จะได้กล่าวโดยละเอียดต่อไปใน หัวข้อที่ 28.2) เราจะพบว่า หากต้องการ
                     ส่งโดยมีประสิทธิภาพสูงสุด เราควรให้ค่าของ Window size เท่ากับ แบนด์วิดท์คูณด้วยค่าของ RTT เรียกว่า
                     bandwidth­delay product การทำเช่นนี้เสมือนเราส่งข้อมูลอย่างต่อเนื่อง ทำให้เกิดการใช้งานของเน็ตเวิร์คสูงสุด
                     ดังนั้นหากสมมติอีเทอร์เน็ตความเร็ว 100 Mbps มีค่าของ RTT เป็น 5 มิลลิวินาที เราควรใช้ขนาดของ Window
                     size เป็น 64 kbytes (100 Mbps x 5 ms = 512 kbits หรือ 64 kbytes)

                         ใน Window XP เราสามารถแก้ไขขนาดของ Window size ที่ค่าของ TCPWindowSize ในระบบ Unix
                                                                           book)
                     ทั่วไปสามารถแก้ไขที่ไฟล์ชื่อ etc/sysctl.conf อย่างไรก็ตามการเปลี่ยนแปลงค่าเหล่านี้ ท่านต้องแน่ใจว่าขนาด
                     ของบัฟเฟอร์มีเพียงพอไม่ทำให้ระบบล่ม
                         จากที่ผ่านมาจะเห็นว่าการใช้ window-based ในการควบคุมการส่งข้อมูลดูเหมือนจะเป็นวิธีที่ง่าย แต่อย่างไร
                     ก็ตามยังมีการขัดแย้งบางประการที่ยังต้องแก้ไข เช่นหากเราต้องการให้ทรูพุตของ TCP ให้มีค่าสูงสุด เราอาจ
                                                          (partial
                     ต้องการใช้ขนาดของ window size ที่สูง แต่การใช้ค่าของ window size ที่สูงไปจะทำให้มีความน่าจะเป็นของ
                     การสูญหายของเซกเมนต์สูงขึ้นด้วย เนื่องจากข้อจำกัดของเน็ตเวิร์คและความสามารถของภาครับ ดังนั้นการหาค่า
                     ของ window size ที่ดีที่สุด เพื่อให้ได้ค่าของทรูพุตที่ดี อีกทั้งไม่เกินข้อจำกัดของเน็ตเวิร์คและภาครับจึงเป็นอีกหนึ่ง
                     ปัญหาของ TCP[45]

                                               only
                     28.1.1 TCP Window Size [45]

                     เพื่อป้องกันการที่จะทำให้ข้อมูลที่ส่งเกินกว่าภาครับจะสามารถทำงานได้ ใน RFC 793 ซึ่งถือเป็นข้อกำหนดแรกของ
                                    KKU
                     การทำงานของ TCP ได้ออกแบบให้ TCP จะต้องไม่ส่งข้อมูลเกินกว่าบัฟเฟอร์ของภาครับที่มีอยู่ โดยการทำงานอยู่
                     บนพื้นฐานของ Receiver's Window (rwnd) รูปที่ 28.2 แสดงตัวอย่างการทำงานดังกล่าว

























                                         รูปที่ 28.2: การทำงานของ Receiver's Window (rwnd) [45]


                         จากรูปเมื่อเริ่มต้นการทำงาน ภาครับแจ้งไปยังภาคส่งเพื่อแสดงถึงจำนวนข้อมูลที่สามารถรับได้ สมมติว่าเริ่ม

                     ต้นภาครับให้ค่า rwnd เท่ากับ 8 จากนั้นภาคส่งจะเริ่มส่งจำนวนของข้อมูลที่ต้องการ โดยจะต้องไม่มากกว่าจำนวน
   226   227   228   229   230   231   232   233   234   235   236