|
返答をしなくてはならない接続要求をうけとることを望んでいるサーバントは、
GNUTELLA OK\n\n
としてください。
接続を受け取るために他のいかなる返答は、サーバントの気が進まないことを示します。サーバントは様々な理由で、入ってくる接続要求(incoming
connection)を断るかもしれません−入ってくる接続スロットのサーバントのプールが使い果たされるかもしれませんし、例えば要求しているサーバントとして、同じバージョンのプロトコルをサポートしていないかもしれません。
1度サーバントがネットワークへの接続に成功すると、グヌーテラ・プロトコルのデスクリプターを送受信することで他のサーバントと通信を行います。互いのデスクリプターは、次に与えられたようなバイト構造を持つデスクリプターのヘッダーによって処理されます。
ノート1:別に指定された方法が別に無い限り次のような構造の中のすべてのフィールドはネットワーク・バイトの中にあります(例えば、big
endian)。
次のような構造の中にあるすべてのIPアドレスはIPv4のフォーマットです。例えば、IPv4バイトアレーなど。
byte 0
byte 1
byte 2
byte 3
これをドットを含むアドレスとして表現すると、208.17.50.4.
デスクリプター・ヘッダー
| メッセージID(Message ID) |
ペイロード・デスクリプター(Payload Descriptor) |
TTL |
ホップ数(Hops) |
ペイロード長(Payload Length) |
バイト・オフセット0、15、16、17、18、19、22
<1,2,3,4,5,6,7>
|