노드가 Tx 및 Rx에 서로 다른 회로를 사용하기 때문에 이더넷 충돌이 정확히 어떻게 발생합니까?


13

특히 이중 불일치가 있거나 레거시 이더넷 네트워크에서 두 노드가 동시에 전송하는 경우 이더넷에서 충돌이 발생하는 방식을 이해하려고합니다.

누구나 충돌을 상위 레벨에서 설명합니다 (하나는 전송되고 다른 하나는 수신 될 때 두 프레임이 충돌합니다). 그러나 아래 그래프는 Rx와 Tx에 서로 다른 회로가 있음을 보여줍니다. 프레임 송수신 전용 회로가있어 충돌이 어떻게 발생합니까?

송수신에 다른 회로가 사용됩니다

편집 : 어쩌면 레이블 "허브 MDI-X"내 질문의 요점에 대해 약간의 혼란을 일으킬 수 있습니다. 허브의 기능이 어떻게 충돌을 일으킬 수 있는지 묻지 않습니다. MDI 또는 MDI-X 인터페이스 (허브 및 스위치에는 MDI-X 인터페이스가 있음)를 사용하는 두 노드 간의 통신에 중점을 둡니다. 이 두 경우 중 어느 하나에서 듀플렉스 불일치가 발생했을 때 두 노드간에 충돌이 발생하는 반면, 듀플렉스 불일치가 발생하면 Rx와 Tx는 여전히 전용 회로를 가지고 있습니까?


10Base2 또는 10Base5는 동일한 매체 (예 : 동일한 케이블)를 공유했습니다.
Patrick Terlisten

여전히 이중 불일치가 있고 nodeA가 반이중이고 nodeB가 전이중 인 경우를 대비하여 100base-tx와 관련하여 동일한 질문이 있습니다. nodeA에 MDI 인터페이스가 있고 nodeB에 MDI-X 인터페이스가 있다고 가정하십시오. NodeB는 핀 3과 4에서 전송하고 nodeB는 3과 4에서만 수신합니다. 이러한 핀에서만 수신하므로 nodeA에서 충돌이 발생할 수있는 방법은 무엇입니까?
Christos Dalamagkas

6
충돌은 L2가 아닌 L1에서 발생합니다. 충돌하는 비트 / 캐리어입니다. 두 명의 발신자가 동시에 (가까운) 보내려고 할 때 충돌합니다.
Zac67

답변:


11

이것을 이해하려면 역사적 맥락을 이해해야합니다.

원래 이더넷은 공유 동축 케이블을 사용했습니다. 한 번에 하나의 장치 만 전송할 수 있습니다. 두 장치가 동시에 전송되면 충돌로 간주됩니다.

그런 다음 거리를 확장하고 노드 수를 늘리기 위해 중계기가 나왔습니다. 리피터는 전송중인 포트를 감지 한 다음 다른 포트에서 해당 신호를 반복합니다. 충돌 감지 기능을 유지하려면 중계기에 모든 노드가 충돌을 감지 할 수있는 기능이 있어야합니다. 첫 번째 리피터에는 두 개의 포트만 있었지만 이후의 리피터에는 여러 개의 포트가있을 수 있으며 특히 트위스트 페어 배선과 함께 사용될 때 허브로 알려졌습니다. 중계기는 꽤 멍청한 장치였으며 전기 신호를 재생하지만 그 이상은 거의 없었습니다.

그런 다음 10BASE-T가 나타 났으며 각 방향에 대한 전용 데이터 채널이 있습니다. 그럼에도 불구하고 여전히 기존 모델에 적합해야하므로 기본적으로 동축 케이블을 에뮬레이트하는 "반이중"모드에서 작동했습니다. 신호는 실제로 전선에서 충돌하지 않았지만 트랜시버는 마치 그대로 작동했으며 중계기는 이전과 동일한 단계를 수행하여 네트워크 전체에서 이것이 보이도록했습니다.

