네트워크 - Multiple Access Protocols

2021-01-17

컴퓨터 네트워크를 공부하면서 정리를 한 내용들 입니다.

-참고 K-mooc 부산 대학교 유영환 교수님 : 컴퓨터 네트워크 강의


Multiple Access Links

데이터를 전송하는 링크를 살펴 보면 가장 간단하게는

point-to-point 링크가 있습니다.

point-to-point : 하나의 호스트와 다른 호스트가 1:1로 연결 되는 것.

그래서 다른 호스트가 끼어들지 않기 때문에

보내고 싶을 때 데이터를 보내면 됩니다.

다른 방법을 사용한다면 문제가 생기는 경우가 있습니다.

  1. 여러대의 컴퓨터들이 하나의 버스에 쭉 같이 연결 되어 있는 경우

  2. 여러 대의 컴퓨터가 같은 무선 채널을 채널을 사용 하고 있는 경우

  3. 위성과 데이터 송 수신을 하는 경우

위성에서 데이터를 쏘거나 받는 경우에는 사용하는 채널을 같이 공유하게 됩니다.

위 3가지 처럼 채널을 공유 하는 것을

shared link 또는 shared medium이라고 하는데

이런 경우에는 여러 대의 컴퓨터가 동시에 전송을 하게 되면

에러가 발생 할 수 있습니다.

Multiple Access Protocols

채널을 공유 할 때 하나의 어떤 채널을 공유 하는 경우에

여러 노드가 동시에 전송을 하게 되면

서로 간섭이 일어나고 데이터간의 충돌이 발생 합니다.

그래서 이런 문제를 해결 하는 것을 Multiple access protocol라고 부릅니다.

줄여서 MAC 프로토콜이라고 합니다.

MAC 프로토콜의 원칙은 여러 사람들이 모여서 대화 하는 것과 비슷합니다.

여러 사람이 모여서 동시에 서로 얘기를 하게 되면

이야기가 겹쳐서 잘 전달되지 않는 것처럼 동작한다고 생각하시면 됩니다.

Ideal Multiple Access Protocol

가정으로, R bps의 데이터베이스를 가지고 있는 broadcast 채널이 있습니다.

이 채널에서는 아래와 같은 기능이 있었으면 합니다.

Desiderata

첫째. 단지 전체 노드들 중에서 오직 하나의 노드만 전송

다른 애들은 전송 할게 없다고 하면 그 노드는

원래 채널에 부여 되어 있는 capacityR

완전히 다 사용할 수 있으면 좋겠다 하는 겁니다.

둘째. 똑같은 data rate을 할당 받을 수 있으면 좋겠다

만약에 M개의, 복수 개의 노드가 전송을 하려고 할 경우

모든 노드들이 똑같이 R/M이라는 똑같은 capacity,

똑같은 data rate을 할당 받을 수 있으면 좋겠다 하는 겁니다.

셋째. 완전히 분산적으로 해결 할 수 있으면 좋겠다.

만약에 100개의 노드가 있는데 100개 중에 누가 보낼 지를

서로 합의 하에 결정해야 한다면 굉장히 오랜 시간이 걸립니다.

그래서 모두 각각의 개별 노드들이 알아서 결정을 하되

충돌을 최소화 할 수 있는 방법으로 분산적으로 동작 할 수 있으면 좋겠다 합니다.

넷째. 간단했으면 좋겠다.

너무 복잡한 기술은 에러도 많이 발생 할 수 있고

예상치 못한 오동작을 일으킬 수도 있기 때문에 간단 했으면 좋겠다 하는 겁니다.

이런 희망사항을 구현하기 위해 여러 가지 프로토콜들이 제안이 되었습니다.

MAC Protocols Taxonomy

이 프로토콜들에는 여러 가지가 있는데

몇 가지 타입으로 나눠 보았을 때,

Channel Partitioning

전체 채널을 분할을 해서 나눠 주는 것 입니다.

전체 채널을 몇 개로 분할할 때,

time slot으로 나눈다던지 아니면 주파수로 나눈다던지 코드로 나눈다던지

하나 하나의 piece들을 각각 개별적인 유저들한테 할당을 하는 겁니다.

Taking Trun

전체 채널을 나누는 것이 아니라 순서를 정해주는 방식

이번에는 어떤 채널에서 보내고,

다음 번에는 다른 채널에서 보내라는 식으로 순서를 정해 주니까

collision이 발생하지 않는 경우입니다.

Random Access

개별 노드들이 알아서 채널을 사용합니다.

눈치게임 처럼 진행이 되다보니

충돌 안 날 때도 있지만 충돌이 날 때도 있다는 겁니다.

그래서 이 random access 같은 경우 위의 두가지에 비해서는

완전히 분산적이기는 하지만 collision이 발생 할 수 있고

collision을 해결하는 방식도 같이 제공이 되어야 합니다.