changeset 4:14e96778c600

update
author oc
date Mon, 16 Feb 2015 01:03:14 +0900
parents 63ae5aaa2a7a
children 450825b9b946
files chapter3.tex chapter4.tex chapter5.tex chapter6.tex images/chapter3/LostParent.xbb images/chapter3/MultiNetworkTree.xbb images/chapter3/lostChild1.pdf images/chapter3/lostChild1.xbb images/chapter3/lostChild2.xbb images/chapter4/flameDisplaySizeFilterVer.xbb images/chapter4/flameDisplaySizeTimerVer.xbb images/chapter4/remoteNetwork.pdf images/chapter4/remoteNetwork.xbb images/chapter4/remoteNetwork2.pdf images/chapter4/remoteNetwork2.xbb images/chapter4/remoteNetwork3.xbb images/chapter4/remoteNetwork4.xbb images/chapter4/sendInitData.xbb thesis-paper.tex
diffstat 19 files changed, 318 insertions(+), 43 deletions(-) [+]
line wrap: on
line diff
--- a/chapter3.tex	Sat Feb 14 14:25:36 2015 +0900
+++ b/chapter3.tex	Mon Feb 16 01:03:14 2015 +0900
@@ -12,19 +12,41 @@
 最低限のソケットポートを開けることによって、
 メモリの使用量を抑えることにも繋がる。
 
