본문 바로가기
Computer Science/data comm & network

[Network] 컴퓨터네트워크 7~9 : Multiple-access protocols(Random access/Controlled-access/Channelization protocols)

by 사용자 펭귄대장 2021. 1. 14.

[ Data Link layer ] 

- upper sublayer : data link control

- lower sublayer : resolving access to the shared media (multiple-access resolution)

(master/slave 가 없는 구조에서 peer to peer 송신의 문제를 어떻게 해결할 것인가)

 

Multiple-access protocol의 종류

 

# collision : 동시에 여러개의 station이 매체에 access

 

[ ALOHA ]

- hawaii 대학교에서 개발됨(1970)

- LAN의 시초

- 모든 station 은 base station 을 통해서 통신

- 송신할 데이터가 있으면 station은 base station 을 통해 데이터를 바로 송신

회색 부분은 collision이 발생하는 부분

- base station을 공유하므로 collision이 발생할 가능성이 높음

- ACK 이 오지 않아 타이머 초과시(eg: collision으로 인해) station 은 일정시간(backoff time)을 기다린 후 재송신을 한다. (기다리는 시간은 2의 n 제곱. n이 retry 마다 증가, 특정 횟수(backoff limit)이상 실패시 포기 후 재시도는 나중에)

ALOHA 의 resending 순서도

 

 

[ Slotted ALOHA ]

- station이 데이터 송신을 마구잡이로 하는게 아니라, slot 을 정해놓고 slot의 시작 시간에 도달했을 때만 station이 데이터를 송신

collision으로 손해보는 시간이 기존 ALOHA 보다 적다(효율 높음)

 

[ CSMA (Carrier Sense Multiple Access) ]

- 데이터를 보내기 전 데이터를 누가 보내고 있는지 확인(sense before transmit) 후 데이터 전송

- propagation delay로 인해 collision 가능성은 여전히 존재

A의 frame 전송이 D에게 감지되기 까지 걸리는 시간(전파 시간)이 collision이 발생할 수 있는 vulerable time이다.

 

# Persistence methods

아래와 같은 두 상황에 어떻게 처리 할 지에 대한 방법.

- when channel is busy : 채널이 이미 사용 중일때

- when channel is idle : 채널이 사용중이지 않을 때

 

- persistence 의 종류 3가지

1) 1-persistent : 채널의 상태를 계속 확인하여 idle 일 때 바로 보냄 (효율은 좋지만 collision가능성 높음) (보통 경우 사용)

2) Nonpersistent : 일정 간격으로 확인(sense)하여 idel 이면 보냄

3) p-persistent : 채널 상태를 계속 확인하여 idle 일 때 p 확률로 데이터를 보냄 (보내지 않는 경우, time slot이 지나고 난 후 p 확률로 재시도)

persistence 의 종류
persistence 순서도

 

[ CSMA/CD (CSMA with Collision Detection) ]

- 유선랜에서 사용.

- CSMA + CD(collision Detection): 충돌 감지시 전송 중지

collision을 감지(detection) 할 경우 전송 중지
CSMA/CD 에서의 resending 순서도

 

[ CSMA/CA (CSMA with Avoidance) ]

- 무선랜에서 사용

- CSMA + CA(collision Avoidance): collision 을 회피

- CD를 사용못하는 이유 : 무선환경에선 기타 요소가 많아 collision detection(CD)가 불가.

* 유선환경에서 collision 을 감지하는 방법 : 유선 송신 시간*2 (보내는시간 + 충돌 후 되돌아오는 시간) 소요시 collision

 

- avoidance 방법 3가지

1) interframe space(IFS) : idle 상태에서 바로 보내지 않고 IFS 를 두어 collision 회피

2) Contention Window : (=backoff time) 충돌시 일정 시간(2의 n제곱) 기다린 후 재전송 시도

3) Acknowledgements : ACK 를 기다리는 timer 

CSMA/CA 순서도

 

 

# multiple-access resolution 3가지 방법

1. contention (Window) : 충돌 후 window 만큼 기다린 후 재시도

2. reservation : 예약 후 전송

3. channelization : 채널화 

 

 

[ Controlled-access protocols ]

1. Reservation : reservation frame 을 전송하여 데이터 전송 예약

2. Polling : primary(master)/secondary(slave)

3. Token passing : token을 가진 station만 데이터 전송

 

[ Channelization protocols ]

1. FDMA (Frequency-Division Multiple Access)

- 컴퓨터마다 사용 주파수(=채널)를 다르게

- 라디오에서 사용 (eg: mbc 91.9)

* Hz : 1초에 진동 횟수(100Hz : 진동폭 1초 100회)

 

2. TDMA (Time-Division Multiple Access)

- 시간을 할당하여 컴퓨터에 할당 및 컴퓨터는 할당받은 시간에 데이터 전송

 

3. CDMA (Code-Division Multiple Access)

1) 하나의 채널에 모든 컴퓨터가 데이터 전송

2) 모든 컴퓨터가 데이터를 동시에 보낸다는 점에서 TDMA와 다름

3) 하나의 채널에서 모든 컴퓨터가 데이터를 전송하므로 FDMA와 다름

4) CDMA 구현 방법

 

# Chips code

스테이션이 가지고 있는 sequence of number

Chips code의 예 (순서대로 A,B,C,D)

 

# Chips Code 를 정하는 방법

Chips Code 를 구하는 방법
station 이 4개인 경우, A B C D 는 위에서 부터 순서대로 [1,1,1,1], [1,-1,1,-1] 와 같다(C, D 생략)

 

# orthogonal seqences (직교)

다른 코드와 곱하면 0, 자신 코드와 곱하면 스테이션 수가 나오는 성질 (동일 채널에서 다른 코드를 구분하기 위한 방법)

위 A,B,C,D는 각각 자신과 곱해서 더할 경우 스테이션의 수인 4, 다른 코드와 곱하면 0이 나옴

(eg: A * A = [1,1,1,1], A * B = [1,-1,1,-1])

 

CDMA Encoding

# Encoding

Bit 0 은 -1, Bit 1 은 +1, Silent 는 0

station A는 [+1,+1,+1,+1], 전송 하고자 하는 Bit 0은 -1 이므로 이를 곱해 [-1,-1,-1,-1] 로 만듬

station B는 [+1,-1,+1,-1], 전송하고자 하는 Bit 0 은 -1 이므로 이를 곱해 [-1,+1,-1,+1] 로 만듬

C, D 는 생략..

ABCD 를 모두 더한 값 [-1,-1,-3,+1] 을 전송

CDMA Decoding

# Decoding

Station A 의 데이터를 확인하려면 전송 받은 값 [-1,-1,-3,+1] 에 Station A [+1,+1,+1,+1] 을 곱함.

곱해서 나온 값 [-1,-1,-3,+1] 를 더하면 -4 가 나옴. 이를 4로 나누면 -1 이 나오며 이는 Bit 0을 의미.

 

 

※ KOCW 성균관대학교 안성진 교수님의 컴퓨터네트워크 강의 참고

 

 

반응형

댓글0