티스토리 뷰

이번 포스팅의 주제는 매체 접근 제어 방식입니다:) 👩‍🏫

먼저 매체 접근 방식이 필요한 이유, 등장 배경부터 말씀드리겠습니다. 

LAN에서는 여러대의 컴퓨터가 하나의 통신회선을 공유하기 때문에, 전송 매체들의 전송을 제어하지 않으면 데이터 충돌이 발생하여(너도나도 데이터를 보내려고 하기 때문에) 신뢰성 있는 통신을 할 수 없습니다. 

데이터 충돌을 방지하기 위해 LAN에 연결된 모든 장치는 앞으로 소개할 특정한 규칙에 따라 전송 매체에 접근하는데요, 이것을 매체 접근 제어(Media Access Control) 이라고 합니다. 

이는 프레이밍, 흐름제어, 오류 제어 등 데이터의 접근을 제어하는 데이터 링크층에서 수행합니다. 

다중 접근을 한마디로 비유해보자면 아래와 같습니다😉

 

다중 접근(Multiple Access)

트래픽을 정상적으로 전송하기 위한 신호등같은 기능을 수행

 

그럼 아래 그림에 나와있는 다중 접근 제어의 여러 종류부터 볼게용

 

 

 

다중 접근 제어의 첫번째 방식은 임의접근 제어방식인데요, 임의 접근 프로토콜 중 대부분이 LAN이나 WAN(이후 포스팅에서 언급 예정)에 사용되므로 이 방식을 자세하게 다뤄보겠습니다!(나머지 방식들은 잘 안쓰여용..)

Random-access protocol

: 임의 접근 제어 방식 or 경쟁 방식이라고 부르는 접근 제어 방식입니다. 

임의 접근 제어 방식이라고 하는 이유는 기기들이 전송하는 데에 시간표가 없고, 랜덤하게 전송이 일어나기 때문입니다. 

또, 경쟁 방식이라고 하는 이유는 어느 지국(기기)이 다음번에 전송해야 하는지 아무런 규칙이 없고, 그래서 지국들이 매체에 접근하기 위해 서로 "경쟁"하기 때문입니다.

이렇게 임의 접근 방식에서는 각 지국이 다른 지국의 간섭을 받지 않고 매체에 접근할 권한이 있습니다.

하지만 2개 이상의 지국이 동시에! 전송하려고 하면 각 지국에서 보낸 프레임들이 충돌해서 그 내용이 손상될 수가 있어요😥

 

그래서 탄생한 해결방안이 바로 ALOHA(프레임 충돌 해소방안 마련), CSMA(매체 감지 다중 접근)-> CSMA/CD, CSMA/CA 입니다😀

위 그림에서 MA(Multiple Access)란 다중접근으로 보낼 프레임이 있는 모~든 지국이 다 프레임을 송신하는 접근 방법을 말합니다.

여기에는 ALOHA 프로토콜이 해당돼요.

한편 이 MA에서는 모든 지국들이 자기가 프레임을 보내고 싶으면 앞뒤 안가리고 순차적으로 그냥 다~ 보내기 때문에, 여러 지국이 한 공유 링크에 접근하는 상황에서 충돌이 발생할 위험이 아쥬우 큽니다😂

그래서 이를 보완하기 위해 프레임 전송 전 매체를 누가 쓰고있나 없나를 확인하는 과정을 추가한 것이 CSMA 방식이에요! 

 

그럼 대략적인 임의 접근 방식의 발전 과정 설명이 끝났으니 이제 알로하부터 좀 더 깊게 살펴보도록 할게요😊

1. ALOHA

: 가장 오래된 매체 접근 제어 방식으로 1970년대 초반 하와이 대학에서 개발되었기 때문에 이름이 알로하라고 합니다 크크 역시 tmi가 제일 재밋숨당

Aloha에는 순수 Aloha와 슬롯 Aloha가 있는데요, 먼저 순수 Aloha부터 설명할게용

순수 알로하의 아이디어 각 지국이 전송할 프레임이 있다면 언제든지! 전송한다는 것입니다.

하지만 이러한 아이디어 때문에 서로 다른 지국에서 전송한 프레임들이 충돌할 수 있어요.

아래 그림이 그 충돌 상황을 잘 보여주고 있습니다.

맥그로힐 데이터 통신과 네트워킹 p.336

위 그림에서 동그라미 친 프레임만 살아남습니다. 

그럼 순수 ALOHA 프로토콜에서는 어떻게 이 충돌을 해결할까요?

-> 이 친구는 수신자가 프레임을 잘 받았다는 응답에 의존합니다.

만약 응답이 타임아웃 시간이 지날 때 까지 오지 않으면 지국은 프레임/응답이 전송 도중 망가졌다고 판단하고 프레임을 다시 전송합니다!

 

하지만 순수 ALOHA는 충돌 발생 위험이 커도 너무 크다!는 단점이 있어서 이를 보완한 ALOHA가 나왔고, 그게 바로 슬롯 ALOHA입니다.

슬롯 ALOHA는 순수 ALOHA의 효율을 높이기 위해 발명되었습니다. 

그럼 슬롯 ALOHA가 어떻게 충돌 발생 위험을 줄여주는지 봐야겠죠? 

위 그림을 보시면 순수 ALOHA는 시간을 슬롯 단위로 나누어 지국이 아무때나 전송하는 것이 아니라 시간 슬롯이 시작할때만 전송하도록 규제하는 걸 보실 수 있어요👀

지국은 동기화된 시간 슬롯이 시작될 때에만 프레임을 전송할 수 있기 때문에 그 순간을 놓치면 다음 슬롯이 시작할 때 까지 기다려야 합니다!

이 방식은 정해진 시간에만 프레임을 보내 순수 ALOHA 보다는 충돌 발생 위험을 줄였지만, 여전히 매체에 뭐가 있는지 확인하지 않고 프레임을 보내기 때문에 여전히 충돌의 위험이 크다고 할 수 있습니다.

그래서! 충돌의 기회를 최소화 하기 위해 등장한 방법이 아래에 소개할 CSMA 방식입니다.

 

2. CSMA(Carrier Sense Multiple Access)

= 전송 이전에 감지! (매체를 누가 쓰고 있나 안쓰고 있나를 감지합니당👀)

이를 통해 충돌의 가능성을 줄일 수 있습니다.

그럼 만약 어떤 지국이 프레임을 보내고 싶은데 매체가 이미 사용중이라면 어떻게 할까요?

또 매체가 사용중이었다가 해당 작업이 다 끝나고 비게되면 어떻게 할까요? 

네 지국이 자기 프레임을 언제 넣을지 그 각을 보는 3가지 방법이 있고, 이제 그 방법을 말씀드리겠습니다 :)

 

위 그림들을 보시면 쪼금 감이 오실꺼 같은데요

먼저 1지속성 전략: 매체를 계~~속 감지하면서 애가 사용중이 아니면 프레임을 그 즉시! 전송합니다

비지속성 전략: 계속 확인하는 건 아니고 랜덤하게 매체의 사용여부를 확인하는 방식이에요

p-지속성 전략: 매체 계속~~속 감지하다가 애가 사용중이 아닐 때 랜덤한 p의 확률로 프레임을 전송합니다.

 

CSMA는 이렇듯 ALOHA 처럼 일방적으로 프레임을 와다다 보내는게 아니라 매체의 사용여부를 확인하고 프레임을 전송한다는 점에서 충돌 확률을 낮춘데에 의의가 있지만,

전파 지연시간 때문에 충돌이 발생할 수 있는데 그 충돌에 대한 해결 방안은 딱히 제시하고 있지 않아여

 

그래서 나온게 바로 CSMA/CD 입니다!

CSMA/CD(Carrier Sence Multiple Access / Collision Detection)

CS (Carrier Sence) 네트워크가 사용중인지 알아낸다.
MA (Multiple Access) 네트워크가 비어 있으면 누구든 사용 가능하다.
CD (Collision Detection) 메세지를 전달하면서 충돌 여부를 살펴본다.

 

한 줄 요약: "전송 전 채널 감지 + 충돌 생기면 jamming signal 보내기" 

CSMA방식의 전파지연시간 문제를 해결하기 위해 고안된 프로토콜으로 CSMA방식에 충돌을 처리하는 절차가 추가됐습니다. 

Ethernet에서 사용되며, 프레임이 목적지에 도착할 시간 이전에 다른 프레임의 비트를 받는다면 충돌이 일어난 것으로 판단합니다.

CSMA/CD 의 동작 과정은 아래와 같습니다. 

1. 채널 감지 : 송신전 채널 사용 여부 감지

2. 이미 회선이 사용중이면 1지속 비지속 지속 방식 중 한가지로 1번 반복

3. 데이터 전송 : 회선 비어있다면 즉시 데이터 전송, 전송동안 채널 감시 및 전송중 데이터 충돌 발생 여부 지속적 조사

4. 충돌 탐지 : 충돌 감지시 전송 중단, Jam 신호로 충돌 발생 통보

(jam 신호는 32비트에서 48비트의 길이를 갖는 특수한 프레임입니당)

5. 충돌탐지 후 지연(Back Off) : 일정 시간 후 재전송 시도(충돌발생 시 Back off 시간 2배씩 증가, 최대 16회 반복)

->  왜? 대기하지 않고 바로 전송을 시도했을 때 충돌을 일으킨 노드와 다시 충돌할 가능성이 높기 때문에 일정 시간 대기 후 전송하는 방식 사용!

 

CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance) = 충돌 회피

한 줄 요약: 프레임 보내기 전에 최대한 충돌을 피하려고 조심하는 방법!

CS (Carrier Sence) 네트워크가 사용중인지 알아낸다.
MA (Multiple Access) 네트워크가 비어 있으면 누구든 사용 가능하다.
CA (Collision Avoidance) 메세지 전달 전 전송을 늦추어 충돌을 회피한다.

CSMA/CA는 IEEE 802.11 무선 LAN에서 사용하는 프로토콜입니다.

무선 네트워크에서는 충돌을 감지하기 힘들기 때문에 CSMA/CD 대신 CSMA/CA를 사용해용

상대의 busy를 체크하다가 free상태가 되어도 즉시 프레임을 보내지 않고 IFS(Interframe Space)라고 불리는 일정 시간을 기다린 후 전송하게 됩니다.

 

그럼 이 IFS란 뭘까요?

 

IFS(Inter Frame Space) - 충돌 회피 방법 1

여기서는 채널이 휴지 상태인 것으로 확인되더라도 전송을 늦추어서 충돌을 회피합니다. 

지국은 보내고 싶은 프레임을 바로 보내지 않고 IFS라 불리는 일정 시간을 기다립니다.

왜냐? 채널을 감지했을때 휴지상태인 것처럼 보일지라도 멀리 떨어진 지국이 이미 전송을 시작했을지 모르기 때문이죠. 

이런 경우 기다리지 않고 전송을 해버리면 충돌이 일어날 수 있으므로 IFS동안 기다리게 됩니다. 

CSMA/CA에서 IFS는 지국이나 프레임의 우선순위를 규정하는 것에도 사용될 수 있습니다.

예를 들어 더 짧은 IFS시간을 갖도록 허락된 지국은 다른 지국에 비해 높은 우선순위를 갖는 방식입니다.(기다리는 시간이 짧으므로 먼저 프레임을 보낼 수 있도록)

 

IFS 말고도 충돌회피 방법이 하나 더 있는데요, 바로 Conection window(경쟁 구간) 입니다.

 

Contention window(경쟁 구간) - 충돌 회피 방법 2

Contention Window는 time-slot 으로 나뉘어져 있는 일정 시간입니다.

전송할 준비가 되어있는 지국은 임의의 수를 선택하여 그만큼 기다립니다. 

이 구간에서는 지국이 매 time-slot 뒤에 채널을 감지하게 됩니다.이때 채널이 사용 중인 것으로 감지하면 지국은 이 과정을 다시 시작하는 것이 아니라 타이머를 멈추고 채널이 비었다고 감지되면 그 때 다시 타이머를 재개합니다. 

즉 지국 별로 타이머가 있고, 이로 인해 가장 오래 기다린 지국이 우선 순위를 갖게 됩니다. 

 

마지막으로 CSMA/CA 에서는 수신자가 프레임을 수신 받았다는 것을 확인하는 방법으로 긍정 응답(ACK= 프레임 잘 받았어요~)과 타임 아웃(일정 시간 내에 프레임을 수신받지 못하면 문제가 생겼음을 인지) 방법을 사용합니다.

 

+ 아래의 CSMA/CD 와 CSMA/CA  비교표도 참고하시면 좋을 것 같습니다:)

 

이번 포스팅에서는 매체 접근 제어 방식 중 가장 많이 사용되는 임의 접근 제어 방식에 대해 알아보았는데요,

다들 도움이 되셨다면 좋겠습니다!

또 피드백은 언제나 환영입니다!😊

 

댓글