Mercurial > hg > Papers > 2019 > riono-midterm
changeset 7:7c0c0ed770de
update midterm Christie section
author | e165729 <e165729@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 21 Oct 2019 21:43:42 +0900 |
parents | cc6642833489 |
children | cde98651454a |
files | Papaer/midterm.pdf Papaer/midterm.tex midterm.mm |
diffstat | 3 files changed, 37 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- a/Papaer/midterm.tex Mon Oct 21 18:05:39 2019 +0900 +++ b/Papaer/midterm.tex Mon Oct 21 21:43:42 2019 +0900 @@ -29,7 +29,9 @@ \section{研究目的} 現代の講義やプレゼンなどでは,PC画面で用意した資料を見ながら進行することが多い.参加者はプロジェクタに注視する必要があり,手元のPCと交互に見る必要がある場合両方に集中を割く必要があり,負担になる可能性がある.また,発表者が交代する際にケーブルの差し替えを行う必要があり,PCと接続するアダプターによっては正常にPC画面を表示できない場合がある. -当研究室では講義のより良い手法の1つとしてTreeVNCを開発している.TreeVNCは発表者のPC画面を参加者のPC画面に表示する画面配信ソフトウェアである.しかし既存のTreeVNCでは画面共有する際の送信するデータ量が多いため,有線LANでの使用に限られている.広く使われている無線LANに対応するためにMulticastでのデータ通信の実装やデータの分割・圧縮を行い,TreeVNCのMulticastの可能性を評価する. +%当研究室では画面共有のより良い手法の1つとしてTreeVNCを開発している. + +当研究室で開発しているTreeVNCは発表者のPC画面を参加者のPC画面に表示する画面配信ソフトウェアである.しかし既存のTreeVNCでは画面共有する際の送信するデータ量が多いため,有線LANでの使用に限られている.広く使われている無線LANに対応するためにMulticastでのデータ通信の実装やデータの分割・圧縮を行い,TreeVNCのMulticastの可能性を評価する. また,当研究室で開発を行なっている分散フレームワークChristieでTreeVNCを再実装を行う.Christieを用いることでTreeVNCにおける長期間開発してきたことに伴うアルゴリズムの複雑さの解消および,メッセージ伝達速度の維持・向上の検証を行う. @@ -50,21 +52,20 @@ \begin{figure}[htb] \begin{center} - \includegraphics[width=8cm, height=5cm]{Image/treevnc-crop.pdf} + \includegraphics[width=8cm, height=3.5cm]{Image/treevnc-crop.pdf} \caption{TreeVNCの接続方法} \label{fig:TreeVNCstruct} \end{center} \end{figure} \section{TreeVNC} -TeeVNCはサーバに接続してきたクライアントをバイナリツリー状に接続する.接続してきたクライアントをノードとし,その下に新たなノード2つを接続していく.これにより,人数分のコピーと送信の手間を分散することが可能である(図\ref{fig:TreeVNCstruct}). - +TreeVNCはサーバに接続してきたクライアントをバイナリツリー状に接続する.接続してきたクライアントをノードとし,その接続したノードの下に新たなノード2つを接続していく.これにより,人数分のコピーと送信の手間を分散することが可能である(図\ref{fig:TreeVNCstruct}). -バイナリツリー状に接続することで,N台のクライアントが接続しにきた場合,従来のVNCではサーバ側がN回コピーを行なって配信する必要があるが,TreeVNCでは各ノードが2回ずつコピーをするだけで配信が可能となる.バイナリツリールートのノードをRoot Nodeと呼び,そこに接続されるノードをNodeと呼ぶ.Root Nodeは子Nodeにデータを渡す機能,各Nodeの管理,VNCサーバから送られてきたデータの管理を行なっている.各Nodeは,親Nodeから送られてきたデータを自身の子Nodeに渡す機能,子Nodoから送られてきたデータを親Nodeに渡す機能がある. +バイナリツリー状に接続することで,N台のクライアントが接続しにきた場合,従来のVNCではサーバ側がN回コピーを行なって配信する必要があるが,TreeVNCでは各ノードが2回ずつコピーをするだけで配信が可能となる.バイナリツリールートのノードをRoot Nodeと呼び,そこに接続されるノードをNodeと呼ぶ.Root Nodeは子Nodeにデータを渡す機能,各Nodeの管理,VNCサーバから送られてきたデータの管理を行なっている.各Nodeは,親Nodeから送られてきたデータを自身の子Nodeに渡す機能,子Nodeから送られてきたデータを親Nodeに渡す機能がある. \section{Multicast} -画面配信のデータ量は膨大なため,現在のTreeVNCでVNCServerに無線LAN接続を行なった場合,画面配信の遅延が大きくなってしまうが,画面切り替えの機能は有効である.つまり,画面を提供するPCのみを無線経由で接続し,配信画面を受け取る側は有線を使用することができる.ここでWifiのMulticastの機能を用いて配信側にもWifiを使用することが可能であると考えられる.Tree Rootは無線LANにUpdateRectangleをMulticastで一度だけ送信する. +画面配信のデータ量は膨大なため,現在のTreeVNCでVNCServerに無線LAN接続を行なった場合,画面配信の遅延が大きくなってしまう.バイナリツリーを構成している中に無線LANで接続を行なっているNodeが存在すると,そのNodeに接続されている全てのNodeもその遅延の影響を受けてしまう.ここでWifiのMulticastの機能を用いることで,配信側にもWifiを使用することが可能であると考えられる.Tree Rootは無線LANにUpdateRectangleをMulticastで一度だけ送信する. WifiのMulticast packetのサイズは64Kbyteが最大となっている.HDや4Kの大きさの画面更新は8MB * 8byteとなり圧縮前で64MB程度となる.これを圧縮しつつ,64Kbyte毎のパケットに変換して送る必要がある.WifiのMulticast packetは確実に送られることは保障されていない.通し番号を付けて欠落を検知することはできるが,再送処理は複雑であることが予想される. そこでまずBlockingについて考察と実験を行う. @@ -74,7 +75,7 @@ \begin{figure}[htb] \begin{center} - \includegraphics[width=8cm, height=5cm]{Image/FrameUpdateRectangle.pdf} + \includegraphics[width=8cm, height=3.5cm]{Image/FrameUpdateRectangle.pdf} \caption{Rectangleの分類} \label{fig:Phase} \end{center} @@ -83,9 +84,18 @@ このパケットを64Kbyteに収まる3つのRectangleに再構成する.この時にtile内部は変更する必要はないが,Rectangleの構成は図\ref{fig:Phase}のように変わる.ZRLEを展開しつつ,パケットを構成する必要がある. \section{Christie} - +Christieは本研究室で開発している分散フレームワークである.ChristieはTreeVNCと同様javaで記述されおり,以下のような概念を持っている. +\begin{itemize} %箇条書き +\item CodeGear(以下CG) +\item DataGear(以下DG) +\item CodeGearManager(以下CGM) +\item DataGearManager(以下DGM) +\end{itemize} +CGはjavaのクラスやスレッドに相当し,DGは変数データに相当している.CGMはノードに相当し,CG, DG, DGMを管理する.DGMはDGを管理および格納を行う. + +また,ChristieにはTopologyManagerという機能が実装されている.TopologyManagerはChristie上のCGM(ノード)をTopologyとして静的・動的に形成するノードである.TopologyManagerでTreeVNCのNodeの生成Node間の接続を行うことで,TreeVNCが持っているアルゴリズムの複雑さの解消を図る. \section{まとめ }
--- a/midterm.mm Mon Oct 21 18:05:39 2019 +0900 +++ b/midterm.mm Mon Oct 21 21:43:42 2019 +0900 @@ -35,13 +35,28 @@ </node> <node CREATED="1571291098838" ID="ID_613438329" MODIFIED="1571292745909" POSITION="left" TEXT="使用している技術"> <node CREATED="1571291372482" ID="ID_981670674" MODIFIED="1571291374880" TEXT="VNC"/> -<node CREATED="1571291375452" ID="ID_25472195" MODIFIED="1571291380186" TEXT="TreeVNC"/> +<node CREATED="1571291375452" ID="ID_25472195" MODIFIED="1571291380186" TEXT="TreeVNC"> +<node CREATED="1571587510850" ID="ID_523657670" MODIFIED="1571587556482" TEXT="VNCを用いてサーバクライアント間による相互通信"/> +<node CREATED="1571587580458" ID="ID_1371876621" MODIFIED="1571587721679" TEXT=" RFBプロトコルによる画面データの送信"/> +<node CREATED="1571587595031" ID="ID_921158327" MODIFIED="1571587697137" TEXT="Tree structureによる送信データの負荷分散"/> +</node> +<node CREATED="1571292747173" ID="ID_1280317072" MODIFIED="1571292755344" TEXT="マルチキャスト"> <node CREATED="1571291387225" ID="ID_761889093" MODIFIED="1571291409217" TEXT="Bloking"/> -<node CREATED="1571291380474" ID="ID_1469053075" MODIFIED="1571291386818" TEXT="Christie"/> -<node CREATED="1571292747173" ID="ID_1280317072" MODIFIED="1571292755344" TEXT="マルチキャスト"/> +</node> +<node CREATED="1571291380474" ID="ID_1469053075" MODIFIED="1571650867046" TEXT="Christie"> +<node CREATED="1571648495589" ID="ID_925717191" MODIFIED="1571648503073" TEXT="分散フレームワーク"/> +<node CREATED="1571648947130" ID="ID_892163891" MODIFIED="1571648982135" TEXT="CodeGear(クラスやスレッド,処理部分)"/> +<node CREATED="1571648983053" ID="ID_7322377" MODIFIED="1571649007982" TEXT="DataGear(変数データ)"/> +<node CREATED="1571649008389" ID="ID_309700901" MODIFIED="1571649063763" TEXT="CodeGearManager(DGM,CG.DGを管理する)"/> +<node CREATED="1571649091623" ID="ID_687885011" MODIFIED="1571649121756" TEXT="DataGearManager(DGを格納する)"> +<node CREATED="1571649441606" ID="ID_1156353574" MODIFIED="1571649561322" TEXT="LocalとRemoteがあり,LocalはLocalのCGMが管理しているDGMを操作,Remoteなら接続先のCGMが見ているDGMを操作する"/> +</node> +<node CREATED="1571649122476" ID="ID_1269542605" MODIFIED="1571649614911" TEXT="takeは取得でデータは取得後DGが破棄される,peekは参照であり取得後もDGが保持される"/> +<node CREATED="1571650867432" ID="ID_1320785626" MODIFIED="1571650877448" TEXT="トポロジーマネージャーについて"/> +</node> </node> <node CREATED="1571292766925" ID="ID_1521301681" MODIFIED="1571293034448" POSITION="left" TEXT="今後の課題"> -<node CREATED="1571293034979" ID="ID_559069800" MODIFIED="1571293045517" TEXT="マルチキャストについて"> +<node CREATED="1571293034979" ID="ID_559069800" MODIFIED="1571587499297" TEXT="マルチキャストについて"> <node CREATED="1571293058403" ID="ID_1396330952" MODIFIED="1571293123770" TEXT="木構造と独立させるため、マルチキャストを行なっている部分にデータを送る"/> <node CREATED="1571293127276" ID="ID_877964669" MODIFIED="1571293163851" TEXT="どれくらいパケットロストするか不明"/> <node CREATED="1571293165973" ID="ID_82682118" MODIFIED="1571293208956" TEXT="ロストした部分の検知・再送等はせず一定期間で画面データを全て送る"/>