Lua BitTorrent DHTの新機能

しばらく前に、 Shareaza にLuaの外部DHTトラッカーGitHub )を書きました。 Shareazaの場合、これは通常のローカルトラッカーですが、本質的にはトラッカーをトラッカーなしでマグネットリンクにダウンロードできるようにするBitTorrent DHTクライアントです。



そのため、クライアントが動作している間、未知のフィールドを持つパケットをキャッチし、さらに分析するために保存します(オプションが有効な場合)。



それで、BitTorrent DHTの新機能。 (標準フィールドはクリアされていますが、明確にするために残されています):

 {
	 v = "UTct"、
	 q =「投票」、
	 a = {
		ターゲット= ""、
		投票= 0、
		トークン= ""、
		 id = ""
	 }、
	 y = "q"、
	 t = ""
 } 




最新情報を確認します。





portは欠落していますが、その他はすべてAnnounce_peerパッケージと同じですが、ここでは明らかに不要です。



たくさんの票を集めて、私たちは別の興味深いパッケージを見つけました。

  {
	 v = "UTdS"、
	 q = "announce_peer"、
	 a = {
		 name = "File Name.avi"、
		 info_hash = ""、
		ポート= 1
		 id = ""、
		トークン= ""
	 }、
	 y = "q"、
	 t = ""
 } 




トレントの名前の形式でプラスが付いた通常のannounce_peer(a.nameを参照)。 どうやら検索エンジンや情報を受信する前に名前を表示するため。



私たちはさらに調べて見つけます:

  {
	 v = "Az \ 5H"、
	 q = "announce_peer"、
	 a = {
		シード= 0、
		 info_hash = ""、
		ポート= 1
		トークン= ""、
		 id = ""
	 }、
	 y = "q"、
	 t = ""
 } 




カスタマーIDにより、Azureusを既に扱っていることを理解しています(Wikiで判断すると、これはすでにVuzeです)。 また、announce_peerは、0に設定されたシードフィールドの形でプラスを付けて私たちのところに来ました。どうやら、このごちそうはシードではないようです、とKOは言います。



そして再び、Azureus:

  {
	 v = "AZ00"、
	 q = "get_peers"、
	 a = {
		スクレイプ= 1
		 want = {
			 「n4」
		 }、
		 info_hash = ""、
		 id = ""
	 }、
	 y = "q"、
	 t = ""
 } 




擦り傷が見たいです。 どうやらこれはトラッカーへのScrapeリクエストに類似しています。 Wantはリストであり、値「n4」が含まれています。 この分野は長い間ちらつき、私はそれについて少し学びました。 N4はそれぞれIPv4アドレスとN6であり、IPv6アドレスは同時に使用できます。



これが今日のキャッチです。 パケットフィルターに既に追加されているものについて追加する必要があります。



  {
	 r = {
		 ip = "\ 0 \ 0 \ 0 \ 0"、
		 nodes2 = {}
	 }
	 y = "r"
 } 




回答には追加のipフィールドが含まれる場合があります。 調査の結果、これは自分のIPであることがわかりました。

nodes2-覚えている限りでは、ipv6ノードのリスト。 私のプロバイダーはまだipv4を使用しているため、これは私が深く取り組んでいない質問です。



もちろん、多くの新しいものが登場し、これに関連して、未知のパッケージを送信したクライアントに助けを求める機会を与えるというアイデアを得ました。



次のようになります。



リクエスト



  {
	 t = ""、
	 y = "q"、
	 q =「ヘルプ」、
	 a = {
		 path = {"q"、 "help"}-リストは行よりも優れていると思います。 以前は、フィールド名がドットで区切られた行がありました。
	 }
 }


この場合、これはq = helpのヘルプリクエストです。



そして、次の答えが彼に来るはずです。

 {
	 t = ""、
	 y = "r"、
	 r = {  
		ヘルプ= 		
 [= [
 q = [ヘルプ、ping、find_node、get_peers、announce_peer]
 help-dhtパケットの新しいパラメーターに関するマイクロヘルプ。
  a.path(クエリパケット)-新しいパラメーターへのパス
  r.help(応答パケット)-新しいパラメーターに関するヘルプ

詳細:http://forum.bittorrent.org/viewtopic.php?pid=2134

その他http://bittorrent.org/beps/bep_0005.htmlを参照
 ] =]
	 }
 } 




おそらく、追加のリンクは別のリストの方が良いでしょう。



じゃあ このトピックに興味がある人は、グーグルの詳細についてコメントを書いてください。



ちなみに、 forum.bittorrent.orgは私には機能しません。 そして、BitTorrentクライアントの革新がまさに議論されました。



PSピアツーピアカルマでは十分ではありません。

PPSカルマをありがとう。 移動しました。



All Articles