view final_pre/main.tex @ 27:5eb8f9367089

update slide
author oshiro
date Wed, 20 Feb 2019 11:47:30 +0900
parents 820612e057e2
children e2ec8297e712
line wrap: on
line source

\documentclass[twocolumn,twoside,9.5pt]{jarticle}
%\usepackage[dvips]{graphicx}
\usepackage[dvipdfmx]{graphicx}
\usepackage{picins}
\usepackage{fancyhdr}
\usepackage{abstract}
%\pagestyle{fancy}
\lhead{\parpic{\includegraphics[height=1zw,keepaspectratio,bb=0 0 251 246]{pic/emblem-bitmap.pdf}}琉球大学主催 工学部情報工学科 卒業研究発表会}
\rhead{}
\cfoot{}

\setlength{\topmargin}{-1in \addtolength{\topmargin}{15mm}}
\setlength{\headheight}{0mm}
\setlength{\headsep}{5mm}
\setlength{\oddsidemargin}{-1in \addtolength{\oddsidemargin}{11mm}}
\setlength{\evensidemargin}{-1in \addtolength{\evensidemargin}{21mm}}
\setlength{\textwidth}{181mm}
\setlength{\textheight}{261mm}
\setlength{\footskip}{0mm}
\pagestyle{empty}

\renewcommand{\abstractname}{Abstract}
\begin{document}
\title{画面共有システム TreeVNC の拡張}
\author{学籍番号 155702F 氏名 {大城}{由也} 指導教員 : {河野}{真治}}
\date{平成31年 2月 20日}
\twocolumn [
\maketitle

\begin{onecolabstract}
TreeVNC, a screen distribution system developed by our laboratory, is software that shares the presenter's screen on participant's PC. With TreeVNC, participants can receive lectures while using their PC at hand. Further, it is possible to switch the shared screen without replacing the cable.
In the screen distribution, since the amount of data to be transmitted is large, in the case of the wireless LAN connection in the current TreeVNC, the delay of the screen distribution becomes large. In this research, we propose a technique to implement multicast connection on TreeVNC wireless LAN and a method to divide data into a size that can be transmitted by Multicast. We confirmed that the divided data on the wired connection is correctly displayed. In the future, we plan to implement Multicast transmission / reception part and measure packet loss etc.
\end{onecolabstract}]


\thispagestyle{fancy} 


\section{画面配信システムの活用}
当研究室で開発している画面配信システム TreeVNC は、 発表者の画面を参加者の PC 上で共有するソフトウェアである。TreeVNC により参加者は手元の PC を使用しながら講義を受ける事が可能になる。更にケーブルの差し替えを行わずに共有画面を切替えることができる。
画面配信は送信するデータ量が多いため、現在の TreeVNC では無線 LAN 接続の場合、画面配信の遅延が大きくなってしまう。そこで本研究では、TreeVNC の無線 LAN 上での Multicast 接続の実装や、Multicast で送信可能な大きさにデータを分割する手法を提案する。有線接続上で分割されたデータが正しく表示されることを確認した。今後はMulticast 送受信部分を実装し、packet loss などを計測する予定である。

\section{VNC}
VNC (Virtual Network Computing) は、RFB プロトコルを用いて PC の遠隔操作を行うことを目的としたリモートデスクトップソフトウェアである。

サーバー側とクライアント側に分かれており、起動したサーバーにクライアントが接続することで遠隔操作を可能にしている。

\section{RFB プロトコル}
RFB (Remote Frame Buffer) プロトコルは、自身の画面をネットワークを通じて送信し他者の画面に表示するプロトコルである。

ユーザがいる(画面を表示される)側と FrameBuffer への更新が行われる(自身の画面を送信する)側に分かれ、それぞれを RFB クライアント、RFB サーバと呼ぶ。FrameBuffer は、メモリ上に置かれた画像データのことである。

\section{TreeVNC の構造}
TreeVNC はサーバーに接続してきたクライアントをバイナリツリー状に接続している。接続してきたクライアントを Node とし、その下に新たなクライアントを接続していくことで、サーバーが画面のデータを配信する回数を抑え、負荷分散している(図\ref{fig:treevnc})。バイナリツリー状に接続することで、画像データのコピーを各 Node に負担させることができ、従来の VNC ではクライアントが N 台接続するとサーバー側が N 回コピーを行なって配信していた(図\ref{fig:vnc})が、この接続方法であれば各ノードが 2 回ずつコピーすることで配信を可能にしている。

