<前の日記(2006年07月03日) 次の日記(2006年07月16日)> 最新 編集

高木浩光@自宅の日記

はじめに 連絡先:blog@takagi-hiromitsu.jp
訪問者数 本日: 3386   昨日: 6532

2006年07月08日

winnytp:// ハンドラに「キー消滅判定タイマー」値の表示を付けてみた

1日のプロトコルハンドラを改良して、ファイルごとに「キー消滅判定タイマー」の値を表示するようにしてみた。図1のように、ファイル名の左側にその値を表示し、値が1500以上のものについてリンク部分を強調表示するようにした。

図1: タイマーの値が1500以上の項目を強調表示した様子

図1の画面にあるリンク先はすべて、アドレスバーのサイト上のURLになっている*1。この例では、画面上2つのファイルで「キー消滅判定タイマー」の値が1500未満となっている。全体の479項目のうち 86パーセントが1500以上だったことを示している。

「キー消滅判定タイマー」とは、金子勇氏の著書によれば次のように説明されている。

タイマーを使ったキーの削除

では、ダウンロード不能となったキーはどのように削除するのでしょうか。Winnyはこのために「キーの寿命」を設けています。すなわち、キーのそれぞれに一定値のタイマーを設け、定期的に減じて“0”になったらダウンロード不可能とみなすのです。

拡散や検索の際に、クエリが完全なキャッシュファイル(オリジナルファイルかもしれない)を持っているノードを経由すると、クエリにはタイマーが一定値の新鮮なキーが詰められます。このクエリを受け取ったノードはキーのタイマーがリフレッシュされ、キーは延命します。(略)キーの寿命の初期値は、現在約1500秒程度に設定していますが、これは(略)

金子勇, Winnyの技術, アスキー, p.119

つまり、図1の強調表示されていない2つのファイルが1500よりかなり小さい値(450前後)となっているのは、他のホストからこのホストへ情報が流れてきた際に、タイマーが1500前後にリセットされないまま、ファイルの提供元IPアドレス(とポート)情報がこのホストのものとして書き換えられた*2ものと考えられる。元のホストから情報が出てから、それがこのブラウザに送られてくるまでに1000秒ほど経過しているということだろうか。

次に、URLにオプションを指定して、このホストが送ってくるファイルリストのすべてを表示(つまり、他のホストが送信可能と主張するファイルをも含めて表示)させたのが図2である。(図2と図1の違いは、6月25日の日記の図1と図2の違い。今日の図2が6月25日の図1のHTMLで、今日の図1が6月25日の図2のHTML。)

図2: 他のホストが送信可能と主張するファイルをも含めて全部を表示した場合

図2では、ほとんどのファイルでタイマー値が1500未満となっている。何箇所かにある1500以上のファイル(強調表示)のリンクにマウスポインタを載せて、リンク先のURLをステータスバーで確かめてみると、そのほとんど*3がアドレスバーのホストと一致していた。つまり、他のホストにあるファイルなのに1500を超えるということはほとんどないと言えるのかもしれない。

次に、図1と同様の表示を別のホストのURLについて表示させたところ、ファイルリストの全部についてタイマ値が1500未満となるところが何箇所かあった(図3)。そうしたサイトでは表示されるファイル数が極端に少ないという傾向があるように思えた。これは、cacheファイルが削除されているノードだということを意味しているのだろうか。

図3: 当該ホストが送信可能と主張するファイルの全部でタイマー値が1500未満となった例

*1 当該ホストに接続したときに当該ホストが送ってくるコマンド13の内容から、他のホストについてのエントリを除外して表示したもの。

*2 いわゆる「Winnyの中継」を実現する仕組み。

*3 何度かリロードしているうちに、稀に例外があり、他のホストのファイルなのに1500を超えているものもあった。詳しくはまだ調べていない。

本日のTrackBacks(全2件) [TrackBack URL: http://takagi-hiromitsu.jp/diary/tb.rb/20060708]

ポジティブシンキングばかりでは、見落とす・無理難題をほおって置いて現場がやる気な

検索

<前の日記(2006年07月03日) 次の日記(2006年07月16日)> 最新 編集

最近のタイトル

2012年05月08日

2012年05月04日

2012年04月29日

2012年04月21日

2012年04月08日

2012年03月03日

2012年02月27日

2012年02月26日

2012年02月18日

2011年12月29日

2011年12月21日

2011年12月18日

2011年12月12日

2011年12月04日

2011年11月26日

2011年11月19日

2011年11月06日

2011年11月05日

2011年11月01日

2011年10月14日

2000|01|
2003|05|
2004|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|05|06|07|08|09|10|11|12|
2012|02|03|04|05|
<前の日記(2006年07月03日) 次の日記(2006年07月16日)> 最新 編集