(57)【特許請求の範囲】
【請求項１】
仮想マシンとホストとの間で、前記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、
前記交渉によって前記フロー制御ポリシの交渉された実行者が前記仮想マシンであると決定された場合には、前記仮想マシンによって、前記フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階と、
前記交渉によって前記フロー制御ポリシの前記交渉された実行者が前記ホストであると決定された場合には、前記仮想マシンによって、前記転送処理されるべきパケットを前記ホストに送信し、これにより、前記ホストが前記フロー制御ポリシに基づいて、受信された前記パケットに対する転送処理を実行する段階と、
を備える、パケットフロー制御方法。
【請求項２】
仮想マシンとホストとの間で、前記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する前記段階は、
前記仮想マシンによって、前記仮想マシンの前記フロー制御機能についての記述情報を含む実行者交渉要求を前記ホストに送信する段階と、
前記ホストが前記フロー制御機能についての前記記述情報に従って、前記仮想マシンが前記フロー制御ポリシの実行をサポートすると決定した後で、前記仮想マシンが前記ホストによって送信された交渉確認インジケーションを受信した場合には、前記仮想マシンによって、前記フロー制御ポリシの前記交渉された実行者が前記仮想マシンであると決定する段階と、
前記ホストが前記フロー制御機能についての前記記述情報に従って、前記仮想マシンが前記フロー制御ポリシの前記実行をサポートしないと決定した後で、前記仮想マシンが前記ホストによって送信された交渉不確認インジケーションを受信した場合には、前記仮想マシンによって、前記フロー制御ポリシの前記交渉された実行者が前記ホストであると決定する段階と、を含む、
又は、
仮想マシンとホストとの間で、前記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する前記段階は、
前記仮想マシンによって、前記仮想マシンの前記フロー制御機能についての記述情報を含む実行者交渉要求を前記ホストに送信する段階であって、前記フロー制御機能についての前記記述情報は、その実行が前記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
前記ホストが前記フロー制御機能についての前記記述情報に従って、前記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、前記仮想マシンが前記ホストによって送信された交渉確認インジケーションを受信した場合には、前記仮想マシンによって、前記フロー制御ポリシの前記交渉された実行者が前記仮想マシンであると決定する段階と、
前記ホストが前記フロー制御機能についての前記記述情報に従って、前記仮想マシンが前記現在の最新バージョン又は前記事前設定されたバージョンの前記フロー制御ポリシの前記実行をサポートしないと決定した後で、前記仮想マシンが前記ホストによって送信された交渉不確認インジケーションを受信した場合には、前記仮想マシンによって、前記フロー制御ポリシの前記交渉された実行者が前記ホストであると決定する段階と、を含む、
又は、
仮想マシンとホストとの間で、前記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する前記段階は、
前記仮想マシンの前記フロー制御機能についての記述情報を含む実行者交渉要求を、前記仮想マシンによって前記ホストに送信する段階と、
前記ホストが前記フロー制御機能についての前記記述情報に従って、前記仮想マシンが前記フロー制御ポリシの実行をサポートすると決定した後で、前記仮想マシンが前記ホストによって送信された交渉確認インジケーションを受信した場合には、前記仮想マシンによって、前記フロー制御ポリシの前記交渉された実行者が前記仮想マシンであると決定する段階と、
前記仮想マシンが、前記実行者交渉要求に応答して前記ホストによって送信された交渉確認インジケーションを第１の設定期間内に受信しなかった場合には、前記仮想マシンによって、前記フロー制御ポリシの前記交渉された実行者が前記ホストであると決定する段階と、を含む、
又は、
仮想マシンとホストとの間で、前記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する前記段階は、
前記仮想マシンの前記フロー制御機能についての記述情報を含む実行者交渉要求を、前記仮想マシンによって前記ホストに送信する段階であって、前記フロー制御機能についての前記記述情報は、その実行が前記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
前記ホストが前記フロー制御機能についての前記記述情報に従って、前記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、前記仮想マシンが前記ホストによって送信された交渉確認インジケーションを受信した場合には、前記仮想マシンによって、前記フロー制御ポリシの前記交渉された実行者が前記仮想マシンであると決定する段階と、
前記仮想マシンが、前記実行者交渉要求に応答して前記ホストによって送信された交渉確認インジケーションを第１の設定期間内に受信しなかった場合には、前記仮想マシンによって、前記フロー制御ポリシの前記交渉された実行者が前記ホストであると決定する段階と、を含む、
又は、
仮想マシンとホストとの間で、前記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する前記段階は、
前記仮想マシンの前記フロー制御機能についての記述情報を含む実行者交渉要求を、前記仮想マシンによって前記ホストに送信する段階と、
前記ホストが前記フロー制御機能についての前記記述情報に従って、前記仮想マシンが前記フロー制御ポリシの実行をサポートしないと決定した後で、前記仮想マシンが前記ホストによって送信された交渉不確認インジケーションを受信した場合には、前記仮想マシンによって、前記フロー制御ポリシの前記交渉された実行者が前記ホストであると決定する段階と、
前記仮想マシンが、前記実行者交渉要求に応答して前記ホストによって送信された交渉不確認インジケーションを第２の設定期間内に受信しなかった場合には、前記仮想マシンによって、前記フロー制御ポリシの前記交渉された実行者が前記仮想マシンであると決定する段階と、を含む、
又は、
仮想マシンとホストとの間で、前記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する前記段階は、
前記仮想マシンの前記フロー制御機能についての記述情報を含む実行者交渉要求を、前記仮想マシンによって前記ホストに送信する段階であって、前記フロー制御機能についての前記記述情報は、その実行が前記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
前記ホストが前記フロー制御機能についての前記記述情報に従って、前記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、前記仮想マシンが前記ホストによって送信された交渉不確認インジケーションを受信した場合には、前記仮想マシンによって、前記フロー制御ポリシの前記交渉された実行者が前記ホストであると決定する段階と、
前記仮想マシンが、前記実行者交渉要求に応答して前記ホストによって送信された交渉不確認インジケーションを第２の設定期間内に受信しなかった場合には、前記仮想マシンによって、前記フロー制御ポリシの前記交渉された実行者が前記仮想マシンであると決定する段階と、を含む、
請求項１に記載のパケットフロー制御方法。
【請求項３】
前記交渉確認インジケーションは、前記フロー制御ポリシを含み、
前記仮想マシンによって、前記フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する前記段階は、前記仮想マシンによって、前記交渉確認インジケーションに含まれる前記フロー制御ポリシに基づいて、前記転送処理されるべきパケットに対する転送処理を実行する段階を含む、請求項２に記載のパケットフロー制御方法。
【請求項４】
前記仮想マシンの前記フロー制御機能についての記述情報を含む実行者交渉要求を、前記仮想マシンによって前記ホストに送信する前記段階は、
ユーザモードプロセスによって開始された交渉開始要求を受信した後で、前記仮想マシンの前記フロー制御機能についての前記記述情報を含む前記実行者交渉要求を、前記仮想マシンによって前記ホストに送信する段階、又は、前記ホストから交渉開始要求を受信した後で、前記仮想マシンの前記フロー制御機能についての前記記述情報を含む前記実行者交渉要求を、前記仮想マシンによって前記ホストに送信する段階
を含む、請求項２または３に記載のパケットフロー制御方法。
【請求項５】
仮想マシンとホストとの間で、前記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する前記段階は、
前記仮想マシンに配置されたプレロードクライアントと前記ホストに配置されたプレロードサーバとの間の接続が確立された後で、前記仮想マシンと前記ホストとの間で、前記確立された接続に基づいて前記プレロードクライアントと前記プレロードサーバとによって、前記仮想マシンの前記フロー制御機能に基づいて、前記フロー制御ポリシの前記実行者を交渉する段階
を含む、請求項１から４のいずれか１項に記載のパケットフロー制御方法。
【請求項６】
前記パケットフロー制御方法は、
前記フロー制御ポリシの前記交渉された実行者が前記仮想マシンであると決定された後で、前記プレロードクライアントによって、前記接続に基づいて前記プレロードサーバにハートビートメッセージを定期的に送信する段階
をさらに備える、請求項５に記載のパケットフロー制御方法。
【請求項７】
前記フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及びアクセス制御リストに基づくフロー制御ポリシの少なくとも１つである、請求項１から６のいずれか１項に記載のパケットフロー制御方法。
【請求項８】
仮想マシンとホストとの間で、前記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、
前記交渉によって前記フロー制御ポリシの交渉された実行者が前記ホストであると決定された場合には、前記ホストによって、前記仮想マシンからパケットを受信した後で、前記フロー制御ポリシに基づいて、受信された前記パケットに対する転送処理を実行する段階
を備える、パケットフロー制御方法。
【請求項９】
仮想マシンとホストとの間で、前記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する前記段階は、
前記仮想マシンによって送信され、かつ、前記仮想マシンの前記フロー制御機能についての記述情報を含む実行者交渉要求を、前記ホストによって受信する段階と、
前記ホストが前記フロー制御機能についての前記記述情報に従って、前記仮想マシンが前記フロー制御ポリシの実行をサポートすると決定した場合には、交渉確認インジケーションを前記仮想マシンに送信する段階であって、前記交渉確認インジケーションは、前記フロー制御ポリシの前記交渉された実行者が前記仮想マシンであることを示す、段階と、
前記ホストが前記フロー制御機能についての前記記述情報に従って、前記仮想マシンが前記フロー制御ポリシの前記実行をサポートしないと決定した場合には、交渉不確認インジケーションを前記仮想マシンに送信する段階であって、前記交渉不確認インジケーションは、前記フロー制御ポリシの前記交渉された実行者が前記ホストであることを示す、段階とを含む、
又は、
仮想マシンとホストとの間で、前記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する前記段階は、
前記仮想マシンによって送信され、かつ、前記仮想マシンの前記フロー制御機能についての記述情報を含む実行者交渉要求を、前記ホストによって受信する段階であって、前記フロー制御機能についての前記記述情報は、その実行が前記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
前記ホストが前記フロー制御機能についての前記記述情報に従って、前記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した場合には、交渉確認インジケーションを前記仮想マシンに送信する段階であって、前記交渉確認インジケーションは、前記フロー制御ポリシの前記交渉された実行者が前記仮想マシンであることを示す、段階と、
前記ホストが前記フロー制御機能についての前記記述情報に従って、前記仮想マシンが前記現在の最新バージョン又は前記事前設定されたバージョンの前記フロー制御ポリシの実行をサポートしないと決定した場合には、交渉不確認インジケーションを前記仮想マシンに送信する段階であって、前記交渉不確認インジケーションは、前記フロー制御ポリシの前記交渉された実行者が前記ホストであることを示す、段階とを含む、
請求項８に記載のパケットフロー制御方法。
【請求項１０】
仮想マシンとホストとの間で、前記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する前記段階は、前記ホストのプレロードサーバと前記仮想マシンのプレロードクライアントとの間で接続が確立された後で、前記接続を用いることによって前記プレロードサーバと前記プレロードクライアントとにより、前記仮想マシンと前記ホストとの間で、前記仮想マシンの前記フロー制御機能に基づいて、前記フロー制御ポリシの前記実行者を交渉する段階を含む、請求項８または９に記載のパケットフロー制御方法。
【請求項１１】
前記パケットフロー制御方法は、
前記フロー制御ポリシの前記交渉された実行者が前記仮想マシンであると決定された後で、ハートビートメッセージが設定期間内に前記仮想マシンから受信されなかった場合には、前記フロー制御ポリシの前記実行者が前記ホストにスイッチされたことを示すインジケーションメッセージを、前記ホストによって前記仮想マシンに送信する段階
をさらに備える、請求項８から１０のいずれか１項に記載のパケットフロー制御方法。
【請求項１２】
前記フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及びアクセス制御リストに基づくフロー制御ポリシの少なくとも１つである、請求項８から１１のいずれか１項に記載のパケットフロー制御方法。
【請求項１３】
ハードウェア層と、
前記ハードウェア層において動作するホストと、
前記ホスト上で動作する少なくとも１つの仮想マシンと、
を備えるコンピューティングノードであって、
前記仮想マシンは、前記仮想マシンと前記ホストとの間で、前記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、前記交渉によって前記フロー制御ポリシの交渉された実行者が前記仮想マシンであると決定された場合には、前記フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、前記交渉によって前記フロー制御ポリシの前記交渉された実行者が前記ホストであると決定された場合には、前記転送処理されるべきパケットを前記ホストに送信し、
前記ホストは、前記交渉によって前記フロー制御ポリシの前記交渉された実行者が前記ホストであると決定された場合には、前記フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を、前記パケットを前記仮想マシンから受信した後で実行する、コンピューティングノード。
【請求項１４】
前記仮想マシンと前記ホストとの間で、前記仮想マシンの前記フロー制御機能に基づいて、前記フロー制御ポリシの前記実行者を交渉するために、前記仮想マシンは、具体的に、前記仮想マシンの前記フロー制御機能についての記述情報を含む実行者交渉要求を前記ホストに送信し、交渉確認インジケーションが受信された場合には、前記フロー制御ポリシの前記交渉された実行者が前記仮想マシンであると決定し、交渉不確認インジケーションが受信された場合には、前記フロー制御ポリシの前記交渉された実行者が前記ホストであると決定し、前記交渉確認インジケーションは、前記ホストが前記フロー制御機能についての前記記述情報に従って、前記仮想マシンが前記フロー制御ポリシの実行をサポートすると決定した後で、前記ホストによって送信され、前記交渉不確認インジケーションは、前記ホストが前記フロー制御機能についての前記記述情報に従って、前記仮想マシンが前記フロー制御ポリシの前記実行をサポートしないと決定した後で、前記ホストによって送信される、
又は、
前記仮想マシンと前記ホストとの間で、前記仮想マシンの前記フロー制御機能に基づいて、前記フロー制御ポリシの前記実行者を交渉するために、前記仮想マシンは、具体的に、前記仮想マシンの前記フロー制御機能についての記述情報を含む実行者交渉要求を前記ホストに送信し、前記ホストが前記フロー制御機能についての前記記述情報に従って、前記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、前記ホストによって送信された交渉確認インジケーションが受信された場合には、前記フロー制御ポリシの前記交渉された実行者が前記仮想マシンであると決定し、前記ホストが前記フロー制御機能についての前記記述情報に従って、前記仮想マシンが前記現在の最新バージョン又は前記事前設定されたバージョンの前記フロー制御ポリシの前記実行をサポートしないと決定した後で、前記ホストによって送信された交渉不確認インジケーションが受信された場合には、前記フロー制御ポリシの前記交渉された実行者が前記ホストであると決定し、前記フロー制御機能についての前記記述情報は、その実行が前記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
前記仮想マシンと前記ホストとの間で、前記仮想マシンの前記フロー制御機能に基づいて、前記フロー制御ポリシの前記実行者を交渉するために、前記仮想マシンは、具体的に、前記仮想マシンの前記フロー制御機能についての記述情報を含む実行者交渉要求を前記ホストに送信し、交渉確認インジケーションが受信された場合には、前記フロー制御ポリシの前記交渉された実行者が前記仮想マシンであると決定し、前記実行者交渉要求に応答して前記ホストによって送信された交渉確認インジケーションが第１の設定期間内に受信されなかった場合には、前記フロー制御ポリシの前記交渉された実行者が前記ホストであると決定し、前記交渉確認インジケーションは、前記ホストが前記フロー制御機能についての前記記述情報に従って、前記仮想マシンが前記フロー制御ポリシの実行をサポートすると決定した後で、前記ホストによって送信される、
又は、
前記仮想マシンと前記ホストとの間で、前記仮想マシンの前記フロー制御機能に基づいて、前記フロー制御ポリシの前記実行者を交渉するために、前記仮想マシンは、具体的に、前記仮想マシンの前記フロー制御機能についての記述情報を含む実行者交渉要求を前記ホストに送信し、前記ホストが前記フロー制御機能についての前記記述情報に従って、前記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、前記ホストによって送信された交渉確認インジケーションが受信された場合には、前記フロー制御ポリシの前記交渉された実行者が前記仮想マシンであると決定し、前記実行者交渉要求に応答して前記ホストによって送信された交渉確認インジケーションが第１の設定期間内に受信されなかった場合には、前記フロー制御ポリシの前記交渉された実行者が前記ホストであると決定し、前記フロー制御機能についての前記記述情報は、その実行が前記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
前記仮想マシンと前記ホストとの間で、前記仮想マシンの前記フロー制御機能に基づいて、前記フロー制御ポリシの前記実行者を交渉するために、前記仮想マシンは、具体的に、前記仮想マシンの前記フロー制御機能についての記述情報を含む実行者交渉要求を前記ホストに送信し、交渉不確認インジケーションが受信された場合には、前記フロー制御ポリシの前記交渉された実行者が前記ホストであると決定し、前記実行者交渉要求に応答して前記ホストによって送信された交渉不確認インジケーションが第２の設定期間内に受信されなかった場合には、前記フロー制御ポリシの前記交渉された実行者が前記仮想マシンであると決定し、前記交渉不確認インジケーションは、前記ホストが前記フロー制御機能についての前記記述情報に従って、前記仮想マシンが前記フロー制御ポリシの実行をサポートしないと決定した後で、前記ホストによって送信される、
又は、
前記仮想マシンと前記ホストとの間で、前記仮想マシンの前記フロー制御機能に基づいて、前記フロー制御ポリシの前記実行者を交渉するために、前記仮想マシンは、具体的に、前記仮想マシンの前記フロー制御機能についての記述情報を含む実行者交渉要求を前記ホストに送信し、前記ホストが前記フロー制御機能についての前記記述情報に従って、前記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、前記ホストによって送信された交渉不確認インジケーションが受信された場合には、前記フロー制御ポリシの前記交渉された実行者が前記ホストであると決定し、前記実行者交渉要求に応答して前記ホストによって送信された交渉不確認インジケーションが第２の設定期間内に受信されなかった場合には、前記フロー制御ポリシの前記交渉された実行者が前記仮想マシンであると決定し、前記フロー制御機能についての前記記述情報は、その実行が前記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
請求項１３に記載のコンピューティングノード。
【請求項１５】
前記ホストは、さらに、前記フロー制御ポリシの前記交渉された実行者が前記仮想マシンであると決定された後で、ハートビートメッセージが設定期間内に前記仮想マシンから受信されなかった場合には、前記フロー制御ポリシの前記実行者が前記ホストにスイッチされたことを示すために用いられるインジケーションメッセージを、前記仮想マシンに送信する、請求項１３に記載のコンピューティングノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、中国特許庁に２０１３年１２月３０日に出願され、発明の名称を「パケットフロー制御方法、関連装置、及びコンピューティングノード」とする中国特許出願第２０１３１０７４６７０１．５号に対する優先権を主張し、その全体は、参照により本明細書に組み込まれる。
【０００２】
本発明は、コンピュータ技術分野に関し、詳細には、パケットフロー制御方法、関連装置、及びコンピューティングノードに関する。
【背景技術】
【０００３】
仮想化技術は、最下層のハードウェアデバイスをより上位層のオペレーティングシステム及びアプリケーションプログラムから分離するデカップリング技術である。図１に示されるように、仮想マシンモニタ（ＶＭＭ）層は、最下層のハードウェアリソースを直接管理するために導入され、最下層のハードウェアとは別個の仮想マシン（ｖｉｒｔｕａｌ  ｍａｃｈｉｎｅ、ＶＭ）は、より上位層のオペレーティングシステム及びアプリケーションプログラムによる使用のために形成される。
【０００４】
現在普及しているクラウドコンピューティング（ｃｌｏｕｄ  ｃｏｍｐｕｔｉｎｇ）プラットフォームをサポートする重要な最下層技術の１つとして、仮想化技術は、物理デバイスのリソース使用効率を大幅に向上させることができる。従来の物理サーバと比較して、仮想マシンは、より良い分離及びカプセル化性能を有する。
【０００５】
いくつかの既存の仮想化状況において、ホスト（Ｈｏｓｔ）は、仮想マシンのアウトバウンドフローに対する他のポリシに基づいて、帯域幅制限又はアクセス制御を実行する。例えば、ＶＭがパケットを送信した後で、ホストは最初に、ＶＭのアドレス空間からホストのアドレス空間にパケットをコピーする。ホストは、パケットが送信制限を超過したか否かを決定し、送信制限を超過したパケットを概して直接破棄又は最初にキャッシュし、キャッシュ制限を超過したパケットを概して直接破棄する。
【０００６】
従来技術は、以下の欠点を有する。すなわち、ホストがフロー制御を実行する既存のメカニズムは、場合によっては（例えば、ＶＭの数が大きいいくつかの状況、又はＶＭによって送信されるパケットの数が大きい状況においては）深刻な処理遅延を引き起こすことがあり、ホストの大量のアドレス空間が占有されるという事態を引き起こす。
【発明の概要】
【０００７】
本発明の複数の実施形態は、仮想マシンのアウトバウンドパケットフロー処理のために占有されるホストのアドレス空間を縮小することを目的とするフロー制御方法、関連装置、及びコンピューティングノードを提供する。
【０００８】
前述の技術的問題を解決すべく、本発明の複数の実施形態は、以下の技術的解決手段を提供する。
【０００９】
本発明の複数の実施形態の第１の態様は、パケットフロー制御方法を提供し、その方法は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、
フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、仮想マシンによって、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階と、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、転送処理されるべきパケットを、仮想マシンによってホストに送信し、これにより、ホストは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する段階と、
を含んでよい。
【００１０】
第１の態様を参照すると、第１の可能な実装態様において、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階と、
仮想マシンがホストによって送信された交渉確認インジケーションを受信した場合には、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、仮想マシンがホストによって送信された交渉不確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、を含む、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階であって、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンがホストによって送信された交渉確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、
ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、仮想マシンがホストによって送信された交渉不確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、を含む、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階と、
仮想マシンがホストによって送信された交渉確認インジケーションを受信した場合には、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、仮想マシンが、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションを、第１の設定期間内に受信しなかった場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、を含む、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階であって、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンがホストによって送信された交渉確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、
仮想マシンが、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションを、第１の設定期間内に受信しなかった場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、を含む、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階と、
ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、仮想マシンがホストによって送信された交渉不確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、仮想マシンが、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションを、第２の設定期間内に受信しなかった場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、を含む、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階であって、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、仮想マシンがホストによって送信された交渉不確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、仮想マシンが、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションを、第２の設定期間内に受信しなかった場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、を含む。
【００１１】
第１の態様の第１の可能な実装態様を参照すると、第２の可能な実装態様において、交渉確認インジケーションは、フロー制御ポリシを含み、
仮想マシンによって、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階は、
仮想マシンによって、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階を含む。
【００１２】
第１の態様の第１の可能な実装態様又は第１の態様の第２の可能な実装態様を参照すると、第３の可能な実装態様において、仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階は、
仮想マシンによって、ユーザモードプロセスによって開始された交渉開始要求を受信した後で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階、又は、仮想マシンによって、ホストから交渉開始要求を受信した後で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階を含む。
【００１３】
第１の態様を参照すると、第１の態様の第１の可能な実装態様、第１の態様の第２の可能な実装態様、又は第１の態様の第３の可能な実装態様は、第４の可能な実装態様において、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間の接続が確立された後で、仮想マシンとホストとの間で、確立された接続に基づいてプレロードクライアントとプレロードサーバとによって、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階を含む。
【００１４】
第１の態様の第４の可能な実装態様を参照すると、第５の可能な実装態様において、その方法は、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、プレロードクライアントによって、接続を介してプレロードサーバにハートビートメッセージを定期的に送信する段階をさらに含む。
【００１５】
第１の態様を参照すると、第１の態様の第１の可能な実装態様、第１の態様の第２の可能な実装態様、第１の態様の第３の可能な実装態様、第１の態様の第４の可能な実装態様、又は第１の態様の第５の可能な実装態様は、第６の可能な実装態様において、フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及び／又はアクセス制御リストに基づくフロー制御ポリシである。
【００１６】
本発明の複数の実施形態の第２の態様は、パケットフロー制御方法を提供し、その方法は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、
フロー制御ポリシの交渉された実行者がホストであると決定された場合には、ホストによって、仮想マシンからパケットを受信した後で、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する段階と、
を含んでよい。
【００１７】
第２の態様を参照すると、第１の可能な実装態様において、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を、ホストによって受信する段階と、
ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した場合には、交渉確認インジケーションを仮想マシンに送信する段階であって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示す、段階と、
ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した場合には、交渉不確認インジケーションを仮想マシンに送信する段階であって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、段階と、を含む、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を、ホストによって受信する段階であって、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した場合には、交渉確認インジケーションを仮想マシンに送信する段階であって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示す、段階と、
ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した場合には、交渉不確認インジケーションを仮想マシンに送信する段階であって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、段階と、を含む。
【００１８】
第２の態様又は第２の態様の第１の可能な実装態様を参照すると、第２の可能な実装態様において、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、ホストのプレロードサーバと仮想マシンのプレロードクライアントとの間で接続が確立された後で、接続を用いることによってプレロードサーバとプレロードクライアントとにより、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階を含む。
【００１９】
第２の態様、第２の態様の第１の可能な実装態様、又は第２の態様の第２の可能な実装態様を参照すると、第３の可能な実装態様において、方法は、
フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ハートビートメッセージが設定期間内に仮想マシンから受信されなかった場合には、フロー制御ポリシの実行者がホストにスイッチされたことを示すインジケーションメッセージホストによって仮想マシンに送信する段階
をさらに含む。
【００２０】
第２の態様、第２の態様の第１の可能な実装態様、第２の態様の第２の可能な実装態様、又は第２の態様の第３の可能な実装態様を参照すると、第４の可能な実装態様において、フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及び／又はアクセス制御リストに基づくフロー制御ポリシである。
【００２１】
本発明の複数の実施形態の第３の態様は、パケットフロー制御方法を提供し、その方法は、
プロセッサによって、ホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、
フロー制御ポリシの交渉された実行者が仮想マシンである場合には、プロセッサによって、フロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する段階と、フロー制御ポリシの交渉された実行者がホストである場合には、プロセッサによって、仮想マシンの転送処理されるべきパケットを仮想マシンからホストに送信し、フロー制御ポリシに基づいてプロセッサによって、ホストによって受信された転送処理されるべきパケットに対する転送処理を実行する段階と、を含んでよい。
【００２２】
第３の態様を参照すると、第１の可能な実装態様において、
プロセッサによってホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信する段階であって、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含む、段階と、
ホストが実行者交渉要求を受信した後で、プロセッサがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションを、プロセッサによって仮想マシンに送信する段階であって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示す、段階、及び／又は、プロセッサがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを、プロセッサによって仮想マシンに送信する段階であって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、段階と、を含む、
又は、
プロセッサによってホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信する段階であって、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含み、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
ホストが実行者交渉要求を受信した後で、プロセッサがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションを、プロセッサによって仮想マシンに送信する段階であって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示す、段階、及び／又は、プロセッサがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを、プロセッサによって仮想マシンに送信する段階であって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、段階と、
を含む。
【００２３】
第３の態様又は第３の態様の第１の可能な実装態様を参照すると、第２の可能な実装態様において、交渉確認インジケーションは、フロー制御ポリシを含み、
フロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する段階は、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する段階を含む。
【００２４】
第３の態様、第３の態様の第１の可能な実装態様、又は第３の態様の第２の可能な実装態様を参照すると、第３の可能な実装態様において、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストが設定期間内に仮想マシンからハートビートメッセージを受信しなかった場合には、ホストによって仮想マシンに送信され、かつ、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるべきインジケーションメッセージを、プロセッサによって仮想マシンに送信する。
【００２５】
第３の態様、第３の態様の第１の可能な実装態様、第３の態様の第２の可能な実装態様、又は第３の態様の第３の可能な実装態様を参照すると、第４の可能な実装態様において、
フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及び／又はアクセス制御リストに基づくフロー制御ポリシである。
【００２６】
第３の態様、第３の態様の第１の可能な実装態様、第３の態様の第２の可能な実装態様、第３の態様の第３の可能な実装態様、又は第３の態様の第４の可能な実装態様を参照すると、第５の可能な実装態様において、仮想マシンによってホストに送信されるべき実行者交渉要求を、ホストに送信する段階は、
仮想マシンが、ユーザモードプロセスによって開始された交渉開始要求を受信した後で、仮想マシンによってホストに送信されるべき実行者交渉要求をホストに送信する段階、又は、仮想マシンが交渉開始要求をホストから受信した後で、仮想マシンによってホストに送信されるべき実行者交渉要求を、ホストに送信する段階を含む。
【００２７】
第３の態様、第３の態様の第１の可能な実装態様、第３の態様の第２の可能な実装態様、第３の態様の第３の可能な実装態様、第３の態様の第４の可能な実装態様、又は第３の態様の第５の可能な実装態様を参照すると、第６の可能な実装態様において、ホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間の接続が確立された後で、確立された接続を用いることによって、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階を含む。
【００２８】
本発明の複数の実施形態の第５の態様は、仮想マシンを提供し、仮想マシンは、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するように構成される第１の交渉ユニットと、
フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、転送処理されるべきパケットをホストに送信し、これにより、ホストが、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行するように構成されるパケット処理ユニットと、
を含んでよい。
【００２９】
第５の態様を参照すると、第１の可能な実装態様において、
第１の交渉ユニットは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成され、交渉確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信され、交渉不確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信される、
又は、
第１の交渉ユニットは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信された交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信された交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
第１の交渉ユニットは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションが第１の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成され、交渉確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信される、
又は、
第１の交渉ユニットは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信された交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションが第１の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
第１の交渉ユニットは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定し、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションが第２の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成され、交渉不確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信される、
又は、
第１の交渉ユニットは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信された交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定し、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションが第２の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
【００３０】
第５の態様又は第５の態様の第１の可能な実装態様を参照すると、第２の可能な実装態様において、仮想マシンは、
フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ハートビートメッセージをホストに定期的に送信するように構成される送信ユニット
をさらに含む。
【００３１】
第５の態様、第５の態様の第１の可能な実装態様、又は第５の態様の第２の可能な実装態様を参照すると、第３の可能な実装態様において、
フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及び／又はアクセス制御リストに基づくフロー制御ポリシである。
【００３２】
第５の態様の第１の可能な実装態様、第５の態様の第２の可能な実装態様、又は第５の態様の第３の可能な実装態様を参照すると、第４の可能な実装態様において、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信するために、第１の交渉ユニットは、ユーザモードプロセスによって開始された交渉開始要求が受信された後で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、又は、交渉開始要求がホストから受信された後で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信するように具体的に構成される。
【００３３】
本発明の複数の実施形態の第６の態様は、ホストを提供し、ホストは、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するように構成される第２の交渉ユニットと、
フロー制御ポリシの交渉された実行者がホストであると決定された場合には、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を、パケットを仮想マシンから受信した後で実行するように構成されるパケット処理ユニットと、
を含む。
【００３４】
第６の態様を参照すると、第１の可能な実装態様において、
第２の交渉ユニットは、仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定された場合には、交渉確認インジケーションを仮想マシンに送信し、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定された場合には、交渉不確認インジケーションを仮想マシンに送信するように具体的に構成され、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、
又は、
第２の交渉ユニットは、仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定された場合には、交渉確認インジケーションを仮想マシンに送信し、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定された場合には、交渉不確認インジケーションを仮想マシンに送信するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられ、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。
【００３５】
第６の態様又は第６の態様の第１の可能な実装態様を参照すると、第２の可能な実装態様において、パケット処理ユニットは、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ハートビートメッセージが設定期間内に仮想マシンから受信されなかった場合には、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるインジケーションメッセージを仮想マシンに送信するようにさらに構成される。
【００３６】
第６の態様、第６の態様の第１の可能な実装態様、又は第６の態様の第２の可能な実装態様を参照すると、第３の可能な実装態様において、
フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及び／又はアクセス制御リストに基づくフロー制御ポリシである。
【００３７】
本発明の複数の実施形態の第７の態様は、コンピューティングノードを提供し、コンピューティングノードは、ハードウェア層と、ハードウェア層において動作するホストと、ホスト上で動作する少なくとも１つの仮想マシンと、を含んでよく、
仮想マシンは、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、転送処理されるべきパケットをホストに送信するように構成され、
ホストは、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を、パケットを仮想マシンから受信した後で実行するように構成される。
【００３８】
第７の態様を参照すると、第１の可能な実装態様において、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成され、交渉確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信され、交渉不確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信される、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信された交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信された交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションが第１の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成され、交渉確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信される、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストによって送信された交渉確認インジケーションが、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションが第１の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定し、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションが第２の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成され、交渉不確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信される、
又は、
仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストによって送信された交渉不確認インジケーションが、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定し、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションが第２の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
【００３９】
第７の態様又は第７の態様の第１の可能な実装態様を参照すると、第２の可能な実装態様において、
ホストは、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ハートビートメッセージが設定期間内に仮想マシンから受信されなかった場合には、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるインジケーションメッセージを、仮想マシンに送信するようにさらに構成される。
【００４０】
本発明の複数の実施形態の第８の態様は、コンピューティングノードを提供し、これは、
ストレージと、ストレージに接続されるプロセッサと、
を含み、
プロセッサは、ホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、フロー制御ポリシの交渉された実行者が仮想マシンである場合には、フロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホストである場合には、仮想マシンの転送処理されるべきパケットを、仮想マシンからホストに送信し、フロー制御ポリシに基づいて、ホストによって受信された転送処理されるべきパケットに対する転送処理を実行するように構成される。
【００４１】
第８の態様を参照すると、第８の態様の第１の可能な実装態様において、
プロセッサは、仮想マシンによってホストに送信されるべき実行者交渉要求をホストに送信し、ホストが実行者交渉要求を受信した後で、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定された場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションを仮想マシンに送信する、及び／又は、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定された場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを仮想マシンに送信するように構成され、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含み、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、
又は、
プロセッサは、仮想マシンによってホストに送信されるべき実行者交渉要求をホストに送信し、ホストが実行者交渉要求を受信した後で、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定された場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションを仮想マシンに送信する、及び／又は、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定された場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを仮想マシンに送信するように構成され、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含み、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられ、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。
【００４２】
第８の態様の第１の可能な実装態様を参照すると、第８の態様の第２の可能な実装態様において、交渉確認インジケーションは、フロー制御ポリシを含み、
プロセッサは、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行するように構成される。
【００４３】
第８の態様、第８の態様の第１の可能な実装態様、第８の態様の第２の可能な実装態様、第８の態様の第３の可能な実装態様を参照すると、プロセッサは、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストが設定期間内に仮想マシンからハートビートメッセージを受信しなかった場合には、ホストによって仮想マシンに送信され、かつ、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるべきインジケーションメッセージを、仮想マシンに送信するようにさらに構成される。
【００４４】
本発明の複数の実施形態に係るいくつかの技術的解決手段において、フロー制御ポリシの実行者は、仮想マシンのフロー制御機能に基づいて、仮想マシンとホストとの間で交渉され、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、仮想マシンは、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、仮想マシンは、転送処理されるべきパケットをホストに送信し、これにより、ホストは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行することが理解されよう。仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方が、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンはフロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御の実行に寄与し、さらに、効果的ではない処理の削減及び無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小に寄与する。当該解決手段は、仮想マシンのアウトバウンドパケットフローを処理するために占有されるホストのアドレス空間の縮小に寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によって決定されるので、フロー制御ポリシの実行者の実行機能は一定程度確保され、フロー制御ポリシ実行における信頼性の向上に寄与する。
【図面の簡単な説明】
【００４５】
本発明の複数の実施形態の技術的解決手段をより明確に説明すべく、以下、複数の実施形態の説明に必要とされる複数の添付図面を簡潔に紹介する。明らかに、以下の説明における複数の添付図面は、本発明のいくつかの実施形態を示しているに過ぎず、当業者であれば、創造的な努力を必要とせずに、これらの添付図面から他の図面をさらに導き出すことがある。
【００４６】
【図１】本発明の実施形態に係る仮想化アーキテクチャの模式図である。
【００４７】
【図２】本発明の実施形態に係る他の仮想化アーキテクチャの模式図である。
【００４８】
【図３】本発明の実施形態に係るパケットフロー制御方法の模式的フローチャートである。
【００４９】
【図４−ａ】本発明の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。
【００５０】
【図４−ｂ】本発明の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。
【００５１】
【図５−ａ】本発明の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。
【００５２】
【図５−ｂ】本発明の実施形態に係るコンピューティングノードの模式的構造図である。
【００５３】
【図５−ｃ】本発明の実施形態に係るパケットフロー制御の効果の模式図である。
【００５４】
【図６−ａ】本発明の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。
【００５５】
【図６−ｂ】本発明の実施形態に係る他のパケットフロー制御の効果の模式図である。
【００５６】
【図７】本発明の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。
【００５７】
【図８】本発明の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。
【００５８】
【図９】本発明の実施形態に係る仮想マシンの模式的構造図である。
【００５９】
【図１０】本発明の実施形態に係るホストの模式的構造図である。
【００６０】
【図１１】本発明の実施形態に係るコンピューティングノードの模式的構造図である。
【００６１】
【図１２】本発明の実施形態に係る他のコンピューティングノードの模式的構造図である。
【００６２】
【図１３】本発明の実施形態に係る他のコンピューティングノードの模式的構造図である。
【発明を実施するための形態】
【００６３】
本発明の複数の実施形態は、仮想マシンのアウトバウンドパケットフローを処理するために占有されるホストのアドレス空間を縮小することを目的とするフロー制御方法、関連装置、及びコンピューティングノードを提供する。
【００６４】
当業者に本発明の技術的解決手段をより理解せしめるべく、以下、本発明の複数の実施形態の添付図面を参照して、本発明の複数の実施形態の技術的解決手段を明確にかつ完全に説明する。明らかに、説明される複数の実施形態は、本発明の複数の実施形態の全てではなく、その一部に過ぎない。本発明の複数の実施形態に基づいて、当業者によって創造的な努力を必要とせずに得られる全ての他の実施形態は、本発明の保護範囲に含まれるものである。
【００６５】
本発明の複数の実施形態の理解を容易にすべく、本発明の複数の実施形態の説明に導入されるべきいくつかの要素が、最初に本明細書において説明される。
【００６６】
仮想マシンＶＭ：１つ又は複数の仮想コンピュータが、仮想マシンソフトウェアを用いることによって、１つの物理的なコンピュータ上でシミュレーション可能である。これらの仮想マシンは、実際のコンピュータと同様に機能し、オペレーティングシステム及びアプリケーションプログラムは、仮想マシン上にインストール可能であり、仮想マシンは、ネットワークリソースにさらにアクセス可能である。仮想マシンにおいて動作するアプリケーションプログラムに対して、アプリケーションプログラムは、実際のコンピュータにおいて機能しているかのごとく、仮想マシンにおいて機能する。
【００６７】
ハードウェア層：ハードウェア層は、仮想化環境が動作するハードウェアプラットフォームである。ハードウェア層は、様々なハードウェアを含んでよい。例えば、コンピューティングノードのハードウェア層は、ＣＰＵ及びメモリを含んでよく、ネットワークインタフェースカードのような高速／低速の入／出力（ｉｎｐｕｔ／ｏｕｔｐｕｔ、Ｉ／Ｏ）デバイス及びストレージデバイス、ならびに入／出力メモリ管理ユニット（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ  Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ、ＩＯＭＭＵ）のような複数の特定の処理機能を有する他のデバイスをさらに含んでよい。ＩＯＭＭＵは、仮想マシンの物理アドレスとホストの物理アドレスとの間で変換を実行するために用いられてよい。
【００６８】
ホスト（Ｈｏｓｔ）：ホストは、管理層として、複数のハードウェアリソースの管理及び割り当てを実装し、仮想ハードウェアプラットフォームを仮想マシンに与え、仮想マシンのスケジューリング及び分離を実装するために用いられる。ホストは、仮想マシンモニタ（ＶＭＭ）であってよい。さらに、場合によっては、ＶＭＭは、１つの特権的仮想マシンと協同し、ＶＭＭ及び仮想マシンが組み合わせられてホストを形成する。仮想ハードウェアプラットフォームは、仮想ハードウェアプラットフォーム上で動作する各仮想マシンに対して様々なハードウェアリソースを提供し、例えば、仮想中央演算処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、ＣＰＵ）、メモリ、仮想ディスク、仮想ネットワークインタフェースカード等を提供する。仮想ディスクは、ホストのファイル又は論理ブロックデバイスに対応してよい。仮想マシンは、ホストによって当該仮想マシンのために準備された仮想ハードウェアプラットフォーム上で動作し、１つ又は複数の仮想マシンは、ホスト上で動作する。
【００６９】
図２を参照すると、図２は、本発明の実施形態に係るコンピューティングノードの仮想化アーキテクチャの模式図であり、アーキテクチャは、主に、ハードウェア層、ホスト、及び仮想マシン（ＶＭ）の３つの層を含む。ハードウェア層は、ネットワークインタフェースカードを含む。ネットワークインタフェースカードに対応するバックエンド（Ｂａｃｋ−Ｅｎｄ、ＢＥ）インスタンスは、ホストに配置され、ＶＭは、ネットワークインタフェースカードに対応するフロントエンド（Ｆｒｏｎｔ−Ｅｎｄ、ＦＥ）インスタンスを有し、ＶＭのＢＥは、ネットワークインタフェースカードのフロントエンドドライバとみなされてよく、ホストのＦＥは、ネットワークインタフェースカードのバックエンドドライバとみなされてよい。
【００７０】
本発明に係るパケットフロー制御方法の実施形態において、パケットフロー制御方法は、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、仮想マシンによって、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階と、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、仮想マシンによって、転送処理されるべきパケットをホストに送信し、これにより、ホストは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する段階と、を含む。
【００７１】
図３を参照すると、図３は、本発明の実施形態に係るパケットフロー制御方法の模式的フローチャートである。図３に示されるように、本発明の本実施形態に係るパケットフロー制御方法は、以下の内容を含んでよい。
【００７２】
３０１において、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する。
【００７３】
本発明のいくつかの実施形態において、仮想マシン及びホストは、複数の態様で、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉してよい。
【００７４】
例えば、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンがホストによって送信された交渉確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、仮想マシンがホストによって送信された交渉不確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階とを含む。
【００７５】
他の例では、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階であって、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンがホストによって送信された交渉確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、仮想マシンがホストによって送信された交渉不確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、を含む。
【００７６】
他の例では、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンがホストによって送信された交渉確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、仮想マシンが、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションを、第１の設定期間内に受信しなかった場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、を含む。
【００７７】
他の例では、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階であって、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、仮想マシンがホストによって送信された交渉確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、仮想マシンが、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションを、第１の設定期間内に受信しなかった場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、を含む。
【００７８】
他の例では、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、仮想マシンがホストによって送信された交渉不確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、仮想マシンが、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションを、第２の設定期間内に受信しなかった場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、を含む。
【００７９】
他の例では、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンによって、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信する段階であって、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、仮想マシンがホストによって送信された交渉不確認インジケーションを受信した場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者がホストであると決定する段階と、仮想マシンが、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションを、第２の設定期間内に受信しなかった場合には、仮想マシンによって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する段階と、を含む。
【００８０】
本発明のいくつかの実施形態において、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられ、従って、ホストが、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定することは、具体的には、その実行が仮想マシンによってサポートされるフロー制御ポリシの、フロー制御機能についての記述情報によって記述されるバージョンが、フロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、これらが同じ場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、これらが異なる場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。他の例では、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定することは、具体的には、その実行が仮想マシンによってサポートされる複数のフロー制御ポリシの、フロー制御機能についての記述情報によって記述されるｋ個（ｋは正の整数）のバージョンの各バージョンがフロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、ｋ個のバージョンのうち１つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシであることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、ｋ個のバージョンのうちいずれか１つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシと異なることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。
【００８１】
仮想マシン及びホストが、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する複数の特定の態様は、複数の前述の例に限定されるものではないことが理解されよう。
【００８２】
３０２において、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、仮想マシンは、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行してよい。
【００８３】
３０３において、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、仮想マシンは、転送処理されるべきパケットをホストに送信し、これにより、ホストは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する。
【００８４】
本実施形態において説明されるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び／又はアクセス制御リストに基づくフロー制御ポリシであってよく、勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
【００８５】
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様（特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等）は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
【００８６】
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、（ブラックリストと同様の）制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、（ホワイトリストと同様の）許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
【００８７】
本発明のいくつかの実施形態において、交渉確認インジケーションは、フロー制御ポリシを含み、仮想マシンによって、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階は、仮想マシンによって、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階を含む。
【００８８】
勿論、ホストは、複数の他の態様において、フロー制御ポリシを仮想マシンに転送し、これにより、仮想マシンは、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストによって転送されたフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行してもよい。勿論、フロー制御ポリシは、仮想マシンにおいて予め設定されてもよい。仮想マシンが、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する場合には、仮想マシンは、予め設定されたフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する。
【００８９】
本発明のいくつかの実施形態において、仮想マシンが、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信することは、仮想マシンによって、ユーザモードプロセスによって開始された交渉開始要求を受信した後で（すなわち、ユーザモードアプリケーション又はユーザ命令によってトリガされてよい）、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信すること、又は、仮想マシンによって、ホストから交渉開始要求を受信した後で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信することを含む。勿論、仮想マシンは、別個に又は他の条件にトリガされて、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信してもよい。
【００９０】
本発明のいくつかの実施形態において、プレロードクライアントは、仮想マシンに配置されてよく、プレロードサーバは、ホストに配置されてよく、プレロードクライアント及びプレロードサーバは、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉してよい。例えば、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間の接続が確立された後で、仮想マシンとホストとの間で、確立された接続に基づいてプレロードクライアントとプレロードサーバとによって、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階を含んでよい。
【００９１】
本発明のいくつかの実施形態において、さらに、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、プレロードクライアントは、接続を介して、ハートビートメッセージをプレロードサーバに定期的に送信する。ハートビートメッセージを送信する目的の１つは、仮想マシンが適切に機能する状況をホストに通知することである。ホストが設定期間内に仮想マシンからハートビートメッセージを受信しなかった場合には、ホストは、仮想マシンに障害が発生したとデフォルトで決定してよい。例えば、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストが設定期間内に仮想マシンからハートビートメッセージを受信しなかった場合には、ホストは、フロー制御ポリシの実行者をホストにスイッチしてよく（すなわち、仮想マシンがフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行するか否かに関わらず、ホストは、フロー制御ポリシに基づいて、仮想マシンからのパケットに対する転送処理をさらに実行する。なぜなら、ホスト及び仮想マシンにおいて、同じパケットフローに対して実行されるフロー制御ポリシは同じであり、ホスト又は仮想マシン又はその両方がフロー制御ポリシを実行する場合には、最終的なパケット出力条件は基本的に同じだからである）、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるインジケーションメッセージを、仮想マシンに送信してよく、又はしなくてもよい。
【００９２】
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、プレロードクライアントは、仮想マシンがフロー制御ポリシを実行したときに障害が発生した場合には、仮想マシンがフロー制御ポリシを実行したときに障害が発生したことを示すインジケーションメッセージをプレロードサーバに送信してもよい。フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストが、仮想マシンがフロー制御ポリシを実行したときに障害が発生したことを示すインジケーションメッセージを仮想マシンから受信した場合には、ホストは、フロー制御ポリシの実行者をホストにスイッチしてよい。
【００９３】
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、プレロードサーバは、仮想マシンがフロー制御ポリシを適切に実行しているか否かを問う状況質問メッセージをプレロードクライアントに定期的に又は不定期的に送信してもよい。状況質問メッセージに応答する状況インジケーションメッセージが設定期間内に仮想マシンから受信されなかった場合、又は、仮想マシンからインジケーションメッセージが受信され、そのインジケーションメッセージが、仮想マシンがフロー制御ポリシを実行したときに障害が発生したことを示す場合には、仮想マシンがフロー制御ポリシを実行したときに障害が発生したと決定されてよい。勿論、プレロードサーバは、複数の他の態様で、仮想マシンがフロー制御ポリシを実行したときに障害が発生したか否かを監視してもよい。仮想マシンがフロー制御ポリシを実行したときに障害が発生したと決定された場合には、ホストは、フロー制御ポリシの実行者をホストにスイッチしてよい。
【００９４】
本実施形態に係る解決手段において、フロー制御ポリシの実行者は、仮想マシンのフロー制御機能に基づいて、仮想マシンとホストとの間で交渉され、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、仮想マシンは、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、仮想マシンは、転送処理されるべきパケットをホストに送信し、これにより、ホストは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行することが理解されよう。仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方が、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンはフロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減及び無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与する。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
【００９５】
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
【００９６】
本発明に係るフロー制御方法の他の実施形態において、他のパケットフロー制御方法は、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、ホストが、フロー制御ポリシの交渉された実行者がホストであると決定した場合には、ホストによって、仮想マシンからパケットを受信した後で、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する段階と、を含む。
【００９７】
図４−ａを参照すると、図４−ａは、本発明の他の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。図４−ａに示されるように、本発明の他の実施形態に係る他のパケットフロー制御方法は、以下の内容を含んでよい。
【００９８】
４０１において、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する。
【００９９】
本発明のいくつかの実施形態において、ホスト及び仮想マシンは、複数の態様で、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉してよい。
【０１００】
例えば、ホスト及び仮想マシンが、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を、ホストによって受信することと、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した場合には、交渉確認インジケーションを仮想マシンに送信することと、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した場合には、交渉不確認インジケーションを仮想マシンに送信することと、を含んでよく、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。
【０１０１】
他の例では、ホスト及び仮想マシンが、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を、ホストによって受信することと、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した場合には、交渉確認インジケーションを仮想マシンに送信することと、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した場合には、交渉不確認インジケーションを仮想マシンに送信することと、を含んでよく、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられ、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。
【０１０２】
仮想マシン及びホストが、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する特定の態様は、前述の例に限定されるものではないことが理解されよう。
【０１０３】
４０２において、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、ホストは、パケットを仮想マシンから受信した後で、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する。
【０１０４】
上述の「両者」は、フロー制御ポリシの実行者の交渉に参加する両方の対象を指し、本実施形態において、両方の対象は、仮想マシン及びホストであることが理解されよう。
【０１０５】
さらに、フロー制御ポリシの交渉された実行者が仮想マシンである場合には、仮想マシンは、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行してよい。
【０１０６】
本実施形態において説明されるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び／又はアクセス制御リストに基づくフロー制御ポリシであってよく、勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
【０１０７】
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様（特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等）は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
【０１０８】
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、（ブラックリストと同様の）制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、（ホワイトリストと同様の）許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
【０１０９】
本発明のいくつかの実施形態において、交渉確認インジケーションは、フロー制御ポリシを含み、仮想マシンによって、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階は、仮想マシンによって、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階を含む。
【０１１０】
勿論、ホストは、複数の他の態様において、フロー制御ポリシを仮想マシンに転送し、これにより、仮想マシンは、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストによって転送されたフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行してもよい。勿論、フロー制御ポリシは、仮想マシンにおいて予め設定されてもよい。仮想マシンが、フロー制御ポリシの交渉された実行者が仮想マシンであると決定する場合には、仮想マシンは、予め設定されたフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する。
【０１１１】
本発明のいくつかの実施形態において、プレロードクライアントは、仮想マシンに配置されてよく、プレロードサーバは、ホストに配置されてよく、プレロードクライアント及びプレロードサーバは、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉してよい。例えば、仮想マシン及びホストが、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、ホストに配置されたプレロードサーバと仮想マシンに配置されたプレロードクライアントとの間の接続が確立された後で、確立された接続に基づいてプレロードサーバとプレロードクライアントとによって、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することを含んでよい。
【０１１２】
本発明のいくつかの実施形態において、さらに、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、プレロードクライアントは、接続を介して、ハートビートメッセージをプレロードサーバに定期的に送信してよい。ハートビートメッセージを送信する目的の１つは、仮想マシンが適切に機能している状況をホストに通知することである。ホストが設定期間内に仮想マシンからハートビートメッセージを受信しなかった場合には、ホストは、仮想マシンに障害が発生したとデフォルトで決定してよい。例えば、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストが設定期間内に仮想マシンからハートビートメッセージを受信しなかった場合には、ホストは、フロー制御ポリシの実行者をホストにスイッチしてよく（すなわち、仮想マシンがフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行するか否かに関わらず、ホストは、フロー制御ポリシに基づいて、仮想マシンからのパケットに対する転送処理をさらに実行する。なぜなら、ホスト及び仮想マシンにおいて、同じパケットフローに対して実行されるフロー制御ポリシは同じであり、ホスト又は仮想マシン又はその両方がフロー制御ポリシを実行する場合には、最終的なパケット出力条件は基本的に同じだからである）、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるインジケーションメッセージを、仮想マシンに送信してよく、又はしなくてもよい。
【０１１３】
本実施形態に係る解決手段において、ホスト及び仮想マシンは、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、ホストが、フロー制御ポリシの交渉された実行者がホストであると決定した場合には、ホストは、パケットを仮想マシンから受信した後で、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行することが理解されよう。仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方が、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンはフロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御の実行に寄与し、さらに、効果的ではない処理の削減及び無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小に寄与する。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
【０１１４】
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
【０１１５】
本発明の本実施形態は、パケットフロー制御方法をさらに提供し、その方法は、ホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、フロー制御ポリシの交渉された実行者が仮想マシンである場合には、フロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する段階と、フロー制御ポリシの交渉された実行者がホストである場合には、仮想マシンの転送処理されるべきパケットをホストに送信する段階と、フロー制御ポリシに基づいて、ホストによって受信された転送処理されるべきパケットに対する転送処理を実行する段階と、を含んでよい。
【０１１６】
本発明のいくつかの実施形態において、ホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによってホストに送信されるべき実行者交渉要求をホストに送信する段階であって、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含む、段階と、
ホストが実行者交渉要求を受信した後で、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定された場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションを、仮想マシンによって送信する段階であって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示す、段階、及び／又は、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定された場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを仮想マシンに送信する段階であって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、段階と、
を含む、
又は、
ホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、
仮想マシンによってホストに送信されるべき実行者交渉要求をホストに送信する段階であって、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含み、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
ホストが実行者交渉要求を受信した後で、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定された場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションを仮想マシンに送信する段階であって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示す、段階、及び／又は、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定された場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを仮想マシンに送信する段階であって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す、段階と、
を含む。
【０１１７】
本発明のいくつかの実施形態において、交渉確認インジケーションは、フロー制御ポリシを含む。
【０１１８】
フロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する段階は、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する段階を含む。
【０１１９】
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストが設定期間内に仮想マシンからハートビートメッセージを受信しなかった場合には、ホストは、ホストによって仮想マシンに送信され、かつ、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるべきインジケーションメッセージを、仮想マシンに送信する。
【０１２０】
本実施形態において説明されるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び／又はアクセス制御リストに基づくフロー制御ポリシであってよく、勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
【０１２１】
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様（特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等）は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
【０１２２】
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、（ブラックリストと同様の）制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、（ホワイトリストと同様の）許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
【０１２３】
本発明のいくつかの実施形態において、仮想マシンによってホストに送信されるべき実行者交渉要求をホストに送信する段階は、仮想マシンが、ユーザモードプロセスによって開始された交渉開始要求を受信した後で、仮想マシンによってホストに送信されるべき実行者交渉要求をホストに送信する段階、又は、仮想マシンが交渉開始要求をホストから受信した後で、仮想マシンによってホストに送信されるべき実行者交渉要求をホストに送信する段階を含む。
【０１２４】
本発明のいくつかの実施形態において、ホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間の接続が確立された後で、確立された接続を用いることによって、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階を含む。
【０１２５】
本実施形態の前述された複数の段階は、プロセッサ又は他のハードウェアによって実行されてよい。
【０１２６】
図４−ｂを参照すると、図４−ｂは、本発明の他の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。図４−ｂに示されるように、本発明の他の実施形態に係る他のパケットフロー制御方法は、以下の内容を含んでよい。
ｓ４０１
プロセッサは、ホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する。
ｓ４０２
フロー制御ポリシの交渉された実行者が仮想マシンである場合には、プロセッサは、フロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する。
ｓ４０３
フロー制御ポリシの交渉された実行者がホストである場合には、プロセッサは、仮想マシンの転送処理されるべきパケットをホストに送信し、プロセッサは、フロー制御ポリシに基づいて、ホストによって受信された転送処理されるべきパケットに対する転送処理を実行する。
【０１２７】
本発明のいくつかの実施形態において、プロセッサが、ホストと仮想マシンとの間で仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、以下を含んでよい。
プロセッサが、ホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信することであって、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含むことと、
ホストが実行者交渉要求を受信した後で、プロセッサがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションを、プロセッサによって仮想マシンに送信することであって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示すこと、及び／又は、プロセッサがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを、プロセッサによって仮想マシンに送信することであって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示すこと、
を含む、
又は、
プロセッサが、ホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信することであって、実行者交渉要求は、仮想マシンのフロー制御機能についての記述情報を含み、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられることと、
ホストが実行者交渉要求を受信した後で、プロセッサが、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した場合には、ホストによって仮想マシンに送信されるべき交渉確認インジケーションをプロセッサによって仮想マシンに送信することであって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示すこと、及び／又は、プロセッサがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した場合には、ホストによって仮想マシンに送信されるべき交渉不確認インジケーションを、プロセッサによって仮想マシンに送信することであって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示すことと、
を含む。
【０１２８】
本発明のいくつかの実施形態において、交渉確認インジケーションは、フロー制御ポリシを含む。
【０１２９】
プロセッサが、フロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行することは、プロセッサによって、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行することを含む。
【０１３０】
勿論、ホストは、複数の他の態様で、フロー制御ポリシを仮想マシンに転送してもよく、これにより、プロセッサは、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストによって転送されたフロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する。勿論、フロー制御ポリシは、仮想マシンにおいて予め設定されてもよい。フロー制御ポリシの交渉された実行者が仮想マシンであると決定される場合には、プロセッサは、予め設定されたフロー制御ポリシに基づいて、仮想マシンの転送処理されるべきパケットに対する転送処理を実行する。
【０１３１】
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホストが設定期間内に仮想マシンからハートビートメッセージを受信しなかった場合には、プロセッサは、ホストによって仮想マシンに送信され、かつ、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるべきインジケーションメッセージを、仮想マシンに送信する。
【０１３２】
本発明のいくつかの実施形態において、フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及び／又はアクセス制御リストに基づくフロー制御ポリシである。
【０１３３】
本発明のいくつかの実施形態において、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信する段階は、
仮想マシンが、ユーザモードプロセスによって開始された交渉開始要求を受信した後で、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信する段階、又は、仮想マシンが交渉開始要求をホストから受信した後で、仮想マシンによってホストに送信されるべき実行者交渉要求を、プロセッサによってホストに送信する段階
を含んでよい。
【０１３４】
本実施形態において説明される、プロセッサが転送処理されるべきパケットを処理するベースとなるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び／又はアクセス制御リストに基づくフロー制御ポリシであってよく、勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
【０１３５】
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様（特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等）は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
【０１３６】
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、（ブラックリストと同様の）制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、（ホワイトリストと同様の）許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
【０１３７】
本発明のいくつかの実施形態において、ホストと仮想マシンとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシンに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間の接続が確立された後で、プロセッサによって確立された接続を用いることによって、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階を含んでよい。
【０１３８】
本実施形態に係る解決手段において、プロセッサの助けによって、仮想マシン及びホストは、仮想マシンとホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、仮想マシンが、フロー制御ポリシの交渉された実行者が仮想マシンであると決定した場合には、仮想マシンは、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、仮想マシンが、フロー制御ポリシの交渉された実行者がホストであると決定した場合には、仮想マシンは、転送処理されるべきパケットをホストに送信し、これにより、ホストは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行することが理解されよう。仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方が、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンはフロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御の実行に寄与し、さらに、効果的ではない処理の削減及び無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小に寄与する。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
【０１３９】
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
【０１４０】
本発明の複数の実施形態に係る複数の解決手段のより十分な理解及び実装を容易にすべく、以下の例示的な説明は、いくつかの具体例を用いることによって提供される。
【０１４１】
図５−ａ及び図５−ｂを参照すると、図５−ａは、本発明の他の実施形態に係る他のパケットフロー制御方法の模式的フローチャートであり、図５−ｂは、本発明の本実施形態に係るコンピューティングノードであって、図５−ａに示されるフロー制御方法を実装するために利用可能なコンピューティングノードの模式的構造図である。図５−ｂは、例として、コンピューティングノードに配置されたホスト及び仮想マシンの具体的な内部論理アーキテクチャを示す。勿論、ホスト及び仮想マシンは、図５−ｂに示される例と異なる他の内部論理アーキテクチャを有してもよい。本実施形態は、主に、フロー制御方法が図５−ｂに示されるアーキテクチャで実装される例を用いることによって説明される。
【０１４２】
図５−ａに示されるように、本発明の他の実施形態に係る他のパケットフロー制御方法は、以下の内容を含んでよい。
【０１４３】
５０１において、仮想マシンＶＭ−ｍに配置されたプレロードクライアント（ｐｒｅｌｏａｄ  ｃｌｉｅｎｔ）及びホストに配置されたプレロードサーバ（ｐｒｅｌｏａｄ  ｓｅｒｖｅｒ）は、接続を確立する。その接続は、送信制御プロトコルの接続又は他のタイプの通信接続である。
【０１４４】
固有の通信接続が、仮想マシンＶＭ−ｍに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間に存在し、又は、プレロードクライアント及びプレロードサーバは、互いに直接通信可能である場合には、段階５０１は省略されてもよい。
【０１４５】
５０２において、仮想マシンＶＭ−ｍに配置されたプレロードクライアントは、ホストに配置されたプレロードサーバによって送信された交渉開始要求を受信する。
【０１４６】
５０３において、仮想マシンＶＭ−ｍに配置されたプレロードクライアントは、仮想マシンＶＭ−ｍのフロー制御機能についての記述情報を含む実行者交渉要求を、ホストに配置されたプレロードサーバに送信する。
【０１４７】
段階５０２において、ホストに配置されたプレロードサーバは、仮想マシンＶＭ−ｍに配置されたプレロードクライアントに交渉開始要求を送信し、主に、フロー制御ポリシの実行者の交渉を開始するよう仮想マシンＶＭ−ｍに配置されたプレロードクライアントをトリガする。勿論、仮想マシンＶＭ−ｍに配置されたプレロードクライアントは、他の条件（例えば、ユーザモードプロセスによって開始された交渉開始要求（すなわち、ユーザモードアプリケーション又はユーザ命令によってトリガされてよい）が受信されたこと）によってトリガされ、フロー制御ポリシの実行者の交渉を開始してもよいことが理解されよう。仮想マシンＶＭ−ｍに配置されたプレロードクライアントがフロー制御ポリシの実行者の交渉を別個に開始した場合には、段階５０２は省略されてよい。
【０１４８】
５０４において、ホストに配置されたプレロードサーバは、仮想マシンＶＭ−ｍのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、実行者交渉要求に含まれるフロー制御機能についての記述情報は、仮想マシンＶＭ−ｍがフロー制御ポリシの実行をサポートするか否かを示し、これにより、ホストに配置されたプレロードサーバは、フロー制御機能についての記述情報に従って、仮想マシンＶＭ−ｍがフロー制御ポリシの実行をサポートするか否かを決定してよい。
【０１４９】
本実施形態において、ホストに配置されたプレロードサーバが、仮想マシンＶＭ−ｍがフロー制御ポリシの実行をサポートすると決定することは、以下において例として用いられる。従って、ホストに配置されたプレロードサーバは、交渉確認インジケーションを仮想マシンＶＭ−ｍに配置されたプレロードクライアントに送信してよく、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンＶＭ−ｍであることを示し、交渉確認インジケーションは、フロー制御ポリシを含んでよい。ホストに配置されたプレロードサーバは、ホストに配置されたプレロードカーネル（ｐｒｅｌｏａｄ  ｋｅｒｎｅｌ）に、フロー制御ポリシを実行しないようさらに命令する。
【０１５０】
５０５において、ホストに配置されたプレロードサーバによって送信された交渉確認インジケーションを受信した後で、仮想マシンＶＭ−ｍに配置されたプレロードクライアントは、フロー制御ポリシの交渉された実行者が仮想マシンＶＭ−ｍであると決定し、従って、仮想マシンＶＭ−ｍに配置されたプレロードクライアントは、交渉確認インジケーションに含まれるフロー制御ポリシを、仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥに送信し、これにより、仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥに、フロー制御ポリシを実行するよう命令する。
【０１５１】
段階５０３から５０５を実行することによって、仮想マシンＶＭ−ｍに配置されたプレロードクライアント及びホストに配置されたプレロードサーバは、交渉によって、フロー制御ポリシの実行者を決定する。
【０１５２】
５０６において、フロー制御ポリシを受信した後で、仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥは、受信されたフロー制御ポリシに基づいて、仮想マシンＶＭ−ｍに配置されたユーザモードアプリケーションから転送処理されるべきパケットに対する転送処理を実行する。
【０１５３】
本実施形態において、サービス品質に基づくフロー制御ポリシ又はアクセス制御リストに基づくフロー制御ポリシは、フロー制御ポリシの例として用いられる。
【０１５４】
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様（特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等）は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。
【０１５５】
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、（ブラックリストと同様の）制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、（ホワイトリストと同様の）許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
【０１５６】
従って、仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥが、受信されたフロー制御ポリシに基づいて、仮想マシンＶＭ−ｍに配置されたユーザモードアプリケーションから転送処理されるべきパケットに対する転送処理を実行することは、仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥが、仮想マシンＶＭ−ｍに配置されたユーザモードアプリケーションから転送処理されるべきパケットを破棄すること、又は、仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥが、仮想マシンＶＭ−ｍに配置されたユーザモードアプリケーションから転送処理されるべきパケットを、遅延させて（遅延の程度は、転送処理されるべきパケットのサービス優先度及び転送処理されるべきパケットの現在の数に関連してよい）送信すること、又は、仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥが、仮想マシンＶＭ−ｍに配置されたユーザモードアプリケーションから転送処理されるべきパケットを、遅延なく送信することを含んでよい。複数の他の態様は、本明細書において再度列挙されない。
【０１５７】
ホストに配置されたネットワークインタフェースカードに対応するＢＥが、仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥのパケットを受信する場合には、ホストに配置されたネットワークインタフェースカードに対応するＢＥは、受信されたパケットに対するホストに配置されたプレロードカーネルへの転送処理を実行する。
【０１５８】
ホストに配置されたプレロードカーネルは、フロー制御ポリシを実行することが必要ではないので、ホストに配置されたプレロードカーネルは、ネットワークインタフェースカードドライバを用いることによって、受信されたパケットをネットワークインタフェースカードに直接転送してよく、ネットワークインタフェースカードは、これに応じて、受信されたパケットに対する転送処理を実行してよい。
【０１５９】
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンＶＭ−ｍであると決定された後で、プレロードクライアントは、接続を介して、ハートビートメッセージをプレロードサーバに定期的に送信してよい。ハートビートメッセージを送信する目的の１つは、仮想マシンＶＭ−ｍが適切に機能している状況をプレロードサーバに通知することである。プレロードサーバが設定期間内にプレロードクライアントからハートビートメッセージを受信しなかった場合には、プレロードサーバは、ＶＭ−ｍにおいて障害が発生したとデフォルトで決定してよい。例えば、フロー制御ポリシの交渉された実行者が仮想マシンＶＭ−ｍであると決定された後で、プレロードサーバが、設定期間内にプレロードクライアントからハートビートメッセージを受信しなかった場合には、プレロードサーバは、フロー制御ポリシの実行者をホストにスイッチしてよく（すなわち、プレロードカーネルは、仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥがフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行するか否かに関わらず、フロー制御ポリシに基づいて、仮想マシンＶＭ−ｍからのパケットに対する転送処理をさらに実行する。ホスト及び仮想マシンＶＭ−ｍにおいて同じパケットフローに対して実行されるフロー制御ポリシは同じであるので、プレロードカーネルもしくは仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥ又はその両方は、同じフロー制御ポリシを実行し、プレロードカーネルの最終的なパケット出力条件は、基本的に同じである）、フロー制御ポリシの実行者がホストにスイッチされたことを示すインジケーションメッセージを、プレロードクライアントに送信してよい。
【０１６０】
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンＶＭ−ｍであると決定された後で、プレロードクライアントは、仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥがフロー制御ポリシを実行したときに障害が発生した場合には、仮想マシンＶＭ−ｍがフロー制御ポリシを実行したときに障害が発生したことを示すインジケーションメッセージをプレロードサーバに送信してもよい。フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、プレロードサーバが、仮想マシンＶＭ−ｍがフロー制御ポリシを実行したときに障害が発生したことを示すインジケーションメッセージをプレロードクライアントから受信した場合には、プレロードサーバは、フロー制御ポリシの実行者をホストにスイッチしてよく、プレロードサーバは、プレロードカーネルに、フロー制御ポリシを実行するよう命令してよい。
【０１６１】
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンＶＭ−ｍであると決定された後で、プレロードサーバは、仮想マシンＶＭ−ｍがフロー制御ポリシを適切に実行しているか否かを問う状況質問メッセージをプレロードクライアントに定期的に又は不定期的に送信してもよい。状況質問メッセージに応答する状況インジケーションメッセージが設定期間内にプレロードクライアントから受信されなかった場合、又は、プレロードクライアントからインジケーションメッセージが受信され、そのインジケーションメッセージが、仮想マシンＶＭ−ｍがフロー制御ポリシを実行したときに障害が発生したことを示す場合には、仮想マシンＶＭ−ｍがフロー制御ポリシを実行したときに障害が発生したと決定されてよい。勿論、プレロードサーバは、複数の他の態様で、仮想マシンＶＭ−ｍがフロー制御ポリシを実行したときに障害が発生したか否かを監視してもよい。仮想マシンＶＭ−ｍがフロー制御ポリシを実行したときに障害が発生したと決定された場合には、プレロードサーバは、フロー制御ポリシの実行者をホストにスイッチしてよく、プレロードサーバは、プレロードカーネルに、フロー制御ポリシを実行するよう命令してよい。
【０１６２】
フロー制御ポリシを実行するよう命令された後で、プレロードカーネルは、フロー制御ポリシに基づいて、仮想マシンＶＭ−ｍから転送処理されるべきパケットに対する転送処理を実行する。
【０１６３】
図５−ｃを参照すると、図５−ｃは、本発明の本実施形態に係るフロー制御の効果の模式図である。図５−ｃに示されるように、ネットワークインタフェースカードに対応するＦＥが、仮想マシンＶＭ−ｍのユーザモードアプリケーションからの高帯域幅パケットフローに対してフロー制御ポリシを実行した後で、パケットフローの帯域幅が減少する。フロー制御を早い段階で実行することは、リソース消費の低減に寄与することが理解されよう。
【０１６４】
本実施形態に係る解決手段において、仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンは、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与することが理解されよう。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
【０１６５】
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
【０１６６】
さらに、仮想マシン及びホストは、複雑なアプリケーション環境に対する製品の適合性向上、及び環境移行のアップグレードコスト削減に寄与するモジュラーアーキテクチャを用いることによって設計される。
【０１６７】
図６−ａを参照すると、図６−ａは、本発明の他の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。図５−ｂは、本発明の本実施形態によって提供されるコンピューティングノードの模式的構造図であり、図６−ａに示されるフロー制御方法を実装するために利用可能である。図５−ｂは、例として、コンピューティングノードに配置されたホスト及び仮想マシンの具体的な内部論理アーキテクチャを示す。勿論、ホスト及び仮想マシンは、図５−ｂに示される例と異なる他の内部論理アーキテクチャを有してもよい。本実施形態は、主に、フロー制御方法が図５−ｂに示されるアーキテクチャで実装される例を用いることによって説明される。
【０１６８】
図６−ａに示されるように、本発明の他の実施形態に係る他のパケットフロー制御方法は、以下の内容を含んでよい。
【０１６９】
６０１において、仮想マシンＶＭ−ｍに配置されたプレロードクライアント及びホストに配置されたプレロードサーバは、接続を確立する。その接続は、送信制御プロトコルの接続又は他のタイプの通信接続である。
【０１７０】
固有の通信接続が、仮想マシンＶＭ−ｍに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間に存在し、又は、プレロードクライアント及びプレロードサーバは、互いに直接通信可能である場合には、段階６０１は省略されてもよい。
【０１７１】
６０２において、仮想マシンＶＭ−ｍに配置されたプレロードクライアントは、ホストに配置されたプレロードサーバによって送信された交渉開始要求を受信する。
【０１７２】
６０３において、仮想マシンＶＭ−ｍに配置されたプレロードクライアントは、仮想マシンＶＭ−ｍのフロー制御機能についての記述情報を含む実行者交渉要求を、ホストに配置されたプレロードサーバに送信する。
【０１７３】
段階６０１において、ホストに配置されたプレロードサーバは、仮想マシンＶＭ−ｍに配置されたプレロードクライアントに交渉開始要求を送信し、主に、フロー制御ポリシの実行者の交渉を開始するよう仮想マシンＶＭ−ｍに配置されたプレロードクライアントをトリガする。勿論、仮想マシンＶＭ−ｍに配置されたプレロードクライアントは、他の条件（例えば、ユーザモードプロセスによって開始された交渉開始要求（すなわち、ユーザモードアプリケーション又はユーザ命令によってトリガされてよい）が受信されたこと）によってトリガされ、フロー制御ポリシの実行者の交渉を開始してもよいことが理解されよう。仮想マシンＶＭ−ｍに配置されたプレロードクライアントがフロー制御ポリシの実行者の交渉を別個に開始した場合には、段階６０２は省略されてよい。
【０１７４】
６０４において、ホストに配置されたプレロードサーバは、仮想マシンＶＭ−ｍのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、実行者交渉要求に含まれるフロー制御機能についての記述情報は、仮想マシンＶＭ−ｍがフロー制御ポリシの実行をサポートするか否かを示し、これにより、ホストに配置されたプレロードサーバは、フロー制御機能についての記述情報に従って、仮想マシンＶＭ−ｍがフロー制御ポリシの実行をサポートするか否かを決定してよい。
【０１７５】
本実施形態において、ホストに配置されたプレロードサーバが、仮想マシンＶＭ−ｍがフロー制御ポリシの実行をサポートしないと決定することは、以下において、例として用いられる。従って、ホストに配置されたプレロードサーバは、仮想マシンＶＭ−ｍに配置されたプレロードクライアントに交渉不確認インジケーションを送信してよく、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。ホストに配置されたプレロードサーバは、ホストに配置されたプレロードカーネル（ｐｒｅｌｏａｄ  ｋｅｒｎｅｌ）に、フロー制御ポリシを実行するようさらに命令する。
【０１７６】
６０５において、ホストに配置されたプレロードサーバによって送信された交渉不確認インジケーションを受信した後で、仮想マシンＶＭ−ｍに配置されたプレロードクライアントは、フロー制御ポリシの交渉された実行者がホストであると決定し、従って、仮想マシンＶＭ−ｍに配置されたプレロードクライアントは、仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥに、フロー制御ポリシを実行しないよう命令する。
【０１７７】
段階６０３から６０５を実行することによって、仮想マシンＶＭ−ｍに配置されたプレロードクライアント及びホストに配置されたプレロードサーバは、交渉によって、フロー制御ポリシの実行者を決定する。
【０１７８】
仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥは、仮想マシンＶＭ−ｍに配置されたユーザモードアプリケーションから転送処理されるべきパケットに対する転送処理を実行する。本明細書において、仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥは、転送処理されるべきパケットに対するフロー制御を実行しない。
【０１７９】
６０６において、ホストに配置されたネットワークインタフェースカードに対応するＢＥが仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥのパケットを受信した場合には、ホストに配置されたネットワークインタフェースカードに対応するＢＥは、受信されたパケットをホストに配置されたプレロードカーネルに転送する。
【０１８０】
プレロードカーネルは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する。
【０１８１】
本実施形態において、サービス品質に基づくフロー制御ポリシ又はアクセス制御リストに基づくフロー制御ポリシは、フロー制御ポリシの例として用いられる。
【０１８２】
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様（特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等）は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。
【０１８３】
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、（ブラックリストと同様の）制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、（ホワイトリストと同様の）許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
【０１８４】
従って、プレロードカーネルがフロー制御ポリシに基づいて、仮想マシンＶＭ−ｍから転送処理されるべきパケットに対する転送処理を実行することは、プレロードカーネルが、仮想マシンＶＭ−ｍから転送処理されるべきパケットを破棄すること、又は、プレロードカーネルが、仮想マシンＶＭ−ｍから転送処理されるべきパケットを、遅延させて（遅延の程度は、転送処理されるべきパケットのサービス優先度及び転送処理されるべきパケットの現在の数に関連してよい）送信すること、又は、プレロードカーネルが、仮想マシンＶＭ−ｍから転送処理されるべきパケットを、遅延なく送信することを含んでよい。複数の他の態様は、本明細書において再度列挙されない。
【０１８５】
ネットワークインタフェースカードが、ネットワークインタフェースカードドライバを用いることによって、プレロードカーネルによって送信されたパケットを受信した場合には、ネットワークインタフェースカードは、これに応じて、受信されたパケットに対する転送処理を実行する。
【０１８６】
図６−ｂを参照すると、図６−ｂは、本発明の本実施形態に係る他のフロー制御の効果の模式図である。図６−ｂに示されるように、ネットワークインタフェースカードに対応するＦＥが仮想マシンＶＭ−ｍのユーザモードアプリケーションからの高帯域幅パケットフローに対してフロー制御ポリシを実行しなかった後で、パケットフローの帯域幅は、ホストのプレロードカーネルがフロー制御ポリシを実行した後で減少する。
【０１８７】
本実施形態に係る解決手段において、仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンは、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与することが理解されよう。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
【０１８８】
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
【０１８９】
さらに、仮想マシン及びホストは、複雑なアプリケーション環境に対する製品の適合性向上、及び環境移行のアップグレードコスト削減に寄与するモジュラーアーキテクチャを用いることによって設計される。
【０１９０】
図７を参照すると、図７は、本発明の他の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。図５−ｂは、本発明の本実施形態によって提供されるコンピューティングノードの模式的構造図であり、図７に示されるフロー制御方法を実装するために利用可能である。図５−ｂは、例として、コンピューティングノードに配置されたホスト及び仮想マシンの具体的な内部論理アーキテクチャを示す。勿論、ホスト及び仮想マシンは、図５−ｂに示される例と異なる他の内部論理アーキテクチャを有してもよい。本実施形態は、主に、フロー制御方法が図５−ｂに示されるアーキテクチャで実装される例を用いることによって説明される。
【０１９１】
図７に示されるように、本発明の他の実施形態に係る他のパケットフロー制御方法は、以下の内容を含んでよい。
【０１９２】
７０１において、仮想マシンＶＭ−ｍに配置されたプレロードクライアント及びホストに配置されたプレロードサーバは、接続を確立する。その接続は、送信制御プロトコルの接続又は他のタイプの通信接続である。
【０１９３】
固有の通信接続が、仮想マシンＶＭ−ｍに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間に存在し、又は、プレロードクライアント及びプレロードサーバは、互いに直接通信可能である場合には、段階７０１は省略されてもよい。
【０１９４】
７０２において、仮想マシンＶＭ−ｍに配置されたプレロードクライアントは、ホストに配置されたプレロードサーバによって送信された交渉開始要求を受信する。
【０１９５】
７０３において、仮想マシンＶＭ−ｍに配置されたプレロードクライアントは、仮想マシンＶＭ−ｍのフロー制御機能についての記述情報を含む実行者交渉要求を、ホストに配置されたプレロードサーバに送信する。
【０１９６】
段階７０２において、ホストに配置されたプレロードサーバは、仮想マシンＶＭ−ｍに配置されたプレロードクライアントに交渉開始要求を送信し、主に、フロー制御ポリシの実行者の交渉を開始するよう仮想マシンＶＭ−ｍに配置されたプレロードクライアントをトリガする。勿論、仮想マシンＶＭ−ｍに配置されたプレロードクライアントは、他の条件（例えば、ユーザモードプロセスによって開始された交渉開始要求（すなわち、ユーザモードアプリケーション又はユーザ命令によってトリガされてよい）が受信されたこと）によってトリガされ、フロー制御ポリシの実行者の交渉を開始してもよいことが理解されよう。仮想マシンＶＭ−ｍに配置されたプレロードクライアントがフロー制御ポリシの実行者の交渉を別個に開始した場合には、段階７０２は省略されてよい。
【０１９７】
７０４において、ホストに配置されたプレロードサーバは、仮想マシンＶＭ−ｍのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、実行者交渉要求に含まれるフロー制御機能についての記述情報は、その実行が仮想マシンＶＭ−ｍによってサポートされるフロー制御ポリシのバージョンを示し、これにより、ホストに配置されたプレロードサーバは、フロー制御機能についての記述情報に従って、仮想マシンＶＭ−ｍが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよい。
【０１９８】
本発明のいくつかの実施形態において、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。従って、プレロードサーバが、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定することは、具体的には、その実行が仮想マシンによってサポートされるフロー制御機能についての記述情報によって記述されるフロー制御ポリシのバージョンが、フロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを、比較によって決定することと、これらが同じ場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、これらが異なる場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。他の例では、プレロードサーバが、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定することは、具体的には、その実行が仮想マシンによってサポートされるフロー制御ポリシのフロー制御機能についての記述情報によって記述されるｋ個（ｋは正の整数）のバージョンの各バージョンがフロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、ｋ個のバージョンのうち１つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシであることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、ｋ個のバージョンのうちいずれか１つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシと異なることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。
【０１９９】
本実施形態において、ホストに配置されたプレロードサーバが、仮想マシンＶＭ−ｍが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することは、以下において例として用いられる。従って、ホストに配置されたプレロードサーバは、交渉確認インジケーションを仮想マシンＶＭ−ｍに配置されたプレロードクライアントに送信してよく、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンＶＭ−ｍであることを示し、交渉確認インジケーションは、現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシを含んでよい。ホストに配置されたプレロードサーバは、ホストに配置されたプレロードカーネルに、フロー制御ポリシを実行しないようさらに命令する。
【０２００】
７０５において、ホストに配置されたプレロードサーバによって送信された交渉確認インジケーションを受信した後で、仮想マシンＶＭ−ｍに配置されたプレロードクライアントは、フロー制御ポリシの交渉された実行者が仮想マシンＶＭ−ｍであると決定し、従って、仮想マシンＶＭ−ｍに配置されたプレロードクライアントは、交渉確認インジケーションに含まれるフロー制御ポリシを、仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥに送信する。
【０２０１】
段階７０３から７０５を実行することによって、仮想マシンＶＭ−ｍに配置されたプレロードクライアント及びホストに配置されたプレロードサーバは、交渉によって、フロー制御ポリシの実行者を決定する。
【０２０２】
７０６において、フロー制御ポリシを受信した後で、仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥは、受信されたフロー制御ポリシに基づいて、仮想マシンＶＭ−ｍに配置されたユーザモードアプリケーションから送信される、転送処理されるべきパケットに対する転送処理を実行する。
【０２０３】
本実施形態において、サービス品質に基づくフロー制御ポリシ又はアクセス制御リストに基づくフロー制御ポリシは、フロー制御ポリシの例として用いられる。
【０２０４】
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様（特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等）は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。
【０２０５】
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、（ブラックリストと同様の）制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、（ホワイトリストと同様の）許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
【０２０６】
従って、仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥが、受信されたフロー制御ポリシに基づいて、仮想マシンＶＭ−ｍに配置されたユーザモードアプリケーションから転送処理されるべきパケットに対する転送処理を実行することは、仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥが、仮想マシンＶＭ−ｍに配置されたユーザモードアプリケーションから転送処理されるべきパケットを破棄すること、又は、仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥが、仮想マシンＶＭ−ｍに配置されたユーザモードアプリケーションから転送処理されるべきパケットを、遅延させて（遅延の程度は、転送処理されるべきパケットのサービス優先度及び転送処理されるべきパケットの現在の数に関連してよい）送信すること、又は、仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥが、仮想マシンＶＭ−ｍに配置されたユーザモードアプリケーションから転送処理されるべきパケットを、遅延なく送信することを含んでよい。複数の他の態様は、本明細書において再度列挙されない。
【０２０７】
ホストに配置されたネットワークインタフェースカードに対応するＢＥが、仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥのパケットを受信する場合には、ホストに配置されたネットワークインタフェースカードに対応するＢＥは、受信されたパケットに対するホストに配置されたプレロードカーネルへの転送処理を実行する。
【０２０８】
ホストに配置されたプレロードカーネルは、フロー制御ポリシを実行することが必要ではないので、ホストに配置されたプレロードカーネルは、ネットワークインタフェースカードドライバを用いることによって、受信されたパケットをネットワークインタフェースカードに直接転送してよく、ネットワークインタフェースカードは、これに応じて、受信されたパケットに対する転送処理を実行してよい。
【０２０９】
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンＶＭ−ｍであると決定された後で、プレロードクライアントは、接続を介して、ハートビートメッセージをプレロードサーバに定期的に送信してよい。ハートビートメッセージを送信する目的の１つは、仮想マシンＶＭ−ｍが適切に機能している状況をプレロードサーバに通知することである。プレロードサーバが設定期間内にプレロードクライアントからハートビートメッセージを受信しなかった場合には、プレロードサーバは、ＶＭ−ｍにおいて障害が発生したとデフォルトで決定してよい。例えば、フロー制御ポリシの交渉された実行者が仮想マシンＶＭ−ｍであると決定された後で、プレロードサーバが、設定期間内にプレロードクライアントからハートビートメッセージを受信しなかった場合には、プレロードサーバは、フロー制御ポリシの実行者をホストにスイッチしてよく（すなわち、プレロードカーネルは、仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥがフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行するか否かに関わらず、フロー制御ポリシに基づいて、仮想マシンＶＭ−ｍからのパケットに対する転送処理をさらに実行する。ホスト及び仮想マシンＶＭ−ｍにおいて同じパケットフローに対して実行されるフロー制御ポリシは同じであるので、プレロードカーネルもしくは仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥ又はその両方は、同じフロー制御ポリシを実行し、プレロードカーネルの最終的なパケット出力条件は、基本的に同じである）、フロー制御ポリシの実行者がホストにスイッチされたことを示すインジケーションメッセージを、プレロードクライアントに送信してよい。
【０２１０】
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンＶＭ−ｍであると決定された後で、プレロードクライアントは、仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥがフロー制御ポリシを実行したときに障害が発生した場合には、仮想マシンＶＭ−ｍがフロー制御ポリシを実行したときに障害が発生したことを示すインジケーションメッセージをプレロードサーバに送信してもよい。フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、プレロードサーバが、仮想マシンＶＭ−ｍがフロー制御ポリシを実行したときに障害が発生したことを示すインジケーションメッセージをプレロードクライアントから受信した場合には、プレロードサーバは、フロー制御ポリシの実行者をホストにスイッチしてよく、プレロードサーバは、プレロードカーネルに、フロー制御ポリシを実行するよう命令してよい。
【０２１１】
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシンＶＭ−ｍであると決定された後で、プレロードサーバは、仮想マシンＶＭ−ｍがフロー制御ポリシを適切に実行しているか否かを問う状況質問メッセージをプレロードクライアントに定期的に又は不定期的に送信してもよい。状況質問メッセージに応答する状況インジケーションメッセージが設定期間内にプレロードクライアントから受信されなかった場合、又は、プレロードクライアントからインジケーションメッセージが受信され、そのインジケーションメッセージが、仮想マシンＶＭ−ｍがフロー制御ポリシを実行したときに障害が発生したことを示す場合には、仮想マシンＶＭ−ｍがフロー制御ポリシを実行したときに障害が発生したと決定されてよい。勿論、プレロードサーバは、複数の他の態様で、仮想マシンＶＭ−ｍがフロー制御ポリシを実行したときに障害が発生したか否かを監視してもよい。仮想マシンＶＭ−ｍがフロー制御ポリシを実行したときに障害が発生したと決定された場合には、プレロードサーバは、フロー制御ポリシの実行者をホストにスイッチしてよく、プレロードサーバは、プレロードカーネルに、フロー制御ポリシを実行するよう命令してよい。
【０２１２】
フロー制御ポリシを実行するよう命令された後で、プレロードカーネルは、フロー制御ポリシに基づいて、仮想マシンＶＭ−ｍから転送処理されるべきパケットに対する転送処理を実行する。
【０２１３】
本実施形態に係る解決手段において、仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンは、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与することが理解されよう。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
【０２１４】
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
【０２１５】
さらに、仮想マシン及びホストは、複雑なアプリケーション環境に対する製品の適合性向上、及び環境移行のアップグレードコスト削減に寄与するモジュラーアーキテクチャを用いることによって設計される。
【０２１６】
図８を参照すると、図８は、本発明の他の実施形態に係る他のパケットフロー制御方法の模式的フローチャートである。図５−ｂは、本発明の本実施形態によって提供されるコンピューティングノードの模式的構造図であり、図８に示されるフロー制御方法を実装するために利用可能である。図５−ｂは、例として、コンピューティングノードに配置されたホスト及び仮想マシンの具体的な内部論理アーキテクチャを示す。勿論、ホスト及び仮想マシンは、図５−ｂに示される例と異なる他の内部論理アーキテクチャを有してもよい。本実施形態は、主に、フロー制御方法が図５−ｂに示されるアーキテクチャで実装される例を用いることによって説明される。
【０２１７】
図８に示されるように、本発明の他の実施形態に係る他のパケットフロー制御方法は、以下の内容を含んでよい。
【０２１８】
８０１において、仮想マシンＶＭ−ｍに配置されたプレロードクライアント及びホストに配置されたプレロードサーバは、接続を確立する。その接続は、送信制御プロトコルの接続又は他のタイプの通信接続である。
【０２１９】
固有の通信接続が、仮想マシンＶＭ−ｍに配置されたプレロードクライアントとホストに配置されたプレロードサーバとの間に存在し、又は、プレロードクライアント及びプレロードサーバは、互いに直接通信可能である場合には、段階８０１は省略されてもよい。
【０２２０】
８０２において、仮想マシンＶＭ−ｍに配置されたプレロードクライアントは、ホストに配置されたプレロードサーバによって送信された交渉開始要求を受信する。
【０２２１】
８０３において、仮想マシンＶＭ−ｍに配置されたプレロードクライアントは、仮想マシンＶＭ−ｍのフロー制御機能についての記述情報を含む実行者交渉要求を、ホストに配置されたプレロードサーバに送信する。
【０２２２】
段階８０２において、ホストに配置されたプレロードサーバは、仮想マシンＶＭ−ｍに配置されたプレロードクライアントに交渉開始要求を送信し、主に、フロー制御ポリシの実行者の交渉を開始するよう仮想マシンＶＭ−ｍに配置されたプレロードクライアントをトリガする。勿論、仮想マシンＶＭ−ｍに配置されたプレロードクライアントは、他の条件（例えば、ユーザモードプロセスによって開始された交渉開始要求（すなわち、ユーザモードアプリケーション又はユーザ命令によってトリガされてよい）が受信されたこと）によってトリガされ、フロー制御ポリシの実行者の交渉を開始してもよいことが理解されよう。仮想マシンＶＭ−ｍに配置されたプレロードクライアントがフロー制御ポリシの実行者の交渉を別個に開始した場合には、段階８０２は省略されてよい。
【０２２３】
８０４において、ホストに配置されたプレロードサーバは、仮想マシンＶＭ−ｍのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、実行者交渉要求に含まれるフロー制御機能についての記述情報は、その実行が仮想マシンＶＭ−ｍによってサポートされるフロー制御ポリシのバージョンを示し、従って、ホストに配置されたプレロードサーバは、フロー制御機能についての記述情報に従って、仮想マシンＶＭ−ｍが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよい。
【０２２４】
本発明のいくつかの実施形態において、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。従って、プレロードサーバが、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定することは、具体的には、その実行が仮想マシンによってサポートされるフロー制御機能についての記述情報によって記述されるフロー制御ポリシのバージョンが、フロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを、比較によって決定することと、これらが同じ場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、これらが異なる場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。他の例では、プレロードサーバが、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定することは、具体的には、その実行が仮想マシンによってサポートされるフロー制御ポリシのフロー制御機能についての記述情報によって記述されるｋ個（ｋは正の整数）のバージョンの各バージョンがフロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、ｋ個のバージョンのうち１つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシであることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、ｋ個のバージョンのうちいずれか１つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシと異なることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。
【０２２５】
本実施形態において、ホストに配置されたプレロードサーバが、仮想マシンＶＭ−ｍが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することは、以下において例として用いられる。従って、ホストに配置されたプレロードサーバは、仮想マシンＶＭ−ｍに配置されたプレロードクライアントに交渉不確認インジケーションを送信してよく、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。ホストに配置されたプレロードサーバは、ホストに配置されたプレロードカーネル（ｐｒｅｌｏａｄ  ｋｅｒｎｅｌ）に、フロー制御ポリシを実行するようさらに命令する。
【０２２６】
８０５において、ホストに配置されたプレロードサーバによって送信された交渉不確認インジケーションを受信した後で、仮想マシンＶＭ−ｍに配置されたプレロードクライアントは、フロー制御ポリシの交渉された実行者がホストであると決定し、従って、仮想マシンＶＭ−ｍに配置されたプレロードクライアントは、仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥに、フロー制御ポリシを実行しないよう命令する。
【０２２７】
段階８０３から８０５を実行することによって、仮想マシンＶＭ−ｍに配置されたプレロードクライアント及びホストに配置されたプレロードサーバは、交渉によって、フロー制御ポリシの実行者を決定する。
【０２２８】
仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥは、仮想マシンＶＭ−ｍに配置されたユーザモードアプリケーションから転送処理されるべきパケットに対する転送処理を実行する。本明細書において、仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥは、転送処理されるべきパケットに対するフロー制御を実行しない。
【０２２９】
８０６において、ホストに配置されたネットワークインタフェースカードに対応するＢＥが、仮想マシンＶＭ−ｍに配置されたネットワークインタフェースカードに対応するＦＥのパケットを受信する場合には、ホストに配置されたネットワークインタフェースカードに対応するＢＥは、受信されたパケットに対するホストに配置されたプレロードカーネルへの転送処理を実行する。
【０２３０】
プレロードカーネルは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する。
【０２３１】
本実施形態において、サービス品質に基づくフロー制御ポリシ又はアクセス制御リストに基づくフロー制御ポリシは、フロー制御ポリシの例として用いられる。
【０２３２】
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様（特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等）は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。
【０２３３】
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、（ブラックリストと同様の）制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、（ホワイトリストと同様の）許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
【０２３４】
従って、プレロードカーネルが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシに基づいて、仮想マシンＶＭ−ｍから転送処理されるべきパケットに対する転送処理を実行することは、プレロードカーネルが、仮想マシンＶＭ−ｍから転送処理されるべきパケットを破棄すること、又は、プレロードカーネルが、仮想マシンＶＭ−ｍから転送処理されるべきパケットを、遅延させて（遅延の程度は、転送処理されるべきパケットのサービス優先度及び転送処理されるべきパケットの現在の数に関連してよい）送信すること、又は、プレロードカーネルが、仮想マシンＶＭ−ｍから転送処理されるべきパケットを、遅延なく送信することを含んでよい。複数の他の態様は、本明細書において再度列挙されない。
【０２３５】
ネットワークインタフェースカードが、ネットワークインタフェースカードドライバを用いることによって、プレロードカーネルによって送信されたパケットを受信した場合には、ネットワークインタフェースカードは、これに応じて、受信されたパケットに対する転送処理を実行する。
【０２３６】
本実施形態に係る解決手段において、仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンは、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与することが理解されよう。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
【０２３７】
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
【０２３８】
さらに、仮想マシン及びホストは、複雑なアプリケーション環境に対する製品の適合性向上、及び環境移行のアップグレードコスト削減に寄与するモジュラーアーキテクチャを用いることによって設計される。
【０２３９】
本発明の複数の実施形態に係る複数の解決手段をより良く実装すべく、その解決手段を実装するための関連装置が、以下の通りさらに提供される。
【０２４０】
図９を参照すると、本発明の実施形態に係る仮想マシン９００は、第１の交渉ユニット９１０と、パケット処理ユニット９２０と、を含んでよい。
【０２４１】
第１の交渉ユニット９１０は、仮想マシン９００とホストとの間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するように構成される。
【０２４２】
パケット処理ユニット９２０は、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、転送処理されるべきパケットをホストに送信するように構成され、これにより、ホストは、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を実行する。
【０２４３】
本発明のいくつかの実施形態において、第１の交渉ユニット９１０は、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成されてよく、交渉確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信され、交渉不確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信される、
又は、
第１の交渉ユニット９１０は、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信された交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信された交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成されてよく、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
第１の交渉ユニット９１０は、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションが第１の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成されてよく、交渉確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信される、
又は、
第１の交渉ユニット９１０は、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、ホストによって送信された交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホストによって送信された交渉確認インジケーションが第１の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホストであると決定するように具体的に構成されてよく、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
第１の交渉ユニット９１０は、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定し、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションが第２の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成されてよく、交渉不確認インジケーションは、ホストがフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信される、
又は、
第１の交渉ユニット９１０は、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホストに送信し、ホストがフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、ホストによって送信された交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホストであると決定し、実行者交渉要求に応答してホストによって送信された交渉不確認インジケーションが第２の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成されてよく、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
【０２４４】
本発明のいくつかの実施形態において、フロー制御機能についての記述情報が、その実行が仮想マシン９００によってサポートされるフロー制御ポリシのバージョンを記述するために用いられる場合には、ホストが、フロー制御機能についての記述情報に従って、仮想マシン９００が現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、フロー制御機能についての記述情報によって記述され、かつ、その実行が仮想マシン９００によってサポートされるフロー制御ポリシのバージョンが、フロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、これらが同じ場合には、仮想マシン９００が現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、これらが異なる場合には、仮想マシン９００が現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。他の例では、ホストが、フロー制御機能についての記述情報に従って、仮想マシン９００が現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、その実行が仮想マシン９００によってサポートされるフロー制御ポリシのフロー制御機能についての記述情報によって記述されるｋ個（ｋは正の整数）のバージョンの各バージョンがフロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、ｋ個のバージョンのうち１つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシであることが比較によって得られた場合には、仮想マシン９００が現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、ｋ個のバージョンのうちいずれか１つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシと異なることが比較によって得られた場合には、仮想マシン９００が現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。
【０２４５】
本発明のいくつかの実施形態において、仮想マシン９００は、
フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ハートビートメッセージをホストに定期的に送信するように構成される送信ユニット（図９に示されない）
をさらに含んでよい。
【０２４６】
本実施形態において説明されるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び／又はアクセス制御リストに基づくフロー制御ポリシであってよく、勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
【０２４７】
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様（特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等）は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
【０２４８】
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、（ブラックリストと同様の）制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、（ホワイトリストと同様の）許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
【０２４９】
本実施形態において、仮想マシン９００の各モジュールの複数の機能が、複数の前述された方法の実施形態において説明された方法に従って具体的に実装されてよいことが理解されよう。その具体的な実装プロセスについては、複数の前述された実施形態において関連する説明を参照し、詳細は本明細書において再度説明されない。
【０２５０】
本実施形態に係る解決手段において、仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンは、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与することが理解されよう。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
【０２５１】
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
【０２５２】
さらに、仮想マシン及びホストは、複雑なアプリケーション環境に対する製品の適合性向上、及び環境移行のアップグレードコスト削減に寄与するモジュラーアーキテクチャを用いることによって設計される。
【０２５３】
図１０を参照すると、本発明の実施形態は、ホスト１０００をさらに提供し、これは、第２の交渉ユニット１０１０と、パケット処理ユニット１０２０と、を含んでよい。
【０２５４】
第２の交渉ユニット１０１０は、仮想マシンとホスト１０００との間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するように構成される。
【０２５５】
パケット処理ユニット１０２０は、フロー制御ポリシの交渉された実行者がホストであると決定された場合には、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を、パケットを仮想マシンから受信した後で実行するように構成される。
【０２５６】
本発明のいくつかの実施形態において、第２の交渉ユニット１０１０は、仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定された場合には、交渉確認インジケーションを仮想マシンに送信する、及び／又は、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定された場合には、交渉不確認インジケーションを仮想マシンに送信するように具体的に構成されてよく、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。
【０２５７】
本発明のいくつかの他の実施形態において、第２の交渉ユニット１０１０は、仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定された場合には、交渉確認インジケーションを仮想マシンに送信する、及び／又は、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定された場合には、交渉不確認インジケーションを仮想マシンに送信するように具体的に構成されてよく、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられ、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。
【０２５８】
本発明のいくつかの実施形態において、フロー制御機能についての記述情報が、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる場合には、第２の交渉ユニット１０１０が、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、フロー制御機能についての記述情報によって記述され、かつ、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンが、フロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、これらが同じ場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、これらが異なる場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。他の例では、第２の交渉ユニット１０１０が、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、その実行が仮想マシンによってサポートされるフロー制御ポリシのフロー制御機能についての記述情報によって記述されるｋ個（ｋは正の整数）のバージョンの各バージョンがフロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、ｋ個のバージョンのうち１つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシであることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、ｋ個のバージョンのうちいずれか１つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシと異なることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。
【０２５９】
本発明のいくつかの実施形態において、パケット処理ユニット１０２０は、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ハートビートメッセージが設定期間内に仮想マシンから受信されなかった場合には、フロー制御ポリシの実行者がホストにスイッチされたことを示すために用いられるインジケーションメッセージを仮想マシンに送信するようにさらに構成される。
【０２６０】
本実施形態において、パケット処理ユニット１０２０が転送処理されるべきパケットを処理するベースとなるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び／又はアクセス制御リストに基づくフロー制御ポリシであってよい。勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
【０２６１】
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様（特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等）は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
【０２６２】
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、（ブラックリストと同様の）制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、（ホワイトリストと同様の）許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
【０２６３】
本実施形態において、ホスト１０００の各モジュールの複数の機能が、複数の前述された方法の実施形態において説明された方法に従って具体的に実装されてよいことが理解されよう。その具体的な実装プロセスについては、複数の前述された実施形態において関連する説明を参照し、詳細は本明細書において再度説明されない。
【０２６４】
本実施形態に係る解決手段において、仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムが導入され、これにより、仮想マシン及びホストの両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンは、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与することが理解されよう。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
【０２６５】
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
【０２６６】
さらに、仮想マシン及びホストは、複雑なアプリケーション環境に対する製品の適合性向上、環境移行のアップグレードコスト削減に寄与するモジュラーアーキテクチャを用いることによって設計される。
【０２６７】
図１１を参照すると、本発明の実施形態は、コンピューティングノード１１００をさらに提供し、これは、ハードウェア層１１１０と、ハードウェア層において動作するホスト１１０２と、ホスト１１０２上で動作する少なくとも１つの仮想マシン１１０３と、を含んでよい。
【０２６８】
仮想マシン１１０３は、仮想マシン１１０３とホスト１１０２との間で、仮想マシン１１０３のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホスト１１０２であると決定された場合には、転送処理されるべきパケットをホスト１１０２に送信するように構成される。
【０２６９】
ホスト１１０２は、フロー制御ポリシの交渉された実行者がホスト１１０２であると決定された場合には、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を、パケットを仮想マシンから受信した後で実行するように構成される。
【０２７０】
本発明のいくつかの実施形態において、仮想マシン１１０３とホスト１１０２との間で、仮想マシン１１０３のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト１１０２に送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホスト１１０２であると決定するように具体的に構成され、交渉確認インジケーションは、ホスト１１０２がフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホスト１１０２によって送信され、交渉不確認インジケーションは、ホスト１１０２がフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホスト１１０２によって送信される。
【０２７１】
代わりに、仮想マシン１１０３とホスト１１０２との間で、仮想マシン１１０３のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト１１０２に送信し、ホスト１１０２がフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、ホスト１１０２によって送信された交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、ホスト１１０２がフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、ホスト１１０２によって送信された交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホスト１１０２であると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
【０２７２】
代わりに、仮想マシン１１０３とホスト１１０２との間で、仮想マシン１１０３のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト１１０２に送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホスト１１０２によって送信された交渉確認インジケーションが第１の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホスト１１０２であると決定するように具体的に構成され、交渉確認インジケーションは、ホスト１１０２がフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホスト１１０２によって送信される。
【０２７３】
代わりに、仮想マシン１１０３とホスト１１０２との間で、仮想マシン１１０３のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト１１０２に送信し、ホスト１１０２によって送信された交渉確認インジケーションが、ホスト１１０２がフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホスト１１０２によって送信された交渉確認インジケーションが第１の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホスト１１０２であると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
【０２７４】
代わりに、仮想マシン１１０３とホスト１１０２との間で、仮想マシン１１０３のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシンは、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト１１０２に送信し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホスト１１０２であると決定し、実行者交渉要求に応答してホスト１１０２によって送信された交渉不確認インジケーションが第２の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成され、交渉不確認インジケーションは、ホスト１１０２がフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホスト１１０２によって送信される。
【０２７５】
代わりに、仮想マシン１１０３とホスト１１０２との間で、仮想マシン１１０３のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシン１１０３は、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト１１０２に送信し、ホスト１１０２によって送信された交渉不確認インジケーションが、ホスト１１０２がフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で受信された場合には、フロー制御ポリシの交渉された実行者がホスト１１０２であると決定し、実行者交渉要求に応答してホスト１１０２によって送信された交渉不確認インジケーションが第２の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
【０２７６】
本発明のいくつかの実施形態において、ホスト１１０２は、仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定された場合には、交渉確認インジケーションを仮想マシンに送信し、及び／又は、フロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定された場合には、交渉不確認インジケーションを仮想マシンに送信してよく、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。
【０２７７】
本発明のいくつかの他の実施形態において、ホスト１１０２は、仮想マシンによって送信され、かつ、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求を受信し、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定された場合には、交渉確認インジケーションを仮想マシンに送信し、及び／又は、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定された場合には、交渉不確認インジケーションを仮想マシンに送信してよく、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられ、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシンであることを示し、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホストであることを示す。
【０２７８】
本発明のいくつかの実施形態において、フロー制御機能についての記述情報が、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる場合には、ホスト１１０２が、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、フロー制御機能についての記述情報によって記述され、かつ、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンが、フロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、これらが同じ場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、これらが異なる場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。他の例では、ホスト１１０２が、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、その実行が仮想マシンによってサポートされるフロー制御ポリシのフロー制御機能についての記述情報によって記述されるｋ個（ｋは正の整数）のバージョンの各バージョンがフロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、ｋ個のバージョンのうち１つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシであることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、ｋ個のバージョンのうちいずれか１つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシと異なることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。
【０２７９】
本発明のいくつかの実施形態において、ホスト１１０２は、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ハートビートメッセージが設定期間内に仮想マシンから受信されなかった場合には、フロー制御ポリシの実行者がホスト１１０２にスイッチされたことを示すために用いられるインジケーションメッセージを仮想マシンに送信するようにさらに構成される。
【０２８０】
本発明のいくつかの実施形態において、交渉確認インジケーションは、フロー制御ポリシを含んでよく、仮想マシンによって、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行するために、仮想マシンは、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行するように具体的に構成される。
【０２８１】
勿論、ホスト１１０２は、複数の他の態様において、フロー制御ポリシを仮想マシンに転送し、これにより、仮想マシン１１０３は、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホスト１１０２によって転送されたフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行してもよい。勿論、フロー制御ポリシは、仮想マシン１１０３において予め設定されてもよい。仮想マシン１１０３が、フロー制御ポリシの交渉された実行者が仮想マシン１１０３であると決定する場合には、仮想マシン１１０３は、予め設定されたフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する。
【０２８２】
本発明のいくつかの実施形態において、仮想マシン１１０３が仮想マシン１１０３のフロー制御機能についての記述情報を含む実行者交渉要求をホスト１１０２に送信するという理由で、仮想マシン１１０３は、ユーザモードプロセスによって開始された交渉開始要求が受信された後で、仮想マシン１１０３のフロー制御機能についての記述情報を含む実行者交渉要求をホスト１１０２に送信し、又は、ホスト１１０２から交渉開始要求が受信された後で、仮想マシン１１０３のフロー制御機能についての記述情報を含む実行者交渉要求をホスト１１０２に送信するように具体的に構成される。
【０２８３】
本実施形態において、ホスト１１０２又は仮想マシン１１０３が転送処理されるべきパケットを処理するベースとなるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び／又はアクセス制御リストに基づくフロー制御ポリシであってよい。勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
【０２８４】
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様（特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等）は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
【０２８５】
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、（ブラックリストと同様の）制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、（ホワイトリストと同様の）許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
【０２８６】
本実施形態において、コンピューティングノード１１００の各ユニットの複数の機能は、複数の前述された方法の実施形態において説明された方法に従って具体的に実装されてよいことが理解されよう。その具体的な実装プロセスについては、複数の前述された実施形態において関連する説明を参照し、詳細は本明細書において再度説明されない。
【０２８７】
本実施形態に係る解決手段において、仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムがコンピューティングノード１１００に導入され、これにより、仮想マシン及びホストの両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンは、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与することが理解されよう。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
【０２８８】
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
【０２８９】
さらに、仮想マシン及びホストは、複雑なアプリケーション環境に対する製品の適合性向上、及び環境移行のアップグレードコスト削減に寄与するモジュラーアーキテクチャを用いることによって設計される。
【０２９０】
図１２は、本発明の実施形態に係るコンピューティングノード１２００の構造を示す。コンピューティングノード１２００は、少なくとも１つのプロセッサ１２０１、例えばＣＰＵと、少なくとも１つのネットワークインタフェース１２０４又は他のユーザインタフェース１２０３と、ストレージ１２０５と、少なくとも１つの通信バス１２０２と、を含む。通信バス１２０２は、これらのコンポーネントの間における接続及び通信を実装するように構成される。任意に、コンピューティングノード１２００は、ユーザインタフェース１２０３を含み、これは、ディスプレイ、キーボード、又は（マウス、トラックボール（ｔｒａｃｋｂａｌｌ）、タッチパッド、もしくはタッチスクリーンのような）クリックデバイスを含む。ストレージ１２０５は、高速ＲＡＭメモリを含んでよく、少なくとも１つのディスクメモリのような不揮発性メモリ（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）をさらに含んでよい。ストレージ１２０５は、プロセッサ１２０１から離れた少なくとも１つの記憶装置を任意に含んでよい。ネットワークインタフェース１２０４は、物理ネットワークインタフェースカード等を含む。
【０２９１】
いくつかの実装態様において、ストレージ１２０５は、以下の要素、実行可能なモジュールもしくはデータ構造、又はこれらのサブセット、又はこれらの拡張されたセット、ホスト１２０５１及び少なくとも１つの仮想マシン１２０５２を格納する。ホスト１２０５１は、プロセッサ１２０１起動の下で、複数の前述された実施形態において説明されたホストの機能の一部又は全部を有してよく、仮想マシン１２０５２は、プロセッサ１２０１起動の下で、複数の前述された実施形態において説明された仮想マシンの機能の一部又は全部を有してよい。
【０２９２】
本発明の本実施形態において、仮想マシン１２０５２は、プロセッサ１２０１起動の下で、仮想マシン１２０５２とホスト１２０５１との間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された場合には、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホスト１２０５１であると決定された場合には、転送処理されるべきパケットをホスト１２０５１に送信するように構成されてよい。
【０２９３】
ホスト１２０５１は、プロセッサ１２０１起動の下で、フロー制御ポリシの交渉された実行者がホスト１２０５１であると決定された場合には、フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を、パケットを仮想マシン１２０５２から受信した後で実行するように構成されてよい。
【０２９４】
本発明のいくつかの実施形態において、仮想マシン１２０５２とホスト１２０５１との間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシン１２０５２は、プロセッサ１２０１起動の下で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト１２０５１に送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホスト１２０５１であると決定するように具体的に構成され、交渉確認インジケーションは、ホスト１２０５１がフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホスト１２０５１によって送信され、交渉不確認インジケーションは、ホスト１２０５１がフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホスト１２０５１によって送信される。
【０２９５】
代わりに、仮想マシン１２０５２とホスト１２０５１との間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシン１２０５２は、プロセッサ１２０１起動の下で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト１２０５１に送信し、ホスト１２０５１がフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、ホスト１２０５１によって送信された交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、ホスト１２０５１がフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で、ホスト１２０５１によって送信された交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホスト１２０５１であると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
【０２９６】
代わりに、仮想マシン１２０５２とホスト１２０５１との間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシン１２０５２は、プロセッサ１２０１起動の下で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト１２０５１に送信し、交渉確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホスト１２０５１によって送信された交渉確認インジケーションが第１の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホスト１２０５１であると決定するように具体的に構成され、交渉確認インジケーションは、ホスト１２０５１がフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートすると決定した後で、ホスト１２０５１によって送信される。
【０２９７】
代わりに、仮想マシン１２０５２とホスト１２０５１との間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシン１２０５２は、プロセッサ１２０１起動の下で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト１２０５１に送信し、ホスト１２０５１によって送信された交渉確認インジケーションが、ホスト１２０５１がフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で受信された場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定し、実行者交渉要求に応答してホスト１２０５１によって送信された交渉確認インジケーションが第１の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者がホスト１２０５１であると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
【０２９８】
代わりに、仮想マシン１２０５２とホスト１２０５１との間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシン１２０５２は、プロセッサ１２０１起動の下で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト１２０５１に送信し、交渉不確認インジケーションが受信された場合には、フロー制御ポリシの交渉された実行者がホスト１２０５１であると決定し、実行者交渉要求に応答してホスト１２０５１によって送信された交渉不確認インジケーションが第２の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成され、交渉不確認インジケーションは、ホスト１２０５１がフロー制御機能についての記述情報に従って、仮想マシンがフロー制御ポリシの実行をサポートしないと決定した後で、ホスト１２０５１によって送信される。
【０２９９】
代わりに、仮想マシン１２０５２とホスト１２０５１との間で、仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するために、仮想マシン１２０５２は、プロセッサ１２０１起動の下で、仮想マシンのフロー制御機能についての記述情報を含む実行者交渉要求をホスト１２０５１に送信し、ホスト１２０５１によって送信された交渉不確認インジケーションが、ホスト１２０５１がフロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した後で受信された場合には、フロー制御ポリシの交渉された実行者がホスト１２０５１であると決定し、実行者交渉要求に応答してホスト１２０５１によって送信された交渉不確認インジケーションが第２の設定期間内に受信されなかった場合には、フロー制御ポリシの交渉された実行者が仮想マシンであると決定するように具体的に構成され、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる。
【０３００】
本発明のいくつかの実施形態において、フロー制御機能についての記述情報が、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる場合には、ホスト１２０５１が、プロセッサ１２０１起動の下で、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、フロー制御機能についての記述情報によって記述され、かつ、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンが、フロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、これらが同じ場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、これらが異なる場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。他の例では、ホスト１２０５１が、プロセッサ１２０１起動の下で、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、その実行が仮想マシンによってサポートされるフロー制御ポリシのフロー制御機能についての記述情報によって記述されるｋ個（ｋは正の整数）のバージョンの各バージョンがフロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、ｋ個のバージョンのうち１つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシであることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、ｋ個のバージョンのうちいずれか１つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシと異なることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。
【０３０１】
本発明のいくつかの実施形態において、ホスト１２０５１は、プロセッサ１２０１起動の下で、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ハートビートメッセージが設定期間内に仮想マシンから受信されなかった場合には、フロー制御ポリシの実行者がホスト１２０５１にスイッチされたことを示すために用いられるインジケーションメッセージを仮想マシンに送信するようにさらに構成される。
【０３０２】
本発明のいくつかの実施形態において、交渉確認インジケーションは、フロー制御ポリシを含んでよく、仮想マシンによって、フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行するために、仮想マシン１２０５２は、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行するように具体的に構成される。
【０３０３】
勿論、ホスト１２０５１は、複数の他の態様において、フロー制御ポリシを仮想マシンに転送し、これにより、仮想マシン１２０５２は、フロー制御ポリシの交渉された実行者が仮想マシンであると決定された後で、ホスト１２０５１によって転送されたフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行してもよい。勿論、フロー制御ポリシは、仮想マシン１２０５２において予め設定されてもよい。仮想マシン１２０５２が、フロー制御ポリシの交渉された実行者が仮想マシン１２０５２であると決定する場合には、仮想マシン１２０５２は、予め設定されたフロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する。
【０３０４】
本発明のいくつかの実施形態において、仮想マシン１２０５２が仮想マシン１２０５２のフロー制御機能についての記述情報を含む実行者交渉要求をホスト１２０５１に送信するという理由で、仮想マシン１２０５２は、プロセッサ１２０１起動の下で、ユーザモードプロセスによって開始された交渉開始要求が受信された後で、仮想マシン１２０５２のフロー制御機能についての記述情報を含む実行者交渉要求をホスト１２０５１に送信し、又は、ホスト１２０５１から交渉開始要求が受信された後で、仮想マシン１２０５２のフロー制御機能についての記述情報を含む実行者交渉要求をホスト１２０５１に送信するように具体的に構成される。
【０３０５】
本実施形態において、ホスト１２０５１又は仮想マシン１２０５２が転送処理されるべきパケットを処理するベースとなるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び／又はアクセス制御リストに基づくフロー制御ポリシであってよい。勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
【０３０６】
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様（特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等）は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
【０３０７】
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、（ブラックリストと同様の）制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、（ホワイトリストと同様の）許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
【０３０８】
本実施形態において、コンピューティングノード１２００の各ユニットの複数の機能は、複数の前述された方法の実施形態において説明された方法に従って具体的に実装されてよいことが理解されよう。その具体的な実装プロセスについては、複数の前述された実施形態において関連する説明を参照し、詳細は本明細書において再度説明されない。
【０３０９】
本実施形態に係る解決手段において、仮想マシン及びホストがフロー制御ポリシの実行者を交渉するメカニズムがコンピューティングノード１２００に導入され、これにより、仮想マシン及びホストの両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシンは、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに無効なパケットフローによって占有される帯域幅及びホストのアドレス空間の縮小にさらに寄与することが理解されよう。この解決手段は、仮想マシンのアウトバウンドパケットフローに対する転送処理を実行するために占有されるホストのアドレス空間を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
【０３１０】
さらに、仮想マシン及びホストの両方がフロー制御ポリシの実行をサポートする場合には、仮想マシンは、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
【０３１１】
図１３は、本発明の実施形態に係るコンピューティングノード１３００の構造を示す。コンピューティングノード１３００は、少なくとも１つのプロセッサ１３０１、例えばＣＰＵと、少なくとも１つのネットワークインタフェース１３０４と、ストレージ１３０５と、少なくとも１つの通信バス１３０２と、を含む。通信バス１３０２は、これらのコンポーネントの間における接続及び通信を実装するように構成される。任意に、コンピューティングノード１３００は、ユーザインタフェース１３０３を含み、これは、ディスプレイ、キーボード、又は（マウス、トラックボール（ｔｒａｃｋｂａｌｌ）、タッチパッド、もしくはタッチスクリーンのような）クリックデバイスを含む。ストレージ１３０５は、高速ＲＡＭメモリを含んでよく、少なくとも１つのディスクメモリのような不揮発性メモリ（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）をさらに含んでよい。ストレージ１３０５は、プロセッサ１３０１から離れた少なくとも１つの記憶装置を任意に含んでよい。ネットワークインタフェース１３０４は、物理ネットワークインタフェースカード等を含む。
【０３１２】
いくつかの実装態様において、ストレージ１３０５は、以下の要素、実行可能なモジュールもしくはデータ構造、又はこれらのサブセット、又はこれらの拡張されたセット、ホスト１３０５１及び少なくとも１つの仮想マシン１３０５２を格納する。ホスト１３０５１は、プロセッサ１３０１起動の下で、複数の前述された実施形態において説明されたホストの機能の一部又は全部を有してよく、仮想マシン１３０５２は、プロセッサ１３０１起動の下で、複数の前述された実施形態において説明された仮想マシンの機能の一部又は全部を有してよい。
【０３１３】
本発明の本実施形態において、プロセッサ１３０１は、ストレージ１３０５に格納されたプログラム又は複数の命令を呼び出すことによって、ホスト１３０５１と仮想マシン１３０５２との間で、仮想マシン１３０５２のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、フロー制御ポリシの交渉された実行者が仮想マシン１３０５２である場合には、フロー制御ポリシに基づいて、仮想マシン１３０５２の転送処理されるべきパケットに対する転送処理を実行し、フロー制御ポリシの交渉された実行者がホスト１３０５１である場合には、仮想マシン１３０５２の転送処理されるべきパケットをホスト１３０５１に送信し、フロー制御ポリシに基づいて、ホスト１３０５１によって受信された転送処理されるべきパケットに対する転送処理を実行するように構成されてよい。
【０３１４】
本発明のいくつかの実施形態において、プロセッサ１３０１が、ホスト１３０５１と仮想マシン１３０５２との間で、仮想マシン１３０５２のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシン１３０５２によってホスト１３０５１に送信されるべき実行者交渉要求を、プロセッサ１３０１によってホスト１３０５１に送信することであって、実行者交渉要求は、仮想マシン１３０５２のフロー制御機能についての記述情報を含むことと、
ホスト１３０５１が実行者交渉要求を受信した後で、プロセッサ１３０１がフロー制御機能についての記述情報に従って、仮想マシン１３０５２がフロー制御ポリシの実行をサポートすると決定した場合には、ホスト１３０５１によって仮想マシン１３０５２に送信されるべき交渉確認インジケーションを、プロセッサ１３０１によって仮想マシン１３０５２に送信することであって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシン１３０５２であることを示すこと、及び／又は、プロセッサ１３０１がフロー制御機能についての記述情報に従って、仮想マシン１３０５２がフロー制御ポリシの実行をサポートしないと決定した場合には、ホスト１３０５１によって仮想マシン１３０５２に送信されるべき交渉不確認インジケーションを、プロセッサ１３０１によって仮想マシン１３０５２に送信することであって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホスト１３０５１であることを示すことと、
を含んでよい。
【０３１５】
代わりに、プロセッサ１３０１が、ホスト１３０５１と仮想マシン１３０５２との間で、仮想マシン１３０５２のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシン１３０５２によってホスト１３０５１に送信されるべき実行者交渉要求を、プロセッサ１３０１によってホスト１３０５１に送信することであって、実行者交渉要求は、仮想マシン１３０５２のフロー制御機能についての記述情報を含み、フロー制御機能についての記述情報は、その実行が仮想マシン１３０５２によってサポートされるフロー制御ポリシのバージョンを記述するために用いられることと、
ホスト１３０５１が実行者交渉要求を受信した後で、プロセッサ１３０１が、フロー制御機能についての記述情報に従って、仮想マシン１３０５２が現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した場合には、ホスト１３０５１によって仮想マシン１３０５２に送信されるべき交渉確認インジケーションをプロセッサ１３０１によって仮想マシン１３０５２に送信することであって、交渉確認インジケーションは、フロー制御ポリシの交渉された実行者が仮想マシン１３０５２であることを示すこと、及び／又は、プロセッサ１３０１がフロー制御機能についての記述情報に従って、仮想マシン１３０５２が現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定した場合には、ホスト１３０５１によって仮想マシン１３０５２に送信されるべき交渉不確認インジケーションを、プロセッサ１３０１によって仮想マシン１３０５２に送信することであって、交渉不確認インジケーションは、フロー制御ポリシの交渉された実行者がホスト１３０５１であることを示すことと、
を含む。
【０３１６】
本発明のいくつかの他の実施形態において、プロセッサ１３０１が、ホスト１３０５１と仮想マシン１３０５２との間で、仮想マシン１３０５２のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシン１３０５２によってホスト１３０５１に送信されるべき実行者交渉要求を、プロセッサ１３０１によってホスト１３０５１に送信することであって、実行者交渉要求は、仮想マシン１３０５２のフロー制御機能についての記述情報を含むことと、実行者交渉要求に応答してホスト１３０５１によって送信された交渉確認インジケーションが仮想マシン１３０５２によって受信された場合には、プロセッサ１３０１によって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定することと、実行者交渉要求に応答してホスト１３０５１によって送信された交渉不確認インジケーションが仮想マシン１３０５２によって受信された場合には、プロセッサ１３０１によって、フロー制御ポリシの交渉された実行者がホスト１３０５１であると決定することと、を含んでよい。
【０３１７】
代わりに、プロセッサ１３０１が、ホスト１３０５１と仮想マシン１３０５２との間で、仮想マシン１３０５２のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシン１３０５２によってホスト１３０５１に送信されるべき実行者交渉要求を、プロセッサ１３０１によってホスト１３０５１に送信することであって、実行者交渉要求は、仮想マシン１３０５２のフロー制御機能についての記述情報を含み、フロー制御機能についての記述情報は、その実行が仮想マシン１３０５２によってサポートされるフロー制御ポリシのバージョンを記述するために用いられることと、実行者交渉要求に応答してホスト１３０５１によって送信された交渉確認インジケーションが仮想マシン１３０５２によって受信された場合には、プロセッサ１３０１によって、フロー制御ポリシの交渉された実行者が仮想マシン１３０５２であると決定することと、実行者交渉要求に応答してホスト１３０５１によって送信された交渉不確認インジケーションが仮想マシン１３０５２によって受信された場合には、フロー制御ポリシの交渉された実行者がホスト１３０５１であると決定することと、を含んでよい。
【０３１８】
代わりに、プロセッサ１３０１が、ホスト１３０５１と仮想マシン１３０５２との間で、仮想マシン１３０５２のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシン１３０５２によってホスト１３０５１に送信されるべき実行者交渉要求を、プロセッサ１３０１によってホスト１３０５１に送信することであって、実行者交渉要求は、仮想マシン１３０５２のフロー制御機能についての記述情報を含むことと、実行者交渉要求に応答してホスト１３０５１によって送信された交渉確認インジケーションが、仮想マシン１３０５２によって受信された場合には、プロセッサ１３０１によって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定することと、実行者交渉要求に応答してホスト１３０５１によって送信された交渉確認インジケーションが仮想マシン１３０５２によって第１の設定期間内に受信されなかった場合には、プロセッサ１３０１によって、フロー制御ポリシの交渉された実行者がホスト１３０５１であると決定することと、を含んでよい。
【０３１９】
代わりに、プロセッサ１３０１が、ホスト１３０５１と仮想マシン１３０５２との間で、仮想マシン１３０５２のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシン１３０５２によってホスト１３０５１に送信されるべき実行者交渉要求を、プロセッサ１３０１によってホスト１３０５１に送信することであって、実行者交渉要求は、仮想マシン１３０５２のフロー制御機能についての記述情報を含み、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられることと、実行者交渉要求に応答してホスト１３０５１によって送信された交渉確認インジケーションが仮想マシン１３０５２によって受信された場合には、プロセッサ１３０１によって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定することと、実行者交渉要求に応答してホスト１３０５１によって送信された交渉確認インジケーションが仮想マシン１３０５２によって第１の設定期間内に受信されなかった場合には、プロセッサ１３０１によって、フロー制御ポリシの交渉された実行者がホスト１３０５１であると決定することと、を含んでよい。
【０３２０】
代わりに、プロセッサ１３０１が、ホスト１３０５１と仮想マシン１３０５２との間で、仮想マシン１３０５２のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシン１３０５２によってホスト１３０５１に送信されるべき実行者交渉要求を、プロセッサ１３０１によってホスト１３０５１に送信することであって、実行者交渉要求は、仮想マシン１３０５２のフロー制御機能についての記述情報を含むことと、実行者交渉要求に応答してホスト１３０５１によって送信された交渉不確認インジケーションが、仮想マシン１３０５２によって受信された場合には、プロセッサ１３０１によって、フロー制御ポリシの交渉された実行者がホスト１３０５１であると決定することと、実行者交渉要求に応答してホスト１３０５１によって送信された交渉不確認インジケーションが、仮想マシン１３０５２によって第２の設定期間内に受信されなかった場合には、プロセッサ１３０１によって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定することと、を含んでよい。
【０３２１】
代わりに、プロセッサ１３０１が、ホスト１３０５１と仮想マシン１３０５２との間で、仮想マシン１３０５２のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉することは、仮想マシン１３０５２によってホスト１３０５１に送信されるべき実行者交渉要求を、プロセッサ１３０１によってホスト１３０５１に送信することであって、実行者交渉要求は、仮想マシン１３０５２のフロー制御機能についての記述情報を含み、フロー制御機能についての記述情報は、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられることと、実行者交渉要求に応答してホスト１３０５１によって送信された交渉不確認インジケーションが、仮想マシン１３０５２によって受信された場合には、プロセッサ１３０１によって、フロー制御ポリシの交渉された実行者がホスト１３０５１であると決定することと、実行者交渉要求に応答してホスト１３０５１によって送信された交渉不確認インジケーションが、仮想マシン１３０５２によって第２の設定期間内に受信されなかった場合には、プロセッサ１３０１によって、フロー制御ポリシの交渉された実行者が仮想マシンであると決定することと、を含んでよい。
【０３２２】
本発明のいくつかの実施形態において、交渉確認インジケーションは、フロー制御ポリシを含む。
【０３２３】
プロセッサ１３０１が、フロー制御ポリシに基づいて、仮想マシン１３０５２の転送処理されるべきパケットに対する転送処理を実行することは、プロセッサ１３０１によって、交渉確認インジケーションに含まれるフロー制御ポリシに基づいて、仮想マシン１３０５２の転送処理されるべきパケットに対する転送処理を実行することを含んでよい。
【０３２４】
勿論、ホスト１３０５１は、複数の他の態様で、フロー制御ポリシを仮想マシン１３０５２に転送してもよく、これにより、プロセッサ１３０１は、フロー制御ポリシの交渉された実行者が仮想マシン１３０５２であると決定された後で、ホスト１３０５１によって転送されたフロー制御ポリシに基づいて、仮想マシン１３０５２の転送処理されるべきパケットに対する転送処理を実行する。勿論、フロー制御ポリシは、仮想マシン１３０５２において予め設定されてもよい。フロー制御ポリシの交渉された実行者が仮想マシン１３０５２であると決定される場合には、プロセッサ１３０１は、予め設定されたフロー制御ポリシに基づいて、仮想マシン１３０５２の転送処理されるべきパケットに対する転送処理を実行する。
【０３２５】
本発明のいくつかの実施形態において、ホスト１３０５１が実行者交渉要求を受信した後で、フロー制御機能についての記述情報が、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる場合には、プロセッサ１３０１が、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定してよいことは、具体的には、フロー制御機能についての記述情報によって記述され、かつ、その実行が仮想マシンによってサポートされるフロー制御ポリシのバージョンが、フロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、これらが同じ場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、これらが異なる場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。他の例では、プロセッサ１３０１が、フロー制御機能についての記述情報に従って、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートするか否かを決定することは、具体的には、その実行が仮想マシンによってサポートされるフロー制御ポリシのフロー制御機能についての記述情報によって記述されるｋ個（ｋは正の整数）のバージョンの各バージョンがフロー制御ポリシの現在の最新バージョン又は事前設定されたバージョンと同じか否かを比較によって決定することと、ｋ個のバージョンのうち１つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシであることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定することと、ｋ個のバージョンのうちいずれか１つのバージョンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシと異なることが比較によって得られた場合には、仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートしないと決定することと、を含んでよい。
【０３２６】
本発明のいくつかの実施形態において、フロー制御ポリシの交渉された実行者が仮想マシン１３０５２であると決定された後で、ホスト１３０５１が設定期間内に仮想マシン１３０５２からハートビートメッセージを受信しなかった場合には、プロセッサ１３０１は、ホスト１３０５１によって仮想マシン１３０５２に送信され、かつ、フロー制御ポリシの実行者がホスト１３０５１にスイッチされたことを示すために用いられるべきインジケーションメッセージを、仮想マシン１３０５２に送信するようにさらに構成される。
【０３２７】
本実施形態において、プロセッサ１３０１がホスト１３０５１又は仮想マシン１３０５２の転送処理されるべきパケットを処理するベースとなるフロー制御ポリシは、例えば、サービス品質に基づくフロー制御ポリシ及び／又はアクセス制御リストに基づくフロー制御ポリシであってよい。勿論、フロー制御ポリシは、複数の他の要素を参照するフロー制御ポリシであってもよい。
【０３２８】
サービス品質に基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様（特定の転送処理態様は、パケットを遅延させて送信、パケットを遅延なく送信、又はパケットを破棄してよい等）は、主に、転送処理されるべきパケットに対応するサービス優先度に基づいて決定される。例えば、複数の転送処理されるべきパケットが現在キャッシュに存在するとして、より高いサービス優先度に対応するパケットは、より短い遅延で、又はさらに遅延なく送信されてよく、より低いサービス優先度に対応するパケットは、より長い遅延で送信されてよく、設定された優先度閾値より低いサービス優先度に対応する転送処理されるべきパケットは、さらに破棄されてよい。これは、優先度の高いサービスのサービス品質を可能な限り確保することに寄与する。すなわち、サービス品質に基づいて、フロー制御ポリシに従って転送処理されるべきパケットに対する転送処理を実行する段階は、具体的には、転送処理されるべきパケットのサービス優先度に対応する転送処理態様に従って転送処理されるべきパケットに対する転送処理を実行する段階を含んでよい。
【０３２９】
アクセス制御リストに基づくフロー制御ポリシにおいて、パケットに対する転送処理を実行する特定の態様は、主に、転送処理されるべきパケットに含まれる情報がアクセス制御リストに含まれる記録に一致するか否かに基づいて決定される。例えば、アクセス制御リストは、（ブラックリストと同様の）制限されたアクセス制御リストである。制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。反対に、制限されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。他の例では、アクセス制御リストは、（ホワイトリストと同様の）許可されたアクセス制御リストである。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有さない場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを直接破棄してよい。許可されたアクセス制御リストが転送処理されるべきパケットのソース／デスティネーションアドレス、アプリケーション層プロトコルタイプ、もしくはトランスポート層プロトコルタイプ、及び／又はパケットヘッダに含まれる特定のキーワードのような情報に一致する記録を有する場合には、転送処理されるべきパケットに対する転送処理を実行する態様は、パケットを転送してよい。複数の他の場合は、類推によって処理されてよい。
【０３３０】
本発明のいくつかの実施形態において、仮想マシン１３０５２によってホスト１３０５１に送信されるべき実行者交渉要求を、プロセッサ１３０１がホスト１３０５１に送信することは、
仮想マシン１３０５２が、ユーザモードプロセスによって開始された交渉開始要求を受信した後で、仮想マシン１３０５２によってホスト１３０５１に送信されるべき実行者交渉要求を、プロセッサ１３０１によってホスト１３０５１に送信する段階、又は、仮想マシン１３０５２が交渉開始要求をホスト１３０５１から受信した後で、仮想マシン１３０５２によってホスト１３０５１に送信されるべき実行者交渉要求を、プロセッサ１３０１によってホスト１３０５１に送信する段階
を含んでよい。
【０３３１】
本発明のいくつかの実施形態において、ホスト１３０５１と仮想マシン１３０５２との間で、仮想マシン１３０５２のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階は、仮想マシン１３０５２に配置されたプレロードクライアントとホストに配置されたプレロードサーバ１３０５１との間で接続が確立された後で、プロセッサ１３０１によって確立された接続を用いることによって、ホスト１３０５１と仮想マシン１３０５２との間で、仮想マシン１３０５２のフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階を含んでよい。
【０３３２】
本実施形態において、コンピューティングノード１３００の各ユニットの複数の機能は、複数の前述された方法の実施形態において説明された方法に従って具体的に実装されてよいことが理解されよう。その具体的な実装プロセスについては、複数の前述された実施形態において関連する説明を参照し、詳細は本明細書において再度説明されない。
【０３３３】
前述の解決手段が用いられた後で、仮想マシン１３０５２及びホスト１３０５１がフロー制御ポリシの実行者を交渉するメカニズムがコンピューティングノード１３００に導入され、これにより、プロセッサ１３０１の助けによって、仮想マシン１３０５２及びホスト１３０５１の両方は、フロー制御ポリシの実行者となる機会を有する。これにより、仮想マシン１３０５２が、フロー制御ポリシを実行可能となり、可能な限り早くパケットに対するフロー制御を実行することに寄与し、効果的ではない処理の削減ならびに効果的ではないパケットフローによる帯域幅及びホスト１３０５１のアドレス空間の占有の縮小に、さらに寄与することが理解されよう。この解決手段は、仮想マシン１３０５２のアウトバウンドパケットフローに対する転送処理を実行するための、ホスト１３０５１のアドレス空間の占有を縮小することに寄与することが理解されよう。さらに、フロー制御ポリシの実行者は、交渉によってに決定され、フロー制御ポリシ実行の信頼性向上に寄与する。
【０３３４】
さらに、仮想マシン１３０５２及びホスト１３０５１の両方がフロー制御ポリシの実行をサポートする場合には、仮想マシン１３０５２は、フロー制御ポリシの実行において優先される。これは、可能な限り早くパケットに対するフロー制御を実行することにさらに寄与し、効果的ではない処理及び無効なパケットフローによって占有される帯域幅の縮小にさらに寄与する。
【０３３５】
本発明の実施形態は、コンピュータ記憶媒体をさらに提供し、コンピュータ記憶媒体は、プログラムを格納してよく、プログラムが実行された場合には、複数の方法の実施形態において説明されるパケットフロー制御方法の一部又は全部の段階が含まれる。
【０３３６】
説明を容易にすべく、前述された方法の実施形態の各々は、一連の動作の組み合わせとして説明されているが、しかしながら、いくつかの段階は、本発明に従って、他のシーケンスで、又は同時にに実行可能であるので、当業者であれば、本発明は説明された動作シーケンスに限定されるものではないと認識するはずであることに留意されたい。さらに、当業者であれば、本明細書において説明された複数の実施形態は例示的な実施形態であり、これらに伴う動作及びモジュールは、本発明において必ずしも必要とされるものではないことを認識するはずである。
【０３３７】
複数の前述された実施形態において、各実施形態の説明は、異なる部分を強調する。ある実施形態において詳細に説明されない部分については、複数の他の実施形態において関連する説明を参照されたい。
【０３３８】
本願において提供されるいくつかの実施形態において、開示された装置は、他の態様で実装されてよいことを理解されたい。例えば、説明された装置の実施形態は、例示的なものに過ぎない。例えば、前述されたユニットの分割は、論理的な機能の分割に過ぎず、実際の実装においては、他の分割であってよい。例えば、複数のユニット又はコンポーネントは、他のシステムに組み合わせられ、又はこれに統合されてよく、あるいは、いくつかの機能は、無視され又は実行されなくてよい。さらに、図示もしくは説明された相互の連結又は直接的な連結又は通信接続は、いくつかのインタフェースを介して実装されてよい。複数の装置又はユニットの間における間接的な連結又は通信接続は、電子又は他の形式で実装されてよい。
【０３３９】
複数の別個の部分として説明されたユニットは、物理的に別個であってよく、又はそうでなくてもよい。複数のユニットとして図示された部分は、物理的なユニットであってよく、又はそうでなくてもよく、１つの位置に配置されてよく、あるいは複数のネットワークユニット上で分散されてよい。複数のユニットの一部又は全部は、複数の実施形態の解決手段の目的を実現するための実際の必要性に従って選択されてよい。
【０３４０】
さらに、本発明の複数の実施形態における複数の機能ユニットは、１つの処理ユニットに統合されてよく、あるいは、各ユニットは物理的に単独で存在してよく、あるいは、２つ又はそれより多くのユニットが１つのユニットに統合される。統合されたユニットは、ハードウェアの形式で実装されてよく、又はソフトウェア機能ユニットの形式で実装されてよい。
【０３４１】
統合されたユニットがソフトウェア機能ユニットの形式で実装され、別個の製品として販売又は使用される場合には、統合されたユニットは、コンピュータ可読記憶媒体に格納されてよい。そのような理解に基づいて、本発明の複数の技術的解決手段は、本質的に又は部分的に、従来技術に寄与し、あるいは、複数の技術的解決手段の全部又は一部は、ソフトウェア製品の形式で実装されてよい。ソフトウェア製品は、記憶媒体に格納され、本発明の複数の実施形態において説明される複数の方法の複数の段階の全部又は一部を実行するように、コンピュータデバイス（メモリに接続されるパーソナルコンピュータ、サーバ、ネットワークデバイス、又はプロセッサであってよい）に命令するためのいくつかの命令を含む。前述の記憶媒体は、ＵＳＢフラッシュドライブ、リードオンリメモリ（Ｒｅａｄ−Ｏｎｌｙ  Ｍｅｍｏｒｙ、ＲＯＭ）、ランダムアクセスメモリ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、ＲＡＭ）、リムーバブルハードディスク、磁気ディスク、又は光ディスクのような、プログラムコードを格納可能な任意の媒体を含む。
【０３４２】
複数の前述された実施形態は、本発明の複数の技術的解決手段を説明することを意図するものに過ぎず、本発明を限定することを意図するものではない。本発明は、複数の前述された実施形態を参照して詳細に説明されるが、当業者であれば、彼らが本発明の複数の実施形態の技術的解決手段の範囲から逸脱することなく、複数の前述された実施形態において説明された技術的解決手段にさらに変更を加えること、又はこれらのいくつかの技術的特徴に均等な置換をなすことが可能であることを理解するはずである。
［項目１］
仮想マシンとホストＨｏｓｔとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、
上記フロー制御ポリシの交渉された実行者が上記仮想マシンであると決定された場合には、上記仮想マシンによって、上記フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する段階と、
上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定された場合には、上記仮想マシンによって、上記転送処理されるべきパケットを上記ホストに送信し、これにより、上記ホストが上記フロー制御ポリシに基づいて、受信された上記パケットに対する転送処理を実行する段階と、
を備える、パケットフロー制御方法。
［項目２］
仮想マシンとホストＨｏｓｔとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する上記段階は、
上記仮想マシンによって、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信する段階と、
上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートすると決定した後で、上記仮想マシンが上記ホストによって送信された交渉確認インジケーションを受信した場合には、上記仮想マシンによって、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定する段階と、
上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの上記実行をサポートしないと決定した後で、上記仮想マシンが上記ホストによって送信された交渉不確認インジケーションを受信した場合には、上記仮想マシンによって、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定する段階と、を含む、
又は、
仮想マシンとホストＨｏｓｔとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する上記段階は、
上記仮想マシンによって、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信する段階であって、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、上記仮想マシンが上記ホストによって送信された交渉確認インジケーションを受信した場合には、上記仮想マシンによって、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定する段階と、
上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記現在の最新バージョン又は上記事前設定されたバージョンの上記フロー制御ポリシの上記実行をサポートしないと決定した後で、上記仮想マシンが上記ホストによって送信された交渉不確認インジケーションを受信した場合には、上記仮想マシンによって、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定する段階と、を含む、
又は、
仮想マシンとホストＨｏｓｔとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する上記段階は、
上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を、上記仮想マシンによって上記ホストに送信する段階と、
上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートすると決定した後で、上記仮想マシンが上記ホストによって送信された交渉確認インジケーションを受信した場合には、上記仮想マシンによって、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定する段階と、
上記仮想マシンが、上記実行者交渉要求に応答して上記ホストによって送信された交渉確認インジケーションを第１の設定期間内に受信しなかった場合には、上記仮想マシンによって、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定する段階と、を含む、
又は、
仮想マシンとホストＨｏｓｔとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する上記段階は、
上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を、上記仮想マシンによって上記ホストに送信する段階であって、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、上記仮想マシンが上記ホストによって送信された交渉確認インジケーションを受信した場合には、上記仮想マシンによって、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定する段階と、
上記仮想マシンが、上記実行者交渉要求に応答して上記ホストによって送信された交渉確認インジケーションを第１の設定期間内に受信しなかった場合には、上記仮想マシンによって、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定する段階と、を含む、
又は、
仮想マシンとホストＨｏｓｔとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する上記段階は、
上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を、上記仮想マシンによって上記ホストに送信する段階と、
上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートしないと決定した後で、上記仮想マシンが上記ホストによって送信された交渉不確認インジケーションを受信した場合には、上記仮想マシンによって、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定する段階と、
上記仮想マシンが、上記実行者交渉要求に応答して上記ホストによって送信された交渉不確認インジケーションを第２の設定期間内に受信しなかった場合には、上記仮想マシンによって、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定する段階と、を含む、
又は、
仮想マシンとホストＨｏｓｔとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する上記段階は、
上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を、上記仮想マシンによって上記ホストに送信する段階であって、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、上記仮想マシンが上記ホストによって送信された交渉不確認インジケーションを受信した場合には、上記仮想マシンによって、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定する段階と、
上記仮想マシンが、上記実行者交渉要求に応答して上記ホストによって送信された交渉不確認インジケーションを第２の設定期間内に受信しなかった場合には、上記仮想マシンによって、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定する段階と、を含む、
項目１に記載のパケットフロー制御方法。
［項目３］
上記交渉確認インジケーションは、上記フロー制御ポリシを含み、
上記仮想マシンによって、上記フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行する上記段階は、上記仮想マシンによって、上記交渉確認インジケーションに含まれる上記フロー制御ポリシに基づいて、上記転送処理されるべきパケットに対する転送処理を実行する段階を含む、項目２に記載のパケットフロー制御方法。
［項目４］
上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を、上記仮想マシンによって上記ホストに送信する上記段階は、
ユーザモードプロセスによって開始された交渉開始要求を受信した後で、上記仮想マシンの上記フロー制御機能についての上記記述情報を含む上記実行者交渉要求を、上記仮想マシンによって上記ホストに送信する段階、又は、上記ホストから交渉開始要求を受信した後で、上記仮想マシンの上記フロー制御機能についての上記記述情報を含む上記実行者交渉要求を、上記仮想マシンによって上記ホストに送信する段階
を含む、項目２または３に記載のパケットフロー制御方法。
［項目５］
仮想マシンとホストＨｏｓｔとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する上記段階は、
上記仮想マシンに配置されたプレロードクライアントと上記ホストに配置されたプレロードサーバとの間の接続が確立された後で、上記仮想マシンと上記ホストとの間で、上記確立された接続に基づいて上記プレロードクライアントと上記プレロードサーバとによって、上記仮想マシンの上記フロー制御機能に基づいて、上記フロー制御ポリシの上記実行者を交渉する段階
を含む、項目１から４のいずれか１項に記載のパケットフロー制御方法。
［項目６］
上記パケットフロー制御方法は、
上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定された後で、上記プレロードクライアントによって、上記接続に基づいて上記プレロードサーバにハートビートメッセージを定期的に送信する段階
をさらに備える、項目５に記載のパケットフロー制御方法。
［項目７］
上記フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及び／又はアクセス制御リストに基づくフロー制御ポリシである、項目１から６のいずれか１項に記載のパケットフロー制御方法。
［項目８］
仮想マシンとホストＨｏｓｔとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、
上記フロー制御ポリシの交渉された実行者が上記ホストであると決定された場合には、上記ホストによって、上記仮想マシンからパケットを受信した後で、上記フロー制御ポリシに基づいて、受信された上記パケットに対する転送処理を実行する段階
を備える、パケットフロー制御方法。
［項目９］
仮想マシンとホストＨｏｓｔとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する上記段階は、
上記仮想マシンによって送信され、かつ、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を、上記ホストによって受信する段階と、
上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートすると決定した場合には、交渉確認インジケーションを上記仮想マシンに送信する段階であって、上記交渉確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであることを示す、段階と、
上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの上記実行をサポートしないと決定した場合には、交渉不確認インジケーションを上記仮想マシンに送信する段階であって、上記交渉不確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記ホストであることを示す、段階とを含む、
又は、
仮想マシンとホストＨｏｓｔとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する上記段階は、
上記仮想マシンによって送信され、かつ、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を、上記ホストによって受信する段階であって、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した場合には、交渉確認インジケーションを上記仮想マシンに送信する段階であって、上記交渉確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであることを示す、段階と、
上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記現在の最新バージョン又は上記事前設定されたバージョンの上記フロー制御ポリシの実行をサポートしないと決定した場合には、交渉不確認インジケーションを上記仮想マシンに送信する段階であって、上記交渉不確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記ホストであることを示す、段階とを含む、
項目８に記載のパケットフロー制御方法。
［項目１０］
仮想マシンとホストＨｏｓｔとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する上記段階は、上記ホストのプレロードサーバと上記仮想マシンのプレロードクライアントとの間で接続が確立された後で、上記接続を用いることによって上記プレロードサーバと上記プレロードクライアントとにより、上記仮想マシンと上記ホストＨｏｓｔとの間で、上記仮想マシンの上記フロー制御機能に基づいて、上記フロー制御ポリシの上記実行者を交渉する段階を含む、項目８または９に記載のパケットフロー制御方法。
［項目１１］
上記パケットフロー制御方法は、
上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定された後で、ハートビートメッセージが設定期間内に上記仮想マシンから受信されなかった場合には、上記フロー制御ポリシの上記実行者が上記ホストにスイッチされたことを示すインジケーションメッセージを、上記ホストによって上記仮想マシンに送信する段階
をさらに備える、項目８から１０のいずれか１項に記載のパケットフロー制御方法。
［項目１２］
上記フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及び／又はアクセス制御リストに基づくフロー制御ポリシである、項目８から１１のいずれか１項に記載のパケットフロー制御方法。
［項目１３］
仮想マシンであって、
上記仮想マシンとホストＨｏｓｔとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するように構成される第１の交渉ユニットと、
上記フロー制御ポリシの交渉された実行者が上記仮想マシンであると決定された場合には、上記フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定された場合には、上記転送処理されるべきパケットを上記ホストに送信するように構成され、これにより、上記ホストは、上記フロー制御ポリシに基づいて、受信された上記パケットに対する転送処理を実行する、パケット処理ユニットと、
を備える、仮想マシン。
［項目１４］
上記第１の交渉ユニットは、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信し、交渉確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定し、交渉不確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定するように具体的に構成され、上記交渉確認インジケーションは、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートすると決定した後で、上記ホストによって送信され、上記交渉不確認インジケーションは、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの上記実行をサポートしないと決定した後で、上記ホストによって送信される、
又は、
上記第１の交渉ユニットは、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信し、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、上記ホストによって送信される交渉確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定し、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記現在の最新バージョン又は上記事前設定されたバージョンの上記フロー制御ポリシの上記実行をサポートしないと決定した後で、上記ホストによって送信される交渉不確認インジケーションが受信された場合、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定するように具体的に構成され、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
上記第１の交渉ユニットは、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信し、交渉確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定し、上記実行者交渉要求に応答して上記ホストによって送信された交渉確認インジケーションが第１の設定期間内に受信されなかった場合には、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定するように具体的に構成され、上記交渉確認インジケーションは、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートすると決定した後で、上記ホストによって送信される、
又は、
上記第１の交渉ユニットは、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信し、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、上記ホストによって送信された交渉確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定し、上記実行者交渉要求に応答して上記ホストによって送信された交渉確認インジケーションが第１の設定期間内に受信されなかった場合には、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定するように具体的に構成され、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
上記第１の交渉ユニットは、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信し、交渉不確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定し、上記実行者交渉要求に応答して上記ホストによって送信された交渉不確認インジケーションが第２の設定期間内に受信されなかった場合には、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定するように具体的に構成され、上記交渉不確認インジケーションは、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートしないと決定した後で、上記ホストによって送信される、
又は、
上記第１の交渉ユニットは、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信し、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、上記ホストによって送信された交渉不確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定し、上記実行者交渉要求に応答して上記ホストによって送信された交渉不確認インジケーションが第２の設定期間内に受信されなかった場合には、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定するように具体的に構成され、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
項目１３に記載の仮想マシン。
［項目１５］
上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定された後で、上記仮想マシンは、ハートビートメッセージを上記ホストに定期的に送信するように構成される送信ユニットをさらに含む、項目１３又は１４に記載の仮想マシン。
［項目１６］
上記フロー制御ポリシは、サービス品質に基づくフロー制御ポリシ及び／又はアクセス制御リストに基づくフロー制御ポリシである、項目１３から１５のいずれか１項に記載の仮想マシン。
［項目１７］
仮想マシンと上記ホストとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉するように構成される第２の交渉ユニットと、
上記フロー制御ポリシの交渉された実行者が上記ホストであると決定された場合には、上記フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を、上記パケットを上記仮想マシンから受信した後で実行するように構成されるパケット処理ユニットと、
を備える、ホスト。
［項目１８］
上記第２の交渉ユニットは、上記仮想マシンによって送信され、かつ、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を受信し、上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートすると決定された場合には、交渉確認インジケーションを上記仮想マシンに送信し、上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの上記実行をサポートしないと決定された場合には、交渉不確認インジケーションを上記仮想マシンに送信するように具体的に構成され、上記交渉確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると示し、上記交渉不確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると示す、
又は、
上記第２の交渉ユニットは、上記仮想マシンによって送信され、かつ、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を受信し、上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定された場合には、交渉確認インジケーションを上記仮想マシンに送信し、上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記現在の最新バージョン又は上記事前設定されたバージョンの上記フロー制御ポリシの実行をサポートしないと決定された場合には、交渉不確認インジケーションを上記仮想マシンに送信するように具体的に構成され、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられ、上記交渉確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると示し、上記交渉不確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると示す、
項目１７に記載のホスト。
［項目１９］
上記パケット処理ユニットは、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定された後で、かつ、上記仮想マシンからのハートビートメッセージが設定期間内に受信されなかった場合には、上記フロー制御ポリシの上記実行者が上記ホストにスイッチされたことを示すために用いられるインジケーションメッセージを、上記仮想マシンに送信するようにさらに構成される、項目１７又は１８に記載のホスト。
［項目２０］
ハードウェア層と、
上記ハードウェア層において動作するホストＨｏｓｔと、
上記ホスト上で動作する少なくとも１つの仮想マシンと、
を備えるコンピューティングノードであって、
上記仮想マシンは、上記仮想マシンと上記ホストとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、上記フロー制御ポリシの交渉された実行者が上記仮想マシンであると決定された場合には、上記フロー制御ポリシに基づいて、転送処理されるべきパケットに対する転送処理を実行し、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定された場合には、上記転送処理されるべきパケットを上記ホストに送信するように構成され、
上記ホストは、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定された場合には、上記フロー制御ポリシに基づいて、受信されたパケットに対する転送処理を、上記パケットを上記仮想マシンから受信した後で実行するように構成される、コンピューティングノード。
［項目２１］
上記仮想マシンと上記ホストとの間で、上記仮想マシンの上記フロー制御機能に基づいて、上記フロー制御ポリシの上記実行者を交渉するために、上記仮想マシンは、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信し、交渉確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定し、交渉不確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定するように具体的に構成され、上記交渉確認インジケーションは、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートすると決定した後で、上記ホストによって送信され、上記交渉不確認インジケーションは、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの上記実行をサポートしないと決定した後で、上記ホストによって送信される、
又は、
上記仮想マシンと上記ホストとの間で、上記仮想マシンの上記フロー制御機能に基づいて、上記フロー制御ポリシの上記実行者を交渉するために、上記仮想マシンは、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信し、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、上記ホストによって送信された交渉確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定し、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記現在の最新バージョン又は上記事前設定されたバージョンの上記フロー制御ポリシの上記実行をサポートしないと決定した後で、上記ホストによって送信された交渉不確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定するように具体的に構成され、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
上記仮想マシンと上記ホストとの間で、上記仮想マシンの上記フロー制御機能に基づいて、上記フロー制御ポリシの上記実行者を交渉するために、上記仮想マシンは、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信し、交渉確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定し、上記実行者交渉要求に応答して上記ホストによって送信された交渉確認インジケーションが第１の設定期間内に受信されなかった場合には、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定するように具体的に構成され、上記交渉確認インジケーションは、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートすると決定した後で、上記ホストによって送信される、
又は、
上記仮想マシンと上記ホストとの間で、上記仮想マシンの上記フロー制御機能に基づいて、上記フロー制御ポリシの上記実行者を交渉するために、上記仮想マシンは、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信し、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、上記ホストによって送信された交渉確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定し、上記実行者交渉要求に応答して上記ホストによって送信された交渉確認インジケーションが第１の設定期間内に受信されなかった場合には、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定するように具体的に構成され、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
又は、
上記仮想マシンと上記ホストとの間で、上記仮想マシンの上記フロー制御機能に基づいて、上記フロー制御ポリシの上記実行者を交渉するために、上記仮想マシンは、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信し、交渉不確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定し、上記実行者交渉要求に応答して上記ホストによって送信された交渉不確認インジケーションが第２の設定期間内に受信されなかった場合には、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定するように具体的に構成され、上記交渉不確認インジケーションは、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートしないと決定した後で、上記ホストによって送信される、
又は、
上記仮想マシンと上記ホストとの間で、上記仮想マシンの上記フロー制御機能に基づいて、上記フロー制御ポリシの上記実行者を交渉するために、上記仮想マシンは、上記仮想マシンの上記フロー制御機能についての記述情報を含む実行者交渉要求を上記ホストに送信し、上記ホストが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した後で、上記ホストによって送信された交渉不確認インジケーションが受信された場合には、上記フロー制御ポリシの上記交渉された実行者が上記ホストであると決定し、上記実行者交渉要求に応答して上記ホストによって送信された交渉不確認インジケーションが第２の設定期間内に受信されなかった場合には、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定するように具体的に構成され、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、
項目２０に記載のコンピューティングノード。
［項目２２］
上記ホストは、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであると決定された後で、ハートビートメッセージが設定期間内に上記仮想マシンから受信されなかった場合には、上記フロー制御ポリシの上記実行者が上記ホストにスイッチされたことを示すために用いられるインジケーションメッセージを、上記仮想マシンに送信するようにさらに構成される、項目２０又は２１に記載のコンピューティングノード。
［項目２３］
プロセッサによってホストＨｏｓｔと仮想マシンとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する段階と、
上記フロー制御ポリシの交渉された実行者が上記仮想マシンである場合には、上記プロセッサによって、上記フロー制御機能に基づいて、上記仮想マシンの転送処理されるべきパケットに対する転送処理を実行する段階と、
上記フロー制御ポリシの上記交渉された実行者が上記ホストである場合には、上記プロセッサによって、上記仮想マシンの上記転送処理されるべきパケットを上記仮想マシンから上記ホストに送信し、上記プロセッサにより上記フロー制御ポリシに基づいて、上記ホストによって受信された上記転送処理されるべきパケットに対する転送処理を実行する段階と、
を備える、パケットフロー制御方法。
［項目２４］
プロセッサによってホストＨｏｓｔと仮想マシンとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する上記段階は、
上記仮想マシンによって上記ホストに送信されるべき実行者交渉要求を、上記プロセッサによって上記ホストに送信する段階であって、上記実行者交渉要求は、上記仮想マシンの上記フロー制御機能についての記述情報を含む、段階と、
上記ホストが上記実行者交渉要求を受信した後で、上記プロセッサが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートすると決定した場合には、上記ホストによって上記仮想マシンに送信されるべき交渉確認インジケーションを、上記プロセッサによって上記仮想マシンに送信する段階であって、上記交渉確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであることを示す、段階、及び／又は、上記プロセッサが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの上記実行をサポートしないと決定した場合には、上記ホストによって上記仮想マシンに送信されるべき交渉不確認インジケーションを、上記プロセッサによって上記仮想マシンに送信する段階であって、上記交渉不確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記ホストであることを示す、段階と、を含む、
又は、
プロセッサによってホストＨｏｓｔと仮想マシンとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉する上記段階は、
上記仮想マシンによって上記ホストに送信されるべき実行者交渉要求を、上記プロセッサによって上記ホストに送信する段階であって、上記実行者交渉要求は、上記仮想マシンの上記フロー制御機能についての記述情報を含み、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられる、段階と、
上記ホストが上記実行者交渉要求を受信した後で、上記プロセッサが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定した場合には、上記ホストによって上記仮想マシンに送信されるべき交渉確認インジケーションを、上記プロセッサによって上記仮想マシンに送信する段階であって、上記交渉確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであることを示す、段階、及び／又は、上記プロセッサが上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記現在の最新バージョン又は上記事前設定されたバージョンの上記フロー制御ポリシの上記実行をサポートしないと決定した場合には、上記ホストによって上記仮想マシンに送信されるべき交渉不確認インジケーションを、上記プロセッサによって上記仮想マシンに送信する段階であって、上記交渉不確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記ホストであることを示す、段階と、を含む、
項目２３に記載のパケットフロー制御方法。
［項目２５］
上記交渉確認インジケーションは、上記フロー制御ポリシを含み、
上記フロー制御ポリシに基づいて、上記仮想マシンの上記転送処理されるべきパケットに対する転送処理を実行する上記段階は、
上記交渉確認インジケーションに含まれる上記フロー制御ポリシに基づいて、上記仮想マシンの上記転送処理されるべきパケットに対する転送処理を実行する段階を含む、項目２４に記載のパケットフロー制御方法。
［項目２６］
上記方法は、
上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンである後で、上記ホストが設定期間内に上記仮想マシンからハートビートメッセージを受信しなかった場合には、上記ホストによって上記仮想マシンに送信され、かつ、上記フロー制御ポリシの上記実行者が上記ホストにスイッチされたことを示すために用いられるべきインジケーションメッセージを、上記プロセッサによって上記仮想マシンに送信する段階をさらに備える、項目２３から２５のいずれか１項に記載のパケットフロー制御方法。
［項目２７］
ストレージと、
上記ストレージに接続されるプロセッサと、
を備え、
上記プロセッサは、
ホストＨｏｓｔと仮想マシンとの間で、上記仮想マシンのフロー制御機能に基づいて、フロー制御ポリシの実行者を交渉し、
上記フロー制御ポリシの交渉された実行者が上記仮想マシンである場合には、上記フロー制御ポリシに基づいて、上記仮想マシンの転送処理されるべきパケットに対する転送処理を実行し、上記フロー制御ポリシの上記交渉された実行者が上記ホストである場合には、上記仮想マシンから上記ホストに上記仮想マシンの上記転送処理されるべきパケットを送信し、上記フロー制御ポリシに基づいて、上記ホストによって受信された上記転送処理されるべきパケットに対する転送処理を実行する
ように構成される、コンピューティングノード。
［項目２８］
上記プロセッサは、上記仮想マシンによって上記ホストに送信されるべき実行者交渉要求を、上記ホストに送信し、上記ホストが上記実行者交渉要求を受信した後で、上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの実行をサポートすると決定された場合には、上記ホストによって上記仮想マシンに送信されるべき交渉確認インジケーションを上記仮想マシンに送信する、及び／又は、上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記フロー制御ポリシの上記実行をサポートしないと決定された場合には、上記ホストによって上記仮想マシンに送信されるべき交渉不確認インジケーションを上記仮想マシンに送信するように構成され、上記実行者交渉要求は、上記仮想マシンの上記フロー制御機能についての記述情報を含み、上記交渉確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであることを示し、上記交渉不確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記ホストであることを示す、
又は、
上記プロセッサは、上記仮想マシンによって上記ホストに送信されるべき実行者交渉要求を、上記ホストに送信し、上記ホストが上記実行者交渉要求を受信した後で、上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが現在の最新バージョン又は事前設定されたバージョンのフロー制御ポリシの実行をサポートすると決定された場合には、上記ホストによって上記仮想マシンに送信されるべき交渉確認インジケーションを上記仮想マシンに送信する、及び／又は、上記フロー制御機能についての上記記述情報に従って、上記仮想マシンが上記現在の最新バージョン又は上記事前設定されたバージョンの上記フロー制御ポリシの上記実行をサポートしないと決定された場合には、上記ホストによって上記仮想マシンに送信されるべき交渉不確認インジケーションを上記仮想マシンに送信するように構成され、上記実行者交渉要求は、上記仮想マシンの上記フロー制御機能についての記述情報を含み、上記フロー制御機能についての上記記述情報は、その実行が上記仮想マシンによってサポートされるフロー制御ポリシのバージョンを記述するために用いられ、上記交渉確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンであることを示し、上記交渉不確認インジケーションは、上記フロー制御ポリシの上記交渉された実行者が上記ホストであることを示す、
項目２７に記載のコンピューティングノード。
［項目２９］
上記交渉確認インジケーションは、上記フロー制御ポリシを含み、
上記プロセッサは、交渉確認インジケーションに含まれる上記フロー制御ポリシに基づいて、上記仮想マシンの上記転送処理されるべきパケットに対する転送処理を実行するように構成される、項目２８に記載のコンピューティングノード。
［項目３０］
上記プロセッサは、上記フロー制御ポリシの上記交渉された実行者が上記仮想マシンである後で、上記ホストが設定期間内に上記仮想マシンからハートビートメッセージを受信しなかった場合には、上記ホストによって上記仮想マシンに送信され、かつ、上記フロー制御ポリシの上記実行者が上記ホストにスイッチされたことを示すために用いられるべきインジケーションメッセージを、上記仮想マシンに送信するようにさらに構成される、項目２７から２９のいずれか１項に記載のコンピューティングノード。
【図１】
0006336602.tif 000002
【図２】
0006336602.tif 000003
【図３】
0006336602.tif 000004
【図４−ａ】
0006336602.tif 000005
【図４−ｂ】
0006336602.tif 000006
【図５−ａ】
0006336602.tif 000007
【図５−ｂ】
0006336602.tif 000008
【図５−ｃ】
0006336602.tif 000009
【図６−ａ】
0006336602.tif 000010
【図６−ｂ】
0006336602.tif 000011
【図７】
0006336602.tif 000012
【図８】
0006336602.tif 000013
【図９】
0006336602.tif 000014
【図１０】
0006336602.tif 000015
【図１１】
0006336602.tif 000016
【図１２】
0006336602.tif 000017
【図１３】
0006336602.tif 000018