관리 메뉴

HAMA 블로그

안드로이드 와이파이 다이렉트(WI-FI Direct) 프로그래밍(1) 본문

안드로이드

안드로이드 와이파이 다이렉트(WI-FI Direct) 프로그래밍(1)

[하마] 이승현 (wowlsh93@gmail.com) 2015. 6. 20. 18:56


1. WI-FI ?  와이파이 다이렉트란 ? 

2. 와이파이 개발 일반 

  2-1) 와이파이 스캔 

  2-2) 와이파이 환경 설정

  2-3) 와이파이 네트워크 연결

 

3. 와이파이 다이렉트 개발 

  3-1) 일반

  3-2) 서비스 검색 

  3-3) 와이파이 락과 멀티캐스트 설정 



WI-FI


전파거리 : 직선거리 200미터 /  벽으로 막힌곳에서는 대략 3~4미터 (1층~2층) 

전송속도 : 최대 300Mbps ( 802.11n) 

단점     :  블루투스에 비해서 많은 전력소모 /  전자레인지등과 같은 대역대라서 전파간섭의 가능성 

다른 무선 통신 방법들 : 지그비 or Z-Wave 등 


보통 가정에서 무선공유기를 주축으로 와이파이가 연결되어져서 사용된다. 무선공유기같은 AP 없이 

기기들끼리 서로 제어하고 데이터를 전송할수있는 기술을 와이파이 다이렉트라고 한다. 


와이파이 다이렉트 기술은 와이파이가 무선 접속 장치를 거치지 않고 기기간에 직접 접속하여 데이터를 주고받을수 있다는 

점에서 초기에는 WI-FI Peer-to-Peer 라고 불리워 왔다. 



무선랜이란 ? "전통적이니 와이파이 망을 무선랜이라고 부른다" 


와이파이 규격 

- IEEE 802.11n

 802.11n 은 최근 상용화된 전송 규격으로 2.4Ghz 대역과 5Ghz 대역을 사용할 수 있으며 이론적으로 최대 300Mbps 까지의 

 속도를 지원할 수있다. 우리나라에서는 기술 규격 내 주파수 점유 대역폭의 문제로 인하여 135~144Mbps 로 속도가 

 제한되었으나 최근에 전파연구소의 기술기준고시로 300Mbps 까지 사용할수있게 되었다.


http://blog.skbroadband.com/543 의 와이파이 다이렉트 소개 

와이파이 다이렉트는 와이파이 기술의 새 버전으로, AP(Access Point)를 통한 인터넷 망과의 연결 없이도 무선으로 여러 기기를 와이파이로 연결, 데이터를 빠르고 신속하게 전송할 수 있는 기술을 뜻합니다. Wi-Fi의 장점과 블루투스의 장점을 합친 기술로써, 블루투스보다 속도가 빠른 Wi-Fi의 통신방식을 활용하면서 블루투스의 기능을 띄고 있습니다. 

보통의 와이파이는 무선으로 유선망을 사용하기 때문에 유선망과 연결된 AP가 하나는 존재해야만 사용이 가능한 반면, 와이파이 다이렉트는 해당 기능을 지원하는 기기만 2개가 있다면 블루투스처럼 쉽게 상호 통신이 가능하므로 별도의 AP는 필요 없게 됩니다와이파이 다이렉트는 블루투스처럼 기기들간의 통신을 위한 기술이라는 점. 이해가 가시겠죠?^^

                                                          유무선 공유기 & 와이파이 를 이용한 인터넷 공유 

                                     무선 접속 장치는 자신과 연결된 단말기 모두를 같은 네트워크 대역으로 연결시킨다.



                                                                            WI-FI Direct 모식도 



안드로이드에서 와이파이 다이렉트 

와이파이와 와이파이 다이렉트는 안드로이드 프레임워크가 독자적으로 젝오하는 기능이 아니다. 리눅스의 wpa_supplicant 에 의해 제공.


WiFi  와   TCP/IP 의 차이점은 ?



           

위에서 눈여겨 볼것은 TCP/IP 는 OSI 계층의 3,4 단계에 위치해있는 소프트웨어 레벨 프로토콜이라는 점~

WI-FI 는 이더넷과 같은 1,2 계층에 위치한 물리적 계층이라는 점~~

WiFi is one way to implment OSI Layers 1 and 2 .It does that using radio technology. Ethernet is another way to implment Layers 1 and 2 (using wires or fibre). Once you have a Layer 1 and 2 infrastructure, you then have a local network (LAN) that can interconnect a small number of hosts (usually a few to a few hundred) that are typically managed by a single entity. You can then run any Level 3 internetworking protocol, such as IP, IPX, AppleTalk, etc. over the LAN, which allows those hosts to talk not only to each other but also to hosts anywhere else on the internet (provided you have an appropriate router with a physical connection to an ISP). If your Level 3 protocol is IP, then you can run any of several Level 4 protocols on top of that, such as TCP or UDP. The Level 4 protocols transfer data between specified "ports" (basically, just numerical addresses) on the hosts at the two ends, and they can do it very reliably, though with high overhead (TCP), not reliably, but with low overhead (UDP), or in various other ways. ## Bluetooth networks are kind of like LANs, but are not normally thought of in this model, because they are only used for point-to-point communication between devices close together (10 m). Bluetooth is really just a wireless replacement for a serial cable.



zigbee 와 z-wave 프로토콜 스택 

           


지그비와 Z-Wave 는 어플리케이션레벨 개발에 대한 라이브러리가 지원되고있다. 칩에 핸들링 코드를 C 등으로 코딩하여 

호스트-타켓간에 통신할수있겠다. Z-WAY(http://www.z-wave.me/index.php?id=22)  같은 기술을 이용하여 손쉽게 개발할수도 있다. 


2 편 부터는  코드와 함께  와이파이 다이렉트 개발 에 대해서 알아보도록 하자.



Comments