컴퓨터 네트워크 - 무선 네트워크: Wifi, CSMA/CA

6 분 소요


K-MOOC에서 부산대학교 유영환 교수님의 “컴퓨터 네트워킹” 강의를 수강하며 적은 노트


Wireless Network

무선 네트워크

  • 최근 사용량은 유선보다 무선으로 인터넷에 접속하는 디바이스들의 수가 훨씬 많음
  • 무선 프로토콜: 와이파이, 블루투스, zigbee, ZWAVE, Light wave, LI-FI 등
  • mobility: 사용자가 계속 이동해도 끊김없이 인터넷 접속 지점을 바꿔가며 접속
    • 와이파이의 경우 와이파이에 멀어지면 새로 인위적으로 접속해야 연결이 가능하므로 모빌리티 제공 X
    • 무선 전화망은 모빌리티 O

구성 요소

  • 무선 호스트: 랩탑, 스마트폰, 태블릿 PC 등
    • 유선망에서 호스트는 데스크탑, 라우터, 서버 등
  • base station: 일반적 호스트가 아닌 네트워크를 구성하는 노드. 인터넷에 접속하는 지점
    • relay: 유선망과 무선 호스트를 연결하는 접점
    • 기지국, 와이파이 액세스 포인트
  • 링크: wireless 호스트와 베이스 스테이션을 이어줌
    • backbone: 베이스 스테이션과 백앤드의 인터넷망을 연결하는 망
      • LTE 등 보통 backbone망이 유선, 와이맥스, 와이브로는 무선

무선통신망의 topology

  • infrastructure 모드: 베이스 스테이션을 기준으로 해서 유선망 또는 전화망과 연결해 주는 기반 구조(infra)가 이미 갖춰져 거기에 연결
    • 무선 구간은 베이스 스테이션과 wirless 호스트 사이의 single hop
    • handoff(handover): 하나의 호스트가 접속해 있던 베이스 스테이션을 변경할 때 자동으로 변경이 되는 기술
    • 와이파이, 셀룰러망(무선 전화망), 와이맥스, 와이브로 등
  • ad hoc 모드: 어떤 특별한 모양을 가지지 않고 호스트들 사이에 임의로 자기들끼리 연결하는 네트워크
    • 1:1 또는 그물 형태도 가능, muiti-hop 커뮤니케이션 가능
    • 와이파이 다이렉트, 블루투스

무선 링크의 특성

  • path loss: 무선 전파는 유선 링크를 통과하는 신호에 비해서 신호 세기가 급격하게 감소
  • 간섭이 심하게 일어남
    • 2.4 GHz대 대역: ISM(Industry, Science, Medical) 밴드로 와이파이, 블루투스 등 많이 사용됨
    • 다중 경로 전파: 내가 내 신호에 의해서 간섭을 받음
      • 보낸 신호가 반사 등으로 각각 다른 길로 지나와 도착 시간이 달라 신호가 섞임
  • SNR(Signal-to-Noise Ratio): 신호 대 잡음 비
    • 신호가 아무리 세도 잡음보다 크게 강하지 않으면 제대로 수신할 수 없음
  • BER(Bit-Error Rate)
    • SNR과 BER은 tradeoff 관계: SNR이 높으면(신호가 깨끗) BER은 떨어짐
    • BPSK, QAM16, QAM256: QAM256은 BPSK의 속도 8배
      • 비트율이 더 높은 QAM256은 SNR이 더 높아야 함
      • 따라서 만약 SNR이 낮은 곳이라면 비트율을 낮추면 BER이 낮아짐




802.11 Wireless LAN(Wi-Fi)

Wireless Technologies

  • 802.11: 와이파이 기술
  • a, b: 99년 기술, g, n, ac가 나오며 전송 속도가 점점 증가
  • 802.15: WPAN
    • WPAN(Wireless Personal Area Network): 블루투스나 zigbee 등으로, 전송 거리는 크지 않지만 전력을 적게 소모
  • 2G: CDMA, GSM(TDMA+FDMA) 사용
  • 3G: 4 Mbps
  • 4G: LTE, 와이맥스, 10 Mbps
  • 5G: 100 Mbps

