본문 바로가기
Learning-log -CS/Network

(컴퓨터와 네트워크 / 이석복) 무선이동네트워크 (IEEE 802.11, LAN, AP, BSS, CSMA/CA, RTS, CTS, Frame, SNR)

by why제곱 2024. 3. 1.

본 게시물은 이석복 교수님의 네트워크 강의를 수강하며 작성한 강의노트와 추가 공부한 내용을 바탕으로 작성하였습니다.

  • 참고 강의 및 사이트

KOCW

 

KOCW

한양대학교 이석복 강의 내용 및 목표 인터넷을 동작시키는 컴퓨터네트워크 프로토폴을 학습한다. 주제분야 공학 >컴퓨터ㆍ통신 >컴퓨터공학 강의학기 2015년 2학기 수강 확인증 발급 안내 수강

www.kocw.net

강의 내용 외의 추가 용어는 한국정보통신기술협회의 정보통신용어사전을 참고하였습니다.

 

TTA 대표홈페이지

2023.12.05 보도 TTA·NIA, 양자암호통신 인프라 도입 표준 제정으로 양자기술 산업생태계 활성화 기여

www.tta.or.kr


Wireless

무선 링크인 상황에서는 어떤 MAC 프로토콜이 사용될까? 무선 링크의 특징을 살펴보며 어떤 MAC 프로토콜을 사용할지 알아보자.

 

 

Wireless links, characteristics

무선 링크의 경우, 전체가 모두 무선인 것이 아니라 첫 홉만 무선이고 나머지는 유선인 상황을 말한다. 즉, 하나의 홉을 어떻게 갈 것인가의 문제를 해결하면 되는 것이다.

유선과 무선의 차이점은,

유선은 신호가 케이블을 이용해 전달되므로 외부 noise가 차단되어 안정적인 편이지만, 무선은 신호가 외부로부터의 간섭도 많고 보호받지 못해 거리가 늘어남에 따라 신호세기가 급격하게 감소한다는 것이 있다.

위로 인해 생기는 문제들은 다음과 같다.

 

이미지 출처 : 이석복 교수님 강의자료

 

Hidden terminal problem은 통신하려는 두 무선 단말 간에 서로 볼 수 없는 중간 단말로 인해 발생하는 문제이다. 위 상황처럼 A와 C 단말이 통신할 때 B와 통신 중인지 알 수 없어 충돌이 발생할 수 있는 문제가 발생한다.

Signal attenuation은 무선 신호가 거리에 따라 약해짐으로 인해 멀리 있는 host는 신호를 들을 수 없다는 문제가 발생하는 것을 의미한다.

 

위와 같은 문제들로 인해 Collision Detection이 불가하다. 함께 있는 호스트들이라도 거리에 따라 신호 세기가 다른 문제로 인해 자신의 신호만 가장 크게 들려서 충돌 감지가 어렵다는 문제가 있다. 따라서 유선 링크 상황에서 배운 CDMA/CD를 그대로 사용할 수 없다는 결론이다.

 

그럼 유선 상황에서 사용하는 프로토콜에 대해 알아보자.

 

IEEE 802.11 Wireless LAN

흔히 Wi-Fi라고 불린다. 아래와 같이 다양한 표준이 있으며 CSMA/CA 라는 프로토콜이 사용된다.

 

이미지 출처 : 이석복 교수님 강의자료

 

 

Infastructore mode

무선 AP(Access Point)를 중심으로 무선 랜 카드가 네트워크를 이루는 동작 모드 즉, 무선 랜카드를 장착한 PC나 컴퓨터들이 AP를 통하여 기존 유선 네트워크에 연결되어 파일이나 프린터를 공유하고 인터넷에 연결하는 일반적인 모드이다.

 

 

애드혹 모드(ad-hoc mode)

무선 AP(Access Point)가 없는 경우 무선 랜 카드끼리 작은 무선 네트워크 그룹을 이루어 파일과 프린터를 공유하는 peer-to-peer 네트워크 동작 모드. AP를 사용하는 인프라스트럭처 모드 보다는 신뢰성이나 보안성이 떨어지며 IBSS(Independent Service Set)라고도 한다.

 

