반송파 감지 다중 접속 및 충돌 탐지

반송파 감지 다중 접속 및 충돌 탐지(carrier sense multiple access with collision detection, CSMA/CD)는 초기 이더넷 기술에서 근거리 통신망을 위해 가장 두드러지게 사용된 매체 접근 제어 (MAC) 방식이다. 다른 스테이션이 전송하지 않을 때까지 전송을 미루기 위해 반송파 감지를 사용한다. 이는 전송 스테이션이 프레임을 전송하는 동안 다른 스테이션의 전송을 감지하여 충돌을 탐지하는 충돌 탐지와 결합하여 사용된다. 이러한 충돌 조건이 탐지되면, 스테이션은 해당 프레임 전송을 중단하고, 재밍 신호를 전송한 다음, 프레임을 재전송하기 전에 무작위 시간 간격을 기다린다.

CSMA/CD는 순수 반송파 감지 다중 접속 (CSMA)의 변형이다. CSMA/CD는 충돌이 감지되는 즉시 전송을 종료하여 재시도를 시도하기 전에 필요한 시간을 단축함으로써 CSMA 성능을 향상시키는 데 사용된다.

1990년대 이더넷 스위치의 인기가 증가함에 따라, IEEE 802.3은 2011년에 이더넷 리피터를 더 이상 사용하지 않게 되었고, 이로 인해 CSMA/CD와 반이중 통신(half-duplex)은 덜 일반적이고 덜 중요해졌다.

절차
섬네일|right|600px|감지된 충돌을 해결하는 데 사용되는 재전송 로직을 포함한 CSMA/CD의 간소화된 알고리즘

전송을 시작하기 위해 다음 절차가 사용된다. 프레임이 성공적으로 전송되거나 전송 중에 충돌이 감지되면 절차가 완료된다.
 전송 준비가 된 프레임이 있는가? 없으면, 프레임을 기다린다.
 매체가 유휴 상태인가? 그렇지 않으면, 준비될 때까지 기다린다.
 전송을 시작하고 전송 중 충돌을 모니터링한다.
 충돌이 발생했는가? 그렇다면, 충돌 감지 절차로 이동한다.
 재전송 카운터를 재설정하고 프레임 전송을 완료한다.

감지된 충돌을 해결하기 위해 다음 절차가 사용된다. 재전송이 시작되거나 많은 충돌로 인해 재전송이 중단되면 절차가 완료된다.
 모든 수신기가 충돌을 감지하도록 최소 패킷 시간에 도달할 때까지 전송을 계속한다(프레임 헤더/데이터/CRC 대신 재밍 신호로).
 재전송 카운터를 증가시킨다.
 최대 전송 시도 횟수에 도달했는가? 그렇다면, 전송을 중단한다.
 충돌 횟수를 기반으로 무작위 백오프 기간을 계산하고 기다린다.
 1단계의 주 절차로 다시 들어간다.

충돌 감지 방법은 매체에 따라 다르다. 10BASE5 또는 10BASE2와 같은 공유 전기 버스에서는 전송된 데이터와 수신된 데이터를 비교하거나 버스에서 정상보다 높은 신호 진폭을 인식하여 충돌을 감지할 수 있다. 다른 모든 매체에서는 전송 중에 수신 채널에서 감지된 반송파가 충돌 이벤트를 트리거한다. 리피터 또는 허브는 자체적으로 충돌을 감지하고 재밍 신호를 전파한다.

충돌 복구 절차는 만찬 파티에서 모든 손님이 공통 매체(공기)를 통해 서로 이야기하는 상황에 비유할 수 있다. 말하기 전에 각 손님은 정중하게 현재 연사가 끝날 때까지 기다린다. 두 손님이 동시에 말하기 시작하면, 둘 다 멈추고 짧고 무작위적인 시간(이더넷에서는 이 시간이 마이크로초 단위로 측정됨)을 기다린다. 각 손님이 무작위 시간을 선택함으로써, 둘 다 다시 말하기를 시도하는 동일한 시간을 선택하지 않아 또 다른 충돌을 피할 수 있기를 바란다.

