การทำให้เป็นอนุกรมและการทำให้เป็นอนุกรมใน 40G / 10G และ 100G / 25G Ethernet


15

เมื่อเร็ว ๆ นี้ฉันได้มีส่วนร่วมในการอภิปรายเกี่ยวกับข้อกำหนดความล่าช้าขั้นต่ำสำหรับเครือข่าย Leaf / Spine (หรือ CLOS) เพื่อโฮสต์แพลตฟอร์ม OpenStack

สถาปนิกระบบพยายามอย่างหนักเพื่อ RTT ที่เป็นไปได้ต่ำสุดสำหรับการทำธุรกรรมของพวกเขา (การจัดเก็บบล็อกและสถานการณ์ RDMA ในอนาคต) และการเรียกร้องคือ 100G / 25G ให้ความล่าช้าต่อเนื่องที่ลดลงอย่างมากเมื่อเทียบกับ 40G / 10G ทุกคนที่เกี่ยวข้องตระหนักดีว่ามีปัจจัยมากมายในเกมตั้งแต่ต้นจนจบ (ซึ่งสิ่งใดสามารถทำร้ายหรือช่วยเหลือ RTT) ได้มากกว่าแค่ NICs และเปลี่ยนพอร์ตอนุกรมให้ล่าช้า ถึงกระนั้นหัวข้อเกี่ยวกับความล่าช้าในการซีเรียลไลซ์เซชั่นก็ยังคงปรากฏขึ้นเนื่องจากเป็นสิ่งหนึ่งที่ยากที่จะปรับให้เหมาะสมโดยไม่ต้องกระโดดข้ามช่องว่างของเทคโนโลยีที่มีราคาแพง

bit over-simplified (ออกจากโครงร่างการเข้ารหัส), เวลาในการทำให้เป็นอนุกรมสามารถคำนวณได้เป็นจำนวนบิต / บิตอัตราซึ่งช่วยให้เราเริ่มต้นที่ ~ 1.2μsสำหรับ 10G (ดูwiki.geant.org )

For a 1518 byte frame with 12'144bits,
at 10G (assuming 10*10^9 bits/s), this will give us ~1.2μs
at 25G (assuming 25*10^9 bits/s), this would be reduced to ~0.48μs 
at 40G (assuming 40*10^9 bits/s), one might expect to see ~0.3μs
at 100G (assuming 100*10^9 bits/s), one might expect to see ~0.12μs

ตอนนี้สำหรับบิตที่น่าสนใจ ที่เลเยอร์ทางกายภาพ 40G นั้นมักจะทำในรูปแบบ 4 เลน 10G และ 100G นั้นจะเป็น 4 เลนของ 25G ขึ้นอยู่กับตัวแปร QSFP + หรือ QSFP28 บางครั้งก็ทำด้วยเส้นใย 4 คู่บางครั้งมันถูกแยกโดย lambdas ในคู่ไฟเบอร์เดี่ยวซึ่งโมดูล QSFP ทำ xWDM บางส่วนด้วยตัวเอง ฉันรู้ว่ามีสเปคสำหรับ 1x40G หรือ 2x50G หรือแม้กระทั่งเลน 100G 1x แต่ขอทิ้งไว้สักครู่

ในการประมาณความล่าช้าในการทำให้เป็นอนุกรมในบริบทของ multi-lane 40G หรือ 100G เราจำเป็นต้องทราบว่า 100G และ 40G NICs และสวิตช์พอร์ตจริง ๆ แล้ว "กระจายบิตไปยังสาย (ชุด)" เพื่อพูด กำลังทำอะไรที่นี่

มันเหมือน Etherchannel / LAG ไหม? NIC / switchports ส่งเฟรมหนึ่ง "โฟลว์" (อ่าน: ผลการแฮชเดียวกันของอัลกอริทึมการแฮชที่ใช้ข้ามขอบเขตของเฟรมใด) ข้ามหนึ่งแชนเนลที่กำหนด ในกรณีนี้เราคาดว่าการจัดลำดับความล่าช้าเช่น 10G และ 25G ตามลำดับ แต่โดยพื้นฐานแล้วนั่นจะทำให้ลิงก์ 40G เพียง LAG ที่ 4x10G ลดอัตราการไหลของข้อมูลเดียวเป็น 1x10G

