IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 財團法人工業技術研究院の特許一覧

特開2024-41699ネットワーク遅延の監視システム及び監視方法
<>
  • 特開-ネットワーク遅延の監視システム及び監視方法 図1
  • 特開-ネットワーク遅延の監視システム及び監視方法 図2
  • 特開-ネットワーク遅延の監視システム及び監視方法 図3
  • 特開-ネットワーク遅延の監視システム及び監視方法 図4
  • 特開-ネットワーク遅延の監視システム及び監視方法 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024041699
(43)【公開日】2024-03-27
(54)【発明の名称】ネットワーク遅延の監視システム及び監視方法
(51)【国際特許分類】
   G06F 11/30 20060101AFI20240319BHJP
   G06F 11/32 20060101ALI20240319BHJP
【FI】
G06F11/30 155
G06F11/30 140A
G06F11/32 180
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023005519
(22)【出願日】2023-01-18
(31)【優先権主張番号】111134784
(32)【優先日】2022-09-14
(33)【優先権主張国・地域又は機関】TW
(71)【出願人】
【識別番号】390023582
【氏名又は名称】財團法人工業技術研究院
【氏名又は名称原語表記】INDUSTRIAL TECHNOLOGY RESEARCH INSTITUTE
【住所又は居所原語表記】No.195,Sec.4,ChungHsingRd.,Chutung,Hsinchu,Taiwan 31040
(74)【代理人】
【識別番号】100147485
【弁理士】
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【弁護士】
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100224683
【弁理士】
【氏名又は名称】齋藤 詩織
(72)【発明者】
【氏名】劉 得▲イエン▼
(72)【発明者】
【氏名】▲ライ▼ 佳宏
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042GA12
5B042GA22
5B042JJ23
5B042MA08
5B042MC22
5B042MC33
(57)【要約】      (修正有)
【課題】ネットワーク遅延の監視システム及び監視方法を提供する。
【解決手段】方法は、サーバを、第1アプリケーションを稼働する第1仮想マシンを提供する第1ホスト及び第2アプリケーションを稼働する第2仮想マシンを提供する第2ホストに通信可能に接続することと、サーバにより、第1ホスト及び第2ホストから取得されたデータに基づき、第1アプリケーションと第2アプリケーションとの間の通信に関連付く遅延時間情報を算出し、遅延時間情報を視覚的インターフェイスを介して表示することと、を含む。遅延時間情報は、第1アプリケーションと第2アプリケーションとの間の通信の総遅延を含む。
【選択図】図5
【特許請求の範囲】
【請求項1】
第1ホスト及び第2ホストと通信可能に接続されたサーバ
を含み、
前記第1ホストが第1アプリケーションを稼働する第1仮想マシンを提供し、
前記第2ホストが第2アプリケーションを稼働する第2仮想マシンを提供し、
前記サーバが、前記第1ホスト及び前記第2ホストからデータを取得し、前記データに基づき前記第1アプリケーションと前記第2アプリケーションとの間の通信に関連付く遅延時間情報を算出して、前記遅延時間情報を視覚的インターフェイスを介して表示し、
前記遅延時間情報が、前記第1アプリケーションと前記第2アプリケーションとの間の前記通信の総遅延を含む、
ネットワーク遅延の監視システム。
【請求項2】
前記第1アプリケーションが、第1の時点で第1パケットを前記第2アプリケーションへ送信し、第2の時点で前記第1パケットに対応する第2パケットを前記第2アプリケーションから受け取り、
前記総遅延が前記第2の時点と前記第1の時点との間の遅延に等しい、
請求項1に記載のネットワーク遅延の監視システム。
【請求項3】
前記第1仮想マシンの第1クライアントカーネルが、第3の時点で前記第1パケットを前記第2仮想マシンへ送信し、第4の時点で前記第1パケットに対応する確認メッセージを前記第2仮想マシンの第2クライアントカーネルから受け取り、
前記遅延時間情報が、前記第4の時点と前記第3の時点との間の遅延を表す往復遅延時間を更に含む、
請求項2に記載のネットワーク遅延の監視システム。
【請求項4】
前記第1ホストの第1ネットワークインターフェイスカードが、第5の時点で前記第1パケットを前記第2ホストへ送信し、第6の時点で前記第1パケットに対応する応答メッセージを前記第2ホストの第2ネットワークインターフェイスカードから受け取り、
前記遅延時間情報が、前記第6の時点と前記第5の時点との間の遅延を表す物理層遅延を更に含む、
請求項3に記載のネットワーク遅延の監視システム。
【請求項5】
前記遅延時間情報が仮想層遅延を更に含み、
前記サーバが、前記仮想層遅延を算出するため、前記往復遅延時間から前記物理層遅延を減算する、
請求項4に記載のネットワーク遅延の監視システム。
【請求項6】
前記第1仮想マシンの前記第1クライアントカーネルが、第3の時点で前記第1パケットを前記第1アプリケーションから受け取り、
前記遅延時間情報が、前記第3の時点と前記第1の時点との間の遅延を表す第1のアプリケーション層遅延を更に含む、
請求項5に記載のネットワーク遅延の監視システム。
【請求項7】
前記第1クライアントカーネルが、第7の時点で前記第2アプリケーションからの前記第2パケットを前記第1アプリケーションへ伝送し、
前記遅延時間情報が、前記第2の時点と前記第7の時点との間の遅延を表す第2のアプリケーション層遅延を更に含む、
請求項6に記載のネットワーク遅延の監視システム。
【請求項8】
前記第2アプリケーションが、第8の時点で前記第1アプリケーションからの前記第1パケットを受け取り、第9の時点で前記第2パケットを前記第1アプリケーションへ送信し、
前記遅延時間情報が、前記第9の時点と前記第8の時点との間の遅延を表すサービス時間を更に含む、
請求項7に記載のネットワーク遅延の監視システム。
【請求項9】
前記サーバが、前記第1ホストからリソース使用情報を取得して、前記リソース使用情報を前記視覚的インターフェイスを介して表示する、
請求項1に記載のネットワーク遅延の監視システム。
【請求項10】
前記リソース使用情報が、前記第1ホストのCPU使用率、前記第1ホストのメモリ使用率、前記第1仮想マシンのCPU使用率、前記第1仮想マシンのメモリ使用率、前記第1アプリケーションのCPU使用率、及び前記第1アプリケーションのメモリ使用率のうちの少なくとも1つを含む、
請求項9に記載のネットワーク遅延の監視システム。
【請求項11】
前記第1仮想マシンにインストールされたプロキシモジュールを含む前記第1ホスト
を更に含み、
前記プロキシモジュールが、前記第1仮想マシンのカーネルモード空間から第1の情報を取得して、前記第1の情報を前記サーバへ送信し、
前記サーバが、前記第1の情報に基づき、前記第1の時点と、前記第2の時点と、前記第3の時点と、前記第4の時点と、前記第7の時点と、前記第1仮想マシンの前記CPU使用率と、前記第1仮想マシンの前記メモリ使用率と、前記第1アプリケーションの前記CPU使用率と、前記第1アプリケーションの前記メモリ使用率とを取得する、
請求項8に記載のネットワーク遅延の監視システム。
【請求項12】
前記第1ホストがデーモンを更に含み、
前記デーモンが、前記第1ホストのプロセッサから第2の情報を取得して、前記第2の情報を前記サーバへ送信し、
前記サーバが、前記第2の情報に基づき、前記第5の時点と、前記第6の時点と、前記第1ホストの前記CPU使用率と、前記第1ホストの前記メモリ使用率とを取得する、
請求項11に記載のネットワーク遅延の監視システム。
【請求項13】
前記第2仮想マシンにインストールされたプロキシモジュールを含む前記第2ホスト
を更に含み、
前記プロキシモジュールが、前記第2仮想マシンのカーネルモード空間から第3の情報を取得して、前記第3の情報を前記サーバへ送信し、
前記サーバが、前記第3の情報に基づき、前記第8の時点と前記第9の時点とを取得する、
請求項11に記載のネットワーク遅延の監視システム。
【請求項14】
前記第1の情報が信号セットを含み、
前記サーバが、前記信号セットのうちの最初の信号が第1の関数値を有し且つ前記最初の信号の第1の送信元ポートがデフォルト値よりも大きいことに応じて、前記最初の信号に対応する第1のタイムスタンプを前記第1の時点として設定する、
請求項11に記載のネットワーク遅延の監視システム。
【請求項15】
前記最初の信号が第2シーケンスに対応する第1の値を含み、
前記サーバが、前記信号セットから、第1シーケンスに対応する第2の値と、第2の関数値と、前記デフォルト値よりも大きい第2の送信元ポートとをそれぞれが含む複数の信号を選択し、前記複数の信号のうちの最初が前記第2シーケンスに対応する第3の値を含み、
前記サーバが、前記第3の値が前記第1の値と一致することに応じて、前記複数の信号のうちの最後の第2のタイムスタンプを前記第2の時点として設定する、
請求項14に記載のネットワーク遅延の監視システム。
【請求項16】
前記第1の情報が複数の確認メッセージを更に含み、
前記サーバが、前記複数の確認メッセージが前記第1シーケンスに対応する前記第2の値と一致する第1の確認メッセージセットを含むか否かを判定して、前記複数の確認メッセージが前記第1の確認メッセージセットを含むことに応じて、前記第1の確認メッセージセットのうちの最初の確認メッセージの遅延を前記往復遅延時間に設定する、
請求項15に記載のネットワーク遅延の監視システム。
【請求項17】
前記複数の確認メッセージが前記第1の確認メッセージセットを含まないことに応じて、前記サーバが、前記複数の確認メッセージが前記第2シーケンスに対応する前記第3の値と一致する第2の確認メッセージセットを含むか否かを判定し、
前記サーバが、前記複数の確認メッセージが前記第2の確認メッセージセットを含むことに応じて、前記第2の確認メッセージセットのうちの最初の確認メッセージの遅延を前記往復遅延時間に設定する、
請求項16に記載のネットワーク遅延の監視システム。
【請求項18】
サーバを第1ホスト及び第2ホストに通信可能に接続することであって、前記第1ホストが第1アプリケーションを稼働する第1仮想マシンを提供し、前記第2ホストが第2アプリケーションを稼働する第2仮想マシンを提供することと、
前記サーバにより前記第1ホスト及び前記第2ホストから取得されたデータに基づき、前記第1アプリケーションと前記第2アプリケーションとの間の通信に関連付く遅延時間情報を算出して、前記遅延時間情報を視覚的インターフェイスを介して表示することであって、前記遅延時間情報が前記第1アプリケーションと前記第2アプリケーションとの間の前記通信の総遅延を含むことと
を含む、
ネットワーク遅延の監視方法。
【請求項19】
前記第1仮想マシンにプロキシモジュールをインストールすることと、
前記プロキシモジュールにより前記第1仮想マシンのカーネルモード空間から第1の情報を取得して、前記第1の情報を前記サーバへ送信することと、
前記第1の情報に基づき、前記サーバにより、前記第1アプリケーションが第1パケットを前記第2アプリケーションへ送信した第1の時点と、前記第1アプリケーションが前記第1パケットに対応する第2パケットを前記第2アプリケーションから受け取った第2の時点とを取得することと、
前記総遅延を取得するため、前記サーバにより前記第2の時点と前記第1の時点との間の遅延を算出することと
を更に含む、
請求項18に記載のネットワーク遅延の監視方法。
【請求項20】
前記第1ホストにデーモンをインストールすることと、
前記デーモンにより、前記第1ホストのプロセッサから第2の情報を取得して、前記第2の情報を前記サーバへ送信することと、
前記第2の情報に基づき、前記サーバにより、前記第1ホストの第1ネットワークインターフェイスカードが前記第1パケットを前記第2ホストへ送信した第3の時点と、前記第1ホストの第1ネットワークインターフェイスカードが前記第1パケットに対応する応答メッセージを前記第2ホストの第2ネットワークインターフェイスカードから受け取った第4の時点とを取得することと、
物理層遅延を取得するため、前記サーバにより前記第4の時点と前記第3の時点との間の遅延を算出することであって、前記遅延時間情報が前記物理層遅延を含むことと
を更に含む、
請求項19に記載のネットワーク遅延の監視方法。
【発明の詳細な説明】
【背景技術】
【0001】
本発明は、ネットワーク遅延の監視システム及び監視方法に関するものである。
【0002】
通信技術の発展に伴い、ネットワーク遅延に対する要件が徐々に増加している。例えば、5G通信システムの超高信頼かつ低遅延な通信(URLLC)は1ミリ秒の遅延を要求している。通信処理における何らかの異常イベントは通信遅延を引き起こしてユーザのニーズに答えられなくさせる可能性があり、ユーザ数の減少又は収益の損失を招く。
【0003】
電子商取引プラットフォームの1つの例において、競争の激しいプロモーション期間において、通信遅延はトランザクション失敗又はユーザエクスペリエンス低下を引き起こす可能性があり、これは売上と収益に直接影響を及ぼす。このため、プラットフォームパフォーマンスの正確な把握及びネットワーク遅延の根本的原因の発見において、ネットワーク管理者を如何に補助するかが本分野における重要な話題の1つである。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、視覚的インターフェイスを介した仮想マシンシステムの遅延の根本的原因の発見においてシステム管理者を補助することのできる、ネットワーク遅延の監視システム及び監視方法を提供する。
【課題を解決するための手段】
【0005】
本発明のネットワーク遅延の監視システムは、サーバを含む。サーバは、第1ホスト及び第2ホストと通信可能に接続される。第1ホストは第1アプリケーションを稼働する第1仮想マシンを提供し、第2ホストは第2アプリケーションを稼働する第2仮想マシンを提供する。サーバは、第1ホスト及び第2ホストからデータを取得し、該データに基づき第1アプリケーションと第2アプリケーションとの間の通信に関連付く遅延時間情報を算出して、該遅延時間情報を視覚的インターフェイスを介して表示する。遅延時間情報は、第1アプリケーションと第2アプリケーションとの間の通信の総遅延を含む。
【0006】
本発明の1つの実施形態において、第1アプリケーションは、第1の時点で第1パケットを第2アプリケーションへ送信し、第2の時点で第1パケットに対応する第2パケットを第2アプリケーションから受け取る。総遅延は、第2の時点と第1の時点との間の遅延に等しい。
【0007】
本発明の1つの実施形態において、第1仮想マシンの第1クライアントカーネルは、第3の時点で第1パケットを第2仮想マシンへ送信し、第4の時点で第1パケットに対応する確認メッセージを第2仮想マシンの第2クライアントカーネルから受け取る。遅延時間情報は、第4の時点と第3の時点との間の遅延を表す往復遅延時間を更に含む。
【0008】
本発明の1つの実施形態において、第1ホストの第1ネットワークインターフェイスカードは、第5の時点で第1パケットを第2ホストへ送信し、第6の時点で第1パケットに対応する応答メッセージを第2ホストの第2ネットワークインターフェイスカードから受け取る。遅延時間情報は、第6の時点と第5の時点との間の遅延を表す物理層遅延を更に含む。
【0009】
本発明の1つの実施形態において、遅延時間情報は仮想層遅延を更に含む。サーバは、仮想層遅延を算出するため、往復遅延時間から物理層遅延を減算する。
【0010】
本発明の1つの実施形態において、第1仮想マシンの第1クライアントカーネルは、第3の時点で第1パケットを第1アプリケーションから受け取る。遅延時間情報は、第3の時点と第4の時点との間の遅延を表す第1のアプリケーション層遅延を更に含む。
【0011】
本発明の1つの実施形態において、第1クライアントカーネルは、第7の時点で第2アプリケーションからの第2パケットを第1アプリケーションへ伝送する。遅延時間情報は、第2の時点と第7の時点との間の遅延を表す第2のアプリケーション層遅延を更に含む。
【0012】
本発明の1つの実施形態において、第2アプリケーションは、第8の時点で第1パケットを第1アプリケーションから受け取り、第9の時点で第2パケットを第1アプリケーションへ送信する。遅延時間情報は、第9の時点と第8の時点との間の遅延を表すサービス時間を更に含む。
【0013】
本発明の1つの実施形態において、サーバは、第1ホストからリソース使用情報を取得して、該リソース使用情報を視覚的インターフェイスを介して表示する。
【0014】
本発明の1つの実施形態において、リソース使用情報は、第1ホストのCPU使用率、第1ホストのメモリ使用率、第1仮想マシンのCPU使用率、第1仮想マシンのメモリ使用率、第1アプリケーションのCPU使用率、及び第1アプリケーションのメモリ使用率のうちの少なくとも1つを含む。
【0015】
本発明の1つの実施形態において、監視システムは第1ホストを更に含む。第1ホストは、第1仮想マシンにインストールされたプロキシモジュールを含む。プロキシモジュールは、第1仮想マシンのカーネルモード空間から第1の情報を取得して、第1の情報をサーバへ送信する。サーバは、第1の情報に基づき、第1の時点と、第2の時点と、第3の時点と、第4の時点と、第7の時点と、第1仮想マシンのCPU使用率と、第1仮想マシンのメモリ使用率と、第1アプリケーションのCPU使用率と、第1アプリケーションのメモリ使用率とを取得する。
【0016】
本発明の1つの実施形態において、監視システムは第1ホストを更に含む。第1ホストはデーモン(daemon)を含む。デーモンは、第1ホストのプロセッサから第2の情報を取得して、第2の情報をサーバへ送信する。サーバは、第2の情報に基づき、第5の時点と、第6の時点と、第1ホストのCPU使用率と、第1ホストのメモリ使用率とを取得する。
【0017】
本発明の1つの実施形態において、監視システムは第2ホストを更に含む。第2ホストは、第2仮想マシンにインストールされたプロキシモジュールを含む。プロキシモジュールは、第2仮想マシンのカーネルモード空間から第3の情報を取得して、第3の情報をサーバへ送信し、サーバは第3の情報に基づき第8の時点と第9の時点とを取得する。
【0018】
本発明の1つの実施形態において、第1の情報は信号セットを含む。サーバは、信号セットのうちの最初の信号が第1の機能値を有し且つ最初の信号の第1の送信元ポートがデフォルト値よりも大きいことに応じて、最初の信号に対応する第1のタイムスタンプを第1の時点として設定する。
【0019】
本発明の1つの実施形態において、信号セットのうちの最初の信号は第2シーケンスに対応する第1の値を有する。サーバは、信号セットから、第1シーケンスに対応する第2の値と、第2の関数値と、デフォルト値よりも大きい第2の送信元ポートとをそれぞれが含む複数の信号を選択する。複数の信号のうちの最初は、第2シーケンスに対応する第3の値を含む。サーバは、第3の値が第1の値と一致することに応じて、複数の信号のうちの最後の第2のタイムスタンプを第2の時点として設定する。
【0020】
本発明の1つの実施形態において、第1の情報は複数の確認メッセージを更に含む。サーバは、複数の確認メッセージが第1シーケンスに対応する第2の値と一致する第1の確認メッセージセットを含むか否かを判定し、複数の確認メッセージが第1の確認メッセージセットを含むことに応じて、第1の確認メッセージセットのうちの最初の確認メッセージの遅延を往復遅延時間に設定する。
【0021】
本発明の1つの実施形態において、複数の確認メッセージが第1の確認メッセージセットを含まないことに応じて、サーバは、複数の確認メッセージが第2シーケンスに対応する第3の値と一致する第2の確認メッセージセットを含むか否かを判定する。サーバは、複数の確認メッセージが第2の確認メッセージセットを含むことに応じて、第2の確認メッセージセットのうちの最初の確認メッセージの遅延を往復遅延時間に設定する。
【0022】
本発明によるネットワーク遅延の監視方法は次のステップを含む。サーバが第1ホスト及び第2ホストに通信可能に接続される。第1ホストが第1アプリケーションを稼働する第1仮想マシンを提供し、第2ホストが第2アプリケーションを稼働する第2仮想マシンを提供する。サーバが、第1ホスト及び第2ホストから取得したデータに基づき、第1アプリケーションと第2アプリケーションとの間の通信に関連付く遅延時間情報を算出して、該遅延時間情報を視覚的インターフェイスを介して表示する。遅延時間情報は、第1アプリケーションと第2アプリケーションとの間の通信の総遅延を含む。
【0023】
本発明の1つの実施形態において、監視方法は次のステップを更に含む。プロキシモジュールが第1仮想マシンにインストールされる。プロキシモジュールが、第1仮想マシンのカーネルモード空間から第1の情報を取得して、第1の情報をサーバへ送信する。サーバが、第1の情報に基づき、第1アプリケーションが第1パケットを第2アプリケーションへ送信した第1の時点と、第1アプリケーションが第1パケットに対応する第2パケットを第2アプリケーションから受け取った第2の時点とを取得する。サーバが、総遅延を取得するため、第2の時点と第1の時点との間の遅延を算出する。
【0024】
本発明の1つの実施形態において、監視方法は次のステップを更に含む。デーモン(daemon)が第1ホストにインストールされる。デーモンが、第1ホストのプロセッサから第2の情報を取得して、第2の情報をサーバへ送信する。サーバが、第2の情報に基づき、第1ホストの第1ネットワークインターフェイスカードが第1パケットを第2ホストへ送信した第3の時点と、第1ホストの第1ネットワークインターフェイスカードが第1パケットに対応する応答メッセージを第2ホストの第2ネットワークインターフェイスカードから受け取った第4の時点とを取得する。サーバが、物理層遅延を取得するため、第4の時点と第3の時点との間の遅延を算出し、遅延時間情報が物理層遅延を含む。
【発明の効果】
【0025】
まとめると、本発明の監視システムは、クライアントの仮想マシンを稼働するホストと、サービスプロバイダの仮想マシンを稼働するホストとの間の遅延時間情報を算出し、システム管理者による参照のため、視覚的インターフェイスを介して仮想マシンの物理層又は仮想層に関連付く遅延時間情報を表示することができる。
【図面の簡単な説明】
【0026】
図1図1は、本発明の1つの実施形態によるネットワーク遅延の監視システムを表す概略図である。
図2図2は、本発明の1つの実施形態による遅延時間情報を表示するための視覚的インターフェイスを表す概略図である。
図3図3は、本発明の1つの実施形態による、より詳細な情報を表示するための視覚的インターフェイスを表す概略図である。
図4図4は、本発明の1つの実施形態によるホストとホストの間の信号線図を表す。
図5図5は、本発明の1つの実施形態によるネットワーク遅延の監視方法を表すフロー図である。
【発明を実施するための形態】
【0027】
本発明をより理解し易くするため、本発明の実際の実施の例として特定の実施形態を以下に説明する。加えて、可能な限り、図面及び実施形態における同一の符号を有する要素/部品/ステップは同一又は類似の部分を表す。
【0028】
図1は、本発明の1つの実施形態によるネットワーク遅延の監視システム10を表す概略図である。監視システム10は、少なくともサーバ100を含む。1つの実施形態において、監視システム10はホスト200とホスト300とを更に含んでよい。ホスト200はクライアントとして機能してよく、ホスト300はサービスプロバイダとして機能してよい。サーバ100、ホスト200、及びホスト300は互いに通信可能に接続される。1つの実施形態において、ホスト200とホスト300は、図3に示すように、1つ以上のスイッチを介した通信のために互いに接続されてよい。サーバ100は、ホスト200とホスト300との間の伝送の遅延時間情報を取得して、システム管理者による参照のため、遅延時間情報を視覚的インターフェイスを介して表示することができる。
【0029】
サーバ100は、プロセッサ110と、記憶媒体120と、ネットワークインターフェイスカード(NIC)130とを含んでよい。ホスト200は、プロセッサ210と、記憶媒体220と、ネットワークインターフェイスカード230とを含んでよい。ホスト300は、プロセッサ310と、記憶媒体320と、ネットワークインターフェイスカード330とを含んでよい。
【0030】
プロセッサ110、プロセッサ210、又はプロセッサ310は、中央処理装置(CPU)、又は他のプログラム可能な汎用又は特定用途向けマイクロコントロールユニット(MCU)、マイクロプロセッサ、デジタルシグナルプロセッサ(DSP)、プログラマブルコントローラ、特定用途向け集積回路(ASIC)、グラフィックスプロセッシングユニット(GPU)、画像信号プロセッサ(ISP)、画像取得処理装置(IPU)、演算装置(ALU)、コンプレックスプログラマブルロジックデバイス(CPLD)、フィールドプログラマブルゲートアレイ(FPGA)、又は類似の要素、又はそれらの組合せを含んでよい。プロセッサ110は、記憶媒体120及びネットワークインターフェイスカード130に結合されてよく、プロセッサ110は記憶媒体120に格納された複数のモジュール及び様々なアプリケーションにアクセスして実行してよい。プロセッサ210は、記憶媒体220及びネットワークインターフェイスカード230に結合されてよく、プロセッサ210は記憶媒体220に格納された複数のモジュール及び様々なアプリケーションにアクセスして実行してよい。プロセッサ310は、記憶媒体320及びネットワークインターフェイスカード330に結合されてよく、プロセッサ310は記憶媒体320に格納された複数のモジュール及び様々なアプリケーションにアクセスして実行してよい。
【0031】
記憶媒体120、記憶媒体220、又は記憶媒体320は、任意のタイプの固定又は取外し可能なランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)、又は類似の要素、又はそれらの組合せを含んでよく、記憶媒体120、記憶媒体220、又は記憶媒体320は、プロセッサ110、プロセッサ210、又はプロセッサ310により実行されることのできる複数のモジュール又は様々なアプリケーションを格納するよう構成される。本実施形態において、記憶媒体120は、視覚的インターフェイス121及びデータベース122を含む複数のモジュールを格納してよく、記憶媒体220は、デーモン(daemon)及び仮想マシン20等を含む複数のモジュールを格納してよく、記憶媒体320は、デーモン及び仮想マシン30等を含む複数のモジュールを格納してよい。その機能は後続の段落において表す。
【0032】
ネットワークインターフェイスカード130、ネットワークインターフェイスカード230、又はネットワークインターフェイスカード330は、無線又は有線方式において信号を送受信する。ネットワークインターフェイスカード130はまた、低騒音増幅、インピーダンス整合、周波数混合、周波数のアップ又はダウンコンバージョン、フィルタリング、増幅等といった動作を実行してよい。
【0033】
ホスト200は、クライアントのための仮想マシン20として機能するよう構成される。アプリケーション21、クライアントカーネル22、プロキシモジュール23等といった複数のモジュールが仮想マシン20のクライアントオペレーティングシステム(クライアントOS)にインストールされて、仮想マシン20のクライアントOSにより実行されることができる。ホスト300は、サービスプロバイダの仮想マシン30として機能するよう構成される。アプリケーション31、クライアントカーネル32、プロキシモジュール33等といった複数のモジュールが仮想マシン30のクライアントOSにインストールされることができ、仮想マシン30のクライアントOSにより実行されることができる。
【0034】
サーバ100は、ネットワークインターフェイスカード130を介してホスト200及びホスト300からアプリケーション21とアプリケーション31との間の通信に関連する遅延時間情報を取得して、遅延時間情報を視覚的インターフェイス121を介して表示してよく、視覚的インターフェイス121は例えばグラフィックユーザインターフェイス(GUI)である。データベース122は、サーバ100により取得された遅延時間情報を格納するか、サーバ100により算出された計算結果を格納するよう構成されてよい。サーバ100は、ホストのメディアアクセスコントロール(MAC)アドレスを介してホストに接続されたネットワークデバイスを特定することができ、システム管理者が物理ネットワーク問題を容易に見つけることを可能とする。
【0035】
図2は、本発明の1つの実施形態による遅延時間情報を表示するための視覚的インターフェイス121を表す概略図であり、遅延時間情報は総遅延を含んでよい。視覚的インターフェイス121は、発信元(又はクライアント)としての仮想マシンVM1と宛先(又はサービスプロバイダ)としての仮想マシンVM2との間の総遅延を表示し、発信元としての仮想マシンVM3と宛先としての仮想マシンVM4との間の総遅延を表示する。
【0036】
視覚的インターフェイス121上に表示された総遅延は、ハイパーリンク50を含んでよい。視覚的インターフェイス121における総遅延に関連付くハイパーリンク50が選択された後、視覚的インターフェイス121はより詳細な情報を表示してよい。例えば、ユーザは、視覚的インターフェイス121にホスト200及びホスト300に関連するより詳細な情報を表示するよう指示するため、キーボード、マウス、タッチスクリーンといった入力デバイスを操作することにより視覚的インターフェイス121におけるハイパーリンク50を選択してよい。
【0037】
図3は、本発明の1つの実施形態による、より詳細な情報を表示するための視覚的インターフェイス121を表す概略図である。視覚的インターフェイス121は、IPアドレスが[192.168.0.100]であるアプリケーション21と、IPアドレスが[192.168.0.102]であるアプリケーション31との間の通信の遅延時間情報を表示してよい。具体的には、視覚的インターフェイス121は、物理層とネットワークとの間の遅延に対応する物理層遅延(例えば20ミリ秒)及び対応する百分率(例えば20%)、仮想層遅延(例えば120ミリ秒)及び対応する百分率(例えば60%)、アプリケーション層遅延(例えば50ミリ秒)及び対応する百分率(例えば25%)、及びサービス時間(例えば50ミリ秒)及び対応する百分率(例えば25%)を表示してよい。物理層、仮想層、又はアプリケーション層の間の接続は、U字状であってよい。
【0038】
特定の層の遅延の比率が閾値よりも大きい場合、視覚的インターフェイス121は該層を表す接続を目を引く方式で表示してよい(例えば、赤色は警告を表すために採用される)。例えば、閾値が50%であると仮定し、視覚的インターフェイス121は、仮想層遅延の比率60%が閾値である50%よりも大きいことに応じて、仮想層の接続を赤色点線で表示してよい(例えば、クライアントカーネル22とネットワークインターフェイスカード230との間の接続、又は、クライアントカーネル32とネットワークインターフェイスカード330との間の接続)。
【0039】
アプリケーション21とアプリケーション31との間の通信の遅延時間情報を表示することに加え、視覚的インターフェイス121はホスト200のリソース使用率又はホスト300のリソース使用率を更に表示することができる。リソース使用情報には、ホスト200の中央処理装置(CPU)使用率、ホスト200のメモリ使用率、ホスト200の他の情報(例えば、I/Oカウント、キロバイトカウント、及び平均ミリ秒を含む、上位N個のプロセス)、仮想マシン20のCPU使用率、仮想マシン20のメモリ使用率、アプリケーション21のCPU使用率、アプリケーション21のメモリ使用率を含んでよい。リソース使用情報には、ホスト300のCPU使用率、ホスト300のメモリ使用率、ホスト300の他の情報(例えば、I/Oカウント、キロバイトカウント、及び平均ミリ秒を含む、上位N個のプロセス)、仮想マシン30のCPU使用率、仮想マシン30のメモリ使用率、アプリケーション31のCPU使用率、アプリケーション31のメモリ使用率を更に含んでよい。
【0040】
プロセッサ110は、アプリケーション21とアプリケーション31との間で伝送される信号に基づき、視覚的インターフェイス121により表示される遅延時間情報を算出してよい。図4は、本発明の1つの実施形態によるホスト200とホスト300との間の信号線図を表す。仮想マシン20のアプリケーション21は、時点t1で第1パケットをアプリケーション31へ送信してよい。仮想マシン20のクライアントカーネル22は、時点t2でアプリケーション21からの第1パケットを受け取り、第1パケットを仮想マシン30へ送信してよい。ホスト200のネットワークインターフェイスカード230は、時点t3で第1パケットを受け取り、第1パケットをホスト300へ送信してよい。ホスト300のネットワークインターフェイスカード330は、時点t4で第1パケットを受け取り、第1パケットに対応する応答メッセージ(例えばpingメッセージ)をネットワークインターフェイスカード230へ送り返してよい。ネットワークインターフェイスカード230は、時点t5でネットワークインターフェイスカード330からの応答メッセージを受け取る。
【0041】
加えて、ネットワークインターフェイスカード330は、時点t4で第1パケットを仮想マシン30のクライアントカーネル32へ伝送してよい。クライアントカーネル32は、時点t6でネットワークインターフェイスカード330から第1パケットを受け取り、第1パケットに対応する確認メッセージ(ACK又はtcp_ACK)をクライアントカーネル22へ送信してよい。クライアントカーネル22は、時点t7でクライアントカーネル32からの確認メッセージを受け取る。
【0042】
一方、クライアントカーネル32は、時点t6で第1パケットを仮想マシン30のアプリケーション31へ伝送してよい。アプリケーション31は、時点t8でクライアントカーネル32から第1パケットを受け取り、時点t9で第1パケットに対応する第2パケットをアプリケーション21へ送信してよい。クライアントカーネル22は、時点t10でアプリケーション31からの第2パケットを受け取り、第2パケットをアプリケーション21へ送信してよい。アプリケーション21は、時点t11でアプリケーション31(又はクライアントカーネル22)からの第2パケットを受け取る。
【0043】
1つの実施形態において、プロセッサ110は時点t1と時点t11に基づきアプリケーション21とアプリケーション31との間の総遅延を算出してよく、総遅延は時点t11と時点t1との間の遅延D1に等しい。第1パケット又は第2パケットは、例えば伝送制御プロトコル(TCP)パケットである。例えば、第1パケットはカーネル関数tcp_sendmsg()を介して送信され、第2パケットはカーネル関数tcp_recvmsg()を介して受け取られる。
【0044】
1つの実施形態において、プロセッサ110は、時点t1と時点t2に基づき、時点t2と時点t1との間の遅延D2を算出してよく、遅延D2はアプリケーション層遅延に対応する。プロセッサ110は、データパケットがアプリケーション21からクライアントカーネル22へ伝送されるのに要する時間(即ち遅延D2)を算出するため、カーネル関数skb_copy_datagram_iter()又はカーネル関数tcp_transmit_skb()を用いてよい。
【0045】
1つの実施形態において、プロセッサ110は、時点t10と時点t11に基づき、時点t11と時点t10との間の遅延D7を算出してよく、遅延D7はアプリケーション層遅延に対応する。プロセッサ110は、データパケットがアプリケーション22からクライアントカーネル21へ伝送されるのに要する時間(即ち遅延D7)を算出するため、カーネル関数skb_copy_datagram_iter()又はカーネル関数tcp_transmit_skb()を用いてよい。
【0046】
1つの実施形態において、プロセッサ110は、時点t2と時点t7に基づき、時点t7と時点t2との間の遅延D3を算出してよく、遅延D3はクライアントカーネル22の往復遅延時間(RTT)である。
【0047】
1つの実施形態において、プロセッサ110は、時点t3と時点t5に基づき、時点t5と時点t3との間の遅延D4を算出してよく、遅延D4は物理層遅延を表す。図3に示した「20ミリ秒」は物理層遅延の一例である。プロセッサ110は、遅延D5を算出するため、RTT(即ち遅延D3)から物理層遅延(即ち遅延D4)を減算してよく、遅延D5は仮想層遅延を表す。図3に示した「120ミリ秒」は仮想層遅延の一例である。
【0048】
1つの実施形態において、プロセッサ110は、時点t8と時点t9に基づき、時点t9と時点t8との間の遅延D6を算出してよく、遅延D6はアプリケーション31のサービス時間を表す。1つの実施形態において、プロセッサ110は、式(1)により表現されるように、遅延D1、遅延D2、遅延D3、及び遅延D7に基づき遅延D6を算出してよい。
D6=D1-D2-D3-D7 (1)
【0049】
1つの実施形態において、プロセッサ110は、時点t10と時点t11に基づき、時点t11と時点t10との間の遅延D7を算出してよく、遅延D7はアプリケーション層遅延に対応する。図3に示した「10ミリ秒」はアプリケーション層遅延の一例であり、アプリケーション層遅延は遅延D2と遅延D7との和に等しい。
【0050】
1つの実施形態において、仮想マシン20にインストールされたプロキシモジュール23は、仮想マシン20のカーネルモード空間から情報を取得して、該情報をサーバ100へ送信することができる。サーバ100は、該情報から、時点t1、時点t2、時点t7、時点t11、仮想マシン20のCPU使用率、仮想マシン20のメモリ使用率、アプリケーション21のCPU使用率、又はアプリケーション21のメモリ使用率を取得することができる。
【0051】
1つの実施形態において、デーモン221は、ホスト200のプロセッサ210から情報を取得して、該情報をサーバ100へ送信してよい。サーバ100は、該情報から、時点t3、時点t5、ホスト200のCPU使用率、又はホスト200のメモリ使用率を取得してよい。1つの実施形態において、デーモン221により取得された情報は、ホスト200に接続されたネットワークデバイスのMACアドレス又はデバイス名、送信元ポート(SPORT)、宛先ポート(DPORT)、第1シーケンス(SEQ)、第2シーケンス(SEQ2)、temp SEQ、確認シーケンス(ACK SEQ)、又はタイムスタンプを更に含んでよく、第2シーケンスはcopied SEQとも呼ばれる。
【0052】
1つの実施形態において、仮想マシン30にインストールされたプロキシモジュール33は、仮想マシン30のカーネルモード空間から情報を取得して、該情報をサーバ100へ送信することができる。サーバ100は、時点t6、時点t8、時点t9、仮想マシン30のCPU使用率、仮想マシン30のメモリ使用率、アプリケーション31のCPU使用率、又はアプリケーション31のメモリ使用率を取得することができる。
【0053】
1つの実施形態において、デーモン321は、ホスト300のプロセッサ310から情報を取得して、該情報をサーバ100へ送信してよい。サーバ100は、該情報から、時点t4、ホスト300のCPU使用率、又はホスト300のメモリ使用率を取得してよい。1つの実施形態において、該情報はホスト300に接続されたネットワークデバイスのMACアドレス又はデバイス名を更に含んでよい。
【0054】
1つの実施形態において、プロキシモジュール23(又はプロキシモジュール33)は拡張バークレーパケットフィルタ(eBPF)技術により実装されてよい。このため、プロキシモジュール23(又はプロキシモジュール33)は仮想マシン20(又は仮想マシン30)のカーネルモードの改変、又はカーネルモジュールのロードを要さない。即ち、仮想マシンのカーネルモード空間から情報を取得するため、カーネルにおけるカスタムバイトコードが実行され、カーネルモード空間は例えばホストOSカーネルである。
【0055】
1つの実施形態において、仮想マシン20のカーネルモード空間からプロキシモジュール23により取得された情報は、信号セットを含んでよい。プロセッサ110は、信号セット中の信号に基づき時点t1を取得してよい。具体的には、信号セットのうちの最初の信号が関数値を有し且つ該最初の信号の送信元ポートがデフォルト値よりも大きい場合、プロセッサ110は、該最初の信号がクライアントにより送信されたものであり、該最初の信号の送信元がクライアントであると判定してよく、ここでデフォルト値は「32768」であってよく、関数値は「1」であってよい。従って、プロセッサ110は第1の信号のタイムスタンプを時点t1として設定してよい。
【0056】
表1は、信号セット中の信号の一例である。信号は、タイムスタンプ、関数(FUNC)、送信元ポート(SPORT)、第1シーケンス(SEQ)、又は第2シーケンス(SEQ2)といった情報を含んでよく、第2シーケンスはcopied SEQとも呼ばれる。1つの実施形態において、信号は、プロセス識別子(PID)、スレッド識別子(TID)、親プロセス識別子(PPID)、命令(COMM)、送信元アドレス(SADDR)、宛先アドレス(DADDR)、又は宛先ポート(DPORT)等を更に含んでよい。プロセッサ110は、信号#1が関数値「1」を有し且つ信号#1の送信元ポート「43528」がデフォルト値「32768」よりも大きいことに応じて、信号#1のタイムスタンプT1を時点t1として設定してよい。本実施形態において、関数値「1」はカーネル関数tcp_sendmsg()を表し、関数値「2」はカーネル関数tcp_rcvmsg()を表す。
【表1】
【0057】
一方、プロセッサ110は、信号セット中の信号に基づき時点t11を取得してよい。具体的には、該最初の信号が第2シーケンス(SEQ2)に対応する値を含むと仮定する。プロセッサ110は、信号セットから複数の信号を選択してよい。選択された信号のそれぞれは、第1シーケンス(SEQ)に対応する値、関数値、及びデフォルト値よりも大きい送信元ポートといった、同一の情報を含んでよく、デフォルト値は「32768」であってよく、関数値は「2」であってよい。更に、該複数の信号のうちの最初は第2シーケンス(SEQ2)に対応する値を含んでよい。プロセッサ110は、該信号セットのうちの最初の信号に含まれる第2シーケンスに対応する値が、該複数の信号のうちの最初に含まれる第2シーケンスに対応する値と一致する(即ち2つの値が同一である)ことに応じて、該複数の信号のうちの最後のタイムスタンプを時点t11として設定してよい。
【0058】
表1を例とし、プロセッサ110は信号セットから、信号#2、信号#3、及び信号#4を含む複数の信号を選択する。プロセッサ110により選択された信号のそれぞれは、関数値「2」と、SEQに対応する値「6036」と、デフォルト値「32768」よりも大きい送信元ポート「45328」とを含む。該複数の信号の最初は信号#2であり、該複数の信号の最後は信号#4である。プロセッサ110は、信号#1に含まれるSEQ2に対応する値「6655」が信号#2に含まれるSEQ2に対応する値「6655」と一致することに応じて、信号#4のタイムスタンプT4を時点t11として設定してよい。
【0059】
1つの実施形態において、仮想マシン20のカーネルモード空間からプロキシモジュール23により取得された情報は、複数の確認メッセージを含んでよい。プロセッサ110は、複数の確認メッセージに基づき往復遅延時間を取得してよい。具体的には、プロセッサ110は、該複数の信号に対応する第1シーケンスの値と一致する第1の確認メッセージセットを確認メッセージが含むか否かを判定する。確認メッセージが第1の確認メッセージセットを含む場合、プロセッサ110は第1の確認メッセージセットのうちの最初の遅延を往復遅延時間として設定してよい。
【0060】
表2は、複数の確認メッセージの一例である。確認メッセージは、確認メッセージを送信した仮想マシン、第1シーケンス(SEQ)、確認メッセージシーケンス(ACK_SEQ)、遅延等といった情報を含む。表1と表2を参照し、プロセッサ110は、複数の確認メッセージ中の確認メッセージ#2及び確認メッセージ#3の確認メッセージシーケンス「6036」が信号#2(又は信号#3及び信号#4)の第1シーケンス「6036」と一致するか否かを判定し、確認メッセージ#2、確認メッセージ#3、確認メッセージ#4が第1の確認メッセージセットを形成できると判定する。従って、プロセッサ110は、第1の確認メッセージセットのうちの最初(即ち確認メッセージ#2)の遅延「388ミリ秒」を往復遅延時間(即ち遅延D3)として設定してよい。
【表2】
【0061】
一方、確認メッセージが第1の確認メッセージセットを含まない場合、プロセッサ110は、確認メッセージが該複数の信号のうちの最初に対応する第2シーケンスの値と一致する第2の確認メッセージセットを含むか否かを判定してよい。確認メッセージが第2の確認メッセージセットを含む場合、プロセッサ110は、第2の確認メッセージセットのうちの最初の遅延を往復遅延時間として設定してよい。
【0062】
表3は、複数の確認メッセージの一例である。表1と表3を参照し、プロセッサ110は、表2における確認メッセージが信号#2(又は信号#3及び信号#4)の第1シーケンス「6036」と一致する第1の確認メッセージセットを含まないと判定し、確認メッセージが信号#2の第2シーケンス「6655」と一致する確認メッセージを含むか否かを更に判定する。表3の確認メッセージ#2、確認メッセージ#3、及び確認メッセージ#4の確認メッセージシーケンス「6655」が信号#2の第2シーケンス「6655」と一致することから、プロセッサ110は、確認メッセージ#2、確認メッセージ#3、及び確認メッセージ#4が第2の確認メッセージセットを形成すると判定してよい。従って、プロセッサ110は、第2の確認メッセージセットのうちの最初(即ち確認メッセージ#2)の遅延「388ミリ秒」を往復遅延時間(即ち遅延D3)として設定してよい。
【表3】
【0063】
図5は、本発明の1つの実施形態によるネットワーク遅延の監視方法を表すフロー図である。該監視方法は、図1に示した監視システム10により実装されることができる。ステップS501において、サーバが第1ホスト及び第2ホストに通信可能に接続され、第1ホストは第1アプリケーションを稼働する第1仮想マシンを提供し、第2ホストは第2アプリケーションを稼働する第2仮想マシンを提供する。ステップS502において、サーバは第1ホスト及び第2ホストからデータを取得して、該データに基づき第1アプリケーションと第2アプリケーションとの間の通信に関連付く遅延時間情報を算出して、遅延時間情報を視覚的インターフェイスを介して表示する。遅延時間情報は、第1アプリケーションと第2アプリケーションとの間の通信の総遅延を含む。
【0064】
まとめると、本発明の監視システムは、クライアントの仮想マシンを稼働するホスト及びサービスプロバイダの仮想マシンを稼働するホストから伝送情報を取得することができる。監視システムは、遅延を引き起こす異常イベントが物理層又は仮想層において発生したことをを迅速に特定するようシステム管理者を補助するため、伝送情報に基づき2つのホスト間の遅延を算出して、視覚的インターフェイスを介して物理層及び仮想層にわたる遅延情報を表示することができる。
【産業上の利用可能性】
【0065】
本発明のネットワーク遅延の監視システム及び監視方法は、5G通信システムといった通信システムにおいて適用することができる。
【符号の説明】
【0066】
10:監視システム
100:サーバ
110、210、310:プロセッサ
120、220、320:記憶媒体
121:視覚的インターフェイス
130、230、330:ネットワークインターフェイスカード
200、300:ホスト
221、321:デーモン
20、30:仮想マシン
21、31:アプリケーション
22、32:クライアントカーネル
23、33:プロキシモジュール
50:ハイパーリンク
D1、D2、D3、D4、D5、D6、D7:遅延
t1、t2、t3、t4、t5、t6、t7、t8、t9、t10、t11:時点
S501、S502:ステップ
図1
図2
図3
図4
図5
【外国語明細書】