ฉันจะกำหนดเวลาแฝงการสื่อสารใน TCP / IP ได้อย่างไร


12

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


นี่เป็นเป้าหมายที่เคลื่อนไหวและมีการอ้างอิงมากมายที่จะเปลี่ยนค่าคงที่ของโมเดลของคุณ ตัวอย่างเช่นหากคุณต้องการรวมการหน่วงเวลาการส่งต่อการส่งต่อนั้นเป็นพื้นฐานคุณต้องทราบยี่ห้อและรุ่นของอุปกรณ์แต่ละรายการในบรรทัด หากคุณไม่ได้ควบคุมหรือรู้จักอุปกรณ์แต่ละตัวในเส้นทางเช่นผ่านอินเทอร์เน็ตหรือเครือข่ายอื่น ๆ นี่เป็นสิ่งที่แทบจะเป็นไปไม่ได้ที่จะต้องพิจารณา หากคุณคิดว่าคุณรู้ทุกอย่างเกี่ยวกับการกระโดดแต่ละครั้งในเส้นทางคุณสามารถใช้การหน่วงเวลาการส่งต่อพื้นฐานพูด 1.2 microseconds สำหรับสวิตช์รุ่น "A" และ 5.0 สำหรับสวิตช์รุ่น "B" เป็นต้น
netdad

1
+1 ที่นี่ด้วย! คุณควรตั้งค่าสถานะSO เพื่อลบคำถามของคุณตอนนี้คำถามซ้ำ
Grijesh Chauhan

รหัสที่มาของ: httpingใช้ความคิดเห็นhttping -Gbg www.google.com -c 5
Grijesh Chauhan

@Espanta คุณมีเป้าหมายที่จะประเมินความล่าช้าหรือปริมาณงานหรือไม่ ปริมาณงานนั้นขึ้นอยู่กับคุณสมบัติ TCP เช่น SACK, RWIN, โปรโตคอลแชทของแอพและแน่นอนเวลาแฝง
Generalnetworkerror

@generalnetworkerror ฉันต้องการเวลาในการตอบกลับสำหรับการรับ http และโพสต์คำขอและการตอบกลับ
Espanta

คำตอบ:


8

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

  • ดูคำถามของฉันใน Electronics SE; การเข้ารหัสความล่าช้าของ Ethernet และความสัมพันธ์กับคะแนนความถี่เคเบิลและความเร็วของการผลิตไฟฟ้า (การแพร่กระจายสัญญาณ?) ผ่านทองแดงสำหรับความล่าช้าการสื่อสาร เนื่องจากคุณจะใช้ความเร็วมาตรฐาน (100Mbps, 1Gbps, 10Gbps เป็นต้น) อย่ารักษาเส้นใยหรือทองแดงต่างกัน การหน่วงเวลา "ลง" ทั้งสองใกล้เท่ากัน แต่ทองแดงไม่สามารถส่งสัญญาณได้อย่างชัดเจน ฉันมีคำถามนี้ในเว็บไซต์ Physics SE ซึ่งฉันรู้คำตอบแล้วตอนนี้ ฉันแค่ต้องการหาเวลาให้ถูกต้องดังนั้นจับตาดูว่าถ้าคุณสนใจ (ฉันจะโพสต์คำถามที่เกี่ยวข้องกับการใช้ใยแก้วนำแสงเพิ่มเติมซึ่งตอนนี้ฉันรู้คำตอบเมื่อฉันมีโอกาส )

  • ความล่าช้ามากขึ้นจะถูกเพิ่มเข้ามาโดยอุปกรณ์ที่ส่วนท้ายของลิงค์ ไม่มีวิธีมาตรฐานในการพูดว่า "oh 2 สวิตช์ตามเส้นทางคือ Xms delay, 4 สวิตช์เป็น 2 * Xms, 2 เราเตอร์คือ Yms ... ฯลฯ " สมมติว่าคุณใช้ตัวอย่าง 1Gpbs และอุปกรณ์ในเส้นทางข้างหน้าที่อัตราสายเรารู้ว่าคือ 1000000000bps ดังนั้นอินเตอร์เฟสทางกายภาพจะทำงานที่อัตราการเข้ารหัสคงที่ (ตั้งแต่ 1 นาโนวินาทีต่อบิตจนถึงอะไรก็ตามที่สูงสุดของ รูปแบบการเข้ารหัสสัญลักษณ์ที่ใช้คือ10b )

  • การหน่วงเวลามีสามประเภทหลัก (ที่เลเยอร์ทางกายภาพ) ที่คุณต้องระวังและคำนึงถึง ความล่าช้าในการทำให้เป็นอนุกรม, ความล่าช้าในการเข้ารหัส, ความล่าช้าในการแพร่กระจาย (และความล่าช้าในการประมวลผล, ความล่าช้าในการเข้าคิว, เข้ารหัสและถอดรหัสความล่าช้า แต่สิ่งเหล่านี้อยู่เหนือเลเยอร์ทางกายภาพ แต่ต้องการพูดถึง!) สิ่งเหล่านี้ได้รับการบันทึกไว้อย่างดีในอินเทอร์เน็ตVoIP: การวิเคราะห์เชิงลึก Slide 13 ที่นี่โหลดGoogle Scholarและอื่น ๆ อีกมากมาย

  • เมื่อเราเลื่อนโพรโทคอลสแต็คขึ้นมาฉันจะทำงานบนสมมติฐานที่ว่า MAC ปลายทางอยู่ในตารางสวิตช์แต่ละลูกและที่เลเยอร์ IP ซึ่งเป็น MAC ปลายทางในตาราง ARP ความล่าช้าพิเศษที่เกิดจากกระบวนการค้นพบเหล่านี้เกิดขึ้นสำหรับแพ็กเก็ตแรกในโฟลว์เท่านั้นดังนั้นจึงสามารถหลบเลี่ยงได้โดยการเพิ่มเวลาและส่ง ARP ฟรีเป็นต้น

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

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

