การชนกันของอีเธอร์เน็ตเกิดขึ้นได้อย่างไรในสายเคเบิลเนื่องจากโหนดใช้วงจรที่แตกต่างกันสำหรับ Tx และ Rx


13

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

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

วงจรต่าง ๆ ใช้สำหรับการส่งและรับ

แก้ไข : บางทีป้ายกำกับ "Hub MDI-X" อาจทำให้เกิดความสับสนเกี่ยวกับประเด็นคำถามของฉัน ฉันไม่ได้ถามว่า functionallity ของฮับสามารถทำให้เกิดการชนได้อย่างไร โฟกัสของฉันอยู่ที่การสื่อสารระหว่างสองโหนดที่มีอินเตอร์เฟส MDI หรือ MDI-X (ฮับและสวิตช์มีอินเตอร์เฟส MDI-X) ในกรณีใดกรณีหนึ่งเหล่านี้การชนกันของสองโหนดสามารถเกิดขึ้นได้อย่างไรเมื่อพวกเขามี duplex mismatch ในขณะที่ duplex mismatch Rx และ Tx ยังคงมีวงจรเฉพาะอยู่


โปรดทราบว่า 10Base2 หรือ 10Base5 แบ่งปันสื่อเดียวกันเช่นสายเคเบิลเดียวกัน
Patrick Terlisten

ฉันยังมีคำถามเดียวกันเกี่ยวกับ 100base-tx ในกรณีที่เรามี duplex ไม่ตรงกันและ nodeA คือ half duplex และ nodeB full duplex สมมติว่า nodeA มีอินเตอร์เฟส MDI และ nodeB เป็น MDI-X หนึ่ง NodeB ส่งจากหมุด 3 และ 4 และ nodeB รับเฉพาะจาก 3 และ 4 การชนกันสามารถเกิดขึ้นได้ใน nodeA เนื่องจากได้รับจากหมุดเหล่านี้เท่านั้น
Christos Dalamagkas

6
การชนเกิดขึ้นใน L1 ไม่ใช่ L2 - เป็นบิต / พาหะที่ชนกัน ผู้ส่งสองคนชนกันเมื่อพวกเขาพยายามส่ง (ใกล้) พร้อมกัน
Zac67

คำตอบ:


11

เพื่อให้เข้าใจสิ่งนี้คุณต้องเข้าใจบริบททางประวัติศาสตร์

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

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

จากนั้น 10BASE-T เข้ามาซึ่งดังที่คุณสังเกตเห็นว่ามีช่องสัญญาณข้อมูลเฉพาะสำหรับแต่ละทิศทาง อย่างไรก็ตามมันยังคงจำเป็นต้องพอดีกับรุ่นที่มีอยู่ดังนั้นโดยปกติแล้วมันจะทำงานในโหมด "half-duplex" ซึ่งมันจำลองสายโคแอกเซียล สัญญาณไม่ได้เกิดจากการชนกันบนเส้นลวด แต่ตัวรับส่งสัญญาณทำหน้าที่เหมือน - ถ้าพวกเขาทำและผู้ดำเนินการจะทำตามขั้นตอนเดิมเหมือนก่อนเพื่อให้แน่ใจว่าสิ่งนี้ได้เห็นทั่วทั้งเครือข่าย

อีเธอร์เน็ต Twisted pair ยังสามารถรองรับโหมด "full-duplex" ในโหมดนี้ฮาร์ดแวร์ที่เกี่ยวข้องกับการชนทั้งหมดถูกปิดใช้งานและปลายทั้งสองสามารถส่งได้ตลอดเวลา อย่างไรก็ตามโหมดนี้นำข้อเสียที่สำคัญสองสาม

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

ปัญหาเหล่านี้หมายความว่าในทางปฏิบัติระบบ 10BASE-T มักจะทำงานในโหมดฮาล์ฟดูเพล็กซ์

สำหรับ 100BASE-TX สถานการณ์ดีขึ้นอย่างมาก สวิตช์ Ethernet (สะพานหลายพอร์ตที่รวดเร็วในด้านเทคนิค) ลดราคาลงจนถึงจุดที่ฮับ repeater ไร้สายสามารถกำจัดได้ การต่อรองอัตโนมัติอนุญาตให้การ์ดเครือข่ายทำการเชื่อมต่อแบบฟูลดูเพล็กซ์โดยไม่มีการกำหนดค่าด้วยตนเองได้ หากคุณเชื่อมต่อ 100BASE-TX NIC สองตัวพร้อมกับสายเคเบิลแบบไขว้หรือเชื่อมต่อ 100BASE-TX NIC กับสวิตช์และไม่ทำตามขั้นตอนเพื่อแทนที่สิ่งต่าง ๆ ด้วยตนเองพวกเขาจะเจรจาโหมด full-duplex อย่างแน่นอน

ในทางทฤษฎี 1000BASE-T มีโหมดฮาล์ฟดูเพล็กซ์ซึ่งนิคส์บางคนอ้างว่าให้การสนับสนุนและมีสเปคสำหรับขาประจำมัลติพอร์ตกิกะบิต แต่ฉันไม่เคยเห็นหลักฐานใด ๆ ที่ใครเคยขาย ในทางปฏิบัติลิงก์กิกะบิตจะทำงานในโหมดฟูลดูเพล็กซ์อย่างแน่นอน

ความเร็วที่เร็วกว่านั้นทิ้งโหมดฮาล์ฟดูเพล็กซ์ทั้งหมด


จากนั้นอีเทอร์เน็ตไร้สายก็มาถึงและการชนกันของสื่อก็เป็นอีกครั้ง
OrangeDog

