[네트워크] 9. 연결 계층 서비스 (Link Layer Services)2

ERror.ASER·2021년 6월 12일
0

네트워크

목록 보기
13/14

Multi Access Protocol

• 링크는 크게 두가지가 있다. - Point-to-point
◼ 하나의 호스트와 다른 호스트가 1:1로 연결 되어있음. - Broadcast(shared medium)
◼ 채널을 공유함. 버스나 RF(와이파이, 위성 등)

  • 여러 노드가 동시에 공유하면 충돌이 발생하게 되는데 이런 문제를 해결하는 것을 Multiple Access
    Protocol 이라고 부른다.
  • 줄여서 MAC Protocol이다.

Ideal MAC Protocol

  1. 노드중에서하나만동작할경우에는그노드가모든capacity를다사용할수있으면좋겠다.
  2. 만약 N개의 노드가 전송을 하려고 하는 경우 모든 노드들이 R/N이라는 똑같은 capacity(=data rate)를 할당 받을 수 있으 면 좋겠다.
  3. 누가전송하고,전송하지않고를결정하는것을개별노드들이알아서결정을하되충돌을최소화할수있으면좋겠다.(= 완전히 분산적으로 동작할 수 있으면 좋겠다.)
  4. 간단했으면 좋겠다.

MAC Protocol 분류

◼ Channel partitioning : 전체 채널을 분할을 해서 나눠준다. Time slot이나 주파수 또는 코드로 나 눠서 하나의 piece를 개별적인 유저가 갖게끔.
MAC protocols without collision
◼ Taking turns : 채널을 나누는 것이 아니라 순서를 정해 줌.


MAC protocols with collision ◼ Random access : 위의 두 방식은 중앙 집중형적인 개념이 들어가지만, 이 방법은 개별 노드들이 알아서 눈치껏 채널을 사용하는 방식. → Random Access는 위의 두 방법에 비해서 완전히 분산적이라는 장점이 있으나, collision이 발생할 수 있고, 그 collision을 해결하는 방식도 같이 제공이 되어야 한다.

MAC protocols without collision

Channel Partitioning

⚫ Channel Partitioning : FDMA (Frequency Division Multiple Access) ◼ 개별 노드마다 서로 다른 주파수를 할당하기 때문에 충돌이 일어날 일이 없음.
◼ 그러나보낼데이터가없을때는해당채널이놀게됨.=자원낭비
⚫ Channel Partitioning : TDMA (Time Division Multiple Access)
◼ 프레임을 타임슬롯으로 나누고 각각의 타임 슬롯을 특정 사용자에게 할당하는 방식. ◼ 전화망에서 실제로 이런 방식으로 나누어서 사용중.
◼ 그러나보낼데이터가없을때는타임슬롯이낭비가되는단점이있음.
⚫ Channel Partitioning : CDMA (Code Division Multiple Access)
◼ 과거에 휴대전화에서 많이 썼던 방식. 휴대전화 사용자들이 기지국으로부터 코드를 받아서 자기가 보낼 데이터를 이 코드로 인코딩해서 보냄. ◼ 기지국에서는 적용한 코드를 거꾸로 다시 적용시켜서 해당되는 데이터를 얻을 수 있음. FDMA, TDMA보다 효율이 훨씬 좋음.
◼ 전체 주파수나 시간으로 나누지 않고 다 쓰다보니 그럼.

Taking turns

⚫ Taking turns : polling
◼ Master가 모든 slave에게 돌아가면서 순서를 물어본다.
◼ 충돌은 없으나 오버헤드가 있을 수 있다.
◼ 마스터 노드에 문제가 생기면 전체가 통신을 못한다. (single point of failure)
⚫ Taking turns : Token passing
◼ 마스터가 있는게 아니라 Token을 가진 노드만 데이터를 전송할 수 있음.
◼ 데이터를 보내고, 다 보내면 Token을 다음 노드에게 보냄.
◼ Token을 관리하는 오버헤드 발생, Token이 데이터가 없는 노드를 다 거치고 오므로 latency 발생 ◼ Token을 가진 노드가 갑자기 고장나면 전체가 통신을 못한다. (single point of failure)
◼ 그래서 FDDI (Fiber Distributed Dual Interface) 라는 것이 고안된다.
◆ Primary ring으로 데이터를 보내다가 primary ring이 끊어지면 secondary ring으로 보낸다. ◆ 안정성이 더 확보 되어짐.

MAC protocols with collision

Random Access Protocols

• Random Access Protocols : 채널 파티셔닝이나 순서를 정해주는 마스터의 기능이 없음.
•그래서 이상적인. MAC 프로토콜이 갖는 특성인 ‘하나의 노드만 전송할 게 있다면 채널의 전체
capacity를 이용함’과 ‘개별적으로 알아서 수행’이라는 특성을 가짐.
• 그러나 단점은 눈치 보면서 알아서 전송하기 때문에 collision이 발생할 수 밖에 없음.
⚫ 대표적인 Random Access Protocols
◼ ALOHA
◼ CSMA

ALOHA

⚫71년도에 만들어짐. 모든 프레임들이 같은dd 길이를 갖게끔 함.
⚫모든 디바이스들의 전송하는 rate이 같다.
⚫Collision이 발생하면 랜덤한 시간이 흐른 뒤에 재전송을 성공할 때까지 함.
⚫프레임의 타임슬롯 내에 전송을 시도하는 노드의 평균 수를 G라고 가정하자.

Slotted ALOHA

• 모든 노드들의 시간이 synchronized 여야 함. 전체 air time도 똑같은 사이즈로 나눔.
• 기존 ALOHA는 보낼 데이터가 있으면 아무 때나 전송했지만 slotted ALOHA는 준비가 되었어도
타임슬롯의 시작 시각에 맞춰 전송을 시작해야 함.
• 기존 ALOHA는 자기가 선택한 타임슬롯 외에도 직전 타임슬롯에도 누군가가 전송하면 안됐음.
그런데 slotted ALOHA는 타임슬롯의 시작 시각에 맞춰 전송을 시작하기 때문에 충돌의 확률이 반으로 줄어듦.
• 그러므로 max efficiency 는 37%로 증가함.
• 근데 이렇게 노력해도 37%밖에 안돼?
➔ 각 노드들이 다른 노드를 전혀 케어하지 않기 때문. 자기가 보낼 데이터가 있으면 그냥 보내버림. ➔ 그러면 좀 다른 노드들을 신경쓰는 프로토콜을 만들어 보면 어떨까?


CSMA (Carrier Sense Multiple Access)
◼ 전송 전에 반송 주파수(carrier frequency)를 먼저 감지한다. Listen before transmit
◼ 그래서 채널로 아무도 보내고 있지 않으면 자기가 전송하고, 채널에 누가 보내고 있으면 자기의 전송을 딜레이 함.
◼ 그래도 충돌은 발생함

profile
지우의 블로그

0개의 댓글