트위스트 페어 이더넷은 "전이중"모드를 지원할 수도 있습니다. 이 모드에서는 모든 충돌 관련 하드웨어가 비활성화되고 양쪽 끝은 언제든지 전송할 수 있습니다. 그러나이 모드는 몇 가지 주요 단점을 가져 왔습니다.

  • 리피터 허브와 호환되지 않았습니다. 충돌 감지 메커니즘이 없으면 허브는 동시에 전송하는 두 장치를 처리 할 방법이 없습니다.
  • 링크의 양쪽 끝이 동일한 이중 모드로 설정되어 있지 않으면 나쁜 일이 발생합니다.

이러한 문제로 인해 실제로 10BASE-T 시스템은 거의 항상 반이중 모드로 작동했습니다.

100BASE-TX의 경우 상황이 크게 개선되었습니다. 이더넷 스위치 (기술적으로 빠른 다중 포트 브리지)는 멍청한 리피터 허브를 제거 할 수있을 정도로 가격이 떨어졌습니다. 자동 협상을 통해 네트워크 카드는 오류가 발생하기 쉬운 수동 구성없이 전이중 연결을 설정할 수있었습니다. 크로스 오버 케이블과 함께 두 개의 100BASE-TX NIC를 연결하거나 100BASE-TX NIC를 스위치에 연결하고 수동으로 항목을 재정의하는 단계를 수행하지 않으면 거의 전이중 모드를 협상하게됩니다.

1000BASE-T는 이론적으로 일부 NIC가 지원한다고 주장하는 반이중 모드를 가지고 있으며 기가비트 멀티 포트 리피터에 대한 사양이 있었지만, 누군가가 하나를 판매했다는 증거는 보지 못했습니다. 실제로 기가비트 링크는 거의 전이중 모드에서 실행됩니다.

더 빠른 속도는 반이중 모드를 완전히 포기했습니다.


그리고 무선 이더넷이 도착하고 미디어 충돌이 다시 일어납니다.
OrangeDog

@OrangeDog, Wi-Fi (IEEE 802.11)를 의미하는 경우 무선 이더넷 이 아닙니다 (IEEE 802.3). 프레임이 다르고 CSMA / CD 대신 CSMA / CA를 사용하는 완전히 다른 프로토콜입니다. 두 프로토콜은 매우 다르지만 지원하는 다양한 미디어의 이더넷은 기본적으로 동일합니다.
Ron Maupin

14

허브는 실제로 하나의 인터페이스에서 수신하는 모든 신호를 다른 모든 인터페이스로 반복하는 전원 공급 케이블입니다. 두 장치가 동시에 허브 인터페이스의 수신으로 전송하는 경우 허브는 두 신호를 동시에 다른 모든 허브 인터페이스의 전송으로 반복하고 수신 된 두 신호는 다른 인터페이스의 전송에서 충돌합니다. 다른 두 인터페이스가 동시에 두 개의 신호이므로 가비지 신호를 갖는 충돌이 발생합니다. 동시에 보내고 다른 신호를 듣는 호스트는 한 번에 둘 이상의 신호가 전송되고 있음을 인식하고 충돌이있는 것으로 판단합니다.

이런 식으로 생각하면 모든 허브 인터페이스의 수신은 다른 모든 인터페이스의 전송에 연결됩니다. 허브 내부에서는 인터페이스에서 분리 된 경우에도 송수신이 연결됩니다.

각 링크가 스위치 인터페이스에서 종료되고 스위치에 인터페이스가 서로 연결되어 있지 않은 스위치와는 대조적입니다. 대신 스위치에는 하나의 인터페이스에서 프레임을 수신 할 위치를 결정하고 스위치 내부의 충돌을 방지하는 논리 (일반적으로 하드웨어에 내장)가 있습니다.

스위치는 고밀도 브리지입니다. 원래 브리지는 여러 인터페이스가있는 PC와 같습니다. 여러 인터페이스에서 동시 프레임을 수신 한 경우 여러 인터페이스가있는 PC에서 충돌이 발생할 것으로 예상하지 않습니다.


