MAC 계층

박정빈·2024년 2월 18일

네트워크와 통신

목록 보기
6/10

LAN 환경은 근거리 지역에 국소적으로 분포된 호스트들을 연결한다. 따라서 WAN과는 다른 방법(연결방식이나 전송 방법)으로 전송 관리를 하여 네트워크 이용 효율을 높여야 한다.
이를 위해, LAN 환경의 계층 2기능은 LLC 계층과 MAC 계층으로 나누어져 있다.

IEEE 802 시리즈

IEEE 802 는 LAN과 MAN 표준 규칙을 만드는 집단이다.
여러 표준안들이 IEEE 802 시리즈로 나왔다.

LLC와 MAC

계층 2 기능 즉, 데이터 링크 계층은 LLC 와 MAC 계층으로 나누어져있다. OSI 7계층에서 데이터 링크 계층의 기본 기능을 LLC계층에서 다루고, 물리적 전송 선로의 특징과 매체간 연결방식에 대한 제어 부분을 MAC 계층에서 다룬다. 그래서 WAN에 MAC계층이 추가된 것으로 볼 수 있다.

  • MAC
    LAN의 종류에 따라 특성이 구분된다. 대표적으로, 공유버스 방식의 이더넷과 링구조의 토큰 링 방식이 있다. 공유버스 방식은 충돌을 막기위해 데이터 전송전, 전송 선로가 사용중인지 확인 하고, 토큰링 방식은 충돌을 막기 위해 토큰을 확보해야한다.
  • LLC
    데이터 링크 계층의 기능과 거의 유사하지만, MAC 계층이 있는 만큼 LAN의 종류에 따라 특성이 달라진다.

CSMA/CD

다중 접근 채널 방식에서 프레임을 전송 할 때, 충동 가능성이 항상 존재 한다. 충돌 문제를 해결하는 방법에는, 충돌 허용 방식과 충돌 회피 방식이 있다.

충돌 허용 방식은 충돌이 발생한 후에 문제를 해결한다. 이더넷으로 알려진 CSMA/CD(Carrier Sense Multiple Access/Collision Detection)이 대표적인 예이다. 프레임 충돌로 인해 깨진 데이터를 복구해야하기에 송신 호스트에 충돌 감지 기능이 있어야 한다. 복구 과정에서 재전송이 이루어지는데 이때문에 네트워크 성능이 떨어진다.

토큰 버스

토큰 버스 방식은 물리적으로는 버스형태로 연결되어 있지만, 논리적으로는 링형태로 연결되어 있다. 충돌을 막기 위해 토큰이라는 제어 프레임을 사용하며, 전송을 하기 위해서는 토큰을 획득해야한다. 토큰은 호스트들을 순차적으로 순회하고 전송의 순서를 정한다.
호스트가 이웃하는 순서는 물리적 순서와는 별개로 호스트의 고유 번호와 관련이 있다. 번호가 높은 호스트 부터 네트워크에 연결되며,토큰전달도 높은 번호순으로 진행된다.

토큰 링

호스트들이 물리적으로 링형태로 연결되어, 토큰이 링을 순환하며 전송 순서를 정한다. 호스트들은 대기모드와 전송모드로 구분된다.
대기 모드는 입력 프레임을 즉시 내보낸다. 만약 장애시 대기모드가 되어 네트워크에 영향을 주지 않는다.
전송 모드는 프레임을 전송할 권한이 있는 상태이다. 토큰을 획득하면 프레임을 전송할 수 있다. 프레임에는 목적 주소가 있으며 호스트들을 돌며 목적 주소의 호스트는 데이터를 저장, 프레임에 수신 여부가 저장된다. 송신 호스트는 링을 순회하여 송신 호스트에 돌아온 프레임의 수신 여부를 확인하여 정상 수신 여부를 판단하고, 토큰을 반환한다.

이더넷 (CSMA/CD)

이더넷은 IEEE 802.3 표준안을 실제 구현한 제품이다.
IEEE 802.3 표준안은 1-persistent CSMA/CD 방식 LAN 환경을 규정한 표준안이다.

