Solved

Project:::Peer to Peer IRC/file distribution

Posted on 2002-06-20
11
431 Views
Last Modified: 2010-04-04
I was just wondering if any one had any techinical information about application level p2p networks such as kazaa,gnutella etc.

The plan is to make my own modded version for use either over the internet or LAN. however, i'm slightly unsure about successful p2p protocols which would enable my project to work with a large number of users logged on simultaneously.

I will use 2 different classes of nodes on the network, supernodes and nodes (as in kazaa).

More *specific* question..."how would i propagate a search query amongst supernodes that would not use up loads of bandwidth and cpu time?"

Another *specific question*.."how would message routing work amongst supernodes"

I know its quite an open ended and vague question, but i would appreciate it if anyone could point me in the right direction.

cheers

will

0
Comment
Question by:barbourwill
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 6
  • 4
11 Comments
 
LVL 1

Author Comment

by:barbourwill
ID: 7097437
also if anyone wants to help me code it :)

...well its a challenge...

ne1 interested??
0
 
LVL 22

Expert Comment

by:Mohammed Nasman
ID: 7097465
0
 
LVL 12

Expert Comment

by:Lee_Nover
ID: 7097871
you can check out my helper functions and classes for communication and file transfer in a video survailance app
http://lee.nover.has.his.evilside.org/isapi/pas2html.dll/pas2html?File=/delphi/MiscFiles/vn_common
0
Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 1

Author Comment

by:barbourwill
ID: 7098911
yeah but i need more technical info on how the protocols actually work.
0
 
LVL 12

Expert Comment

by:Lee_Nover
ID: 7098945
the idea is the same with all of these programs
a client connect to a server to find a specific file
the server sends the info on the results
the results contain the info of the users ip and the file info
so your client then connects to the other client and requests the file from it
it then sends the file to your client
if you checked out my link then you saw that everytime I send something I first send a header that describes what I wanna do
then the other side returns the same header with the result value
0
 
LVL 1

Author Comment

by:barbourwill
ID: 7099078
yeah, i get all that but what i mean is...

4 nodes connect to a supernode:
The supernode is connected to 5 other supernodes(which in turn are connected to many others, and all have mindless nodes connected to them).

                             [s] [s] [s]
                               \  |  /  
                       [s]------[ S ]------[s]
                             
                             /  |  |  \
                            [N][N][N][N]

When a mindless node [N] searches for a file, the request is passed on to the immediate supernode. How does the supernode [ S ], propagate this search message to relavant supernodes?

Would it broadcast a message to all connected supernodes (which in turn broadcast it to their connected supernodes)?

This surely would use up loads of bandwidth, especially with hundreds of search requests going on simultaneously.So i need an efficient method of propagating
search messages amongst supernodes.


thanks for your help

will
0
 
LVL 1

Author Comment

by:barbourwill
ID: 7099083
the diagram didnt work quite as i expected!

the central supernode [ S ] has 4 child nodes [N] connected to it.  The supernode [ S ] is connected to 5 other supernodes [s].
0
 
LVL 12

Accepted Solution

by:
Lee_Nover earned 400 total points
ID: 7099334
ahh .. sorry about me treating you as a newbie :)
got used to it after most of ppl didn't understand what I was talking about :)

maybe this litle explanation will help
http://www.limewire.com/index.jsp/p2p

you could also make a user that connects to a server send its filelist
then that server would send that users filelist to other servers it's connected to
kind of caching the lists
so when a user requests a file the request is sent only to the server it's connected to
but a problem would arise if multiple servers are connected to the same servers in a loop :)
like A->B, A->C, B->C ...
you'd have to take care of the message not being sent to C twice :)
0
 
LVL 1

Author Comment

by:barbourwill
ID: 7099429
Lee,

I probably could avoid the repetion of messages by assigning each message with an ID number, so if a node sees the same message, it disregards it.


thanks for the help

and i suppose ill give ya the money.

will
0
 
LVL 1

Author Comment

by:barbourwill
ID: 7099445
thanks for the help
0
 
LVL 12

Expert Comment

by:Lee_Nover
ID: 7099466
yes that would work :)
gnutella uses ttl to determine which packets to disregard ... as described in that article

I don't have any docs on Multicasting but it should be similar
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
how to update exe applicatio from internet ? 6 92
Adoquery sql  left join does not work 25 104
Dev express lookupcombo 3 45
Breakpoint doesn't stop in my variable 3 38
Introduction The parallel port is a very commonly known port, it was widely used to connect a printer to the PC, if you look at the back of your computer, for those who don't have newer computers, there will be a port with 25 pins and a small print…
In this tutorial I will show you how to use the Windows Speech API in Delphi. I will only cover basic functions such as text to speech and controlling the speed of the speech. SAPI Installation First you need to install the SAPI type library, th…
Email security requires an ever evolving service that stays up to date with counter-evolving threats. The Email Laundry perform Research and Development to ensure their email security service evolves faster than cyber criminals. We apply our Threat…
I've attached the XLSM Excel spreadsheet I used in the video and also text files containing the macros used below. https://filedb.experts-exchange.com/incoming/2017/03_w12/1151775/Permutations.txt https://filedb.experts-exchange.com/incoming/201…

749 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question