와이파이

  • 802.11b: 1999 - 2.4 GHz 대역 사용 - 11 Mbps
  • 802.11a: 1999 - 5 GHz 대역 사용 - 54 Mbps
  • 802.11g: 2003 - 2.4 GHz - 54 Mbps
  • 802.11n: 2009 - 2.4&5 GHz - 450 Mbps
  • 802.11ac
    • wave 1: 2014 – 5 GHz - 866.7Mbps
    • wave 2: 2016 – 5 GHz - 1.73 Gbps
  • 802.11n, 802.11ac는 SU-MIMO, MU-MIMO
    • 멀티플 안테나를 써서 동시 전송
    • SU: Single User, MU: Multiple User
    • SU-MIMO: AP에 달린 여러 개의 안테나로 시간대마다 유저 한 명에게 서비스
    • MU-MIMO: 여러 개의 안테나를 공유해서 여러 유저가 사용하는 것, SU-MIMO보다 속도 향상
    • 802.11ac와 802.11n 비교
      • 최대 네 배의 넓은 대역폭
        • 11a나 g: 20 MHz, 11n: 40 MHz, wave1: 80 MHz, wave2: 160 MHz
      • 안테나 수
        • 11n: 4개, 11ac: 8개
      • 모듈레이션 기술
        • 11n: 64QAM, 11ac: 256QAM
  • 802.11은 모두 와이파이이므로 같은 구조
    • 와이파이 표준에 따라 infrastructure 모드 또는 ad hoc 모드로 동작 가능
    • 모두 MAC 프로토콜로 CSMA/CA 사용

와이파이의 구조(infrastructure 모드)

  • 베이스 스테이션(공유기, 액세스 포인트)를 통해 호스트들의 데이터를 스위치에 모음
  • 허브 스위치는 액세스 포인트와 인터넷을 연결
  • BSS(Basic Service Set): 하나의 액세스 포인트가 커버하는 영역
  • ex) 11b: 2.4 ~ 2.485 GHz 대역 사용하여 약 80 MHz 영역에 11개 채널 서비스
    • 채널 당 20 MHz를 차지하게 겹치게 놓음
    • 주로 서로 겹치지 않는 1, 6, 11 채널 사용, 3개 보다 더 많은 노드들이 이웃하면 다른 채널들도 사용

AP 접속 방식

  1. 각각의 AP들이 beacon 메시지를 보내 자기의 존재를 알림 A. beacon 메시지: 이름인 SSID와 MAC address가 존재
  2. 호스트가 하나를 정해 association request 메시지 전송
  3. AP는 암호를 요구하거나, 따로 하지 않거나 하여 association response 메시지 전송
  4. AP를 통해 DHCP 기술로 IP 주소 부여

프레임: 이더넷 프레임과 비슷

  • frame control: 프로토콜 버전, type, subtype, to AP, from AP, more frag, retry, power mgt, more data, WEP, Rsvd 총 2 byte
    • type: 2 bit, 프레임 타입 RTS, CTS, ACK, 데이터 구분
    • AP한테 보낼 데이터가 있다, AP로부터 올 데이터가 있다, AP가 전달할 데이터가 있다 등 알림
  • duration: NAV
  • address 1, 2: 이더넷과 동일하게 Source MAC address, destination MAC address
    • 1: 목적지, 2: 소스
  • address 3: AP가 접속되어 있는 허브 스위치, 라우터, 게이트웨이의 주소
  • seq control: ACK에서 사용하기 위한 시퀀스 넘버
    • RDT(reliable data transfer)를 위해 메시지가 중복인지 아닌지 체크
  • address 4: 와이파이 다이렉트로 ad hoc 모드를 쓸 때 사용하는 주소
  • payload
  • CRC
    1. 호스트1이 AP에게 프레임 보냄 A. AP의 MAC 주소, 호스트1의 MAC 주소, 인터넷에 접속된 라우터의 MAC 주소
    2. 앞부분(AP의 MAC 주소)을 떼고 목적지에 라우터 주소, 소스에 호스트 주소를 써서 이더넷 프레임(802.3)을 만들어 전송
    3. 이후 유선 이더넷 망과 똑같이 동작

*rate adaptation: 다양한 data rate 지원

  • SNR 값이 좋을 땐 빠르게 전송할 수 있지만, 낮을 경우 BER이 높아져 통신 속도가 늦는 것이 더 나음




CSMA:CA

