[컴퓨터네트워크] 12. MULTIPLE ACCESS

Cherish·2023년 4월 21일

Computer Network

목록 보기
8/8
post-thumbnail

Multiple-access protocols

여러 사람이 회선을 사용(ex. bus)할 때 생기는 문제들을 해결하기 위한 방법에 대한 규정

  1. Random-access protocol (임의 접근 프로토콜)
  2. Controlled-access protocol (제어 접근 프로토콜)
  3. Channelization protocol (채널화 프로토콜)

12.1 Random Access

  • ALOHA
  • CSMA
  • CSMA/CD (Collision Detection - 유선 RAN)
  • CSMA/CA (Collision Avoidance - 무선 RAN)

📁 ALOHA

보낼 frame이 있을 때 바로 보낸다.

  • 타임아웃까지 잘 받았다는 응답이 안오는 경우 Tb(전송시간 * Random num) 만큼 기다린 후 다시 전송
  • 많이 기다릴 수록 성공 확률이 높아진다.
  • K max번까지 반복한다. K번을 시도한 후에는 포기한다

📁 CSMA (Carrier Sense Multiple Access)

= 내가 전송하기 전에 누가 회선을 사용하고 있는지 먼저 감지를 하자!

  • 1-persistent method (1-지속 방식)
  • non-persistent method (비지속 방식)
  • p-persistent method (p-지속 방식)

🍪 1-persistent ( 1의 확률로 전송)

매체가 사용중인지 계속 감시 -> Idle 상태가 되자마자 frame 전송

  • 효율이 높으나, Idle 상태가 되자마자 다같이 보내면 충돌이 일어날 수 있다

🍪 non-persistent

1-persistent에 비해 랜덤 간격을 두고 감지하다가 Idle 상태일 때 전송

  • 충돌 위험이 비교적 낮지만 효율은 떨어진다

🍪 p-persistent ( p의 확률로 전송 )

위의 두 방식의 장점을 합친 것
계속 감시를 하다가 Idle 상태가 되었을 때 이전의 충돌 확률에 따라 기다렸다가 보낸다.


📁 CSMA/CD (for 유선 LAN - 이더넷)

= Carrier Sense Multiple Access/Collision Detection
= 반송파 감지 다중 접근 - 충돌 검출

  • 앞의 persistent 방법들을 이용해 회선이 바쁜지 감지
  • 충돌이 난 경우 : jamming signal(충돌 신호)를 보낸다 -> 네트워크 내 모든 station들이 충돌이 발생했다는 것을 알게 된다.
  • 이후 ALOHA처럼 랜덤 시간에 따라 기다린다.

= 갑자기 큰 E가 발생했을 때 충돌했다고 판정


📁 CSMA/CA (for 무선 LAN - WIFI)

= Carrier Sense Multiple Access/Collision Avoidance
= 반송파 감지 다중 접근 - 충돌 회피

  • 무선 구간인 경우 전송 매체(공기 등) 상에서 충돌 검출이 어렵기 때문에 사전에 조심해서 보내야 한다

  1. 안테나에 신호가 계속 들어오면 기다린다.
  2. Idle이 되면 기다린다 / IFS 만큼
  3. 여전히 Idle이면, 랜덤 슬롯 만큼 기다린다(Contention window) 도중에 busy 상태를 감지하면 처음부터 시작하는 것이 아니라 타이머를 잠깐 멈춘다 = 가장 오래 기다린 Station이 우선순위를 갖는다.
  4. Send frame
  5. time-out이 나면 다시 반복
  • ASK를 받은 거면 Success 한 것
  • CSMA/CD에서는 충돌이 감지되지 않았으면 Success



12.3 Channelization

📁 CDMA

= Code-Division Multiple Access)

  • 주파수와 시간을 쪼개지 않고 동시에 보낸다!
  • 휴대폰에서 사용

  • 채널 별로 Code(Chip sequence)를 할당받는다

  • 내가 보낼 데이터가 0이면 -1 / 1이면 +1 / 없으면 0

  • 각자의 데이터를 할당 받은 Code와 곱한 후 채널마다 도출된 값을 모두 더한다.

  • 최종 data에 할당받았던 Code를 곱한 후 모두 더한다.
  • 그 결과물에 Maximum 값을 나누어 보낸 data를 도출한다.

0개의 댓글