p2p 에 대해서.
글쓴이: 익명 사용자 / 작성시간: 수, 2002/06/05 - 12:02오후
안녕하세여. p2p에 관심이 많은 학생입니다.
소리바다 같은 file sharing program을 짤려고 하는데여.
현재 두가지 방식을 생각하고 있거든여.
하나는, 서버의 역할을 최대한 단순히 해서, 서버는 접속 클라이언트의
ip address만을 db에 저장했다고 클라이언트가 검색요청을 하면 저장된
ip list를 리턴해주고, 요청한 클라이언트가 개별적으로 검색을 하는 방
식이구여.
다른 하나는 좀 복잡한 서버 방식입니다. 클라이언트가 접속하면, 클라이
언트의 모든 파일정보를 db에 저장했다가, 클라이언트는 검색요청을
서버에 직접 보내게 됩니다. 서버는 요청을 받고 디비를 검색해, 매칭되는
파일의 ip address와 file name만을 클라이언트에 리턴해주면, 클라이언트
는 서버로 부터 받은 ip address로 tcp connection을 맺에 파일을
다운로드 하는 방식입니다.
두방식에 일장 일단이 있다고 생각하는데여... 그리고 두 방식 다 미국이
나 우리나라에서 가장 유명한 file sharing program에서 실제 사용되는
방식으로 알고 있는데여.
여러분 같으면 어떤 방식으로 코딩하겠습니까?
그리고 그 이유는 무엇입니까?( 어떤 장점, 단점이 있다고 생각 하시는지
요?)
그럼 좋은 하루 되세여.
Forums:
Re: p2p 에 대해서.
음.. 저도 한동안 p2p에 대하여 고민을 해보았었는데..
(그렇다고 실제로 짜본적은 없어요. ^^ 그냥 고민만..)
일단 첫번째 방법이 좀더 p2p개념에 가까운 것이겠지만 (그냥 제 생각으
론 말이죠. ^^;;)
전 두번째 방법이 낫지 않을까 싶네요.
왜냐면은 전 가상 ip를 쓰거든요.
그러니깐 문제가 소리바다를 사용 못한다는 것이예요. ㅡㅜ
만약 소리바다가 서버에서 ip랑 화일을 저장하구 있다가 찾아서 보내주는
방법을 이용했다면 (두번째 방법을 이용했다면)
저두 소리바다를 마음껏 이용할 수 있었겠죠. ㅡㅜ
(지금 여기 적은건 실제는 어떤지 모르지만 그동안 제가 학교에서 배운것
이나 제가 가상 ip쓰면서 고민해 보았던 것이기 때문에 크게 신뢰성이 있
지는 않을것 같습니다.)
그래서 어떤 상황의 사용자들도 충분히 쓸 수 있도록 두번째 방법이 낫지
않을까 싶네요.
(첫번째 방법을 사용할 지라도 충분히 가능하게 할 수는 있겠지만은.. 좀
쉽게 구현하기 위해선. ^^)
그냥 개인적인 의견이었습니다.
아. 고수님들~
제가 잘못 알고 있는것이 있다면은 지적해 주시기 바랍니다. ^^
ps. 월드컵 응원에서만 태극기 달지 마시고 현충일날도 좀 많이많이 달아
주세요~ ^^
Re: p2p 에 대해서.
현재의 대세는 gnutella 방식이라고 생각합니다.
님이 말한 1번 방식과 비슷한 방식에서 시작하였고,
눈부신 발전을 거듭하여서, Ultra peer 혹은 Super peer 라고 부르는
혼합 방식을 향해서 진보한 상태입니다.
gnutella 자체의 이념적 문제때문에 이런 과정을 추구하는 면도 있겠지만,
아무래도 현재의 p2p 의 모델로는 가장 선진적인게 아닐까.
생각해 봅니다.
http//groups.yahoo.com/group/the_gdf/
이곳을 참고하세요.
그럼.
그방식은..
그방식은 법적으로 문제가 있습니다 대표적인 예가 P2P의 원조인 냅스터
겠지요..
그리고 그런 방식으로 한다고 해서 NAT환경내에서 되지는 않습니다..
그 이유는 단순히 목록만 저장할뿐 실체는 저장하지 않기 때문이지요..
NAT내에서의 문제는 socks5라든가 여러가지 프락시가 있으니 그걸 이용하
시는게 좋지 않을까 싶은데용..
그리고 전 NAT환경 내에서 소리바다 잘 쓰고 있는데요..-_-);;
물론 랜덤포트가 아니라 포트를 할당해서 쓰지만요..-_-);;
댓글 달기