オープンソースアプリケーションの改変

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
miya
記事: 1
登録日時: 9年前

オープンソースアプリケーションの改変

#1

投稿記事 by miya » 9年前

はじめまして、miyaと申します。
情報系の学生ですが、ネットワーク(主にWWANやP2Pなどでのトポロジー分野)専攻で
プログラミングはどちらかというと苦手分野です。


[1]質問内容
PeerCastStationにトポロジー形成段階で新たなルールを追加したい。
 [1.1]
デモンストレーションにて「既存技術を用いたトポロジーの制御」を行いたいのですが
オープンソースであるPeerCastStationを用いて、何かしらの新しい接続ルールを追加することで
トポロジーを制御した ということを実演したいです。
(今回はとにかく、制御出来てさえいればいいので、その接続ルールが実用的であるかどうかは問われません)


・現在のPeerCastStationの接続ルール
配信者をrootとしてツリー構造でストリーミングをリレーする。
新しく配信を視聴したい場合
1.rootへと接続要求
2.rootは自分からの直接リレー数(各ユーザーが自分で設定する)に空きがあればコネクションする(→視聴開始)
3. 空きが無い場合、rootに直接接続しているnodeのIPアドレスを返す
4. 返されたIPに接続要求を行う
5. 接続要求されたnodeは 2. と同様に自分のリレー数に空きがあればコネクション、無ければ 3. 同様に自分の直下nodeのIPを返す
以上繰り返し

・今回実装したい新しい接続ルール
pingのRTTにより接続先をrootが判断する

判断用に新たな変数 _bandwidthを用意する

1. 接続要求を受け取ったrootはまず、要求元へpingを投げる
2. pingのRTTが_bandwidth(=初期値は一定の敷居値)以上の場合、一旦接続要求をキャンセル
(直下にnodeがある場合は直下nodeのIPを返す、無ければ接続拒否)
3. RTTが_bandwidthより小さい場合、自分の直下nodeとして接続を許可し、_bandwidthを更新する。ユーザAが直下に接続した場合、ユーザAのRTT値で_bandwidthを更新
4. 新たに接続要求があった場合 _bandwidthの値とそのユーザに対するpingのRTT値を比較し、_bandwidthよりも小さければ直下に接続し_bandwidthを更新
_bandwidth以上であれば自分の直下nodeのIPを返す
以上繰り返し

これを実装したいと考えています。
p2pストリーミングなのでツリーの上位ノードは帯域に余裕のあるユーザの方がツリー全体としてネットワーク効率が良い
帯域をどう測定し、どう実装するか で
今回は実装の簡単なpingのRTTによって判断することにしました。
帯域は当然変動するので、実用性は無いかもしれませんが、とりあえずこの形で制御するところまで持っていきたいと考えています。


 [1.2] どのように取り組んだか(プログラムコードがある場合記載)
元のソースコードはGithubにてkumaryu様が公開されているコチラ
https://github.com/kumaryu/peercaststation

設計がコチラ
https://github.com/kumaryu/peercaststat ... D%E8%A8%88

です。

 [1.4] 今何がわからないのか、知りたいのか
対象へのping送信やRTT値をストアしipを返すなど
個々のコードは用意出来ているのですが
元となるソースコードがうまく読めず、どの部分で接続の判断を行っているのかがわかりません
peercaststation/PeerCastStation/PeerCastStation.Core 内の
Host.cs やCore.cs 、 Content.cs 辺りのコードなのではないかと考え
試行錯誤するものの一向に進まないため質問させていただきました。


[2] 環境  
 [2.1] OS : Windows7 64bit / Ubuntu
 [2.2] コンパイラ名 : Visual Studio 2013 Ultimate

[3] その他
 ・どの程度C言語を理解しているか
C言語自体は授業で約2年勉強しました
今回必要なC#は教本を3冊程度読み約1カ月勉強した程度です
 ・ライブラリを使っている場合は何を使っているか
.NET Framework

アバター
h2so5
副管理人
記事: 2212
登録日時: 13年前
住所: 東京
連絡を取る:

Re: オープンソースアプリケーションの改変

#2

投稿記事 by h2so5 » 9年前

githubのissueで尋ねたほうが早いと思います。

閉鎖

“C言語何でも質問掲示板” へ戻る