재밍 신호
재밍 신호 또는 잼 신호는 데이터 스테이션이 다른 전송 스테이션에 충돌이 발생했으며 전송해서는 안 된다는 것을 알리기 위해 보내는 신호로, 32비트 이진 패턴을 전달한다.

최대 재밍 시간은 다음과 같이 계산된다. 이더넷 설치의 최대 허용 직경은 232비트로 제한된다. 이는 464비트의 왕복 시간을 만든다. 이더넷의 슬롯 타임이 512비트이므로, 슬롯 타임과 왕복 시간의 차이는 48비트(6바이트)이며, 이것이 최대 재밍 시간이다.

이는 차례로 다음을 의미한다. 충돌이 발생했음을 감지한 스테이션은 16개의 1-0 비트 조합으로 구성된 4~6바이트 길이의 패턴을 전송한다.

이것의 목적은 현재 프레임을 수신하고 있는 다른 노드가 올바른 32비트 MAC CRC 대신 재밍 신호를 수신하도록 보장하는 것이다. 이로 인해 다른 수신기는 CRC 오류로 인해 프레임을 폐기하게 된다.

지연 충돌
지연 충돌은 해당 프로토콜 표준에서 허용하는 것보다 패킷의 더 나중 단계에서 발생하는 충돌 유형이다. 10메가비트/초 공유 매체 이더넷에서 전송 스테이션이 데이터를 전송한 처음 512비트 이후에 충돌 오류가 발생하면, 지연 충돌이 발생했다고 한다. 중요하게도, 지연 충돌은 처음 64옥텟 이전에 발생하는 충돌과 달리 NIC에 의해 재전송되지 않는다. 데이터 손실이 있었는지 여부를 결정하는 것은 프로토콜 스택의 상위 계층에 맡겨진다.

정확하게 설정된 CSMA/CD 네트워크 링크는 지연 충돌이 발생하지 않아야 하므로, 일반적인 원인은 전이중/반이중 불일치, 초과된 이더넷 케이블 길이 제한, 또는 잘못된 케이블링, 네트워크 내 허브 수 불일치 또는 불량 NIC와 같은 결함 있는 하드웨어이다.

로컬 충돌
로컬 충돌은 전송선이 아닌 NIC에서 발생하는 충돌이다. NIC는 정보를 전송하려는 시도 없이는 로컬 충돌을 감지할 수 없다.

UTP 케이블에서 로컬 충돌은 스테이션이 TX 쌍으로 전송하는 동시에 RX 쌍에서 신호를 감지할 때만 로컬 세그먼트에서 감지된다. 두 신호가 다른 쌍에 있기 때문에 신호에 특성 변화는 없다. 충돌은 스테이션이 반이중 모드로 작동할 때만 UTP에서 인식된다. 이와 관련하여 반이중과 전이중 작동의 유일한 기능적 차이는 전송 및 수신 쌍이 동시에 사용될 수 있는지 여부이다.

원격 충돌
반이중 매체(10BASE5 또는 10BASE2)를 통한 CSMA/CD 컴퓨터 망에서 원격 충돌은 최소 길이보다 짧은 프레임이 전송될 때 발생한다. 이 프레임은 원격 끝에서 송신기가 감지할 수 없는 충돌을 유발할 수 있으므로, 프레임은 물리 계층에서 재전송되지 않는다. 매체 간섭으로 인해 데이터가 손상되고 프레임 체크 시퀀스가 실패하여 가능한 경우 상위 계층에서 복구가 필요하다.

채널 점유 효과
채널 점유 효과는 공유 매체의 한 사용자가 상당한 시간 동안 매체를 "점유"하는 현상이다. 이 기간(일반적으로 16프레임) 동안 다른 사용자는 매체 사용이 거부된다. 이 효과는 이더넷에서 CSMA/CD를 사용하는 네트워크에서 처음 관찰되었다. 이 효과 때문에 가장 데이터 집약적인 연결이 다중 접속 무선 채널을 지배한다. 이는 이더넷 링크에서 노드가 링크에서 "후퇴"하고 다시 접근하려고 시도하는 방식 때문에 발생한다. 이더넷 프로토콜에서 통신 충돌이 발생하면(매체 사용자 두 명이 동시에 전송하려고 할 때), 각 사용자는 링크에 다시 접근하기 전에 무작위 시간 동안 기다린다. 그러나 사용자는 링크에 연속적으로 접근하려고 시도한 횟수에 비례하는 무작위 시간 동안("후퇴") 기다린다. 채널 점유 효과는 한 사용자가 계속해서 링크를 "차지"할 때 발생한다.

