센로그
Chapter 12. MULTIPLE ACCESS 본문
◆ Data Link - Sublayer
데이터 링크 계층의 두 부계층(sublayer)
ㆍDLC(Data Link Control sublayer)
흐름 및 오류를 제어하는 부분
ㆍMAC(Media Access Control sublayer) :
실제 매체에 접근하는 부분
Chapter 10~11까지 DLC에 대해 언급했고, 이번에 공부할 것은 MAC 부분임.
◆ 다중 접근 프로토콜이란?
공유 링크를 사용하는 경우, 링크에 접근하는 것을 조율하기 위한 다중 접근 프로토콜(Multiple-access protocol)이 필요함.
여러 사람이 회선을 사용(Bus Topology 등)할 때 생기는 문제(방해, 충돌 등)들을 해결하기 위한 방법에 대한 규정!
< 분류 >
1. Random-access protocol (임의 접근 프로토콜)
2. Controlled-access protocol (제어 접근 프로토콜)
3. Channelization protocol (채널화 프로토콜)
◆ Random access protocols (임의 접근 프로토콜)
어느 타임에 매체에 접근할지를 임의적으로 결정하는 방식.
종류
- ALOHA
- CSMA
- CSMA/CD ( Collision Detection; 유선 LAN )
- CSMA/CA ( Collision Avoidance; 무선 LAN )
■ ALOHA
누구든 보낼 프레임이 있으면 언제든 보냄!!
그러나 당연하게도 충돌이 발생함.
(R : Random number)
누구든 보내고싶은 게 있을때 언제든 보냄.
그러나 타임아웃 시간까지 잘 받았다는 응답이 안 오는 경우, Tb (전송시간 * Random number) 만큼 기다렸다가 다시 보냄.
이것을 Kmax번 만큼 반복함. (15번까지 시도해보고 16번째 되면 포기. 채널 막히는걸 방지하기 위함!!)
■ slotted ALOHA (틈새 ALOHA)
ALOHA의 효율을 높이고자 나온 개념. Station들 모두 시간이 동기화되어 있다고 가정.
한 타임 슬롯(정해진 한 구간)이 시작될 때에만 프레임을 전송할 수 있음!!
=> 타임 슬롯 안에서만 충돌이 발생함! 처리율 두 배 높임.
ㆍ순수 ALOHA (위에서 설명한 ALOHA 개념을 의미)
-> 처리율(Throughput) 0.184
ㆍ틈새 ALOHA
타임 슬롯 시작할 때 충돌이 안나면 끝날때까지 충돌이 안 나겠죠?
-> 처리율(Throughput) 0.368
■ CSMA (Carrier Sense Multiple Access)
: 반송파 감지 다중 접근
" Listen before talk. "
내가 전송하기 전에, 누가 회선을 쓰고있는지를 감지할 수 있도록 하자는 개념.
=> 충돌 가능성을 줄일 수 있음! (완전히 없앨 수는 없음 ㅠㅠ. propagation delay 때문.)
회선이 바쁜지 감지하고 보내기까지의 방식 - 다음 세 가지 방식이 있음. (중요)
- 1-persistent method (1-지속 방식)
- non-persistent method (비지속 방식)
- p-persistent method (p-지속 방식)
(참고)
Idle 상태(==휴지 상태)란, 회선이 안 바쁜 상태
busy 상태란, 회선이 바쁜 상태(누가 쓰고 있음)
ㆍ1-persistent (1의 확률로, 즉 100% 보냄)
매체가 바쁜지 계속해서 감지하다가, Idle 상태가 되자마자 프레임 보냄.
=> 보낼 수 있는 상태가 되면 바로 보내기 때문에 효율 높음. but Idle 상태 되자마자 다같이 보내면 충돌 위험.
ㆍnon-persistent
1-persistent에 비해 조금 더 간격(랜덤 간격)을 두고 감지하다가, Idle 상태가 확인되자마자 보냄.
=> 충돌 위험 낮춤. but 보낼 수 있음에도 쉬고있을 수 있으니까 효율 낮아짐
ㆍp-persistent (p의 확률로 보냄)
앞의 두가지 방식의 장점을 합한것!!
매체가 바쁜지 계속해서 감지하다가, Idle 상태가 되면 앞의 충돌 확률에 따라 좀 기다렸다가, 그래도 여전히 Idle이면 보냄.
(busy 상태면 다시 계속 감지하러 들어감)
타임 슬롯을 계산하는 방법. p의 확률로 보내고, 1-p의 확률로 타임 슬롯만큼 더 기다림.
■ CSMA /CD (Carrier Sense Multiple Access/Collision Detection)
: 반송파 감지 다중 접근 - 충돌 검출
- 유선 LAN (이더넷)에서 사용.
앞의 persistent 방법들에 따라 회선이 바쁜지 감지함.
(방법에 따라) 보낼 수 있게 되면 보내는데, 이때 충돌이 난 경우 전송을 즉시 중단하고 jamming signal(충돌 신호)을 보냄.
=> 네트워크 내 모든 station들은 충돌 발생했다는 사실, 지금 회선이 바쁘다는 사실을 알게됨.
그리고 나서 ALOHA 처럼 랜덤 시간에따라 기다리고, 15번까지 반복함
충돌 발생시 전송 매체 상에서 더 큰 신호가 잡힘.
■ CSMA /CA (Carrier Sense Multiple Access/Collision Avoidance)
: 반송파 감지 다중 접근 - 충돌 회피
- 무선 LAN (WiFi)에서 사용.
무선 구간인 경우 전송 매체(공기 등) 상에서 충돌 검출이 어려움 => 사전에 조심해서 보내자!!
(조심하는 방법: IFS, Contention Window, ACK의 세가지 전략)
1. 안테나에 신호가 계속 들어오면( == busy 상태) 기다려.
2. Idle 되는시점에, 바로 안 보내고 한 타임 기다려(Inter Frame Space).
3. 여전히 Idle이면, 그 다음부터는 각자 랜덤 슬롯만큼 기다려보자(Contention window).
이 Contention window 타이머 끝나면 전송하는데, 타이머 도중에 busy 상태를 감지하면 처음부터 다시 시작하는 게 아니라 타이머를 잠깐 멈추는 방식. => 가장 오래 기다린 Station이 우선순위 갖게 됨!
4. 그리고 나서 보내자.
5. 타임 아웃 나면 15번까지 반복해.
IFS는 propagation delay에 따른 충돌을 피하기 위해 존재하는 것. Station이나 프레임의 우선순위를 규정하는 것에도 사용될 수 있음(IFS가 짧으면 짧게 기다리는 것이므로 먼저 보낼 수 있음)
CSMA/CD에서는 충돌을 감지 못했으면 잘 전송 된 거지만, CSMA/CA에서는 잘 전송됐는지 확인할 방법이 없기 때문에 ACK 신호를 받는거로 확인하는 것임!!
◆ Controlled access protocols (제어 접근 프로토콜)
전송할 권리가 있을 때만 전송할 수 있음
종류
- Reservation
- Polling
- Token Passing
(별로 안 중요함)
■ Reservation
데이터를 전송하기 전, 예약 프레임의 자신의 미니슬롯에 예약을 함.
예약이 되면 그 다음 프레임에 데이터를 보냄.
▲ 맨 앞 예약 프레임에서 1, 3, 4번 Station이 예약을 했고, 그 다음 프레임들에 자신의 데이터를 실어나름
■ Polling
주국(primary)에 의해 작동되는 것.
주국이 링크를 제어하고, 어느 시간에 어느 지국(Station)이 채널을 사용할지 결정함.
but 주국이 에러나면 전체 시스템이 에러남.
이 과정을 이해하기 위해, Select와 Poll의 개념이 필요함. (구분하기)
ㆍSelect (주국이 지국에게 보낼 때)
- 주국이 지국에게, 너 받을 준비 됐니? 하고 묻는 거. (SEL 프레임)
- ㅇㅋ 응답(ACK 프레임) 오면 데이터 보냄
ㆍPoll (지국이 주국에게 보낼 때)
- 주국이 지국에게, 너 보낼 데이터 있니? 하고 계속해서 물어봄.(Poll 프레임)
- ㄴㄴ응답(NAK 프레임)오면 다음 지국에게 물어봄. 다음 지국이 보낼 게 있으면 바로 데이터 보냄.
처음에 1초 – 못 보내면 1.2초 – 이런식으로 늘려가면서 보냄. ==> 처음에 보내는 1초 이거를 굉장히 짧게 가져가는 것.
처음에는 다 잘게 쪼개고, 그다음에 못가면 더 크게보내고 그런거임.
왜 짧게할까? 평등. 골고루에게 혜택을 짧게짧게 빨리 주는 거. 일 적은 사람은 빨리 쓰고 나가라!
■ Token-passing
토큰을 가진 Staion에게 기회를 주는 것.
토큰이 없는 Station은 그 시간에 통신을 못하기 때문에 충돌이 잘 발생하지 않음!
- Ring Topology에서 사용
주로 Hub에 Ring들이 연결된 형태인 Star ring 많이 씀.
◆ Chanelization Protocol (채널화 프로토콜)
링크의 대역폭을 여러명이서 동시에 사용할 수 있도록 하는 것.
사용 가능한 대역폭이 모든 사용자에게 공유된다.
종류
- FDMA (Frequency-Division Multiple Access)
- TDMA (Time-Division Multiple Access)
- CDMA (Code-Division Multiple Access)
( MA는 무조건 2계층!! )
"...근데, 그럼 Multiplex랑 뭐가 다르냐?"
◆ Chanelization vs Multiplex
(주파수로 station들을 구분한다고 할 때!!)
Multiplex는 같은 조건으로 들어온 걸 가지고, 각각 다른 주파수를 할당하는 거였다. (변조)
Chanelization은 애초부터 각 단말에게 각각 다른 주파수로 접근하라고 하는 것임!
■ FDMA (Frequency-Division Multiple Access)
: 주파수를 쪼갬
Station별로 사용 가능한 주파수 대역이 미리 정해져있음!
사이사이 GuardBand (보호대역) 있음!!
※ Multiplex - FDM은 데이터가 들어온 후에 각각 다른 주파수를 할당함
■ TDMA (Time-Division Multiple Access)
: 시간을 쪼갬
Station별로 사용 가능한 타임 슬롯이 미리 정해져있음!
※ Multiplex - TDM은 데이터가 들어온 후에 각각 다른 시간을 할당함
■ CDMA (Code-Division Multiple Access)
: 주파수도 안 쪼개고, 시간도 안 쪼개면서도 동시에 보냄!! 헉~?! 이건 뭐지! (휴대폰의 핵심 기술)
채널별로 Code ( == Chips)를 할당함. 각 채널은 부여받은 Code를 사용해서 데이터를 부호화함.
이것들을 하나로 합쳐서 동시에 전송함.
수신측에서는 부여했던 Code를 사용해 복호화하면 각 채널별로 뭘 보냈는지 알아낼 수 있음!!
< 방법 >
[송신부]
1.
우선, 내가 보낼 데이터가
0이면 -1
1이면 +1
지금 보낼 거 없으면 0으로 표시함
채널별로 Chip sequence( == Code)를 할당받음. (<-이거 언제 받음? 휴대폰 개통할 때 받음! 유심 번호 등록)
2.
각자의 데이터를 할당 받은 코드와 곱함.
이 값을 모두 더하면 중간의 노란부분 값이 나옴.
▼ 지금까지 이 그림처럼 된 것임.
[수신부]
3.
이제 들어온 데이터에 다시 할당받았던 코드를 곱함.
그리고 나온 결과값을 모두 더한 후, Maximum 값으로 나눔! (Station이 4개니까 Data의 Maximum은 4)
~> 쨘~ 보냈던 진짜 비트 등장!!
그럼, 이 코드는 어떻게 만들어지냐?
-> Walsh table
- 처음 값(사용자가 한명일 때)은 +, - 둘 중 하나.
- 두번째 값부터는 우측 아래 부분만 보수 취해주면 됨. (각 행이 각자 사용자의 코드임)
- 사용자가 늘어날 경우 코드도 2의 제곱승 단위로 늘어남!!
(예를들어 사용자가 90명인 경우, 128개의 코드를 만들어야 함)
'CS > 컴퓨터 네트워크' 카테고리의 다른 글
Chapter 14. WIRELESS LANS (0) | 2022.11.21 |
---|---|
Chapter 13. WIRED LANS: ETHERNET (2) | 2022.11.16 |
Chapter 11. DATA LINK CONTROL (1) | 2022.11.02 |
Chapter 10. ERROR DETECTION AND CORRECTION (2) | 2022.10.30 |
Chapter 9. USING TELEPHONE AND CABLE NETWORKS FOR DATA TRANSMISSION (0) | 2022.10.30 |