Mercurial > hg > Papers > 2019 > riono-sigos
annotate Slide/slide.pdf.html @ 41:565b8345d7ef
update slide
author | e165729 <e165729@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 29 May 2019 18:15:08 +0900 |
parents | b48db21c9d66 |
children | eeb79bcffe76 |
rev | line source |
---|---|
32 | 1 |
2 | |
3 | |
4 | |
5 | |
6 <!DOCTYPE html> | |
7 <html> | |
8 <head> | |
9 <meta http-equiv="content-type" content="text/html;charset=utf-8"> | |
10 <title>画面配信システム TreeVNC のマルチキャストの導入</title> | |
11 | |
12 <meta name="generator" content="Slide Show (S9) v4.0.1 on Ruby 2.3.7 (2018-03-28) [universal.x86_64-darwin18]"> | |
13 <meta name="author" content="Ryo Yasuda, Shinji Kono" > | |
14 | |
15 <!-- style sheet links --> | |
16 <link rel="stylesheet" href="s6/themes/screen.css" media="screen"> | |
17 <link rel="stylesheet" href="s6/themes/print.css" media="print"> | |
18 <link rel="stylesheet" href="s6/themes/blank.css" media="screen,projection"> | |
19 | |
20 <!-- JS --> | |
21 <script src="s6/js/jquery-1.11.3.min.js"></script> | |
22 <script src="s6/js/jquery.slideshow.js"></script> | |
23 <script src="s6/js/jquery.slideshow.counter.js"></script> | |
24 <script src="s6/js/jquery.slideshow.controls.js"></script> | |
25 <script src="s6/js/jquery.slideshow.footer.js"></script> | |
26 <script src="s6/js/jquery.slideshow.autoplay.js"></script> | |
27 | |
28 <!-- prettify --> | |
29 <link rel="stylesheet" href="scripts/prettify.css"> | |
30 <script src="scripts/prettify.js"></script> | |
31 | |
32 <style> | |
33 .slide {page-break-after: always;} | |
34 </style> | |
35 | |
36 | |
37 | |
38 | |
39 </head> | |
40 <body> | |
41 | |
42 <div class="layout"> | |
43 <div id="header"></div> | |
44 <div id="footer"> | |
45 <div align="right"> | |
46 <img src="s6/images/logo.svg" width="200px"> | |
47 </div> | |
48 </div> | |
49 </div> | |
50 | |
51 <div class="presentation"> | |
52 | |
53 <div class='slide cover'> | |
54 <table width="90%" height="90%" border="0" align="center"> | |
55 <tr> | |
56 <td> | |
57 <div align="center"> | |
58 <h1><font color="#808db5">画面配信システム TreeVNC のマルチキャストの導入</font></h1> | |
59 </div> | |
60 </td> | |
61 </tr> | |
62 <tr> | |
63 <td> | |
64 <div align="left"> | |
65 Ryo Yasuda, Shinji Kono | |
66 並列信頼研 | |
67 <hr style="color:#ffcc00;background-color:#ffcc00;text-align:left;border:none;width:100%;height:0.2em;"> | |
68 </div> | |
69 </td> | |
70 </tr> | |
71 </table> | |
72 </div> | |
73 | |
74 | |
75 <div class='slide'> | |
76 <!-- <\!-- slideshow の command -\-> --> | |
77 <!-- slide.htmlでは通常キーでのコマンドが存在している --> | |
78 | |
79 <!-- p,a,s : スライドを自動送り(1,2...) --> | |
80 <!-- : スライドを逆方向に自動送り(...,2,1) --> | |
81 <!-- n : Page数を on/off --> | |
82 <!-- f : 右下ロゴの on/off --> | |
83 <!-- t : slide.html.pdf に変更 --> | |
84 <!-- c : 右下スライド移動用UIの on/off --> | |
85 <!-- d : ロゴ部分の選択…? --> | |
86 <!-- [URL](http://~~~) --> | |
87 <!-- [FILE](file:///Users/ryokka/~~~) --> | |
88 <!-- slideshow build スライド.md -t s6cr --> | |
89 | |
36
322aad31566d
fix slide and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
35
diff
changeset
|
90 <!-- ## 目次 |
322aad31566d
fix slide and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
35
diff
changeset
|
91 - **TreeVNC の概要** |
322aad31566d
fix slide and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
35
diff
changeset
|
92 - **基本概念** |
322aad31566d
fix slide and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
35
diff
changeset
|
93 - **構造** |
322aad31566d
fix slide and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
35
diff
changeset
|
94 - 研究内容 |
322aad31566d
fix slide and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
35
diff
changeset
|
95 - TreeVNC の改良 |
322aad31566d
fix slide and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
35
diff
changeset
|
96 - 送信データの Blocking |
322aad31566d
fix slide and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
35
diff
changeset
|
97 --> |
322aad31566d
fix slide and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
35
diff
changeset
|
98 |
32 | 99 |
100 <!-- _S9SLIDE_ --> | |
101 <h2 id="画面配信システムの活用">画面配信システムの活用</h2> | |
102 <ul> | |
37
eb2dbbcaa96e
slide Rewriting and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
103 <li>講義やゼミではプロジェクタを使用して、先生が用意した資料を見ることが多い。その際接続不良など、物理的アクシデントが起きる恐れがある</li> |
eb2dbbcaa96e
slide Rewriting and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
104 <li>画面配信システムで代用する場合がある。画面配信システムのとしてはAppleTVやUstreamなどが挙げられる |
eb2dbbcaa96e
slide Rewriting and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
105 <ul> |
eb2dbbcaa96e
slide Rewriting and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
106 <li>AppleTVは画面共有先がTVに限定されている</li> |
eb2dbbcaa96e
slide Rewriting and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
107 <li>Ustreamは画面の切り替えを行うことができない</li> |
eb2dbbcaa96e
slide Rewriting and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
108 </ul> |
eb2dbbcaa96e
slide Rewriting and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
109 </li> |
eb2dbbcaa96e
slide Rewriting and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
110 </ul> |
eb2dbbcaa96e
slide Rewriting and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
111 |
eb2dbbcaa96e
slide Rewriting and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
112 <center><img src="./fig/AppleTVRogo.svg " alt="message" width="200" height="200" /> |
eb2dbbcaa96e
slide Rewriting and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
113 <img src="./fig/UstreamRogo.svg" alt="message" width="200" height="150" /></center> |
eb2dbbcaa96e
slide Rewriting and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
114 |
eb2dbbcaa96e
slide Rewriting and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
115 |
eb2dbbcaa96e
slide Rewriting and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
116 |
eb2dbbcaa96e
slide Rewriting and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
117 </div> |
eb2dbbcaa96e
slide Rewriting and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
118 |
eb2dbbcaa96e
slide Rewriting and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
119 <div class='slide'> |
eb2dbbcaa96e
slide Rewriting and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
120 <!-- _S9SLIDE_ --> |
eb2dbbcaa96e
slide Rewriting and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
121 <h2 id="画面配信システムの活用-1">画面配信システムの活用</h2> |
eb2dbbcaa96e
slide Rewriting and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
122 <ul> |
39 | 123 <li>画面配信システムTreeVNCは、自身のPC画面を他者のPCと共有できるソフトウェアである</li> |
124 <li>javaで書かれているためOSに依存せず、物理的な制限なしに使用可能</li> | |
38 | 125 <li>TreeVNCを使用することで、参加者は手元のPCを使用しながら講義を受ける事が可能になる。切り替えの際も、ボタン一つで共有する画面の切替を可能としている</li> |
32 | 126 </ul> |
127 | |
128 | |
129 | |
130 </div> | |
131 | |
132 <div class='slide'> | |
133 <!-- _S9SLIDE_ --> | |
38 | 134 <h2 id="treevncとは">TreeVNCとは</h2> |
135 <ul> | |
136 <li>TreeVNCは本研究室で開発している画面配信システム</li> | |
137 <li>VNC(リモートデスクトップソフトウェア)を利用している</li> | |
138 <li>木構造の接続方式によりNode間で画像データのやりとりを行うことで、配信側の負荷を分散し大人数での画面配信が可能</li> | |
139 </ul> | |
140 | |
141 <center><img src="./fig/treevnc-crop.svg" alt="message" width="450" height="350" /></center> | |
142 | |
143 | |
144 | |
145 </div> | |
146 | |
147 <div class='slide'> | |
148 <!-- _S9SLIDE_ --> | |
39 | 149 <h2 id="本研究の概要">本研究の概要</h2> |
150 <ul> | |
151 <li>画面配信は送信するデータ量が多いため、TreeVNCでは無線接続の場合、画面配信の遅延が大きくなってしまう</li> | |
152 <li>現在のTreeVNCのデータ転送方法だと、無線接続で送信するには大きすぎる</li> | |
40 | 153 <li>本研究ではMulticastを導入することで、Wifi環境下における画面配信の遅延対策の検討を行なった</li> |
39 | 154 </ul> |
38 | 155 |
156 | |
157 | |
158 </div> | |
159 | |
160 <div class='slide'> | |
161 <!-- _S9SLIDE_ --> | |
40 | 162 <h2 id="multicastについて">Multicastについて</h2> |
163 <ul> | |
164 <li>WifiのMulticast機能を利用することで無線LAN接続時でも画面遅延を軽減できると考える</li> | |
165 <li>配信PC画面の変更があった部分のみをマルチキャストで送信する</li> | |
166 <li>wifiのMulticast Paketの最大サイズは64KBとなっているため、データの圧縮が必要</li> | |
167 </ul> | |
39 | 168 |
169 | |
170 | |
171 </div> | |
172 | |
173 <div class='slide'> | |
174 <!-- _S9SLIDE_ --> | |
41 | 175 <h2 id="multicastの具体的な実装方法">Multicastの具体的な実装方法</h2> |
40 | 176 <ul> |
41 | 177 <li>TreeVNCで利用している画面データ送信プロトコル、RFBプロトコル</li> |
40 | 178 <li></li> |
179 <li></li> | |
41 | 180 </ul> |
181 | |
182 | |
183 | |
184 </div> | |
185 | |
186 <div class='slide'> | |
187 <!-- _S9SLIDE_ --> | |
188 <h2 id="圧縮形式">圧縮形式</h2> | |
189 | |
190 | |
191 | |
192 </div> | |
193 | |
194 <div class='slide'> | |
195 <!-- _S9SLIDE_ --> | |
196 <h2 id="ブロッキング">ブロッキング</h2> | |
197 | |
198 | |
199 | |
200 </div> | |
201 | |
202 <div class='slide'> | |
203 <!-- _S9SLIDE_ --> | |
204 <h2 id="rfb-プロトコル">RFB プロトコル</h2> | |
205 <ul> | |
206 <li>RFB (Remote Frame Buffer) プロトコルは、自身の画面をネットワークを通じて送信し他者の画面に表示するプロトコル</li> | |
207 <li>他人のPC画面が表示される側と、FrameBufferへの更新が行われる(自身のPC画面を送信する)側に分かれ、それぞれをRFBクライアント、RFBサーバと呼ぶ</li> | |
208 <li>FrameBufferは、メモリ上に置かれた画像データのこと</li> | |
40 | 209 </ul> |
32 | 210 |
211 | |
212 | |
213 </div> | |
214 | |
215 <div class='slide'> | |
216 <!-- _S9SLIDE_ --> | |
217 <h2 id="vnc">VNC</h2> | |
218 <ul> | |
219 <li>VNC(Virtual Network Computing)は、RFBプロトコルを用いてPCの遠隔操作を行うことを目的としたリモートデスクトップソフトウェア</li> | |
220 <li>サーバー側とクライアント側に分かれており、起動したサーバーにクライアントが接続することで遠隔操作を可能にしている</li> | |
221 <li>全てのNodeが一台のサーバーに接続するため負担が大きい</li> | |
222 </ul> | |
223 | |
37
eb2dbbcaa96e
slide Rewriting and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
224 <center><img src="./fig/vnc-crop.svg" alt="message" width="500" height="400" /></center> |
32 | 225 |
40 | 226 <!-- ## TreeVNC の構造 |
227 - TreeVNCは接続してきたクライアントをNodeとし、木構造状に管理する | |
228 - ルートのノードをRoot Nodeと呼び、その下に新たなNodeを接続していく | |
229 - Root Nodeが参照しているVNCServerからFrameBufferUpdateを取得し、各Nodeに送信する | |
230 - 木構造状に接続することで、画像データのコピーを各Nodeに負担させることができる | |
32 | 231 |
40 | 232 <center><img src="./fig/treevnc-crop.svg" alt="message" width="450" height="350"></center> |
33
762fe0e406e4
add new imange and update slide
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
32
diff
changeset
|
233 |
762fe0e406e4
add new imange and update slide
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
32
diff
changeset
|
234 |
40 | 235 ## 木構造の再構成 |
236 - Nodeが切断されたことを検知できなければ木構造が維持できない | |
237 - Root Nodeが木構造のネットワークトポロジーを管理しているため、Root NodeにNodeの切断を知らせる必要がある | |
238 - 切断検知には画像データが入っているMulticastQueueを使用 | |
239 - MulticastQueueから画像データが一定時間取得されず、Timeoutを検知した場合切断したと判断する | |
33
762fe0e406e4
add new imange and update slide
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
32
diff
changeset
|
240 |
40 | 241 ## 画像データのエンコード方法 |
242 - TreeVNCではZRLEというエンコードタイプを元にした、ZRLEEというエンコードを用いて画像データを圧縮を行う | |
243 - ZRLEはZlibで圧縮されたデータとそのデータのバイト数がヘッダーとして送られる | |
244 - Zlibとはデータの可逆圧縮アルゴリズムが実装されているライブラリ | |
32 | 245 |
40 | 246 ## 画像データのエンコード方法 |
247 - ZRLEでは解凍時に必要な辞書データを書き出すことができない | |
248 - ZRLEEはRoot Nodeで受け取ったZRLEのデータを一度解凍し、辞書データを付与して再圧縮している | |
249 | |
250 <center><img src="./fig/EncodeZRLEE.svg" alt="message" width="550" height="450"></center> | |
36
322aad31566d
fix slide and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
35
diff
changeset
|
251 |
40 | 252 ## 共有画面切り替え |
253 - 従来のVNCでは、配信者が切り替わるたびに再起動、再接続を行う必要があった | |
254 - TreeVNCでは、画面上にあるShareScreenボタンを押すことで配信者の切り替えが実行できる | |
255 - ShareScreen実行後、Root Nodeに対しSERVER CHANGE REQUESTというメッセージが送信される | |
256 - メッセージを受け取ったRoot Nodeは配信を希望しているNodeのVNCサーバーと通信を行い、切り替え作業に入る | |
32 | 257 |
40 | 258 <center><img src="./fig/ShareScreenSS.svg" alt="message" width="400" height="300"></center> |
32 | 259 |
40 | 260 ## 有線接続との接続の違い |
261 - 現状のTreeVNCでは画面配信のデータ量は多く、無線LAN接続を行うと画面配信の遅延が大きくなる | |
262 - WifiのMulticast機能を利用し、UpdateRectangleを一度だけ送信することで無線LAN接続でも十分に遅延が抑えられると考える | |
263 - HDや4kの画面更新には64MB程度となり、これを圧縮しつつwifiのMulticast paketの最大サイズ64KBに変換、送信する必要がある | |
264 - paket lossがあった場合、再送処理は複雑であると予想できるため、まずBlokingによる実験を行う | |
32 | 265 |
40 | 266 ## RFBプロトコルのUpdateRectangleの構成 |
267 - 1つのUpdateRectangleには複数のRectangleが格納されている | |
268 - RectangleはZlibで圧縮されたデータが指定された長さだけ格納されており、そのデータはさらに64x64 ByteのTileに分割されている | |
269 | |
270 ## RFBプロトコルのUpdateRectangleの構成 | |
271 - 無線接続の場合、一度に送信できるデータ量が64KBしかないため、それに合わせて更新された部分のRectangleを分割する必要がある | |
272 - Phase0 行の途中から始まる部分 | |
273 - Phase1 行の最初から最後までの部分 | |
274 - Phase2 行の途中で終わる部分 | |
275 | |
276 <center><img src="./fig/FrameUpdateRectangleColor.svg" alt="message" width="550" height="450"></center> | |
32 | 277 |
278 | |
40 | 279 ## 木構造とマルチキャストの共存 |
280 - ツリーに無線接続のNodeを加えてしまうと全体の配信遅延に繋がる | |
281 - 無線接続時のMulticastの実装を提案 | |
282 - Multicastならば、Serverからの送信は一度で済むため、ツリー構造の形成が必要ない | |
283 - 従って新しいNodeが無線接続であっても、有線接続のツリーの配信には影響が出ない | |
37
eb2dbbcaa96e
slide Rewriting and add images
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
36
diff
changeset
|
284 |
40 | 285 <center><img src="./fig/interface-crop.svg" alt="message" width="500" height="450"></center> |
286 --> | |
33
762fe0e406e4
add new imange and update slide
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
32
diff
changeset
|
287 |
762fe0e406e4
add new imange and update slide
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
32
diff
changeset
|
288 |
762fe0e406e4
add new imange and update slide
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
32
diff
changeset
|
289 |
762fe0e406e4
add new imange and update slide
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
32
diff
changeset
|
290 </div> |
762fe0e406e4
add new imange and update slide
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
32
diff
changeset
|
291 |
762fe0e406e4
add new imange and update slide
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
32
diff
changeset
|
292 <div class='slide'> |
762fe0e406e4
add new imange and update slide
e165729 <e165729@ie.u-ryukyu.ac.jp>
parents:
32
diff
changeset
|
293 <!-- _S9SLIDE_ --> |
32 | 294 <h2 id="まとめ">まとめ</h2> |
295 <ul> | |
35 | 296 <li>WifiでMulticast paketを利用する手法についての考察を行なった |
32 | 297 <ul> |
35 | 298 <li>Wifiの速度とMulticastの信頼性が高ければ実用的である可能性がある</li> |
299 <li>Blockingは実装中、再圧縮の時間は実用的な時間で済むと予想されている</li> | |
32 | 300 </ul> |
301 </li> | |
302 <li>今後の課題 | |
303 <ul> | |
35 | 304 <li>Blockingの実装</li> |
305 <li>WifiのMulticast paket lossは接続環境や状況に依存すると思われるためさらなる実験が必要</li> | |
306 <li>Node接続じの有線接続と無線接続の判断、区別処理の実装</li> | |
32 | 307 </ul> |
308 </li> | |
309 </ul> | |
310 | |
35 | 311 |
32 | 312 </div> |
313 | |
314 | |
315 </div><!-- presentation --> | |
316 </body> | |
317 </html> |