+以下に、動的に port 番号を割り当てているソースコードを記述する。
+
+% selectPort する箇所を記述する
+
+\begin{lstlisting}[caption=オプション--fixSize,label=fixsize]
+    public int selectPort(int p) {
+        int port = p;
+        while (true) {
+            try {
+                servSock = new ServerSocket(port);
+                acceptPort = port;
+                myAddress = "127.0.0.1";
+                nets.getNetworkInterfaces();
+                break;
+            } catch (BindException e) {
+                port++;
+                continue;
+            } catch (SocketException e) {
+                e.printStackTrace();
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+        }
+        System.out.println("accept port = " + port);
+        return port;
+    }
+\end{lstlisting}
+
+
 %  messageの説明にportにどんな関係があるのかとから
 以前は固定port番号を使用しmessageの通信を行っていたが、
 一意なportを割り当てられているnodeが通信を行うことによって、
 どのport番号が使用されているかを意識する必要がなくなった。
 
-
-\section{ホスト切り替え時の挙動の修正}
-画面の切り替えを行う際、新しいホスト側の画面に生じた
-ビデオフィードバックが他のユーザに配信されてしまう問題があった。
-
-ホストの切り替えの際、
-新しいホスト側のviewerを閉じることで問題を解決した。
-
+\newpage
 
 \section{QUALITYモードとSPEEDモード}
 
@@ -40,6 +62,17 @@
 これにより、描画処理の遅延を解決することができた。
 
 
+\section{ホスト切り替え時の挙動の修正}
+画面の切り替えを行う際、新しいホスト側の画面に生じた
+ビデオフィードバックが他のユーザに配信されてしまう問題があった。
+
+ホストの切り替えの際、
+新しいホスト側のviewerを閉じることで問題を解決した。
+
+
+\newpage
+
+
 \section{Tree の構成の変更}
 
 従来のTreeVNCは、クライアントの接続する木構造が単一であった。
@@ -86,6 +119,16 @@
 子となる node から root に対して lostParent message を送信する。
 これにより root は lostParent を検知し、代替 node の接続を行う。
 
+以下に、lostParent の検知・再接続方法を記述する。
+
+\begin{itemize}
+  \item 親 node の接続が切れる
+  \item 切れた親 node に接続していた子 node が root に LOST\_PARENT message を送信する
+  \item root が nodeList の更新を行う
+  \item 切れた親 node の代わりに、nodeList の最後尾 node を配置する
+  \item 親 node を失った子 node は、新しい親 node に接続する
+\end{itemize}
+
 この方法では、子のいない末端の node の接続が切れた際に root にメッセージが送信されない。
 root は切断を検知できないと、nodeList の更新を行うことができない。
 nodeList が正しく更新されない場合、図\ref{fig:lostparent}のように、
@@ -99,18 +142,26 @@
   \label{fig:lostparent}
 \end{figure}
 
+\newpage
+
 末端 node の切断が検知できない問題を解決するために、
 lostChild という検知方法に変更した。
 
-TreeVNC は、画面データ(framebufferUpdate)が MulticastQueue という Queue に蓄積される。
+TreeVNC は、画像データ(framebufferUpdate)が MulticastQueue という Queue に蓄積される。
 node はこの Queue から画像データを取得し、描画している。
 lostChild の検出方法は、この MulticastQueue を使用している。
 ある一定時間、MulticastQueue から画像データが取得されない場合、
-その node との接続が切れたと判断し、親となる node が root に LOST\_CHILD message を送信する(図\ref{fig:lostchild1})。
-lostChild により、切断されてしまった全ての node を検知することができるので、
-nodeList の更新が正しく行われる。
-これにより、新しい node を適切な場所へ接続することができる(図\ref{fig:lostChild2})。
+その node との接続が切れたと判断することができる。
+
+以下に、lostChild の検知・再接続方法を記述する。
 
+\begin{itemize}
+  \item 子 node の切断を検知した node が root へ LOST\_CHILD message を送信する(図\ref{fig:lostchild1}中, 1:)
+  \item LOST\_CHILD message を受け取った root は nodeList の更新を行う(図\ref{fig:lostchild1}中, 2:)
+  \item 切断した node を nodeList から消し、nodeList の最後尾の node に切断した node number を割り当てる
+  \item root は最後尾の node に、切断した子 node が接続していた親 node に接続する様に CONNECT\_TO message を送信する(図\ref{fig:lostchild1}中, 3:)
+  \item 最後尾の node が子 node を失った親 node へ接続しに行く(図\ref{fig:lostchild1}中, 4:)
+\end{itemize}
 
 \begin{figure}[htpd]
   \begin{center}
@@ -120,6 +171,15 @@
   \label{fig:lostchild1}
 \end{figure}
 
+\newpage
+
+lostChild を検知することより、
+切断されてしまった全ての node を検知することができるので、
+nodeList の更新が正しく行われる。
+
+新しい node からの接続要求 WHERE\_TO\_CONNECT message に対して、
+適切な node への接続を提供することができる(図\ref{fig:lostchild2}中, 1,2:)。
+
 \begin{figure}[htpd]
   \begin{center}
     \includegraphics[scale=0.7]{./images/chapter3/lostChild2.pdf}
--- a/chapter4.tex	Sat Feb 14 14:25:36 2015 +0900
+++ b/chapter4.tex	Mon Feb 16 01:03:14 2015 +0900
@@ -23,6 +23,7 @@
 指定した幅・高さの画面サイズのみを配信することができる。
 起動方法をソースコード\ref{fixsize}に記述する。
 
+% あとでコメントアウトはずす
 \begin{lstlisting}[caption=オプション--fixSize,label=fixsize]
   $ java -jar TreeVNC.java -d --fixSize 1920 1080
 \end{lstlisting}
@@ -48,6 +49,7 @@
 そこで、一画面のみをフィルタリングし表示するためのオプション機能(${\mathchar`-}$${\mathchar`-}$filterSingleDisplay)を追加した。
 オプションを追加した起動方法をソースコード\ref{filtersingledisplay}に記述する。
 
+% あとでコメントアウトはずす
 \begin{lstlisting}[caption=オプション--filterSingleDisplay,label=filtersingledisplay]
   $ java -jar TreeVNC.java -d --filterSingleDisplay
 \end{lstlisting}
@@ -74,33 +76,136 @@
 
 さらに VNCServer から送信されてきた全画面データをそのまま node に流すのではなく、
 シングルディスプレイサイズの領域の更新部分のみを root 側でフィルタリングし流す。
+これにより、一画面のみの表示が可能となる。
 
-これにより、一画面のみの表示が可能となる。
+
+\section{Retina のマルチディスプレイ対応}
+Retina ディスプレイ等の高解像度ディスプレイには、
+より画素密度を高く表示する HiDPI (High-dot per inch) モードがある。
+HiDPI モードの場合、
+PC で設定する解像度に対して縦横2倍の画像データを表示している。
+TreeVNC でシングルディスプレイサイズを取得すると PC で設定する解像度のサイズになるが、
+VNCServer から送信される画像データサイズは解像度の2倍のサイズになる。
+
+マルチディスプレイ対応のためには、
+シングルディスプレイサイズを VNCServer から送信される画像データサイズに合わせなければならない。
+そこで、HiDPI モードであるかどうかを検知する必要がある。
+
+VNCServer は、接続されているディスプレイサイズを合わせて画像データを送信してくる。
+HiDPI モードであるかどうかを検知には、1枚目以降のディスプレイサイズが必要となる。
+
+以下に、HiDPI モードの取得方法を記述する。
+
+\begin{itemize}
+  \item VNCServer から送信される width は図\ref{fig:singledisplaywidth}の VNCServer Single width である
+  \item VncServer Single width から、図\ref{fig:singledisplaywidth}の 2nd Single width を引く
+  \item 余りのサイズが取得してきた図\ref{fig:singledisplaywidth} Single width の2倍であれば、HiDPI モードである
+\end{itemize}
+
+HiDPI モードの場合、originaiInitData を取得してきたシングルディスプレイの2倍サイズで生成する。
+この方法を用いて、HiDPI モードでもマルチディスプレイ対応ができた。
+
+\begin{figure}[htpd]
+  \begin{center}
+    \includegraphics[scale=0.6]{./images/chapter4/singleDisplayWidth.pdf}
+  \end{center}
+  \caption{Single Display Width}
+  \label{fig:singledisplaywidth}
+\end{figure}
 
 
 \newpage
 
 
-\section{Retina のマルチディスプレイ対応}
-
+\section{遠隔地からの接続}
+遠隔地からでもゼミや授業に参加できるよう、
+異なるネットワークインタフェースから TreeVNC への接続を可能にした。
 
-
-
-\section{遠隔地からの接続}
+遠隔地からの接続を実現した TreeVNC を図\ref{fig:remotetreevnc}に示す。
+図\ref{fig:remotetreevnc}では、
+ネットワーク A で立ち上げた TreeVNC に対し、
+遠隔地のネットワーク B, C, D から接続している状態である。
+図の様に、各ネットワーク毎に TreeManager を持つ root node が存在する。
+TreeManager を持つ node は、そのネットワーク上での接続の木構造を管理する root となる。
+遠隔地ネットワークから直接 TreeVNC に接続した node は root となる。
 
 \begin{figure}[htpd]
   \begin{center}
-    \includegraphics[scale=0.4]{./images/chapter4/remotenetwork.pdf}
+    \includegraphics[scale=0.6]{./images/chapter4/remoteTreeVnc.pdf}
+  \end{center}
+  \caption{Remote Network Tree}
+  \label{fig:remotetreevnc}
+\end{figure}
+
+\newpage
+
+以下に、遠隔地からの接続の手順を記述する。
+
+\begin{itemize}
+  \item 遠隔地 node から接続したい root に対して接続を要求する WHERE\_TO\_CONNECT message を送信する(図\ref{fig:remotevncconnect}中, 1:)
+  \item root は、遠隔地 node に対して接続先を含む CONNECT\_TO message を送信する(図\ref{fig:remotevncconnect}中, 2:)
+  \item 遠隔地 node は指定された接続先に対して接続しに行く(図\ref{fig:remotevncconnect}中, 3:)
+\end{itemize}
+
+\begin{figure}[htpd]
+  \begin{center}
+    \includegraphics[scale=0.7]{./images/chapter4/remoteVncConnect.pdf}
+  \end{center}
+  \caption{遠隔地 node からの接続}
+  \label{fig:remotevncconnect}
+\end{figure}
+
+ネットワーク毎に TreeVNC の木構造は管理される。
+図\ref{fig:remotenetworktree1}の TreeVNC の木構造はバイナリツリーを形成している。
+しかし、遠隔地 node が接続している node には合計3つ node が接続している。
+遠隔地 node は、root の管理する nodeList に追加されない。
+これは、node の接続・切断・切り替えに遠隔地 node を関与させないためである。
+
+ネットワーク毎に root が存在する。
+root は同じネットワーク上の新しい node からの
+接続を受け付ける(図\ref{fig:remotenetworktree1}中, 1,2,1',2':)。
+
+\newpage
+
+
+\begin{figure}[htpd]
+  \begin{center}
+    \includegraphics[scale=0.7]{./images/chapter4/remotenetwork.pdf}
   \end{center}
   \caption{Remote Network Tree}
   \label{fig:remotenetworktree1}
 \end{figure}
 
+
+遠隔地 node からでも、画面を配信できるようにする。
+遠隔地 node から画面配信を行う場合の画面の切り替えを図\ref{fig:remotenetworktree2}、図\ref{fig:remotenetworktree5}に示す。
+以下に、画面切り替えの説明を記述する。
+
+\begin{itemize}
+  \item 遠隔地 node が親 node へと SERVER\_CHANGE\_REQUEST を送信する(図\ref{fig:remotenetworktree2}中, 1:)
+  \item SERVER\_CHANGE\_REQUEST には、id が付いており、遠隔地 node からであれば -1 が付加されている
+  \item SERVER\_CHANGE\_REQUEST は root へと送信される(図\ref{fig:remotenetworktree2}中, 2:)
+  \item root は SERVER\_CHANGE\_REQUEST の id を確認し、id = -1 の場合、遠隔地 root に対して WHERE\_TO\_CONNECT を送信する(図\ref{fig:remotenetworktree2}中, 3:)
+  \item 遠隔地 root は WHERE\_TO\_CONNECT の返信として、接続先を含む CONNECT\_TO を送信する(図\ref{fig:remotenetworktree5}中, 4:)
+  \item root は指定された接続先へと接続しに行く(図\ref{fig:remotenetworktree5}中, 5:)
+\end{itemize}
+
+
+
+
+
 \begin{figure}[htpd]
   \begin{center}
-    \includegraphics[scale=0.4]{./images/chapter4/remotenetwork2.pdf}
+    \includegraphics[scale=0.7]{./images/chapter4/remotenetwork2.pdf}
   \end{center}
   \caption{Remote Network Tree}
   \label{fig:remotenetworktree2}
 \end{figure}
 
+\begin{figure}[htpd]
+  \begin{center}
+    \includegraphics[scale=0.7]{./images/chapter4/remotenetwork5.pdf}
+  \end{center}
+  \caption{Remote Network Tree}
+  \label{fig:remotenetworktree5}
+\end{figure}
--- a/chapter5.tex	Sat Feb 14 14:25:36 2015 +0900
+++ b/chapter5.tex	Mon Feb 16 01:03:14 2015 +0900
@@ -1,14 +1,83 @@
 \chapter{TreeVNC の評価}
 
-\section{評価環境}
-\section{depth毎の遅延}
+\section{木の深さによるメッセージ伝達の遅延}
+VNCServer から受信する画像データ、
+TreeVNC で扱われるメッセージ通信は構成された木を伝って伝達される。
+接続する人数が増える毎に木の段数は増えていく。
+そこで root から木の末端の node まで、
+メッセージが遅延することなく伝達できているかを検証する実験を行った。
+
+
+\section{実験環境}
+
+授業を受講している学生が TreeVNC を使用した状態で実験を行った。
+TreeVNC には最大で34名が接続していた。
+
+\section{メッセージを使用した実測}
+
+TreeVNC を伝搬するメッセージに、CHECK\_DELAY・CHECK\_DELAY\_REPLY を追加した。
+CHECK\_DELAY は root から node の末端まで伝達するメッセージ(図\ref{fig:checkdelay}, 左)、
+CHECK\_DELAY\_REPLY は各 node から root まで伝達するメッセージ(図\ref{fig:checkdelay}, 右)である。
+
+% heart beat 代わりにも使える等の違ったメリットも書く?
+% デバッグに使用できたとかって
 
 \begin{figure}[htpd]
   \begin{center}
-    \includegraphics[scale=1.0]{./images/Test/step1.eps}
+    \includegraphics[scale=0.6]{./images/Test/checkDelay.pdf}
+  \end{center}
+  \caption{CHECH\_DELAY, CHECK\_DELAY\_REPLY}
+  \label{fig:checkdelay}
+\end{figure}
+
+\newpage
+
+CHECK\_DELAY message は、送信時刻を付けて送信する。
+root から CHECK\_DELAY 送信し、
+末端 node まで各 node を伝いながら伝達して行く。
+
+CHECK\_DELAY\_REPLY には、CHECK\_DELAY から受け取った送信時刻をそのまま付つけて送信する。
+CHECK\_DELAY を受け取った各 node は、
+CHECK\_DELAY\_REPLY を接続している親 node に送信する。
+
+CHECK\_DELAY\_REPLY を受け取った root は、
+メッセージの伝達にどれだけの時間がかかったかを計算する。
+
+計算方法を以下のソースコード\ref{calc}に記述する。
+各 node にデータを下ろす際も、root にデータが上る際も、
+木を伝い受け渡されている。
+なので、データが root から末端 node に伝わる時間は、
+CHECK\_DELAY を送信した時間と、
+CHECK\_DELAY\_REPLY を受信した時間の半分であるといえる。
+
+% あとでコメントアウトはずす
+\begin{lstlisting}[caption=遅延時間の計算方法,label=calc]
+  Long delay = System.currentTimeMillis() - time;
+  double halfDelay = (double) delay / 2;
+\end{lstlisting}
+
+
+\section{depth毎の遅延結果}
+
+バイナリツリーで木を構成した場合、
+node 数が34台だと深さが5となる。
+各木構造の階層毎に、メッセージの伝搬にかかった時間を測定した。
+
+図\ref{fig:test}は遅延の分布を示したヒストグラムである。
+X軸はメッセージ伝達にかかった秒数(ms)、
+Y軸は CHECK\_DELAY\_REPLY を送信した node の割合を表している。
+
+ほとんどのメッセージの伝達は 0.0 〜 4.0 ミリ秒内に収まっている。
+木の段数毎に、メッセージ伝達速度の差が生じている。
+深い段数の node ほど、メッセージ伝達速度が落ちている。
+
+
+\begin{figure}[htpd]
+  \begin{center}
+    \includegraphics[scale=0.8]{./images/Test/test.pdf}
   \end{center}
   \caption{step1}
-  \label{fig:gpuarch}
+  \label{fig:test}
 \end{figure}
 
 %\begin{figure}[htpd]
--- a/chapter6.tex	Sat Feb 14 14:25:36 2015 +0900
+++ b/chapter6.tex	Mon Feb 16 01:03:14 2015 +0900
@@ -1,4 +1,42 @@
 \chapter{まとめ}
 
 \section{改良点のまとめ}
+今回の TreeVNC のリファクタリング・新機能実装を終えて、
+改良した点を以下に箇条書きにまとめる。
+
+
+\begin{itemize}
+  \item 1台の PC で TreeVNC を複数台立ち上げることが可能になり、デバッグしやすくなった
+  \item 共有された画面の描画モードの切り替え(QUALITY モード・SPEED モード)が可能になった
+  \item 画面を切り替え時のビデオフィードバックを失くした
+  \item 複数のネットワークインタフェースが混在することで起こる遅延を解決した
+  \item 切断された node の検知を正しく行えるようになった
+  \item 画面表示サイズをボタンで簡単に切り替えることが可能になった
+  \item 配信画面サイズを指定することが可能になった
+  \item シングルディスプレイのみの配信を可能にし、マルチディスプレイに対応できるようになった
+  \item 遠隔地からの TreeVNC への参加ができるようになった
+\end{itemize}
+
+\newpage
+
 \section{今後の課題}
+
+\begin{description}
+  \item[音声機能の追加]\mbox{}\\
+    遠隔地からの接続が可能になったことにより、
+    画面の配信は行えるようになった。
+    しかし、遠隔地からだと画面の表示だけでなく、配信者の音声も取得したい。
+    画像データと同様に、音声データをメッセージとして送信することは可能である。
+  \item[記録機能の追加]\mbox{}\\
+    TreeVNC 使用後、配信されていた画面データをまとめて保存したい。
+  \item[質問・意見の共有]\mbox{}\\
+    授業で TreeVNC を使用する際に、
+    受講者から教授に対して質問できるようにしたい。
+    授業中の書記等も全体で共有できるようにしたい。
+  \item[MindMapでの書記]\mbox{}\\
+    会議等で TreeVNC を使用する際、
+    配信者とは別に、新たに MindMap の画面を用意したい。
+    書記の人の MindMap をリアルタイムで共有したい。
+    あとから MindMap のデータを共有したい。
+\end{description}
+
--- a/images/chapter3/LostParent.xbb	Sat Feb 14 14:25:36 2015 +0900
+++ b/images/chapter3/LostParent.xbb	Mon Feb 16 01:03:14 2015 +0900
@@ -1,8 +1,8 @@
-%%Title: ./lostParent.pdf
+%%Title: ./LostParent.pdf
 %%Creator: extractbb 20140317
 %%BoundingBox: 0 0 395 257
 %%HiResBoundingBox: 0.000000 0.000000 394.500000 257.250000
 %%PDFVersion: 1.3
 %%Pages: 1
-%%CreationDate: Fri Feb 13 16:25:37 2015
+%%CreationDate: Sat Feb 14 22:44:48 2015
 
--- a/images/chapter3/MultiNetworkTree.xbb	Sat Feb 14 14:25:36 2015 +0900
+++ b/images/chapter3/MultiNetworkTree.xbb	Mon Feb 16 01:03:14 2015 +0900
@@ -4,5 +4,5 @@
 %%HiResBoundingBox: 0.000000 0.000000 693.000000 453.000000
 %%PDFVersion: 1.3
 %%Pages: 1
-%%CreationDate: Sun Feb  8 13:05:09 2015
+%%CreationDate: Sat Feb 14 22:44:48 2015
 
Binary file images/chapter3/lostChild1.pdf has changed
--- a/images/chapter3/lostChild1.xbb	Sat Feb 14 14:25:36 2015 +0900
+++ b/images/chapter3/lostChild1.xbb	Mon Feb 16 01:03:14 2015 +0900
@@ -1,8 +1,8 @@
 %%Title: ./lostChild1.pdf
 %%Creator: extractbb 20140317
-%%BoundingBox: 0 0 627 267
-%%HiResBoundingBox: 0.000000 0.000000 627.000000 267.000000
+%%BoundingBox: 0 0 587 281
+%%HiResBoundingBox: 0.000000 0.000000 586.500000 281.250000
 %%PDFVersion: 1.3
 %%Pages: 1
-%%CreationDate: Fri Feb 13 16:23:43 2015
+%%CreationDate: Sun Feb 15 23:32:55 2015
 
--- a/images/chapter3/lostChild2.xbb	Sat Feb 14 14:25:36 2015 +0900
+++ b/images/chapter3/lostChild2.xbb	Mon Feb 16 01:03:14 2015 +0900
@@ -4,5 +4,5 @@
 %%HiResBoundingBox: 0.000000 0.000000 338.250000 220.500000
 %%PDFVersion: 1.3
 %%Pages: 1
-%%CreationDate: Fri Feb 13 16:28:47 2015
+%%CreationDate: Sat Feb 14 22:44:48 2015
 
--- a/images/chapter4/flameDisplaySizeFilterVer.xbb	Sat Feb 14 14:25:36 2015 +0900
+++ b/images/chapter4/flameDisplaySizeFilterVer.xbb	Mon Feb 16 01:03:14 2015 +0900
@@ -4,5 +4,5 @@
 %%HiResBoundingBox: 0.000000 0.000000 886.000000 367.000000
 %%PDFVersion: 1.4
 %%Pages: 1
-%%CreationDate: Sun Feb  8 01:06:31 2015
+%%CreationDate: Sat Feb 14 22:58:51 2015
 
--- a/images/chapter4/flameDisplaySizeTimerVer.xbb	Sat Feb 14 14:25:36 2015 +0900
+++ b/images/chapter4/flameDisplaySizeTimerVer.xbb	Mon Feb 16 01:03:14 2015 +0900
@@ -4,5 +4,5 @@
 %%HiResBoundingBox: 0.000000 0.000000 723.000000 367.000000
 %%PDFVersion: 1.4
 %%Pages: 1
-%%CreationDate: Sun Feb  8 01:06:31 2015
+%%CreationDate: Sat Feb 14 22:58:51 2015
 
Binary file images/chapter4/remoteNetwork.pdf has changed
--- a/images/chapter4/remoteNetwork.xbb	Sat Feb 14 14:25:36 2015 +0900
+++ b/images/chapter4/remoteNetwork.xbb	Mon Feb 16 01:03:14 2015 +0900
@@ -1,8 +1,8 @@
 %%Title: ./remoteNetwork.pdf
 %%Creator: extractbb 20140317
-%%BoundingBox: 0 0 513 587
-%%HiResBoundingBox: 0.000000 0.000000 513.000000 587.000000
+%%BoundingBox: 0 0 413 304
+%%HiResBoundingBox: 0.000000 0.000000 413.250000 303.750000
 %%PDFVersion: 1.3
 %%Pages: 1
-%%CreationDate: Sun Feb  8 00:21:49 2015
+%%CreationDate: Sat Feb 14 22:58:51 2015
 
Binary file images/chapter4/remoteNetwork2.pdf has changed
--- a/images/chapter4/remoteNetwork2.xbb	Sat Feb 14 14:25:36 2015 +0900
+++ b/images/chapter4/remoteNetwork2.xbb	Mon Feb 16 01:03:14 2015 +0900
@@ -1,8 +1,8 @@
 %%Title: ./remoteNetwork2.pdf
 %%Creator: extractbb 20140317
-%%BoundingBox: 0 0 532 652
-%%HiResBoundingBox: 0.000000 0.000000 532.000000 652.000000
+%%BoundingBox: 0 0 665 292
+%%HiResBoundingBox: 0.000000 0.000000 665.250000 291.750000
 %%PDFVersion: 1.3
 %%Pages: 1
-%%CreationDate: Sun Feb  8 00:21:49 2015
+%%CreationDate: Sat Feb 14 22:58:51 2015
 
--- a/images/chapter4/remoteNetwork3.xbb	Sat Feb 14 14:25:36 2015 +0900
+++ b/images/chapter4/remoteNetwork3.xbb	Mon Feb 16 01:03:14 2015 +0900
@@ -4,5 +4,5 @@
 %%HiResBoundingBox: 0.000000 0.000000 516.000000 621.000000
 %%PDFVersion: 1.3
 %%Pages: 1
-%%CreationDate: Sun Feb  8 00:21:49 2015
+%%CreationDate: Sat Feb 14 22:58:51 2015
 
--- a/images/chapter4/remoteNetwork4.xbb	Sat Feb 14 14:25:36 2015 +0900
+++ b/images/chapter4/remoteNetwork4.xbb	Mon Feb 16 01:03:14 2015 +0900
@@ -4,5 +4,5 @@
 %%HiResBoundingBox: 0.000000 0.000000 532.000000 688.000000
 %%PDFVersion: 1.3
 %%Pages: 1
-%%CreationDate: Sun Feb  8 00:21:49 2015
+%%CreationDate: Sat Feb 14 22:58:51 2015
 
--- a/images/chapter4/sendInitData.xbb	Sat Feb 14 14:25:36 2015 +0900
+++ b/images/chapter4/sendInitData.xbb	Mon Feb 16 01:03:14 2015 +0900
@@ -4,5 +4,5 @@
 %%HiResBoundingBox: 0.000000 0.000000 272.250000 312.000000
 %%PDFVersion: 1.3
 %%Pages: 1
-%%CreationDate: Fri Feb 13 16:53:29 2015
+%%CreationDate: Sat Feb 14 22:58:51 2015
 
--- a/thesis-paper.tex	Sat Feb 14 14:25:36 2015 +0900
+++ b/thesis-paper.tex	Mon Feb 16 01:03:14 2015 +0900
@@ -7,7 +7,10 @@
 \usepackage{listings,jlisting}
 
 \lstset{
+  language={Java},
+  basicstyle={\small},
   commentstyle={\itshape \color[cmyk]{1,0,1,0}},
+  numbers=left,
   frame=single,
   tabsize=2
 }