📄 gnutella协议中文版.htm
字号:
<p class="MsoNormal" style="margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<font size="3"><span lang="EN-US">Number of Kilobytes Shared</span><span style="font-family: 宋体">:本机所有共享文件的空间大小,以</span><span lang="EN-US">K</span><span style="font-family: 宋体">为单位</span></font></p>
<p class="MsoNormal" style="margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<b><span lang="EN-US"><font size="3">Query (0x80)</font></span></b></p>
<p class="MsoNormal" style="margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<span lang="EN-US"><br>
</span><span style="font-family: 宋体"><font size="3">字节偏移</font></span><span lang="EN-US"><font size="3">0
1 2 …<br>
<br>
</font></span></p>
<p class="MsoNormal" style="margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<font size="3"><span lang="EN-US">Minimum Speed </span>
<span style="font-family: 宋体">:最小响应速度,响应的客户机的速度必须在此速度之上(</span>
<span style="font-family: 宋体">以</span><span lang="EN-US">K/</span><span style="font-family: 宋体">秒为单位)</span></font></p>
<p class="MsoNormal" style="text-indent: -63pt; margin-left: 63pt; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<font size="3"><span lang="EN-US">Search criteria</span><span style="font-family: 宋体">:查询关键字,一个零结尾的字符串。这个字符串的最大长度由描述头的</span><span lang="EN-US">Payload
Length</span><span style="font-family: 宋体">负载长度规定。</span></font></p>
<p class="MsoNormal" style="margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<b><span lang="EN-US"><font size="3">QueryHit (0x81)</font></span></b></p>
<p class="MsoNormal" style="margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<span lang="EN-US"><font size="3"> </font></span></p>
<p class="MsoNormal" style="margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<span lang="EN-US"><font size="3"> </font></span></p>
<p class="MsoNormal" style="margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<font size="3"><span lang="EN-US">Number of Hits:</span><span style="font-family: 宋体">符合搜索条件的结果数</span></font></p>
<p class="MsoNormal" style="margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<font size="3"><span lang="EN-US">Port:</span><span style="font-family: 宋体">能接受连接的客户机的端口</span></font></p>
<p class="MsoNormal" style="margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<font size="3"><span lang="EN-US">IP Address :</span><span style="font-family: 宋体">响应客户机的地址(此数据区高位字节在后)</span></font></p>
<p class="MsoNormal" style="margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<font size="3"><span lang="EN-US">Speed :</span><span style="font-family: 宋体">响应客户机的连线速度(以</span><span lang="EN-US">K/</span><span style="font-family: 宋体">秒为单位)</span></font></p>
<p class="MsoNormal" style="text-indent: -44.95pt; margin-left: 44.95pt; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<font size="3"><span lang="EN-US">Result Set :</span><span style="font-family: 宋体">响应查询的结果集。其中包含一个</span><span lang="EN-US">Number_of_Hits</span><span style="font-family: 宋体">的部分,其中每个都包含以下结构</span></font></p>
<p class="MsoNormal" style="margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<span lang="EN-US"><font size="3"> </font></span></p>
<p class="MsoNormal" style="margin-left: 52.5pt; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<font size="3"><span lang="EN-US">File Index</span><span style="font-family: 宋体">:一个数字,由响应的客户机指定,用来唯一标示响应的文件结果</span></font></p>
<p class="MsoNormal" style="margin-left: 52.5pt; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<font size="3"><span lang="EN-US">File Size</span><span style="font-family: 宋体">:与</span><span lang="EN-US">File
index</span><span style="font-family: 宋体">相符的文件的大小</span></font></p>
<p class="MsoNormal" style="margin-left: 52.5pt; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<font size="3"><span lang="EN-US">File Name</span><span style="font-family: 宋体">:已双零结尾的与</span><span lang="EN-US">File
index</span><span style="font-family: 宋体">相符的文件的名字</span></font></p>
<p class="MsoNormal" style="text-indent: -63pt; margin-left: 63pt; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<span lang="EN-US"><font size="3"> </font></span></p>
<p class="MsoNormal" style="text-indent: -63pt; margin-left: 63pt; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<font size="3"><span lang="EN-US">Result Set</span><span style="font-family: 宋体">的长度由描述头的</span><span lang="EN-US">Payload
Length</span><span style="font-family: 宋体">负载长度规定。</span></font></p>
<p class="MsoNormal" style="margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<span lang="EN-US"><font size="3"> </font></span></p>
<p class="MsoNormal" style="margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<font size="3"><span lang="EN-US">Servent Identifier:</span><span style="font-family: 宋体">一个</span><span lang="EN-US">16</span><span style="font-family: 宋体">位的字符串用来唯一标示网络上的客户机。功能上用来标示客户机的网络地址。用在</span><span lang="EN-US">Push</span><span style="font-family: 宋体">指令上。</span></font></p>
<p class="MsoNormal" style="margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<span lang="EN-US"><font size="3"> </font></span></p>
<p class="MsoNormal" style="margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<font size="3"><span lang="EN-US">QueryHit</span><span style="font-family: 宋体">指令只有在收到一个</span><span lang="EN-US">Query</span><span style="font-family: 宋体">指令后响应才发出。一个客户机只有在它严格符合查询关键字时才对一个</span><span lang="EN-US">Query</span><span style="font-family: 宋体">指令进行响应。</span></font></p>
<p class="MsoNormal" style="margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<span lang="EN-US"><font size="3"> </font></span></p>
<p class="MsoNormal" style="margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<b><span lang="EN-US"><font size="3">Push (0x40)</font></span></b></p>
<p class="MsoNormal" style="margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<span lang="EN-US" style="font-size: 9pt"> </span></p>
<p class="MsoNormal" style="margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<font size="3"><span lang="EN-US">Servent Identifier</span><span style="font-family: 宋体">:一个</span><span lang="EN-US">16</span><span style="font-family: 宋体">位的字符串用来唯一标示网络上的客户机,该客户机请求下载带有</span><span lang="EN-US">File_Index</span><span style="font-family: 宋体">的文件。</span></font><span lang="EN-US"><br>
<font size="3">File Index</font></span><font size="3"><span style="font-family: 宋体">:下载目标客户机的文件的唯一标识,初始化的客户机应该根据返回的</span><span lang="EN-US">QueryHit</span><span style="font-family: 宋体">指令的</span><span lang="EN-US">File_Index</span><span style="font-family: 宋体">中的标识设置。</span></font></p>
<p class="MsoNormal" style="margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<font size="3"><span lang="EN-US">IP Address</span><span style="font-family: 宋体">:下载带有</span><span lang="EN-US">File_Index</span><span style="font-family: 宋体">的文件的客户机的地址(此数据区高位字节在后)</span></font></p>
<p class="MsoNormal" style="margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<font size="3"><span lang="EN-US">Port</span><span style="font-family: 宋体">:下载带有</span><span lang="EN-US">File_Index</span><span style="font-family: 宋体">的文件的客户机的端口</span></font></p>
<p class="MsoNormal" style="margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<span lang="EN-US"><font size="3"> </font></span></p>
<p class="MsoNormal" style="margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<b><span style="font-size: 12pt; font-family: 宋体">描述符路由</span></b></p>
<p class="MsoNormal" style="margin-left: 0cm; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<font size="3"><span lang="EN-US">Gnutella</span><span style="font-family: 宋体">网络的点对点本质要求客户机合适地路由网络(包括查询、查询响应、推送文件请求等)。一个好的客户机应该根据以下的规则路由协议的描述符:</span></font></p>
<p class="MsoNormal" style="text-indent: -18pt; margin-left: 18pt; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<span lang="EN-US"><font size="3">1.</font><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; font-family: Times New Roman">
</span></span><font size="3"><span lang="EN-US">Pong</span><span style="font-family: 宋体">描述符应该只沿进入的</span><span lang="EN-US">Ping</span><span style="font-family: 宋体">描述符的路径发送。这样可以保证只有路由</span><span lang="EN-US">Ping</span><span style="font-family: 宋体">描述符的客户机将看到的</span><span lang="EN-US">Pong</span><span style="font-family: 宋体">描述符作为响应返回。一个客户机如果收到一个带有描述符</span><span lang="EN-US">ID</span><span style="font-family: 宋体">=</span><span lang="EN-US">n</span><span style="font-family: 宋体">的</span><span lang="EN-US">Pong</span><span style="font-family: 宋体">描述符,但没有看到一个带有描述符</span><span lang="EN-US">ID=n</span><span style="font-family: 宋体">的</span><span lang="EN-US">Ping</span><span style="font-family: 宋体">描述符的,应该把</span><span lang="EN-US">Pong</span><span style="font-family: 宋体">描述符从网络中删除。</span></font></p>
<p class="MsoNormal" style="text-indent: -18pt; margin-left: 18pt; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<span lang="EN-US"><font size="3">2.</font><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; font-family: Times New Roman">
</span></span><font size="3"><span lang="EN-US">QueryHit</span><span style="font-family: 宋体">描述符应该只沿进入的</span><span lang="EN-US">Query</span><span style="font-family: 宋体">描述符的路径发送。这样可以保证只有路由</span><span lang="EN-US">Query</span><span style="font-family: 宋体">描述符的客户机将看到的</span><span lang="EN-US">Pong</span><span style="font-family: 宋体">描述符作为响应返回。一个客户机如果收到一个带有描述符</span><span lang="EN-US">ID</span><span style="font-family: 宋体">=</span><span lang="EN-US">n</span><span style="font-family: 宋体">的</span><span lang="EN-US">QueryHit</span><span style="font-family: 宋体">描述符,但没有看到一个带有描述符</span><span lang="EN-US">ID=n</span><span style="font-family: 宋体">的</span><span lang="EN-US">Query</span><span style="font-family: 宋体">描述符的,应该把</span><span lang="EN-US">Pong</span><span style="font-family: 宋体">描述符从网络中删除。</span></font></p>
<p class="MsoNormal" style="text-indent: -18pt; margin-left: 18pt; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<span lang="EN-US"><font size="3">3.</font><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; font-family: Times New Roman">
</span></span><font size="3"><span lang="EN-US">Push</span><span style="font-family: 宋体">描述符应该只沿进入的</span><span lang="EN-US">Query</span><span style="font-family: 宋体">描述符的路径发送。这样可以保证只有路由</span><span lang="EN-US">QueryHit</span><span style="font-family: 宋体">描述符的客户机将看到的</span><span lang="EN-US">Pong</span><span style="font-family: 宋体">描述符作为响应返回。一个客户机如果收到一个带有描述符</span><span lang="EN-US">ID</span><span style="font-family: 宋体">=</span><span lang="EN-US">n</span><span style="font-family: 宋体">的</span><span lang="EN-US">Push</span><span style="font-family: 宋体">描述符,但没有看到一个带有描述符</span><span lang="EN-US">ID=n</span><span style="font-family: 宋体">的</span><span lang="EN-US">QueryHit</span><span style="font-family: 宋体">描述符的,应该把</span><span lang="EN-US">Push</span><span style="font-family: 宋体">描述符从网络中删除。一个客户机如果收到一个带有客户机</span><span lang="EN-US">ID</span><span style="font-family: 宋体">=</span><span lang="EN-US">n</span><span style="font-family: 宋体">的</span><span lang="EN-US">Push</span><span style="font-family: 宋体">描述符,但没有看到一个带有客户机</span><span lang="EN-US">ID=n</span><span style="font-family: 宋体">的</span><span lang="EN-US">QueryHit</span><span style="font-family: 宋体">描述符的,应该把</span><span lang="EN-US">Push</span><span style="font-family: 宋体">描述符从网络中删除。</span><span lang="EN-US">Push</span><span style="font-family: 宋体">描述符通过客户机</span><span lang="EN-US">ID</span><span style="font-family: 宋体">进行路由,而不是通过描述符</span><span lang="EN-US">ID</span><span style="font-family: 宋体">。</span></font></p>
<p class="MsoNormal" style="text-indent: -18pt; margin-left: 18pt; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<span lang="EN-US"><font size="3">4.</font><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; font-family: Times New Roman">
</span></span><font size="3"><span style="font-family: 宋体">一个客户机将通过进来的</span><span lang="EN-US">Ping</span><span style="font-family: 宋体">和</span><span lang="EN-US">Query</span><span style="font-family: 宋体">描述符向前到达所有与它直接相连的客户机,但负责传递进入的</span><span lang="EN-US">Ping</span><span style="font-family: 宋体">和</span><span lang="EN-US">Query</span><span style="font-family: 宋体">的那些客户机除外。</span></font></p>
<p class="MsoNormal" style="text-indent: -18pt; margin-left: 18pt; margin-right: 0cm; margin-top: 0cm; margin-bottom: 0pt">
<span lang="EN-US"><font size="3">5.</font><span style="font-style: normal; font-variant: normal; font-weight: normal; font-size: 7pt; font-family: Times New Roman">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -