LAN계층은 좁은 지역에서 구성되는 네트워크로 전송효율을 중요시하는 연결방식이다.
효율은 상황마다 다르기 때문에 그 연결 형식이 다양하게 존재한다. 따라서 전송 선로의 특성과 매체간 연결 방식에 따른 처리 계층이 필요한데 이를 MAC계층에서 담당한다.
사실 LAN에서의 데이터링크계층은 두가지로 나뉜다.
- LLC
- MAC
LLC 계층은 일반적인 데이터 링크 계층의 기능을 수행한다. 뭐 오류제어라던지 흐름제어라던지...
사실 WAN에서는 MAC계층이 존재하지 않는다. LAN의 다양한 연결형식 때문에 LAN의 데이터 링크 계층에 MAC 계층이 추가된 것이라고 생각하면 된다.
MAC계층은 전송선로의 물리적 특성을 반영한다. 이는 LAN의 구조에 따라 다양하다.
LLC계층은 큰 영향을 받지는 않지만 부분적으로 영향을 받는다.
이더넷의 경우는 슬라이딩 윈도우 프로토콜을 사용하고, 토큰링의 경우 데이터 프레임 내부의 수신공간을 체크하는 것이 이에 해당한다.
다양한 형태의 연결 방식이 존재하기에 이를 표준화해서 정리할 필요가 있는데 이를 국제 표준화기구인 IEEE에서
IEEE 802 시리즈로 발표했다.
- LLC -> IEEE 802.2 : LAN 구조에 크게 영향을 받지 않기 때문에 공통의 표준안 사용
- MAC -> [CSMA/CD : IEEE 802.3 / 토큰버스 : IEEE 802.4 / 토큰링 : IEEE 802.5 / 기타 : IEEE 802.#] MAC 계층의 경우 전송매체의 특성에 따라 달라지므로 각각의 표준안이 필요하다.
CSMA/CD (Ethernet)
Multi Access Channel 방식을 이용하므로 공유전송매체를 통해 데이터 프레임을 전송시에 항상 충돌의 위험이 존재한다.
충돌을 허용하는 방식으로 이더넷이 있고 차단하는 방식으로는 토큰과 타임슬롯 방식이 있다.
충돌을 허용하는 이더넷은 충돌을 감지하는 기능을 송신호스트가 반드시 가지고 있어야 한다.
먼저 이더넷 내부의 공유버스에 데이터가 전송되고 있는지 확인할 필요가 있다. 전송선로에 흐르는 전기신호를 감지함으로 확인하는데 신호감지 프로토콜(CSMA)를 사용한다.
CSMA
1. 1-persistent CSMA
전송 전 전송채널이 사용중인지 확인한다. 만약 다른 호스트에서 사용중이라면 선로가 유휴상태가 될 때 까지 기다린다. 선로가 유휴상태가 됐다고 판단하면 1의 확률, 즉 100%의 확률로 데이터를 전송한다.
이때 두 개 이상의 호스트가 동시에 선로가 유휴상태라고 판단하면 충돌이 발생한다. 충돌이 발생하면 임의시간동안 대기 후 다시 전송채널이 사용중인지를 확인한다.
2. Non-persistent CSMA
전송 전 전송채널이 사용중인지 판단한다. 만약 다른 호스트에서 사용중이라면 더는 선로 탐색을 진행하지 않는다.
그리고 임의시간 대기 후 다시 전송채널을 확인한다.
전송채널이 유휴상태임을 확인하자 마자 데이터 프레임을 전송하지 않으므로 상대적으로 충돌 확률이 낮다.
3. P-persistent CSMA
주로 슬롯채널 방식에서 사용한다.
전송 전 전송채널이 사용중인지 판단한다. 전송선로가 유휴상태라고 판단하면 p의 확률로 데이터를 전송한다.
만약 다른 호스트가 채널을 사용중이라면 다음 슬롯이 올 때까지 기다린다.
CSMA는 기본적으로 유휴상태를 두 호스트가 동시에 확인할 가능성이 높다. 따라서 이에 대한 개선안으로 CSMA/CD 방식을 이용한다. CD란 Collision Detection으로 충돌 감지기능이 추가된 것이다.
충돌이 일어날 것이라 판단되면 프레임 전송을 멈추어 무의미한 데이터 전송을 억제한다.
CSMA에서는 전송 케이블에 호스트를 직접 연결한다. 하지만 CSMA/CD방식에서는 허브와 스위치 허브를 사용한다.
허브란 상자 형태의 기기에 랜 포트를 구성해 외부적으로는 스타형 연결 방식이지만 내부 로직은 공유버스 형태를 띄는 호스트 연결 기기이다. 프레임이 모든 호스트들에게 전송되기 때문에 호스트들이 전송대역을 나누어 사용할 수 밖에 없다.
스위치 허브란 허브에 교환기능이 추가된 장치로 목적지 호스트만 데이터를 전송받는다. 다른 호스트가 전송중이여도 교환 기능 덕분에 모든 호스트들이 같은 속도로 데이터 프레임을 전송할 수 있다.
토큰버스
이더넷의 문제점은 네트워크 트래픽이 심할 때 특정 호스트가 오랫동안 프레임을 전송하지 못하는 경우가 생길 수 있다는 것과 우선순위가 없어서 중요도를 표시하지 못하는 것이다.
이러한 문제를 해결하려면 호스트들이 순서를 정해 프레임을 전송하는 기능이 필요한데 이를 토큰을 이용해 해결한다.
물리적으로는 CSMA/CD와 방식이 비슷하지만 논리적으로는 링 구조를 띈다.
호스트들이 이웃하는 순서는 위치적 가까움이 아니라 고유번호에 따라 달려있다. 높은 번호는 우선 연결하고, 토큰 프레임을 선점한다.
토큰링
토큰 링 구조에서는 전송매체가 점대점으로 호스트들을 순환적으로 연결한 구조로 LAN을 구성한다.
각 호스트들 마다 데이터의 입력단과 출력단을 구성하는 링 인터페이스가 존재한다.
링 인터페이스는 대기모드와 전송모드가 존재한다.
호스트의 인터페이스가 대기모드일 때 입력단으로 들어온 데이터를 출력단으로 바로 내보내버린다. - 수신하지 않는다.
그렇기에 만일 호스트가 다운되어도 대기모드가 돼 네트워크에 영향을 주지 않는다.
전송모드 일 때는 토큰을 획득해 전송권한을 얻은 상태이다.
인터페이스의 입-출력단의 논리적 연결이 끊어졌지만 네트워크가 호스트간의 중개를 통해 연결된다.
프레임이 송신 호스트에 반드시 돌아오도록 설정해야한다. 송신호스트는 수신호스트가 데이터를 잘 받았는지 데이터 프레임 내부의 특정 위치에 적힌 수신완료 시그널을 확인한 후에 토큰을 네트워크에 반납해 다른 호스트가 데이터를 전송할 수 있도록 한다.
수신 호스트는 프레임 내부에 특정 위치에 정상 수신했다는 표시를 해줘야 송신 호스트가 토큰을 큰 노력을 들이지 않고 반환할 수 있다.
토큰링의 호스트 중에서 다른 호스트와 구별되는 특별한 기능을 수행하는 관리 호스트를 모니터라 부른다.
예를들어 링에 토큰 프레임이 사라졌다...! 싶으면 모니터 호스트에서 토큰을 새로 생성해 네트워크에 던져서 정상 작동하도록 만들어준다.
'Computer Science > Computer Network' 카테고리의 다른 글
IP 프로토콜 (0) | 2021.11.26 |
---|---|
데이터 링크 계층 (0) | 2021.11.24 |
데이터 전송의 기초 (0) | 2021.11.17 |
네트워크 기술 (0) | 2021.11.12 |
네트워크 모델 (0) | 2021.11.09 |