annotate Paper/riono-sigos.tex @ 30:850e5397b13d

fix
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Thu, 09 May 2019 18:04:54 +0900
parents ec8e1b783bb2
children f98a0ecdd2c2
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 %%
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 %% 研究報告用スイッチ
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3 %% [techrep]
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 %%
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
5 %% 欧文表記無しのスイッチ(etitle,eabstractは任意)
2
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6 %% [noauthor]
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 %%
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
9 \documentclass[submit,techrep]{ipsj} % 英文著者名を含む
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
10 %\documentclass[submit,techrep,noauthor]{ipsj} % 日本語のみ
2
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13
10
bc2fba6636b7 add new Images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
14 %\usepackage[dvips]{graphicx}
bc2fba6636b7 add new Images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
15 \usepackage[dvipdfmx]{graphicx}
2
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 \usepackage{latexsym}
20
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
17 \usepackage{url}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 19
diff changeset
18
2
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 \def\Underline{\setbox0\hbox\bgroup\let\\\endUnderline}
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 \def\endUnderline{\vphantom{y}\egroup\smash{\underline{\box0}}\\}
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22 \def\|{\verb|}
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 %
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 %\setcounter{巻数}{59}%vol59=2018
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 %\setcounter{号数}{10}
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 %\setcounter{page}{1}
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 \begin{document}
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 \title{画像配信システム TreeVNC のマルチキャストの導入}
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34
26
749c91efcd9b paper wrote new column
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
35 \etitle{Introduction of multicast of screen delivery software TreeVNC}
2
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 %\affiliate{IPSJ}{情報処理学会\\
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 %IPSJ, Chiyoda, Tokyo 101--0062, Japan}
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 \paffiliate{IEUR}{琉球大学工学部情報工学科\\
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 Information Engineering, University of the Ryukyus.}
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43
5
4dcce060bcc8 paper section1 writing
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
44 \author{安田 亮}{Ryo Yasuda}{IEUR}[riono210@cr.ie.u-ryukyu.ac.jp]
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
45 \author{大城 由也}{Yukiya Oshiro}{}[oshiro@cr.ie.u-ryukyu.ac.jp]
5
4dcce060bcc8 paper section1 writing
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
46 \author{河野 真治}{Shinji Kono}{IEUR}[kono@ie.u-ryukyu.ac.jp]
2
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
47
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
48 \begin{abstract}
30
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
49 講義やゼミではPC画面で用意した資料を見ながら進行することが多い.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
50 参加者もプロジェクタに集中を割く必要があり, 手元のPCと相互に参照する場合, 負担になる場合がある.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
51 発表者が交代する場合は発表者のPC画面の切り替えでケーブルを差し替えを行う必要があるが,
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
52 PCと接続するアダプターによって正常にPC画面を表示できない場合がある.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
53 当研究室で開発しているTreeVNCは, 発表者のPC画面を参加者のPCに表示する画面配信システムである.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
54 サーバに接続したクライアントをバイナリツリー状に接続し, 配信コストを分散させる仕組みを取ることで,
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
55 多人数が接続しても処理性能が下がらないような設計になっている.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
56 また, 発表者の画面を自由に切り替える仕組みが存在し, ゼミなどでの発表に便利なものになっている.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
57 現在, TreeVNC 画面共有は送信するデータ量が多いため有線LANでの使用に限られている.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
58 広く使われている無線LANに対応するために
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
59 multicast でのデータ通信の実装やデータの分割・圧縮方法の評価を行い, TreeVNC のmulticastの可能性を評価する.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
60
2
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
61 \end{abstract}
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
62
26
749c91efcd9b paper wrote new column
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
63 \begin{eabstract}
30
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
64 In lectures and seminars, the materials prepared on the PC screen is used.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
65 Participants need to concentrate on the projector, which can be a burden when cross-referencing with the PC at hand.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
66 When the presenter is replaced, the cable needs to be replaced by switching the presenter's PC screen,
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
67 depending on the adapter connected to the PC, the PC screen may not be displayed properly.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
68 TreeVNC, which is being developed in our laboratory, is a screen distribution system that displays the presenter's PC screen on the participant's PC.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
69 By connecting clients connected to the server in the form of a binary tree and distributing the delivery cost,
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
70 It is designed so that the processing performance does not decrease even if many people connect.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
71 In addition, there is a mechanism for freely switching the screen of the presenter, which is convenient for presentations at seminars and the like.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
72 Currently, TreeVNC screen sharing is limited to wired LANs because of the large amount of data.
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
73 To support widely used wireless LAN,
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
74 we evaluate the implementation of data communication in multicast and the data division
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 29
diff changeset
75 and compression method, and evaluate the possibility of multicast in TreeVNC.
26
749c91efcd9b paper wrote new column
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
76 \end{eabstract}
2
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
77 \maketitle
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
78
5
4dcce060bcc8 paper section1 writing
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
79 \section{画面配信ソフトウェア TreeVNCの活用}
29
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
80 現代の講義や発表, プレゼンなどではPC画面で用意した資料を見ながら進行することが多い. ゼミでは発表者のPC画面を切り替えを行いながら発表を行う場合もある.
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
81
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
82 通常このような場面では資料やスライドを表示するためにプロジェクタが利用される. その際, 発表者のPC画面を切り替えるたびにケーブルを差し替える必要がある. 発表者のPCによっては接続するアダプターの種類や解像度の設定により, 正常にPC画面を表示できない場合がある. また, 参加者もプロジェクタに集中を割く必要があり, 手元のPCと相互に参照する場合, 負担になる場合がある.
5
4dcce060bcc8 paper section1 writing
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
83
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
84 当研究室で開発している画面配信システムTreeVNC\cite{taninari:2011a}は, 発表者の画面を参加者のPCに表示するソフトウェアである. そのため, 参加者は不自由なく手元のPCを操作しながら講義を受けることが可能になる. 更に発表者の切り替えの際もケーブルを差し替えずに, 共有する画面の切り替えが可能になっている.
2
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
85
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
86 しかし, 画面共有は送信するデータ量が多いため, 現在のTreeVNCでは無線LAN接続の場合, 画面の配信に遅延が生じてしまう場合がある. そこで本研究では, multicastでのデータ通信の実装やデータの分割・圧縮方法の評価を行うことにより, 無線LANでの配信環境の向上を目指し, TreeVNCの有用性を評価することで講義やゼミを円滑に行えることを目標とする.
26
749c91efcd9b paper wrote new column
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
87
749c91efcd9b paper wrote new column
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
88 \section{TreeVNCの基本概念}
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
89 VNC(Virtual Network Computing)は, クライアント(ビューワー)側とサーバ側からなるリモートデスクトップソフトウェアである. 遠隔操作にはサーバを起動し, クライアント側がサーバに接続をすることで可能としている. また, 動作にはRFBプロトコルを用いている.
26
749c91efcd9b paper wrote new column
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
90
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
91 TreeVNCはVNC\cite{vnc}を利用した画面配信を行なっている. しかし通常のVNCでは配信側のPCに全ての参加者への配信を行う負荷がかかってしまう. (図\ref{fig:UntilVNC})
26
749c91efcd9b paper wrote new column
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
92
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
93 \begin{figure}[htb] %PDF
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
94 \begin{center}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
95 \includegraphics[width=8cm]{Image/vnc-crop.pdf}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
96 \caption{従来のVNCの接続方法}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
97 \label{fig:UntilVNC}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
98 \end{center}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
99 \end{figure}
2
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
100
29
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
101 RFB(Remote Frame Buffer)プロトコル\cite{rfbprotocol}とは, 自身のPC画面をネットワーク上に送信し他人の画面に表示を行うプロトコルである. 画面が表示されるユーザ側をRFBクライアントと呼び, 画面を送信のためにFramebufferの更新が行われる側をRFBサーバと呼ぶ.
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
102
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
103 Framebufferとは, メモリ上に置かれた画像データのことである. RFBプロトコルでは, 最初にプロトコルのバージョン確認や認証が行われる. その後, クライアントへ向けてFramebufferの大きさやデスクトップに付けられた名前などが含まれている初期メッセージを送信する.
7
8798f20ca953 paper section2-2 writing
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 5
diff changeset
104
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
105 RFBサーバ側はFramebufferの更新が行われるたびに, RFBクライアントに対してFramebufferの変更部分のみを送信する. 更に, RFBクライアントのFramebufferUpdateRequestが来るとそれに答え返信する. 変更部分のみを送信する理由は, 更新がある度に全画面を送信すると, 送信するデータ面と更新にかかる時間面において効率が悪くなるからである.
8
8f5141beca7d paper section3 writing
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 7
diff changeset
106
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
107 TreeVNCはサーバに接続してきたクライアントをバイナリツリー状に接続する. 接続してきたクライアントをノードとし, その下に新たなノード二つを接続していく.
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
108 これにより, 人数分のコピーと送信の手間を分散することができる. (図\ref{fig:TreeStructure}).
29
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
109
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
110 バイナリツリー状に接続することで, N台のクライアントが接続しにきた場合, 従来のVNCではサーバ側がN回のコピーを行なって配信をする必要があるが, TreeVNCでは各ノードが2回ずつコピーをするだけで配信が可能となる.
29
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
111
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
112 送信されるデータは従来の方法ではNノードに対してN-1の通信が必要であるが, 木構造を用いても通信の数は変わらない.
27
59e3ff9abfa8 add new English abstract
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
113
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
114 バイナリツリーのルートのノードをRoot Nodeと呼び, そこに接続されるノードをNodeと呼ぶ. Root Nodeは子Nodeにデータを渡す機能, 各Nodeの管理, VNCサーバから送られてきたデータの管理を行なっている. 各Nodeは, 親Nodeから送られてきたデータを自身の子Nodeに渡す機能, 子Nodeから送られてきたデータを親Nodeに渡す機能がある.
5
4dcce060bcc8 paper section1 writing
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
115
10
bc2fba6636b7 add new Images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
116 \begin{figure}[htb] %PDF
bc2fba6636b7 add new Images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
117 \begin{center}
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
118 \includegraphics[width=8cm]{Image/treevnc-crop.pdf}
10
bc2fba6636b7 add new Images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
119 \caption{TreeVNCの接続方法}
bc2fba6636b7 add new Images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
120 \label{fig:TreeStructure}
bc2fba6636b7 add new Images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
121 \end{center}
bc2fba6636b7 add new Images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
122 \end{figure}
bc2fba6636b7 add new Images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
123
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
124 \section{TreeVNCの通信プロトコル}
10
bc2fba6636b7 add new Images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
125
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
126 TreeVNCの通信経路として以下の6つが挙げられる.
29
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
127
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
128
11
1d893453507d paper section2-4 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
129 \begin{itemize} %箇条書き
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
130 \item Root Nodeから任意のNodeに直接通信を行う send direct message (Root to Node)
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
131 \item 任意のNodeからRoot Nodeに直接通信を行う send direct message (Node to Root)
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
132 \item Root Nodeから木の末端までの全てのNodeに通信を行う message down tree (Root to Node)
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
133 \item 任意のNodeから上に辿ってRoot Nodeまで通信を行う message up tree (Node to Root)
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
134 \item Root Nodeから配信者へのVNCサーバへの通信を行う send message (Root to VNCServer)
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
135 \item 配信者のVNCサーバからRoot Node への通信を行う send message (VNCServer to Root)
11
1d893453507d paper section2-4 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
136 \end{itemize}
1d893453507d paper section2-4 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
137
1d893453507d paper section2-4 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 10
diff changeset
138
12
9824722f2baa paper section2-6 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
139 \subsection{メッセージ通信}
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
140 TreeVNCの各NodeとVNCServer間で通信されるメッセージを表\ref{tb:message}に示す.
12
9824722f2baa paper section2-6 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
141
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
142 \begin{table*}[htbp]
12
9824722f2baa paper section2-6 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
143 \caption{通信経路とメッセージ一覧}
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
144 \scalebox{1}{
12
9824722f2baa paper section2-6 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
145 \begin{tabular}{|l|l|l|} \hline
9824722f2baa paper section2-6 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
146 通信経路 & message & 説明 \\ \hline \hline
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
147 & FIND\_ROOT & TreeVNC接続時にRoot Nodeを探す. \\ \cline{2-3}
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
148 send direct message & WHERE\_TO\_CONNECT & 接続先をRoot Nodeに聞く. \\ \cline{2-3}
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
149 (Node to Root) & LOST\_CHILD & 子Nodeの切断をRoot Nodeに知らせる. \\ \hline \hline
12
9824722f2baa paper section2-6 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
150
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
151 & FIND\_ROOT\_REPLY & FIND\_ROOTへの返信. \\ \cline{2-3}
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
152 send direct message & CONNECT\_TO\_AS\_LEADER & 左子Nodeとして接続する. 接続先のNodeが含まれている. \\ \cline{2-3}
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
153 (Root to Node) & CONNECT\_TO & 右子Nodeとして接続する. 接続先のNodeが含まれている. \\ \hline \hline
12
9824722f2baa paper section2-6 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
154
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
155 message down tree & FRAMEBUFFER\_UPDATE & 画像データ. EncodingTypeを持っている. \\ \cline{2-3}
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
156 (Root to Node) & CHECK\_DELAY & 通信の遅延を測定する. \\ \hline \hline
12
9824722f2baa paper section2-6 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
157
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
158 message up tree & CHECK\_DELAY\_REPLY & CHECK\_DELAYへの返信. \\ \cline{2-3}
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
159 (Node to Root) & SERVER\_CHANGE\_REQUEST & 画面切り替え要求. \\ \hline \hline
12
9824722f2baa paper section2-6 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
160
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
161 & FRAMEBUFFER\_UPDATE\_REPLY & 画像データの要求. \\ \cline{2-3}
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
162 send message & SET\_PIXEL\_FORMAT & pixel値の設定. \\ \cline{2-3}
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
163 (Root to VNCServer) & SET\_ENCODINGS & pixelデータのencodeTypeの設定. \\ \cline{2-3}
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
164 & KEY\_EVENT & キーボードからのイベント. \\ \cline{2-3}
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
165 & POINTER\_EVENT & ポインタからのイベント. \\ \cline{2-3}
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
166 & CLIENT\_CUT\_TEXT & テキストのカットバッファを持った際のmessage. \\ \hline \hline
12
9824722f2baa paper section2-6 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
167
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
168 & FRAMEBUFFER\_UPDATE & 画像データ. EncodingTypeを持っている. \\ \cline{2-3}
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
169 send message & SET\_COLOR\_MAP\_ENTRIES & 指定されているpixel値にマップするRGB値. \\ \cline{2-3}
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
170 (VNCServer to Root) & BELL & ビープ音を鳴らす. \\ \cline{2-3}
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
171 & SERVER\_CUT\_TEXT & サーバがテキストのカットバッファを持った際のmessage. \\ \hline
12
9824722f2baa paper section2-6 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
172 \end{tabular}
9824722f2baa paper section2-6 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
173 }
9824722f2baa paper section2-6 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
174 \label{tb:message}
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
175 \end{table*}
14
d958a06673f4 paper section2-8 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 13
diff changeset
176
12
9824722f2baa paper section2-6 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
177 \subsection{MulticastQueue}
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
178 配信側の画面が更新されるとVNCServerから画像データがFRAME\_BUFFER\_UPDATEメッセージとして送られる. その際, 画像データの更新を複数のNodeに同時に伝えるためにMulticast Queueというキューに画像データを格納する.
12
9824722f2baa paper section2-6 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 11
diff changeset
179
10
bc2fba6636b7 add new Images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 8
diff changeset
180
13
422802774e74 paper section2-7 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
181 \subsection{木構造の再構成}
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
182 TreeVNCはバイナリツリーでの接続のため, Nodeが切断されたことを検知できないと構成した木構造が崩れてしまい, 新しいNodeを適切な場所に接続できなくなってしまう. そこで木構造を崩さないよう, Node同士の接続の再構成を行う必要がある.
26
749c91efcd9b paper wrote new column
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
183
29
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
184 TreeVNCの木構造のネットワークトポロジーはRoot Nodeが持っているnodeListで管理している. Nodeの接続が切れた場合, Root Nodeに切断を知らせなければならない.
13
422802774e74 paper section2-7 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 12
diff changeset
185
29
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
186 TreeVNCはLOST\_CHILDというメッセージ通信で, Nodeの切断を検知および木構造の再構成を行なっている. LOST\_CHILDの検出方法にはMulticastQueueを使用しており, ある一定時間MulticastQueueから画像データが取得されない場合, MemoryOverFlowを回避するためにTimeoutスレッドが用意されている. そして, Timeoutを検知した際にNodeとの接続が切れたと判断する.
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
187
15
095e808d1ee2 paper section2 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
188
27
59e3ff9abfa8 add new English abstract
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
189 \subsection{ZRLEE}
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
190 TreeVNCでは, ZRLEE\cite{taninari:2012a}というエンコード方法でデータの圧縮を行う. ZRLEEはRFBプロトコルで使用できるZRLEというエンコードタイプを元に生成される.
27
59e3ff9abfa8 add new English abstract
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
191
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
192 ZRLEはZlib\cite{zlib}で圧縮されたデータとそのデータのバイト数がヘッダーとして送信される. Zlibはjava.util.zip.deflaterとjava.util.zip.inflaterで圧縮と解凍が行える. しかしjava.util.zip.deflaterはデコードに必要な辞書を書き出す(flush)ことが出来ない. 従って, 圧縮されたデータを途中から受け取るとデータを正しく解凍することが出来ない.
27
59e3ff9abfa8 add new English abstract
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
193
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
194 そこでZRLEEは一度Root Nodeで受け取ったZRLEのデータをunzipし, データをupdate rectangleと呼ばれる画面ごとのデータに辞書を付与してzipし直すことで初めからデータを読み込んでいなくても解凍できるようにした(図\ref{fig:ZRLEE}).
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
195 辞書をクリアすることによりadaptive compressionを実現していることになり圧縮率はむしろ向上する.
27
59e3ff9abfa8 add new English abstract
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
196
29
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
197 \begin{figure}[htb] %PDF
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
198 \begin{center}
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
199 \includegraphics[width=8cm]{Image/EncodeZRLEE.pdf}
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
200 \caption{ZRLEE}
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
201 \label{fig:ZRLEE}
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
202 \end{center}
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
203 \end{figure}
27
59e3ff9abfa8 add new English abstract
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
204
59e3ff9abfa8 add new English abstract
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
205
15
095e808d1ee2 paper section2 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
206 \subsection{ShareScreen}
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
207 従来のVNCでは, 配信者が切り替わるたびにVNCの再起動, サーバ, クライアント間の再接続を行う必要がある. TreeVNCは配信者の切り替えのた度に生じる問題を解決している.
26
749c91efcd9b paper wrote new column
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
208
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
209 TreeVNCを立ち上げることで, ケーブルを使用する必要なしに, 各参加者の手元のPCに発表者の画面を共有することができる. 画面の切り替えについてはユーザがVNCサーバへの再接続を行うことなく, ビューワー側のShare Screenボタンを押すことで配信者の切り替えが可能になっている.
27
59e3ff9abfa8 add new English abstract
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
210
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
211 TreeVNCのRoot Nodeは配信者のVNCサーバと通信を行なっている. VNCサーバから画面データを受信し, そのデータを子Nodeへと送信している. 配信者切り替え時にShare Screenを実行すると, Root Nodeに対し SERVER\_CHANGE\_REQUESTというメッセージが送信される. このメッセージにはShare Screenボタンを押したNodeの番号やディスプレイ情報が付加されている. メッセージを受け取ったRoot Nodeは配信を希望しているNodeのVNCサーバと通信を始める.
15
095e808d1ee2 paper section2 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
212
095e808d1ee2 paper section2 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
213 \begin{figure}[htb] %PDF
095e808d1ee2 paper section2 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
214 \begin{center}
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
215 \includegraphics[width=8cm]{Image/MultiNetworkTree.pdf}
15
095e808d1ee2 paper section2 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
216 \caption{Multi Network Tree}
095e808d1ee2 paper section2 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
217 \label{fig:multinetworktree}
095e808d1ee2 paper section2 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
218 \end{center}
095e808d1ee2 paper section2 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
219 \end{figure}
095e808d1ee2 paper section2 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
220
26
749c91efcd9b paper wrote new column
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
221 \subsection{ネットワーク複数時の接続}
29
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
222 TreeVNCはRoot Nodeが複数のネットワークに接続している場合, 図\ref{fig:multinetworktree}のようにネットワーク別に木構造を形成する. TreeVNCはRoot NodeがTreeManagerというオブジェクトを持っている. TreeManagerはTreeVNCの接続部分を管理しており, 木構造を管理するnodeListを生成する. このnodeListを元に, 新しいNodeの接続や, 切断検出時の接続の切り替え等を行う.
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
223
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
224 Tree ManagerはRoot Nodeの保持しているネットワーク毎に生成される. 新しいNodeが接続してきた際, interfacesからNodeのネットワークと一致するTree Managerを取得し, Node接続の処理を任せる.
15
095e808d1ee2 paper section2 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
225
095e808d1ee2 paper section2 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
226
27
59e3ff9abfa8 add new English abstract
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
227
26
749c91efcd9b paper wrote new column
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
228 %\section{マルチキャストの導入}
749c91efcd9b paper wrote new column
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
229 \section{有線接続との接続形式の違い}
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
230 画面配信のデータ量は膨大なため, 現在のTreeVNCでVNCServerに無線LAN接続を行なった場合, 画面配信の遅延が大きくなってしまう.
29
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
231
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
232 この場合でも画面切り替えの機能は有効である. つまり, 画面を提供するPCのみを無線経由で接続し, 配信を希望する側は有線を使用することができる. ここで, Wifi のMulticast の機能を用いて配信側にもWifiを使用することが可能であると考えられる. Tree Root は無線LANに対して, 変更する UpdateRectangle を Multicast で一度だけ送信する.
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
233
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
234 Wifi のMulticast packet のサイズは 64kbyte が最大となっている. HDや4Kの大きさの画面更新は8Mb * 8byteで圧縮前で64MB程度になる.
27
59e3ff9abfa8 add new English abstract
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
235
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
236 これを圧縮しつつ, 64kbye 毎のパケットに変換して送る必要がある.
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
237 Wifi のMulticast packet は確実に送られること保証されていない. 通し番号を付けて欠落を検出することはできるが, 再送処理は複雑であることが予想される.
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
238
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
239 ここではまずBlocking について考察と実験を行う.
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
240
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
241 \section{RFBのUpdateRectangle の構成}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
242
29
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
243 RFB のUpdateRectangle は以下の表\ref{tb:updateRectangle}の構成になっている. 一つのupdateRectangleには複数のRectangleは入っていて, さらに一つ一つのRectangleの encoding type がある. ここでは ZRLEで encode された Rectangle が一つサーバから送られてくる.
ec8e1b783bb2 fix paper
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 28
diff changeset
244 Rectangle には zlib で圧縮されたデータが指定された長さだけ付いてくる. このデータは, 64x64 の tile にさらに分割されている(図\ref{fig:rectangle}).
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
245 tile 内はパレットとかがある場合があるが, Run length encode されたRGBデータである.
15
095e808d1ee2 paper section2 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 14
diff changeset
246
27
59e3ff9abfa8 add new English abstract
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
247 \begin{figure}[htb] %PDF
59e3ff9abfa8 add new English abstract
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
248 \begin{center}
59e3ff9abfa8 add new English abstract
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
249 \includegraphics[width=8cm]{Image/FrameUpdateRectangle.pdf}
59e3ff9abfa8 add new English abstract
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
250 \caption{Rectangleの分割}
59e3ff9abfa8 add new English abstract
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
251 \label{fig:rectangle}
59e3ff9abfa8 add new English abstract
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
252 \end{center}
59e3ff9abfa8 add new English abstract
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
253 \end{figure}
59e3ff9abfa8 add new English abstract
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 26
diff changeset
254
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
255 このパケットを64kbyteに収まる三つのRectangleに再構成する. この時に, tile 内部は変更する必要はないが, Rectangleの構成は変わる.
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
256 ZRLE を展開しつつ, パケットを構成する必要がある.
26
749c91efcd9b paper wrote new column
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
257
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
258 zlib はちょうど良い所で圧縮を flush する必要がある. このためには, zlib のAPIを用いて, 適当なタイミングで flush を呼ぶ.
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
259 この時に1 tileずづ flush してしまうと圧縮率を下げる可能性がある.
26
749c91efcd9b paper wrote new column
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
260
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
261 64kbyte のpacketの中には複数の tile が存在するが, 連続して Rectangle を構成する必要がある. 行の途中から始まり, 途中で終わる可能性があるので, 三つのRectangleが必要になる.
26
749c91efcd9b paper wrote new column
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
262
749c91efcd9b paper wrote new column
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
263 \begin{table}[hp]
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
264 \caption{updateRectangleの構成}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
265 \begin{tabular}{|rrr|l|} \hline
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
266 1 byte & & & messageID \\
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
267 1 byte & & & padding \\
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
268 2 byte & & & n of rectangles \\ \hline
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
269 & 2 byte & & U16 - x-position \\
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
270 & 2 byte & & U16 - y-position \\
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
271 & 2 byte & & U16 - width \\
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
272 & 2 byte & & U16 - height \\
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
273 & 4 byte & & S32 - encoding-type \\
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
274 & 4 byte & & U32 datalengths \\ \hline
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
275 & & 1 byte & subencoding of tile \\
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
276 & & n byte & Run Length Encoded Tile \\ \hline
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
277 \end{tabular}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
278 \label{tb:updateRectangle}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
279 \end{table}
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
280
26
749c91efcd9b paper wrote new column
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
281 \section{木構造とマルチキャストの共存}
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
282 現在のTreeVNCでは有線接続と無線LAN接続のどちらでも, VNCサーバから画面配信の提供を受けることが可能である. しかし無線LANで接続しているNodeが存在すると, バイナリツリーを形成している全体の配信遅延に繋がってしまう.
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
283 この問題点を解決するために, 有線接続時と無線LAN接続時でのVNCサーバの接続方法の分割を提案する.
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
284
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
285 有線接続の場合は従来通り, VNCサーバ, Root Node, Nodeからなるバイナリツリー状に接続される.
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
286 無線LAN接続の場合は, Multicastで接続を行う. こうすることにより, 新しいNodeが無線LAN接続出会っても有線接続のバイナリツリーには影響を及ぼさない(図\ref{fig:interface}).
17
2cd3823d5a44 paper section3-1 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
287
2cd3823d5a44 paper section3-1 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
288 \begin{figure}[htb] %PDF
2cd3823d5a44 paper section3-1 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
289 \begin{center}
26
749c91efcd9b paper wrote new column
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
290 \includegraphics[width=8cm]{Image/interface-crop.pdf}
749c91efcd9b paper wrote new column
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
291 \caption{接続方法の切り替え}
749c91efcd9b paper wrote new column
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
292 \label{fig:interface}
17
2cd3823d5a44 paper section3-1 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
293 \end{center}
2cd3823d5a44 paper section3-1 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
294 \end{figure}
2cd3823d5a44 paper section3-1 wrote
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 16
diff changeset
295
5
4dcce060bcc8 paper section1 writing
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
296
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
297 \section{まとめ}
5
4dcce060bcc8 paper section1 writing
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 2
diff changeset
298
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
299 Tree VNC に Wifi 上の Multicast packet を用いる手法について考察した. 画面圧縮にHareware supported なMPEG4などを用いることができればより効率的な転送が可能であるが, ここでは Java 上で実装できる安易な方法をあえて選択した. Wifi の速度と Multicast の信頼性が高ければこれでも実用になると可能性がある.
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
300
26
749c91efcd9b paper wrote new column
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
301
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
302 Blocking は実装中であり, 再圧縮の時間は前画面の時でも実用的な時間ですむことが予想されている. Wifi 上の Multicast packet のdrop 率は, 接続環境に依存すると思われるのでさらなる実験が必要だと思われる.
24
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents: 20
diff changeset
303
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
304 有線使用時よりも, 画面共有の質が落ちるのはある程度はやむを得ないが, 再送が必要である場合には, 必要なプロトコルを実装する.
2
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
305
28
ef4d9aff7018 fix punctuation marks
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 27
diff changeset
306 VNCサーバへの接続方法の分割についても, Node接続時のinterfacesから有線接続か無線LAN接続かを完全に区別出来ない. 接続時にユーザが選択するか, 接続時にある程度区別する処理を実装する必要がある.
26
749c91efcd9b paper wrote new column
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 24
diff changeset
307
2
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
308
19
13a9b16b31c4 add MulticastNetworkTree.pdf source
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
309 \nocite{*}
13a9b16b31c4 add MulticastNetworkTree.pdf source
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
310 \bibliographystyle{ipsjunsrt}
13a9b16b31c4 add MulticastNetworkTree.pdf source
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents: 18
diff changeset
311 \bibliography{riono-sigos}
2
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
312
d5ccc36d12b1 add Paper TEXsource and PDF
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
diff changeset
313 \end{document}