신호 감지 기능

공유버스 구조에서 송신 호스트는 충돌을 방지하기 위해 공유버스가 사용중인지 확인해야한다. 전송 매체에 흐르는 신호를 감지해 프레임 전송 여부를 정하는 신호 감지 프로토콜이 있다. 신호 감지 프로토콜에서는 선로의 전달 지연이 성능에 영향을 준다.

  • 1-persistent CSMA
    프레임을 전송 하기 전, 전송 채널의 사용여부를 확인한다. 채널이 유휴상태로 변경 되면 확률 1의 조건으로 프레임을 무조건 전송한다.
    여러 호스트가 동시에 전송 할 수 있기에 충돌 가능성이 있다.

  • non-persistent CSMA
    전송 채널이 사용중이면 임의의 시간 후에 다시 확인 한다. 채널 감지 시간이 간헐적이기에 1-persistent CSMA 보다 충돌 가능성이 낮다.

  • p-persistent CSMA
    슬롯 채널 방식에서 많이 사용한다. 채널이 사용중이면 다음 슬롯을 기다린후, 채널이 유휴상태 일때 p의 확률로 프레임을 전송한다.

  • CSMA/CD
    전송 채널의 사용 여부를 확인하여 프레임을 전송 하여도 여러 호스트에서 동시에 보내면 충돌이 발생한다. CSMA/CD 는 충돌 감지기능을 사용해 충돌 여부를 확인한다. 호스트가 충돌을 감지하면 프레임의 전송을 중지한다.

프레임

상위 계층인 LLC에서 전달 받은 프레임을 MAC의 프레임 구조에 맞게 수정해야한다. MAC 계층 프로토콜에 정의된 MAC헤더와 트레일러 정보를 추가한 것을 MAC 프레임 이라고 하며, 이더넷 에서는 이더넷 프레임이라고 한다. MAC 계층은 LLC 계층에서 받은 정보를 모두 전송 데이터로 취급하여, 앞에는 헤더를 뒤에는 트레일러를 위치시킨다.

프레임 구조

각 필드의 크기 단위는 바이트Byte이다. data 필드 왼쪽의 필드는 헤더, 오른쪽의 필드는 트레일러이다.
프레임 구조

  • Preamble 프리엠블
    수신 호스트가 송신 호스트의 클록과 동기를 맞출 수 있도록 시간 여유를 제공하는 것이 목적, 각 바이트는 10101010 비트 패턴을 포함한다.

  • Start Delimiter 시작 구분자
    프레임의 시작 위치를 나타낸다. preamble 필드와 구분해 값이 10101011이다.

  • Destination Address 수신 호스트 주소/Source Address 송신 호스트 주소
    MAC 계층에서는 호스트를 구분하는 MAC 주소를 사용한다. 주소값은 일반적으로 LAN 카드에 내장되어 제공된다.
    수신 호스트는 최상위 비트에 따라 1이면 그룹주소, 0이면 일반주소를 표현한다.
    그룹 주소에는 멀티캐스팅,브로드캐스팅이 있다. 브로드캐스팅에서는 주소부의 모든 비트가 1이다.
    송신 호스트의 최상의 비트는 0이다. 현재 구현되어 사용되는 이더넷 프로토콜은 모두 6바이트 주소를 지원한다.

  • Length 길이
    Data 필드의 가변길이 전송 데이터 크기를 나타낸다.

  • checksum 체크섬
    데이터 전송 과정에서 데이터 변형 오류 발생 여부를 수신 호스트가 알 수 있도록 송신 호스트가 값을 기록한다.

LLC 프레임과의 관계

계층을 지나올 수록 헤더나 트레일러를 추가한다.
LLC프레임과 MAC프레임의 관계

허브와 스위치

