Score:-1

ทำความเข้าใจกับหน้าต่างรับ TCP

ธง co

ขณะนี้ฉันกำลังเรียนรู้เกี่ยวกับ TCP โดยเฉพาะด้านหน้าต่างการรับ ฉันได้อ่านจากหลายแหล่งเกี่ยวกับเรื่องนี้ และมีบางอย่างที่ฉันต้องการให้แน่ใจว่าฉันเข้าใจ

จากที่ได้เรียนมา เครื่องรับ โฆษณา "หน้าต่างรับ" ซึ่งก็คือ - และนี่คือจุดที่ฉันสับสน - จำนวนไบต์ที่ผู้ส่งได้รับอนุญาตให้ส่งโดยไม่ได้รับการยอมรับ หรืออีกนัยหนึ่งคือ ข้อมูลในเที่ยวบิน.

ทีนี้ ถ้าลองคิดดู เป้าหมายหลักของเราในการควบคุมโฟลว์คือการทำให้แน่ใจว่าผู้ส่งจะไม่ส่งเกินกว่าที่ผู้รับจะประมวลผลได้ นั่นคือ เราต้องการป้องกันสถานการณ์ที่ผู้ส่งส่งข้อมูลที่ผู้รับ คงต้องทิ้งเพราะไม่มีที่เก็บ !

ด้วยตรรกะนี้ฉันเชื่อว่าหน้าต่างรับควรสอดคล้องกับขนาดของบัฟเฟอร์รับ (ไม่รู้ว่าเหมือนกันหรือไม่ แต่ขนาดหน้าต่างควรเป็นอนุพันธ์ของบัฟเฟอร์รับ แต่อย่างใด) และ เหตุผลที่เราจำกัดการ ข้อมูลในเที่ยวบิน ส่งโดยผู้ส่งคือ - หากผู้ส่งจะส่งมากกว่าขนาดหน้าต่าง (ซึ่งเป็นอนุพันธ์ของบัฟเฟอร์รับอีกครั้ง) และผู้รับไม่ยอมรับข้อมูลบางส่วน (อัปเดตขนาดหน้าต่าง) ที่นั่น อาจ เป็นสถานการณ์ที่ปลายทางรับข้อมูลไม่ทัน - กล่าวคือ จะได้รับข้อมูลเร็วกว่าที่แอปพลิเคชันใช้ประมวลผลได้ ส่งผลให้เซ็กเมนต์ถูกละทิ้ง (หวังว่าจะชัดเจน)

แต่การอ่าน โพสต์นี้, @DavidShwartz กำลังบอกว่าเป้าหมายของข้อมูลในการบินไม่ใช่เพื่อหลีกเลี่ยงการเติมบัฟเฟอร์มากเกินไป แต่คือการ จัดการกับความล่าช้าที่แนะนำโดยช่องทางการสื่อสาร. ซึ่งฉันก็ไม่ค่อยเข้าใจนัก

ปัญหาคือทุกแหล่งที่พูดถึงเรื่องนี้ไม่ได้อธิบายความเชื่อมโยงระหว่างจุดมุ่งหมายทั่วไปของการควบคุมการไหลกับสิ่งที่มี ข้อมูลในเที่ยวบิน.

ใครช่วยอธิบายรายละเอียดมากกว่านี้ได้ไหม

ky flag
สวัสดี! เป็นคำถามที่ดี ฉันไม่สามารถให้คำอธิบายที่ดีกว่านี้ได้ ... ไซต์นี้อาจดีกว่า https://networkengineering.stackexchange.com/
djdomi avatar
za flag
คำขอสำหรับคำแนะนำเกี่ยวกับผลิตภัณฑ์ บริการ หรือเนื้อหาการเรียนรู้นั้นไม่ตรงประเด็น เนื่องจากพวกเขาดึงดูดคำตอบที่มีคุณภาพต่ำ แสดงความคิดเห็นและเป็นสแปม และคำตอบนั้นล้าสมัยอย่างรวดเร็ว ให้อธิบายปัญหาทางธุรกิจที่คุณกำลังทำอยู่ งานวิจัยที่คุณทำ และขั้นตอนที่ดำเนินการจนถึงตอนนี้เพื่อแก้ไขปัญหา
digijay avatar
mx flag
@djdomi: ไม่แน่ใจว่านี่นอกเรื่องหรือเปล่า เขาไม่ได้ขอสื่อการเรียนรู้แต่ขอรายละเอียดของข้อกำหนด tcp
Score:2
ธง ne
  1. ข้อมูลในเที่ยวบิน เป็นคำทั่วไปที่ใช้เรียกข้อมูลที่ส่งไปแล้วแต่ยังไม่รับทราบ เพราะจากมุมมองของผู้ส่ง ข้อมูลนี้ค่อนข้างจะอยู่ที่ไหนสักแห่งในเครือข่าย หน้าต่างผู้ส่ง คือจำนวนข้อมูลที่สามารถอยู่ระหว่างการบิน กล่าวคือ จำนวนข้อมูลที่ผู้ส่งสามารถส่งได้ก่อนที่จะได้รับ ACK สำหรับส่วนแรกของหน้าต่าง

  2. สิ่งที่พูดในโพสต์ที่เชื่อมโยงคือฉันคิดว่าการกำหนดคำค่อนข้างแย่ว่าทำไมมีหน้าต่าง (เช่นหลายแพ็คเก็ต) ในการบินซึ่งตรงข้ามกับ เพียงหนึ่งเดียว.

