유선 이더넷 네트워크와 다르게 무선 네트워크는 치명적인 단점이 존재한다. 바로 유선과 다르게 collision detection이 안된다는 것이다. 그 이유에는 아래와 같이 3가지가 있다.
- Fading and Signal Strength Variations
무선시그널은 거리에 매우 취약하다. 장애물이나 환경적 요인에 의해 신호 강도가 계속해서 변하기 때문이다. 따라서 거리가 멀리 떨어져있을 경우 collision을 탐지하지 못할 수 있다. - Hidden Node Problem
A, B, C 3가지 디바이스가 있다고 할 때 A,B,C는 서로의 통신이 안되는 상태이다. 이때 A와 B가 동시에 C에게 데이터를 전송하면 C에서 collision이 발생하지만 a,b는 collision 이 발생했는지 알 길이 없다. 이때 A,B가 서로 hear할 수 없는 이유는 바로 거리에 따른 문제이다. 사진처럼 A,C의 영역에 B가 속해있지만 A,C는 서로 hear 하지 못하는 상황이 생긴다. 즉 서로 통신할 수 없는 노드들이 중간 노드를 통해 간접적으로 연결될 때 충돌을 인지할 수 없다. - Fading and Signal Strength Variations:
A와 B, B 와 C는 서로 hear 할 수 있지만 중간에 껴있는 B의 노이즈때문에 A와 C가 hear하지 못할 수 있다.
가장 대표적인 무선 네트워크로는 wifi가 있다. wifi는 무선네트워크 한계를 넘어 유선네트워크 연결 퍼포먼스를 향하는 것을 목표로 한다. wifi 의 연결방식은 passive/active scanning으로 진행된다.
Wi-Fi 네트워크의 중심은 액세스 포인트(AP)이다. AP는 유선 네트워크와 연결되어 있으며, 무선 클라이언트 기기(예: 스마트폰, 노트북 등)와의 통신을 담당한다. 이때 AP들은 자기들 정보를 비컨에 담아 주기적으로 broadcast 한다. 호스트는 AP에서 주기적으로 송출하는 비컨 프레임을 수신하여 가장 적합한 AP와 연결한다 (와이파이 연결). 즉 클라의 디바이스는 신호를 듣는 passive 한 스탠스이기 때문에 이를 Passive scanning 이라고 부른다.
액티브 스캐닝(Active Scanning)은 무선 네트워크에서 클라이언트 기기(예: 스마트폰, 노트북 등)가 주변의 무선 네트워크 액세스 포인트(AP)를 능동적으로 탐지하는 방법이다. 클라이언트 기기가 AP에게 직접 신호를 보내고, 응답을 받는 방식으로 이루어진다.
유선 이더넷은 충돌이 나면 충돌이 안날때까지 프레임을 재전송하는 반면 (링크 레이어에는 ACK가 없어서 충돌만 안나면 ok sign으로 여김-CSMA/CD), 무선링크(Wifi)는 무선 환경의 특성상 충돌 감지가 어려워 링크레이어 ACK 프레임을 사용한다(맥프로토콜 CSMA/CA 사용).
CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance)는 Wi-Fi와 같은 무선 네트워크에서 사용되는 충돌 회피 메커니즘이다. 이는 무선 환경의 특성상 충돌을 감지하는 것이 어려워서, 충돌을 피하는 방식으로 데이터를 전송하는 기술로 작동원리는 아래와 같다.
- 캐리어 감지(Carrier Sensing)
송신 장치는 데이터 전송 전에 채널을 모니터링하여 다른 장치가 데이터를 전송 중인지 확인한다. 이를 캐리어 감지라고 한다. 만약 채널이 사용 중이라면 송신 장치는 대기합니다. - IFS(Interframe Space) 대기
채널이 비어 있으면 송신 장치는 즉시 전송하지 않고, 먼저 IFS(Interframe Space)라는 짧은 대기 시간을 기다린다. 이는 네트워크의 여러 장치들이 동시에 전송을 시도하는 것을 방지하기 위함이다. - 랜덤 백오프(Random Backoff)
IFS 시간이 지난 후에도 채널이 비어 있으면, 송신 장치는 백오프 타이머를 설정합니다. 이 타이머는 무작위로 선택된 짧은 시간 동안 작동합니다. 백오프 타이머가 작동하는 동안 송신 장치는 계속 채널을 모니터링한다. 만약 다른 장치가 데이터를 전송하면 백오프 타이머를 일시 중지하고, 채널이 다시 비어 있을 때 타이머를 재개한다. 백오프 타이머가 0이 되면 송신 장치는 데이터를 전송합니다. - 데이터 전송 및 ACK
송신 장치는 데이터를 전송하고, 수신 장치는 데이터를 성공적으로 받으면 ACK(Acknowledgment) 프레임을 sender에 보낸다. sender는 ACK 프레임을 수신함으로써 데이터가 성공적으로 전송되었음을 확인한다. 만약 ACK 프레임을 받지 못하면, 송신 장치는 충돌이 발생한 것으로 간주하고 데이터를 재전송한다.
정리하자면 유선 이더넷의 맥프로토콜 CSMA/CD와 무선 네트워크의 맥프로토콜 CSMA/CA의 차이를 비교해보면 아래와 같다.
(재전송시 백오프 -> 충돌 났을 때 재전송하기 전에 기다리는 시간)
충돌이 발생하면 유선의 경우 해당 프레임만 다시 재전송하면 그만이지만 무선은 다시 1단계 캐리어 감지로 돌아와 다시시작해 피해가 크다. 그래서 무선은 더욱더 충돌이 안나도록 주의해야한다. 충돌을 최대한 안나게 하기위해 나온 아이디어가 RTS-CTS이다.
RTS/CTS(위 순서 기준 랜덤 백오프와 ACK 사이에 위치)
네트워크 환경에 따라, CSMA/CA는 RTS(Request to Send)와 CTS(Clear to Send) 프레임을 사용하여 추가적인 충돌 회피를 구현할 수 있다. RTS/CTS 프로토콜은 문제를 해결하기 위해, 노드들이 데이터 전송 전에 서로의 전송 의도를 알리고, 네트워크의 다른 노드들이 해당 채널을 사용하지 않도록 한다. 송신 장치는 먼저 RTS 프레임을 전송하고, 수신 장치는 채널이 비어 있으면 CTS 프레임으로 응답한다. CTS 프레임을 받은 후에야 송신 장치는 데이터를 전송한다. 이해를 돕기 위해 비유하자면
1. 학생이 사서에게 "책을 빌리기 위한 요청"을 보낸다. 이는 RTS(Request to Send) 에 해당한다. 이 요청은 "이 책을 빌리고 싶습니다"라는 메시지가 된다.
2. 사서가 요청을 받으면, 도서관 전체에 "이 사람은 지금 책을 빌리려고 합니다. 모두 기다리세요"라고 방송한ㄴ다. 이는 CTS(Clear to Send) 에 해당한다. 다른 사람들은 사서의 방송을 듣고 잠시 기다린다.
3. 요청을 보낸 학생은 사서로부터 응답을 받은 후, 이제 안전하게 책을 빌릴 수 있다. 이 과정은 실제 데이터 전송에 해당한다.
4. 도서관의 다른 사람들은 사서의 방송을 들었기 때문에, 다른 사람이 책을 빌리는 동안 기다린다. 이로 인해 충돌을 피할 수 있다.
따라서 RTS/CTS 프레임은 히든 노드 문제(네트워크의 특정 장치들이 서로의 존재를 인식하지 못하고 동시에 데이터를 전송함으로써 충돌이 발생하는 상황)를 줄이는 데 도움이 된다.
Frame addressing는 무선 이동 네트워크에서 데이터를 전송할 때, 각 프레임이 정확한 목적지에 도달할 수 있도록 하는 과정이다. 트랜스포트 레이어에서 데이터는 패킷 단위로, 네트워크 레이어에서는 IP로, IP들은 다시 프레임이라는 작은 단위로 나뉘어진다. 각 프레임에는 출발지 주소와 목적지 주소가 포함되어 있어, 네트워크 장비들이 프레임을 올바른 경로로 라우팅할 수 있도록 한다.
Frame addressing의 주요요소는 4가지이다.
- 출발지 주소 (Source Address)
프레임을 보낸 장치의 주소이다. 이 주소를 통해 수신자는 프레임이 어디서 왔는지 알 수 있다. - 목적지 주소 (Destination Address)
프레임이 도달해야 할 장치의 주소이다. 네트워크 장비들은 이 주소를 기반으로 프레임을 전달한다. - 프레임 타입 (Frame Type)
프레임의 형식이나 종류를 나타내는 정보이다. 이를 통해 네트워크 장비들은 프레임이 어떤 프로토콜을 사용하는지, 어떤 처리가 필요한지를 알 수 있다. - 제어 정보 (Control Information)
프레임의 전송 상태, 오류 검출, 흐름 제어 등의 정보를 포함한다.
무선 이동 네트워크에서는 특히 주소 설정이 중요하다. 따라서 frame addressing 에서도 주소설정이 핵심이라고 볼 수 있다. 프레임에 저장되는 주소는 크게 3가지가 있다. 바로 AP(Acess Point) , H1(Host 1), R1(Router 1) 주소이다.
정리하자면 세 개의 주소는 모두 맥주소이고 구체적 순서는 아래와 같다.
- 인터넷 서버에서 R1로: 서버는 R1의 공인 IP 주소로 프레임을 전송하고, R1(라우터)은 이를 수신한다.
- R1에서 AP로: R1은 프레임을 AP의 MAC 주소로 전송한다. 이 과정에서 R1은 출발지 MAC 주소를 자신의 MAC 주소로 설정하고, 목적지 MAC 주소를 AP의 MAC 주소로 설정한다.
- AP에서 H1으로: AP는 프레임을 H1의 MAC 주소로 전송한다. AP는 출발지 MAC 주소를 자신의 MAC 주소로 설정하고, 목적지 MAC 주소를 H1의 MAC 주소로 설정한다.
위는 간단하게 요약했지만 AP와 라우터 사이의 단계에서 많은 일들이 벌어진다. 먼저 라우터 밖으로 나갈려면 IP주소를 필요로 하는데 IP주소를 얻는 과정도 이부분에서 이루어진다. 서브넷 영역에서 라우터로 넘어가는, 즉 AP에서 라우터로 넘어가는 과정에서 라우터로 부터 IP 주소 할당을 요청한다 (DHCP) 두번째로 라우터의 맥주소를 알기위해서 AP는 ARP 테이블을 참조한다.
요약하면 아래 두 과정을 수행한다.
- DHCP 과정: 클라이언트가 AP를 통해 라우터로 DHCP 메시지를 보내 IP 주소와 네트워크 설정 정보를 할당받는 과정
- ARP 과정: 클라이언트가 특정 IP 주소에 대한 라우터 MAC 주소를 알아내기 위해 ARP Request를 보내고, 해당 장치(AP 또는 라우터)가 ARP Reply를 통해 라우터 MAC 주소를 알려주는 과정
위 두과정을 통해 헤더에 3가지 주소 영역 (호스트의 맥주소, AP의 맥주소, 라우터의 맥주소) -> 프레임과 IP주소 -> IP를 채워서 보낼 수 있다.
'Computer Science > Network' 카테고리의 다른 글
링크 계층 (2) | 2024.05.14 |
---|---|
네트워크 계층 (0) | 2024.05.09 |
| 컴퓨터 네트워킹 하향식 접근 | Ch1 컴퓨터 네트워크와 인터넷 (0) | 2024.05.07 |
전송 계층 (0) | 2024.05.05 |