컴퓨터통신#12
LeeMir, 01 June 2021
7장 - Wireless and Mobile Networks
Wireless Network
- Wireless Link 특징
- 신호 세기가 거리의 제곱에 반비례해 확확 줄어듦
- 간섭을 받기 쉬움
- 신호가 항상 동일한 형태로 목적지에 도달하기 어려움
- 신호의 세기가 강해지면 SNR(Signal-to-Noise Ratio)이 커지고, BER(Bit Error Rate)이 작아짐
- 신호의 세기는 physical layer의 modulation 기법에 따라 달라짐
- 속도가 느린 modulation 기법이면 SNR이 그렇게 크지 않아도 BER이 작음
- Wireless Network 특징
- Hidden Terminal Problem
- A, B, C가 있고 A와 C가 장애물에 가로막혀있고, B는 A와 C 모두 연결 가능한 상태에서 A와 C가 서로 B로 신호를 보내게 돼 B에서 충돌이 발생할 수 있음
- 굳이 장애물이 아니더라도 거리 차이 때문에도 발생할 수 있는 상황
- Hidden Terminal Problem
IEEE 802.11 Wireless LAN
- 802.11b
- 2.4GHz ~ 2.485GHz 대역(unlicensed)을 주파수(frequency)를 기준으로 11개의 채널로 나눔
- 그렇다고 11개를 다 사용하면 간섭이 일어나기 쉬워 보통 3개 정도 채널(1, 6, 11)만 사용
- AP admin이 사용할 채널을 정함
- 서로 이웃해있는 AP가 같은 채널을 고르면 간섭이 일어날 수 있음
- AP가 몰려있는 것을 Hot Spot(Wi-Fi jungle)이라고 부름
- host
- AP에 연결해야 함
- AP의 이름(SSID)과 MAC 주소가 담긴 beacon frame을 감지하는 방식으로 채널을 탐색 후 AP 선택
- 인증이 필요할 수 있음
- 일반적으로 DHCP를 이용해 Ap의 서브넷으로부터 IP 주소를 받음
- passive scanning
- host가 여러 AP를 감지했을 경우 RSS(Received Signal Strength)가 큰 AP를 일반적으로 선택함
- host는 선택을 한 AP로 Association Request frame을 전송함
- 선택받은 AP는 frame을 받은 후 host로 Association Request frame을 보냄
- active scanning
- host가 broadcast로 Probe Request frame을 전송함(주변 AP가 받을 수 있도록)
- frame을 받은 AP는 host로 Probe Request frame을 보내 본인의 존재를 알림
- host가 AP를 선택한 후 Association Request frame을 주고 받음
- multiple access
- 802.11에서는 collision detection을 하지 않음
- 기본적으로 collision detection은 신호의 세기가 겹쳐져 갑자기 커지는 상황을 감지하는 것인데, 무선에서는 신호의 세기가 거리의 제곱에 반비례하다보니 신호가 많이 겹쳐도 멀어질 경우 세기가 그렇게 크지 않아 구분하기 힘들어짐
- 따라서 CSMA 또는 CA 방식으로 collision avoidance를 함
- 802.11에서는 collision detection을 하지 않음
- IEEE 802.11 MAC Protocol: CSMA/CA
- sender
- 데이터를 보내기 전에 누가 채널을 사용하고 있는지 carrier sense를 함
- 아무도 사용하고 있지 않더라도 DIFS라는 필수 휴지 기간이 존재
- DIFS동안 계속 carrier sense를 함
- 만약, 채널을 누가 사용하고 있을 경우 random backoff time을 해 채널이 비워질 때까지 대기
- 데이터를 보낼 때에는 끊지 않고 한꺼번에 다 보냄
- ACK가 오지 않을 경우, collision이 발생한 것으로 판단해 다시 random backoff interval을 해 대기함
- receiver
- ACK를 보낼 때에는 반드시 SIFS라는 휴지 기간을 기다렸다가 보내야 함
- sender
- Avoiding collisions
- sender가 보낼 때 처음에 RTS(request-to-send)라는 작은 크기의 frame을 보냄
- AP는 RTS에 대한 응답으로 CTS(clear-to-send)를 broadcast로 보내서 다른 host가 채널을 사용하지 못하게 알림
- 보내려고 했던 다른 host들은 전송을 연기해야 하는데, 연기하는 시간은 CTS에 들어있음
- RTS와 CTS는 결국 추가적으로 1RTT의 오버헤드가 생겨 잘 쓰지 않음
- mobility within same subnet
- 한 IP Subnet에 있는 host가 같은 IP Subnet의 다른 AP로 이동해 연결했을 경우 switch에서 이 host가 어느 AP에 위치해있는지 어떻게 알까? 라는 상황
- switch는 self-learning을 통해 이 host가 보낸 frame이 어느 AP를 통해 왔는지 기억해놨다가 해당 port로 보내줘서 해결함
- power management
- node가 AP로 다음 beacon frame까지 sleep할거라고 알림
- 따라서 AP는 이 node한테 frame을 보낼 필요가 없음
- beacon frame : AP가 모든 mobile node에게 broadcast로 보내는 frame
- 이 frame에는 현재 어떤 mobile node가 frame을 받고 있는지(sleep이 아닌지) list가 담겨있음
- node가 AP로 다음 beacon frame까지 sleep할거라고 알림
- IEEE 802.15: Personal Area Network
- 대표적으로 802.15.1(Bluetooth)과 802.15.4(Zigbee, sensor network)가 있음
- 약 10미터 안에서 동작함
- 주로 cable을 대체(마우스, 키보드, 헤드폰 등)
- ad hoc 방식(no infrastructure)
- master/slave로 동작
- 아이폰이 master, 에어팟이 slave
- master를 포함해 최대 8개까지 연결 가능
- master/slave 말고도 inactive 상태를 나타내는 parked도 있음
- 이러한 연결을 piconet이라고 부름
- 현재 Bluetooth는 많이 발전해서 BLE(Bluetooth Low Energe)라는 Bluetooth 4.0 버전까지 나와 거리도 많이 늘어남
Mobility
- vocaulary
- home network
- permanent address(home address)
- mobile node한테 할당된 주소로, mobile node가 어디로 가든 사용됨
- correspondent는 항상 이 주소로 접근
- home agent
- mobile node가 다른 곳으로 이동해도 permanent address를 사용할 수 있게 해줌
- router에서 주로 맡는 역할
- visited network(foreign network)
- 현재 mobile node가 속해있는 network
- permanent address는 home network에서 사용하던 그대로 사용
- foreign agent
- visited network에서의 home agent
- care-of-address
- visited network에서의 주소
- correspondent
- 통신하고 싶어하는 상대 mobile node
- 움직이고 있는 상대의 위치를 어떻게 찾아서 통신할 수 있을까?
- router를 이용하는 방법
- routing table을 바꿀 때 mobile node가 어디 있는지도 최신화
- end-system은 바꿀 필요가 없으나 오버헤드가 너무 큼
- end-system을 이용하는 방법
- indirect routing
- correspondent가 home agent에 연락하고, home agent는 foreign agent를 통해 통신
- 반면 mobile node는 direct로 correspondent에 연결하는데, 이를 triangle routing이라고 부름
- moblie node와 correspondent가 같은 network 상에 있다면 굉장히 비효율적인 방식임
- direct routing
- correspondent가 어떤 방식을 이용하든지간에 foreign address를 알아내서 직접 연결
- indirect routing
- router를 이용하는 방법
- registration
- mobile node가 foreign network에 들어가면, foreign agent에게 입장했다고 알려줌
- foreign agent는 home agent한테 mobile node의 permanent address와 care-of-address를 알려줌
- mobile node가 다른 foreign network에서 이동해왔더라도 home agent는 care-of-address를 업데이트만 해주면 되는거라 상관 없음
- 따라서 home agent는 mobile node의 위치를 알고 있고, correspondent는 두가지 routing 방식으로 연결
- indirect routing
- correspondent가 permanent address로 보내는 신호를 home agent가 가로챔
- home agent와 foreign agent는 tunneling(encapsulation) 방식으로 연결됨
- foreign agent가 없을 수도 있음: co-located foreign agent
- 이 경우에는 mobile node가 직접 foreign agent의 역할을 함
- triangular routing 형성
- direct routing
- correspondent가 permanent address로 보내는 신호를 home agent가 가로챈 후, home agent로부터 care-of-address를 받아옴
- 받아온 care-of-address로 다시 신호를 보냄
- triangular routing의 오버헤드를 줄임
- home agent와 통신하는 사이 mobile node의 위치가 바뀔 경우를 대비해 chaining 방식을 이용해 anchor foreign agent가 새로운 foreign agent로 연결
- indirect routing
Mobile IP
- 기본적으로 indirect routing 방식을 사용
- ICMP message를 사용함(typefield = 9, router advertisement)
Wireless, Mobility: impact on higher layer protocols
- Wireless와 Mobility는 상위 layer에 영향을 최소로 미쳐야 함
- TCP와 UDP는 Wireless와 Mobility를 유선과 따로 구분하지 않고 상관없이 동작함
- 그러나 높은 BER 등으로 packet loss/delay가 자주 발생할 수 있는데, 이를 TCP에서는 congestion으로 인식해버려 cwnd를 줄일 수 있음
- 이러면 throughput이 많이 떨어지게 됨
- 그러나 높은 BER 등으로 packet loss/delay가 자주 발생할 수 있는데, 이를 TCP에서는 congestion으로 인식해버려 cwnd를 줄일 수 있음