view final_pre/main.tex @ 21:7361e0e27566

update pretex
author e155702
date Tue, 19 Feb 2019 17:07:44 +0900
parents
children db59501f17b7
line wrap: on
line source

\documentclass[twocolumn,twoside,9.5pt]{jarticle}
%\usepackage[dvips]{graphicx}
\usepackage[dvipdfmx]{graphicx}
\usepackage{picins}
\usepackage{fancyhdr}
%\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}

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

%\begin{abstract}
%\end{abstract}


\thispagestyle{fancy} 


\section{研究目的}
講義や発表の場では、資料やスライドを表示するためにプロジェクタが使用されることが多い。プロジェクタを使用していると、発表者を切り替えるたびにケーブルを差し替える必要がある。差し替えの際に発表者の PC によっては正常に画面を表示できない場合がある。

当研究室で開発している画面配信システム TreeVNC は、発表者の画面を参加者の PC に表示するソフトウェアである。TreeVNC を使用することで、参加者は不自由なく手元の PC を使用しながら講義を受ける事が可能になる。更に発表者の切り替えの際も、ケーブルの差し替えを行わずに共有する画面の切替を可能としている。

しかし、画像配信システムは送信するデータ量が多いため、現在の TreeVNC では無線 LAN 接続の場合、画面の配信に遅延が生じてしまう。そこで本研究では、TreeVNC のマルチキャスト対応の実装や、データの分割方法の評価を行うことにより、無線 LAN での配信環境の向上を目指し、TreeVNC の有用性を評価することで講義やゼミを円滑に行えることを目標とする。

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

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

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

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

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

TreeVNC でやり取りする画像データ量は莫大であり、大きなネットワークスループットが必要となるため、多人数で使用する場合は特に有線接続が必要となる。

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

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


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


\section{画像データの Blocking}
無線 LAN 通信は、有線接続と比較して一度に送信できるデータ量が少ない。そのためサーバー側が送信した更新データが正確にクライアントに送られない可能性がある。

対策として、データを分割( Blocking )して送信する手法を実装した。

従来の TreeVNC では、配信側の画面が更新された場合、サーバーから FRAME\_BUFFER\_UPDATE メッセージが送信され、更新データは MulticastQueue というキューに格納される。

Blocking は、更新データを長方形( Rectangle )で分割し、 MulticastQueue に格納する。MulticastQueue に格納されたデータは、
%なぜ長方形??
%サーバーから直接送信されるのか??

\begin{figure}[htbp]
    \begin{center}
        \includegraphics[scale=0.3]{images/frame-update-rectangle-crop.pdf}
    \end{center}
    \caption{更新データの分割方法}
    \label{fig:frame-update-rectangle-crop}
\end{figure}


\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 時の遅延などの評価を行う。

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


\end{document}