소리바다나 그누텔라 같은.

plusme의 이미지

peer와 peer 끼리 서로 discover 를 해야 잖습니까.

이 경우 peer 사이에 다른 peer들의 정보를 어떻게 알수가 있는거죠?

port가 정해져 있어서 그 포트로 udp listen 하고 있다가

어떤 peer가 들어오면 그 peer는 subnet으로 broadcast 하면

그 정보를 다른 peer들이 아는건가요?

plusme의 이미지

근데 저렇게 하면,, firewall 같은 문제는 무조건.. 해결 불가능할것 같은데.. 어떻게들 해결하고 있는지? 혹시 랑데뷰(릴레이) 피어 개념을 쓰고 있는건가요?

sodomau의 이미지

일반적으로 그누텔라 같은 경우처럼
특별한 서버가 없는 경우에는
각각의 피어가 다른 피어들의 목록을 갖고 있습니다.
한번 그누텔라 프로그램 깔아보면 쉽게 아실 수 있는데요.
처음 깐 그누텔라 프로그램에도 디폴트로
엄청나게 많은 피어 목록을 갖고 있습니다.
그리고 그 피어 목록을 통해서 일단 접속에
성공하게 되면 또다시 그쪽을 통해서 피어 목록을
업데이트 하게 되고요.

plusme의 이미지

오버넷 같은 경우 peer 목록을 갖고 있질 않답니다. 초기에.

lkjt의 이미지

p2p가 방화벽(라우터)이 있어도 됫었나요?,,,

Prentice의 이미지

되는 경우도 많습니다.

sodomau의 이미지

오버넷은 처음에 피어 리스트를 가지고 있지 않다는 말에
이상해서 오버넷 홈피를 좀 뒤져봤습니다.

오버넷도 역시 다른 피어들의 리스트가 있어야 오버넷 네트웍에 연결될 수 있습니다.

http://www.overnet.com/documentation/how_on.html

Quote:

Overnet is an information storage network. It can be used to publish and retrieve small pieces of data. It is highly scalable and completely distributed. Each node (every running copy of Overnet is a node) in the network knows about a small set of other nodes in the network. To join the network you must simply know the IP address and port of another node in the network. Once you know this you can bootstrap from the other node. Overnet uses what is called a distributed hashtable to organize the data that is searched for. This means that nodes know what other nodes to publish to and then what nodes to send searches to. It is like creating a giant virtual filing cabinet.

Bootstrapping
This is how a client first joins the Overnet. When you have the IP and port of another client in the network you can ask them to tell you some other clients in the network and then you can ask those clients about other clients and so on. It is a very simple process that you only have to do if you somehow loose all your known contacts.

Publishing & Searching
Each node is assigned a random 128bit ID. This ID serves as the node's address in the network. When a node wants to publish some small piece of data to the Overnet, the data is also assigned a unique 128bit ID. The node that has an ID closest to the data's ID is responsible for this piece of data. The responsible node is looked up in the network. Once found, the publishing node sends the responsible node the piece of data. This is publishing.

When a node wants to search for something it must determine the ID of the thing it is looking for. Then it finds the node that is responsible for that ID. Then it asks for the list of data pieces that correspond to that ID.

urmajest의 이미지

제가 아는 바로는 어떠한 p2p network protocol도 peer discovery라는 기능은 가지고 있지 않습니다. 몇몇 peer의 주소를 알아오기 위해서는 최소한의 서버 혹은 깨어있음이 보장되는 몇몇 peer의 목록을 필요로 하는 것이죠. 사실 p2p나 ad-hoc network에서는 scalability를 위해서라도 neighbor discovery가 필요한 것이 사실입니다. 하지만, peer가 전혀 없는 상황에서는 자신의 discovery message를 flooding이라도 해줄 수있는 peer가 없고, 결국 혼자서 ethernet broadcasting을 하던지, 없으면 ip address 랜덤생성이라도 해야할텐데 그것은 웜이나 다름없지요 -_-

맞나요? 별로 아는게 없어서 -_-

sodomau의 이미지

제가 알기로도 그렇습니다. 헐헐;

jenix의 이미지

리눅스용 오버넷 설치해보시면 단번에 압니다..
contact.dat 란 파일이 피어목록인데요..
이상하게 리눅스 버젼에선 이 피어목록이 없습니다.
그래서 처음에 설치하고 아무리 s 검색어 넣어도 아무 반응이 없던 경험이 있었더랬죠.. )
지금은 윈도우 오버넷에서 복사해와서 잘 쓰고 있습니다만..
훔..

---------------------------------------------------------------------------
http://jinhyung.org -- 방문해 보세요!! Jenix 의 블로그입니다! :D

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.