# HG changeset patch # User e155702 # Date 1550640981 -32400 # Node ID e2ec8297e712bc1b78c1ae10cb9d14b2bbaa86ce # Parent 5a1feea4ef510de2b1fa5b359bfee10f1edae2f5 update slide diff -r 5a1feea4ef51 -r e2ec8297e712 final_main/fig/interface-crop.pdf Binary file final_main/fig/interface-crop.pdf has changed diff -r 5a1feea4ef51 -r e2ec8297e712 final_main/fig/interface.graffle Binary file final_main/fig/interface.graffle has changed diff -r 5a1feea4ef51 -r e2ec8297e712 final_main/fig/interface.pdf Binary file final_main/fig/interface.pdf has changed diff -r 5a1feea4ef51 -r e2ec8297e712 final_pre/main.pdf Binary file final_pre/main.pdf has changed diff -r 5a1feea4ef51 -r e2ec8297e712 final_pre/main.tex --- a/final_pre/main.tex Wed Feb 20 12:45:47 2019 +0900 +++ b/final_pre/main.tex Wed Feb 20 14:36:21 2019 +0900 @@ -88,12 +88,7 @@ \section{画像データの Blocking} -画像データはサイズが膨大で、送信する際に一度では送れないので分割して送られる。しかし、無線接続では有線接続よりも送信できるデータ量が少ないため、さらに分割する必要がある。 -そこでデータを再分割する手法として Blocking を実装した。 - -%Blocking の流れ - -TreeVNC ではデータを解凍する際、画面を分割し、一単位 64 * 64 サイズのタイルに見立て行っている(図\ref{fig:tiling})。あらかじめサイズを設定しデータの解凍を行うことで、手順が一般化し簡素化することが可能となる。 +画像データはサイズが膨大で、送信する際に一度では送れないので分割して送られる。TreeVNC ではデータを圧縮する際、画面を分割し、一単位 64 * 64 サイズのタイルに見立て行っている(図\ref{fig:tiling})。 \begin{figure}[htbp] \begin{center} @@ -103,6 +98,13 @@ \label{fig:tiling} \end{figure} +しかし、無線接続では有線接続よりも送信できるデータ量が少ないため、さらに分割する必要がある。 +そこでデータを再分割する手法として Blocking を実装した。 + +FrameBufferUpdate で受け取った部分を更新 +更新部分の最大値を保持 +幅 width * bytePerPixel (1ピクセルあたりのデータ量) ずつ deflate していき、書き込み用に用意した関数の残り値を超える直前に関数に全て書き込み、header などを添付して他のクラスに渡す +Indexをインクリメントしていき最大値になったら停止 Blocking 実装後 VNCServer とクライアントの接続を行ったところ、十分な転送速度を確認できた。 diff -r 5a1feea4ef51 -r e2ec8297e712 slide/fig/interface-crop.svg --- a/slide/fig/interface-crop.svg Wed Feb 20 12:45:47 2019 +0900 +++ b/slide/fig/interface-crop.svg Wed Feb 20 14:36:21 2019 +0900 @@ -71,286 +71,277 @@ id="path56" style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" d="M 737.0079,171.4961 H 510.2362" />interface -en Wi-Fi Packet Root +Root -Node Node 1 Node 2 Node 1 Node 2 Node 3 \ No newline at end of file diff -r 5a1feea4ef51 -r e2ec8297e712 slide/slide.html --- a/slide/slide.html Wed Feb 20 12:45:47 2019 +0900 +++ b/slide/slide.html Wed Feb 20 14:36:21 2019 +0900 @@ -74,7 +74,7 @@
Yukiya OSHIRO - + 並列信頼研
@@ -86,7 +86,7 @@ @@ -119,19 +119,31 @@
  • クライアントが接続している状態で、サーバー側が接続を切るとクライアント側が正しく切断されない
  • サーバーに接続した際に、画面の操作を許可するかどうか確認するポップアップが Root 側にも表示されてしまう
  • 画面配信は送信するデータ量が多いため、TreeVNC では無線接続の場合、画面配信の遅延が大きくなってしまう
  • -
  • 有線接続時のデータ転送方法だと、無線接続で送信するには大きすぎる
  • +
  • 現在の TreeVNC のデータ転送方法だと、無線接続で送信するには大きすぎる
  • -

    目次

    +

    今回の発表

      -
    • TreeVNC の概要 +
    • クライアントが接続している状態で、サーバー側が接続を切るとクライアント側が正しく切断されない
    • +
    • サーバーに接続した際に、画面の操作を許可するかどうか確認するポップアップが Root 側にも表示されてしまう
    • +
    • 画面配信は送信するデータ量が多いため、TreeVNC では無線接続の場合、画面配信の遅延が大きくなってしまう
    • +
    • 現在の TreeVNC のデータ転送方法だと、無線接続で送信するには大きすぎる
    • +
    + +
    +
    + + +

    目次

    +
      +
    • TreeVNC の概要
        -
      • 基本概念
      • -
      • 構造
      • +
      • 基本概念
      • +
      • 構造
    • 研究内容 @@ -161,9 +173,10 @@
      • VNC (Virtual Network Computing) は、RFB プロトコルを用いて PC の遠隔操作を行うことを目的としたリモートデスクトップソフトウェア
      • サーバー側とクライアント側に分かれており、起動したサーバーにクライアントが接続することで遠隔操作を可能にしている
      • +
      • 全ての Node が一台のサーバーに接続するため負担が大きい
      -

      message

      +
      message
    @@ -188,13 +201,13 @@
  • バイナリツリー状に接続することで、画像データのコピーを各 Node に負担させることができる
  • -

    message

    +
    message
    -

    共有画面切り替え

    +

    共有画面切り替え

    • 従来の VNC では、配信者が切り替わるたびに再起動、再接続を行う必要があった
    • TreeVNC では、画面上にある ShareScreen ボタンを押すことで配信者の切り替えが実行できる
    • @@ -206,15 +219,35 @@
      -

      Multicast 対応

      +

      目次

        -
      • 有線接続の Node で形成されたツリーに無線接続の Node を加えてしまうと通信の遅延が発生し、ツリー全体の配信遅延に繋がる
      • +
      • TreeVNC の概要 +
          +
        • 基本概念
        • +
        • 構造
        • +
        +
      • +
      • 研究内容 +
          +
        • TreeVNC の改良
        • +
        • 送信データの Blocking
        • +
        +
      • +
      + +
      +
      + + +

      Multicast

      +
        +
      • ツリーに無線接続の Node を加えてしまうと配信の遅延に繋がる
      • Multicast の実装を提案
      • Multicast ならば、Server からの送信は一度で済むため、ツリー構造の形成が必要ない
      • 従って新しい Node が 無線接続であっても、有線接続のツリーの配信には影響が出ない
      -

      message

      +
      message
      @@ -223,7 +256,7 @@

      Blocking

      • 無線接続の場合、一度に送信できるデータ量が 64kbyte しかないため、それに合わせてデータを分割する必要がある
      • -
      • 大きなデータを小さい単位に分割する手法 +
      • 大きなデータを小さい単位に分割する
        • 更新が行われた部分を1行ずつ圧縮していく
        • 書き込みのために用意した関数に入る限界値まで圧縮を行ない、関数に書き込む
        • @@ -231,13 +264,13 @@
        -

        message

        +
        message
      -

      まとめ

      +

      まとめ

      • TreeVNC の改良と Multicast 対応のためのデータの Blocking を実装した。
          diff -r 5a1feea4ef51 -r e2ec8297e712 slide/slide.md --- a/slide/slide.md Wed Feb 20 12:45:47 2019 +0900 +++ b/slide/slide.md Wed Feb 20 14:36:21 2019 +0900 @@ -1,6 +1,6 @@ title: 画面配信システム TreeVNC の拡張 author: Yukiya OSHIRO -profile: +profile: 並列信頼研 lang: Japanese code-engine: coderay @@ -28,13 +28,20 @@ - クライアントが接続している状態で、サーバー側が接続を切るとクライアント側が正しく切断されない - サーバーに接続した際に、画面の操作を許可するかどうか確認するポップアップが Root 側にも表示されてしまう - 画面配信は送信するデータ量が多いため、TreeVNC では無線接続の場合、画面配信の遅延が大きくなってしまう -- 有線接続時のデータ転送方法だと、無線接続で送信するには大きすぎる +- 現在の TreeVNC のデータ転送方法だと、無線接続で送信するには大きすぎる + +!SLIDE +## 今回の発表 +- クライアントが接続している状態で、サーバー側が接続を切るとクライアント側が正しく切断されない +- サーバーに接続した際に、画面の操作を許可するかどうか確認するポップアップが Root 側にも表示されてしまう +- 画面配信は送信するデータ量が多いため、TreeVNC では無線接続の場合、画面配信の遅延が大きくなってしまう +- 現在の TreeVNC のデータ転送方法だと、無線接続で送信するには大きすぎる !SLIDE ## 目次 -- TreeVNC の概要 - - 基本概念 - - 構造 +- **TreeVNC の概要** + - **基本概念** + - **構造** - 研究内容 - TreeVNC の改良 - 送信データの Blocking @@ -49,8 +56,9 @@ ## VNC - VNC (Virtual Network Computing) は、RFB プロトコルを用いて PC の遠隔操作を行うことを目的としたリモートデスクトップソフトウェア - サーバー側とクライアント側に分かれており、起動したサーバーにクライアントが接続することで遠隔操作を可能にしている +- 全ての Node が一台のサーバーに接続するため負担が大きい -message +
          message
          !SLIDE ## RFB プロトコル @@ -65,7 +73,7 @@ - Root Node が参照している VNCServer から FrameBufferUpdate を取得し、各 Node に送信する - バイナリツリー状に接続することで、画像データのコピーを各 Node に負担させることができる -message +
          message
          !SLIDE ## 共有画面切り替え @@ -75,22 +83,31 @@ - メッセージを受け取った Root Node は配信を希望している Node の VNC サーバーと通信を行い、切り替え作業に入る。 !SLIDE -## Multicast 対応 -- 有線接続の Node で形成されたツリーに無線接続の Node を加えてしまうと通信の遅延が発生し、ツリー全体の配信遅延に繋がる +## 目次 +- TreeVNC の概要 + - 基本概念 + - 構造 +- **研究内容** + - **TreeVNC の改良** + - **送信データの Blocking** + +!SLIDE +## Multicast +- ツリーに無線接続の Node を加えてしまうと配信の遅延に繋がる - Multicast の実装を提案 - Multicast ならば、Server からの送信は一度で済むため、ツリー構造の形成が必要ない - 従って新しい Node が 無線接続であっても、有線接続のツリーの配信には影響が出ない -message +
          message
          !SLIDE ## Blocking - 無線接続の場合、一度に送信できるデータ量が 64kbyte しかないため、それに合わせてデータを分割する必要がある -- 大きなデータを小さい単位に分割する手法 +- 大きなデータを小さい単位に分割する - 更新が行われた部分を1行ずつ圧縮していく - 書き込みのために用意した関数に入る限界値まで圧縮を行ない、関数に書き込む -message +
          message
          !SLIDE ## まとめ diff -r 5a1feea4ef51 -r e2ec8297e712 slide/slide.pdf.html --- a/slide/slide.pdf.html Wed Feb 20 12:45:47 2019 +0900 +++ b/slide/slide.pdf.html Wed Feb 20 14:36:21 2019 +0900 @@ -58,7 +58,7 @@
          Yukiya OSHIRO - + 並列信頼研
          @@ -70,7 +70,7 @@ @@ -103,19 +103,31 @@
        • クライアントが接続している状態で、サーバー側が接続を切るとクライアント側が正しく切断されない
        • サーバーに接続した際に、画面の操作を許可するかどうか確認するポップアップが Root 側にも表示されてしまう
        • 画面配信は送信するデータ量が多いため、TreeVNC では無線接続の場合、画面配信の遅延が大きくなってしまう
        • -
        • 有線接続時のデータ転送方法だと、無線接続で送信するには大きすぎる
        • +
        • 現在の TreeVNC のデータ転送方法だと、無線接続で送信するには大きすぎる
      -

      目次

      +

      今回の発表

        -
      • TreeVNC の概要 +
      • クライアントが接続している状態で、サーバー側が接続を切るとクライアント側が正しく切断されない
      • +
      • サーバーに接続した際に、画面の操作を許可するかどうか確認するポップアップが Root 側にも表示されてしまう
      • +
      • 画面配信は送信するデータ量が多いため、TreeVNC では無線接続の場合、画面配信の遅延が大きくなってしまう
      • +
      • 現在の TreeVNC のデータ転送方法だと、無線接続で送信するには大きすぎる
      • +
      + +
      +
      + + +

      目次

      +
        +
      • TreeVNC の概要
          -
        • 基本概念
        • -
        • 構造
        • +
        • 基本概念
        • +
        • 構造
      • 研究内容 @@ -145,9 +157,10 @@
        • VNC (Virtual Network Computing) は、RFB プロトコルを用いて PC の遠隔操作を行うことを目的としたリモートデスクトップソフトウェア
        • サーバー側とクライアント側に分かれており、起動したサーバーにクライアントが接続することで遠隔操作を可能にしている
        • +
        • 全ての Node が一台のサーバーに接続するため負担が大きい
        -

        message

        +
        message
      @@ -172,13 +185,13 @@
    • バイナリツリー状に接続することで、画像データのコピーを各 Node に負担させることができる
    -

    message

    +
    message
    -

    共有画面切り替え

    +

    共有画面切り替え

    • 従来の VNC では、配信者が切り替わるたびに再起動、再接続を行う必要があった
    • TreeVNC では、画面上にある ShareScreen ボタンを押すことで配信者の切り替えが実行できる
    • @@ -190,15 +203,35 @@
      -

      Multicast 対応

      +

      目次

        -
      • 有線接続の Node で形成されたツリーに無線接続の Node を加えてしまうと通信の遅延が発生し、ツリー全体の配信遅延に繋がる
      • +
      • TreeVNC の概要 +
          +
        • 基本概念
        • +
        • 構造
        • +
        +
      • +
      • 研究内容 +
          +
        • TreeVNC の改良
        • +
        • 送信データの Blocking
        • +
        +
      • +
      + +
      +
      + + +

      Multicast

      +
        +
      • ツリーに無線接続の Node を加えてしまうと配信の遅延に繋がる
      • Multicast の実装を提案
      • Multicast ならば、Server からの送信は一度で済むため、ツリー構造の形成が必要ない
      • 従って新しい Node が 無線接続であっても、有線接続のツリーの配信には影響が出ない
      -

      message

      +
      message
      @@ -207,7 +240,7 @@

      Blocking

      • 無線接続の場合、一度に送信できるデータ量が 64kbyte しかないため、それに合わせてデータを分割する必要がある
      • -
      • 大きなデータを小さい単位に分割する手法 +
      • 大きなデータを小さい単位に分割する
        • 更新が行われた部分を1行ずつ圧縮していく
        • 書き込みのために用意した関数に入る限界値まで圧縮を行ない、関数に書き込む
        • @@ -215,13 +248,13 @@
        -

        message

        +
        message
      -

      まとめ

      +

      まとめ

      • TreeVNC の改良と Multicast 対応のためのデータの Blocking を実装した。