매체 접근 제어
IT 위키
더 많은 작업
매체 접근 제어(Media Access Control, MAC)는 여러 장치가 하나의 전송 매체(채널)를 함께 쓸 때 어느 장치가 언제 전송할 수 있는지를 정하는 데이터 링크 계층의 기능이다.
버스나 링, 무선처럼 여러 장치가 같은 매체를 공유하는 LAN 에서는 두 장치가 동시에 신호를 내보내면 신호가 겹쳐 깨진다(충돌). 매체 접근 제어는 이 충돌을 허용하고 수습할지, 아예 일어나지 않도록 전송 순서를 정할지를 규정한다. IEEE 802 표준은 데이터 링크 계층을 위쪽의 논리 링크 제어(LLC)와 아래쪽의 매체 접근 제어(MAC) 부계층으로 나누며, MAC 주소라는 이름도 이 부계층에서 왔다.
방식은 크게 경쟁(contention) 방식과 순서를 정해 주는(제어) 방식으로 나뉜다. 경쟁 방식은 보낼 것이 있는 장치가 먼저 매체를 차지하려 하고, 제어 방식은 전송 권한을 차례로 넘기거나 주 장치가 차례로 물어본다.
| 구분 | 방식 | 전송 권한을 얻는 법 | 충돌 | 표준·쓰임 |
|---|---|---|---|---|
| 경쟁 방식 | ALOHA | 보낼 것이 있으면 바로 보내고, 응답이 없으면 임의 시간 뒤 다시 보낸다 | 있음 | 초기 무선 패킷망 |
| CSMA/CD | 매체가 비었는지 듣고 보내며, 보내는 중 충돌을 감지하면 멈추고 임의 시간 뒤 재전송 | 있음(감지) | IEEE 802.3 이더넷 | |
| CSMA/CA | 매체가 비어도 정해진 시간과 임의 시간을 더 기다린 뒤 보내 충돌을 피한다 | 회피 | IEEE 802.11 무선랜 | |
| 토큰 패싱 | 토큰 링 | 링을 따라 도는 토큰을 받은 장치만 전송 | 없음 | IEEE 802.5 |
| 토큰 버스 | 버스 위에 논리적 링을 만들어 토큰을 순서대로 넘김 | 없음 | IEEE 802.4 | |
| FDDI | 광섬유 이중 링에서 토큰을 순서대로 넘김 | 없음 | ANSI X3T9.5, 100Mbps | |
| 폴링 | 폴링 | 주 장치가 종속 장치에 차례로 보낼 것이 있는지 묻는다 | 없음 | 멀티드롭 회선 |
토큰 패싱(Token Passing)은 토큰(token)이라는 짧은 제어 프레임을 장치에서 장치로 차례로 넘기고, 토큰을 가진 장치만 매체에 데이터를 보낼 수 있게 하는 방식이다. 토큰은 곧 채널의 사용권(전송 권한)이다.
- 보낼 데이터가 있는 장치는 토큰을 받아 쥔 채 데이터 프레임을 내보내고, 다 보내거나 정해진 보유 시간이 끝나면 토큰을 다음 장치로 넘긴다
- 보낼 것이 없으면 토큰을 바로 다음 장치로 넘긴다
- 한 순간에 토큰은 하나뿐이므로 충돌이 생기지 않는다
- 토큰이 한 바퀴 도는 시간의 상한을 계산할 수 있어 최대 대기 시간을 보장한다. 부하가 높아도 성능이 급격히 떨어지지 않는다
- 토큰을 잃어버리거나 둘이 생기는 경우를 감시·복구하는 관리 기능이 필요해 구현이 CSMA/CD 보다 복잡하다
토큰은 노드의 수, 전송 매체의 종류, 패킷 전송량을 알려 주는 정보가 아니다. 그런 값과 상관없이 지금 누가 보낼 차례인지를 나타낼 뿐이다.
| 구분 | 경쟁 방식(CSMA/CD) | 토큰 패싱 |
|---|---|---|
| 전송 권한 | 먼저 매체를 잡은 장치 | 토큰을 가진 장치 |
| 충돌 | 생긴다 | 생기지 않는다 |
| 부하가 낮을 때 | 기다림 없이 바로 보내 효율이 좋다 | 토큰이 돌아올 때까지 기다려야 한다 |
| 부하가 높을 때 | 충돌이 늘어 효율이 급락한다 | 안정적이다 |
| 지연 예측 | 어렵다 | 상한을 계산할 수 있다 |
| 구현 | 간단하다 | 토큰 관리가 필요해 복잡하다 |