802.11 LAN Architecture

이미지 출처 : 이석복 교수님 강의자료

LAN의 구조를 구성하는 요소들은 아래와 같다.

 

AP(Access Point)

무선 랜을 설치하기 위한 중계 장치 유선 랜을 통하여 무선망에 연결하는 기능을 수행한다. 대개 독립적인 형태로 존재하며, 이더넷 허브나 서버에 연결하여 사용한다. 이동 전화망을 사용하는 경우와 마찬가지로 사용자의 위치에 따라 하나의 접근점(AP)에서 다른 AP로 통화 채널 전환되므로 사용자가 이동하며 무선 휴대 단말기를 사용할 수 있다.

 

 

Base Station

육상 이동국과의 통신 또는 이동 중계국의 중계에 의한 통신을 하기 위해야 육상에 개설하고 이동하지 않는 무선국을 말한다.

 

위 아키텍처에서 Base Station = AP이다.

 

 

BSS(Basic Service Set)

무선 LAN 네트워크에서 가장 기본이 되는 네트워크 구성 무선 LAN의 형태는 AP의 포함여부에 따라 AP가 없는 ad-hoc과 AP가 있는 infrastructure 방식이 있는데, 하나의 접근점(AP)과 그 AP에 접속된 1개 이상의 무선 단말로 구성되는 셀을 말한다. 즉, AP 없이 호스트들로만 구성되는 애드 혹 모드의 BSS와 AP와 호스트들이 모인 인프라스트럭처 모드의 BSS가 있다.

 

 

Passive Scanning

 

이미지 출처 : 이석복 교수님 강의자료

  1. AP들로부터 비콘 프레임이 주기적으로 전송(Broadcasting)
  2. H1에서 선택된 AP로 결합 요청 메시지 전송(가장 믿을만 하고 신호 세기가 좋은 AP 선택)
  3. 선택된 AP에서 H1으로 결합 수락 메시지를 전송

 

Active Scanning

이미지 출처 : 이석복 교수님 강의자료

 

  1. H1에서 탐사 요청 프레임이 브로드캐스트
  2. AP로부터 탐사 응답 프레임이 도착
  3. H1에서 선택된 AP로 결합 요청 메시지 전송
  4. 선택된 AP에서 H1으로 결합

 

비컨 프레임

AP가 자신이 관할하는 무선 네트워크(BSS)의 존재를 정기적으로 알리는 방송 프레임
- 역할
무선 네트워크의 존재를 알림 (Broadcasting)
이동 노드로 하여금 무선 네트워크를 찾도록 도움(Scanning) 무선 네트워크에 참여하도록 함

한편, ad-hoc 모드 에서는 개별 이동국들이 이러한 비컨 프레임을 저마다 전송하게 된다.

 

 

IEEE 802.11 MAC Protocol: CSMA/CA

 

이미지 출처 : 이석복 교수님 강의자료

약한 수신 신호로 인해 충돌을 감지할 수 없으므로 충돌을 감지하지 않고 회피하는 방식이다.

앞서 살펴봤듯, 무선 링크에서는 충돌 감지가 어렵기 때문에 보낸 프레임이 제대로 도착했는지 상대방이 알려 줘야 한다. 따라서 유선에서는 없던 ACK가 필요하다. 여기서 ACK는 TCP에서의 ACK와는 다른 개념이다. TCP에서는 end-to-end ACK 였다면 무선 링크에서는 LinkLayer ACK를 의미한다.

 

Sender(송신) 측

채널이 사용되고 있지 않음이 감지되면 DIFS(Distributed Inter-Frame Space)라는 짧은 시간동안 기다린 후 전체 프레임을 전송한다.

채널이 사용중이면 임의의 백오프(Back-off) 시간만큼 기다렸다가 프레임을 전송한다. ACK를 받았을 때만 보낸 프레임이 다 도착했다고 보고 다음 프레임을 보낸며 ACK가 없을 경우 백오프 시간을 늘려 반복한다.

 

Receiver(수신) 측

프레임이 정상적으로 수신된 경우 SIFS 후 ACK를 반환한다.

