토큰 링 구조에서는 점대점으로 연결한 호스트가 순환 구조 형태로 LAN을 구성한다. 링 네트워크처럼 링 주위에는 항상 토큰이라 불리는 제어 프레임이 일정한 방향으로 순환한다. 데이터 프레임을 전송하고자 하는 호스트는 먼저 토큰을 획득해야 하고, 토큰을 확보한 호스트만 데이터 프레임을 전송할 수 있다.
프레임 구조
토큰 링 프레임은 데이터 프레임과 토큰 프레임으로 구분할 수 있다.
데이터 프레임의 구조를 보면 SD, AC, ED 필드 세 개로만 구성된 토큰 프레임이다.
링에 연결된 호스트 중에는 다른 호스트와 구별되는 특별한 기능을 수행하는데, 주로 네트워크의 정상 동작을 방해하는 예기치 않은 오류를 복구한다. 예를 들어 현재 데이터 프레임을 전송하는 호스트가 없는데 링에 토큰 프레임이 없어지는 오류가 발생할 수 있다. 이때는 모니터 호스트에서 토큰 프레임을 새로 생성해 다른 호스트가 데이터 프레임을 정상적으로 전송할 수 있도록 해야 한다.
또 다른 오류의 예는, 일반 호스트에서 전송한 데이터 프레임이 링을 한번 순환하면 송신 호스트에 의해 링에서 제거되어야 하는데, 그렇지 않고 무한정 순환하는 경우이다. 이와 같이 네트워크를 운용하는 과정에서 발생하는 오류를 정정하는 일은 모두 모니터가 담당한다.
LLC 프레임 캡슐화
LLC 계층에서 MAC 계층으로 전송 요청이 내려온 LLC 프레임을 토큰 링 프레임의 구조로 캡슐화하는 과정
이더넷 토큰 버스 프로토콜처럼 LLC 프레임은 토큰 링 프레임의 Data 필드에 기록되고, 나머지 토큰 링 프레임의 필드 값을 기록한 후에 물리 계층을 통해 수신 호스트에 전달된다.
프레임 필드의 의미
토큰 링 프레임 구조에서 상단에 표시된 숫자는 단위가 바이트인 각 필드의 크기이다. 필드 내용 중에서 송신 호스트 주소, 수신 호스트 주소, 데이터, 체크섬 등은 이더넷 토큰 버스 프로토콜에서의 용도와 같다.
Start Delimiter/End Delimiter
SD/ED 필드는 프레임의 시작과 끝을 구분한다. End Delimiter 필드에는 I와 E라는 두 종류의 비트가 정의되어 있다. I비트는 데이터 프레임을 여러 개로 나누어 전송하는 경우에 사용된다. 즉, 데이터의 처음과 중간 프레임은 I비트의 값을 1로 지정해 전송하고 마지막 프레임은 값을 0으로 지정함으로써, 수신 호스트가 연속 데이터를 구분하여 수신할 수 있게 해준다. E비트는 오류 검출용으로 이용한다.
Access Control
- AC 필드는 여러가지 제어 기능을 수행하기 위해 사용된다.
- 우선 순위 비트, 토큰 비트, 모니터 비트, 예약 비트로 나뉜다.
Access Control 필드에 정의된 비트 플래그의 역할
우선 순위 비트 : 토큰의 우선 순위보다 높은 프레임을 전송할 수 있도록 해준다. 000이 우선순위가 가장 낮고, 111이 가장 높다.
토큰 비트 : 토큰 프레임과 일반 프레임을 구분하는데, 토큰 프레임은 값이 0이다.
모니터 비트 : 네트워크에 오류가 발생하면 특정 프레임이 링 주위를 무한정 순환하는 현상이 발생할 수 있다. 이를 방지하기 위해 링에 연결한 호스트 중에서 특정 호스트를 모니터로 지정한다 모니터 호스트는 데이터 프레임이 자신을 지나갈 때 M 비트를 1로 지정한다. M 비트가 1인 프레임이 다시 모니터 호스트를 지나가면 해당 프레임이 한 번 이상 링을 순환했다는 의미가 된다. 따라서 모니터 호스트는 이 프레임을 링에서 제거함으로써, 특정 데이터 프레임이 링을 무한정 순환하는 현상을 방지할 수 있다.
Frame Control
토큰 링 프레임의 FC 필드는 LLC 계층에서 목적지 호스트로 전송해줄 것을 요청한 LLC 프레임과 토큰 링 프로토콜에서 사용하는 제어용 프레임을 구분하는 데 사용한다.
TT 비트의 값에 의한 프레임 구분
-TT 비트 =00 : 제어 기능을 수행하기 위한 프레임을 위해 정의되며, CCCCCC 비트의 코드 값으로 제어 명령의 종류를 구분한다.
-TT 비트 = 01: 상위 계층인 LLC 계층에서 전송을 요구한 LLC 프레임을 의미한다.
Frame Status
FS 필드는 토큰 링 프레임의 맨 마지막에 위치하며, 프레임의 수신 호스트가 송신 호스트에 응답할 수 있도록 한다.
두 개의 플래그 비트 A, C 필드로 정의되며, 두 필드의 값이 쌍으로 존재한다. 따라서 한 쌍의 값이 동일한 경우에만 유효한 응답으로 정의되고, 다르면 0으로 처리되어 무시된다.
A비트 : 목적지로 지정한 호스트에서 데이터 프레임이 링 인터페이스를 통해 자신에게 전달되면 해당 프레임이 접근했다는 표시로 A 비트를 1로 지정한다. 데이터 프레임의 수신 호스트 주소가 자신의 주소와 다르면 링 인터페이스를 그냥 통과시킨다. 따라서 A비트의 용도는 목적지 호스트가 링 네트워크에서 제대로 동작하는지 확인하는 것이다.
C비트 : 입력된 데이터 프레임의 수신 호스트 주소가 자신의 주소와 동일한 프레임이 지나가면 프레임을 내부 버퍼에 보관하고 C(Copy) 비트를 1로 지정한다. C비트가 1로 지정된 프레임이 다시 송신 호스트에 돌아가면 송신 호스트는 A와 C 비트를 점검해 수신 호스트가 데이터 프레임을 제대로 수신했는지 확인할 수 있다.
Reference
쉽게 배우는 데이터 통신과 컴퓨터 네트워크
'CS > Network' 카테고리의 다른 글
[Chapter 6] 데이터 링크 계층(슬라이딩 윈도우 프로토콜) (0) | 2025.02.12 |
---|---|
[Chapter 6] 데이터 링크 계층(프레임의 종류) (0) | 2025.02.12 |
[Chapter 5] MAC 계층(토큰 버스) (0) | 2025.02.11 |
[Chapter 5] MAC 계층(이더넷) (0) | 2025.02.11 |
[Chapter 5] MAC 계층(MAC 계층의 이해) (0) | 2025.02.11 |