CSMS/CD 방식에서 허브라는 장비에 잭을 사용해 호스트를 연결한다.

  • 허브
    다수의 포트가 있는 박스 구조의 장비에 호스트를 스타형으로 연결한다. 외형적으로는 스타형이지만, 내부는 공유 버스형이기 때문에 충돌이 발생할 수 있다. 허브 구조의 LAN에서는 전체 전송 용량이 전송 선로 용량의 제한을 받는다.

  • 스위치 허브
    일반 허브와 동일하지만 성능면에서 장점이 있다. 중앙의 허브가 스위치 기능이 있어서 수신 호스트에게만 프레임을 전송한다. 따라서 다른 전송 선로도 동시에 사용할 수 있어서 전체 전송 용량이 증가하는 효과가 생긴다.

토큰 버스

IEEE 802.3 표준안에서는 네트워크 트래픽이 심할때 특정 호스트가 프레임을 전송하지 못하고 있을 수 있다. 또, 프레임의 우선순위를 정할 수 없다는 문제가 있다. 이를 해결하기 위해 링구조의 통신망을 사용할 수 있다.

프레임 구조

토큰 버스 프로토콜에서 정의한 프레임에 맞게 토큰 버스 프레임을 만들어야 한다. 이때, LLC 프레임은 토큰 버스 프레임의 전송 데이터로 취급된다. LLC 프레임과의 관계는 앞과 같다.

토큰 버스 프레임의 구조는 CSMA/CD프레임 구조와 거의 비슷하다.
차이점은 데이터 프레임와 토큰 프레임을 구분하기 위한 Frame Control 필드가 추가되었다는 점이다.

  • Frame control
    1Byte, 8bit로 구성도된 프레임 컨트롤은 앞의 2bit로 역할이 구분된다.
    00 인 경우는 MAC 토큰 프레임, 01인 경우는 LLC프레임, 01인경우는 네트워크 관리용 데이터 프레임, 11은 예약이다.

토큰 링

링에 연결된 호스트중 모니터라 부르는 관리 호스트가 존재한다. 모니터는 네트워크 관리를 하며 오류를 복구한다.

프레임 구조

토큰 링 프레임은 데이터 프레임과 토큰 프레임으로 구분할 수 있다.
토큰 링 프레임 구조

  • Start/End Delimiter
    프레임의 시작과 끝을 구분한다.

  • Access Control
    우선순위 비트 P, 토큰 비트 T, 모니터 비트 M, 예약 비트 R로 나누어 진다.
    PPPTMRRR\mathbf P\mathbf P\mathbf P\mathbf T\mathbf M\mathbf R\mathbf R\mathbf R

    • 우선 순위 비트
      우선 순위가 높은 프레임을 전송하게 한다. 000이 제일 낮다.
    • 토큰 비트
      토큰 프레임과 일반 프레임을 구분한다. 0이면 토큰 프레임이다.
    • 모니터 비트
      네트워크에 오류가 있을때 프레임이 링을 무한 순회하는 현상을 방지한다. 모니터 호스트는 데이터 프레임이 자신을 지나갈 때 M 비트를 1로 만든다. M 비트가 1인 데이터 프레임이 자신을 지나가면, 링을 계속 순회하고 있다는 뜻이므로 해당 프레임을 제거한다.
  • Frame Control
    LLC 계층의 LLC 프레임과 토큰 링 프로토콜의 제어용 프레임을 구분하게한다.
    TTCCCCCC\mathbf T\mathbf T\mathbf C\mathbf C\mathbf C\mathbf C\mathbf C\mathbf C TT 비트가 00 이면 제어용 프레임, 01이면 LLC 프레임이다. 1x는 예약이다.

  • Frame Status
    프레임의 수신 호스트가 송신 호스트에게 응답할 수 있게 한다.
    A,C 비트의 쌍으로 존재하며, 한 쌍이 동일할 때 만 유효응답으로 처리된다.
    AC00AC00\mathbf A\mathbf C\mathbf 0\mathbf 0\mathbf A\mathbf C\mathbf 0\mathbf 0

    • A 비트
      수신 호스트가 프레임에 접근Access 했다는 것을 표시해 준다. 목적지 호스트가 동작하는지 확인할 수 있다.
    • C 비트
      프레임의 수신 호스트 주소가 본인과 동일한 프레임이 지나가면 프레임을 내부 버퍼에 보관Copy하고 C 비트를 1로 바꾼다.

0개의 댓글