cs

network - 데이터링크 계층에서 다중 접근 방식

joepasss 2022. 7. 19. 21:31

  패킷 전송 네트워크는 경로 배정이나 트래픽 제어 및 에러 제어와 같은 문제점은 없으나 전송용량의 할당에서 그 문제점이 드러난다. 패킷 네트워크와 같은 다중 엑세스 네트워크에서는 매체 엑세스 제어 프로토콜이 요구되기 때문

 

  이러한 프로토콜들은 공통된 방송 채널을 공유하는 방법적인 문제를 해결하기 위해 설계되었으므로 다음에 전송되는 데이터의 차례는 어느 데이터를 보내야 하는 것인지의 문제라 볼 수 있다. 따라서 패킷 네트워크에 쓰이는 기법들은 랜덤 엑세스(random access) 또는 경쟁 (competition) 기법 등이다.

 

임의 제어 다중 접근


ALOHA (or Pure ALOHA)

  1970년 하와이 대학의 연구팀에 의해서 개발된 ALOHA 시스템은 최초의 경쟁 기법으로서 패킷 라디오 네트워크를 위한 것이다. 이 네트워크는 여러 섬에 분산되어 있는 사용자들에게 네트워크를 통해서 특정 섬에 집중되어 있는 중앙 컴퓨터의 이용을 쉽고 값싸게 제공한다는 취지에 시작되었다.

 

  ALOHA 시스템은 송신 측 스테이션(sender)이 전송할 패킷이 있으면 패킷을 전송한 다음 최대 가능한 전파지연시간 동안 수신에 귀를 기울인다. 이 전파지연시간은 두 스테이션들 사이에서 한 패킷이 보내지는 데 걸리는 시간의 2배이다. 수신 측(receiver) 에서는 유효한 패킷을 받으면 긍정응답(ACK)를 보내고 무효한 패킷은 무시한다. 또한 송신측은 수신 측으로부터 응답이 없다면 패킷을 다시 보내지만 실패가 반복되면 종료한다.

 

  채널상의 잡음이 있거나 다른 스테이션이 동시에 패킷을 전송할 때 완전 충돌 또는 부분 충돌이 발생하면 패킷이 무효가 된다. 패킷이 무효가 되면 수신 스테이션은 이 패킷들을 무시하게 되는데 무시된 패킷들은 재전송을 하게 된다.

 

반송파 감지 다중 액세스(CSMA ; Carrier Sense Multiple Access)

  다중 접근 채널(multiple access channel) 방식을 이용하여 공유매체에 프레임을 전송하는 방식에서는 데이터 충돌 가능성이 항상 존재한다. 충돌 문제를 해결하는 방법은 크게 두 가지가 있다.

  하나는 다수의 단말기가 송신한 프레임이 공유매체에서 충돌하는 현상을 허용하는 방식으로, 충돌이 발생한 후에 문제를 해결하는 방법이고, 다른 하나는 충돌의 발생 가능성을 원천적으로 차단하는 방법이다.

 

  충돌 발생을 허용하는 방식의 대표적인 예는 이더넷(ethernet)으로 더 많이 알려진 CSMA/CD (Carrier Sense Mulitple Access / Collision Detection)이다. 충돌 허용 방식에서는 프레임 충돌로 깨진 데이터를 복구하는 작업이 필요하기 때문에 프레임을 송신한 단말기에서 충돌을 감지하는 기능이 필수적이다. CSMA/CD 방식에서 충돌이 자주 발생하면 오류 복구 과정에 따라 재전송도 많이 이루어진다. 따라서 동일한 데이터를 여러 번 전송하는 과정을 반복하므로 네트워크 전체 성능이 떨어진다.

 

  일반적으로 공유매체의 길이가 길수록 프레임의 전송지연이 증가하여 충돌이 발생할 가능성도 높아진다. 충돌 문제를 해결하는 다른 방법인 충돌 회피 방식은 종류가 다양한데, 가장 간단하게 구현한 예가 각 송신 단말기에 서로 다른 전송 시간대를 지정하는 타임 슬록(time slot) 배정 방법을 사용하는 것이다.

 

  CSMA의 원리는 전송을 바라는 스테이션이 전송매체를 살펴서 다른 전송이 있는지를 조사하고 상대 스테이션의 전송이 끝날 때 까지 전송을 하지 않고 기다린다. 이와 같은 CSMA 과정은 다음과 같다

 

 

  1. 전송을 원하는 스테이션은 전송매체를 체크한다.

  2. 전송매체가 비어있는지 확인하고 누군가가 사용 중이면 기다렸다가 회선이 비었을 때 그 때 다시 시도한다. 이때 둘 이상의 스테이션이 같은 시간에 대해 전송을 시도한다면 충돌이 생긴다.

  3. 수신 측으로부터 긍정응답(ACK)이 회신되지 않으면 재전송을 한다. CSMA에서 전송매체가 사용 중에 있을 때 스테이션이 어떻게 해야 하는지를 지정할 알고리즘은 ACK를 기다리는 시간에 따라 비영속 CSMA (Non-Persistent CSMA), 1-영속 CSMA (1-Persistemt CSMA), P-영속 CSMA (P-Persistent CSMA) 로 분류한다.

 