예를 들어, 사용자 A와 사용자 B가 동시에 조용한 링크에 접근하려고 시도한다. 충돌을 감지했으므로, 사용자 A는 0에서 1 시간 단위 사이의 무작위 시간 동안 기다리고 사용자 B도 마찬가지이다. 사용자 A가 더 낮은 백오프 시간을 선택했다고 가정해보자. 그러면 사용자 A는 링크를 사용하기 시작하고 B는 A가 자신의 프레임 전송을 마칠 때까지 기다린다. 사용자 A가 여전히 보낼 것이 있다면, 사용자 A와 사용자 B는 또 다른 데이터 충돌을 유발할 것이다. A는 다시 0에서 1 사이의 무작위 백오프 시간을 선택하겠지만, 사용자 B는 0에서 3 사이의 백오프 시간을 선택할 것이다. 이는 B가 연속으로 두 번째 충돌을 겪었기 때문이다. A가 다시 이 충돌에서 "승리"할 가능성이 높다. 이 상황이 계속되면, A는 대부분의 충돌 전투에서 승리할 것이고, 16번의 충돌(사용자가 장시간 동안 물러서기 전의 시도 횟수) 후에는 사용자 A가 채널을 "점유"하게 될 것이다.

하나의 노드가 전체 매체를 점유하는 능력은 노드 수가 증가함에 따라 감소한다. 이는 노드 수가 증가할수록 "다른" 노드 중 하나가 점유 노드보다 더 낮은 백오프 시간을 가질 확률이 높아지기 때문이다.

채널 점유 효과는 한 스테이션이 전송하는 동안 다른 스테이션이 계속해서 후퇴하여 단기적인 불공정 상황을 초래하는 상황을 만든다. 그러나 한 스테이션이 전송을 마치면 모든 스테이션이 매체를 "점유"할 기회를 가지므로 장기적으로는 공정하다. 한 노드가 채널을 점유하면 채널의 효율성은 증가한다.

점유 효과의 부정적인 부작용은 스테이션이 후퇴함에 따라 발생하는 유휴 시간이다. 한 스테이션이 매체에서 전송을 마치면 다른 모든 스테이션이 계속 후퇴했기 때문에 긴 유휴 시간이 발생한다. 어떤 경우에는 백오프가 너무 길어서 일부 스테이션은 최대 시도 횟수에 도달했기 때문에 실제로 패킷을 폐기하기도 한다.

응용
CSMA/CD는 현재는 사용되지 않는 공유 매체 이더넷 변형(10BASE5, 10BASE2)과 리피터 허브를 사용했던 연선 이더넷의 초기 버전에서 사용되었다. 스위치와 전이중 연결로 구축된 현대 이더넷 네트워크는 더 이상 CSMA/CD를 사용할 필요가 없다. 이는 각 이더넷 세그먼트, 즉 충돌 도메인이 이제 격리되어 있기 때문이다. CSMA/CD는 이전 버전과의 호환성과 반이중 연결을 위해 여전히 지원된다. 모든 이더넷 변형을 정의하는 IEEE 802.3 표준은 역사적인 이유로 802.3-2008까지 "반송파 감지 다중 접속 및 충돌 탐지(CSMA/CD) 접근 방식 및 물리 계층 사양"이라는 제목을 유지했지만, 그 이후에는 "이더넷용 IEEE 표준"이라는 새로운 이름을 사용한다.

 같이 보기 
 반송파 감지 다중 접속 및 충돌 회피 (CSMA/CA)
 토큰 전달, 더 결정론적인 다중접속

내용주

 각주 

 
 IEEE 802.3

분류:이더넷
분류:매체 접근 제어