반응형
SMALL
01. MAC 계층과 IEEE 802 시리즈
LAN 환경의 계층 2 기능에 대한 표준안을 다루는 IEEE802 시리즈를 알아본다. IEEE 802 시리즈는 LLC 계층뿐 아니라 MAC 계층에 대한 다양한 표준안을 정의하고 있다.
1. MAC 계층의 이해
- LAN 환경에서는 (a)와 같이 데이터 링크의 계층을 LLC 계층과 MAC 계층으로 나누어 처리한다.
- LLC 계층: 데이터 링크 계층의 기본 기능을 주로 다룬다.
- MAC 계층: 물리적인 전송 선로의 특징과 매체 간의 연결 방식에 따른 제어 부분을 처리한다.
1.1 MAC 계층
- 전송 선로의 물리적인 특성을 반영하므로 LAN의 종류에 따라 특성이 구분된다.
- LAN 환경을 위한 MAC 계층은 종류가 다양하다.
- 이더넷: 공유 버스를 이용해 호스트를 연결한다.
- 데이터를 전송하기 전에 전송 선로를 먼저 확인해 다른 호스트가 데이터를 전송 중인지 여부를 파악한다.
- 다른 호스트가 전송 선로를 사용하지 않으면 전송 가능하고, 사용하고 있다면 나중에 다시 시도한다.
- 둘 이상의 호스트에서 동시에 데이터 프레임 전송을 시도하면 충돌이 발생한다. 충돌이 생기면 호스트는 이를 감지하고, 일정 시점 후 재전송한다.
- 토큰 링: 토큰이라는 특정 패턴의 제어 데이터가 링을 순환한다.
- 데이터 프레임을 전송하려면 먼저 토큰을 확보해야 하며, 전송을 완료하자마자 토큰을 링에 내놓아야 한다.
- 각 호스트에 전송 우선순위를 부여할 수 있다.
- 이더넷: 공유 버스를 이용해 호스트를 연결한다.
1.2 LLC 계층
- 이더넷에 사용하는 LLC와 토큰 링에서 사용하는 LLC는 약간 다를 수 있다. (LAN 특성에 부분적으로 영향 받음)
- 이더넷의 LLC 계층은 프레임을 전송하는 과정에서 슬라이딩 윈도우 프로토콜을 사용한다.
- 토큰 링/토큰 버스 구조에서는 송신 호스트가 수신 호스트의 도움 없이, 보낸 프레임의 전송 오류를 검출하고 재전송하는 기능을 수행할 수 있어 슬라이딩 윈도우 프로토콜이 불필요하다.
2. IEEE 802 시리즈
- 네트워크 계층과 LLC 계층의 기능은 LAN 종류에 큰 영향을 받지 않으므로 공통의 프로토콜인 IEEE 802.2 표준안을 사용한다.
- MAC 계층은 물리 계층의 종류에 따라 다양하게 사용될 수 있으므로, 각각에 대하여 별도의 표준안이 정의되어 있다.
2.1 CSMA/CD
- 이더넷으로 더 많이 알려졌다. (충돌 허용 방식)
- 충돌 허용 방식에서는 충돌로 깨진 프레임을 복구하는 작업이 필요하기 때문에 프레임을 송신한 호스트에서 충돌을 감지하는 기능이 필요하다.
- 충돌이 자주 발생하면 오류 복구 과정에 따라 재전송도 많이 이루어져, 네트워크 전체 성능이 떨어진다. 일반적으로 공유 매체의 길이가 길수록 프레임의 전송 지연이 증가하여 충돌이 발생할 가능성도 높아진다.
- 충돌을 해결하는 다른 방법인 충돌 회피 방식 중 가장 간단한 방법은, 각 송신 호스트에 서로 다른 전송 시간대를 지정하는 타임슬롯을 배정하는 방법이다.
- 하나의 공유 버스에 호스트 5개가 연결된 LAN 환경을 가정하여 CSMA/CD 방식에서 데이터를 전송한다.
- (a) 호스트5가 호스트1에 프레임을 전송할 때, 먼저 다른 호스트가 공유 버스를 사용하고 있는지 확인한다.
- (b) 버스를 사용하고 있지 않으면 전송 프레임을 공유 버스에 보낸다.
- 다른 호스트가 동시에 전송하면 충돌이 생기므로 이 부분을 처리하는 기능이 필요하다.
- 호스트1 외 나머지 호스트는 해당 프레임을 수신하지 않으므로 버린다.
- (c) 결과적으로 호스트5에서 호스트1까지 프레임을 올바르게 전송할 수 있다.
2.2 토큰 버스
- 물리적인 버스 구조(점선)로 연결되지만 논리적인 프레임 전달은 링 구조(실선)이다.
- 데이터 프레임 전송이 호스트 사이에 순차적으로 이루어지도록 토큰이라는 제어 프레임을 사용한다.
- 프레임을 전송하려면 반드시 토큰을 확보해야 한다. 프레임 전송을 원하는 호스트는 토큰이 도착할 때까지 기다려서 도착한 토큰을 획득한 뒤 프레임을 전송한다.
- 프레임 전송 후 이웃 호스트에 토큰을 넘겨준다. (이웃하는 순서는 각 호스트의 고유 번호가 높은 순)
2.3 토큰 링
- 순환 구조의 전송 매체와 연결되는 링 인터페이스의 동작은 대기 모드와 전송 모드로 구분된다.
- 대기 모드: 입력단으로 들어온 비트를 출력단으로 즉시 내보낸다. (링 네트워크 유지)
- 전송 모드: 호스트가 토큰을 획득해 프레임을 전송할 수 있는 권한을 보유한 상태이다.
- 송신 호스트가 전송한 프레임이 링을 한 바퀴 돈 후 송신 호스트에 되돌아온다.
- 프레임의 목적지 주소가 자신의 주소와 동일한 호스트는 해당 프레임을 수신하고, 프레임 내부의 특정 위치에 올바르게 수신했다고 표시한다.
- 송신 호스트는 자신에게 되돌아온 프레임의 특정 위치 값을 확인하여 프레임이 올바로 전송되었음을 확인한 뒤, 데이터 프레임을 회수하고 토큰 프레임을 링에 반환한다.
02. 이더넷
원래 IEEE 802.3 표준안을 실제로 구현한 제품이지만, 현재는 더 일반화된 용어로 사용한다.
1. 이더넷과 신호 감지 기능
- 전송 매체의 신호를 감지해 프레임의 전송 여부를 결정하는 프로토콜을 신호 감지 프로토콜이라 한다.
- 신호 감지 프로토콜에서 선로의 전달 지연이 성능에 영향을 많이 준다.
1.1 1-persistent CSMA
- 신호 감지 프로토콜 중 가장 간단한 형태
- 프레임을 전송하기 전에 전송 채널이 사용 중인지 확인한다.
- 다른 호스트에서 채널을 사용 중이면 유휴 상태가 될 때까지 대기하다가, 임의의 순간에 채널에 유휴 상태로 변경되면 확률 1의 조건으로 프레임을 무조건 전송한다.
- 둘 이상의 호스트에서 동시에 유휴 상태로 판단하면 프레임 전송 과정에서 충돌이 발생할 수 있다.
- 충돌이 발생하면 임의의 시간 동안 대기한 후에 전송 채널을 감지하는 과정을 다시 반복한다.
1.2 Non-persistent CSMA
- 전송 채널의 신호를 감지해 채널이 사용 중이라고 판단하면 더는 채널의 유휴 상태를 확인하지 않는다.
- 임의의 시간동안 기다린 후에 다시 채널 감지를 시작하기 때문에 1-persistent 방식보다 충돌 가능성이 낫다.
1.3 p-persistent CSMA
- 슬롯 채널 방식에서 많이 사용한다.
- 채널이 유휴 상태이면 p의 확률로 프레임을 전송하고, 채널이 사용 중이면 다음 슬롯을 기다린 후 앞의 과정을 반복한다.
1.4 CSMA/CD
- 충돌 감지 기능을 사용해 충돌 여부를 확인한다. 일단 호스트가 충돌을 감지하면 진행 중인 프레임의 전송을 중지한다.
- 이더넷 방식을 이용하는 고전적인 LAN 접속 방법이다.
- 굵고 긴 전송 케이블로 된 전송 매체에 트랜시버 장비로 보조선을 연결해 각 호스트를 연결한다.
- 트랜시버는 호스트를 전송 케이블에 연결하기 위한 송수신 장치로, 전송 선로의 신호를 감지하는 기능과 함께 충돌 현상을 감지하는 기능도 제공한다.
- 임의의 트랜시버가 충돌을 감지하면 이를 특정 신호의 형태로 변환해 전송 케이블에 다시 전송해야 한다.
- IEEE 802.3 표준안은 전송 케이블의 최대 길이를 일정 범위 이내로 제한하는데, 케이블의 길이가 너무 길면 신호 감쇄 현상에 의해 오류가 발생할 가능성이 높아지기 때문이다.
- 케이블에 연결되는 호스트 간 간격도 너무 좁아지지 않도록 일정 간격 이상으로 규정한다.
- 이더넷 케이블 하나에 연결되는 호스트 수가 증가하면 케이블을 2개로 나누어 리피터로 연결해야 한다.
- 왼쪽 케이블에서 전송되는 신호는 리피터를 통해 오른쪽으로 전달되고, 반대 방향으로도 신호를 증폭해 전달한다.
2. 프레임 구조
이더넷 프레임의 Data 필드 왼쪽에 위치한 필드들은 헤더, 오른쪽은 트레일러에 속한다.
- Preamble(프리엠블)
- 7바이트 크기
- 수신 호스트가 송신 호스트의 클록과 동기를 맞출 수 있도록 시간 여유를 제공하는 것이 목적이다.
- 각 바이트는 10101010 비트 패턴을 포함한다.
- Start Delimiter(시작 구분자)
- 프레임이 시작된다는 의미로 사용된다.
- Preamble 필드와 구분하기 위해 10101011의 값을 갖는다.
- Source Address/Desination Address(송신 호스트 주소/수신 호스트 주소)
- MAC 계층에서는 호스트를 구분하는 고유의 MAC 주소를 사용한다.
- 두 필드는 전송되는 프레임의 송수신 호스트 주소를 표현한다.
- 수신 호스트 주소는 최상위 비트가 1이면 그룹 주소를, 0이면 일반 주소이다.
- Length/Type
- 필드 값이 1,500 이하이면 Data 필드의 데이터 크기를 의미하는 Length로 해석하고, 그렇지 않으면 Type으로 해석한다.
- Length: Data 필드에 포함된 가변 길이의 전송 데이터 크기
- Type: 이더넷 프레임에 캡슐화된 상위 프로토콜의 패킷 종류를 구분
- Checksum
- 데이터 전송 과정에서 데이터 변형 오류의 발생 여부를 수신 호스트가 확인할 수 있도록 송신 호스트가 값을 기록한다.
3. LLC 프레임 캡슐화
- 네트워크 계층에서 전송을 요구한 패킷은 LLC 계층으로 내려오면서, LLC 헤더 정보를 추가해 LLC 프레임이 된다.
- LLC 프레임은 다시 MAC 계층으로 내려오는데, 이 과정에서 MAC 헤더와 MAC 트레일러 정보를 추가한다.
- 이후 MAC 계층에서는 MAC 프레임을 물리 계층을 사용하여 수신 호스트에 전송한다.
4. 허브와 스위치
- (a)는 공유 버스 구조를 사용하는 이더넷의 전형적인 원리를 보여준다.
- 임의의 호스트에서 전송한 프레임은 버스에 연결된 모든 호스트에 전송되고, 목적지의 주소에 해당하는 호스트만 프레임을 수신한다.
- 최근에는 100Mbps, 1Gbps의 이더넷이 주로 사용된다.
4.1 허브 (b)
- 박스 형태의 장비에 호스트를 연결하는 다수의 포트를 지원하여, 각 호스트는 외형상 허브에 스타형 구조로 연결된다.
- 내부의 동작 원리는 버스형 구조를 지원하기 때문에 임의의 호스트에서 전송한 프레임을 연결된 모든 호스트에 전달한다.
- 허브 구조의 LAN에서는 전체 전송 용량이 각 호스트를 연결하는 전송 선로 용량의 제한을 받기 때문에, 최대 전송 용량은 100Mbps로 제한된다.
4.2 스위치 (c)
- 일반 허브와 형태가 동일하지만, 성능 면에서 장점이 있다.
- 중앙 허브에 스위치 기능이 있어 임의의 호스트로부터 수신한 프레임을 목적지로 지정한 호스트에만 전송한다.
- 이들 사이에 프레임 전송이 진행되고 있어도, 다른 호스트끼리 프레임을 전송할 수 있다.
- 전체 전송 용량이 증가하는 효과가 생긴다.
03. 토큰 버스
1. 프레임 구조
- 토큰 버스 프로토콜에서 정의한 토큰 버스 프레임의 구조이다.
- 상단의 숫자는 각 필드의 크기로, 단위는 바이트이다.
- 토큰 버스 프레임에는 데이터 프레임과 토큰 프레임을 구분하기 위한 Frame Control 필드가 추가된다.
- 헤더와 트레일러에 정의된 필드의 기능은 다음과 같다.
- Start Delimiter/End Delimiter(시작 구분자/끝 구분자)
- 프레임의 시작과 끝을 의미하는 경계를 표시한다.
- Frame Control (프레임 제어)
- 데이터 프레임과 제어 프레임을 구분해준다.
- 데이터 프레임에서는 프레임 우선순위와 수신 호스트의 응답 확인이 필요할 때 사용한다.
- 제어 프레임에서는 토큰의 전달, 링 관리와 같은 용도로 사용한다.
- Start Delimiter/End Delimiter(시작 구분자/끝 구분자)
- 첫 번째 2비트 값에 따라 역할이 구분된다.
- 토큰 버스에서 우선순위는 값이 0, 2, 4, 6인 4개의 클래스로 나누며 숫자가 클수록 우선순위가 높다.
- 각 호스트에서는 4개의 클래스를 관리하기 위한 논리적인 큐를 만들어야 하며, 토큰 프레임은 우선순위가 6이다.
2. LLC 프레임 캡슐화
- LLC 계층에서 내려온 LLC 프레임이 MAC 계층에 전달된 후, 토큰 버스 프레임의 Data 필드에 캡슐화되어 전송되는 원리이다.
- LLC 프레임의 좌우에 토큰 프레임의 헤더와 트레일러 정보가 채워지면 물리 계층이 수신 호스트로 전송한다.
- 수신 호스트의 MAC 계층은 토큰 버스 프레임의 헤더와 트레일러 정보를 해석하여 제거하고, 상위 계층인 LLC 프로토콜에서는 LLC 프레임 정보만 올려준다.
04. 토큰 링
1. 프레임 구조
- 데이터 프레임과 토큰 프레임으로 구분할 수 있다.
- 모니터: 링에 연결된 호스트 중에는 다른 호스트와 구별되는 특별한 기능을 수행하는 관리 호스트
- 네트워크 관리와 관련된 기능을 수행한다.
- 주로 네트워크의 정상 동작을 방해하는 예기치 않은 오류를 복구한다.
2. LLC 프레임 캡슐화
- LLC 계층에서 MAC 계층으로 전송 요청이 내려온 LLC 프레임을 토큰 링 프레임의 구조로 캡슐화하는 과정이다.
- LLC 프레임은 토큰 링 프레임의 Data 필드에 기록되고, 나머지 토큰 링 프레임의 필드 값을 기록한 후 물리 계층을 통해 수신 호스트에 전달된다.
3. 프레임 필드의 의미
- 송신 호스트 주소, 수신 호스트 주소, 데이터, 체크섬 등은 이더넷, 토큰 버스 프로토콜에서의 용도와 같다.
3.1 Start Delimiter/End Delimiter
- SD/ED 필드는 프레임의 시작과 끝을 구분한다.
- 데이터의 처음과 중간 프레임은 I 비트의 값을 1로 지정해 전송하고, 마지막 프레임은 값을 0으로 지정함으로써, 수신 호스트가 연속 데이터를 구분하여 수신할 수 있게 해준다. E 비트는 오류 검출용으로 이용한다.
3.2 Access Control
- AC 필드는 여러 가지 제어 기능을 수행하기 위해 사용된다.
- 우선순위 비트, 토큰 비트, 모니터 비트, 예약 비트로 나뉜다.
- 우선순위 비트: 토큰의 우선순위보다 높은 프레임을 전송할 수 있도록 해준다.
- 토큰 비트: 토큰 프레임과 일반 프레임을 구분하는데, 토큰 프레임은 값이 0이다.
- 모니터 비트: 프레임이 무한정 순회할 때, 프레임을 링에서 제거함으로써 무한정 순회 현상을 방지한다.
3.3 Frame Control
- 토큰 링 프레임의 FC 필드는 LLC 계층에서 목적지 호스트로 전송해줄 것을 요청한 LLC 프레임과 토큰 링 프로토콜에서 사용하는 제어용 프레임을 구분하는 데 사용한다.
- TT 비트의 값에 의한 프레임 구분은 다음과 같다.
- TT 비트 = 00 : 제어 기능을 수행하기 위한 프레임을 위해 정의된다.
- TT 비트 = 01 : 상위 계층인 LLC 계층에서 전송을 요구한 LLC 프레임을 의미한다.
3.4 Frame Status
- FS 필드는 토큰 링 프레임의 맨 마지막에 위치하며, 프레임의 수신 호스트가 송신 호스트에 응답할 수 있도록 한다.
- 2개의 플래그 비트 A, C로 정의되며, 두 필드의 값이 쌍으로 존재한다.
- 한 쌍의 값이 동일한 경우에만 유효한 응답으로 정의되고, 다르면 0으로 처리되어 무시한다.
- A 비트: 목적지 호스트에 데이터 프레임이 전달되면 A(access) 비트를 1로 지정한다.
- C 비트: 입력된 데이터 프레임의 수신 호스트 주소가 자신의 주소와 동일한 프레임이 지나가면 프레임을 내부 버퍼에 보관하고, C(copy) 비트를 1로 지정한다.
- A 비트와 C 비트가 모두 1이면 수신 호스트가 제대로 수신한 것으로 판단한다.
References
- 쉽게 배우는 데이터 통신과 컴퓨터 네트워크
- https://velog.io/@myday0827/MAC-%EA%B3%84%EC%B8%B5
- https://velog.io/@kohs01/5%EC%9E%A5-MAC-%EA%B3%84%EC%B8%B5
- http://wiki.hash.kr/index.php?title=%EC%9D%B4%EB%8D%94%EB%84%B7&mobileaction=toggle_view_desktop
- https://nayoungs.tistory.com/entry/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%9D%B4%EB%8D%94%EB%84%B7Ethernet%EC%99%80-%EC%9D%B4%EB%8D%94%EB%84%B7-%ED%94%84%EB%A0%88%EC%9E%84Frame
- https://naon.me/posts/til83
반응형
LIST
'독서 > 쉽게 배우는 데이터 통신과 네트워크' 카테고리의 다른 글
[쉽게 배우는 데이터 통신과 네트워크] CH7. IP 프로토콜 (0) | 2024.05.30 |
---|---|
[쉽게 배우는 데이터 통신과 네트워크] CH6. 데이터 링크 계층 (0) | 2024.05.30 |
[쉽게 배우는 데이터 통신과 네트워크] CH4. 데이터 전송의 기초 (0) | 2024.05.26 |
[쉽게 배우는 데이터 통신과 네트워크] CH3. 네트워크 기술 (0) | 2024.05.24 |
[쉽게 배우는 데이터 통신과 네트워크] CH2. 네트워크 모델 (0) | 2024.05.22 |