마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

가능성만 여쭐께요... 휴대폰 간 UDP 통신이요.

0 추천
일반적으로 통신 할때는 AP와 폰간에 TCP로 연결설정을 하고 데이터통신을 하잖아요.

그건 어디까지나 TCP/IP의 통신방식이고...

무선통신이야 자체가 원래 브로드캐스팅이니까

5대의 폰이 서로 반경 5m 안에 있을때, AP없이 서로 UDP 브로드캐스팅으로 채팅프로그램을 만들 수 있을까요?

 

아마 "연결됨"이 되지 않으면 IP의 주소체계 문제로 통신이 안될 것 같아요.

1. 아이피 임의설정으로 UDP통신이 가능할까요?

2. 아이피 설정 필요없이 물리주소만으로 근거리 통신하는 방법이 있을까요?

3. 위의 것이 안된다면, AP(무선공유기)를 통해서 TCP로 앱을 짠다면 서로 아이피를 몰라서 x.x.x.1~254를 조회해서 하거나 온리 255의 브로드캐스팅으로 해야할텐데 과부하, 오버헤드, 속도 등의 측면에서 이런 방법이 가능할까요?

4. 무선랜 말고 다른 방식, 블루투스나 NFC 등의 디바이스로 위의 통신이 가능할 수 있을까요?

5. 물리주소로만 휴대폰간 1:1 통신하는 UDP 통신에 관한 라이브러리가 있을까요?

 

다소 어렵게 썻으나 안펍 고수님들은 제가 어떤 고민을 가지고 있는지 아시리라 생각합니다.

그럼 잘 부탁드립니다.
ifreeta (260 포인트) 님이 2013년 2월 25일 질문

1개의 답변

0 추천
TCP는 UDP위에 한단계 더 스택을 올린거라 보시면 이해가 되실듯 합니다.

일반 컴퓨터에서의 UDP 이지요.

 

따라서 AP가 없이 소켓 통신이 가능하지 않겠죠.

 

프로토콜을 쪼개보시면 (패킷) IP -> UDP -> TCP 형식입니다. (*저도 오래되서 가물가물)

 

TCP는 UDP방식에 패킷이 올 경우에 순서대로 쌓아주고 안온것에 대해서는 다시 날려서 오도록 유도하는 그런 기능을 가진 겁니다. 우리가 일반 게임할때 패스트핑?? 같은게 그 카운트 값을 낮춘거지요.

 

즉 TCP에서 안되는걸 UDP로 가능할수 없겠죠.

 

또한 TCP 통신을 할때 접속 단계에서 포트와 아이피로 검색도 가능하지만 AP 무선 공유기라고 하니

ARP 로 던지면 어느 누가 그 아이피를 쓴다고 알려줍니다.

 

문제는 이걸 만들려면 로우 소켓 프로그래밍을 하셔야 하는데, 그 밑까지 접근이 가능할까 모르겠네요.

순수자바로 가능할지 의문입니다.

 

그리고 블루투스로 파일 전송 프로그램 보시면 도움 될것 같습니다.

 

꼭 만드시려는게 무전기 같으네요 ;;
미친나무 (340 포인트) 님이 2013년 2월 25일 답변
위 어떠한 방법으로도 안된다는건가요?
아시다피시 채팅 앱을 만드는데 서버 클라이언트 방식 말고
1:n 방송방식을 하고싶은 것입니다.
매우 기초기능이고 안된다면 크게 문제가 있는거 같은데... 말이죠.
만들기 나름 아닐까 생각 됩니다.

 안드로이드 단말기가 있을 경우에 소켓 통신을 하려고 하면 우리가 프로그래밍으로 소켓을 사용하겠지만 실제 밑단은 wifi로 연결이 되던 3G로 연결이 되던 LTE로 연결이 되던 어딘가에 물리적으로 동작이 되는 부분이 필요하다는 것입니다.

서버 역할을 하던 클라이언트 역할이 하던 중간에 무엇으로 연결을 할것이냐 이지요. AP도 없이 연결하기 위해서는 하드웨어단으로 연결이 가능한 부분이 있어야 하는데 ..

BT 경우는 가능하겠지요. BT로 1:N 통신도 가능하다 보입니다.
그러나 BT 경우 방송하기에는 부적합할듯 보입니다.
일단 BT 관련 스펙을 한번 보시면 하시고자 하는 일에 성능이 나올지 알수 있을 듯 싶구요.

네트워크 IP,TCP,UDP등 패킷과 실제 AP사이에 통신되는 원리 부터 보시는게 더 도움이 될것 같습니다.

매우 기초기능을 떠나서 물리주소만 갖고 하려면 현재 휴대폰으로 불가능할테고 무전기같은걸 만들어야 할듯 싶구요. (*BT로 하시면 되긴할텐데 성능이 나올지는 모르겠습니다.)

위에 그나마 될만한게 3번인데 ARP 를 던지면 부하 걸리지도 않습니다.
그러나  누가 이 아이피 쓰느냐 라고 던졌을때 누군가 맥어드레스로 응답했을때 그 대답한 아이피쓰는 쪽이 사용하는 어플인지 아닌지 확인부터...
등등....

일단 관련 지식을 찾아보고 하심이 나을듯 싶습니다...

음.. DDOS 자료를 검색해보면 IP패킷, TCP등등 내용이 많습니다.
그러고 보니....

휴대폰으로 홧스팟 테더링 기능쪽으로 알아보세요.
이건 휴대폰이 ap 역할을 하는 것이니 어쩌면 중간에 데이터를 받아오고 통신할 수 있다면 원하시는 기능이 될지도 모르겠습니다.
...