종류 과정, 설명
Non-Persistent CSMA   1. 전송매체가 사용 중이 아니면 전송을 원하는 스테이션은 패킷을 전송한다.
  2. 전송매체가 사용 중이면 재전송 지연 시간만큼 기다렸다가 1을 반복 시행한다.

  이 알고리즘의 장점은 모든 스테이션이 똑같은 지연 시간만큼 기다리므로 공정하다는 것이고, 단점은 여러 스테이션들이 전송하기에 앞서 어떤 유휴시간 만큼의 낭비가 생긴다는 것이다
1-Persistent CSMA   1. 전송매체가 사용 중이 아니면 패킷을 전송한다
  2. 사용중이면 사용이 끝날 때 까지 살핀 후 그 즉시 전송한다.
  3. 충돌이 발생하면 수신 측으로부터 긍정응답이 오지 않으므로 임의의 시간 동안 기다렸다가 1, 2를 반복시행한다.

  이 알고리즘의 장점은 채널의 대기시간을 없앤다는 것이며 만약 2개 이상의 스테이션들이 전송을 시도한다면 충돌을 피할 수 없다는 것이 단점이다.
P-Persistent CSMA   1. 전송매체가 사용 중이 아니면 확률 P로 전송하고 1-P의 확률로 하나의 단위시간을 지연한다.
  2. 사용 중이면 채널의 사용이 끝날 때 까지 조사한 후 단계 1를 반복한다

 

이더넷 네트워크의 MAC 제어 프로토콜


  이더넷 네트워크에서의 매체 엑세스 제어 프로토콜에는 CSMA/CD, 토큰 버스, 토큰 링, 슬롯 링, 레지스터 삽입 방식 등이 있다.

 

 반송파 감지 다중 엑세스 / 충돌 검출 (CSMA/CD) 프로토콜

  LAN에서 버스/트리 구조 토폴로지의 매체 엑세스 제어 프로토콜로 가장 많이 사용된다.

 

  CSMA/CD는 CSMA를 발전시킨 것으로 CSMA가 충돌감지를 할 수 있게 한다. CSMA에서는 매체에서 두 패킷이 충돌할 때 충돌로 인해 손상되는 양쪽 패킷이 계속 전송되는 동안 용량의 낭비가 초래된다. 또한 매체에서 패킷의 길이가 전파지연 시간에 비하여 클 때 용량의 낭비는 커지는데 CSMA/CD를 사용하면 전송하는 동안 계속 매체를 살피는 일을 하므로, 낭비를 최소화 시킬 수 있다.

 

  CSMA/CD에서는 충돌 감지 기능을 사용해 충돌 여부를 확인한다. 일단 단말기가 충돌을 감지하면 진행 중인 프레임의 전송을 중지한다.

 

 토큰 버스(token bus)

  토큰 버스 기법을 사용하면 물리적으로는 버스나 트리 구조의 스테이션들이 논리적인 링 형태(ring topology)를 구성하게 되어 논리적인 순서가 정해지게 된다. 각 스테이션은 자기 바로 앞뒤의 스테이션을 알고 그 순서를 따른다. 토큰이라고 하는 제어 패킷이 이 논리적인 링 위상을 따라 돌게 된다. 따라서 이 토큰이 올바른 액세스를 조절하게 되어 데이터 전달과 토큰 전달의 2가지 상황이 나온다. 토큰을 사용하지 않는 스테이션도 버스에서 허용되지만 poll또는  ACK 요청에 응답하는 역할만 할 수 있다.

 

  한 스테이션이 토큰을 소유하게 되면 특정 시간동안 매체를 제어한다. 이 때 이 스테이션은 하나 혹은 그 이상이 패킷을 전송할 수 있고, 스테이션들에 폴 신호를 보낼 수 있으며 이에 대한 응답을 받을 수 있다. 이 스테이션이 할 일을 끝냈거나 특정 시간이 지나면 토큰은 논리적인 순서대로 다음 스테이션으로 이동한다.

 

 토큰 링(Token ring)

  IEEE802 로컬 네트워크 표준 위원회에 의해 표준화를 위해 선택된 하나의 링 액세스 방법이다. 토큰 링 기법은 링 주위를 순회하는 작은 토큰 패킷을 사용하는 것에 기초를 둔다. 모든 스테이션이 유휴 상태에 있을 떄 토큰 패킷은 프리 토큰으로 주어진다.

 

  1. 프리 토큰이 링 주위를 순회한다.

  2. 패킷을 전송하려는 스테이션에 프리 토큰이 지나면 비트 플리핑(flipping)에 의해 프리 토큰을 잡는다

  3. 이때 프리 토큰을 즉시 비지 토큰으로 비트 패턴을 바꾼다

  4. 전송을 하던 패킷은 스테이션이 패킷의 전송을 끝마쳤을때와 비지 토큰이 스테이션으로 돌아왔을 때의 두 조건이 동시에 만족되면 패킷을 제거하고 비지 토큰을 프리 토큰으로 바꾸어 ACK의 기능을 하게 된다.