annotate paper/main.tex @ 3:0fa28652aa74

Add TreeVNC outline for prosym
author Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
date Thu, 04 Feb 2016 18:50:39 +0900
parents 2ab5639a8ea7
children 77b8edf27879
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 \documentclass[a4j,12pt]{jreport}
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 \usepackage[dvips]{graphicx}
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 \usepackage{mythesis}
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 \usepackage{multirow}
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 \usepackage{here}
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 \setlength{\itemsep}{-1zh}
2
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
7 \title{PC画面配信システムTreeVNCの NAT への対応}
0
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 \icon{
2
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
9 \includegraphics[width=80mm,bb=0 0 595 842]{fig/ryukyu.pdf}
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
10 }
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
11 \year{平成27年度 卒業論文}
0
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 \belongto{琉球大学工学部情報工学科}
2
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
13 \author{125716B 伊波 立樹 \\ 指導教員 {河野 真治} }
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
14
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
15 %% TreeVNC のNATへの対応
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
16 %% マルチスクリーン TreeVNC
0
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 %% プリアンブルに記述
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 %% Figure 環境中で Table 環境の見出しを表示・カウンタの操作に必要
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 %%
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 \makeatletter
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 \newcommand{\figcaption}[1]{\def\@captype{figure}\caption{#1}}
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 \newcommand{\tblcaption}[1]{\def\@captype{table}\caption{#1}}
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 \makeatother
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 \setlength\abovecaptionskip{0pt}
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 \begin{document}
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 % タイトル
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 \maketitle
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 \baselineskip 17pt plus 1pt minus 1pt
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32 \pagenumbering{roman}
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 \setcounter{page}{0}
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 \tableofcontents % 目次
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 \listoffigures % 図目次
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 \listoftables % 表目次
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 %以下のように、章ごとに個別の tex ファイルを作成して、
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 % main.tex をコンパイルして確認する。
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 %章分けは個人で違うので下のフォーマットを参考にして下さい。
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 % はじめに
2
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
44
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
45 \chapter{画面共有を利用したコミュニケーション}
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
46 \label{chap:introduction}
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
47 \pagenumbering{arabic}
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
48
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
49 %序論の目安としては1枚半ぐらい.
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
50 %英語発表者は,最終予稿の「はじめに」の英訳などを載せてもいいかも.
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
51
0
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
52
2
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
53 \chapter{TreeVNC の概念}
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
54 \label{chap:concept}
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
55
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
56 \section{VNC}
3
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
57 VNC(Virtual Network Computing) は、 RFBプロトコルを用いて遠隔操作を行うリモートデスクトップソフトウェアである。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
58 VNC はサーバー側とクライアント(ビューア)側に分かれている。 サーバを起動し、クライアントがサーバに接続を行い遠隔操作を可能とする。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
59
2
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
60 \section{RFB プロトコル}
3
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
61 RFB(remote frame buffer)プロトコル\cite{rfbProtocol}とは、自身の画面を送信し、ネットワーク越しに他者の画面に表示するプロトコルである。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
62 ユーザが居る側をRFBクライアント側と呼び、Framebufferへの更新が行われる側はRFBサーバと呼ぶ。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
63 Framebufferとは、メモリ上に置かれた画像データのことである。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
64 RFBプロトコルでは、最初にプロトコルバージョンの確認や認証が行われる。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
65 その後、クライアントに向けてFramebufferの大きさやデスクトップに付けられた名前などが含まれている初期メッセージが送信される。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
66 RFBサーバ側はFramebufferの更新が行われるたびに、RFBクライアントに対してFramebufferの変更部分だけを送信する。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
67 更にRFBクライアントのFramebufferUpdateRequestが来るとそれに答え返信する。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
68 RFBプロトコルは、描画データに使われるエンコードが多数用意されており、また独自のエンコードを実装することもできるプロトコルである。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
69
2
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
70 \section{多人数で VNC を使用する際の問題}
3
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
71 VNCを使用すればクライアント側にサーバー側の画面を表示することが可能である。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
72 しかし、多人数のクライアントが1つのサーバーに接続してしまうと処理性能が落ちてしまうという問題点がある。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
73
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
74 また、 ゼミ等の発表で画面配信者が頻繁に切り替わる場合、
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
75 配信者が替わる度にアプリケーションを終了し、接続をし直さないといけないという問題がある。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
76
2
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
77 \section{TreeVNC の構造}
3
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
78 TreeVNC は Java を用いて作成された TightVNC(Tight Virtual Network Computing)\cite{tightvnc} を元に作成されている。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
79
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
80 TreeVNC は クライアント同士を接続させ、画面描画のデータを受け取ったクライアントが次のクライアントにデータを流す方式を取っている。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
81 また、サーバへ接続しに来たクライアントをバイナリツリー状に接続する(図\ref{fig:tree})。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
82 バイナリツリー状に接続することで、$N$台のクライアントが接続しに来た場合、画面配信の画像データをコピーする回数は従来の VNC ではサーバ側で$N$回する必要があるが、TreeVNCでは各ノードが2回ずつコピーするだけで済む。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
83
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
84 TreeVNCで通信される画像のデータ量は大きいため、大きなネットワークスループットが必要である。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
85 そのため、有線接続が必須である。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
86
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
87 バイナリツリーのルートのノードを Root Node と呼び、 Root Node に接続されるノードを Node と呼ぶ
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
88 Root Node は子 Nodeにデータを流す機能に加え、各 Node の管理、 VNC サーバーから流れてきた画像データの管理を行う。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
89 Node は 親 Node から送られたデータを 自分の子 Node に流す機能、 逆に子 Node から送られてきたデータを 親 Node に流す機能がある。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
90
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
91 \begin{figure}[ht]
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
92 \begin{center}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
93 \includegraphics[width=70mm]{./pic/TreeVNC.pdf}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
94 \end{center}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
95 \caption{構成される木構造}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
96 \label{fig:tree}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
97 \end{figure}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
98
2
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
99 \section{圧縮形式}
3
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
100 TreeVNC は ZRLEE\cite{taninari:2012a} というエンコードでデータのやり取りを行う。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
101 ZRLEE はRFB プロトコルで使えるエンコーディングタイプの ZRLE を元に生成される。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
102
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
103 ZRLE は Zlib\cite{zlib} で圧縮されたデータとそのデータのバイト数がヘッダーとして付けて送られてくる。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
104 Zlib は java.util.zip.deflater と java.util.zip.inflater で圧縮と解凍が行える。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
105
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
106 しかし、 java.util.zip.deflater は解凍に必要な辞書を書き出す(flush)ことが出来ない。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
107 辞書を書き出すことが出来ないため、 Zlib圧縮されたデータを途中から受け取ってもデータを正しく解凍することが出来ない。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
108
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
109 そこで ZRLEE は 一度 Root Node で受け取った ZRLE のデータを unzip し、 データをzip し直して最後に finish() をいれることで初めからデータを呼んでいなくても解凍を行えるようにした。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
110
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
111 一度 ZRLEE に変換してしまえば子 Node はそのデータをそのまま流すだけで良い。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
112 ただし、deflater と inflater では前回までの通信で得た辞書をクリアしないといけないため、 Root Node と Node 側では毎回新しく作る必要がある。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
113
2
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
114 \section{通信経路}
3
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
115 TreeVNC の通信経路として以下が挙げられる
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
116 \begin{itemize}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
117 \item ある Node から Root Node に直接通信を行う send direct message (Node to Root)
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
118 \item Root Node からある Node に直接通信を行う send direct message (Root to Node)
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
119 \item Root Node から木の末端の Node までのすべての Nodeに通信を行う messeage down tree (Root to Node)
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
120 \item ある Node から木構造を上に辿って Root Nodeまで通信を行う message up tree (Node to Root)
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
121 \item Root Node から配信者の VNC サーバーへの通信を行う send message (Root to VNCServer)
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
122 \item VNC サーバーから Root Node への通信を行う send message (VNCServer to Root)
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
123 \end{itemize}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
124
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
125 \section{ノード間で行われるメッセージ通信}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
126 RFBプロトコルで提供されているメッセージに加え、 TreeVNC 独自のメッセージを使用している。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
127 TreeVNC で使用されるメッセージの一覧を表\ref{tb:message}に示す。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
128
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
129 \begin{table}[h!]
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
130 \caption{通信経路とメッセージ一覧}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
131 \large
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
132 \scalebox{0.4} {
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
133 \begin{tabular}{|l|l|l|} \hline
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
134 通信経路 & message & 説明 \\ \hline \hline
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
135 & FIND\_ROOT & TreeVNC接続時にRoot Nodeを探す。 \\ \cline{2-3}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
136 send direct message & WHERE\_TO\_CONNECT & 接続先をRoot Nodeに聞く。 \\ \cline{2-3}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
137 (Node to Root) & LOST\_CHILD & 子Nodeの切断をRoot Nodeに知らせる。 \\ \hline \hline
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
138
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
139 & FIND\_ROOT\_REPLY & FIND\_ROOTへの返信。 \\ \cline{2-3}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
140 send direct message & CONNECT\_TO\_AS\_LEADER & 左子Nodeとして接続する。接続先のNodeが含まれている。 \\ \cline{2-3}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
141 (Root to Node) & CONNECT & 右子Nodeとして接続する。接続先のNodeが含まれている。 \\ \hline \hline
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
142
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
143 message down tree & FRAMEBUFFER\_UPDATE & 画像データ。EncodingTypeを持っている。\\ \cline{2-3}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
144 (Root to Node) & CHECK\_DELAY & 通信の遅延を測定する。 \\ \hline \hline
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
145
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
146 message up tree & CHECK\_DELAY\_REPLY & CHECK\_DELAYへの返信。 \\ \cline{2-3}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
147 (Node to Root) & SERVER\_CHANGE\_REQUEST & 画面切り替え要求。 \\ \hline \hline
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
148
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
149 & FRAMEBUFFER\_UPDATE\_REPLY & 画像データの要求。 \\ \cline{2-3}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
150 send message & SET\_PIXEL\_FORMAT & pixel値の設定。 \\ \cline{2-3}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
151 (Root to VNCServer) & SET\_ENCODINGS & pixelデータのencodeTypeの設定。 \\ \cline{2-3}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
152 & KEY\_EVENT & キーボードからのイベント。 \\ \cline{2-3}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
153 & POINTER\_EVENT & ポインタからのイベント。 \\ \cline{2-3}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
154 & CLIENT\_CUT\_TEXT & テキストのカットバッファを持った際のmessage。 \\ \hline \hline
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
155
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
156 & FRAMEBUFFER\_UPDATE & 画像データ。EncodingTypeを持っている。 \\ \cline{2-3}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
157 send message & SET\_COLOR\_MAP\_ENTRIES & 指定されているpixel値にマップするRGB値。 \\ \cline{2-3}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
158 (VNCServer to Root) & BELL & ビープ音を鳴らす。 \\ \cline{2-3}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
159 & SERVER\_CUT\_TEXT & サーバがテキストのカットバッファを持った際のmessage。 \\ \hline
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
160 \end{tabular}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
161 }
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
162 \label{tb:message}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
163 \end{table}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
164
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
165 図\ref{fig:message}は TreeVNC で Node が Root Node に接続し、画像データを受信するまでのメッセージ通信の様子である。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
166 図\ref{fig:message}の手順として
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
167
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
168 \begin{itemize}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
169 \item 接続を行う Node (以下 Client Node)はMulticast通信で Root Node に対してFIND\_ROOTを送信する(1:findRoot())
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
170 \item Root NodeがFIND\_ROOTを受信し、FIND\_ROOT\_REPLYを送信する(2:findRootReplay())
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
171 \item Client Node 側で、どのRoot Nodeに接続するかを選択するパネルが表示される
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
172 \item Client Node はパネルで接続するRoot Nodeを選択し、Rootに対して接続先を要求するWHERE\_TO\_CONNECTを送信する(3:whereToConnect())
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
173 \item 受信した Root Node は Client Node の接続先をCONNECT\_TOで送信する(4:connectTo)
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
174 \item Client Node は Root の指定した接続先に接続しに行く
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
175 \item Root Node, Client Node間の接続が確立後、Root Node から Clinet Node に対して定期的に画像データFRAME\_BUFFER\_UPDATEを送信する(5:framebufferUpdate())
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
176 \end{itemize}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
177
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
178 を行っている。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
179
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
180 \begin{figure}[ht]
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
181 \begin{center}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
182 \includegraphics[width=65mm]{./pic/message.pdf}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
183 \end{center}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
184 \caption{node 間で行われるメッセージ通信}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
185 \label{fig:message}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
186 \end{figure}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
187
2
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
188 \section{MulticastQueue}
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
189 \section{木の再構成}
3
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
190 TreeVNC はバイナリツリーでの接続という特性上 Node が切断されたことを検知できずにいると、Node 同士で構成された木構造が崩れてしまい、新しい Node が接続に来た場合に適切な場所に Node を接続することができなくなってしまう。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
191 木構造を崩さないよう、Node 同士の接続を再構成を行う必要がある。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
192
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
193 TreeVNC の木構造のネットワークトポロジーは Root Node が持っている nodeList というリストで管理している。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
194 つまり、Node の接続が切れた場合、木の再構成を行うため Root Node に知らせなければならない。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
195
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
196 TreeVNC は Lost\_CHILD というメッセージ通信で Node の切断を検知・木の再構成を行っている。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
197
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
198 TreeVNC は VNC サーバーから送られる画像データ(FRAME\_BUFFER\_Update)を MulticastQueue というキューに蓄積しており、
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
199 Node はこのキューから画像データを取得し、画面を描画している。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
200 Lost\_Child の検出方法はこの MulticastQueue を使用している。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
201 ある一定時間 MulticastQueue から画像データが取得されない場合 Memory Over Flow を回避するために Timeout スレッドが用意されている。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
202 Timeout を検知した際、Node との接続が切れたと判断する。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
203
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
204 Lost\_Child の検知・木の再構成を以下に示す。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
205 \begin{itemize}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
206 \item 子 Node の切断を検知した Node が Root Node へ LOST\_CHILD メッセージを送信する(図\ref{fig:lostchild1}中, 1:lostChild())
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
207 \item LOST\_CHILD メッセージを受け取った Root Node は nodeList の更新を行う(図\ref{fig:lostchild1}中, 2:updateNodeList())
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
208 \item 切断した Node を nodeList から消し、nodeList の最後尾の Node に切断した node number を割り当てる
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
209 \item Root Node は最後尾の Node に、切断した子 Node が接続していた親 Node に接続する様に CONNECT\_TO メッセージを送信する(図\ref{fig:lostchild1}中, 3:connectTo(1))
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
210 \item 最後尾の Node が子 Node を失った親 Node へ接続しに行く(図\ref{fig:lostchild1}中, 4:connectToParent(1))
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
211 \end{itemize}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
212
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
213 \begin{figure}[ht]
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
214 \begin{center}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
215 \includegraphics[width=70mm]{./pic/lostChild1.pdf}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
216 \end{center}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
217 \caption{LOST\_CHILD を検知・再接続}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
218 \label{fig:lostchild1}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
219 \end{figure}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
220
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
221 LOST\_CHILD によって、 切断された全ての Node を検知することができるため、 nodeList の更新が正しく行われる。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
222 よって、新しく接続に来た Node を適切な場所に接続することが可能となる。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
223
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
224 \section{共有画面切り替え}
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
225 ゼミでは発表者が順々に入れ替わる。発表者が入れ替わる度に共有する画面の切り替えが必要となる。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
226 ゼミを円滑に進めるために、画面の切り替えをスムーズに行いたい。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
227
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
228 画面の共有にプロジェクタを使用する場合、 発表者が変わる度にケーブルの抜き差しを行う必要がある。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
229 その際に、ディスプレイ解像度を設定し直す必要が出たり、 接続不良が起こる等の煩わしい問題が生じることがある。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
230
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
231 従来のVNCを使用する場合、 画面の切り替えの度に一旦VNCを終了し、発表者の VNC サーバーへと再接続を行う必要がある。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
232
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
233 TreeVNC は配信者の切り替えの度に生じる問題を解決している。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
234 TreeVNC を立ち上げることで、ケーブルを使用する必要なしに、各参加者の手元のPCに発表者の画面を共有することができる。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
235 画面の切り替えはユーザが VNC サーバーへの再接続を行うことなく、ビューアの Share Screen ボタンを押すことによって、配信者の切り替えを行うことができる。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
236
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
237 TreeVNC の Root Node は配信者の VNC サーバーと通信を行っている。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
238 VNC サーバーから画面データを受信し、そのデータを 子 Node へと送信している。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
239 配信者切り替え時に Share Screen ボタンが押されると、
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
240 Root Node は Share Screen ボタン を押したクライアントの VNC サーバーと通信を始める。
0fa28652aa74 Add TreeVNC outline for prosym
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
241 そのためTreeVNCは配信者切り替えの度に VNC を終了し、再接続する必要がない。
2
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
242 \section{複数ネットワークへの対応}
0
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
243
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
244 % 実験
2
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
245 \chapter{TreeVNC の追加機能}
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
246 \label{chap:poordirection}
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
247 \section{マルチディスプレイ対応}
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
248 \section{NAT越え}
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
249 \section{ネックになっているノードへの対処}
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
250 \section{別 Thread での画面切り替え}
0
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
251
2
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
252 \chapter{TreeVNC の評価}
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
253 \section{画像データ伝達の遅延}
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
254 \section{実験環境}
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
255 \section{メッセージを使用した実測}
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
256 \section{結果}
0
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
257
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
258 % 今後の課題
2
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
259
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
260 \chapter{まとめ}
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
261 \section{NATを越えた画面切り替え}
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
262 \section{新機能の評価}
0
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
263
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
264 % 参考文献
2
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
265 \def\line{−\hspace*{-.7zw}−}
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
266
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
267 \begin{thebibliography}{99}
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
268 %\bibitem{*}内の * は各自わかりやすい名前などをつけて、
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
269 %論文中には \cite{*} のように使用する。
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
270 %これをベースに書き換えた方が楽かも。
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
271 %書籍、論文、URLによって若干書き方が異なる。
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
272 %URLを載せる人は参考にした年月日を最後に記入すること。
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
273
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
274 \bibitem{hoge}
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
275 hoge
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
276 \end{thebibliography}
0
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
277
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
278 % 謝辞
2
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
279
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
280 \chapter*{謝辞}
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
281 \thispagestyle{empty}
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
282
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
283 %基本的な内容は以下の通り.参考にしてみて下さい.
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
284 %厳密な決まりは無いので,個々人の文体でも構わない.
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
285 %GISゼミや英語ゼミに参加した人はその分も入れておく.
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
286 %順番は重要なので気を付けるように.(提出前に周りの人に確認してもらう.)
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
287
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
288 \hspace{1zw}本研究の遂行,また本論文の作成にあたり、御多忙にも関わらず終始懇切なる御指導と御教授を賜わりましたhoge助教授に深く感謝したします。
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
289
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
290 また、本研究の遂行及び本論文の作成にあたり、日頃より終始懇切なる御教授と御指導を賜わりましたhoge教授に心より深く感謝致します。
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
291
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
292 数々の貴重な御助言と細かな御配慮を戴いたhoge研究室のhoge氏に深く感謝致します。
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
293
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
294 また一年間共に研究を行い、暖かな気遣いと励ましをもって支えてくれたhoge研究室のhoge君、hoge君、hogeさん並びにhoge研究室のhoge、hoge君、hoge君、hoge君、hoge君に感謝致します。
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
295
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
296 最後に、有意義な時間を共に過ごした情報工学科の学友、並びに物心両面で支えてくれた両親に深く感謝致します。
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
297
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
298 \begin{flushright}
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
299 2010年 3月 \\ hoge
2ab5639a8ea7 Update title
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents: 0
diff changeset
300 \end{flushright}
0
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
301
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
302 % 付録
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
303
4dc056cecb6c Add templete
Tatsuki IHA <e125716@ie.u-ryukyu.ac.jp>
parents:
diff changeset
304 \end{document}