이러한 CSMA/CA 프로토콜은 피드백이 오기 전까지 충돌여부를 모르고, 실제로 충돌이 일어나도 계속해서 프레임을 보내게 되므로 시간 자원이 많이 낭비된다. 또한 다른 호스트들과 경쟁적으로 ACK를 받기 위해 재전송이 계속해서 일어난다. 따라서 충돌을 줄이기 위해 아래와 같은 개선방식을 추가로 적용된다.

 

 

IEEE 802.11 : RTS-CTS Exchange

이미지 출처 : 이석복 교수님 강의자료

 

RTS

보낼 데이터가 있음을 알리는 Control Frame을 전송한 후, 충돌이 감지되지 않으면 그 때 Data Frame을 전송하며 충돌이 일어나면(CTS를 받지 못하면) random하게 기다렸다가 다시 RTS를 재전송한다.

RTS는 보내려는 데이터에 비해 그 크기가 작으므로 충돌에 대한 피해가 적어지는 효과가 있다.

 

CTS

호스트가 보낸 RTS에 대해 AP가 보내는 응답으로 브로드캐스트로 전송된다.

RTS를 보낸 호스트 외의 다른 호스트들은 이 CTS를 듣고 전송하려던 것을 멈추고 대기한다.

AP가 CTS를 보내는 중에 다른 호스트가 보낸 RTS가 충돌되어 섞이면 noise가 발생하게 된다. 이럴 경우 RTS를 다시 보내게 되는 과정을 반복하게 된다. 즉, 사람(호스트)이 많을 수록 충돌이 많아지고 재전송이 그만큼 발생하여 느려지게 되는 것이다.

 

 

재전송은 최대 7번까지 해보고 안되면 포기된다. 포기된 프레임은 이대로 전송되지 않을 것일까? 아니다. 해당 프레임은 TCP 층에서 다시 통신되므로 TCP에서 다시 내려와 해당 과정이 다시 반복될 것이다.

 

 

IEEE 802.11 : Frame

이미지 출처 : 이석복 교수님 강의자료

Address

지금까지 살펴봤던 헤더의 주소들은 Destination과 Source 이렇게 두 개만 존재했었다. Frame은 이와 달리 4개의 주소가 사용된다.

  • Address1 : 받는 AP의 MAC Address
  • Address2 : 보내는 Host의 MAC Address
  • Address3 : AP에서 전달될 Router의 MAC Address
  • Address4 : 잘 사용되지 않음

Host는 Wi-Fi 프레임을 전달하고 이를 받은 AP는 이더넷 프레임으로 전환 후 전달한다. 이 때, Address2와 Address3의 순서를 바꿔 dest address에 라우터를, source address에 호스트 주소를 넣어 라우터에 전달한다.

 

프레임에 Address가 꼭 3개여야하는 이유가 뭘까?

만약 Dest에 AP 주소를 적는다면 AP는 해당 프레임을 받은 후 어디로 보내야할 지 알 수 없다. IP패킷을 꺼내면 그 안에 Dest의 IP주소가 적혀있겠지만 AP는 링크 계층의 장치이기이에 더 상위 계층의 주소인 IP 주소를 해석할 수 없다.(네트워크 계층에 있는 Forwarding table이 존재하지 않으므로 어디로 보낼 지 판단이 불가하다.)

만약 Dest에 Router 주소를 적는다면 어떻게 될까? 채널을 선점해서 프레임을 전송했으나 해당 채널에는 라우터가 없으므로 ACK를 되돌려 받을 수가 없다. 따라서 위 주소 필드들이 모두 필요한 것이다.

 

 

위 주소에 채울 MAC주소를 호스트는 어떻게 알아낼까? address2는 자기 자신이므로 쉽게 적을 수 있으나 address1, 3을 어떻게 알아낼 것인지가 문제이다.

 

우선 AP의 MAC주소는 AP가 비컨프레임을 브로드캐스트로 보내므로 이를 통해 알 수 있었다.

