무선 네트워크는 다음과 같은 구성 요소로 이루어진다.
무선 호스트(wireless host)는 유선 네트워크의 경우처럼 애플리케이션을 실행하는 종단 시스템 장치다.
e.g., 스마트폰, 태블릿, 랩톱, 센서 등의 IoT(Internet of Things) 장치, 가전제품, 자동차, 그 외 인터넷에 연결된 무수히 많은 장치
호스트는 무선 통신 링크(wireless communication link)를 통해 기지국(base station)이나 다른 무선 호스트에 연결된다.
위 그림에서 무선 링크는 네트워크 가장자리에 있는 호스트를 코어에 있는 네트워크 인프라스트럭처로 연결해준다.
무선 링크는 때로는 네트워크 코어에서도 라우터, 스위치 등 네트워크 장치들 사이를 연결해주는 데 사용될 수 있다.
기지국(base station)은 기지국에 결합된 무선 호스트와의 데이터(e.g., 패킷) 송수신에 대한 책임을 진다.
즉, 자신과 결합되어 있는 다수의 무선 호스트들 사이의 전송을 중재하고 조정한다.
무선 호스트가 어떤 기지국에 ‘결합(association)되어 있다’는 것은 아래 두 가지를 의미한다.
- 호스트가 해당 기지국의 무선 통신 영역 안에 있다.
- 호스트가 자신과 네트워크 간의 데이터 중계(relay)를 위해 해당 기지국을 사용한다.
기지국의 예
- 셀룰러 네트워크에서의 셀 타워(cell tower)
- 무선 네트워크에서의 AP(access point)
기지국에 접속된 호스트는 인프라스트럭처 방식(infrastructure mode)으로 동작한다고 한다.
이는 주소 할당이나 라우팅 등 기존의 모든 네트워크 서비스가 기지국을 통해 네트워크에 연결된 호스트에게 제공되기 때문이다.
이에 반해 애드혹 네트워크(ad hoc network)의 경우 무선 호스트는 연결할 수 있는 이런 인프라스트럭처가 없다.
이때 호스트는 스스로 라우팅, 주소 할당, DNS 방식의 이름-주소 변환 등의 서비스를 수행해야 한다.
이동 호스트가 한 기지국 영역을 벗어나 다른 기지국 영역으로 이동하는 경우, 중심부에 있는 큰 네트워크로의 접속점을 변경(결합된 기지국을 변경)해야 한다.
이 과정을 핸드오프(handoff) 또는 핸드오버(handover)라고 한다.
무선 호스트가 통신하고자 하는 큰 네트워크다.
무선 네트워크를 이루는 요소들은 다양한 방식으로 결합되어 여러 가지 형태의 무선 네트워크를 형성할 수 있다.
우리는 다음의 두 가지 기준에 따라 무선 네트워크를 크게 몇 종류로 분류할 수 있다.
- 무선 네트워크 내의 패킷이 하나의 홉만을 거치는가 여러 홉을 거치는가?
- 기지국과 같은 네트워크 인프라스트럭처가 있는가, 없는가?
- 좀 더 큰 유선 네트워크와 연결된 기지국을 갖고 있다.
- 모든 통신은 이 기지국과 무선 호스트 사이에 단일 무선 홉으로 이루어진다.
- e.g.,
- 802.11 네트워크 : 교실, 음식점, 도서관 등에서 사용
- 4G LTE 네트워크
- 유선 네트워크가 연결된 기지국이 없다.
- 단일 홉 네트워크 안의 하나의 노드가 다른 노드들의 전송을 중재, 조정할 수 있다.
- e.g., 블루투스 네트워크 : 키보드, 스피커, 헤드셋 등 작은 무선 장비들을 연결
- 좀 더 큰 네트워크와 연결된 기지국이 존재해야 한다.
- 일부 노드들은 기지국와 통신하기 위해 다른 무선 노드들의 중계를 거쳐야 한다.
- e.g.,
- 일부 무선 센터 네트워크(wireless sensor network)
- 무선 메시 네트워크(wireless mesh network)
- 기지국이 없다.
- 노드들은 메시지를 목적지에 보내기 위해 여러 노드들의 중계를 거칠 수 있다.
- 노드들은 이동성이 있어 노드들 간의 연결성이 변화할 수 있다.
- 이러한 형태의 네트워크는 이동 애드혹 네트워크(mobile ad hoc network, MANET)라고 한다.
책에서는 주로 단일 홉 네트워크와 인프라스트럭처가 있는 네트워크에 논의를 한정한다.
무선 링크는 유선 링크와 다르게 추가로 고려해야 하는 것들이 존재한다.
- 전자기파는 물체를 통과함에 따라 약화된다.
- 자유 공간에서도 전자기파 신호는 분산되고,
송신자와 수신자 사이의 거리가 증가함에 따라 신호의 세기가 감소한다.
이런 현상을 경로 손실(path loss)이라고도 한다.
- 동일 주파수 대역으로 전송되는 무선 신호들은 서로 간섭하게 된다.
- 이러한 송신자 간의 간섭 외에 주변의 전자기 잡음(e.g., 근처의 모터 또는 전자레인지로 인한) 등도 간섭을 일으킬 수 있다.
이런 이유로 최근의 802.11 표준들은 5 GHz 대역에서 동작한다.
송신자와 수신자 간에 전송되는 전자기파의 일부가 물체나 지표에 부딪혀서
서로 길이가 다른 여러 개의 경로를 겨처갈 때 다중 경로 전파(multipath propagation) 현상이 생긴다.
이는 수신 측에서 감지되는 신호를 또렷하지 않게 만든다.
이들을 통해 알 수 있듯이, 유선 링크보다는 무선 링크에서 비트 오류가 더 자주 발생한다.
따라서 802.11을 포함한 무선 링크 프로토콜은 강력한 CRC 오류 검출 코드를 사용할 뿐만 아니라
손상된 프레임을 재전송해주는 링크 레벨의 신뢰성 있는 데이터 전송 프로토콜을 사용한다.
측정된 수신 신호의 세기와 잡음의 상대적인 비율
- 단위 : 데시벨(dB)
(수신 신호의 진폭과 잡음의 진폭에 각각 밑이 10인 로그함수를 취한 비율의 20배) - SNR 값이 커질수록 수신 측에서는 잡음에도 불구하고 원하는 신호를 추출하기 쉬워진다.
송신된 비트가 수신 측에서 오류로 검출될 확률
아래 그림은 이상적인 무선 채널에서 세 가지 변조(modulation) 기법의 비트 오류율을 나타내는 BER 값과 SNR 값의 관계를 보여준다.
이는 송신자가 출력 세기를 높이면 SNR 값이 커지고,
동시에 수신된 비트에서 오류가 발생할 확률은 낮아지기 때문이다.
그러나 출력 세기를 어느 임계점 이상으로 높이는 것은 이득이 없다.
출력 세기를 높이는 것의 단점은 다음과 같다.
- 출력 세기를 높일수록 송신 장치에서 더 많은 에너지가 소모되며, 이는 배터리를 사용하는 이동 통신 사용자에게는 중요한 문제다.
- 출력 세기를 높이면 다른 송신자의 전송과 더 많은 간섭이 생길 수 있다.
위 그림에서 SNR 값이 10 dB일 때를 보자.
- 1 Mbps 전송률의 BPSK 변조 기법의 BER 값 = 10^(-7) 이하
- 4 Mbps 전송률의 QAM16 변조 기법의 BER 값 = 10^(-1)
10^(-1)는 실제 사용하기에는 지나치게 높은 오류율이기 때문에, 이 환경에서는 BPSK 변조 기법이 더 선호된다.
반대로, SNR 값이 20 dB일 때를 보자.
- 1 Mbps 전송률의 BPSK 변조 기법의 BER 값은 표시되지도 않을 정도로 낮다.
- 4 Mbps 전송률의 QAM16 변조 기법의 BER 값 = 10^(-7)
만약 10^(-7) 정도의 BER 값이 별문제가 없다면 이 환경에서는 높은 전송률을 갖는 QAM16 변조 기법이 더 선호된다.
이러한 고찰을 기반으로 다음에 기술한 마지막 특성이 도출된다.
SNR 및 BER 값은 이동성의 결과 또는 환경의 변화로 인해 바뀔 수 있다.
따라서 802.11 와이파이 또는 4G/5G 네트워크 기반의 셀룰러 데이터 전송 시스템에서는
주어진 채널 환경에서 적당한 BER를 만족하는 동시에 최고의 전송률을 제공하는 적응적인 변조 기법을 선택할 수 있도록 허용한다.
숨은 터미널 문제(hidden terminal problem)
아래의 상황에서 A가 B로, C가 B로 데이터를 전송한다고 가정하자.
이때 A와 C의 전송 신호가 실제로 목적지 B에서 간섭됨에도 불구하고
산이나 건물 등의 환경적인 장애물로 인해 A와 C는 서로 상대방의 전송을 인지하지 못하는 일이 생긴다.
이를 숨은 터미널 문제(hidden terminal problem)한다.
신호가 무선 매체를 통과함에 따라 신호 세기가 약해지는 현상을 말한다.
위 그림에서 A와 C가 서로의 전송을 검출하기에는 충분하지 않은 세기의 신호를 수신하는 거리에 있으나,
이들 신호가 중간에 있는 B에서는 간섭된다.
코드 분할 다중 접속(code division multiple access, CDMA)은 채널 분할 접속 프로토콜의 하나로서,
무선 랜 및 셀룰러 기술에서 아주 많이 사용되고 있다.
채널 분할 접속 프로토콜
CDMA 프로토콜에서는 송신자가 전송하는 각 비트를 확장해서
애초의 데이터 비트열보다 훨씬 빠른 속도(칩 속도(chipping rate))로 변화되도록 하는 신호(코드)를 곱하는 방식으로 인코딩한다.
아래의 간단하고 이상적인 CDMA 인코딩/디코딩 시나리오를 보자.
데이터 비트들이 CDMA 인코더에 도착하는 속도에 의해 시간의 단위가 정의된다고 가정하자.
즉, 전송되는 각각의 원래 데이터 비트는 한 비트 슬롯 시간이 필요하다.
i번째 비트 슬롯의 데이터 비트값을 di라고 하자.
계산의 편의상, 1 값을 갖는 데이터 비트는 1로, 0 값을 갖는 데이터 비트는 -1로 표시한다.
각 비트 슬롯은 M개의 미니슬롯들로 더 분할된다. (그림에서는 M = 8)
- 송신자가 사용하는 CDMA 코드는 일련의 연속된 M개의 값, Cm(m = 1, … , M)으로 구성된다.
- 각각의 Cm 값은 1 또는 - 1 값을 갖는다.
CDMA의 동작을 구체적으로 알아보기 위해, i번째 데이터 비트인 di에 대해 살펴보자.
수신자는 인코딩된 바이트열 Zi,m을 수신해서 다음과 같이 합성함으로써 원래의 데이터 비트 di를 생성한다.
위의 시나리오 그림에서 해당 식을 통해 원래 데이터 비트가 수신자에 의해 정확히 얻어지는 것을 확인할 수 있다.
현실에서는 서로 간섭하는 다수의 송신자가 존재한다.
이 경우, CDMA 수신자는 다른 송신자들이 전송한 비트들과 섞여 있는 상황에서 내 송신자의 원래 데이터 비트를 어떻게 다시 생성할 수 있을까?
CDMA는 동시에 전송되어 간섭하는 비트 신호들을 더할 수 있다는 전제하에 동작한다.
e.g., 같은 미니슬롯에서 3명의 송신자가 1의 값을 전송하고 4번째 전송자가 -1의 값을 전송한다면,
그 미니슬롯에서 모든 수신자가 수신하는 신호는 2(= 1+1+1-1)가 된다.
다수의 송신자가 있는 경우에도 송신자 s는 아래 식을 사용해서 자신의 인코딩된 전송 비트열을 정확히 계산한다.
(위에서의 식과 동일)
i번째 비트 슬롯의 m번째 미니슬롯은 그 미니슬롯 동안 모든 N개의 송신자가 전송한 비트들의 합이 된다.
만약 송신자의 코드가 조심스럽게 선택되었다면,
수신자는 다수 송신자로부터의 혼합된 신호로부터 원하는 송신자가 전송한 데이터만을 아래 식과 같이 특정 송신자 코드를 사용해서 쉽게 추출해낼 수 있다.
아래는 두 송신자가 존재할 때, 수신자가 위쪽 송신자로부터의 원래 데이터 비트열을 구하는 과정을 나타낸다.
수신자는 아랫쪽 송신자의 간섭에도 불구하고 첫 번째 송신자의 데이터를 추출할 수 있다.
💡 CDMA는 (시간이나 주파수가 아닌) 코드를 분할(partitioning)해서 각 노드에게 적당한 코드를 할당하는 분할 프로토콜이다.
위에서는 CDMA에 대한 필수적인 설명만 했지만, 실제로는 많은 어려운 문제들이 있다.
- CDMA 수신자가 특정 송신자의 신호를 추출해낼 수 있도록 CDMA 코드를 조심스럽게 선택해야 한다.
- 앞에서는 여러 송신자로부터의 신호 세기가 수신자 쪽에서 동일하다고 가정했으나, 실제 상황에서 이런 경우는 드물다.
1990년대 다양한 무선 랜(wireless LAN) 관련 기술 및 표준이 개발되었으나
그중 가장 성공적인 기술, 와이파이(WiFi)라고 알려진 IEEE 802.11 무선 랜이 관련 기술들을 통합하게 되었다.
- 일반적으로 거리가 70m 미만인 영역에서 동작하는 WLAN 용도
- 이전 표준과의 역방향 호환성을 갖는다.
즉, 802.11g 기능만을 갖는 이동 단말도 802.11ac 또는 802.11ax 기지국과의 상호작용이 가능하다. - 모두 CSMA/CA라는 동일한 매체 접속 프로토콜을 사용한다.
- IoT, 센서 네트워크, 측정 애플리케이션을 활용하기 위한 용도 (좀 더 먼 거리에서 동작)
802.11 무선 랜 장치들은 두 종류의 주파수 영역에서 동작한다.
- 5.1~5.8 GHz 주파수 영역
- 비허가(unlicensed) 주파수 대역
- 이 영역에서 802.11 장치들은 2.4 GHz 무선 전화 및 가전제품과 주파수 경쟁을 하게 된다.
- 전력 수준이 동일할 경우 전송 거리가 더 짧고 다중 경로 전파의 영향을 더 많이 받는다.
802.11n, 802.11ac, 802.11ax 표준은 MIMO(multiple input multiple-output) 안테나를 사용한다.
이는 송신과 수신 측에 각각 2개 이상의 안테나가 있어 각기 다른 신호를 송수신하는 방식이다.
802.11ac, 802.11ax 기지국은 여러 개의 스테이션을 동시에 전송할 수 있으며,
목적지에 따라 동적으로 수신자의 방향을 향해 전송할 수 있는 스마트 안테나를 사용한다.
이는 간섭을 줄이고, 동일한 데이터 전송률에서의 도달 거리를 향상하는 기능을 한다.
다음은 802.11 무선 랜 구조의 핵심적인 구성요소를 보여준다.
- 802.11 구조의 가장 근본적인 구성 단위
- 구성
- 하나 이상의 무선 단말기
- 하나의 기지국(base station) 즉, AP(access point)
- 전형적인 홈 네트워크에서는 BSS를 인터넷으로 연결하는 AP와 라우터가 각각 필요하다.
- 802.11 무선 기지국은 6바이트의 MAC 주소를 가진다.
- MAC 주소는 스테이션의 어댑터(802.11 네트워크 인터페이스 카드) 펌웨어에 저장되어 있다.
- 각각의 AP도 자신의 무선 인터페이스에 대한 MAC 주소를 갖는다.
- MAC 주소는 IEEE에 의해 관리되며, 이론적으로는 전 세계에서 유일성을 갖는다.
- AP를 가진 무선 랜
- 네트워크 인프라스트럭처 : AP, 그리고 AP를 인터넷 라우터와 연결해주는 유선 이더넷 구조를 통칭한다.
- 중앙 제어나 외부 네트워크로의 연결 인프라가 없는 경우를 말한다.
- e.g., 랩톱을 가진 사람들이 중앙 제어되는 AP가 없는 환경(회의실, 기차, 자동차 등)에서 만나 데이터를 교환할 때
- 네트워크는 근접한 이동 장치들 사이의 연결을 통해 즉흥적으로 형성된다.
- 이미 존재하는 다른 네트워크 인프라스트럭처에 기댈 수가 없고 따라서 가까이 있는 장치들이 서로 찾아서 통신해야 하기 때문이다.
아래 그림은 IEEE 802.11 스테이션들이 애드혹 네트워크를 형성하기 위해 서로를 그룹으로 연결하는 상황을 보여준다.
802.11에서 개별 무선 단말기는 네트워크 계층 데이터를 송신 또는 수신하기 전에 하나의 AP와 결합(association)되어 있어야 한다.
모든 802.11 표준에서 결합을 사용하고 있지만, 특히 IEEE 802.11 b, g, n, ac, ax 환경에서 이 주제를 논의하겠다.
- 네트워크 관리자가 AP를 설치할 때 AP에서 하나 또는 두 단어로 된 SSID(Service Set Identifier)를 할당한다.
- 관리자는 AP에게 채널 숫자를 할당해야 한다.
- 802.11은 2.4~2.4835 GHz 주파수 범위에서 동작한다.
- 이 80여 MHz 주파수 대역에서 11개의 일부가 겹치는 채널들을 정의하고 있기에
서로 다른 2개의 채널은 4개 채널 이상의 간격으로 분리되어 있어야만 겹치지 않는다.
무선 스테이션이 둘 이상의 AP로부터 충분히 강한 신호를 받을 수 있는 모든 지역
이러한 AP들은 각기 다른 IP 서브넷에 있을 수 있고, 독립적으로 채널을 할당했을 수도 있다.
무선 스테이션이 인터넷에 접속하기 위해서는 정확히 하나의 서브넷에 들어가야 하므로 단 하나의 AP와 결합되어야 한다.
(결합 = 무선 스테이션이 AP와 가상 회선을 만드는 것)
- 802.11 표준은 AP가 주기적으로 비컨 프레임(beacon frame)을 전송할 것을 요구한다.
- 비컨 프레임(beacon frame)에는 AP의 SSID와 MAC 주소가 포함된다.
- 무선 스테이션은 주변 AP로부터의 비컨 프레임을 찾기 위해 11개 채널을 살펴본다.
- 비컨 프레임으로부터 사용 가능한 AP들의 정보를 얻은 무선 스테이션은 결합을 맺을 AP를 하나 선택한다.
- 802.11 표준은 사용 가능한 AP 중 어떤 것을 선택할 것인지를 정하는 알고리즘을 정의하지 않고 있으며,
이는 무선 스테이션의 펌웨어 또는 소프트웨어 설계자에 의해 결정된다. - 일반적으로는 비컨 시그널의 세기가 가장 강한 AP를 선택한다.
- 802.11 표준은 사용 가능한 AP 중 어떤 것을 선택할 것인지를 정하는 알고리즘을 정의하지 않고 있으며,
수동적 스캐닝(passive scanning) : 비컨 프레임의 수신을 통해 채널을 찾는 과정
- AP들로부터 비컨 프레임이 전송된다.
- H1에서 선택된 AP로 결합 요청 메시지를 전송한다.
- 선택된 AP에서 H1으로 결합 수락 메시지를 전송한다.
무선 호스트는 능동적 스캐닝 과정을 수행할 수 있다.
능동적 스캐닝(active scanning) : 무선 스테이션이 영역 안에 있는 AP들에게 탐사용 프로브(probe) 프레임을 방송하는 방식
- 탐사용 프로브 프레임이 H1으로부터 방송된다.
- AP들로부터 프로브 응답 메시지가 도착한다.
- H1에서 선택된 AP로 결합 요청 메시지를 전송한다.
- 선택된 AP에서 H1으로 결합 수락 메시지를 전송한다.
스테이션의 첫 번째 프로브 요청에 응답한 AP는 여러 개의 응답한 AP 중 어떤 것이 선택될지 모르기 때문에 두 번째 요청/수락 핸드셰이킹 통신이 필요하다.
AP와의 결합 단계가 끝난 후, 무선 스테이션은 AP의 서브넷 IP 주소를 얻기 위해서 결합된 AP를 통해 서브넷으로 ‘DHCP 발견 메시지’를 전송한다.
서브넷 주소를 얻으면 인터넷의 나머지 노드는 이 무선 스테이션을 선택된 AP의 서브넷 내부의 IP 주소를 지닌 한 호스트로 여기게 된다.
무선 스테이션이 특정 AP와 결합하기 위해서는 해당 AP에게 자신을 인증(authentication)해야 할 때도 있다.
- e.g., 스테이션의 MAC 주소를 기반으로 무선 네트워크로의 접근을 허용 / 사용자 이름과 암호를 입력
- AP는 인증 서버와 통신하며, 무선 종단 스테이션과 인증 서버 사이에서 RADIUS DIAMETER 같은 프로토콜을 사용해서 정보를 중계한다.
무선 스테이션이 AP와 결합되면 AP와 데이터 프레임을 송수신할 수 있다.
그러나 AP 자신을 포함한 여러 스테이션이 동시에 동일한 채널로 데이터 프레임을 전송할 수 있으므로 전송을 조정하기 위해 다중 접속 프로토콜이 필요하다.
다중 접속 프로토콜은 크게 세 가지 방법으로 분류된다.
- 채널 분할 (e.g., CDMA)
- 랜덤 접속
- 순번제
이더넷에서 랜덤 접속 프로토콜이 커다란 성공을 함에 따라 무선 랜에서도 랜덤 접속 프로토콜이 사용된다.
802.11 무선 랜에서 사용되는 랜덤 접속 프로토콜은 CSMA/CA(carrier sense multiple access with collision avoidance)다.
즉, 스테이션이 전송하기 전에 채널 상태를 감지하고(sense), 만일 채널이 사용 중이면 전송하지 않는다.
이더넷과 802.11 모두 채널을 감지하는 랜덤 접속 프로토콜을 사용하지만,
이들 MAC(Medium Access Control, 매체 접속 제어) 프로토콜에는 차이가 있다.
- 802.11은 충돌 검출(collision detection)을 사용하지 않고 충돌 회피(collision avoidance) 기술을 사용한다.
- 이유
- 충돌 검출을 하려면 (스테이션 자신의 신호) 송신과 (다른 스테이션의 전송 여부 결정을 위한) 수신이 동시에 가능해야 한다.
일반적으로 802.11 어댑터에서 수신 신호의 세기는 송신 신호의 세기에 비해 아주 약하므로, 송수신을 모두 고려하여 충돌을 검출할 수 있는 하드웨어를 만드는 데는 많은 비용이 든다. - 동시에 송수신이 가능하고 다른 스테이션에 의한 채널 사용을 감지했을 때 전송을 중단할 수 있다고 하더라도,
숨은 터미널 문제와 페이딩 때문에 충돌을 검출하지 못할 수도 있다.
- 충돌 검출을 하려면 (스테이션 자신의 신호) 송신과 (다른 스테이션의 전송 여부 결정을 위한) 수신이 동시에 가능해야 한다.
- 따라서 802.11 무선 랜은 일단 스테이션이 프레임을 전송하기 시작하면 그 프레임을 모두 전송하고, 이를 중단할 수 없다.
- 충돌이 빈번할 때 프레임 전체를 전송하면 다중 접속 프로토콜의 성능이 상당히 저하될 수 있기 때문에 몇 가지 충돌 회피 기술을 사용한다.
- 이유
- 802.11에서는 링크 계층 ARQ(ACK/재전송) 방식을 사용한다.
무선 랜에서 송신 스테이션이 전송한 프레임은 여러 가지 이유(숨은 터미널 문제, 페이딩 등)로 목적지 스테이션에 제대로 도달하지 못할 수 있으며,
이를 해결하기 위해 802.11 MAC에서는 링크 계층 ACK(link-layer acknowledgment)를 사용한다.
- 목적지 스테이션은 CRC 검사를 통과한 프레임을 수신하면
SIFS(Short Inter-Frame Spacing)라는 짧은 시간을 기다린 후에 ACK 프레임을 송신 스테이션에게 보낸다. - (1) 만일 송신 스테이션이 주어진 시간 동안에 ACK를 수신하지 못하면, 송신 스테이션은 오류가 발생했다고 가정한다.
- (2) 송신 스테이션은 다시 CSMA/CA 프로토콜을 사용해서 채널 접속을 한 후 프레임을 재전송한다.
- 일정 횟수만큼의 재전송 후에도 ACK를 수신하지 못하면, 송신 스테이션은 포기하고 프레임을 폐기한다.
스테이션(무선 장치나 AP)이 전송할 프레임을 갖고 있다고 가정하자.
- 스테이션은 채널이 사용되지 않음을 감지하면 DIFS(Distributed Inter-frame Space)라는 짧은 시간 동안 기다린 후에 프레임을 전송한다.
- 그렇지 않고 채널이 사용 중이면 스테이션은 백오프 방식에 따라 선택된 임의의 시간 동안 대기한다. (6.3.2절 참고)
- DIFS 시간 이후에 채널이 사용되지 않음을 감지하면 선택된 시간의 카운터값은 감소하며,
채널 사용이 감지되면 카운터값을 그대로 고정한다.
- DIFS 시간 이후에 채널이 사용되지 않음을 감지하면 선택된 시간의 카운터값은 감소하며,
- 카운터가 0에 도달하면 스테이션은 프레임 전체를 전송한 후에 ACK를 기다린다.
- 카운터가 0에 도달하는 것은 채널이 사용되지 않을 때만 가능하다.
- (1) ACK를 수신하면 송신 스테이션은 프레임이 목적지 스테이션에 의해 제대로 수신되었음을 알게 된다.
→ 만일 스테이션에 전송할 프레임이 또 있다면 2단계의 CSMA/CA 프로토콜을 수행한다. - (2) ACK를 수신하지 못하면 송신 스테이션은 좀 더 증가된 임의의 시간값을 선택한 후, 2단계의 백오프 과정을 수행한다.
- 이더넷의 CSMA/CD(collision detection) 다중 접속 프로토콜
: 채널이 사용되지 않는 유휴 상태임을 감지한 스테이션은 바로 전송을 시작한다. - 802.11의 CSMA/CA(collision avoidance) 프로토콜
: 채널이 사용되지 않는 상태임을 감지하더라도 스테이션은 임의의 백오프값을 선택하여 카운트다운 과정을 거치므로 전송을 지연시킨다.
각각 전송할 프레임을 가진 2개의 스테이션이 또 다른 제3의 스테이션이 이미 전송하고 있음을 감지했기 때문에 바로 전송하지 않는 상황을 생각해보자.
이더넷 CSMA/CD에서는 전송 중이었던 스테이션이 전송을 마치면 이 두 스테이션이 바로 전송을 시작한다.
- 이 경우에 충돌이 발생하며, CSMA/CD에서는 두 스테이션 모두 전송을 즉시 중단한다.
- 충돌을 겪은 프레임의 나머지 부분을 전송하지 않음으로써 불필요한 전송을 피하므로 문제가 심각해지지 않는다.
802.11은 충돌을 검출하지 않으며 전송을 중단하지도 않는다.
- 이에 충돌을 겪은 프레임이라도 전체를 다 전송하기 때문에, 802.11의 목표는 가능한 한 충돌을 회피하는 것이다.
- 두 스테이션이 채널이 현재 사용 중임을 감지하면 아래와 같은 방식으로 충돌을 회피한다.
- 이들은 랜덤 백오프(random backoff) 기법을 수행하여 임의의 백오프값을 선택한다.
- 선택된 백오프 시간이 다른 경우, 채널이 사용되지 않는 유휴 상태에 도달했을 때
- 경쟁 중인 두 스테이션 중 하나가 다른 스테이션보다 먼저 전송을 시작하며,
- ‘경쟁에서 진 스테이션’은 ‘이긴 스테이션’의 신호를 감지하고 자신의 카운터를 멈춘 후
- 경쟁에서 이겨 전송 기회를 획득한 스테이션이 전송을 완료할 때까지 기다린다.
- 이 상황에서도 두 스테이션이 서로 숨은 터미널이거나 두 스테이션이 선택한 임의의 백오프값이 너무 가까울 경우 충돌이 생길 수 있다.
802.11 MAC 프로토콜은 숨은 터미널이 존재하더라도 충돌을 회피할 수 있는 예약 방법을 선택할 수 있도록 제공한다.
아래의 상황에서는 2개의 무선 스테이션(H1, H2)과 하나의 AP가 있다.
두 무선 스테이션은 동일한 AP의 영역 내에 있으며 이 AP와 결합되어 있는데,
페이딩 때문에 각 무선 스테이션은 AP로부터는 잘 보이지만 그들 서로 간에는 숨어 있다.
숨은 터미널이 왜 문제일까?
스테이션 H1이 프레임을 AP로 전송하고 있고, H1이 전송하는 도중에 스테이션 H2가 AP로의 전송을 원한다고 가정하자.
H1의 전송을 듣지 못한 H2는 임의의 시간(DIFS)을 기다린 후에 DATA 프레임을 전송하며 충돌이 발생하게 되고,
이에 H1의 전체 전송 시간과 H2의 전체 전송 시간 동안 채널이 낭비된다.
이 문제를 해결하기 위해 IEEE 802.11 프로토콜에서는
스테이션들이 짧은 RTS(Request to Send) 제어 프레임과 짧은 CTS(Clear to Send) 제어 프레임을 주고받게 함으로써 채널 접속을 예약할 수 있게 한다.
- 송신자는 DATA 프레임을 전송하고 싶으면, 먼저 RTS 프레임을 AP에게 보냄으로써
DATA 프레임과 ACK 프레임을 전송하는 데 필요한 전체 시간을 알려준다. - AP가 RTS를 수신하면 이에 대한 응답으로 CTS 프레임을 영역 내의 모든 스테이션에게 전송한다. (송신 스테이션 포함)
- 송신자에게는 전송할 수 있다는 허가를 알려준다.
- 다른 스테이션들에게는 예약된 시간 동안 전송하지 못하게 한다.
RTS와 CTS 프레임을 사용하면 다음과 같이 두 가지 측면에서 성능이 향상된다.
- 채널을 예약한 다음에만 길이가 긴 DATA 프레임을 전송하기 때문에 숨은 스테이션 문제가 완화될 수 있다.
- RTS와 CTS 프레임은 길이가 짧으며, RTS/CTS 프레임에 의한 충돌은 짧은 RTS/CTS 프레임이 전송되는 동안에만 발생한다.
일단 RTS와 CTS 프레임이 제대로 전송되면, 그 뒤에 오는 DATA와 ACK 프레임은 충돌 없이 전송된다.
하지만 이들로 인해 지연과 채널 자원의 낭비가 생긴다.
따라서 실제로 무선 스테이션에서는 RTS 임계치를 설정하여,
임계치보다 긴 DATA 프레임을 전송할 때만 RTS/CTS 교환을 통해 채널을 예약할 수 있도록 한다.
만일 두 노드가 지향성 안테나(directional antenna)를 갖고 있다면
지향성 안테나로 상대방을 가리킴으로써 지점 간의 링크를 형성하고, 이 링크에 대해 802.11 프로토콜을 실행할 수 있다.
비용이 저렴한 802.11 하드웨어에 지향성 안테나와 증가된 전송 전력(power)을 사용함으로써
802.11은 수십 km 거리의 무선 지점 사이에 연결을 제공하는 저렴한 수단으로 사용될 수 있다.
802.11 프레임은 이더넷 프레임과 유사하지만, 무선 링크 사용에 특화된 몇 개의 필드를 갖고 있다.
아래 그림은 802.11 프레임을 표시한 것인데,
프레임의 각 필드 위의 숫자는 필드 길이를 바이트 단위로 나타낸 것이다.
Frame Control 필드의 서브필드(subfield) 위의 숫자는 서브필드의 길이를 비트 단위로 나타낸 것이다.
- 페이로드(payload)는 보통 하나의 IP 데이터그램이나 ARP 패킷이다.
(최대 2,312바이트까지 허용, 하나의 데이터그램이나 ARP 패킷을 포함함) - 32비트의 CRC를 통해 802.11 프레임은 수신자가 수신한 프레임의 비트 오류를 검출할 수 있다.
(비트 오류는 유선 랜보다 무선 랜에서 훨씬 많이 발생하므로 CRC 기법은 무선 랜에서 더 유용함)
802.11 프레임의 가장 큰 차이점은 4개의 주소 필드를 갖고 있다는 것이다.
각 주소 필드는 6바이트의 MAC 주소를 포함할 수 있다.
왜 주소 필드가 4개나 필요할까?
- 네트워크 연동(internetworking)을 위해서는 3개의 주소가 필요하다.
- e.g., 무선 스테이션에서 AP를 통해 라우터 인터페이스로 네트워크 계층 데이터그램을 전송하는 경우
- 네 번째 주소는 애드혹 네트워크 모드에서 사용된다.
802.11 표준에서는 처음 3개의 주소 필드를 다음과 같이 정의한다.
- 프레임을 전송하는 스테이션의 MAC 주소
- e.g.,
- 무선 스테이션이 프레임을 전송하면 그 스테이션의 MAC 주소가 이 필드에 삽입된다.
- AP가 프레임을 전송하면 AP의 MAC 주소가 이 필드에 삽입된다.
- 프레임을 수신하는 무선 스테이션의 MAC 주소다.
- e.g.,
- 이동 무선 스테이션이 프레임을 전송하면 Address 1에는 목적지 AP의 MAC 주소가 삽입된다.
- AP가 프레임을 전송하면 Address 1에 목적지 무선 스테이션의 MAC 주소가 삽입된다.
- AP와 무선 기지국들로 구성된 BSS는 서브넷의 일부이고, 이 서브넷은 라우터 인터페이스를 통해 다른 서브넷으로 연결된다.
- Address 3은 이 라우터 인터페이스의 MAC 주소를 포함한다.
💡 Address 3은 BSS를 유선 랜과 연동하는 데 핵심적인 역할을 한다.
아래의 예시를 보자.
- 2개의 AP가 있으며, 각 AP는 다수의 무선 스테이션들을 책임진다.
- 각 AP는 라우터에 직접 연결되어 있으며, 라우터는 글로벌 인터넷에 연결되어 있다.
- AP는 링크 계층 장치이기에 네트워크 계층인 IP 기능을 갖지 않으며, IP 주소를 이해하지도 못한다.
1️⃣ 라우터 인터페이스 R1로부터 무선 스테이션 H1로 데이터그램을 전달한다고 하자.
라우터는 자신과 H1 사이에 AP가 존재한다는 사실을 알지 못하며, H1을 자신에게 연결된 서브넷 중 하나에 대한 호스트 정도로 생각한다.
- (1) 데이터그램의 목적지 주소로부터 H1의 IP 주소를 알게 된 라우터는 ARP를 사용해서 H1의 MAC 주소를 결정한다.
- 출발지 주소 필드 : R1의 MAC 주소
- 목적지 주소 필드 : H1의 MAC 주소
- (2) H1의 MAC 주소를 획득한 라우터 인터페이스 R1은 이더넷 프레임 내에 데이터그램을 캡슐화한다.
- 이더넷 프레임이 AP에 도착하면
AP는 이 프레임을 무선 채널로 전송하기 전에 802.3 이더넷 프레임을 802.11 프레임으로 변환한다.- Address 1 필드 : H1의 MAC 주소
- Address 2 필드 : AP 자신의 MAC 주소
- Address 3 필드 : R1의 MAC 주소
따라서 H1은 Address 3으로부터 데이터그램을 서브넷으로 전송한 라우터 인터페이스의 MAC 주소를 알 수 있다.
2️⃣ 무선 기지국 H1이 응답으로 R1에게 데이터그램을 전송한다고 하자.
- H1은 802.11 프레임을 생성한다.
- Address 1 필드 : AP의 MAC 주소
- Address 2 필드 : H1의 MAC 주소
- Address 3 필드 : R1의 MAC 주소
- AP가 이 802.11 프레임을 수신하면 이것을 이더넷 프레임으로 변환한다.
- 출발지 주소 필드 : H1의 MAC 주소
- 목적지 주소 필드 : R1의 MAC 주소
따라서 AP가 이더넷 프레임을 구성할 때 Address 3으로부터 목적지 MAC 주소를 결정할 수 있게 해준다.
802.11에서는 한 스테이션이 다른 스테이션으로부터 프레임을 제대로 수신할 때마다 ACK를 보낸다.
ACK가 손실될 수 있으므로 송신 스테이션은 같은 프레임을 여러 번 보낼 수도 있는데,
Sequence Number 필드로 순서 번호를 사용함으로써 수신자는 새로 전송된 프레임과 재전송된 프레임을 구분할 수 있다.
802.11 프로토콜에서 송신 스테이션은 데이터 프레임을 전송하는 시간과 ACK를 전송하는 시간을 포함한 시간 동안 채널을 예약할 수 있다.
데이터 프레임과 RTS 및 CTS 프레임 모두에 대해 이 시간값은 해당 프레임의 Duration 필드에 포함된다.
Frame Control 필드는 여러 개의 서브필드로 구성된다.
- Type 필드와 Subtype 필드 : 결합, RTS, CTS, ACK, 데이터 프레임을 구분하는 데 사용된다.
- To 필드와 From 필드 : 주소 필드들의 의미를 정의하는 데 사용된다.
- 주소 필드가 갖는 의미는
(1) 애드혹 또는 인프라스트럭처 방식의 사용 여부에 따라서,
(2) 인프라스트럭처 방식의 경우는 프레임을 무선 기지국이 전송하는지, AP가 전송하는지 여부에 따라서 달라진다.
- 주소 필드가 갖는 의미는
- WEB 필드 : 암호화 사용 여부를 나타낸다.
무선 랜의 물리적 영역을 증가시키기 위해 동일한 IP 서브넷에 여러 개의 BSS를 설치하기도 한다.
따라서 무선 스테이션이 기존 TCP 세션을 유지한 채로 어떻게 한 BSS에서 다른 BSS로 매끄럽게 이동할 수 있는가 하는 이동성 문제가 발생한다.
위 그림에서 두 BSS를 연결하는 장치는 라우터가 아니며, 두 BSS에 있는 AP를 포함한 모든 기지국은 동일한 IP 서브넷에 속한다.
따라서 호스트 H1이 BSS1에서 BSS2로 이동할 때 H1의 IP 주소는 동일하게 유지되며, 현재 진행 중인 TCP 연결도 유지될 수 있다.
만약 연결 장치가 라우터인 경우, H1은 자신의 IP 주소를 새로 진입한 서브넷에 맞게 변경하기 위해
현재 진행 중인 TCP 연결을 잠시 중단하거나 종료해야할 수도 있다.
→ 이동 IP(mobile IP)와 같은 네트워크 계층의 이동성 프로토콜을 사용
- H1은 AP1에서 떠나면서 그의 신호가 약해지는 것을 감지하고, 더 강한 신호를 찾기 시작한다.
- H1은 AP2로부터 비컨 프레임을 수신하면, 자신의 IP 주소와 진행 중인 TCP 세션을 유지한 채로 AP1과의 결합을 끊고 AP2와 새로운 결합을 만든다.
스위치는 ‘자가학습’을 하고 자동으로 포워딩 테이블을 구성할 수 있지만,
TCP 연결을 유지한 채로 BSS들 사이의 이동을 하는 사용자는 지원하지 못한다.
- H1이 BSS1에 있으면 H1의 데이터그램은 AP1로 전달되어야 한다.
- H1이 BSS2에 있으면 H1의 데이터그램은 AP2로 전달되어야 한다.
- H1이 BSS2와 결합을 새로 설정한 다음에
- AP2로 하여금 출발지 주소가 H1인 이더넷 프레임을 스위치로 브로드캐스트하게 만든다.
- 이 프레임을 수신한 스위치는 포워딩 테이블을 갱신함으로써 AP2를 통해 H1에 도달할 수 있다.
앞서 보았듯이, 상이한 SNR 환경에 따라 전송률의 차이가 있는 각각 다른 변조 기법이 적합할 수 있다.
기지국으로부터 20 m 떨어져 있고 높은 SNR을 갖는 802.11 이동 사용자를 가정해보자.
- 빠른 전송률을 갖는 물리 계층 변조 기법을 사용하면서도 BER를 낮게 유지할 수 있다.
- 하지만 사용자가 기지국으로부터 멀어지는 방향으로 걸어감에 따라 SNR가 낮아지는 경우라면 BER가 허용할 수 없을 만큼 높아질 것이다.
따라서 일부 802.11 구현은 전송률 적응(rate adaptation) 기능을 갖고 있다.
이는 현재 또는 최근의 채널 상황에 맞추어 물리 계층 변조 기법을 적응적으로 선택할 수 있게 한다.
(TCP 혼잡 제어 기법과 유사)
802.11 표준은 노드가 신호 감지와 송수신 기능 및 다른 전력 소모가 많이 필요한
기능을 수행하는 데 사용되는 시간을 최소화할 수 있도록 하는 전원 제어 방법을 제공한다.
- 노드는 명시적으로 수면 상태(sleep state)와 동작 상태(wake state)를 오가며 상태를 변화시킨다.
- 노드는 802.11 프레임의 전력 제어 비트를 1로 세팅함으로써 AP에게 자신이 수면 모드로 돌입할 것임을 알린다.
- 이때 노드 내의 타이머가 AP가 비컨 신호를 보내기 직전에 노드가 깨어날 수 있도록 설정된다.
- AP는 수면 상태의 노드로 프레임을 전송하지 않으며, 해당 호스트에게 향하는 프레임을 나중에 전송하기 위해 버퍼에 저장한다.
- 수면 상태의 노드는 AP로부터 비컨 신호가 전송되기 직전에 깨어나 재빨리(250 µs) 완전한 활성 상태(active state)로 전환한다.
- AP로부터 전송되는 비컨 신호에는 AP에 버퍼링 되어 있는 프레임들을 전달받아야 할 노드 목록이 포함되어 있다.
- 만약 깨어난 노드가 버퍼링 목록상에 없다면 그 노드는 다시 수면 상태로 들어갈 수 있다.
- 그렇지 않다면 해당 노드는 AP에게 폴링(polling) 메시지를 전송함으로써 저장되어 있는 프레임의 전송을 요구하게 된다.
블루투스(Bluetooth) 네트워크는 수십 미터 이하의 단거리에서 저전력, 저비용으로 동작한다.
따라서 WPAN(wireless personal area network) 또는 피코넷(piconet)이라고도 한다.
블루투스 네트워크에는 많은 링크 레벨 네트워킹 기술로 가득 차 있다.
- 시분할 다중화(TDM) 및 주파수 분할
- 랜덤 백오프
- 폴링
- 오류 검출과 정정
- ACK/NAK을 이용한 신뢰성 있는 전송
무선 ISM(Industrial, Scientific, Medical) 밴드로서, 허가가 필요 없는 2.4 GHz 대역에서 동작한다.
즉, 같은 주파수 대역을 사용하는 가전제품들(전자레인지, 가정용 무선전화 등)과 경쟁하기 때문에 명시적으로 소음과 간섭 현상을 염두에 두고 설계되었다.
블루투스 무선 채널은 625마이크로초의 시간 슬롯을 가진 TDM 방식으로 동작한다.
- 각 시간 슬롯마다 송신자는 79개 채널 중의 하나로 전송하며 슬롯마다 주파수 채널을 변경한다.
- 변경할 주파수 채널 선택은 난수에 의한 의사 무작위 추출(pseudo-random) 방식을 사용한다.
이런 형태의 주파수 변경 또는 주파수 도약 기법은 주파수 도약 확산 스펙트럼(frequency-hopping spread spectrum, FHSS) 방식으로 알려져 있다.
이를 통해 ISM 대역을 사용하는 다른 장치나 가전과의 간섭 현상이 일부 시간 슬롯으로 한정될 수 있다.
블루투스 네트워크는 인프라스트럭처(e.g., AP)가 없는 애드혹 네트워크다.
대신에 이들은 아래 그림과 같이 그들 스스로 최대 8개의 활성화된 노드로 구성된 피코넷을 형성해야 한다.
- 노드들 중 1개의 장치가 중앙 집중형 제어 노드로 지정되며, 나머지 장치들은 클라이언트가 된다.
- 피코넷 안에는 8개의 활성화된 장치 외로, 최대 255개의 ‘주차’된 장치가 있을 수 있다.
- 이들은 절전을 위해 수면 상태인 경우가 많다.
- 수면 상태의 장치들은 스케줄링에 따라 중앙 집중형 제어 노드로부터의 비컨 메시지를 수신하기 위해 주기적으로 깨어난다.
- 중앙 집중형 제어 노드에 의해 활성화된 장치로 변경되기 전에는 통신을 할 수 없다.
- 피코넷 내부의 다른 노드들을 제어한다.
- 시간 슬롯의 경게를 결정하는 클록의 관리
- 주파수 도약 순서 제공
- 피코넷으로의 클라이언트 진입 제어
- 클라이언트 장치의 전송 전력 제어(100 mW, 2.5 mW, 1 mW)
- 네트워크 진입이 허용된 클라이언트에게 폴링 방식을 사용하여 전송 권한을 부여한다.
블루투스 애드혹 네트워크는 AP 없이 스스로 네트워크를 구성해야 한다.
- 중앙 집중형 제어 노드가 블루투스 네트워크를 형성하려면 먼저 영역 내에 다른 어떤 블루투스 노드가 존재하는지 결정해야 한다.
- 중앙 집중형 제어 노드는 연속적인 32개의 조회 메시지를 각기 다른 채널을 통해 브로드캐스트함으로써 이를 수행한다.
- 클라이언트 장치는 이 조회 메시지를 수신하기 위해 주파수 중 하나를 선택해 수신을 기다린다.
- (1) 클라이언트 장치가 조회 메시지를 수신하면
(2) 다른 응답 노드와의 충돌을 피하기 위해 0~0.3초 사이의 임의의 시간 동안 대기한 후
(3) 자신의 ID를 포함하는 응답 메시지를 중앙 집중형 제어 노드에게 전송한다. - 블루투스 페이징(Bluetoothe paging)
- 중앙 집중형 제어 노드가 주변의 가능한 클라이언트 노드들을 모두 발견했다면, 그중 피코넷에 가입을 원하는 클라이언트 노드들을 초대한다.
- 과정
- 중앙 집중형 제어 노드는 또다시 32개의 동일한 페이징 초대 메시지를 각각의 클라이언트 주소로 전송하는 것으로 페이징 단계를 시작한다.
- 아직 클라이언트가 주파수 도약을 배우지 않았기 때문에, 메시지는 각기 다른 주파수를 통해 전송된다.
- 클라이언트가 초대 메시지에 대해 ACK로 응답하면 중앙 집중형 제어 노드는 아래의 정보들을 클라이언트들에게 전송한다.
- 주파수 도약 정보
- 클록 동기화 정보
- 활성화된 멤버의 주소
- 이후 중앙 집중형 제어 노드는 각 클라이언트를 폴링하여 클라이언트가 네트워크에 연결되어 있음을 확인하고
주파수 도약 패턴을 사용한 통신을 시작한다.
- 중앙 집중형 제어 노드는 또다시 32개의 동일한 페이징 초대 메시지를 각각의 클라이언트 주소로 전송하는 것으로 페이징 단계를 시작한다.
'Computer Science > 컴퓨터네트워크' 카테고리의 다른 글
Chapter 8 - 4. 종단점 인증, 5. 전자메일의 보안, 6. TCP 연결의 보안 (0) | 2024.07.10 |
---|---|
Chapter 8 - 7. 네트워크 계층 보안, 8. 무선 랜과 4G,5G 셀룰러 네트워크 보안, 9. 운영 보안 (0) | 2024.07.10 |
Chapter 7 - 4. 셀룰러 네트워크, 5. 이동성 관리, 6. 실전에서의 이동성 관리, 7. 무선과 이동성 (0) | 2024.07.10 |
Chapter 8 - 1. 네트워크 보안, 2. 암호의 원리, 3. 메시지 무결성과 전자서명 (0) | 2024.07.10 |
Chapter 6 - 4. 스위치 근거리 네트워크, 5. 링크 가상화, 6. 데이터 센터 네트워킹, 7. 총정리: 웹페이지 요청에 대한 처리 (0) | 2024.07.09 |