컴퓨터 네트워크 #24
목차 - LAN
- CSMA/CD, 토큰 버스, 토큰 링
CSMA/CD( carrier sense multiple access/collision detection)
이더넷은 LAN 에서 사용하는 컴퓨터 네트워크 기술 중 하나이다.
CSMA/CD는 그런 이더넷이 사용하는 많은 기술 중 가장 많이 쓰이는 기술 중 하나이다.
직역하면 반송파 감지 다중 접속 및 충돌 방지 라는 의미이다.
쉽게 말하면 브로드캐스트에서 충돌을 막는 방법이다.
전 포스트에서 언급했듯이, 공유 버스 구조에서는 다수의 호스트가 송신한 프레임이 공유 매체에서 충돌하는 현상이 일어난다.
따라서, 프레임이 충돌로 깨지기 전에 감지하거나, 충돌로 깨진 프레임을 송신 호스트에서 인지하도록 하는 기술(=충돌 감지 기능) 이 필요하다.
신호 감지 기능
- 공유 버스 구조에서 다른 호스트가 공유버스를 사용하고 있는지 확인하는 기능
- 신호 감지(carrier sense) 프로토콜 : 전송 매체의 신호를 감지해 프레임의 전송 여부를 결정하는 프로토콜
- 선로의 지연이 성능에 영향을 준다.
- 신호를 감지한다는 것은 Channel Busy 를 계속 체크한다는 의미
1-persistent CSMA
- 다른 호스트가 채널을 사용중이면 대기한다.
- 어느 순간에 채널이 유휴 상태(사용X)되면 바로 프레임을 전송
- 문제점 : 모든 호스트가 이 기능을 사용한다면, 둘 이상의 호스트가 발생 시 채널이 유휴 상태라고 판단해 프레임을 전송하게 되고, 충돌이 발셍한다.
- 충돌이 발생할 경우, 임의시간 동안 대기 한 후 전송 채널 감지(유휴 상태인가?)를 다시 시작
- 충돌 발생할 가능성이 높다.
- idle(채널이 노는 시간)이 적다(낮다).
non - persistent CSMA
- 채널이 사용중이라고 판단되면, 더 이상 채널의 유휴 상태를 확인하지 않는다.
- 임의의 시간 동안 기다렸으면 다시 채널 유휴 상태를 확인(= 채널 감지)을 시작한다.
- 충돌 발생 가능성이 낮다.
- 채널이 노는 시간이 길다(높다).
p-persistent CSMA
- 채널이 유휴 상태 ( Busy 하지 않으면 ) 면 p의 확률로 프레임을 전송
- 채널이 사용 중이면 다음 슬롯을 기다린 후 위의 과정 반복
- 슬롯 채널 방식에서 가장 많이 사용된다.
1-persistent와non-persisten의 중간정도에 위치해있다.
세 가지 신호감지 기능의 작동
- Constant or variable delay : 임의의 시간 대기
- 세 가지 신호감지기능 모두, 충돌이 일어나면 임의의 시간을 대기하고 다시 채널을 감지한다.
- 충돌이 발생하면 프레임 전송은 의미가 없다.(프레임이 손상되었으므로)
- 따라서 충돌 감지 시 채널에 짧은 방해 신호를 모든 호스트에 전송하는 기술
- 이 신호를 받은 모든 호스트는 충돌을 인지하고 전송을 중단한다.
이더넷 프레임 구조
Preamble(프리앰블)
수신 호스트가 송신 호스트의 클록과 동기를 맞출 수 있도록 여유 시간을 제공하는 역할을 한다.
비트 패턴
10101010(1바이트)을7번반복 전송한다.(송수신단이 모두 사전에 미리 알고있는 신호이다).1 바이트의 정해진 신호를 총 7번 , 7바이트 받는 동안에 수신 호스트는 신호의 상승/하강을 감지하고 비트의 시작과 끝 지점을 인지한다.
이 7바이트를 받는 동안 수신호스트는 정확한 상승/하강 시점을 감지해서 진짜 데이터를 받을 준비를 마쳐야 한다.
Start Delimiter(시작 구분자)
프레임이 시작됨을 알린다.
비트 패턴은
10101011이다.(프리앰블과 구별하기 위해)Destination/Source Address(송수신 주소)
- 송수신 주소 : MAC 주소, LAN 카드에 내장
- 수신 호스트 주소의 최상위 비트가 1이면 그룹이고, 0이면 일반 주소이다.
- 그룹 주소 : 브로드캐스트 / 멀티캐스팅
- 수신 호스트 주소 비트가 모두 1이면, 브로드 캐스트임을 의미한다.
Length/Type
- 필드 값이 1500 이하 이면, data 필드의 크기인 length 로 해석한다.
- 필드 값이 1500 초과이면, type 으로 해석한다.
- Length : 가변 길이, 최대 1500, 최소 46 바이트이다. 최대 초과시 분할, 최소 미달시 zero 비트로 패딩한다.
- 패딩 : 모자란 만큼을 0으로 채워 넣는 것
- Type : 상위 프로토콜의 패킷 종류 구분
LLC 프레임 캡슐화
토큰 버스
- 물리적으로는 버스이나 논리적으로는 링처럼 동작
- 각 호스트는 프레임 전송을 하려면 토큰이 있어야 한다.
- 토큰이 없는 호스트는 전송이 불가능하므로, 충돌이 발생하지 않는다.
- 데이터 전송을 완료했으면 토큰을 반환하고, 토큰은 다음 순서의 호스트에 부여된다
- 토큰은 모든 호스트에게 균등 시간동안 분배된다. 이를 round-robin 방식이라고 한다.
토큰 버스 프레임 구조
- 이더넷 프레임과 다르게 length 필드가 없으므로, 시작 / 끝 구분자를 추가해 프레임의 크기를 결정한다.
Frame Control
- 데이터 / 제어 프레임을 구분하는 필드
- 첫 두 비트가 프레임의 역할을 구분해준다.
- LLC 프레임 : 상위 계층은 LLC 게층에서 내려온 전송 데이터이므로, 수신 호스트에 전송할 데이터 프레임에 해당
토큰 링
대기 / 전송 모드가 존재한다.
대기
입력단으로 들어온 비트를 즉시 출력단으로 내보낸다.
호스트에 장애 발생시 대기 모드 진입 , 네트워크 동작에 영향이 없다.
전송
호스트가 토큰 획득 시 전송 모드에 진입하고, 전송된 프레임은 순환 후 송신 호스트에 되돌아 온다.(토큰 반환)
링을 관리하는 모니터 호스트가 존재한다.
모니터 호스트는 토큰 분실 시 새 토큰을 생성하고, 프레임이 무한 순환하는 경우가 생기면 해당 프레임을 제거한다.
토큰 링 프레임 구조
ED
I / E 두 종류의 비트가 존재한다. I 비트는 분할 전송 시 사용하며, I비트가 0이면 마지막 프레임, 1이면 중간 프레임이라는 뜻이다.
E 비트는 오류 검출용으로 사용된다.
AC
여러 제어 기능을 수행하는 필드이다.
우선순위/토큰/모니터/예약비트에 대한 제어기능이 존재한다.
- 우선순위 : 000이 가장 우선순위가 낮고 111이 가장 높다.
- 토큰 : 0이면 토큰 프레임, 1이면 일반 프레임이다.
- 모니터 : 링을 관리하는 모니터 호스트는 자신을 지나가는 프레임의 모니터 비트를 모두 1로 바꾼다. 따라서 모니터 호스트가 수신한 프레임의 모니터 비트가 1이면 순환했다는 의미가 되고, 해당 프레임을 제거한다.
FS
수신 호스트가 송신 호스트에 응답할 수 있도록 하는 필드이다.