\begin{figure}[htbp]
    \begin{center}
        \includegraphics[scale=0.4]{images/treevnc-crop.pdf}
    \end{center}
    \caption{TreeVNC の構造}
    \label{fig:treevnc}
\end{figure}

\begin{figure}[htbp]
    \begin{center}
        \includegraphics[scale=0.5]{images/vnc-crop.pdf}
    \end{center}
    \caption{従来の VNC の構造}
    \label{fig:vnc}
\end{figure}


\newpage
\section{TreeVNC の問題点}
TreeVNC には TreeVNCServer にクライアントが接続している状態で、VNCServer 側が何らかの要因で接続を切ってしまった場合、クライアント側が正しく切断されない問題と、VNCServer にクライアントとして接続した際に、画面の操作を許可するかどうか確認する authentication のポップアップが Root 側にも表示されてしまっていた問題が生じており、上記二つの問題点は修正を行った。

また、画面配信で送信されるデータ量は膨大なため、現在の TreeVNC で VNCServer に無線 LAN 接続を行った場合、画面配信の遅延が大きくなってしまう。つまり、有線接続している Node のみでバイナリツリーを形成している状態の時に無線 LAN 通信で接続してきた Node をツリーに加えてしまうと、その Node に対する通信が遅延してしまい、ツリー全体の配信遅延に繋がってしまう。この問題点を解決する手法として Multicast 通信の実装を提案する。

Multicast 接続ならば、Server からの送信は一度で済むため、ツリー構造の形成が必要ない。従って新しい Node が無線 LAN 接続であっても、有線接続のツリーの配信には影響が出ない。

\begin{figure}[htbp]
    \begin{center}
        \includegraphics[scale=0.4]{images/interface-crop.pdf}
    \end{center}
    \caption{Multicast での接続図}
    \label{fig:interface}
\end{figure}


\section{画像データの Blocking}
画像データはサイズが膨大で、送信する際に一度では送れないので分割して送られる。しかし、無線接続では有線接続よりも送信できるデータ量が少ないため、さらに分割する必要がある。
そこでデータを再分割する手法として Blocking を実装した。

%Blocking の流れ

TreeVNC ではデータを解凍する際、画面を分割し、一単位 64 * 64 サイズのタイルに見立て行っている(図\ref{fig:tiling})。あらかじめサイズを設定しデータの解凍を行うことで、手順が一般化し簡素化することが可能となる。

\begin{figure}[htbp]
    \begin{center}
        \includegraphics[scale=0.4]{images/tiling-crop.pdf}
    \end{center}
    \caption{データ解凍時の画面の分割イメージ}
    \label{fig:tiling}
\end{figure}


Blocking 実装後 VNCServer とクライアントの接続を行ったところ、十分な転送速度を確認できた。

%実演?結果出して

Blocking を実装したことで、追加のハードウェアなどを購入せずに無線接続でも Multicast 接続を使用した画面配信が可能になった。

%なぜ長方形??
%サーバーからの画面更新通知が簡素化されており、座標(x,y)で送信するデータを描画させているから


\section{まとめ}

%1) TreeVNCのbug取り (VNCserver側を止めらると暴走するとか)
%2) Christie を使った実装(現状の実装の通信部分の切り分け
%3) Christie によるNAT越え
%4) Multicast・Broadcast によるWifiでの使用

本研究では画面配信システム TreeVNC の改良と Multicast 対応のためのデータの Blocking を行った。

TreeVNCServer にクライアントが接続している状態で、VNCServer 側が接続を切断した場合、クライアントが暴走せず正しく終了する様になった。

VNCServer にクライアントとして接続した際に、画面の操作を許可するかどうか確認する authentication のポップアップが Root 側に表示されない様になった。

データの Blocking を行うことにより、無線 LAN 接続での Multicast 対応を行えるようになった。

また今後の課題として、Multicast の実装、Multicast 実行時の遅延の評価、Packetloss 時の対処がある。

% 参考文献
\def\line{−\hspace*{-.7zw}−}
\nocite{*}
\bibliographystyle{junsrt}
\bibliography{reference}


\end{document}