ในเวลานั้นคนส่วนใหญ่มักจะทำงานกับตัวเลขการหน่วงเวลาที่ชั้นทองแดง / เส้นใยทางกายภาพประมาณ 0.6 * c (C = ความเร็วของแสง) นอกจากนี้คุณต้องพิจารณาเกี่ยวกับการแลกเปลี่ยน ACK ของ TCP ทุกแพ็กเก็ต X ซึ่งแตกต่างกันถ้าคุณใช้ SACK ตัวอย่างเช่นและถ้าคุณใช้เฟรมขนาดใหญ่และ / หรือขนาด MSS ที่มีขนาดใหญ่ขึ้น หากคุณกำลังส่ง ACK เพิ่มเติมระหว่าง (หากปริมาณข้อมูลที่ถ่ายโอนเป็นที่สนใจของคุณ) คุณต้องคำนึงถึงปัจจัยในBanday Delay Product ที่น่าอับอายและไม่ทำให้การตีความผิด ๆ โง่ ๆ อย่างที่ฉันทำในหน้านั้น ฉันเริ่มสร้างเครื่องคำนวณข้อมูลแบบง่าย ๆ (และน่าเกลียดมาก) ที่นี่. กำลังดำเนินการอีกครั้งฉันจะลองและอัปเดตพวกเขาในไม่ช้า ฉันวางแผนที่จะเพิ่มเครื่องคิดเลขที่คล้ายกับสิ่งที่คุณพยายามทำ ฉันได้สร้างเครื่องคิดเลขแบบเบาและแบบใยถ้าคุณสนใจ แต่อีกครั้งไม่นาน! ฉันยังไม่ได้อัพโหลดเลย ฉันจะลอง ASAP เพื่ออัปเดตคำตอบนี้อีกไม่กี่วันข้างหน้า

ป.ล. ฉันลืมพูดถึง QoS! หากมีการเล่น QoS ทุกที่ในเส้นทางมันจะยากมากที่จะคำนวณ RTT!


ขอบคุณ รายละเอียดค่อนข้างดี ฉันต้องเน้นว่าจำนวนของ hops ระหว่างสองโหนดมีผลกระทบสูงต่อระยะทางกายภาพระหว่างสองโหนดในเครือข่ายแบบใช้สาย (อย่างน้อยตั้งแต่การเปรียบเทียบที่แท้จริงของฉันแสดงให้เห็นว่า.) ดังนั้นฉันจะรวบรวมทั้งหมดและมาพร้อมกับแบบจำลองของฉันในไม่ช้า ขอบคุณมากจากทุกคนที่อ่าน, uprate, ตอบและจะตอบ
Espanta

telecoms-use-of-fiber (สมมติว่า OP ไม่ได้เกี่ยวข้องกับความล่าช้าเพียงภายในศูนย์ข้อมูลหรือการตั้งค่าบางอย่างที่เขาสามารถควบคุมโครงสร้างพื้นฐานทางกายภาพได้อย่างเต็มที่) สามารถสร้างความน่าสนใจและทำให้การสร้างแบบจำลองเป็นไปไม่ได้ เรื่องเล็ก ๆ น้อยเพื่อเน้นปัญหา ฉันเคยมีของ Louisville T-1, KY <-> เล็กซิงตัน, KY และ Louisville, KY <-> Cincinnati, OH ล้มเหลว โทรไปที่ telco และพวกเขาแจ้งฉันว่ามีการตัดไฟเบอร์ในรัฐอิลลินอยส์ตะวันตกเพื่อตำหนิ ดูแผนที่และดูว่าทำไมมันถึงบ้าคลั่ง การเชื่อมโยงแบนด์วิดท์ที่สูงขึ้นมีโอกาสน้อยที่จะตกเป็นเหยื่อของความคลั่งไคล้แบบนี้
Jeff McAdams

5

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

แฝงเครือข่ายเป็นเพียงเวลาการขนส่งจากจุดปลายด้านหนึ่งข้ามไปยังจุดสิ้นสุดอื่น ๆ ที่ทอด N hops ระหว่าง

