ダウンロードメモ

ダウンロードに関するメモ。
@ ダウンロード手順

  1. 転送リンクでファイルを保持するノードへ接続する
  2. 接続テストされる
  3. ファイル要求コマンドを送信
  4. 応答(ファイル)を受信

2が変。
Winnyは接続してきたノードへ接続テストを行う。
接続テストの方法は転送リンクを張れるか試すこと。
接続テストを行うのは、検索リンク接続のみと思っていたのだけど、転送リンクでも接続テストをされるもよう。
これは無限ループになりそうだけど、なにか判定方法があるのだろうか。
現在のcore.exeは、転送リンクに対しては接続テストを行わない。
=> それだとダウンロードされ放題にならない?(俺A)
==> 接続テストしたからって、それは防げないでしょ。(俺B)
=> じゃあ、そのままでいいんじゃないの。(俺本体)
==> Winnyのコード見て分かるのならそれが一番いいので調べたらどう?(俺A)
=> …まあ、そうだけど(俺本体)

RC4暗号鍵
暗号鍵は、1ブロック目が固定鍵、それ以降はファイル全体ハッシュ値とブロックNoから鍵を求める。

@ 不正なコマンドへの反応
ここでの不正なコマンドとは、ファイルの範囲外を要求をした場合など。
Winnyはこのコマンドを無視する。
切断されたり、エラー応答が返ることはない。
範囲内〜範囲外の複数ブロックを要求した場合は、ファイルの範囲内の要求に対しては応答がある。