MAC 계층

삼식이·2022년 10월 21일
0

컴퓨터 통신

목록 보기
8/11

본 자료 정리는 '쉽게 배우는 데이터 통신과 컴퓨터 네트워크(개정판)' 원서에 출처합니다.
Copyright © 한빛 아카데미.

학습목표

  • LAN 환경에서 MAC 계층과 LLC계층의 차이와 역할을 이해
  • 이더넷의 동작 원리와 프레임 구조를 이해
  • 토큰 버스에서 토큰의 역할과 프레임 구조를 이해
  • 토큰 링의 프레임 구조와 제어 필드를 이해

내용

  • MAC 계층과 IEEE 802 시리즈
  • 이더넷
  • 토큰 버스
  • 토큰 링

MAC 계층과 IEEE 802 시리즈

MAC 계층의 이해

  • LAN 환경에서 계층 2 기능을 MAC과 LLC 계층으로 분리

    • LLC 계층: 데이터 링크 계층의 기본 기능

    • MAC 계층: 물리 계층 기능 (물리적 전송선로의 특징과 매체간 연결방식에 따른 제어)

  • MAC 계층

    • MAC 계층: 물리적인 특성 반영

    • 이더넷

      • 공유 버스 방식 지원

      • 데이터 전송 전에 다른 호스트가 데이터를 전송 중인지 여부를 확인해야 함

      • 둘 이상의 호스트에서 동시에 데이터 프레임 전송을 시도하면 충돌 발생 -> 일정 시점 후 재전송

    • 토큰 링 방식

      • 링 구조를 지원

      • 토큰이라는 특정 패턴의 제어 데이터가 링을 순환

      • 토큰을 확보하여 전송 후 토큰은 링에 내려 놔야 함

      • 각 호스트에 전송 우선순위를 부여할 수 있음

  • LLC 계층

    • WAN 환경의 데이터 링크 계층과 유사한 기능을 수행

    • LLC 계층도 LAN의 특성에 영향을 받으므로, 이더넷과 토큰 링에서 사용하는 LLC는 다를 수 있음

  • IEEE 802.1: 표준안 전체를 소개
  • IEEE 802.2: LLC 계층을 소개
  • IEEE 802.3 부터: 다양한 환경의 MAC 계층을 소개

