본문 바로가기
컴퓨터 사이언스/네트워크

링크계층 - MAC 프로토콜

by Chaein.P 2023. 3. 13.

링크 계층

  • 링크 계층의 전달 매체는 broadcast medium이기 때문에 하나의 host에서 발생시킨 데이터는 모든 호스트로 전달된다.
  • 이로 인해 여러 호스트에서 동시 다발적으로 데이터를 전송하면 게이트웨이 라우터에 데이터가 섞여 도달할 수 있다(collision).
  • 링크 레이어는 여러 호스트가 공유하고 있는 링크에서 데이터 충돌 없이 전달하기 위한 계층이다.
  • 네트워크 계층의 패킷은 링크 계층의 프레임에 데이터 부분에 담아 전달된다.

MAC(Medium Access Control)

  • 링크 계층에서 발생하는 Collision 문제를 해결하기 위해 매체 접근을 제어하는 프로토콜이다.
  • 이상적인 MAC 프로토콜은 다음을 만족한다.
    • 대역폭 R bps 채널이 있을 때
    • 하나의 노드가 데이터를 전송한다면 R 대역폭을 사용할 수 있어야 한다.
    • N개의 노드가 데이터를 전송한다면 각각 R/N 대역폭을 사용한다.
    • 완전히 분산화되어있어야 한다.
      • 특정 노드가 데이터 전송을 조정하거나 동기화가 필요하지 않아야한다.
    • 단순해야한다.
  • 대표적인 MAC 프로토콜 방식으로 다음 3가지가 있다.

channel partitioning

  • TDMA: Time Division Multiple Access
    • 특정 시간동안 사용 시간을 일정하게 나누어 돌아가면서 사용하는 방식이다.
    • 그러나 MAX 노드 개수보다 적은 노드들이 사용하게 되면 남은 시간은 낭비된다.
    • 예를들어 6-station LAN은 한 round에 6개의 node가 돌아가면서 사용하는 방식인데 만약 이때 node가 3개뿐이라면 나머지 3개의 시간은 그대로 낭비된다.
  • FDMA: Frequency Division Multiple access
    • 채널을 주파수 대역으로 나누어 각각 배정받아 사용하는 방식이다.
    • 사용하지 않는 주파수 대역이 있다면 그대로 낭비된다.

random access

  • 전송하고자 하는 패킷이 있을 때 바로 전송하는 방식이다.
  • 두개 이상의 노드가 동시에 전송하면 collision을 피할 수 없다.
  • Collision을 어떻게 탐지하고 회복할것인지가 관건
  • 대표적으로 ALOHA, CSMA같은 프로토콜이 있다.
  • CSMA: Carrier Sense Multiple Access
    • Listen before transmit 데이터를 전송하기 전에 누가 전송하고 있는지 listen 하고 있다가 다른 노드의 전송이 끝나면 전송한다.
    • 두 노드에서 동시에 채널에 데이터를 전송할 경우 충돌을 피할 수 없다.
    • 정확하게 동시에 전송하지 않더라도 해당 데이터가 전파되는데까지 시간이 걸리기 때문에(propagation delay) 이미 채널에 데이터가 전송되고 있어도 그 전파를 전달받지 못한 다른 노드는 채널이 조용하다고 판단하고 데이터를 전송할 수 있다. 이 경우에도 충돌이 발생한다.
    • propagaion delay는 막을 수 없기 때문에 충돌을 발생할 수 밖에 없다.
    • CSMA/CD 알고리즘
      • 전송 하는 노드가 다른 노드의 전파를 감지하면 즉시 전송을 멈춘다.
      • 0부터 2^발생한 충돌 횟수(m)-1 까지의 수 중에서 랜덤하게 선택해 기다리고 재전송한다. (binary exponential backoff)
      • ex) 충돌 횟수가 2이라면 {0, 1, 2, 3} 중에서 랜덤하게 수를 선택해 기다린다.
      • node가 늘어날수록 backoff 시간은 길어지고 전송은 느려진다.

채널 파티셔닝은 사용자가 많을 수록 유리하다. 반대로 random access는 사용자가 적을수록 유리하다.

taking turns

  • polling
    • master node가 돌아가면서 slave node를 polling해 데이터를 전송받는 방식이다.
    • master node가 작동하지 않으면 연계된 slave node 모두가 전송 불가 상태가 된다. (single point of failure)
  • token passing
    • token을 가지고 있는 호스트만 데이터 전송이 가능한 방식
    • 데이터 전송을 마치면 다음 노드에 token을 전달한다.
    • 중간에 token 유실되면 모든 노드가 데이터 전송이 불가능해 진다. (single point of failure)

'컴퓨터 사이언스 > 네트워크' 카테고리의 다른 글

링크 계층 - Switch  (0) 2023.03.14
링크계층 - LAN  (1) 2023.03.14
네트워크 계층 - 라우팅 알고리즘  (0) 2023.03.12
네트워크 계층- IP  (0) 2023.03.09
전송계층 - TCP  (0) 2023.03.07

댓글