MAC 계층과 IEEE 802 시리즈
MAC 계층의 이해
- LAN 환경에서 계층 2기능을 MAC과 LLC 계층으로 분리
- LLC 계층: 데이터 링크 계층의 기본 기능
- MAC 계층: 전송 선로의 특징과 매체 간의 연결 방식에 따른 제어
MAC 계층
- MAC(Media Access Control)계층: 물리적 연결 방식에 따른 데이터 전송 방법
이더넷
- 공유 버스 방식 지원
- 둘 이상의 호스트에서 동시에 데이터 프레임 전송을 시도하면 충돌 발생
토큰 링 방식
- 링 구조를 지원
- 토큰이라는 특정 패턴의 제어 데이터가 링을 순환
- 토큰을 확보하여 전송 후 토큰은 링에 내려놔야 함
- 각 호스트에 전송 우선순위를 부여할 수 있음
IEEE 802 시리즈
- IEEE 802.1: 표준안 전체를 소개
- IEEE 802.2: LLC 계층을 소개
- IEEE 802.3 부터: 물리 계층에 따른 MAC 계층을 소개
다중 접근 채널 방식
충돌 해결 방법
- 충돌 허용 후 문제 해결
- 충돌 발생 후 문제를 해결한다.
- CSMA/CD: 유선 매체
- CSMA/CA: 무선 매체
- 충돌 회피
- 충돌이 발생할 가능성을 원천적으로 차단한다.
- 호스트에 타임슬롯 배정: 토큰 버스
CSMA/CD
- 충돌 감지 기능이 필수적으로 요구됨
- 충돌 감지 후, 재전송 기능으로 오류 복구
- 공유 매체의 길이가 길수록 전송 지연이 증가하여 충돌 가능성이 높아짐
토큰 버스
- (time slot 할당 방법)
- 물리적인 버스 구조(점선)로 연결되지만 논리적인 프레임 전달은 링 구조(실선)
- 토큰이라는 제어 프레임을 사용, 반드시 토큰을 확보해야 함
토큰 링
- 물리적으로 링 구조를 지원
- 호스트의 동작 방식: 대기 모드, 전송 모드
- 대기 모드
- 입력단으로 들어온 데이터를 바로 출력단으로 보냄
- 호스트가 다운되거나 기타 장애가 발생해도 네트워크에 영향을 주지 않기 위함
- 전송 모드
- 토큰을 확보해 데이터를 전송할 수 잇는 권한을 보유한 상태
- 호스트가 중개 기능을 수행하며, 출력단을 통해 데이터를 전송할 수 있음
- 송신 호스트가 전송한 프레임이 링을 한바퀴 돈 후 송신 호스트에 되돌아옴
- 프레임이 올바로 전송되면 데이터 프레임을 회수하고 토큰 프레임을 링에 반환
이더넷
IEEE 802.3
- 1-persistent CSMA/CD 방식의 LAN 환경에 관해 규정한 표준안
- 공유버스로 연결한 호스트 간의 데이터 전송에 관한 사항
- Ethernet
- 802.3 표준안을 구현한 제품
- 현재는 일반화된 용어로 사용한다.
이더넷 구성
- 이더넷과 신호 감자 기능
- 1-persistent, None-persistent, p-persistent, CSMA/CD
- 프레임 구조
- LLC 프레임 캡슐화
- 허브와 스위치
이더넷과 신호 감지 기능
-
신호 감지 프로토콜
- 전송 매체의 신호를 감지해 프레임의 전송 여부를 결정
-
1-persistent CSMA
- 프레임을 전송하기 전에 채널 사용 여부를 확인
- 채널이 사용 중이면 유휴 상태가 될 때까지 계속 대기
- 채널이 유휴 상태가 되면 확률 1의 조건으로 프레임을 전송
- 둘 이상의 호스트에서 동시에 전송 채널을 유휴 상태로 판단하면
- 충돌 발생 가능성이 있다. 충돌이 발생하면 임의 시간 대기 후 다시 채널 감시
-
Non-persistent CSMA
- 프레임을 전송하기 전에 채널 사용 여부를 한 번만 확인
- 채널이 사용 중이면 더 이상 유휴 상태를 확인하지 않음
- 대신 임의의 시간 동안 대기 후 다시 채널 감지를 시작
- 1-persistent 방식보다 충돌 확률을 줄일 수 있음
-
p-persistent CSMA
- 슬롯 채널 방식에서 많이 사용
- 채널이 유휴 상태이면 p의 확률로 프레임을 전송
- 채널이 사용 중이면 다음 슬롯을 기다린 후 앞의 과정을 반복
-
CSMA/CD
- 둘 이상의 호스트에서 채널이 유휴 상태라고 판단할 수 있음
- 이런 경우 프레임 전송 과정에서 충돌이 발생
- 따라서 충돌 감지 기능이 필수적으로 요구됨
- 충돌이 감지되면 진행중인 프레임의 전송을 중지
- 프레임 구조
- MAC 프레임: MAC 계층 프로토콜에 정의된 MAC 헤더와 트레일러 정보를 추가한 것
- MAC 프레임은 LLC 계층에서 보낸 정보를 전송 데이터로 취급, 데이터 앞에는 헤더가, 뒤에는 트레일러가 위치
- 이더넷 프레임 구조
- 필드의 단위는 바이트
- Source Address와 Destination Address 필드: 6바이트의 MAC 주소를 사용
- Data와 Padding 필드: 가변 길이를 지원
- Data 필드 왼쪽에 위치한 필드들은 헤더, 오른쪽은 트레일러에 속함
- 헤더와 트레일러에서 정의한 필드의 의미
- Preamble: 7바이트 크기로, 수신 호스트가 송신 호스트의 클록과 동기를 맞출 수 있도록 시간 여유를 제공하는 것이 목적 1010_1010
- Start Delimiter(시작 구분자): 프레임이 시작된다는 의미로 사용, Preamble 필드와 구분하기 위해 1010_1011의 값을 갖음
- Source Address/Destination Address: MAC 계층에서는 호스트를 구분하는 고유의 MAC 주소 사용
- Length/Type: 필드 값이 1500 이하이면 Data 필드의 데이터 크기를 의미하는 Length로 해석하고, 그렇지 않으면 Type으로 해석
- Length: Data 필드에 포함된 가변 길이의 전송 데이터 크기
- Type: 이더넷 프레임에 캡슐화된 상위 프로토콜의 패킷 종류 구분
- Checksum: 데이터 전송 과정에서 데이터 변형 오류의 발생 여부를 수신 호스트가 확인할 수 있도록 송신 호스트가 값을 기록
LLC 프레임 캡슐화
- 이더넷 프레임에서 Data 필드를 제외한 필드들이 MAC 계층에서 추가하는 정보
허브와 스위치
- 허브: 박스 형태의 장비에 잭을 연결해서 이더넷 네트워크를 구성
- 스위치 허브: 허브의 성능을 향상시킨 장비
허브
- 각 호스트는 외형상 허브에 스타형 구조로 연결
- 허브의 내부 동작은 공유 버스 방식
스위치
- 모든 호스트에게 프레임을 전송하지 않음
- 목적지로 지정된 호스트에게만 프레임 전송(교환)
- 따라서 동시에 여러 호스트가 데이터를 전송할 수 있음
- 장점
- 스위치 허브의 용량이 허용되면 각각의 호스트는 할당된 LAN 용량을 모두 사용함
- 일반 허브를 스위치 허브로 교체하는 과정이 간단함
토큰 버스
Ethernet 문제점
- 네트워크 트래픽이 심할 때 특정 호스트가 오랫동안 프레임을 전송하지 못할 수 있다.
- 프레임의 우선순위가 규정되어 있지 않아 프레임의 중요도를 표현하기 어렵다.
링 구조의 토큰 버스
- 호스트가 순서를 정해서 프레임을 전송한다.
- 토큰 버스: 버스 구조에 토큰 방식을 논리적으로 구현
프레임 구조
- LLC 계층에서 내려온 LLC 프레임을 수신 호스트에 전달하려면 토큰 버스 프레임을 만들어야 함
- 토큰 버스 프레임의 구조
- 데이터 프레임과 토큰 프레임을 구분하기 위한 Frame Control 필드가 추가됨
- 헤더와 트레일러에 정의된 필드의 기능
- Start Delimiter/End Delimiter(시작 구분자/끝 구분자)
- Preamble/Source Address/Destination Address/Checksum
- Frame Control(프레임 제어)
- 데이터 프레임과 제어 프레임을 구분
- 00: 제어용 MAC 프레임
- 01: LLC 프레임
- 10: 네트워크 관리용 데이터 프레임
- 11: 예약
LLC 프레임 캡슐화
- LLC 프레임의 좌우에 토큰 버스 프레임의 헤더와 트레일러 정보가 채워지면 물리 계층이 수신 호스트로 전송
- 수신 호스트의 MAC 계층은 토큰 버스 프레임의 헤더와 트레일러 정보를 떼어내고, 상위 계층인 LLC 프로토콜에는 LLC 프레임 정보만 올림
토큰 링
- 점대점으로 연결한 호스트가 순환 구조로 LAN을 구성
- 토큰(제어 프레임)이 일정한 방향으로 순환
- 데이터 프레임을 보내려면 먼저 토큰을 확보해야 함
프레임 구조
- 토큰 링 프레임
- 토큰 프레임: SD, AC, ED 필드
- 데이터 프레임: SD, AC, ED, Destination Address, Source Address, Data, Checksum, ED, FS
LLC 프레임 캡슐화
- LLC 계층에서 MAC 계층으로 전송 요청이 내려온 LLC 프레임을 토큰 링 프레임의 구조로 캡슐화하는 과정
프레임 필드의 의미
- Start Delimiter/End Delimiter
- 프레임의 시작과 끝을 구분
- End Delimiter 필드
- I 비트는 데이터 프레임을 여러 개로 나누어 전송하는 경우에 사용
- E 비트는 오류 검출용
- Access Control
- 우선순위 비트: 토큰의 우선순위보다 높은 프레임을 전송할 수 있음
- 토큰 비트: 토큰 프레임과 일반 프레임을 구분, 토큰 프레임은 값이 0
- 모니터 비트: 오류 발생시 링 주위를 무한정 순화하는 것을 막기 위해 특정 호스트를 모니터로 지정, 모니터 호스트는 프레임에 M을 1로 만들고, 이것이 다시 돌아오면 링에서 제거함
- PPPTMRRR
- Frame Control
- LLC 계층에서 목적지 호스트로 전송해줄 것을 요청한 LLC 프레임과 토큰 링 프로토콜에서 사용하는 제어용 프레임을 구분하는 데 사용
- TTCCCCCC
- TT 비트=00: 제어 기능을 수행하는 프레임을 위해 정의, CCCCCC 비트의 코드 값으로 제어 명령의 종류를 구분
- TT비트=01: 상위 계층인 LLC 계층에서 전송을 요구한 LLC 프레임을 의미
- Frame Status
- 토큰 링 프레임의 맨 마지막에 위치, 프레임의 수신 호스트가 송신 호스트에 응답할 수 있도록 함
- 두 개의 플래그 비트 A, C 필드로 정의
- 한 쌍의 값이 동일한 경우에만 유효한 응답으로 정의, 다르면 0으로 처리되어 무시됨
- A 비트: 수신 호스트가 접근했다는 표시로 1 지정
- C 비트: 수신 호스트가 자신의 내부 버퍼에 보관했다는 표시로 1 지정
- AC00AC00