View Single Post
  #1 (permalink)  
Old February 9th, 2002
Unregistered
Guest
 
Posts: n/a
Lightbulb Gnutella Chat Extensions

Ok, everyone, here is it, here are my ideas about chatting in gnutella, please be so kind and give me some feedback..


[English version, Deutsch steht weiter unten]
(translation, if there are any mistakes write me a letter or
an email*g*)

In this file there are theoretical thoughts to add a chat module
to Gnutella. It's all very general but i hope it's useful for
someone (interest in realizing? any ideas? mailto:
Jan_Hollburg@gmx.net)
To add a Chat into Gnutella, you have to pay attention that you
combine two completely different protocols.
The Gnutella protocol cannot guarantee that a message (->TTL-
Setting) reaches the recipent, that's why you never get 100%
of the files for one search string are viewable.
But if you chat, it's necessary that sender and recipent can
reach each other at every time, multiple.


But how can that be realized?

At first, we must define a room for messages. That means, that
one servent must start being a Chat-Host. This host has now
his IP and a chat-ROOMNAME, by which he can be found in the
network. Other users can now search for the room name (or topic
or user) and find the host. When they connect, they login to the
room and the Client-Servent-PC builds a direct connection to the
Host-Servent-PC.
Furtheron, every Client has do know all the other client-IPs in
the chat room, because:
What happenes, if the original host goes offline? Then, an other
client has to take over the host-function.
Best is, if this happenes through an weigh of ONLINE-TIME (because
"young" hosts may go offline after a short time) and the
PING-value (the chat should be as fast as possible...)

Also, i can imagine to implement a "Direkt-Download" option -
if one chatter searches for a file that another one has, you don't
have to search for (less waste of time and traffic), both of the
clients only build up a direct connection.

(How would it be, if one client could view a file list of an other
without a fuzzy web search? This is also w/o a chat of interest..!)



[Deutsche version, english see top of the file]

Dies sind theoretische Überlegungen, in GNUTELLA ein CHAT-Modul
einzubauen. Alles noch ziemlich allgemein gefasst aber ich hoff
es nützt jemanden (interesse bei der Realisierung? Ideen? melden
bei Jan_Hollburg@gmx.net)

Um einen Chat in Gnutella zu implementieren muss man beachten,
daß man damit zwei vollkommen unterschiedliche Protokolle
versucht zu vereinen.
Das Gnutella-protokoll kann nicht garantieren, daß eine Nach-
richt (entsprechend TTL-Setting) es vom Absender bis zum Emp-
fänger schafft, deshalb wird man auch niemals 100% der Dateien
in Gnutella für ein Suchergebnis angezeigt bekommen.

Beim Chat ist es aber nötig daß Sender und Empfänger sich
ständig erreichen können, und das multipel.

Wie kann man sowas also realisieren?

Als erstes muss man einen abgegrenzten Raum für Nachrichten
spezifizieren. Das bedeutet also, daß ein Servent den Anfang
machen muss und sich als Chat-HOST zur Verfügung stellen muss.
Dieser Host hat nun, neben der IP, auch einen CHAT-RAUMNAMEN,
unter dem er im Netzwerk gefunden werden kann. Andere User
können also nach CHAT-RÄUMEN (oder Topic oder User) suchen
und finden diesen Rechner.
Wenn sie sich verbinden (jeder Rechner braucht hier auch
einen NICK...) loggen sie sich in den Raum ein und der
client-servent-PC baut zum host-servent-PC eine direkte
Verbindung auf.
Weiterhin muss jeder Client-Rechner alle anderen clients im
chat-Raum per IP kennen, denn:

was passiert wenn der ursprüngliche HOST offline geht?
dann muss ein Client die Hostfunktion übernehmen.
Am besten dies geschieht nach einer Abwägung zwischen ONLINE-
Zeit (denn junge hosts sind vielleicht schnell wieder raus
und alte gehn vielleicht auch wenn der erste geht......)
und PING-Verzögerung (denn der chat soll ja schnell laufen)

Weiterhin könnte ich mir die Einbindung eines TOPICs vorstellen
(also jeder Raum kann ein TOPIC haben das vom jeweiligen Host
festgelegt wird.....)

Man könnte auch eine Art "Direkt-Download"-Option implementieren,
wenn ein Chatter ein file sucht, was ein anderer hat, spart man
sich so die Mühe und den Traffic danach zu suchen, die beiden
clients brauchen dann nur noch eine direkte Verbindung aufzubauen

(Wie wärs wenn ein client vom anderen ne filez-Liste einsehen
könnte,ohne websearch? Gedanke auch für außerhalb des chats interessant...!)
Reply With Quote