มันเป็นเหมือนโรบินรอบที่ฉลาดใช่ไหม? แต่ละบิตมีการกระจายแบบวนรอบใน 4 ช่องทางย่อย (sub)? ที่จริงแล้วอาจส่งผลให้ความล่าช้าในการจัดลำดับที่ลดลงเนื่องจากการขนานกัน แต่ทำให้เกิดคำถามบางอย่างเกี่ยวกับการส่งมอบในการสั่งซื้อ

มันเป็นเหมือนโรบินรอบกรอบหรือไม่? เฟรมอีเธอร์เน็ตทั้งหมด (หรือบิตขนาดที่เหมาะสมอื่น ๆ ) ถูกส่งผ่าน 4 ช่องทางกระจายในรูปแบบโรบิน?

มันจะเป็นการพักผ่อนอย่างอื่นอย่างสิ้นเชิงเช่น ...

ขอบคุณสำหรับความคิดเห็นและตัวชี้ของคุณ

คำตอบ:


14

ส่วนที่แบ่งออกเป็นหลายเลนเรียกว่าPhysical Coding Sublayerในมาตรฐาน IEEE 802.3ba งานนำเสนอโดย Gary Nicholl นี้ให้ภาพรวมที่ดี

คำอธิบายสั้น ๆ คือข้อมูลถูกแบ่งออกเป็นหลายช่องทางในบล็อก 64 บิตในแต่ละ ( เข้ารหัสบนสายเป็น 66 บิตสำหรับการกู้คืนนาฬิกา) ดังนั้นเมื่อขนาดแพ็คเก็ตเกิน N * 64 บิต (= 32 ไบต์สำหรับ 4 เลน) มันสามารถใช้ประโยชน์ได้อย่างเต็มที่ จะมีความล่าช้าในการเข้ารหัส แต่นั่นอาจเป็นเรื่องเฉพาะการใช้งาน

แผนภาพนี้มาจากงานนำเสนอที่ลิงก์ด้านบน: ฟังก์ชั่นการเข้ารหัสทางกายภาพ Sublayer


1
"จะมีความล่าช้าในการเข้ารหัส"เอ่อโอ้ ตอนนี้คุณเปิดเวิร์มอื่นได้แล้ว! ความล่าช้าเท่าไหร่ มันส่งผลกระทบต่อความล่าช้าของแพ็กเก็ตมากกว่าหรือไม่ อื่น ๆ ...
ไปป์

1
อ่าขอบคุณมาก วิธีที่ฉันเข้าใจ "คำศัพท์" เหล่านี้คือ "บิตขนาดที่เหมาะสม" ในขณะที่ฉันใส่ไว้ในโพสต์ดั้งเดิมของฉัน มันเข้ามาใกล้รึเปล่า?
Marc 'netztier' Luethi

1
@ Marc'netztier'Luethi อย่างแน่นอน
jpa

@pipe ใช่ โชคดีที่ "ทุกคนที่เกี่ยวข้องตระหนักดีว่ามีปัจจัยมากมาย" :)
jpa

2
@pipe ดีฉันคิดว่าเราจะทิ้งมันไว้ ความท้าทายใด ๆ ที่เกิดขึ้นจากนี้ไปฉันจะตอบโดย "ตราบใดที่คุณส่งข้อมูลมากพอในครั้งเดียว (32bytes) เพื่ออนุญาตให้ NIC / พอร์ตปัดเศษในสี่เลนคุณจะได้รับการหน่วงเวลาต่อเนื่องที่สั้นกว่า / ขนาน พวกคุณอยู่หลังจากนี้ไปมาก " แน่นอนว่าโครงข่ายอีเทอร์เน็ตที่ถูกอบครึ่งพร้อมส่วนหัว IP และไม่มีส่วนของข้อมูลจะข้ามขีด จำกัด นั้นไปแล้ว ดังนั้น: ไม่เป็นไร
Marc 'netztier' Luethi

