Study/Network

[네트워크] MAC 계층

ChoiSenn 2022. 5. 8. 20:12

 

 

 

 

MAC계층과 IEEE 802 시리즈

MAC계층의 이해
 - LAN 환경에서 계층 2 기능을 MAC과 LLC 계층으로 분리
 - MAC 계층 : 물리 계층 기능
        - 물리적 특성 반영
        - 이더넷 : 공유 버스 방식 지원, 둘 이상의 호스트에서 동시에 데이터 프레임 전송을 시도하면 충돌 발생
       - 토큰 링 방식 : 링 구조 지원. 토큰이라는 특정 패턴의 제어 데이터가 링을 순환.
        토큰을 확보하여 전송 후 토큰은 링에 내려놔야함. 각 호스트에 전송 우선순위 부여 가능.
 - LLC 계층 : 데이터 링크 계층의 기본 기능
        - WAN 환경의 데이터링크 계층과 기능을 수행.
 - IEEE 802.1 : 표준안 전체를 소개
 - IEEE 802.2 : LLC 계층을 소개
 - IEEE 802.3 부터 : 다양한 환경의 MAC 계층을 소개

CSMA/CD
 - 공유 매체에서의 충돌 문제 해결
        - 충돌 허용 방식 : CSMA/CD
        - 충돌 회피 방식 : 전송 시간대를 달리하는 타임 슬롯 방식
 - CSMA/CD
        - 충돌 감지 기능이 필수적으로 요구됨
        - 충돌 감지 후, 재전송 기능으로 오류 복구
        - 공유 매체의 길이가 길수록 전송 지연이 증가하여 충돌 가능성이 높아짐.
        - 데이터 전송 원리 : 호스트가 데이터 전송 시 전송 프레임에 목적지 주소를 기록하여 수신 호스트 지정.
            목적지 주소를 보고 내꺼 아니면 그냥 보냄.
 - 토큰 버스
        - 물리적인 버스 구조(점선)로 연결되지만 논리적인 프레임 전달은 링 구조.
        - 토큰이라는 제어 프레임을 사용, 반드시 토큰을 확보해야 함.
 - 토큰 링
        - 물리적으로 링 구조 지원
        - 호스트의 동작 방식 : 대기 모드, 전송 모드
        - 대기 모드 : 입력단으로 들어온 데이터를 바로 출력단으로 보냄.
호스트가 다운되거나 기타 장애가 발생해도 네트워크에 영항을 주지 않기 위함.
        - 전송 모드 : 토큰을 확보해 데이터를 전송할 수 있는 권한을 보유한 상태.
호스트가 중개 기능을 수행하며, 출력단을 통해 데이터를 전송할 수 있읍.
        - 송신 호스트가 전송한 프레임이 링을 한 바퀴 돈 후 송신 호스트에 되돌아옴.
        - 프레임이 올바르게 전송되면 데이터 프레임을 회수하고 토큰 프레임을 링에 반환.




이더넷

이터넷과 신호 감지 기능
 - 신호 감지 프로토콜
        - 전송 매체의 신호를 감지해 프레임의 전송 여부 결정.
        - 1-presistent CSMA
        - 프레임을 전송하기 전에 채널 사용 여부를 확인
        - 재널이 사용 중이면 유휴 상태가 될 떄까지 대기
        - 채널이 유휴 상태가 되면 확률 1의 조건으로 프레임을 전송
 - Non-persistene CSMA
        - 프레임을 전송하기 전에 채널 사용 여부를 확인
        - 채널이 사용 중이면 더 이상 유휴 상태를 확인하지 않음
        - 대신 임의의 시간 동안 대기 후 다시 채널 감지를 시작
        - 1-persistent 방식보다 충돌 확률을 줄일 수 있음
 - p-persistent CSMA
        - 슬롯 채널 방식에서 많이 사용
        - 채널이 유휴 상태이면 p의 확률로 프레임을 전송, 채널이 사용 중이면 다음 슬롯을 기다리고 앞의 과정 반복
 - CSMA/CD
        - 둘 이상의 호스트에서 채널이 유휴 상태라고 판단할 수 있음
        - 이런 경우 프레임 전송 과정에서 충돌이 발생
        - 따라서 충돌 감지 기능이 필수적으로 요구됨
        - 충돌이 감지되면 진행중인 프레임의 전송을 중지
 - 이더넷의 연결
        - 굵고 긴 전송케이블로 된 전송 매체에 트랜시버 장비로 보조선을 연결해 각 호스트를 연결
        - 트랜시버는 호스트를 전송 케이블에 연결하기 위한 송수신 장치
        - 트랜시버는 충돌이 발생했음을 알려줌으로써 무의미한 프레임 전송을 억제
        - 리피터는 단순히 신호를 증폭하여 이웃하는 케이블로 넘겨주는 기능
        - 왼쪽 케이블에서 전송되는 신호는 리피터를 통해 오른쪽으로 전달, 반대 방향으로도 신호를 증폭해 전달
 - 프레임 구조
        - MAC 프레임 : MAC 계층 프로토콜에 정의된 MAC 헤더와 트레일로 정보를 추가한 것.
        - MAC 프레임은 LLC 계층에서 보낸 정보를 전송 데이터로 취급, 데이터 앞에는 헤더가, 뒤에는 트레일러가.
        - 이더넷 프레임 구조
        - 필드의 단위는 바이트
        - 출발지 주소와 도착지 주소 필드 : 6바이트의 MAC 주소 사용
        - Data와 Padding 필드 : 가변 길이를 지원
        - Data 필드 왼쪽에 위치한 필드들은 헤더, 오른쪽은 트레일러에 속함

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