ลองนึกภาพว่าจะเกิดอะไรขึ้นหากคุณส่งเพียงหนึ่งแพ็กเก็ต จากนั้นรอ ACK และเปรียบเทียบกับสิ่งที่เกิดขึ้นหากคุณส่ง 10 แพ็กเก็ตในแต่ละครั้ง จากนั้นรอ ACK การคำนวณอัตราการถ่ายโอนข้อมูลเป็นเรื่องปกติในการสอบ คุณจะเห็นว่าการหน่วงเวลาระหว่างผู้ส่งและผู้รับนั้นน้อยมาก (เช่น พวกเขาอยู่ใกล้กันเหมือนอยู่ในอาคารเดียวกัน) การส่งทีละแพ็กเก็ตก็ทำงานได้ดี หากความล่าช้าค่อนข้างสำคัญ การส่งข้อมูลทีละแพ็กเก็ตจะไม่มีประสิทธิภาพมากนัก

  1. ตอนนี้ หากผู้ส่งเพียงแค่ส่งแพ็กเก็ตโดยไม่คำนึงถึงผู้เข้าร่วมรายอื่นในเครือข่าย มีความเป็นไปได้สูงที่แพ็กเก็ตเหล่านี้จะถูกทิ้ง ดังนั้นทรัพยากร (ที่ผู้ส่ง ในเครือข่าย อาจอยู่ที่ผู้รับ) เป็นเพียงการสูญเปล่า ด้วยเหตุนี้ หน้าต่างผู้ส่งของ TCP จึงแปรผันและขึ้นอยู่กับสองกลไก: การควบคุมการไหล และ การควบคุมความแออัด.

การควบคุมการไหลทำในสิ่งที่คุณได้อธิบายไว้ เป้าหมายคือไม่ให้เครื่องรับเกินพิกัด ดังนั้นผู้รับจะบอกผู้ส่งว่าสามารถรับข้อมูลได้มากน้อยเพียงใด สิ่งนี้เรียกว่า หน้าต่างรับ (ซึ่งแตกต่างจากหน้าต่างผู้ส่ง) เพื่อให้แม่นยำ มันคือช่องว่างในบัฟเฟอร์ตัวรับของระบบปฏิบัติการ แอ็พพลิเคชันถูกรวมไว้โดยอ้อมที่นี่ เนื่องจากหากแอ็พพลิเคชันไม่ใช้ข้อมูลจากบัฟเฟอร์ตัวรับ ก็จะไม่มีเนื้อที่ว่าง

มีการควบคุมความแออัดเพื่อให้แน่ใจว่าผู้ส่งจะไม่โอเวอร์โหลดเครือข่ายเป็นหัวข้อใหญ่และซับซ้อน อย่างไรก็ตาม สิ่งที่อธิบายไว้ในคำตอบอื่นคือการควบคุมความแออัด และไม่เกี่ยวข้องกับหน้าต่างรับสัญญาณ มีสิ่งที่เรียกว่า หน้าต่างความแออัดซึ่งประเมิน (หรือควรประมาณ) ว่าเครือข่ายสามารถถ่ายโอนข้อมูลได้มากน้อยเพียงใดโดยไม่โอเวอร์โหลด (เช่น การทิ้งแพ็กเก็ต)

หน้าต่างผู้ส่งเป็นหน้าต่างรับขั้นต่ำและหน้าต่างความคับคั่ง เพื่อให้ผู้ส่งไม่โอเวอร์โหลดทั้งผู้รับหรือเครือข่าย

Score:2
ธง br

มันทำทั้งสองอย่าง

หน้าต่างรับสัญญาณถูกจำกัดโดยพื้นที่บัฟเฟอร์ที่มีอยู่ แต่สิ่งนี้ไม่ได้เป็นปัญหามากนักสำหรับเครื่องรับส่วนใหญ่