16

คุณคิดมาก

จำนวนช่องทางที่ใช้ไม่สำคัญเลย ไม่ว่าคุณจะขนส่ง 50 Gbit / s มากกว่า 1, 2 หรือ 5 เลนความล่าช้าในการทำให้เป็นอนุกรมคือ 20 ps / บิต ดังนั้นคุณจะได้ 5 บิตทุก ๆ 100 ps โดยไม่คำนึงถึงช่องทางที่ใช้ การแบ่งข้อมูลออกเป็นช่องทางและรวบรวมข้อมูลใหม่จะเกิดขึ้นใน sublayer PCS และจะมองไม่เห็นแม้อยู่ด้านบนของเลเยอร์ทางกายภาพ ไม่ว่าสถานการณ์ของคุณจะเป็นเช่นไรมันไม่สำคัญว่า 100G PHY จะเรียงลำดับ 10 บิตต่อเนื่องตามเลนเดียว (10 พิโคเซคอนแต่ละครั้ง, 100 พิโคเซคอนรวม) หรือขนานมากกว่า 10 เลน (100 พิโคเซคอนละ 100 ปอนด์) กำลังสร้าง PHY นั้น

ตามธรรมชาติแล้ว 100 Gbit / s มีความล่าช้าเพียงครึ่งหนึ่งของ 50 Gbit / s และอื่น ๆ ดังนั้นยิ่งคุณซีเรียลไลเซชันเร็วกว่า (บนสุดของเลเยอร์ทางกายภาพ) ยิ่งเฟรมส่งเร็วขึ้นเท่านั้น

หากคุณสนใจในการทำให้เป็นอนุกรมภายในอินเทอร์เฟซคุณจะต้องดูตัวแปร MII ที่ใช้สำหรับคลาสความเร็ว อย่างไรก็ตามการทำให้เป็นอนุกรมนี้เกิดขึ้นได้ทันทีหรือขนานกับการทำให้เป็นอนุกรม MDI จริง - ใช้เวลาไม่กี่นาที แต่ขึ้นอยู่กับชิ้นส่วนที่เกิดขึ้นจริงของฮาร์ดแวร์และอาจเป็นไปไม่ได้ที่จะคาดเดา เป็นของฉันเดา 100 Gbit / s จริง ๆ แล้วฉันไม่ต้องกังวลเกี่ยวกับเรื่องนี้เนื่องจากมีปัจจัยมากมายที่เกี่ยวข้อง 10 ps คือลำดับของเวลาในการส่งข้อมูลที่คุณจะได้รับจากสายเคเบิลเพิ่มเติมอีก 2 มิลลิเมตร (!)

การใช้สี่เลน 10 Gbit / s แต่ละ 40 Gbit / s ไม่เหมือนกับการรวมลิงค์ 10 Gbit / s ลิงก์ 40 Gbit / s - โดยไม่คำนึงถึงจำนวนช่องทาง - สามารถขนส่งสตรีม 40 Gbit / s เดียวซึ่งลิงก์ LAGged 10 Gbit / s ไม่สามารถทำได้ นอกจากนี้ความล่าช้าในการทำให้เป็นอนุกรมของ 40G เพียง 1/4 ของ 10G


3
ขอบคุณสำหรับความคิดเห็นของคุณ ดังนั้นคุณกำลังบอกว่าใน 10/25/40 / 100G กฎหัวแม่มือของจำนวนอัตราบิตต่อเฟรม / บิต = ความล่าช้าในการทำให้เป็นอนุกรมนั้น ยังคงใช้ได้อยู่ไม่ว่าจะใช้เลเยอร์ทางกายภาพจำนวนเท่าใดก็ตาม ใช้ความแตกต่างเล็กน้อย)
Marc 'netztier' Luethi

6
ใช่. Multi-lane Ethernet นั้นแตกต่างอย่างมากกับลิงก์ที่รวมในส่วนนี้
Zac67
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.