CSMA/CD (Carrier Sense Multiple Access/Collision Detection)

  • 공유 매체에서의 충돌 문제 해결

    • 충돌 허용 방식: CSMA/CD

    • 충돌 회피 방식: 전송 시간대를 달리하는 타임 슬롯을 배정하는 방식

  • CSMA/CD

    • 충돌 감지 기능이 필수적으로 요구됨

    • 충돌 감지 후, 재전송 기능으로 오류 복구

    • 공유 매체의 길이가 길수록 전송 지연이 증가하여 충돌 가능성이 높아짐

  • 데이터 전송 원리

    • 호스트 5가 호스트 1에게 데이터 전송

    • 전송 프레임에 목적지 주소 1을 기록하여 수신 호스트를 지정함

  • 토큰 버스 (Token Bus)

    • 물리적인 버스 구조(점선)로 연결되지만 논리적인 프레임 전달은 링 구조(실선

    • 토큰이라는 제어 프레임을 사용, 반드시 토큰을 확보해야 함

    • 토큰 전달의 순서가 우선순위: 물리적 위치와 무관하게 결정

  • 토큰 링

    • 물리적으로 링 구조를 지원: 송신 호스트가 전송한 프레임이 한 바퀴 돈 후 송신 호스트에게 되돌아오게 설계

    • 송신 호스트는 자신에게 되돌아온 프레임이 올바르게 전송되었음을 확인 후, 데이터 프레임을 회수하고, 토큰 프레임을 링에 반환함

    • 호스트의 동작 방식: 대기 모드, 전송 모드

      (e.g. 내가 보낸 데이터를 다시 받음 -> 전송이 제대로 됐구나!, 토큰을 다음 호스트에게 넘김)

    • 대기 모드

      • 입력단으로 들어온 데이터를 바로 출력단으로 보냄
        (Buffer(input->output) 그대로 넘겨 보내줌)

      • 호스트가 다운되거나 기타 장애가 발생해도 네트워크에 영향을 주지 않기 위함
        (Buffer만 경유하기 때문에 CPU가 죽어도 통신에 영향 안줌)

    • 전송 모드

      • 토큰을 확보해 데이터를 전송할 수 있는 권한을 보유한 상태

      • 호스트가 중개 기능을 수행하며, 출력단을 통해 데이터를 전송할 수 있음

  • 송신 호스트가 전송한 프레임이 링을 한 바퀴 돈 후 송신 호스트에 되돌아옴

  • 프레임이 올바르게 전송되면 데이터 프레임을 회수하고 토큰 프레임을 링에 반환

    ( 다음 호스트에게 전해줌(순서는 네트워크 관리자가 임의로 정함) -> 데이터를 가장 빈번하게 사용하는 호스트에 우선순위 부여)

이더넷

이더넷과 신호 감지 기능

  • 신호 감지 (Carrier Sense) 프로토콜

    • 전송 매체의 신호를 감지해 프레임의 전송 여부를 결정
  • 1-persistent CSMA: IEEE 802.3은 LAN 환경에 관해 규정한 표준

    • 프레임을 전송하기 전에 채널 사용 여부를 확인

    • 채널이 사용 중이면 유휴 상태가 될 때까지 대기

    • 채널이 유휴 상태가 되면 확률 1의 조건으로 프레임을 전송: 두 호스트가 동시 가능(충돌 가능)

  • Non-persistent CSMA

    • 프레임을 전송하기 전에 채널 사용 여부를 확인
    • 채널이 사용 중이면 더 이상 유휴 상태를 확인하지 않음
    • 대신 임의의 시간 동안 대기 후 다시 채널 감지를 시작 (효율성 떨어짐)
    • 1-persistent 방식보다 충돌 확률을 줄일 수 있음
  • p-persistent CSMA

    • 슬롯 채널 방식에서 많이 사용

    • 채널이 유휴 상태면 p의 확률로 프레임을 전송, 채널이 사용 중이면 다음 슬롯을 기다린 후 앞의 과정을 반복

  • CSMA/CD

    • 둘 이상의 호스트에서 채널이 유휴 상태라고 판단할 수 있음

    • 이런 경우 프레임 전송 과정에서 충돌이 발생

    • 따라서 충돌 감지 기능이 필수적으로 요구됨

    • 충돌이 감지되면 진행중인 프레임의 전송을 중지

    • IEEE 802.3 표준안에서 전송 케이블의 최대 길이, 한 케이블 내 호스트의 수, 호스트 간의 간격 등을 다룸

이더넷의 연결

  • 굵고 긴 전송케이블로 된 전송 매체에 트랜시버(Transceiver = transmit + receive) 장비로 보조선을 연결해 각 호스트를 연결

  • 트랜시버는 호스트를 전송 케이블에 연결하기 위한 송수신 장치

  • 트랜시버는 충돌이 발생했음을 알려줌으로써 무의미한 프레임 전송을 억제

  • 리피터 (Repeater)는 단순히 신호를 증폭하여 이웃하는 케이블로 넘겨주는 기능

  • 왼쪽 케이블에서 전송되는 신호는 리피터를 통해 오른쪽으로 전달, 반대 방향으로도 신호를 증폭해 전달

프레임 구조

  • MAC 프레임: MAC 계층 프로토콜에 정의된 MAC 헤더와 트레일러 정보를 추가한 것

  • MAC 프레임은 LLC 계층에서 보낸 정보를 전송 데이터를 취급, 데이터 앞에는 헤더가 뒤에는 트레일러가 위치

  • 이더넷 프레임 구조

    • 필드의 단위는 바이트

    • Source Address와 Destination Address 필드: 6바이트의 MAC 주소를 사용

    • Data와 Padding 필드: 가변 길이를 지원

    • Data 필드 왼쪽에 위치한 필드들은 헤더, 오른쪽은 트레일러에 속함

  • 헤더와 트레일러에서 정의한 필드의 의미

    • Preamble(프리엠블): 7바이트 크기로, 수신 호스트가 송신 호스트의 클록과 동기를 맞출 수 있도록 시간 여유를 제공하는 것이 목적(각 바이트: 10101010 패턴)

    • Start Delimiter(시작 구분자): 프레임이 시작된다는 의미로 사용, Preamble 필드와 구분하기 위해 10101011의 값을 가짐

    • Source Address/Destination Address(송신 호스트 주소/수신 호스트 주소): MAC 계층에서는 호스트를 구분하는 고유의 MAC 주소를 사용. MAC 주소 값은 보통 LAN 카드에 내장되어 제공됨

    • Length/Type: 필드 값이 1,500 이하이면 Data 필드의 데이터 크기를 의미하는 Length로 해석하고, 그렇지 않으면 Type으로 해석

    • Length(길이): Data 필드에 포함된 가변 길이의 전송 데이터 크기
      (최대 1,500, 최소 46 바이트 (데이터+Padding))

    • Type(종류): 이더넷 프레임에 캡슐화된 상위 프로토콜의 패킷 종류를 구분

    • Checksum(체크섬): 데이터 전송 과정에서 데이터 변형 오류의 발생 여부를 수신 호스트가 확인할 수 있도록 호스트가 값을 기록
      (Preamble, Start Delimeter, Checksum을 제외한 나머지 필드의 CRC 값)

  • LLC 프레임 캡슐화

    • 이더넷 프레임에서 Data 필드를 제외한 필드들이 MAC 계층에서 추가하는 정보

    • LLC 프레임(LLC헤터+Data)은 MAC계층(Ethernet)에서의 Data 필드가 됨

  • 허브와 스위치

    • 허브: 박스 형태의 잭을 연결해서 이더넷 네트워크를 구성

    • 스위치 허브: 허브의 성능을 향상시킨 장비 (연결 호스트간 연결을 스위칭 기능을 통해서 전송속도를 N배 높임)

  • 허브

    • 각 호스트는 외향상 허브에 스타형 구조로 연결
    • 허브의 내부 동작은 공유 버스 방식
  • 스위치

    • 모든 호스트에게 프레임을 전송하지 않음: 중앙의 허브에 스위칭 기능이 있음

    • 목적지로 지정된 호스트에게만 프레임 전송

    • 따라서 동시에 여러 호스트가 데이터를 전송할 수 있음

    • 장점

      • 스위치 허브의 용량이 허용되면 각각의 호스트는 할당된 LAN 용량을 모두 사용함
      • 일반 허브를 스위치 허브로 교체하는 과정이 간단함

토큰 버스

프레임 구조

  • LLC 계층에서 내려온 LLC 프레임을 수신호스트에 전달하려면 토큰 버스 프레임을 만들어야 함

  • 토큰 버스 프레임의 구조: 단위 -> 바이트

    • 데이터 프레임과 토큰 프레임을 구분하기 위한 Frame Control 필드가 추가됨

  • 헤더와 트레일러에 정의된 필드의 기능

    • Start Delimiter/End Delimiter(시작 구분자/ 끝 구분자)

    • Preamble/ Source Address/ Destination Address/ Checksum(프리엠블/ 송신호스트 주소/ 수신호스트 주소/ 체크섬)

    • Frame Control(프레임 제어)

      • 데이터 프레임과 제어 프레임을 구분.

        데이터 프레임 -> 프레임 우선순위와 수신 호스트의 응답 확인이 필요할 때 사용 / 제어 프레임 -> 토큰의 전달, 링 관리 용도로 사용

        (예, TT=00 일때, 00001000이 토큰프레임, TT-01 일때, LLC계층에서 내려옴 데이터 프레임)

      • 토큰 버스에서 우선순위는 값이 0,2,4,6 인 네 개의 클래스로 나누며, 숫자가 클수록 우선순위가 높다. 토큰 프레임은 우선순위 6

LLC 프레임 캡슐화

  • LLC 프레임의 좌우에 토큰 버스 프레임의 헤더와 트레일러 정보가 채워지면 물리 계층이 수신 호스트로 전송

  • 수신 호스트의 MAC 계층은 토큰 버스 프레임의 헤더와 트레일러 정보를 떼어내고, 상위 계층인 LLC 프로토콜에는 LLC 프레임 정보만 올림

프레임 구조

  • 토큰 링 프레임 (Token Ring Frame)
    • 토큰 프레임: SD, AC, ED 필드 (그림의 (a))

    • 데이터 프레임 (그림의 (b))

    • 모니터: 특별한 기능을 수행하는 관리 호스트 존재
      -> 오류제어: 토큰 프레임 상실, 데이터 프레임의 무한 순환

LLC 프레임 캡슐화

  • LLC 계층에서 MAC 계층으로 전송 요청이 내려온 LLC 프레임을 토큰 링 프레임의 구조로 캡슐화하는 과정

프레임 필드의 의미: 토큰링 프레임 구조에서

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

    • End Delimiter 필드

      • I 비트는 데이터 프레임을 여러 개로 나누어 전송하는 경우에 사용
        : 처음과 중간은 1로, 마지막은 0으로 지정
      • E 비트는 오류 검출용
  • Access Control 필드
    • 우선순위 비트: 토큰의 우선순위보다 높은 프레을 전송할 수 있음

    • 토큰 비트: 토큰 프레임과 일반 프레임을 구분, 토큰 프레임은 값이 0

    • 모니터 비트: 오류 발생 시 링 주위를 무한정 순환을 막기 위해 특정 호스트를 모니터로 지정, 모니터 호스트는 이 프레임을 링에서 제거함

  • Frame Control
    • LLC 계층에서 목적지 호스트로 전송해줄 것을 요청한 LLC 프레임과 토큰 링 프로토콜에서 사용하는 제어용 프레임을 구분하는데 사용


    • TT 비트=00: 제어 기능을 수행하는 프레임을 위해 정의, CCCCCC 비트의 코드 값으로 제어 명령의 종류를 구분

    • TT 비트=01: 상위 계층인 LLC 계층에서 전송을 요구한 LLC 프레임을 의미

  • Frame Status

    • 토큰 링 프레임의 맨 마지막에 위치, 프레임의 수신 호스트가 송신 호스트에 응답할 수 있도록 함

    • 두 개의 플래그 비트 A,C 필드로 정의

      • 한 쌍의 값이 동일한 경우에만 유효한 응답으로 정의, 다르면 0으로 처리되어 무시됨
    • A 비트: 목적지로 지정한 수신 호스트에서 데이터 프레임이 링 인터페이스를 통해 자신에게 전달되면 해당 프레임에 접근했다는 표시로 1 지정 (Access 의미)

    • C 비트: 입력된 데이터 프레임의 수신 호스트가 자신의 주소와 동일한 프레임이 지나가면 프레임을 내부 버퍼에 보관했다는 표시로 1 지정 (Copy 의미)

수정해야 될 부분이 있으면 댓글로 알려주세요 :)

profile
I want to be coool and chilll developer...

0개의 댓글