편집하다:

귀하의 의견은 내가 허브에 대해 위에서 쓴 것을 여전히 이해하지 못한다고 믿게합니다.

UTP 및 허브를 사용할 때 충돌이 감지되는 방식은 전송하는 동안 전송 장치가 다른 신호를 수신하는 것입니다. UTP를 사용하는 장치가 반이중으로 구성되어 있으면 전송하는 동안 신호가 들릴 때 충돌이 있다고 생각합니다.

이중 불일치가있는 경우 전이중으로 구성된 장치는 반이중으로 구성된 장치에서 수신하는 동안 행복하게 보냅니다. 반면, 반이중으로 구성된 장치는 전송시 충돌이 있다고 생각하고 전이중으로 구성된 장치에서 해당 신호를 듣습니다. 반이중으로 구성된 장치가 런트를 발생시키는 프레임 전송을 중지하고 전이중으로 구성된 장치가 예상하지 않는 방해 신호를 보내므로 모든 유형의 문제가 발생합니다. 전이중으로 구성된 장치는 프레임 전송을 중지합니다.


3
이것이 실제 답변입니다. OP는 교차 케이블 (또는 최신 설정에서는 케이블)이있는 단 두 개의 엔드 포인트를 제외한 모든 경우를 무시합니다.
R .. GitHub 중지 지원 얼음 얼음

@ R .., 질문의 그림에는 허브가 표시되어 허브 연결에 응답했습니다.
Ron Maupin

이 답변은 토폴로지에 허브가있을 때 충돌이 발생하는 방식을 설명합니다. 스위치와 PC라고하는 두 개의 노드가있을 때 충돌이 발생할 수 있지만, 하나는 반이중이고 다른 하나는 전이중입니다. 내 질문의 그래프에 표시된 것처럼 Tx 및 Rx에 별도의 회로가 있어도이 경우 충돌이 발생하는 이유는 무엇입니까?
Christos Dalamagkas

"Hub MDI-X"레이블이 내 질문의 요점과 관련하여 약간의 혼란을 야기한 것 같습니다. 그에 따라 편집했습니다.
Christos Dalamagkas

3
반이중을 가진 것은 송신하는 동안 무언가를들을 때 충돌을 선언하기 때문입니다. 위의 답변을 참조하십시오. 반이중으로 구성된 장치가 전송하는 동안 다른 신호를 듣는 경우 반이중이고 한 번에 한 장치 만 전송할 수 있다고 생각하기 때문에 충돌이 있다고 가정해야합니다.
Ron Maupin

8

좋은 질문입니다.

전이 중에는 "왼쪽에서 오른쪽으로"의 트래픽 전용 채널과 "오른쪽에서 왼쪽으로"의 트래픽 전용 채널이 있습니다.

전용 채널

따라서, 전이중에서, 충돌은 불가능하다 - 경우에도 동시에 두 NIC의 전송.

에서 반이중 그러나, 어느 방향 트래픽 만 선, 한 번에 한 방향으로 사용하기위한 것입니다. 따라서 물리적으로는 여전히 전용 채널이 있지만 논리적으로 하나의 NIC가 전송하는 동안 무언가를 수신하면 충돌로 기록합니다. 비트 / 신호는 실제로 와이어에서 "충돌"하지 않습니다 . 충돌 카운터는 NIC가 동시에 수신 및 전송 중일 때 증가합니다.


4
꼬인 쌍이라도 신호가 전선에서 충돌합니다. 세 개의 엔드 노드를 사용하면 두 개의 동시 신호가 세 번째 노드에서 충돌합니다.
Zac67

4
" 비트 / 신호는 실제로 와이어에서"충돌 "하지 않습니다 . 허브에서 문제의 도면에서와 같이 비트는 실제로 와이어에서 충돌하여 가비지 신호를 생성합니다. 동시에 전송하고 다른 신호를 듣는 호스트는 방해 신호를 허브의 다른 모든 인터페이스로 보냅니다.
Ron Maupin