CSMA/CA

  • CSMA: 내가 전송하기 전에 같은 공유 주파수나 링크를 사용하는지 sensing을 해서 전송할 지 말 지 선택
    • CSMA, CSMA/CD 모두 충돌이 일어나면 재전송을 해서 통신 완료
  • Hidden terminal problem: 무선에서는 다른 노드의 상황을 감지 못하는 경우가 있어 충돌을 감지 못할 수 있음
    • ex) A와 C는 B의 신호를 듣고, 서로는 듣지 못함
      • C가 B에게 전송해도 A는 감지할 수 없으므로 그냥 보내면 충돌 발생
    • ex) A, B, C가 나란한 경우
      • A의 신호는 B까지는 전달하지만 시그널 감쇠로 C에게는 SNR이 매우 낮아짐
  • DCF(Distributed Coordination Function): CSMA/CA를 기반으로 하는 802.11 표준 기술, 개별 노드들이 분산적으로 서로 협력
  • CA(Collision Avoidance)
    1. 와이파이 sender가 먼저 일정한 시간 DIFS 동안 채널 지속적 감지
    2. 무언가 감지: backoff time 시작
    • backoff time: 개별 노드들이 알아서 결정한 랜덤한 시간 3. backoff time 타이머는 채널이 idle일 동안 감소, 누군가 전송 중에는 freeze 4. 타이머가 0이 되면 전송 시작

ex) 스테이션 5개 A, B, C, D, E

  1. A가 프레임 전송
  2. B, C, D가 감지하니 전송 중 -> random backoff time 시작
  3. C의 backoff time이 가장 짧아 C가 전송, B와 D는 타이머 멈춤, E가 채널 감지 후 random backoff time 시작
  4. C의 전송이 끝나면 DIFS만큼 기다리고 B, D, E 타이머를 다시 가동
  5. D가 가장 짧아 D가 전송, …, B 전송, …, E 전송

CA인 이유

  • CSMA/CD의 경우 충돌이 나면 collision detection으로 랜덤 시간 후 재전송
    • 충돌이 나도 detection이 빨라 금방 복원 가능
  • wireless는 자신의 신호가 커서 다른 신호는 잡음처럼 들려 collision detection이 안 됨
    • 충돌이 나면 전체 프레임이 다 전송될 때까지 기다려 시간 낭비
  • 따라서 충돌이 나지 않게 random backoff time으로 충돌 미리 방지
  • 충돌이 난 경우: 우연히 random backoff time가 거의 비슷해 동시에 전송된 경우
    • 따라서 수신자는 데이터를 받으면 ACK 메시지 보냄
    • ACK를 받지 못하면 sender는 재전송

DIFS와 SIFS

  • DIFS(Distributed Inter-Frame Space): 프레임 간의 시간 간격
  • SIFS(Short Inter-Frame Space): 데이터를 받고 ACK를 보내는 시간
  • DIFS > SIFS
    • 만약 DIFS < SIFS일 경우
      • Receiver가 데이터를 받고 나서 ACK를 전송하기 위해 있는 시간 중간에, 다른 노드가 채널을 감지하면
      • 아무도 전송 중이지 않으므로 데이터 전송
      • 다른 노드의 데이터와 ACK 메시지가 충돌해서 원래 노드는 재전송해야 함
    • 만약 DIFS > SIFS일 경우
      • Receiver가 데이터를 받고 나서 ACK를 전송하기 위해 있는 시간 중간에, 다른 노드가 채널을 감지하면
      • 처음에는 아무도 전송 중이지 않지만 DIFS 시간 동안 ACK 메시지를 감지함
  • SIFS가 필요한 이유
    • Checksum 등 에러 체크, ACK 메시지를 만드는 시간은 시스템마다 다름
    • 따라서 일정 값으로 정해 놓아야 DIFS 시간을 정할 수 있음

hidden terminal problem

  • CSMA/CA의 기본 방식은 해결할 수 없음
  • 따라서 채널을 예약할 수 있게 RTS(request-ro-send) 메시지를 전송
    • ex) A – B – C, A와 C는 듣지 못함
      • A가 RTS 전송: B에게 도달, C는 도달 X
      • B는 CTS 전송: A는 허가로 알아들음, C는 다른 누군가가 예약함을 알아챔
    • RTS, CTS는 NAV(Network Allocation Vector)를 가짐: RTS, CTS, 데이터, ACK를 보내는데 보통 걸리는 시간
      • 그 시간 동안 다른 노드들은 sleep에 들어가 에너지 절약
  • 데이터를 보내기 위해서는 항상 DIFS 동안 기다림
  • (RTS와, CTS), (CTS, 데이터), (데이터, ACK) 사이는 SIFS 동안 기다림


댓글남기기