@OrangeDog หากคุณหมายถึง Wi-Fi (IEEE 802.11) นั่นไม่ใช่อีเธอร์เน็ตไร้สาย (IEEE 802.3) มันเป็นโปรโตคอลที่แตกต่างอย่างสิ้นเชิงที่มีเฟรมที่แตกต่างกันและใช้ CSMA / CA แทน CSMA / CD โปรโตคอลทั้งสองนั้นแตกต่างกันมากในขณะที่อีเทอร์เน็ตบนสื่อต่าง ๆ ที่รองรับก็เหมือนกันทั้งหมด
Ron Maupin

14

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

ลองใช้วิธีนี้การรับของทุก ๆ ฮับอินเตอร์เฟสจะถูกต่อสายไปยังการส่งของทุก ๆ อินเตอร์เฟส ภายในฮับนั้นการส่งและรับจะถูกเชื่อมต่อแม้ว่าจะแยกกันที่ส่วนต่อประสาน

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

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


แก้ไข:

ความคิดเห็นของคุณทำให้ฉันเชื่อว่าคุณยังไม่เข้าใจสิ่งที่ฉันเขียนด้านบนเกี่ยวกับฮับ

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

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


3
นี่คือคำตอบที่แท้จริง OP ไม่สนใจทุกกรณียกเว้นเพียงแค่จุดปลายสองจุดที่มีสายเคเบิลแบบไขว้
. GitHub หยุดช่วยน้ำแข็ง

@R .. รูปวาดในคำถามแสดงฮับดังนั้นฉันตอบสำหรับการเชื่อมต่อฮับ
Ron Maupin

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

ดูเหมือนว่าป้ายกำกับ "Hub MDI-X" ทำให้เกิดความสับสนเกี่ยวกับประเด็นคำถามของฉัน ฉันแก้ไขตามนั้น
Christos Dalamagkas

3
เนื่องจากตัวที่มี half duplex ประกาศการชนกันเมื่อได้ยินบางสิ่งในขณะที่ส่ง ดูคำตอบด้านบน .. หากอุปกรณ์ที่กำหนดค่าสำหรับฮาล์ฟดูเพล็กซ์ได้ยินสัญญาณอื่นในขณะที่ส่งมันต้องคิดว่ามีการชนกันเพราะเชื่อว่ามันเป็นฮาล์ฟดูเพล็กซ์และสามารถส่งได้ครั้งละหนึ่งอุปกรณ์เท่านั้น
Ron Maupin

8

เป็นคำถามที่ดีมาก

เต็มเพล็กซ์มีช่องทางเฉพาะสำหรับการรับส่งข้อมูลจาก "ซ้ายไปขวา" และช่องทางเฉพาะจากการจราจรจาก "ขวาไปซ้าย":

ช่องทางเฉพาะ

ดังนั้นในฟูลดูเพล็กซ์การชนจึงเป็นไปไม่ได้แม้ว่า NIC ทั้งสองจะส่งสัญญาณในเวลาเดียวกัน

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


4
สัญญาณจะชนกันบนเส้นลวดแม้จะมีคู่ที่บิดเบี้ยว ด้วยสามโหนดสุดท้ายสัญญาณสองตัวพร้อมกันจะชนกับโหนดที่สาม
Zac67

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

@RonMaupin คุณถูกต้องแน่นอน - ฉันหมายถึงสิ่งที่จะเกิดขึ้นเมื่อ repeater ไม่พบ / ตอบโต้การชน
Zac67

1
@ Zac67 ฉันไม่ได้พูดถึงคุณคุณและฉันก็พูดแบบเดียวกันในเวลาเดียวกัน
Ron Maupin

@ Zac67 / RonMaupin OP แก้ไขคำถามเพื่อยืนยันว่าพวกเขาไม่ได้ถามเกี่ยวกับกรณีของฮับ
Eddie

6

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

วิธีการทำซ้ำนี้เลียนแบบพฤติกรรมของตัวแปรสื่ออีเทอร์เน็ตแบบแบ่งใช้ก่อนหน้า (10BASE5 & 10BASE2) ซึ่งมีการใช้งาน repeater เป็นข้อต่อส่วนทางกายภาพหรือตัวขยายบรรทัดเท่านั้น แน่นอนว่าคุณถูกต้อง: twisted pair เป็นสื่อ full duplex เต็มรูปแบบที่ระดับ wire ซึ่งการชนเกิดขึ้นที่ชั้นกายภาพทางกายภาพเท่านั้นและไม่ได้อยู่ที่ wire นั่นเอง

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

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

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

ด้วยสวิตช์ที่ไม่มีการจัดการ duplex mismatch สามารถตรวจจับได้ยากมากโดยเฉพาะเมื่อไม่แม้แต่โฮสต์ NICs รายงานโหมดดูเพล็กซ์อย่างถูกต้อง

ด้วยสวิตช์ที่มีการจัดการคุณมักจะมีเคาน์เตอร์ข้อผิดพลาดพอร์ต การเพิ่มการชนในด้านหนึ่ง (HDX) และการเพิ่ม runts และข้อผิดพลาด FCS ในอีกด้านหนึ่ง (FDX) เป็นข้อบ่งชี้ที่แข็งแกร่งมากสำหรับการจับคู่แบบสองทาง

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


3

สมมติว่าเครื่อง A เริ่มส่งข้อมูลไปยังเครื่อง B เมื่อเริ่มส่งแพ็กเก็ตเครื่อง C จะเริ่มส่งข้อมูลที่แตกต่างไปยังเครื่อง B มีเส้นทางสัญญาณเดียวไปยังเครื่อง B ดังนั้นการส่งสัญญาณจาก A และ C จะไม่สามารถเกิดการชนกันได้ รับทั้งคู่

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

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