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

高木浩光@自宅の日記

目次 はじめに 連絡先:blog@takagi-hiromitsu.jp
訪問者数 本日: 1258   昨日: 3744

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日)> 最新 編集

最近のタイトル

2017年12月29日

2017年10月29日

2017年10月22日

2017年07月22日

2017年06月04日

2017年05月13日

2017年05月05日

2017年04月08日

2017年03月10日

2017年03月05日

2017年02月18日

2017年01月08日

2017年01月04日

2016年12月30日

2016年12月04日

2016年11月29日

2016年11月23日

2016年11月05日

2016年10月25日

2016年10月10日

2016年08月23日

2016年07月23日

2016年07月16日

2016年07月02日

2016年06月12日

2016年06月03日

2016年04月23日

2016年04月06日

2016年03月27日

2016年03月14日

2016年03月06日

2016年02月24日

2016年02月20日

2016年02月11日

2016年02月05日

2016年01月31日

2015年12月12日

2015年12月06日

2015年11月23日

2015年11月21日

2015年11月07日

2015年10月20日

2015年07月02日

2015年06月14日

2015年03月15日

2015年03月10日

2015年03月08日

2015年01月05日

2014年12月27日

2014年11月12日

2014年09月07日

2014年07月18日

2014年04月23日

2014年04月22日

2000|01|
2003|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|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|06|07|08|09|
2013|01|02|03|04|05|06|07|
2014|01|04|07|09|11|12|
2015|01|03|06|07|10|11|12|
2016|01|02|03|04|06|07|08|10|11|12|
2017|01|02|03|04|05|06|07|10|12|
<前の日記(2006年07月03日) 次の日記(2006年07月16日)> 最新 編集