라우터의 MAC주소는 맨 처음 DHCP를 통해 자신의 IP주소, 서브넷 마스크, 게이트웨이의 IP, 로컬 DNS의 IP를 알아낸다. 이 때 링크계층에서 일어나는 과정을 자세히 살펴보며 라우터의 MAC주소를 알아낸 과정을 함께 알아보자. (이제 애플리케이션 계층부터 링크 계층까지 모두 다루었으므로 통신과정을 전 계층을 복합적으로 고려하며 생각할 수 있어야 한다.)

  1. DHCP를 담은 Frame을 만든다.
  2. 이 때 프레임의 주소는 address 1,2,3 : AP/Host/Broadcast 가 되며 IP패킷의 주소의 src는 알 수 없으므로 비워두고 dest는 Broadcast가 된다.
  3. AP가 이를 받아서 Address를 AP/Broadcast/H 로 보낸다. 따라서 이더넷 랜에 속한 모든 호스트들이 해당 프레임을 받게되며 이 호스트들이 IP 패킷을 열어보고 패킷에 적힌 포트를 열어놓은 DHCP만 해당 프레임을 수용하고 나머지는 Drop하게 된다.
  4. DHCP에서 Broadcast로 응답
  5. 이 응답의 이더넷 프레임의 Source가 DHCP서버의 MAC주소가 되어 호스트는 이로써 라우터의 MAC주소를 알게된다.

Frame Control

⇒ Type(2bit) : Frame의 타입으로 RTS, CTS, ACK, data를 구분한다.

 

Duration

⇒ RTS/CTS로 예약된 전송시간

 

Sequence Number

⇒ 프레임의 시퀀스 넘버 for RDT

 

 

IEEE 802.11 : Mobility within same subnet

같은 방 안에서 노트북을 들고 돌아다니며 영화를 시청한다고 생각해보자. 해당 상황은 네트워크 관점에서 이동 상황일까? 아니다. 방 안에서 돌아다니는 것은 네트워크 관점에서 어떠한 연결도 변경되지 않기 때문에 이동상황으로 보지 않는다. 시내버스를 타며 핸드폰으로 인터넷을 보는 상황 정도는 되어야 네트워크 관점에서 이동이라고 볼 수 있다. 네트워크를 넘나드는 상황을 이동이라고 보는 것이다.

 

Mobility 상황에서 AP가 변경될 경우 Connection이 끊길지부터 고려해보자.

 

여기서 Connection은 전송계층인 TCP에서 다룬 개념이다. 두 객체(클라이언트-서버) 사이의 TCP Connection으로 정확히 말하면 client의 소켓과 server의 소켓을 연결해 만든 유일한 커넥션이다. 이를 Src IP / Src Port / Dest IP / Dest Port 이 네가지를 이용해 유일하게 인덱싱한다고 다뤘었다.

 

이 점을 고려하여 다시 생각해보면, 이동을 한다고 해서 Server IP와 포트는 변하지 않는다. 내 IP와 포트도 마찬가지이다. 같은 네트워크 영역에 있으므로 Connection은 유지된다고 볼 수 있다.

따라서 커넥션은 유지되고 AP만 변경된 것이므로 스위치 테이블의 엔트리 값만 변경하면 된다.

 

 

해당 값은 어떻게 바꿀까?

이전 게시물들을 통해 스위치 테이블은 셀프러닝을 통해 구성된다고 다뤘다. 스위치 테이블을 갱신할 때도 마찬가지로 호스트가 라우터에 더미메시지를 보내 셀프러닝을 통해 갱신하게 된다.

 

그렇다면, 스마트폰을 통해 주로 사용되는 LTE나 3G같이 더 광범위한 영역에서 이용해도 연결이 안끊기는 상황은 어떻게 설명할 수 있을까?

 

이는 같은 네트워크인데 집이나 학교, 회사 등에서 사용하는 네트워크보다 훨씬 그 규모나 범위가 크기 때문에 가능한 일이고 위에서 설명한 과정은 동일하게 된다.

 

 

IEEE 802.11 : Advanced Capabilities

SNR

신호전력에 대한 잡음 전력의 비를 표현한 값으로 신호 대 잡음 비가 클수록 성능이 우수하다.