หน้าที่สำคัญอื่น ๆ ของหน้าต่างรับข้อมูลคือกระจายการส่งข้อมูลให้ทันเวลา เพื่อไม่ให้แพ็กเก็ตติดต่อกันเป็นสิบ ๆ ชุดตามมาด้วยความเงียบจนกว่าข้อมูลทั้งหมดนี้จะได้รับการตอบรับ แล้วจึงค่อยระเบิดอีกครั้ง

กลไกที่เรียกว่า "การเริ่มต้นช้าของ TCP" จะค่อยๆ เพิ่มหน้าต่างรับเมื่อข้อมูลถูกถ่ายโอน เพื่อให้การถ่ายโอนที่ใช้เวลานานจบลงด้วยสตรีมของแพ็กเก็ตที่มีระยะห่างเท่าๆ กัน และการตอบรับสำหรับแพ็กเก็ตจะมาถึงใน เวลาที่แพ็คเก็ตถัดไปที่ส่วนท้ายของหน้าต่างจะต้องออกไป

เมื่อสร้างโฟลว์นั้นแล้ว หน้าต่างจะเพิ่มขึ้นอีกเพื่อให้แพ็กเก็ตที่สูญหายถูกแทนที่โดยไม่หยุดชะงัก

การไหลที่ดีจะเกิดขึ้นได้หากขนาดของหน้าต่างเพิ่มขึ้นเป็นเส้นตรงจนถึงจุดที่มีปริมาณข้อมูลที่ไม่รู้จักในการบิน ซึ่งก็คือความล่าช้าในการขนส่งคูณกับความเร็วในการถ่ายโอน

เหตุผลที่สิ่งนี้ไม่สามารถแก้ไขได้ด้วยการตอบรับเพียงอย่างเดียวคือเป็นไปได้ค่อนข้างมากที่แพ็กเก็ตจากการระเบิดจะถูกทิ้งระหว่างทาง (การทิ้งแพ็กเก็ตเป็นวิธีของเครือข่ายในการบ่งชี้ความคับคั่ง) ดังนั้นการเริ่มการเชื่อมต่อจะติดขัดมากขึ้นก่อนที่จะบรรจบกันในที่สุด ในกระแสที่สม่ำเสมอ

หากบัฟเฟอร์รับมีขนาดเล็กกว่าจำนวนข้อมูลที่ไม่ได้รับในการบิน หน้าต่างรับจะชนเพดาน และโฟลว์จะไม่สม่ำเสมอ เว้นแต่สแต็กรับจะชดเชยสิ่งนี้ด้วยการตอบรับที่ล่าช้า แต่นี่เป็นสถานการณ์ที่ไม่ปกติ

Effie avatar
ne flag
1) การเริ่มต้นช้าของ tcp ไม่มีส่วนเกี่ยวข้องกับหน้าต่างรับ การควบคุมการไหลและการควบคุมความแออัดเป็นสองสิ่งที่แยกจากกัน การเริ่มต้นช้าจะเพิ่มหน้าต่างความแออัด และหน้าต่างผู้ส่งถูกตั้งค่าให้ต่ำที่สุดของหน้าต่างผู้รับและหน้าต่างความคับคั่ง 2) การควบคุมความแออัดจะไม่ป้องกันการแตกของแพ็กเก็ต วิธีการทำงานจะทำหน้าที่ในการรับ ACKs ดังนั้นหากมีการรวม ACKs ด้วยเหตุผลใดก็ตาม แพ็กเก็ตจำนวนมากจะถูกส่งออกไป คุณต้องมีกลไกแยกต่างหาก ซึ่งเรียกว่าการเว้นจังหวะสำหรับสิ่งนี้ 3) แพ็กเก็ตที่สูญหายจะหยุดทำงาน อาจหยุดทำงานเพียงครึ่งเดียว แต่อาจหยุดชะงักได้มาก (เช่น การสูญเสียส่วนท้าย)
Effie avatar
ne flag
"การไหลที่ดีจะเกิดขึ้นได้หากขนาดหน้าต่างเพิ่มขึ้นเป็นเส้นตรงจนถึงจุดที่ถึงจำนวนข้อมูลที่ไม่ได้รับในเที่ยวบิน ซึ่งก็คือความล่าช้าในการขนส่งคูณกับความเร็วในการถ่ายโอน" ข้อความนี้ไม่สมเหตุสมผล เนื่องจากหน้าต่างคือจำนวนของ ข้อมูลในการบินหรือจำนวนข้อมูลที่สามารถอยู่ในเที่ยวบิน

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา