SW/네트워크

네트워크 : 다중접속 프로토콜 개념과 종류

얇은생각 2020. 9. 29. 07:30
반응형

다중 접속

Multiple Access라고 부릅니다. 이 매체에 여러 대의 컴퓨터들이 접속해서 데이터를 보내고자 할 때 문제가 발생할 수가 있습니다

일상생활에서 공기라는 매체를 다 공유하고 있습니다. 여러 친구이랑 이야기를 하다보면 A라는 친구가 이야기하고 B라는 동시에 이야기를 하게 되면 서로 말이 섞입니다. 그럴 경우에 조정이 필요하게 됩니다. 

하물며, 컴퓨터는 지능이 없습니다. 데이터를 보냈을 때 섞여버리면 구분해낼 수가 없습니다. 사람 간에도 두 사람이 동시에 얘기하면 대충 상대방이 무슨 얘기를 했는지 들을 수가 있는데, 구분해낼 수가 있습니다.

물론 이야기가 길어지면 내가 처리를 못하니까 무슨 말인지 모를 수도 있지만 여러 개의 컴퓨터들이 혹은 사람들이 하나의 매체를 서로 공유할 때 발생하는 문제들이 해결이 되야 됩니다.

그러지 않고서는 데이터가 섞여버려서 즉, 데이터가 깨져서 무슨 말인지 알아듣지 못합니다. 이렇게 멀티플 개의 컴퓨터들이 매체에 접근 엑세스하는데 관련된 문제들을 다중접속이라고 부르고 있습니다. 다중접속은 주로 어느 계층에서 관심을 많이 가지냐 하면 데이터링크 계층에서 관심을 가지고 있습니다.

데이터링크계층에서 가장 중요한 기능은 에러제어입니다. 그 외에도 흐름제어, 접근제어라는게 있었는데, 이 다중접속에서는 이야기하는게 주로 접근제어 관련된 내용입니다.

그래서 이 다중접속은 데이터링크 계층을 다시 두 개로 나누었습니다. 데이터링크 계층이 가져야할 공통적인 기능들을 데이터 링크 컨트롤이라고 빼놓고, 그 다음에 매체의 종류가 많습니다. 종류가 너무 많으니까 매체마다 해야 될 일들을 따로따로 규정을 해야합니다. 이를 멀티플 엑세스와 관련된 것으로 규정을 해놨습니다.

 

 

네트워크 : 다중접속 프로토콜 개념과 종류

 

이제 이렇게 매체를 공유하는 환경에서 통제를 해야 합니다. 어떻게 잘 조정해서 관련된 문제를 해결하거냐? 라는걸 크게 3가지로 분류를 할 수 있습니다하나는 랜덤엑세스라는 방식, 그게 ALOHA, CSMA, CSMA/CD, CSMA/CA 이런 것들로 나타났습니다.

그 다음에 컨트롤드 엑세스라고 하는 방법은 예약하는 방법, 폴링방법, 토큰을 사용하는 방법으로 나누어 졌습니다. 그 다음에 채널을 나눠서 사용하는 방법으로 FDMA, TDMA, CDMA 이렇게 3가지로 분류를 했었습니다

그래서 전부가 멀티플 엑세스에 관련된 프로토콜이다 라고 이야기 할 수 있습니다.

 

 

 

무작위 접근

무작위 접근, Random Access라고 하는 것은 주종관계가 없습니다. 대등한 관계에서 매체를 언제 엑세스 할 수 있을지 모릅니다. 그러니까 랜덤하게 엑세스할 수 있는 겁니다. 내가 정해놓고 엑세스하는 것이 아니라 접속된 있는 컴퓨터가 자기가 하고 싶을때 하는거니까 아무 때나 할 수 있는 것입니다.

그래서 이제 랜덤엑세스라고 하고 먼저 데이터를 치고간 컴퓨터가 먼저 우선권을 가지기 때문에 우리가 그것을 경쟁이라고 합니다. 이렇게 이야기하다가 먼저 저쪽에서 이야기를 꺼내게 되면 내가 이야기 할게 있어도 그 이야기를 듣고 있습니다. 이렇게 어떤 매체를 어떤 컴퓨터가 선점하게 되면 다른 컴퓨터는 보낼수가 없습니다. 왜냐하면 보냈다가는 데이터가 깨지기 떄문입니다.

그래서 이걸 우리가 경쟁이라고 하고 그런데 이제 메시지가 충돌이 안날 수가 없습니다. 왜냐하면 이제 서로 이야기하다가 동시에 튀어나올 수 있습니다. 컴퓨터들이 동시에 데이터를 보내게 되면 충돌이 나게됩니다.

이 충돌을 우리가 뭐라고 부르냐면 Collision이라고 부르게 됩니다. 그래서 Contention에 기반하고 있지만 동시에 데이터를 보내기 시작하면 충돌이 발생할 수 있습니다.

 

네트워크 : 다중접속 프로토콜 개념과 종류

 

처음에 이제 무작위 접근방식만을 사용하다가 이거를 성능을 개선하기 위해서 CSMA라는 것이 만들어졌습니다. 이게 또 유선환경이냐, 무선환경이냐에 따라서 유선환경이면 CSMA/CD로 무선환경이면 CSMA/CA로 발전을 하게됩니다.

 

 

 

ALOHA

이것의 시작은 ALOHA라는 프로토콜이 있었습니다하와이 대학교에서 처음에 개발된 프로토콜이 알로하라는 프로토콜입니다.

 

ALOHA

 

기본적으로 무선을 사용했는데 중간에 기지국이라는게 있습니다. 컴퓨터들이 안테나를 달아서 데이터를 쐈습니다그래서 보통 데이터를 쏠 때 사용하는 주파수와 데이터를 받을 때 사용하는 주파수가 달랐습니다.

그래서 각각의 컴퓨터들이 안테나를 세워서 데이터를 쏩니다공기 중에서 만나서 서로 섞이게되면 중간에 있는 기지국에서 뭔 말인지 모릅니다. 이걸 우리가 이제 충돌이 났다라고 합니다.

그러니까 송신자 입장에서는 충돌이 났는지 안 났는지 모르니까 데이터를 보내고 나서 기다립니다. 상대방으로부터 잘받았다라는 메시지를 기다리게됩니다그거를 Acknowledgement라고 하며, 줄여서 ACK라고 부르기도 합니다

그래서 ACK를 수신하게 되면 데이터가 잘 전송 됐구나 라고 생각합니다. 내가 데이터를 보내면 기다리고 있습니다. 상대방이 잘 받았다는 ACK가 올 때까지 기다립니다. ACK가 오면 잘 받았구나 하고 확신을 하는 것입니다. 

, 이러한 방식을 사용하게 되면 여기서 충돌이 나고 저기서 충돌이 나고 ACK 기다리다가 한세월이 지나게 됩니다.

 

 

 

CSMA

그래서 뭔가 좀 개선해야겠다라고 해서 나온게 멀티플 엑세스 앞에 CS라는 것을 붙였습니다. Carrier Sense라고 붙였습니다이제 영어로 이야기하면 Sense Before Transmit, Listen Before Talk이라고 부릅니다. 데이터를 보내기 전에 혹시 누가 데이터를 보내고 있지 않나 이렇게 들어보는 겁니다.

 

 

누가 데이터를 보내나 안 보내나 감지해봅니다. Carrier Frequency가 잡히나 안 잡히나 감지해본다, Sense해본다라는 뜻으로 Carrier Sense라고 부릅니다. 

그래서 훨씬 효율적입니다. 그냥 생기면 바로 보내지 않고 데이터를 보내기 전에 일단 누가 보내나 안 보내나 이렇게 들여다 보는 것입니다. 그래서 아무도 안보내면 보내는 겁니다.

그래도 충돌이 납니다. 그래도 Collision이 납니다. 그게 왜 충돌이 발생을 하냐하면 사실 제가 이렇게 이야기하는 것도 음속이라는 속도가 있습니다. 그러니까 내가하고 이야기 하면 이게 쭉~ 굉장히 짧은 시간이긴 합니다만 쭉~ 공기중으로 퍼져나가서 귀에들려서라는 소리를 듣는 것입니다.

근데 그 짧은 순간, 상대방이 Carrier Sense를 했는데 아무도 안 보낼 수 있습니다. 그래서 둘이 동시에 보내서 충돌이 발생할 수 있습니다. 물론 아까보다는 훨씬 효율이 좋지만 그래도 충돌이 발생할 수 있습니다.

케이블을 타고 가게되면 역시 케이블을 타고 가다가 하필이면 제일 마지막에 도달하기 직전에 Sense를 해보니까 아무도 안보내서 데이터를 보내게되는 현상이 발생할 수 있습니다.

 

 

 

CSMA/CD

