이전 글을 보고 오시면 이해하기 편합니다! (이전글 보고 오기)
LAN 환경에서는 네트워크 자원의 효율적 활용을 위해 2 계층(데이터링크 계층)의 기능을 MAC과 LLC계층으로 구분한다.
LLC 계층 : 데이터 링크 계층의 기본 기능
MAC 계층 : 물리 계층 기능
MAC 계층
- 이더넷
: 공유 버스 방식 지원, 둘 이상의 호스트에서 동시에 데이터 프레임을 전송하면 충돌
- 토큰 링 방식
: 링 구조를 지원, 토큰이라는 특정 패턴의 제어 데이터가 링을 순환
: 토큰을 확보하여 전송 후 토큰은 링에 내려놓아야 함
: 각 호스트에 전송 우선 순위를 부여할 수 있음
LLC 계층
- WAN 환경의 데이터 링크 계층과 기능을 수행, LAN의 특성에 부분적으로 영향을 받을 수 있다.
- 두 장비간의 링크 설정하고, 프레임을 송수신하는 방식과 상위 레이어 프로토콜 종류를 알리는 역할을 한다.
IEEE 802 시리즈
- 데이터 링크 계층과 관련된 다양한 LAN 표준안 연구 결과
- IEEE 802.1 : 관련 포준안 전체 소개
- IEEE 802.2 : LLC 프로토콜의 정의를 소개
- IEEE 802.3부터는 물리 계층과 MAC 계층에 대한 내용을 소개
IEEE 802.3 : CSMA/CD
- 공유 매체에서의 충돌을 허용하는 방법
https://solution-is-here.tistory.com/162에 CSMA/CD에 대해 정리한 글이 있습니다.
IEEE 802.4 : 토큰 버스
- 물리적인 버스 구조로 연결되어 있지만, 논리적인 프레임 전달은 링 구조
- 토큰이라는 제어 프레임을 사용, 토큰을 확보하고 데이터를 전달한다.
프레임 구조
- LLC 계층에서 내려온 LLC 프레임을 수신 호스트에 전달하려면 토큰 버스 프레임을 만들어야함
토큰 버스 프레임의 구조
- 필드는 바이트 단위
- 데이터 프레임과 토큰 프레임을 구분하기 위한 Frame Control 추가
Frame Control 필드 : 데이터 프레임과 제어 프레임을 구분
LLC 계층에서 목적지 호스트로 전송해 줄 것을 요청한 LLC 프레임고 토큰 링 프로토콜에서 사용하는 제어용 프레임을 구분하는 데 사용
-TT = 00인 경우
: 제어용 MAC 프레임, CCCCCC비트로 구분
: 00000001 - 스테이션 추가 허용
: 00000011 - 토큰 복구
: 00001000 - 토큰
: 00001100 - 스테이션 제거 허용
- TT=01인 경우
:상위 계층인 LLC 계층에서 내려온 전송데이터
허브와 스위치
IEEE 802.5 : 토큰 링
- 물리적인 링 구조로 연결
- 호스트는 대기, 전송 모드로 동작
- 토큰을 가진 pc만 데이터를 전송할 수 있습니다.
프레임 구조
- 데이터 프레임과 토큰 프레임으로 나눌 수 있다.
모니터
- 네트워크 관리와 관련된 기능을 수행한다.
Start Delimiter / End Delimiter
- 프레임의 시작과 끝을 구분한다.
- End Delimiter 필드
- I 비트는 데이터 프레임을 여러 개로 나누어 전송하는 경우에 사용
- E 비트는 오류 검출용
Access Control
- 우선순위 비트 : 토큰의 우선순위보다 높은 프레임을 전송할 수 있게 해 준다.
- 토큰 비트 : 토큰 프레임과 일반 프레임을 구분, 토큰 프레임은 값이 0
- 모니터 비트 : 오류로 인한 프레임 순환을 방지하기 위해 이용
Frame Control
- LLC 계층에서 목적지 호스트로 전송해 줄 것을 요청한 LLC 프레임과 토큰 링 프로토콜에서 사용하는 제어용 프레임을 구분하는 데 사용
- TT = 00인 경우
제어 기능을 수행하는 프레임을 위해 정의
- TT = 01인 경우
상위 계층인 LLC 계층에서 전송을 요구한 LLc 프레임을 의미
Frame Status
- 토큰 링 프레임의 맨 마지막에 위치하며, 프레임의 수신 호스트가 송신 호스트에 응답할 수 있게 함.
- 두 개의 플레그 비트 A,C 필드로 정의
A 비트
- 목적지로 지정된 호스트에서 데이터 프레임이 인터페이스를 통해 자신에게 전달되면 해당 프레임에 접근했다는 의미로 1로 변환
C비트 수신 호스트가 자신의 내부 버퍼에 프레임을 복사했다는 의미로 C비트를 1로 변환
*물리적인 신호가 잘 갔다면 A,C 둘 다 1이어야 한다.
- 대기 모드
: 입력으로 들어온 데이터를 바로 출력으로 보냄
- 그러므로 호스트가 다운되거나 기타 장애가 발생하면 대기 모드가 되어 네트워크의 동작에 영향을 주지 않습니다.
- 전송 모드
: 토큰을 확보한 상태, 출력으로 데이터를 전송할 수 있음
이더넷
이더넷은 IEEE 802.3 표준을 구현한 제품, 일반적으로 널리 쓰임
- 이더넷과 신호 감지 기능
: 전송 매체의 신호를 감지해 프레임의 전송 여부를 결정
- 이더넷의 연결
: 주 전송 케이블로 된 전송 매체에 트랜시버 장비로 보조선을 연결, 각 호스트를 연결한다.
- 트랜시버는 전송 선로의 신호 및 충돌 현상을 감지한다.
- 리피터는 신호를 증폭하여 이웃 케이블로 넘겨주는 기능을 한다. (물리적으로 랜선을 따서 연결하는 것)
프레임 구조
상위 계층인 LLC에서 내려온 프레임을 상대 호스트에 전송하려면 MAC 계층에서 정의된 프레임 구조에 맞게 포장해야 한다. MAC 계층 프로토콜에 정의된 MAC 헤더와 트레일러 정보를 추가한 것을 MAC 프레임이라 하며, 이더넷 프로토콜에서는 이더넷 프레임이라고 한다.
MAC 프레임 : MAC 계층 프로토콜에 정의된 MAC 헤더와 트레일러 정보를 추가한 것.
- MAC 프레임은 LLC 계층에서 내려보낸 정보를 전송 데이터로 취급, 데이터 앞에는 헤더가, 뒤에는 트레일러가 위치.
이더넷 프레임의 구조
- 필드의 단위는 바이트 단위
- Destination, Source의 주소는 6바이트 MAC 주소를 이용
- DATA + Padding는 가변적 데이터를 지원
- DATA 왼쪽이 헤더, 오른쪽이 트레일러
Preamble : 7바이트 크기로, 수신 호스트가 송신 호스트의 클록과 동기를 맞출 수 있도록 시간적 여유를 제공하는 것을 목적으로 각 바이트는 101010 비트 패턴을 포함
Start Delimiter : 프레임이 시작된다는 의미로 사용, Preamble과 구분하기 위해 10101011비트 패턴을 가짐
Source / Destination Address : MAC 계층에서 호스트를 구분하기 위한 고유 주소인 MAC주소를 사용
Length / Type : 필드 값이 1500 이하면 data필드의 크기를 의미하는 Length, 그렇지 않으면 Type으로 해석
Length : Data 필드에 포함된 가변 길이의 전송 데이터 크기
Type : 이더넷 프레임에 캡슐화된 상위 프로토콜의 패킷 종료 구분
Checksum : 데이터 전송 과정에서의 변형 오류 발생을 파악하기 위한 값을 기록
LLC 프레임 캡슐화
- 이더넷 프레임에서 Data 필드를 제외한 필드들이 MAC 계층에서 추가하는 정보
네트워크 계층에서 전송을 요구한 패킷은 LLC 계층으로 내려오면서, LLC 헤더 정보를 추가해 LLC 프레임이 된다.
LLC 프레임은 다시 MAC 계층으로 내려오는데, 이 과정에서 MAC 헤더와 MAC 트레일러 정보를 추가한다.
- 이더넷의 문제점은 네트워크 트래픽이 심할 때, 특정 호스트가 오랫동안 프레임을 전달하지 못할 우려가 있으며, 프레임의 우선순위가 없음
- 이러한 문제를 해결하기 위해, 호스트가 순서를 정해 차례로 프레임을 전송하기 위한 기능이 필요하다.
허브
- 각 호스트는 외형상 허브에 스타형으로 연결(스타형 구조란? 하나의 중개 호스트 주위로 여러 호스트를 일대일로 연결하는 형태 ex) 눈 결정 모양)
- 허브의 내부 동작은 공유 버스 방식
스위치 허브
- 모든 호스트에게 프레임을 전송하지 않고, 목적지로 지정된 호스트에게만 프레임을 전송
- 허브는 공유 버스 방식으로 모든 호스트에게 정보를 전달하는 반면 스위치 허브는 정해진 호스트에게만 프레임을 전송한다.
- 따라서 동시에 여러 호스트가 데이터를 전송할 수 있음