익명 사용자
로그인하지 않음
계정 만들기
로그인
youngwiki
검색
CSMA 문서 원본 보기
youngwiki
이름공간
문서
토론
더 보기
더 보기
문서 행위
읽기
원본 보기
역사
←
CSMA
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
상위 문서: [[Multiple Access Protocols]] ==개요== Sloted ALOHA와 pure ALOHA 프로토콜에서는, 어떤 노드의 전송은 채널에 연결된 다른 노드들의 활동과는 무관하게 독립적으로 이루어진다. 하지만 CSMA 프로토콜에서는 이와는 다른 방식을 사용한다. 이는 아래와 같다: # 노드는 프레임을 전송하기 전에 '''채널이 다른 노드에 의해 사용중인지 청취'''하며, 이를 '''carrier sensing'''이라고 한다. #* 만약 다른 노드가 해당 채널을 사용중이라면, 노드는 이를 기다린 후 프레임 전송을 시작한다. # 전송 중인 노드는 '''채널을 감시하면서, 다른 노드의 프레임이 전송되고 있다는 것을 감지하면 전송을 중단'''하며, 이를 '''collision detection'''이라고 한다. #* 충돌을 감지하여 전송을 중단하였다면, 무작위 시간(delay)를 기다리고, 다시 감지하고, 채널이 비어있다면 전송하는 사이클을 반복한다. 이들 규칙은 CSMA(Carrier Sense Multiple Access) 및 CSMA/CD(Collision Detection 포함)프로토콜들에 구현되어 있다. ===CSMA with Collision Dection (CSMA/CD)=== [[파일:Space-time diagram of CSMA without CD.png|대체글=Figure 1. Space-time diagram of CSMA without CD|섬네일|219x219픽셀|Figure 1. Space-time diagram of CSMA without CD]] CSMA 프로토콜은 언뜻 보기에 충돌이 발생할 가능성이 없어보인다. 하지만 실제로는 여전히 충돌이 발생하며, 그 이유는 figure 1에 나타난 공간-시간(space-time) 다이어그램으로 설명할 수 있다.<ref>수평축은 각 노드의 공간상의 위치를 나타내며, 수직축은 시간의 흐름을 나타낸다.</ref> Figure 1은 네 개의 노드 (A, B, C, D)가 선형 브로드캐스트 버스에 연결된 구조를 보여준다. 시간 t<sub>0</sub>에 노드 B는 채널이 쉬고(idle)있다는 것을 감지하고 전송을 시작한다. 이때 B의 비트들은 브로드캐스트 채널을 따라 양 방향으로 전파된다. Figure 1에서 B의 비트가 시간에 따라 아래로 전파되는 이미지는, 비트가 전파되기 위해 시간이 소요된다는 것을 의미한다. 시간 t<sub>1</sub>일 때에, 노드 D는 노드 B의 비트가 아직 D에 도달하지 않았으므로, 채널이 쉬고있다고 잘못 판단하고 전송을 시작한다. 잠시 후, B의 전송이 D의 전송과 충돌하게 된다. 이는, 전파 지연(propagation delay)가 성능에 중요한 역할을 한다는 것을 보여준다. 전파 지연이 길수록, 다른 노드의 전송을 감지하기 어려워지고 충돌 확률이 증가한다. [[파일:CSMA with collision detection.png|섬네일|219x219픽셀|Figure 2. CSMA with collision detection ]] Figure 1는 노드들이 충돌 감지를 수행하지 않는 상황을 보여준다. 즉, 충돌이 발생하더라도 B와 D는 프레임을 끝까지 전송한다. 하지만 충돌 감지를 수행하는 경우, 노드는 충돌을 감지하는 즉시 전송을 중단한다. Figure 2는 같은 상황에서 충돌 감지로 인해 두 노드가 전송을 중단하는 예시를 보여준다. Collision detect/abort time은 노드가 충돌을 감지하고, 전송을 중단하기까지 걸리는 시간을 의미한다. 충돌 감지를 통한 프레임 전송의 정지는 손상된 프레임 전체를 낭비하지 않고 전송을 도중에 중단하므로, 프로토콜 성능 향상에 도움을 준다. 아래는 위를 바탕으로 한, NIC(네트워크 어댑터)의 관점에서 바라본 CSMA/CD 프로토콜의 동작을 요약한 것이다. # NIC는 네트워크 계층에서 데이터그램을 받아, link layer를 준비하고 버퍼에 저장한다. # 어댑터는 채널이 쉬고(idle)있다면 프레임 전송을 시작한다. 하지만 채널이 사용 중이라면 다른 노드가 전송하는 것이 감지되지 않을 때까지 기다린다. # 프레임 전체를 전송할 때까지, 타 노드의 전송이 감지되지 않으면 성공이고, 반대로 전송 중 타 노드의 전송이 감지되면 전송을 즉시 중단한다. #* 전송을 중단한 경우에는, 무작위 시간을 기다린 다음 2단계부터 다시 시작한다. 이때 고정된 시간이 아니라 무작위 시간을 대기하는 이유는, 같은 시간 동안 계속 대기할 경우, 계속 충돌이 발생하기 때문이다. 이때 무작위 시간 간격을 정하는 것은 또다른 문제이며, 간격이 너무 크다면 활성화된 노드의 수가 적을 때 불필요한 지연을 야기할 수 있고, 간격이 너무 작으면 활성화된 노드의 수가 많을 때 충돌이 재발될 가능성이 높아진다. 이문제를 해결하는 방법이 '''binary exponential backoff'''이다. 해당 방법은 이더넷(Ethernet)과 DOCSIS 케이블 네트워크에서 사용된다. 이는 아래와 같이 작동한다. # 프레임을 전송하는 어떤 노드가 n번의 충돌을 경험하였을 때, 노드는 <code>K ∈ {0, 1, ..., 2<sup>n</sup> − 1}</code>를 만족하는 K를 무작위로 선택한다. #* 즉, 충돌 횟수가 증가함에 따라 K의 최댓값은 기하급수적으로 증가한다. # 해당 노드는 충돌을 감지하면 즉시 전송을 중단하고, 대기 시간을 <code>K × 512 bit times</code>으로 설정한다.<ref>bit times란, 해당 비트 수를 전송하는데 걸리는 시간을 의미한다.</ref><ref>n의 최댓값은 10으로 제한된다.</ref> #* 즉, 충돌 횟수가 증가함에 따라 대기 시간도 증가한다. # 노드가 새 프레임을 전송을 준비할 때는, 이전의 충돌 이력을 고려하지 않고, CSMA/CD 프로토콜 절차를 처음부터 시작한다. ==각주==
CSMA
문서로 돌아갑니다.
둘러보기
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
위키 도구
위키 도구
특수 문서 목록
문서 도구
문서 도구
사용자 문서 도구
더 보기
여기를 가리키는 문서
가리키는 글의 최근 바뀜
문서 정보
문서 기록