그래서 이거보다 이제 더 진도를 나간게 CSMA를 하는데, 여기에 Collision Detection까지 집어넣은 것입니다. 데이터 생기면 보내는거고, 데이터 생기면 보내기전에 들어보는거고, 그 다음에는 보내면서 체크해보는 것입니다. 

데이터가 깨지는지 안 깨지는지, Collision이 나는지 안 나는지 확인해보는 걸 CD, Collision Detection이라고 합니다. 그래서 항상 데이터를 보내기 전에 Carrier Sense를 해보고 아무도 안보내면 데이터를 보내며 그 다음에 충돌이 나는지 안나는지 들어봅니다.

안 났다 그러면 잘 갔네 이렇게 생각하는거고 충돌이 났다 그러면 즉시 전송을 STOP 하는 것입니다. 왜냐면 더 이상 보내봐야 다 깨지니까 소용이 없습니다. 그러니까 전송을 즉시 STOP해서 채널을 사용하지 않도록 만들고 다시 시도해서 보내는 방식을 사용하는 것이 CSMA/CD라는 방식입니다.

 

CSMA/CD

 

그런데 무선에서는 사실 CSMA/CD방식을 사용하기가 어렵습니다. 왜냐하면 충돌이 난 것을 감지를 해야하는데 무선은 선이 없다보니까 충돌 난 신호가 오다가 감쇄가 심하게 발생하거나 그러면 이게 충돌이 난건지 원래가 이런건지 구분이 잘 안됩니다.

그래서 아예 충돌을 회피해보자라고 해서 Collision Avoidance가 생기게 됩니다. 이게 이제 무선에서 사용하는 방식입니다. 어떻게 사용하냐 하면 Carrier Sense를 했는데 누가 데이터를 보내고 있습니다. 그러면 이제 막 체크를 해보다가 비어 있습니다.

그때 내가 바로 데이터를 보내면 그러면 충돌 날 수도 있으니까 좀 쉽니다. 그거를 IFS라고 부릅니다. InterFrame Space의 약자입니다.

그래도 또 보내지 않고 왜냐하면 또 똑같이 그럴수도 있으니까 누구는 3타임 정도 쉬고, 누구는 한 2타임정도 쉬고 그리고 체크를 해보는 것입니다. 이걸 이제 Contention Window라고 부릅니다그래서 한 2타임 쉴 수도 있고, 3타임 쉴 수도 있고 이거는 랜덤하게 파악을 하는 것입니다. 그리고 최종적으로 잘 받았는지 ACK를 받는, 이 세 가지 방식을 사용하는 것이 CSMA/CA가 되겠습니다.

그래서 이제 IFS, Contention Window, ACK라는 세 가지 방식을 사용해서 충돌을 회피, Collision Avoidance하는 방법을 사용하는 것이 무선에서 사용하는 방법입니다.

 

 

 

통제된 접근

, 그 다음은 Controlled Access, 컨트롤하는 겁니다. 누군가 하는거죠. 첫 번째 예약하는 방법, 예약을 하게되면 충돌이 안 일어납니다.

 

폴링

그 다음에 폴링을 합니다. 폴링은 너 이거 데이터 보낼거 있냐? 라고 중앙에서 누군가 통제해서 물어보는 것입니다.

 

 

토큰 전달

토큰패싱이라고 하는 방법은 토큰이라는 특별한 메시지를 주는 겁니다. 가지고 있는 사람만 데이터를 보낼 수 있어 이렇게 하고서 통제하는 겁니다이 방법을 Controlled Access라고 이야기를 하고 있습니다.

 

 

채널화

자 그럼 이제 채널을 나눠서 쓰는 것, 공기라고 하는 것 혹은 선이 있으면 여러 개의 논리적인 길로 나눠서 사용하는 것을 뜻합니다. 주파수를 나눠서 사용하게 되면 FDMA라고 부르며, 시간을 나눠서 1초 때는 너가 쓰고 2초 때는 너가 쓴다 이렇게 하게 되면 TDMA라고 부릅니다.

코드라고 부르는 것을 나눠서 사용하게 되면 CDMA라고 부르고 있습니다. 그래서 FDMA는 주파수를 나눠 사용한다고 해서 Frequency Division Multiple Access로 주파수 분할 다중 접속이라고 부릅니다. TDMA는 시간을 나눠쓴다고 해서 Time Division Multiple Access로 시간 분할 다중접속이라고 합니다. 

코드를 나눠서 여러 개의 컴퓨터들이 접속해서 사용할 수 있게 하면 Code Division Multiple Access로 코드 분할 다중 접속이라고 부릅니다.

반응형