ดังนั้นคุณจึงมี N เซกเมนต์ (ฮ็อป) ที่มีโหนดระดับกลาง N-1 แต่ละโหนดมีความล่าช้า (ผลกระทบสะสมของหลายสิ่งบนโหนดนั้นเช่นความล่าช้าของคิวการประมวลผลล่าช้า ฯลฯ ) และแต่ละส่วนมีความล่าช้าในการขนส่ง โดยรวมนั่นเป็น2N - 1 ตัวแปรอิสระ ดังนั้นมันคือ seg1 + node1 + seg2 ... + node (N-1) + segN One hop, เป็นเพียง = seg1, สองความหวังคือ seg1 + node1 + seg2, ฯลฯ

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

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

ความล่าช้าในแต่ละโหนดคุณจะต้องประเมินตามอุปกรณ์ที่คุณใช้ในโมเดลของคุณ

หากคุณต้องการเวลาแฝงของแอปพลิเคชัน (เช่นความล่าช้าจนถึงจุดเริ่มต้นของการถ่ายโอนข้อมูล FTP) จากนั้นคุณจะสร้างขึ้นโดยนับจำนวนครั้งที่เวลาแฝงเครือข่ายของคุณเข้ามาเล่น ตัวอย่างเช่นการจับมือ TCP แบบ 3 ทางช่วยเพิ่มความหน่วงแฝงของเครือข่ายสามระดับและอื่น ๆ เพื่อสร้างสิ่งที่แอปพลิเคชันเห็น


3

คุณสามารถประมาณเวลาแฝงของการเดินทางไปกลับด้วยการจับแพ็คเก็ตที่ด้านใดด้านหนึ่งจากนั้นวัดความล่าช้าระหว่างคำขอที่ออกจากเครื่องที่ตรวจสอบแล้วและการตอบกลับกลับมา ตัวอย่างเช่นหากคุณทำเครื่องหมายเวลาที่ SYN ออกไปยังเครื่องระยะไกลจากนั้นทำเครื่องหมายเวลาที่การตอบสนองของ SYN + ACK เข้ามาความแตกต่างจะช่วยให้คุณมี ballpark ที่ดีของ TCP latency ที่ไปกลับ

โปรดทราบว่าสิ่งนี้จะยิ่งใหญ่กว่าเวลาแฝงของเครือข่ายที่แท้จริงและจำนวนที่มากขึ้นนั้นขึ้นอยู่กับว่าเครื่องทั้งสองนั้นมีภาระมากเพียงใด


ขอบคุณสำหรับคำตอบของคุณ แต่ฉันไม่ต้องการวัดโดยใช้การเข้ารหัสหรือการตีความของเครื่องจักรใด ๆ ฉันต้องกำหนดโดยใช้แบบจำลองทางคณิตศาสตร์ ตัวอย่างเช่น: Delay รวม = การแพร่กระจายรวม + การส่งทั้งหมด + ร้านค้าทั้งหมด & ส่งต่อ + การประมวลผลรวม และสำหรับแต่ละช่วงเวลาเหล่านี้ฉันสามารถมีสูตรอื่นได้ ดังนั้นมันจึงสามารถวัดทางคณิตศาสตร์ได้
Espanta

3

ความล่าช้าระหว่างสองโฮสต์จะขึ้นอยู่กับปัจจัยหลายประการ:

  • การขยายพันธุ์ล่าช้า
  • ความล่าช้าในการทำให้เป็นอันดับ
  • การรอคิว / การบัฟเฟอร์ล่าช้า

การล่าช้าในการเผยแพร่เป็นระยะเวลานานเท่าใดที่แพ็กเก็ตเดินทางระหว่างสองสถานที่ ความเร็วแสงในไฟเบอร์อยู่ที่ประมาณ 200,000 กม. / ชม. สวีเดนที่ซึ่งฉันอาศัยอยู่นั้นอยู่ที่ประมาณ 1,570 กม. ดังนั้นจะเป็น 7.85 มิลลิวินาที แต่ในความเป็นจริงมันมากขึ้นเพราะนั่นคือระยะทางผ่านมุมมองนก

ความล่าช้าในการทำให้เป็นอนุกรมคือเวลาที่ใช้ในการ seralize แพ็กเก็ตผ่านสื่อบันทึกทางกายภาพนั่นคือส่วนต่อประสานบนอุปกรณ์เครือข่าย หากคุณมีการเชื่อมต่อ 2 Mbit และคุณกำลังส่งแพ็กเก็ต 1500 ไบต์ซึ่งจะเป็น 6 มิลลิวินาทีในการทำให้เป็นอนุกรมแพ็กเก็ต (12000/2000000)

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

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


แล้วจำนวนฮ็อพล่ะ และความล่าช้าในการกระโดดแต่ละครั้ง?
Espanta

เป็นการยากที่จะสร้างสูตรทั่วไปเนื่องจากบางปัจจัยมีความหลากหลายเช่นการจัดลำดับและการเข้าคิว นี่คือคนที่เขียนเกี่ยวกับมัน ccieflyer.com/pdf/2009-Mar-Oleg-Berzin.pdf - คณิตศาสตร์อยู่เหนือความสามารถทางคณิตศาสตร์ของฉันแม้ว่า :)
Daniel Dib
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.