본 포스팅은 두 개의 글로 구성되어 있습니다.
CSMA, CSMA/CD, CSMA/CA 란 ? (1)
CSMA, CSMA/CD, CSMA/CA 란 ? (2)
여러 개의 호스트가 하나의 매체 / 채널을 공유할 때는 두 개 이상의 호스트가 동시에 채널을 사용할 경우 전기신호의 충돌로 인해 통신을 할 수 없게 된다. 따라서 두 개 이상의 호스트가 채널을 공유할 땐 원활한 통신을 위해 상호간에 약속이 필요하다.
현재는 사용하는 빈도 수가 적은 Bus형 Topology 형태의 네트워크나 허브를 통해 구성된 LAN의 경우가 바로 매체를 공유하는 대표적인 예이다. 추가적으로, 무선통신의 경우에도 매체를 공유한다고 볼 수 있다.
공유된 채널에 접근하기 위한 프로토콜 중에서 Random Access 방식에 속하는 프로토콜에는 ALOHA, CSMA, CSMA/CD, CSMA/CA가 있다. 여기서 말하는 Random Access 는 Contention Based Access 와 같다.
이 Random Access 라는 것은 어떤 노드도 다른 노드들보다 우선순위가 높지 않으며, 다른 노드를 제어할 수 없다는 것을 의미한다. 매 순간 전송할 데이터가 있는 노드는 전송 여부를 결정하기 위해 프로토콜에서 정해진 절차를 준수한다. 이 결정 여부는 매체의 상태가 idle 인지 busy인지에 따라 좌우된다. 즉, 각 노드들은 매체의 상태를 확인하는 것을 포함한 미리 정해진 절차를 따라서 매체 상태에 영향을 받아 자신이 전송하고자 할 때 전송할 수 있다.
따라서 두 개 이상의 노드가 동시에 전송하려고 한다면 접근에 대한 간섭-충돌로 이루어지며 이로 인하여 프레임이 손상되거나 변형될 수 있다.
CSMA (Carrier Sense Multiple Access)
각 노드가 매체를 사용하려고 시도하기 전에 매체의 상태를 감지하게 되면 충돌의 기회를 줄일 수 있다.
CSMA는 각 노드가 전송하기 이전에 먼저 매체의 상태에 집중을 요구한다. 즉, "전송 전 감지" 원칙을 기반으로 두고 있다. 하지만 CSMA는 충돌의 가능성을 줄일 수 있는 기법이지 완전히 충돌을 제거할 수 있는 기법이 아니다.
노드가 매체의 상태를 감지하여 idle한 상태를 확인한다고 해도 다른 노드가 전송한 프레임의 첫 번째 bit가 아직 도달하지 않았을 수도 있다. 이는 Propagation Delay (전파 지연) 때문이며 CSMA의 한계점이다. 즉, 프레임이 전송되는 시간차 때문에 idle한 것을 감지하고 나서 프레임을 전송하는 경우 다른 노드에서 보낸 프레임이 도착하여 두 프레임이 충돌되는 현상이 발생될 수 있다는 의미이다.
※ 지속 방식 (Persistent Mechanism) : 채널이 사용 중이거나 휴지 상태일 때 어떻게 행동하는지에 관한 방식
(1) 1-persistent
노드가 채널의 상태를 지속적으로 확인하다가 idle한 상태인 것을 감지하게 되면 즉각 프레임을 전송한다. 이 방식에선 두 개 이상의 노드가 채널이 idle한 상태인 것을 감지할 것이고 만약 그럴 경우, 모두 즉각 프레임을 전송하기 때문에 충돌 위험이 가장 높다.
(2) non-persistent
전송할 프레임이 있는 노드가 채널을 감지하여 idle한 상태에 있으면 즉시 프레임을 전송한다. 만약 채널이 busy하다면 무작위 시간 동안 대기한 후 다시 채널을 감지한다. 이 방식은 두 개 이상의 노드가 같은 시간을 대기하고 있다가 동시에 전송할 확률이 낮기 때문에 충돌의 위험도는 낮다. 하지만 전송할 프레임을 가진 노드가 있음에도 채널이 idle한 상태에 있을 수 있기 때문에 채널 효율이 낮다.
(3) p-persistent
1-persistent처럼 지속적으로 채널을 감지하다가 채널이 idle한 상태가 되는 순간 p 확률로 프레임을 전송한다. (q=1-p)
p가 1이면 즉각 프레임 전송 확률, p 가 1이 아니라면 q 확률 만큼 Time Slot 동안 기다리다가 채널을 다시 감지한다.
위 (1), (2) 방식을 합친 방식이며 충돌 위험을 줄이면서 채널 효율을 높이는 방식이다.
다음 포스팅으로 이어집니다.
CSMA, CSMA/CD, CSMA/CA 란 ? (2)
'네트워크 개념' 카테고리의 다른 글
Network Delay의 4가지 종류 (0) | 2019.08.15 |
---|---|
변조(Modulation)의 정의와 변조의 방식 (0) | 2019.08.15 |
CSMA, CSMA/CD, CSMA/CA 란? (2) (0) | 2019.08.14 |
RIP, OSPF 프로토콜이란 ? (0) | 2019.08.14 |
Floating Point Precision (부동 소수점) 과 Fixed-point Precision (고정 소수점) (0) | 2019.08.01 |