무선 네트워크 기본 개념
- 무선 네트워크란?
- 데이터를 전송하기 위해 케이블 대신 전파, 적외선, 또는 기타 무선 신호를 사용하는 네트워크
- 주요 특징:
- 물리적 연결(케이블)이 필요 없어 편리
- 이동성이 높아 다양한 환경에서 사용 가능
- 보안 문제가 중요하며, 신호 간섭에 영향을 받을 수 있음
무선 네트워크의 주요 문제점
- 간섭 (Interference)
- 동일한 주파수 대역을 사용하는 기기 간 신호 간섭 발생
- 주변 Wi-Fi 네트워크, 전자기기(전자레인지 등)가 주된 원인
- 신호 감쇠 (Signal Attenuation)
- 벽, 거리, 금속 물체 등이 신호 세기를 약화시킴
- 보안 문제
- 전파는 물리적 장벽이 없어 도청이나 스푸핑 공격에 취약
- 네트워크 혼잡
- 많은 사용자가 동일한 AP를 사용할 경우 대역폭 부족으로 성능 저하
Wi-Fi(Wireless Fidelity)
- IEEE 802.11 표준 기반으로 가장 널리 쓰이는 무선 네트워크 기술.
- 주파수 대역: 2.4GHz, 5GHz, 최근에는 6GHz(Wi-Fi 6E).
- 주요 표준: 802.11a/b/g/n/ac/ax(Wi-Fi 6).
802.11 LAN Architecture
- 무선 NIC가 꽂혀있는 디바이스들
- AP(Access Point): 무선 네트워크의 중심 허브 역할. 유선 네트워크를 무선으로 연결
- AP들은 자신의 존재를 알리기 위해 주기적으로 Broadcast하여 자신의 정보를 보냄
- BSS(Basic Service Set): 같은 AP에 속해있는 디바이스들의 집합
무선 네트워크의 MAC(매체 접근 제어) 프로토콜
BSS에 속한 다양한 디바이스들은 모두 하나의 AP에게 패킷을 전송할 것이다. 이를 동시에 보내면 충돌 문제가 생길 수 있으니 이를 조율하기 위한 MAC 프로토콜이 필요하다. 그렇다면 와이파이 무선 링크에서 사용하는 MAC 프로토콜은 무엇일까?
CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance)
- 유선 링크에서 충돌 방지를 위한 CSMA/CD는 무선 링크 상화에서는 의미가 없었음.. 신호의 세기가 약하면 통신하고 있지 않다고 판단해버리지만 실제로는 통신 중이어서 충돌 발생
- 무선 네트워크에서 충돌을 방지하기 위한 접근 제어 방법
- 장치는 데이터 전송 전에 채널이 사용 중인지 확인하고, 비어있으면 전송을 시작
CSMA/CA 과정
- 채널 감지 (Carrier Sense)
- 송신 장치가 채널이 사용 중인지 확인
- 채널이 비어 있으면 데이터 전송을 시작하고, 사용 중이면 대기(backoff)
- 백오프 타이머 (Backoff Timer) 설정
- 채널이 사용 중일 경우, 송신 장치는 임의의 시간(백오프 시간)을 설정하고 대기
- 백오프 시간이 끝난 후 다시 채널 감지를 시작
- 데이터 전송
- 채널이 비어 있는 것이 확인되면 데이터를 전송
- 전송 후 수신 장치로부터 ACK(Acknowledgment) 신호를 받아 전송 성공 여부를 확인
CSMA/CD와의 차이점
- ACK 신호로 데이터 수신 여부를 확인
- 무선 네트워크의 특성상 충돌을 감지하기 어렵기 때문에 중간에 충돌이 발생하면 전송을 중지하던 CSMA/CD와는 달리, 무조건 전체 과정을 수행해야 함 -> 비효율적..
- 만약 두 디바이스가 AP에 동시에 데이터를 전송한다면 두 디바이스는 ACK를 받을 수 없어서 ACK를 받을 때까지 경쟁하며 계속해서 다시 재전송을 할 것.
RTS/CTS 매커니즘
RTS/CTS(Request to Send / Clear to Send) 메커니즘은 히든 노드 문제(Hidden Node Problem)를 해결하기 위해 도입
- 히든 노드 문제
- 두 노드(A와 C)가 AP(Access Point)와는 통신 범위 내에 있지만(같은 BSS 내에 있지만), 서로의 범위에는 들어오지 않는 상황
- A가 데이터를 전송하려고 하는데, C가 이를 감지하지 못하고 동시에 데이터를 전송하면 충돌이 발생
- RTS/CTS의 해결 방법
- RTS 요청
- 송신 장치가 데이터를 보내기 전에, "데이터를 보내도 될까요?"라는 의미로 RTS(Request to Send) 패킷을 AP(Access Point)로 보냄.
- CTS 응답
- AP는 RTS 요청을 받은 후, 채널이 사용 중이 아니라면 CTS(Clear to Send) 패킷을 송신 장치로 보냄
- 동시에, 다른 장치들에게 "현재 채널이 사용 중이니 기다려라"라는 신호를 보냄
- 데이터 전송:
- 송신 장치는 CTS 신호를 받은 후 데이터를 전송
- ACK 확인
- 데이터 전송이 완료되면 수신 장치에서 ACK 패킷을 보내 성공적인 전송을 알림
- RTS 요청
- RTS/CTS 상황 예시 (두 장치(A와 B)가 무선 네트워크에 동시에 데이터를 전송하는 시나리오)
- A와 B 모두 채널을 감지
- A가 먼저 채널이 비어 있음을 확인하고 RTS를 보냄
- B는 채널이 사용 중임을 확인하고 백오프 타이머를 설정
- A가 데이터를 성공적으로 전송하면, B가 백오프 타이머가 끝난 후 데이터를 전송
- 장점
- 충돌 예방
- RTS/CTS는 충돌 가능성을 줄임. 특히, 히든 노드 문제를 효과적으로 해결
- 채널 효율성
- 긴 데이터 패킷이 충돌로 인해 손상되는 것을 방지하므로 채널의 효율성 증가
- 충돌 예방
- 단점
- 추가 오버헤드
- RTS와 CTS 패킷을 전송하는 데 시간이 추가로 소요되므로 작은 데이터 전송에는 적합하지 않음
- 일반적으로 큰 데이터 패킷 전송에서만 RTS/CTS를 활성화 함
- 네트워크 지연 증가
- RTS와 CTS 교환으로 인해 전송 지연(latency)이 증가할 수 있음
- 추가 오버헤드
- CSMA/CA와 RTS/CTS의 관계
- CSMA/CA는 무선 네트워크에서 충돌을 방지하기 위한 기본 프로토콜
- RTS/CTS는 CSMA/CA에서 충돌을 예방하기 위해 추가적인 신호 교환을 사용하는 선택적 메커니즘
- RTS/CTS는 모든 CSMA/CA에서 사용되지는 않으며, 특정 환경(예: 히든 노드 문제가 우려되는 경우)에만 사용
하지만 작은 프레임의 경우, RTS/CTS 오버헤드가 실제 데이터보다 더 커질 수 있다는 문제가 남아있어서 현대 Wi-Fi에서는 RTS/CTS를 잘 사용하지 않는다. 대부분의 현대 Wi-Fi 네트워크는 'OFDMA(Orthogonal Frequency Division Multiple Access)'나 'MU-MIMO'를 사용하여 동시 전송 문제를 해결하므로, 히든 노드 문제가 적어졌다.
AP에서 포워딩을 하지 않고 굳이 스위치를 거치는 이유?
원래라면 AP가 Payload 부분의 IP 패킷을 끄집어내고, 포워딩도 수행해주고 해야하지만.. AP는 Link 레이어 장비(L2)이다보니 IP 패킷을 해석할 능력이 없다. 떄문에 무선 네트워크 상에서 유선 네트워크로 넘겨주기 위한 징검다리 역할(물론 다른 역할도 수행하지만 이해를 돕기 위해..!)만 수행한다.
여기서 의문. 그럼 공유기가 AP인건가?
그렇다! 그런데 더 특수하게 라우터의 역할까지 수행하는, 즉 AP + 라우터 역할을 수행하는 장비이다. 뿐만 아니라 Application Layer까지 구현되어 있다보니, DHCP, DNS, NAT 등이 모두 가능하다.
Wifi Frame
Wi-Fi 프레임은 무선 네트워크에서 데이터를 전송하기 위해 사용되는 기본 단위로, IEEE 802.11 표준에 의해 정의된다. Wi-Fi 프레임은 여러 헤더(Header)와 데이터(Data), 그리고 트레일러(Trailer)로 구성되어 있다. 이를 통해 장치 간의 데이터 전송, 관리, 및 네트워크 유지 기능을 수행한다.
구조
Wi-Fi 프레임은 일반적으로 다음과 같은 주요 필드로 구성된다
- MAC 헤더 (MAC Header)
- Wi-Fi 프레임의 제어 정보가 포함되어 있으며, 프레임의 유형과 송수신 장치의 주소를 정의
- MAC 헤더는 프레임의 기본 제어 정보와 주소를 포함하며, 다음과 같은 서브 필드로 나뉜다:
- Frame Control (2 Bytes)
- 프레임의 유형, 관리 정보, 보안 상태 등을 정의.
- 주요 서브 필드:
- Protocol Version: IEEE 802.11 버전.
- Type: 2비트로 프레임의 유형을 나타냄 (RTS, CTS, ACK, data를 고려 가능)
- Subtype: 프레임의 서브 타입
- To DS/From DS: 데이터 프레임의 송수신 방향(Access Point 여부).
- Retry: 재전송 여부.
- More Fragments: 추가 프레임 조각 존재 여부.
- Duration/ID (2 Bytes)
- 프레임 전송 시간이나 Power Save 모드에서 장치의 ID를 나타냄.
- Addresses (6 Bytes each)
- Wi-Fi 프레임은 일반적으로 4개의 주소 필드를 가짐.
- Address 1: 수신 장치(MAC 주소).
- Address 2: 송신 장치(MAC 주소).
- Address 3: AP 또는 최종 목적지.
- Address 4: 무선 다중 홉 네트워크에서 추가 주소 -> 잘 사용되지 않음
- Wi-Fi 프레임은 일반적으로 4개의 주소 필드를 가짐.
- Sequence Control (2 Bytes)
- 프레임의 순서를 나타내며, 데이터 조각(fragmentation) 관리에 사용.
- QoS Control (2 Bytes) (옵션)
- QoS(Quality of Service) 기능을 위한 필드로, 네트워크 트래픽 우선순위를 설정.
- HT/VHT Control (4 Bytes) (옵션)
- 고속 Wi-Fi(802.11n/ac/ax 등)에서 사용하는 추가 필드.
- Frame Control (2 Bytes)
- 프레임 본문 (Frame Body)
- 실제 데이터(payload)가 포함되며, 네트워크 계층(IP 패킷 등)의 데이터가 이 부분에 담김
- FCS (Frame Check Sequence)
- 오류 검출을 위해 사용하는 CRC(Cyclic Redundancy Check) 값으로, 데이터 손상이 발생했는지 확인
Wi-Fi 프레임의 유형
Wi-Fi 프레임은 크게 3가지 유형으로 나뉜다
- Management Frames (관리 프레임)
- 네트워크 연결 및 유지에 사용.
- 주요 서브타입:
- Beacon: AP가 주기적으로 전송하며, 네트워크 정보(SSID, 채널 등)를 포함.
- Probe Request/Response: 장치가 네트워크를 검색하거나 AP가 응답.
- Authentication/Deauthentication: 장치 인증 및 연결 해제.
- Association/Disassociation: 장치와 AP 간 연결 설정 및 해제.
- Control Frames (제어 프레임)
- 데이터 프레임의 전송을 지원.
- 주요 서브타입:
- RTS/CTS: 송신 장치 간 충돌 방지.
- ACK: 데이터 프레임 수신 확인.
- Power Save Poll: 전력 절약 모드에서 데이터 요청.
- Data Frames (데이터 프레임)
- 실제 데이터를 포함하며, AP와 클라이언트 간 데이터를 전송.
- 주요 서브타입:
- Data: 기본 데이터 전송 프레임.
- Null: 전송 데이터가 없지만 연결 상태 유지.
Wi-Fi 프레임의 전송 과정 (with CSMA/CA)
Wi-Fi 프레임이 무선 네트워크에서 전송되는 과정은 다음과 같다
- 송신 장치는 프레임을 생성하고 MAC 헤더, 데이터, FCS를 포함해 무선 채널로 전송
- 수신 장치는 프레임을 수신하고, FCS를 사용해 데이터의 무결성을 확인
- 데이터가 손상되지 않았다면 ACK 프레임을 송신 장치로 반환
- ACK를 받은 송신 장치는 데이터가 성공적으로 전달되었음을 확인
이후 무선 네트워크에서 유선 네트워크로 넘어갈 때, MAC 헤더의 수신 장치 MAC 주소와 송신 장치 MAC 주소를 뽑아 Ethernet 프레임으로 만들어서 사용한다.
Wi-Fi 프레임과 유선 Ethernet 프레임의 차이
특징 | Wi-Fi 프레임 | Ethernet 프레임 |
전송 매체 | 무선 | 유선 |
주소 필드 개수 | 최대 4개 | 2개 (송신 MAC, 수신 MAC) |
오류 검출 | FCS | FCS |
추가 제어 필드 | 프레임 제어, QoS, Sequence Control 등 | 없음 |
같은 스위치에 연결된(동일 서브넷) AP에서 AP로의 이동
같은 스위치에 연결된 AP 1과 AP 2가 있다. 디바이스 H1이 AP 1에 연결되어 있다가 AP 2로 이동했다고 가정하자.
그럼 기존의 TCP 연결은 끊기게 되는걸까?
- 같은 서브넷 안에서 움직이기 때문에 IP 주소는 변하지 않는다.
- 그렇다면 TCP 커넥션도 끊이지 않고 계속 유지된다.
- TCP 커넥션은 서버의 IP, 서버의 포트, 엔드포인트의 IP, 엔드포인트의 포트의 조합으로 개념적으로 연결되는 것이다. 이때 엔드포인트의 IP가 변하지 않는다면 (나머지 3개는 변할 이유가 없으므로) TCP의 개념적 연결은 유지된다.
- 대신, 스위치 테이블의 엔트리(Host - Interface Number)는 업데이트 해주어야 하는데, 이는 H1이 이동 후 아무 요청이나 하면 자동으로 업데이트 된다.
와이파이 속도
- SNR: 신호세기
- BER: 데이터 오류
유선 네트워크에서는 속도가 거의 항상 일정하다. 하지만 무선 네트워크의 경우 거리나 장애물 등 상태에 따라 속도가 일정하지 않다. Mbps에 따라 인코딩 방식이 다르며 어러가지가 있는데, 여기서 Mbps가 높을수록 패킷 에러 발생률도 함께 올라간다는 트레이드오프가 있다.
때문에 현재 무선 통신 상태와 기대하는 에러 rate를 잘 고려해서 적당한 인코딩 기법을 선택할 필요가 있다. 이는 보통 자동으로 수행된다.
우리가 와이파이를 사용하다가 속도가 느려지는 경우는, 에러에 대처하기 위해 자동으로 속도가 느리지만 에러 발생률은 낮은 인코딩 기법으로 변환시켰기 때문이다.
'Network' 카테고리의 다른 글
[컴퓨터 네트워크 수업] Chapter 2. Application Layer 요약 (0) | 2025.04.20 |
---|---|
[컴퓨터 네트워크 수업] Chapter 1. Introduction (0) | 2025.04.14 |
[Network] SSL/TLS, 그리고 HTTPS (3) | 2024.11.28 |
[Network] PN과 VPN (1) | 2024.11.27 |
[Network] DNS Record (0) | 2024.11.26 |