@RonMaupin 물론 정확합니다-리피터가 충돌을 감지 / 반응하지 않을 때 발생할 수있는 일을 언급하고있었습니다.
Zac67

1
@ Zac67, 나는 당신을 위해 언급하지 않았다, 당신과 나는 기본적으로 같은 것을 말했다.
Ron Maupin

@ Zac67 / RonMaupin OP는 허브의 경우에 대해 묻지 않고 있음을 확인하는 질문을 편집했습니다.
Eddie

6

트위스트 페어와 리피터 허브를 갖춘 허브는 디지털 앰프 그 이상입니다. 이를 위해 한 포트의 수신 신호에서 반송파를 감지하고 다른 모든 포트를 출력 모드로 전환합니다. 이 출력 모드에서 추가 수신 캐리어는 충돌입니다. 이는 충돌을 전파하고 발신자가 전송을 중지하도록 방해 신호를 트리거합니다.

이 반복 방법은 리피터가 물리적 세그먼트 조인트 또는 라인 익스텐더로만 사용되었던 이전의 공유 미디어 이더넷 변형 (10BASE5 및 10BASE2)의 동작을 모방합니다. 물론 당신은 맞습니다 : 꼬인 쌍은 전선 자체가 아닌 상부 물리층에서만 충돌이 발생하는 전선 레벨의 전이중 매체입니다.

리피터는 동시에 둘 이상의 발신자를 허용 할 수 없습니다. 여러 개의 동시 전송이 출력 포트에서 혼합되어 이해할 수없는 잡음이 발생합니다. 마찬가지로, 반이중 모드의 모든 노드는 전이중 전송이 불가능한 공유 매체를 가정합니다. 전송 중에 감지 된 모든 캐리어는 충돌로 인해 발신자가 백 오프됩니다. 매체가 전이중 가능 (파이버, 트위스트 페어)인지 아닌지 (동축)는 중요하지 않습니다.

이중 불일치로 인해 하나의 링크 끝은 반이중 모드에 있고 다른 하나는 전이중 모드에 있습니다. 이제 반이중 (HDX) 쪽이 전송 중일 때 수신기의 모든 반송파로 인해 충돌이 감지됩니다. 그러나 전이중 (FDX) 쪽이 HDX 쪽에서 수신하는 동안 행복하게 전송되고있을 수 있으며, 먼 쪽에서 발생하는 충돌을 완전히 알 수 없습니다. HDX 측은 전송을 중단하고 잼 신호를 보냅니다. FDX 측은 의심되는 충돌을 감지 할 수 없기 때문에 부분적으로 손상된 프레임을 감지합니다.

저주파와 작은 프레임은이 이중 불일치를 극복 할 수있는 합리적인 기회를 가지므로 ping실제로 작동 할 수 있습니다. 그러나 심각한 전송이 진행 되 자마자 더 높은 프레임 주파수와 더 큰 크기는 전송이 매우 안정적으로 실패하게합니다.

관리되지 않는 스위치를 사용하면 특히 호스트 NIC조차도 이중 모드를 제대로보고하지 않는 경우 이중 불일치를 감지하기가 매우 어려울 수 있습니다.

관리되는 스위치에는 일반적으로 포트 오류 카운터가 있습니다. 한쪽에서 충돌을 증가시키고 (HDX) 다른 쪽에서 런트와 FCS 오류를 증가시키는 것은 이중 불일치에 대한 매우 강력한 표시입니다.

기본적으로 자동 협상에 의존하는 것은 이중 불일치를 피하기위한 매우 좋은 방법입니다. 속도와 이중 모드를 수동으로 구성하면 일반적으로 특히 몇 년 후에 장비를 교체 할 때 불일치가 발생하기 쉽습니다. 다행스럽게도 반이중 방식 전체가 기가비트 이더넷으로 더 빨라졌습니다.


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.