<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://sarwiki.informatik.hu-berlin.de/index.php?action=history&amp;feed=atom&amp;title=Napster</id>
	<title>Napster - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://sarwiki.informatik.hu-berlin.de/index.php?action=history&amp;feed=atom&amp;title=Napster"/>
	<link rel="alternate" type="text/html" href="https://sarwiki.informatik.hu-berlin.de/index.php?title=Napster&amp;action=history"/>
	<updated>2026-05-11T09:22:35Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://sarwiki.informatik.hu-berlin.de/index.php?title=Napster&amp;diff=5051&amp;oldid=prev</id>
		<title>Dneumann: /* Client-Server-Kommunikation */</title>
		<link rel="alternate" type="text/html" href="https://sarwiki.informatik.hu-berlin.de/index.php?title=Napster&amp;diff=5051&amp;oldid=prev"/>
		<updated>2006-03-02T16:25:30Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Client-Server-Kommunikation&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:25, 2 March 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Für die Client-Server-Kommunikation wird TCP eingesetzt, typischerweise auf den Ports 8888 und 7777. Jede Nachricht hat die Form &#039;&#039;&amp;lt;length&amp;gt;&amp;lt;type&amp;gt;&amp;lt;data&amp;gt;&#039;&#039;,wobei &#039;&#039;&amp;lt;length&amp;gt;&#039;&#039; und &#039;&#039;&amp;lt;type&amp;gt;&#039;&#039; jeweils 2 byte lang sind, in little-endian kodiert. Der Wert &#039;&#039;&amp;lt;length&amp;gt;&#039;&#039;  gibt die Länge von &#039;&#039;&amp;lt;data&amp;gt;&#039;&#039; an, &#039;&#039;&amp;lt;type&amp;gt;&#039;&#039; definiert den Typ der Nachricht. Die Zeichen „&amp;lt;&amp;gt;“ dienen nur der besseren Veranschaulichung, die einzelnen Abschnitte werden duch Leerzeichen (ASCII 32) getrennt. Für die einzelnen Typen von Nachrichten möchte ich auch auf die [http://opennap.sourceforge.net/napster.txt offene Spezifikation] von drscholl verweisen, die vom 7.April 2001 datiert ist. Da es nie eine Offenlegung des Protokolls gab, war man auf die Analyse des Protokolls während der Nutzung angewiesen.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Für die Client-Server-Kommunikation wird TCP eingesetzt, typischerweise auf den Ports 8888 und 7777. Jede Nachricht hat die Form &#039;&#039;&amp;lt;length&amp;gt;&amp;lt;type&amp;gt;&amp;lt;data&amp;gt;&#039;&#039;,wobei &#039;&#039;&amp;lt;length&amp;gt;&#039;&#039; und &#039;&#039;&amp;lt;type&amp;gt;&#039;&#039; jeweils 2 byte lang sind, in little-endian kodiert. Der Wert &#039;&#039;&amp;lt;length&amp;gt;&#039;&#039;  gibt die Länge von &#039;&#039;&amp;lt;data&amp;gt;&#039;&#039; an, &#039;&#039;&amp;lt;type&amp;gt;&#039;&#039; definiert den Typ der Nachricht. Die Zeichen „&amp;lt;&amp;gt;“ dienen nur der besseren Veranschaulichung, die einzelnen Abschnitte werden duch Leerzeichen (ASCII 32) getrennt. Für die einzelnen Typen von Nachrichten möchte ich auch auf die [http://opennap.sourceforge.net/napster.txt offene Spezifikation] von drscholl verweisen, die vom 7.April 2001 datiert ist. Da es nie eine Offenlegung des Protokolls gab, war man auf die Analyse des Protokolls während der Nutzung angewiesen.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Client-Server-Kommunikation ==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Client-Server-Kommunikation ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Besitzt das lokal installierte Napster-Programm keine Registrierungsdaten, so werden diese beim ersten Starten des Programms vom Nutzer verlangt, um dann die Nachricht &#039;&#039;6 new user login&#039;&#039; mit dem Inhalt &#039;&#039;&amp;lt;nick&amp;gt; &amp;lt;pass&amp;gt; &amp;lt;port&amp;gt; &quot;&amp;lt;client-info&amp;gt;&quot; &amp;lt;speed&amp;gt; &amp;lt;email-address&amp;gt;&#039;&#039; an den Server zu senden. Zuvor wird überprüft mit &#039;&#039;7	nick check &amp;lt;nick&amp;gt;, ob der Nutzername gültig ist und entweder mit &#039;&#039;8 nickname not registered&#039;&#039;, &#039;&#039;9 nickname already registered&#039;&#039;, oder &#039;&#039;10 (0x0a) invalid nickname&#039;&#039; quittiert. Beim späteren login mittels &#039;&#039;2 login&#039;&#039; mit dem Inhalt &#039;&#039;&amp;lt;nick&amp;gt; &amp;lt;pass&amp;gt; &amp;lt;port&amp;gt; &quot;&amp;lt;client-info&amp;gt;&quot; &amp;lt;speed&amp;gt;&#039;&#039; wird nur die e-mail-Adresse weggelassen. &#039;&#039;&amp;lt;speed&amp;gt;&#039;&#039; ist eine Kodierung von 0 bis 10 für die unterschiedlichen Verbindungsgeschwindigkeiten von 14,4kbit/s-Modem bis T3 oder größer bzw. unbekannt. &#039;&#039;&quot;&amp;lt;client-info&amp;gt;&quot;&#039;&#039; enthält die Versionsnummer vom installierten Napster. Eine erfolgreiche Anmeldung am Server wird durch die Nachricht &#039;&#039;3 login ack&#039;&#039; und der bei der Registrierung angegebenen E-mail-Adresse dem Klienten mitgeteilt. Nach der Anmeldung übermittelt der Klient eine Liste der lokal verfügbaren Dateien an den Server: &#039;&#039;100 (0x64) client notification of shared file&#039;&#039; mit dem Inhalt &#039;&#039;&quot;&amp;lt;filename&amp;gt;&quot; &amp;lt;md5&amp;gt; &amp;lt;size&amp;gt; &amp;lt;bitrate&amp;gt; &amp;lt;frequency&amp;gt; &amp;lt;time&amp;gt;&#039;&#039;, zum Beispiel &#039;&#039;&quot;beispiel band - beispiel song.mp3&quot; a92870e0d41bc8a698cf2f0a1ddfeac6 1234567 128 44100 83&#039;&#039;.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Besitzt das lokal installierte Napster-Programm keine Registrierungsdaten, so werden diese beim ersten Starten des Programms vom Nutzer verlangt, um dann die Nachricht &#039;&#039;6 new user login&#039;&#039; mit dem Inhalt &#039;&#039;&amp;lt;nick&amp;gt; &amp;lt;pass&amp;gt; &amp;lt;port&amp;gt; &quot;&amp;lt;client-info&amp;gt;&quot; &amp;lt;speed&amp;gt; &amp;lt;email-address&amp;gt;&#039;&#039; an den Server zu senden. Zuvor wird überprüft mit &#039;&#039;7	nick check &amp;lt;nick&amp;gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&lt;/ins&gt;, ob der Nutzername gültig ist und entweder mit &#039;&#039;8 nickname not registered&#039;&#039;, &#039;&#039;9 nickname already registered&#039;&#039;, oder &#039;&#039;10 (0x0a) invalid nickname&#039;&#039; quittiert. Beim späteren login mittels &#039;&#039;2 login&#039;&#039; mit dem Inhalt &#039;&#039;&amp;lt;nick&amp;gt; &amp;lt;pass&amp;gt; &amp;lt;port&amp;gt; &quot;&amp;lt;client-info&amp;gt;&quot; &amp;lt;speed&amp;gt;&#039;&#039; wird nur die e-mail-Adresse weggelassen. &#039;&#039;&amp;lt;speed&amp;gt;&#039;&#039; ist eine Kodierung von 0 bis 10 für die unterschiedlichen Verbindungsgeschwindigkeiten von 14,4kbit/s-Modem bis T3 oder größer bzw. unbekannt. &#039;&#039;&quot;&amp;lt;client-info&amp;gt;&quot;&#039;&#039; enthält die Versionsnummer vom installierten Napster. Eine erfolgreiche Anmeldung am Server wird durch die Nachricht &#039;&#039;3 login ack&#039;&#039; und der bei der Registrierung angegebenen E-mail-Adresse dem Klienten mitgeteilt. Nach der Anmeldung übermittelt der Klient eine Liste der lokal verfügbaren Dateien an den Server: &#039;&#039;100 (0x64) client notification of shared file&#039;&#039; mit dem Inhalt &#039;&#039;&quot;&amp;lt;filename&amp;gt;&quot; &amp;lt;md5&amp;gt; &amp;lt;size&amp;gt; &amp;lt;bitrate&amp;gt; &amp;lt;frequency&amp;gt; &amp;lt;time&amp;gt;&#039;&#039;, zum Beispiel &#039;&#039;&quot;beispiel band - beispiel song.mp3&quot; a92870e0d41bc8a698cf2f0a1ddfeac6 1234567 128 44100 83&#039;&#039;.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dneumann</name></author>
	</entry>
	<entry>
		<id>https://sarwiki.informatik.hu-berlin.de/index.php?title=Napster&amp;diff=5050&amp;oldid=prev</id>
		<title>Dneumann: /* Architektur */</title>
		<link rel="alternate" type="text/html" href="https://sarwiki.informatik.hu-berlin.de/index.php?title=Napster&amp;diff=5050&amp;oldid=prev"/>
		<updated>2006-03-02T16:23:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Architektur&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:23, 2 March 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 11:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 11:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Architektur=&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Architektur=&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Napster ist eine Tauschbörse der ersten Generation, die zum Auffinden von Dateien des Typs mp3 einen [http://sarwiki.informatik.hu-berlin.de/Napster#Client-Server-Kommunikation zentralen Server] benötigt, der zwischen den anbietenden und suchenden Klienten vermittelt. Erst nach Erhalt von Suchergebnissen vom Napster-Server kann der [http://sarwiki.informatik.hu-berlin.de/Napster#Client-Client-Kommunikation Musikdownload] starten.&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Napster ist eine Tauschbörse der ersten Generation, die zum Auffinden von Dateien des Typs mp3 einen [http://sarwiki.informatik.hu-berlin.de/Napster#Client-Server-Kommunikation zentralen Server] benötigt, der zwischen den anbietenden und suchenden Klienten vermittelt. Erst nach Erhalt von Suchergebnissen vom Napster-Server kann der [http://sarwiki.informatik.hu-berlin.de/Napster#Client-Client-Kommunikation Musikdownload] starten.&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:Napster_hierarchie.gif|Napsters Architektur]]&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:Napster_hierarchie.gif|Napsters Architektur]]&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;a class=&quot;mw-diff-movedpara-left&quot; title=&quot;Paragraph was moved. Click to jump to new location.&quot; href=&quot;#movedpara_6_0_rhs&quot;&gt;&amp;#x26AB;&lt;/a&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;a name=&quot;movedpara_2_0_lhs&quot;&gt;&lt;/a&gt;== Client-Server-Kommunikation ==&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Alle in diesem Netz partizipierenden Klienten schicken beim Starten eine Hashliste der lokal freigegebenen Dateien an den Server server.napster.com, der somit einen umfassenden zentralen temporären Suchindex aufbauen kann. Das Hashen geschieht mittels MD5 der ersten ca. 300,000bytes ab dem FrameSync im mp3. &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Alle in diesem Netz partizipierenden Klienten schicken beim Starten eine Hashliste der lokal freigegebenen Dateien an den Server server.napster.com, der somit einen umfassenden zentralen temporären Suchindex aufbauen kann. Das Hashen geschieht mittels MD5 der ersten ca. 300,000bytes ab dem FrameSync im mp3. &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;a class=&quot;mw-diff-movedpara-right&quot; title=&quot;Paragraph was moved. Click to jump to old location.&quot; href=&quot;#movedpara_9_0_lhs&quot;&gt;&amp;#x26AB;&lt;/a&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;a name=&quot;movedpara_4_0_rhs&quot;&gt;&lt;/a&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Für die Client-Server-Kommunikation wird TCP eingesetzt, typischerweise auf den Ports 8888 und 7777. Jede Nachricht hat die Form &#039;&#039;&amp;lt;length&amp;gt;&amp;lt;type&amp;gt;&amp;lt;data&amp;gt;&#039;&#039;,&lt;/ins&gt;wobei &#039;&#039;&amp;lt;length&amp;gt;&#039;&#039; und &#039;&#039;&amp;lt;type&amp;gt;&#039;&#039; jeweils 2 byte lang sind, in little-endian kodiert. Der Wert &#039;&#039;&amp;lt;length&amp;gt;&#039;&#039;  gibt die Länge von &#039;&#039;&amp;lt;data&amp;gt;&#039;&#039; an, &#039;&#039;&amp;lt;type&amp;gt;&#039;&#039; definiert den Typ der Nachricht. Die Zeichen „&amp;lt;&amp;gt;“ dienen nur der besseren Veranschaulichung, die einzelnen Abschnitte werden duch Leerzeichen (ASCII 32) getrennt. Für die einzelnen Typen von Nachrichten möchte ich&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; auch&lt;/ins&gt; auf die [http://opennap.sourceforge.net/napster.txt offene Spezifikation] von drscholl verweisen, die vom 7.April 2001 datiert ist. Da es nie eine Offenlegung des Protokolls gab, war man auf die Analyse des Protokolls während der Nutzung angewiesen.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Für die Client-Server-Kommunikation wird TCP eingesetzt, typischerweise auf den Ports 8888 und 7777. Jede Nachricht hat die Form&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;a class=&quot;mw-diff-movedpara-right&quot; title=&quot;Paragraph was moved. Click to jump to old location.&quot; href=&quot;#movedpara_2_0_lhs&quot;&gt;&amp;#x26AB;&lt;/a&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;a name=&quot;movedpara_6_0_rhs&quot;&gt;&lt;/a&gt;== Client-Server-Kommunikation ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;center&amp;gt;&#039;&#039;&amp;lt;length&amp;gt;&amp;lt;type&amp;gt;&amp;lt;data&amp;gt;&#039;&#039;,&amp;lt;/center&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Besitzt das lokal installierte Napster-Programm keine Registrierungsdaten, so werden diese beim ersten Starten des Programms vom Nutzer verlangt, um dann die Nachricht &#039;&#039;6 new user login&#039;&#039; mit dem Inhalt &#039;&#039;&amp;lt;nick&amp;gt; &amp;lt;pass&amp;gt; &amp;lt;port&amp;gt; &quot;&amp;lt;client-info&amp;gt;&quot; &amp;lt;speed&amp;gt; &amp;lt;email-address&amp;gt;&#039;&#039; an den Server zu senden. Zuvor wird überprüft mit &#039;&#039;7	nick check &amp;lt;nick&amp;gt;, ob der Nutzername gültig ist und entweder mit &#039;&#039;8 nickname not registered&#039;&#039;, &#039;&#039;9 nickname already registered&#039;&#039;, oder &#039;&#039;10 (0x0a) invalid nickname&#039;&#039; quittiert. Beim späteren login mittels &#039;&#039;2 login&#039;&#039; mit dem Inhalt &#039;&#039;&amp;lt;nick&amp;gt; &amp;lt;pass&amp;gt; &amp;lt;port&amp;gt; &quot;&amp;lt;client-info&amp;gt;&quot; &amp;lt;speed&amp;gt;&#039;&#039; wird nur die e-mail-Adresse weggelassen. &#039;&#039;&amp;lt;speed&amp;gt;&#039;&#039; ist eine Kodierung von 0 bis 10 für die unterschiedlichen Verbindungsgeschwindigkeiten von 14,4kbit/s-Modem bis T3 oder größer bzw. unbekannt. &#039;&#039;&quot;&amp;lt;client-info&amp;gt;&quot;&#039;&#039; enthält die Versionsnummer vom installierten Napster. Eine erfolgreiche Anmeldung am Server wird durch die Nachricht &#039;&#039;3 login ack&#039;&#039; und der bei der Registrierung angegebenen E-mail-Adresse dem Klienten mitgeteilt. Nach der Anmeldung übermittelt der Klient eine Liste der lokal verfügbaren Dateien an den Server: &#039;&#039;100 (0x64) client notification of shared file&#039;&#039; mit dem Inhalt &#039;&#039;&quot;&amp;lt;filename&amp;gt;&quot; &amp;lt;md5&amp;gt; &amp;lt;size&amp;gt; &amp;lt;bitrate&amp;gt; &amp;lt;frequency&amp;gt; &amp;lt;time&amp;gt;&#039;&#039;, zum Beispiel &#039;&#039;&quot;beispiel band - beispiel song.mp3&quot; a92870e0d41bc8a698cf2f0a1ddfeac6 1234567 128 44100 83&#039;&#039;.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;a class=&quot;mw-diff-movedpara-left&quot; title=&quot;Paragraph was moved. Click to jump to new location.&quot; href=&quot;#movedpara_4_0_rhs&quot;&gt;&amp;#x26AB;&lt;/a&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;a name=&quot;movedpara_9_0_lhs&quot;&gt;&lt;/a&gt;wobei &#039;&#039;&amp;lt;length&amp;gt;&#039;&#039; und &#039;&#039;&amp;lt;type&amp;gt;&#039;&#039; jeweils 2 byte lang sind, in little-endian kodiert. Der Wert &#039;&#039;&amp;lt;length&amp;gt;&#039;&#039;  gibt die Länge von &#039;&#039;&amp;lt;data&amp;gt;&#039;&#039; an, &#039;&#039;&amp;lt;type&amp;gt;&#039;&#039; definiert den Typ der Nachricht. Die Zeichen „&amp;lt;&amp;gt;“ dienen nur der besseren Veranschaulichung, die einzelnen Abschnitte werden duch Leerzeichen (ASCII 32) getrennt. Für die einzelnen Typen von Nachrichten möchte ich auf die [http://opennap.sourceforge.net/napster.txt offene Spezifikation] von drscholl verweisen, die vom 7.April 2001 datiert ist. Da es nie eine Offenlegung des Protokolls gab, war man auf die Analyse des Protokolls während der Nutzung angewiesen.&lt;/div&gt;&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-added&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Client-Client-Kommunikation ==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Client-Client-Kommunikation ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der eigentliche Dateitransfer findet zwischen den Klienten selbst statt, dafür gibt es vier Transfermodi: Upload, Download, Firewalled Upload und Firewalled Download. Im Normalfall stellt der Client, der die Datei herunterladen möchte, mit dem bereitstellenden Client zum dortigen data-port eine Verbindung her. Sollte der Sender hinter einer Firewall sein, so muß er die Datei an den Empfänger „pushen“. &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der eigentliche Dateitransfer findet zwischen den Klienten selbst statt, dafür gibt es vier Transfermodi: Upload, Download, Firewalled Upload und Firewalled Download. Im Normalfall stellt der Client, der die Datei herunterladen möchte, mit dem bereitstellenden Client zum dortigen data-port eine Verbindung her. Sollte der Sender hinter einer Firewall sein, so muß er die Datei an den Empfänger „pushen“. &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dneumann</name></author>
	</entry>
	<entry>
		<id>https://sarwiki.informatik.hu-berlin.de/index.php?title=Napster&amp;diff=5049&amp;oldid=prev</id>
		<title>Dneumann: /* Client-Client-Browsing */</title>
		<link rel="alternate" type="text/html" href="https://sarwiki.informatik.hu-berlin.de/index.php?title=Napster&amp;diff=5049&amp;oldid=prev"/>
		<updated>2006-03-02T15:44:53Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Client-Client-Browsing&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:44, 2 March 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 29:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 29:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Client-Client-Browsing ===&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Client-Client-Browsing ===&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Ab Version 2.0 Beta 8 unterstützte Napster das sogenannte Client-Client-Browsing, womit Nutzer das Angebot von Musikdateien eines anderen Nutzers durchstöbern konnten. Mit der Nachricht &#039;&#039;640 &amp;lt;nick&amp;gt;&#039;&#039; an den Server sendet der Server &#039;&#039;640 &amp;lt;requester&amp;gt;&#039;&#039; an den Empfänger &#039;&#039;&amp;lt;nick&amp;gt;&#039;&#039;. Bewilligt &#039;&#039;&amp;lt;nick&amp;gt;&#039;&#039; den Browse-Request, sendet dieser &#039;&#039;641 &amp;lt;requestor&amp;gt;&#039;&#039; und erhält vom Server die Antwort &#039;&#039;641 &amp;lt;nick&amp;gt; &amp;lt;ip&amp;gt; &amp;lt;port&amp;gt;&#039;&#039; Falls ein Fehler auftritt oder keine Einwilligung besteht wird vom Server an den Anfragenden ein &#039;&#039;642 direct browse error&#039;&#039; mit dem Inhalt &#039;&#039;&amp;lt;nick&amp;gt; &quot;message&quot;&#039;&#039; verschickt. Sonst wird eine TCP-Verbindung zu IP:Port aufgebaut, und der Anfragende muss mit einem ASCII-Zeichen &quot;1&quot; bestätigen, gefolgt von dem String &#039;&#039;GETLIST&#039;&#039;. Der Uploader antwortet mit &amp;lt;nick&amp;gt; und einem Zeilenumbruchzeichen (\n), gefolgt von einer Liste von &#039;&#039;100 (0x64) client notification of shared file&#039;&#039; mit dem Inhalt &quot;&amp;lt;filename&amp;gt;&quot; &amp;lt;md5&amp;gt; &amp;lt;size&amp;gt; &amp;lt;bitrate&amp;gt; &amp;lt;frequency&amp;gt; &amp;lt;time&amp;gt;, und einem Zeilenumbuch als Trennungszeichen. Am Ende der Liste wird ein weiterer Zeilenumbruch eingefügt und die Verbindung beendet. Dies ist das gleiche Vorgehen wie bei der Anmeldung nach dem Login am Server zum Bekanntmachen der zum Sharen verfügbaren lokalen Dateien.&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Ab Version 2.0 Beta 8 unterstützte Napster das sogenannte Client-Client-Browsing, womit Nutzer das Angebot von Musikdateien eines anderen Nutzers durchstöbern konnten. Mit der Nachricht &#039;&#039;640 &amp;lt;nick&amp;gt;&#039;&#039; an den Server sendet der Server &#039;&#039;640 &amp;lt;requester&amp;gt;&#039;&#039; an den Empfänger &#039;&#039;&amp;lt;nick&amp;gt;&#039;&#039;. Bewilligt &#039;&#039;&amp;lt;nick&amp;gt;&#039;&#039; den Browse-Request, sendet dieser &#039;&#039;641 &amp;lt;requestor&amp;gt;&#039;&#039; und erhält vom Server die Antwort &#039;&#039;641 &amp;lt;nick&amp;gt; &amp;lt;ip&amp;gt; &amp;lt;port&amp;gt;&#039;&#039; Falls ein Fehler auftritt oder keine Einwilligung besteht wird vom Server an den Anfragenden ein &#039;&#039;642 direct browse error&#039;&#039; mit dem Inhalt &#039;&#039;&amp;lt;nick&amp;gt; &quot;message&quot;&#039;&#039; verschickt. Sonst wird eine TCP-Verbindung zu IP:Port aufgebaut, und der Anfragende muss mit einem ASCII-Zeichen &quot;1&quot; bestätigen, gefolgt von dem String &#039;&#039;GETLIST&#039;&#039;. Der Uploader antwortet mit &amp;lt;nick&amp;gt; und einem Zeilenumbruchzeichen (\n), gefolgt von einer Liste von &#039;&#039;100 (0x64) client notification of shared file&#039;&#039; mit dem Inhalt &quot;&amp;lt;filename&amp;gt;&quot; &amp;lt;md5&amp;gt; &amp;lt;size&amp;gt; &amp;lt;bitrate&amp;gt; &amp;lt;frequency&amp;gt; &amp;lt;time&amp;gt;, und einem Zeilenumbuch als Trennungszeichen. Am Ende der Liste wird ein weiterer Zeilenumbruch eingefügt und die Verbindung beendet. Dies ist das gleiche Vorgehen wie bei der Anmeldung nach dem Login am Server zum Bekanntmachen der zum Sharen verfügbaren lokalen Dateien.&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Sollte der Uploader hinter einer Firewall sich befinden, muss die Datei an den anfragenden Klienten &#039;&#039;gepusht&#039;&#039; werden, also eine ausgehende TCP-Verbindung etabliert werden mit dem String &#039;&#039;SENDLIST&#039;&#039; als einzigen Unterschied zu obigem Vorgehen.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Sollte der Uploader hinter einer Firewall sich befinden, muss die Datei an den anfragenden Klienten &#039;&#039;gepusht&#039;&#039; werden, also eine ausgehende TCP-Verbindung etabliert werden mit dem String &#039;&#039;SENDLIST&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039; anstatt &#039;&#039;GETLIST&lt;/ins&gt;&#039;&#039; als einzigen Unterschied zu obigem Vorgehen.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Open Napster=&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Open Napster=&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dneumann</name></author>
	</entry>
	<entry>
		<id>https://sarwiki.informatik.hu-berlin.de/index.php?title=Napster&amp;diff=5048&amp;oldid=prev</id>
		<title>Dneumann: /* Client-Client-Browsing */</title>
		<link rel="alternate" type="text/html" href="https://sarwiki.informatik.hu-berlin.de/index.php?title=Napster&amp;diff=5048&amp;oldid=prev"/>
		<updated>2006-03-02T15:40:38Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Client-Client-Browsing&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:40, 2 March 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 28:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 28:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Client-Client-Browsing ===&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Client-Client-Browsing ===&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Ab Version 2.0 Beta 8 unterstützte Napster das sogenannte Client-Client-Browsing, womit Nutzer das Angebot von Musikdateien eines anderen Nutzers durchstöbern konnten. Mit der Nachricht &#039;&#039;640 &amp;lt;nick&amp;gt;&#039;&#039; an den Server sendet der Server &#039;&#039;640 &amp;lt;requester&amp;gt;&#039;&#039; an den Empfänger &#039;&#039;&amp;lt;nick&amp;gt;&#039;&#039;. Bewilligt &#039;&#039;&amp;lt;nick&amp;gt;&#039;&#039; den Browse-Request, sendet dieser &#039;&#039;641 &amp;lt;requestor&amp;gt;&#039;&#039; und erhält vom Server die Antwort &#039;&#039;641 &amp;lt;nick&amp;gt; &amp;lt;ip&amp;gt; &amp;lt;port&amp;gt;&#039;&#039; Falls ein Fehler auftritt oder keine Einwilligung besteht wird vom Server an den Anfragenden ein &#039;&#039;642 direct browse error&#039;&#039; mit dem Inhalt &#039;&#039;&amp;lt;nick&amp;gt; &quot;message&quot;&#039;&#039; verschickt. Sonst wird eine TCP-Verbindung zu IP:Port aufgebaut, und der Anfragende muss mit einem ASCII-Zeichen &quot;1&quot; bestätigen, gefolgt von dem String &#039;&#039;GETLIST&#039;&#039;. Der Uploader antwortet mit &amp;lt;nick&amp;gt; und einem Zeilenumbruchzeichen (\n), gefolgt von einer Liste von &#039;&#039;100 (0x64) client notification of shared file&#039;&#039; mit dem Inhalt &quot;&amp;lt;filename&amp;gt;&quot; &amp;lt;md5&amp;gt; &amp;lt;size&amp;gt; &amp;lt;bitrate&amp;gt; &amp;lt;frequency&amp;gt; &amp;lt;time&amp;gt;, und einem Zeilenumbuch als Trennungszeichen. Am Ende der Liste wird ein weiterer Zeilenumbruch eingefügt und die Verbindung beendet. Dies ist das gleiche Vorgehen wie bei der Anmeldung nach dem Login am Server zum Bekanntmachen der zum Sharen verfügbaren lokalen Dateien.&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Sollte der Uploader hinter einer Firewall sich befinden, muss die Datei an den anfragenden Klienten &#039;&#039;gepusht&#039;&#039; werden, also eine ausgehende TCP-Verbindung etabliert werden mit dem String &#039;&#039;SENDLIST&#039;&#039; als einzigen Unterschied zu obigem Vorgehen.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Open Napster=&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Open Napster=&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dneumann</name></author>
	</entry>
	<entry>
		<id>https://sarwiki.informatik.hu-berlin.de/index.php?title=Napster&amp;diff=5047&amp;oldid=prev</id>
		<title>Dneumann: /* Firewalled Downloading */</title>
		<link rel="alternate" type="text/html" href="https://sarwiki.informatik.hu-berlin.de/index.php?title=Napster&amp;diff=5047&amp;oldid=prev"/>
		<updated>2006-03-02T15:12:58Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Firewalled Downloading&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:12, 2 March 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 25:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 25:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Firewalled Downloading ===&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Firewalled Downloading ===&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Wie oben beschrieben, wenn der entfernte Klient in der &#039;&#039;204 get ack&#039;&#039; als Data Port den Wert 0 erhält, so bedeutet dies, dass der anbietende Klient hinter einer Firewall sich befindet und diese keine eingehenden Verbindungen zuläßt. Nun muss an den Server die Nachricht &#039;&#039;500 alternate download request&#039;&#039; mit &#039;&#039;&amp;lt;nick&amp;gt; &quot;&amp;lt;filename&amp;gt;&quot;&#039;&#039; gesendet werden, damit der hochladende Klient die Datei an den Empfänger &#039;&#039;pusht&#039;&#039;, indem der Server ihn mit der Nachricht &#039;&#039;501 alternate download ack&#039;&#039; mit dem Inhalt &#039;&#039;&amp;lt;nick&amp;gt; &amp;lt;ip&amp;gt; &amp;lt;port&amp;gt; &quot;&amp;lt;filename&amp;gt;&quot; &amp;lt;md5&amp;gt; &amp;lt;speed&amp;gt;&#039;&#039;, identisch zum normalen Download-Ack 204, damit beauftragt. Der Anbieter startet nun den den Aufbau der TCP-&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Verbundung&lt;/del&gt; zu IP:Port, erhalten mit der 501-Nachricht. Der Downloader bestätigt mit dem dem ASCII-Zeichen &#039;1&#039;. Nun sendet der Uploader den String &#039;SEND&#039; in einem Paket, gefolgt von &amp;lt;mynick&amp;gt; &quot;&amp;lt;filename&amp;gt;&quot; &amp;lt;size&amp;gt;, der vom Downloader entweder mit einem Byte-Offset in ASCII-Ziffern, bei dem der Transfer starten soll, wobei 0 der Anfang einer Datei darstellt, oder eine Fehlermeldung wie &quot;Invalid Request&quot; erwidert wird. Beide senden an den Server &#039;&#039;218 downloading file/219 download complete&#039;&#039;-Nachrichten bzw. &#039;&#039;220 uploading file/221 upload complete&#039;&#039;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Wie oben beschrieben, wenn der entfernte Klient in der &#039;&#039;204&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; (0xcc)&lt;/ins&gt; get ack&#039;&#039; als Data Port den Wert 0 erhält, so bedeutet dies, dass der anbietende Klient hinter einer Firewall sich befindet und diese keine eingehenden Verbindungen zuläßt. Nun muss an den Server die Nachricht &#039;&#039;500&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; (0x1f4)&lt;/ins&gt; alternate download request&#039;&#039; mit &#039;&#039;&amp;lt;nick&amp;gt; &quot;&amp;lt;filename&amp;gt;&quot;&#039;&#039; gesendet werden, damit der hochladende Klient die Datei an den Empfänger &#039;&#039;pusht&#039;&#039;, indem der Server ihn mit der Nachricht &#039;&#039;501&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; (0x1f5)&lt;/ins&gt; alternate download ack&#039;&#039; mit dem Inhalt &#039;&#039;&amp;lt;nick&amp;gt; &amp;lt;ip&amp;gt; &amp;lt;port&amp;gt; &quot;&amp;lt;filename&amp;gt;&quot; &amp;lt;md5&amp;gt; &amp;lt;speed&amp;gt;&#039;&#039;, identisch zum normalen Download-Ack 204, damit beauftragt. Der Anbieter startet nun den den Aufbau der TCP-&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Verbindung&lt;/ins&gt; zu IP:Port, erhalten mit der 501-Nachricht. Der Downloader bestätigt mit dem dem ASCII-Zeichen &#039;1&#039;. Nun sendet der Uploader den String &#039;SEND&#039; in einem Paket, gefolgt von &amp;lt;mynick&amp;gt; &quot;&amp;lt;filename&amp;gt;&quot; &amp;lt;size&amp;gt;, der vom Downloader entweder mit einem Byte-Offset in ASCII-Ziffern, bei dem der Transfer starten soll, wobei 0 der Anfang einer Datei darstellt, oder eine Fehlermeldung wie &quot;Invalid Request&quot; erwidert wird. Beide senden an den Server &#039;&#039;218&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; (0xda)&lt;/ins&gt; downloading file/219 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(0xdb)&lt;/ins&gt;download complete&#039;&#039;-Nachrichten bzw. &#039;&#039;220 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(0xdc)&lt;/ins&gt;uploading file/221 &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(0xdd)&lt;/ins&gt;upload complete&#039;&#039;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Client-Client-Browsing ===&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Client-Client-Browsing ===&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dneumann</name></author>
	</entry>
	<entry>
		<id>https://sarwiki.informatik.hu-berlin.de/index.php?title=Napster&amp;diff=5046&amp;oldid=prev</id>
		<title>Dneumann: /* Firewalled Downloading */</title>
		<link rel="alternate" type="text/html" href="https://sarwiki.informatik.hu-berlin.de/index.php?title=Napster&amp;diff=5046&amp;oldid=prev"/>
		<updated>2006-03-02T15:10:30Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Firewalled Downloading&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:10, 2 March 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 25:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 25:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Firewalled Downloading ===&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Firewalled Downloading ===&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Wie oben beschrieben, wenn der entfernte Klient in der &#039;&#039;204 get ack&#039;&#039; als Data Port den Wert 0 erhält, so bedeutet dies, dass der anbietende Klient hinter einer Firewall sich befindet und diese keine eingehenden Verbindungen zuläßt. Nun muss an den Server die Nachricht &#039;&#039;500 alternate download request&#039;&#039; mit &#039;&#039;&amp;lt;nick&amp;gt; &quot;&amp;lt;filename&amp;gt;&quot;&#039;&#039; gesendet werden, damit der hochladende Klient die Datei an den Empfänger &#039;&#039;pusht&#039;&#039;, indem der Server ihn mit der Nachricht &#039;&#039;501 alternate download ack&#039;&#039; mit dem Inhalt &#039;&#039;&amp;lt;nick&amp;gt; &amp;lt;ip&amp;gt; &amp;lt;port&amp;gt; &quot;&amp;lt;filename&amp;gt;&quot; &amp;lt;md5&amp;gt; &amp;lt;speed&amp;gt;&#039;&#039;, identisch zum normalen Download-Ack 204, damit beauftragt. Der Anbieter startet nun den den Aufbau der TCP-Verbundung zu IP:Port, erhalten mit der 501-Nachricht. Der Downloader bestätigt mit dem dem ASCII-Zeichen &#039;1&#039;. Nun sendet der Uploader den String &#039;SEND&#039; in einem Paket, gefolgt von &amp;lt;mynick&amp;gt; &quot;&amp;lt;filename&amp;gt;&quot; &amp;lt;size&amp;gt;, der vom Downloader entweder mit einem Byte-Offset in ASCII-Ziffern, bei dem der Transfer starten soll, wobei 0 der Anfang einer Datei darstellt, oder eine Fehlermeldung wie &quot;Invalid Request&quot; erwidert wird. Beide senden an den Server &#039;&#039;218 downloading file/219 download complete&#039;&#039;-Nachrichten bzw. &#039;&#039;220 uploading file/221 upload complete&#039;&#039;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Client-Client-Browsing ===&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Client-Client-Browsing ===&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dneumann</name></author>
	</entry>
	<entry>
		<id>https://sarwiki.informatik.hu-berlin.de/index.php?title=Napster&amp;diff=5036&amp;oldid=prev</id>
		<title>Dneumann: /* Architektur */</title>
		<link rel="alternate" type="text/html" href="https://sarwiki.informatik.hu-berlin.de/index.php?title=Napster&amp;diff=5036&amp;oldid=prev"/>
		<updated>2006-03-02T14:40:40Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Architektur&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:40, 2 March 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 10:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 10:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Architektur=&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Architektur=&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Napster ist eine Tauschbörse der ersten Generation, die zum Auffinden von Dateien des Typs mp3 einen zentralen Server benötigt, der zwischen den anbietenden und suchenden Klienten vermittelt. Erst nach Erhalt von Suchergebnissen vom Napster-Server kann der Musikdownload starten.&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Napster ist eine Tauschbörse der ersten Generation, die zum Auffinden von Dateien des Typs mp3 einen&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; [http://sarwiki.informatik.hu-berlin.de/Napster#Client-Server-Kommunikation&lt;/ins&gt; zentralen Server&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/ins&gt; benötigt, der zwischen den anbietenden und suchenden Klienten vermittelt. Erst nach Erhalt von Suchergebnissen vom Napster-Server kann der&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; [http://sarwiki.informatik.hu-berlin.de/Napster#Client-Client-Kommunikation&lt;/ins&gt; Musikdownload&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]&lt;/ins&gt; starten.&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:Napster_hierarchie.gif|Napsters Architektur]]&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:Napster_hierarchie.gif|Napsters Architektur]]&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Client-Server-Kommunikation ==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Client-Server-Kommunikation ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dneumann</name></author>
	</entry>
	<entry>
		<id>https://sarwiki.informatik.hu-berlin.de/index.php?title=Napster&amp;diff=5032&amp;oldid=prev</id>
		<title>Dneumann: /* Architektur */</title>
		<link rel="alternate" type="text/html" href="https://sarwiki.informatik.hu-berlin.de/index.php?title=Napster&amp;diff=5032&amp;oldid=prev"/>
		<updated>2006-03-02T14:33:34Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Architektur&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:33, 2 March 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 10:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 10:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Architektur=&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Architektur=&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Napster ist eine Tauschbörse der ersten Generation, die zum Auffinden von Dateien des Typs mp3 einen zentralen Server benötigt. &amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Napster ist eine Tauschbörse der ersten Generation, die zum Auffinden von Dateien des Typs mp3 einen zentralen Server benötigt&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;, der zwischen den anbietenden und suchenden Klienten vermittelt&lt;/ins&gt;. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Erst nach Erhalt von Suchergebnissen vom Napster-Server kann der Musikdownload starten.&lt;/ins&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:Napster_hierarchie.gif|Napsters Architektur]]&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:Napster_hierarchie.gif|Napsters Architektur]]&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Client-Server ==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Client-Server&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-Kommunikation&lt;/ins&gt; ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Alle in diesem Netz partizipierenden Klienten schicken beim Starten eine Hashliste der lokal freigegebenen Dateien an den Server server.napster.com, der somit einen umfassenden zentralen temporären Suchindex aufbauen kann. Das Hashen geschieht mittels MD5 der ersten ca. 300,000bytes ab dem FrameSync im mp3. &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Alle in diesem Netz partizipierenden Klienten schicken beim Starten eine Hashliste der lokal freigegebenen Dateien an den Server server.napster.com, der somit einen umfassenden zentralen temporären Suchindex aufbauen kann. Das Hashen geschieht mittels MD5 der ersten ca. 300,000bytes ab dem FrameSync im mp3. &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Für die Client-Server-Kommunikation wird TCP eingesetzt, typischerweise auf den Ports 8888 und 7777. Jede Nachricht hat die Form&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Für die Client-Server-Kommunikation wird TCP eingesetzt, typischerweise auf den Ports 8888 und 7777. Jede Nachricht hat die Form&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 18:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 18:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;wobei &#039;&#039;&amp;lt;length&amp;gt;&#039;&#039; und &#039;&#039;&amp;lt;type&amp;gt;&#039;&#039; jeweils 2 byte lang sind, in little-endian kodiert. Der Wert &#039;&#039;&amp;lt;length&amp;gt;&#039;&#039;  gibt die Länge von &#039;&#039;&amp;lt;data&amp;gt;&#039;&#039; an, &#039;&#039;&amp;lt;type&amp;gt;&#039;&#039; definiert den Typ der Nachricht. Die Zeichen „&amp;lt;&amp;gt;“ dienen nur der besseren Veranschaulichung, die einzelnen Abschnitte werden duch Leerzeichen (ASCII 32) getrennt. Für die einzelnen Typen von Nachrichten möchte ich auf die [http://opennap.sourceforge.net/napster.txt offene Spezifikation] von drscholl verweisen, die vom 7.April 2001 datiert ist. Da es nie eine Offenlegung des Protokolls gab, war man auf die Analyse des Protokolls während der Nutzung angewiesen.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;wobei &#039;&#039;&amp;lt;length&amp;gt;&#039;&#039; und &#039;&#039;&amp;lt;type&amp;gt;&#039;&#039; jeweils 2 byte lang sind, in little-endian kodiert. Der Wert &#039;&#039;&amp;lt;length&amp;gt;&#039;&#039;  gibt die Länge von &#039;&#039;&amp;lt;data&amp;gt;&#039;&#039; an, &#039;&#039;&amp;lt;type&amp;gt;&#039;&#039; definiert den Typ der Nachricht. Die Zeichen „&amp;lt;&amp;gt;“ dienen nur der besseren Veranschaulichung, die einzelnen Abschnitte werden duch Leerzeichen (ASCII 32) getrennt. Für die einzelnen Typen von Nachrichten möchte ich auf die [http://opennap.sourceforge.net/napster.txt offene Spezifikation] von drscholl verweisen, die vom 7.April 2001 datiert ist. Da es nie eine Offenlegung des Protokolls gab, war man auf die Analyse des Protokolls während der Nutzung angewiesen.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Client-Client ==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Client-Client&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;-Kommunikation&lt;/ins&gt; ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der eigentliche Dateitransfer findet zwischen den Klienten selbst statt, dafür gibt es vier Transfermodi: Upload, Download, Firewalled Upload und Firewalled Download. Im Normalfall stellt der Client, der die Datei herunterladen möchte, mit dem bereitstellenden Client zum dortigen data-port eine Verbindung her. Sollte der Sender hinter einer Firewall sein, so muß er die Datei an den Empfänger „pushen“. &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Der eigentliche Dateitransfer findet zwischen den Klienten selbst statt, dafür gibt es vier Transfermodi: Upload, Download, Firewalled Upload und Firewalled Download. Im Normalfall stellt der Client, der die Datei herunterladen möchte, mit dem bereitstellenden Client zum dortigen data-port eine Verbindung her. Sollte der Sender hinter einer Firewall sein, so muß er die Datei an den Empfänger „pushen“. &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Unabhängig vom Modus wird aber zunächst an den Server eine Suchanfrage gerichtet, entweder mittels Nachrichtentyp &#039;&#039;„200 (0xc8) client search request“&#039;&#039; oder &#039;&#039;„211 (0xd3) browse a user&#039;s files“&#039;&#039;.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Unabhängig vom Modus wird aber zunächst an den Server eine Suchanfrage gerichtet, entweder mittels Nachrichtentyp &#039;&#039;„200 (0xc8) client search request“&#039;&#039; oder &#039;&#039;„211 (0xd3) browse a user&#039;s files“&#039;&#039;.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dneumann</name></author>
	</entry>
	<entry>
		<id>https://sarwiki.informatik.hu-berlin.de/index.php?title=Napster&amp;diff=5031&amp;oldid=prev</id>
		<title>Dneumann: /* Geschichte */</title>
		<link rel="alternate" type="text/html" href="https://sarwiki.informatik.hu-berlin.de/index.php?title=Napster&amp;diff=5031&amp;oldid=prev"/>
		<updated>2006-03-02T14:27:45Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Geschichte&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:27, 2 March 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 7:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Geschichte=&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Geschichte=&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Im Herbst 1998 begann der damals 18-jährige Shawn Fanning sein Studium in Informatik an der Bostoner Universität. Dank der vorhandenen Breitbandanbindung ins Internet verbrachte er einen Großteil der Zeit im Studentenwohnheim auf der Suche nach digitalisierter Musik und Gleichgesinnten, die er in der Hackergruppe w00w00 fand, mit der er über den IRC kommunizierte. Durch die unbefriedigende Verfügbarkeit von Musikdateien wuchs in Fanning der Wunsch nach einem Programm, dass die vornehmlich mp3-Dateien direkt zwischen suchenden und anbietenden Nutzern des Internets vermittelt. Im Januar 1999 arbeitete er bereits an seinem persönlichen &quot;Hello World&quot; - er nannte es Napster, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;seinen&lt;/del&gt; Spitznamen im IRC. Unterstützt wurde er über dem IRC &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mit&lt;/del&gt; w00w00, die bei der Programmierung zur Seite standen. Nach nur einem Semester beendete er sein Studium und gründete im Mai 1999 mit seinem voraus schauendem Onkel, der zu jenem Zeitpunkt ein Internet-Schach-Portal betrieb, die Firma Napster Inc. Als im Juni 1999 die erste Beta-Version von Fanning auf seiner Webseite veröffentlicht wurde, luden in nur wenigen Tagen bereits tausende von Enthusiasten die Software herunter. Diese Nutzer erzeugten eine Last auf dem Server, die dieser nicht lang standhielt. Die Firma stellte nun Mitarbeiter ein, unter anderem Jordan Ritter, der sich um die Server-Architektur kümmern sollte und Fanning &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;stellte&lt;/del&gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;im&lt;/del&gt; September 1999 Version 2 von Napster ins Netz. Es kamen erste Beschwerden von Universitäten, die einen massiven Anstieg an Breitbandverkehr feststellen mussten und dies auf Napster zurückführten. Der Umzug der Firma nach Kalifornien folgte im Oktober. Der &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;plötzliche&lt;/del&gt; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Bekanntheitsanstieg&lt;/del&gt; ließ auch die RIAA (Recording Industry Association of America) auf den Plan treten: Sie forderte im November 1999 zum ersten Mal, den Tauschhandel zu unterbinden. Allerdings konnte niemand bei Napster sich vorstellen, dass sie angreifbar wären, da sie Napster, ähnlich wie mp3.lycos.com, als Suchmaschine für Musik sahen.&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Im Herbst 1998 begann der damals 18-jährige Shawn Fanning sein Studium in Informatik an der Bostoner Universität. Dank der vorhandenen Breitbandanbindung ins Internet verbrachte er einen Großteil der Zeit im Studentenwohnheim auf der Suche nach digitalisierter Musik und Gleichgesinnten, die er in der Hackergruppe w00w00 fand, mit der er über den IRC kommunizierte. Durch die&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; für ihn&lt;/ins&gt; unbefriedigende Verfügbarkeit von Musikdateien wuchs in Fanning der Wunsch nach einem Programm, dass die vornehmlich&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; als&lt;/ins&gt; mp3-Dateien&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; verfügbare digitale Musik&lt;/ins&gt; direkt zwischen suchenden und anbietenden Nutzern des Internets vermittelt. Im Januar 1999 arbeitete er bereits an seinem persönlichen &quot;Hello World&quot; - er nannte es Napster, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;seinem&lt;/ins&gt; Spitznamen im IRC. Unterstützt wurde er über dem IRC &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;von&lt;/ins&gt; w00w00, die&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; ihm&lt;/ins&gt; bei der Programmierung zur Seite standen. Nach nur einem Semester beendete er sein Studium und gründete im Mai 1999 mit seinem voraus schauendem Onkel, der zu jenem Zeitpunkt ein Internet-Schach-Portal betrieb, die Firma Napster Inc. Als im Juni 1999 die erste Beta-Version von Fanning auf seiner Webseite veröffentlicht wurde, luden in nur wenigen Tagen bereits tausende von Enthusiasten die Software herunter. Diese Nutzer erzeugten eine Last auf dem Server, die dieser nicht lang standhielt. Die Firma stellte nun Mitarbeiter ein, unter anderem Jordan Ritter, der sich um die Server-Architektur kümmern sollte und Fanning &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;programmiert&lt;/ins&gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;bis&lt;/ins&gt; September 1999 Version 2 von Napster ins Netz. Es kamen erste Beschwerden von Universitäten, die einen massiven Anstieg an Breitbandverkehr feststellen mussten und dies auf Napster zurückführten. Der Umzug der Firma nach Kalifornien folgte im Oktober. Der &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;plötzlich angestiegene&lt;/ins&gt; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Bekanntheit&lt;/ins&gt; ließ auch die RIAA (Recording Industry Association of America) auf den Plan treten: Sie forderte im November 1999 zum ersten Mal, den Tauschhandel zu unterbinden. Allerdings konnte niemand bei Napster sich vorstellen, dass sie angreifbar wären, da sie Napster, ähnlich wie mp3.lycos.com, als Suchmaschine für Musik sahen.&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Architektur=&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Architektur=&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dneumann</name></author>
	</entry>
	<entry>
		<id>https://sarwiki.informatik.hu-berlin.de/index.php?title=Napster&amp;diff=5030&amp;oldid=prev</id>
		<title>Dneumann: /* Architektur */</title>
		<link rel="alternate" type="text/html" href="https://sarwiki.informatik.hu-berlin.de/index.php?title=Napster&amp;diff=5030&amp;oldid=prev"/>
		<updated>2006-03-02T14:20:35Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Architektur&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 14:20, 2 March 2006&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 10:&lt;/td&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 10:&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Architektur=&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Architektur=&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Napster ist eine Tauschbörse der ersten Generation, die zum Auffinden von Dateien des Typs mp3 einen zentralen Server benötigt. &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Napster ist eine Tauschbörse der ersten Generation, die zum Auffinden von Dateien des Typs mp3 einen zentralen Server benötigt. &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td colspan=&quot;2&quot; class=&quot;diff-empty diff-side-deleted&quot;&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Image:Napster_hierarchie.gif|Napsters Architektur]]&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Client-Server ==&lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Client-Server ==&lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Alle in diesem Netz partizipierenden Klienten schicken beim Starten eine Hashliste der lokal freigegebenen Dateien an den Server server.napster.com, der somit einen umfassenden zentralen temporären Suchindex aufbauen kann. Das Hashen geschieht mittels MD5 der ersten ca. 300,000bytes ab dem FrameSync im mp3. &lt;/div&gt;&lt;/td&gt;
  &lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;
  &lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Alle in diesem Netz partizipierenden Klienten schicken beim Starten eine Hashliste der lokal freigegebenen Dateien an den Server server.napster.com, der somit einen umfassenden zentralen temporären Suchindex aufbauen kann. Das Hashen geschieht mittels MD5 der ersten ca. 300,000bytes ab dem FrameSync im mp3. &lt;/div&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Dneumann</name></author>
	</entry>
</feed>