허브와 스위치
 - 허브 : 박스 형태의 장비에 잭을 연결해서 이더텟 네트워크를 구성
        - 각 호스트는 외형상 허브에 스타형 구조로 연결
        - 허브의 내부 동작은 공유 버스 방식
 - 스위치 허브 : 허브의 성능을 향상시킨 장비
        - 모든 호스트에게 프레임을 전송하지 않음
        - 목적지로 지정된 호스트에게만 프레임 전송
        - 따라서 동시에 여러 호스트가 데이터를 전송할 수 있음

프레임 구조
 - LLC 계층에서 내려온 LLC 프레임을 수신 호스트에 전달하려면 토큰 버스 프레임을 만들어야 함
 - 토큰 버스 프레임의 구조 : 데이터프레임과 토킅 프레임을 구분하기 위한 Frame Control 필드가 추가됨
 - 헤더와 트레일러에 정의된 필드의 기능
        - 시작 구분자/끝 구분자 : 프레임의 시작과 끝을 의미하는 경계를 표시
        - 프리엠블/송신호스트 주소/수신호스트 주소/체크섬 : 이더넷 프레임과 기능이 동일
        - 프레임 제어 : 데이터 프레임과 제어 프레임을 구분

LLC 프레임 캡슐화
 - LLC 프레임의 좌우에 토큰 버스 프레임의 헤더와 트레일러 정보가 채워지면 물리 계층이 수신 호스트로 전송
 - 수신 호스트의 MAC 계층은 토큰 버스 프레임의 헤더와 트레일러 정보를 떼어내고,
    상위 계층인 LLC 프로토콜에는 LLC 프레임 정보만 올림.

프레임 구조
 - 토큰 링 프레임
        - 토큰 프레임 : SD, AC, ED 필드
        - 데이터 프레임
        - 모니터 : 특별하 기능을 수행하는 관리 호스트

프레임 필드의 의미
 - Start Delimiter/End Delimiter
        - 프레임의 시작과 끝을 구분
        - End Delimiter 필드 : I 비트는 데이터프레임을 여러 개로 나누어 전송하는 경우에 사용
            E 비트는 오류 검출용
 - Access Control
        - 우선순위 비트 : 토큰의 우선순위보다 높은 프레임을 전송 가능
        - 토큰 비트 : 토큰 프레임과 일반 프레임을 구분, 토큰 프레임은 값이 0
        - 모니터 비트 : 오류 발생 시 링 주위를 무한정 순환을 막기 위해 특정 호스트를 모니터로 지정,
        모니터 호스트는 이 프레임을 링에서 제거함
 - Frame Control
        - LLC 계층에서 목적지 호스트로 전송해줄 것을 요청한 LLC 프레임과 토큰 링 프로토콜에서 사용하는
        제어용 프레임을 구분하는 데 사용
        - TT 비트=00 : 제어 기능을 수행하는 프레임을 위해 정의, CCCCCC 비트의 코드값으로 제어 명령 종        류 구분
        - TT 비트=01 : 상위 계층인 LLC 계층에서 전송을 요구한 LLC 프레임을 의미
 - Frame Status
        - 토큰 링 프레임의 맨 마지막에 위치, 프레임의 수신 호스트가 송신 호스트에 응답할 수 있도록 함
        - 두 개의 플래그 비트 A, C 필드로 정의
        (한 쌍의 값이 동일한 경우에만 유효한 응답으로 정의, 다르면 0으로 처리되어 무시)
        - A 비트 : 수신 호스트가 접근했다는 표시로 1 지정
        - C 비트 : 수신 호스트가 자신의 내부 버퍼에 보관했다는 표시로 1 지정