Mercurial > hg > Papers > 2015 > oc-thesis
diff chapter3.tex @ 1:dc17ac172c7d
add thesis in production.
author | oc |
---|---|
date | Sun, 08 Feb 2015 17:45:46 +0900 |
parents | |
children | 63ae5aaa2a7a |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/chapter3.tex Sun Feb 08 17:45:46 2015 +0900 @@ -0,0 +1,90 @@ +\chapter{TreeVNC のリファクタリング} + +\section{動的な port 番号の指定} +TreeVNCは複雑な分散アルゴリズムを用いたシステムであり、 +デバッグを行う環境を整える必要がある。 + +従来のTreeVNCでは、固定port番号を複数利用していた。 +port番号は一意なので、1台で複数のTreeVNCを立ち上げることができない。 + +動的にport番号を割り当てることで、 +1つのnodeに対して複数のTreeVNCを起動することを可能にした。 +最低限のソケットポートを開けることによって、 +メモリの使用量を抑えることにも繋がる。 + +% messageの説明にportにどんな関係があるのかあとから +以前は固定port番号を使用しmessageの通信を行っていたが、 +一意なportを割り当てられているnodeが通信を行うことによって、 +どのport番号が使用されているかを意識する必要がなくなった。 + + +\section{ホスト切り替え時の挙動の修正} +画面の切り替えを行う際、新しいホスト側の画面に生じた +ビデオフィードバックが他のユーザに配信されてしまう問題があった。 + +ホストの切り替えの際、 +新しいホスト側のviewerを閉じることで問題を解決した。 + + +\newpage + + +\section{Tree の構成の変更} + +従来のTreeVNCは、クライアントの接続する木構造が単一であった。 +そのため、ネットワークインターフェースが違うクライアントが +同じ木に混在している状況が生じた。 + +速度の遅いクライアントが木に存在すると、 +そのクライアント以下の通信速度が遅くなってしまう。 + +この問題を解決するために、 +図\ref{fig:multinetworktree}の様に、ネットワークインターフェース別に +木構造を形成するように設計した。 + +TreeVNCは、rootがnodeListというリストを保持し、木構造を管理している。 +複数のネットワークインターフェースで木構造を形成する場合、 +このnodeListをネットワークインターフェース毎に作成しておく。 +新しいnodeを接続する際、nodeのネットワークインターフェースを取得し、 +どのnodeListに登録されるかが決まる。 +こうすることによって、TreeVNCを複数のネットワークインターフェイス別に +木構造を構成することができる。 + +\begin{figure}[htpd] + \begin{center} + \includegraphics[scale=0.4]{./images/chapter3/MultiNetworkTree.pdf} + \end{center} + \caption{Multi Network Tree} + \label{fig:multinetworktree} +\end{figure} + + +\section{切断時の検知方法の変更} + +lostParent\ref{fig:lostparent} を lostChild\ref{fig:lostchild1} へ。 +lostChild の接続切り替えの図\ref{fig:lostchild2} + +\begin{figure}[htpd] + \begin{center} + \includegraphics[scale=0.4]{./images/chapter3/lostParent.pdf} + \end{center} + \caption{lostParent} + \label{fig:lostparent} +\end{figure} + +\begin{figure}[htpd] + \begin{center} + \includegraphics[scale=0.4]{./images/chapter3/lostChild1.pdf} + \end{center} + \caption{lostChild1} + \label{fig:lostchild1} +\end{figure} + +\begin{figure}[htpd] + \begin{center} + \includegraphics[scale=0.4]{./images/chapter3/lostChild2.pdf} + \end{center} + \caption{lostChild2} + \label{fig:lostchild2} +\end{figure} +