예전에 p2p 메신저를 만들려 했었던 적이 있었습니다.
p2p 메신저를 만들어서 신규 메신저 시장을 개척해보자.. 뭐 이런.. 의도..
카카오톡 같은 대부분의 메신저들은 중앙 서버를 거칩니다.
마치 채팅이나 게임처럼 말이죠. 중앙 서버가 중계를 해줍니다.
그러나 p2p 는 개인 대 개인 간에 직접 연결해서 통신하는 걸 의미합니다.
서버가 없으니 개발자 입장에서는 서버/회선 유지비가 들어가지 않으니 좋습니다.
[v] enable discoverable 이런 옵션을 만들어 놓아야겠죠.
사람 id 를 찾기 위해 중앙 서버를 둘 필요도 없어집니다.
구상만 해놓고 결코 시도하지 않았습니다. 그 이유는
범죄의 온상이 될 거 같아서..
해당 댓글은 삭제되었습니다.
그래두 채팅 서버는 만들어봤음 ㅠㅠ
그럼 양쪽에서 연결은 어떻게 함?
종단끼리 찾아서 연결함. 토런트 같은 거지
즉시 연결하려면 서로 SMS(또는 이메일)로 자신의 주소를 서로 교환하면 됨. 메신저 어플이 서버 같은 역할을 한다고 생각하면 됨.
그러니까 메신저 아이디 같은거로 연결하는게 아니라 아이피 주소로 직접 연결하는거임?
거기까지는 생각 안 해봤는데... 아이디 같은 만드는거 안 될텐데. 중앙 서버가 없으니까... 다만 유일한 값이어야 됨. 그래서 중앙 서버 없으면 아이디 이런거 안 된다고 생각함.
이미 오픈소스로 있다는 게 함정
맞음. 여러개 있더라구
근데 p2p라도 DHP 서버를 직접 운영하든 파이어베이스 같은 걸 쓰든 해서 결국 돈 나갈 건데.
돈이야 나가긴 나가는데... 대규모 트래픽이 걸리는 서버에 비하면 0 수준이 아닐까
DHP->DHT
알겠습니다. 공부 더하고 오겠습니다. ㅠㅠ
비추먹었다 ㅠㅠ
해당 댓글은 삭제되었습니다.
제가 페북을 안 써서 모르겠네요
중앙 서버 안 두고 discovery 프로토콜 별도로 만들면 됨. upnp 라는 것도 있고, 공유기 dmz 설정하는것도 있고, port forwarding 도 있음. 제작자가 서버를 운영하지 않아도 클라이언트 어플이 서버 역할도 겸하므로 고객님들의 어플끼리 알아서 됨.
실제 예로 토런트가 대표적이고 옛날에 emule(amule,xmule) 이런거 있었음. 소리바다 다들 알거구. 그누텔라도 있고. 왜 꼭 중계서버나 주소변환서버가 있어야 한다고 생각함? p2p가 뭔데? 그래서 p2p 인데.
왜 가져다 쓰는거만 생각하는데, discovery 프로토콜 이런거 직접 설계 못함?
파일전송 p2p 어플이 파일대신 문자메시지를 전송하면 그게 p2p 메신져임.
중계서버 없이 DHT 탐색으로만 P2P 만들면 문제가 노드 찾는게 끔찍하게 느려서 그럼 아예 못찾을 수도 있음
토렌트에서 트래커라는게 결국은 노드간에 중계해주는 중계서버임
https://bitcoin.org/en/p2p-network-guide#peer-discovery
비트코인도
클라이언트에 중계서버 하드코딩 해놓고 쓰는것
WhatsApp 같은거 보면 종단간 암호화해서 중앙서버는 암호화된 메세지 전달 역할만 해줌 그런데도 범죄의 온상지 뭐 이런거 아닌거 보면 그냥 핑계인듯 - dc App
그건 번호인증 해서 그런듯
번호 인증하지 않더라도 중앙 서버 있으면 로그 남음. 그 로그를 ISP 쪽 로그와 비교하면 사용자 특정 가능함
에혀.. 비추 3 이나 먹었네 ㅠㅠ
프라이버시를 1000 보호하고 강력 범죄가 1 발생된다면...? 이런 메시지를 전달하고 싶었던건데... 잘난 척하다 비추먹었네 ㅠㅠ
저도 프라이버시랑 P2P 네트워크 관심있어서 그런쪽 연구도 해보고 했는데 결국은 노드 리스트 뿌려주는 중계서버도 필요하고 이것저것 제약사항이 많더라구여... 위에 홀펀칭 이야기도 나왔는데 홀펀칭이랑 UPnP도 100% 확실한게 아니구
비추에 너무 의미 갖지마 ㅋㅋ
이거 텔레그램 비밀 통신이잖음? 서버에 안 남는거. 이미 있다능
비추는 왜 신경씀 ㅋㅋ
개발자가 그런거 신경쓸 필요 있나여... 범죄에 악용된다 해도 추적해서 수갑 채우는건 온전히 경찰의 책임이고...