JP7745795B1 - パケット転送システム及びパケット転送方法 - Google Patents
パケット転送システム及びパケット転送方法Info
- Publication number
- JP7745795B1 JP7745795B1 JP2025024744A JP2025024744A JP7745795B1 JP 7745795 B1 JP7745795 B1 JP 7745795B1 JP 2025024744 A JP2025024744 A JP 2025024744A JP 2025024744 A JP2025024744 A JP 2025024744A JP 7745795 B1 JP7745795 B1 JP 7745795B1
- Authority
- JP
- Japan
- Prior art keywords
- packet
- pod
- terminal device
- address
- map
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】端末装置とサーバとの間で、通信の一貫性及び効率性を向上しつつ、パケット転送を高速化して、超低遅延配信を実現する。
【解決手段】パケット転送システム1は、端末装置2と、QUICプロトコルを利用する複数のポッド3aを有する冗長化したサーバ3と、ロードバランサ4と、を備える。ロードバランサは、ユーザー空間11a及びカーネル空間11bの間でデータを共有可能なマップ17を有し、サーバ3に存在する各ポッド3aについて、識別子を含むキーとIPアドレスを含む値とからなる第1情報を第1マップ17aに記録し、端末装置2からパケットを受信したとき、第1マップ17aを参照して、当該パケットのコネクションIDに識別子が含まれる場合、当該識別子に対応するIPアドレスのポッド3aを宛先とし、当該パケットのコネクションIDに識別子が含まれない場合、最もCPU利用率の低いポッド3aを宛先としてパケットを転送する。
【選択図】図1
【解決手段】パケット転送システム1は、端末装置2と、QUICプロトコルを利用する複数のポッド3aを有する冗長化したサーバ3と、ロードバランサ4と、を備える。ロードバランサは、ユーザー空間11a及びカーネル空間11bの間でデータを共有可能なマップ17を有し、サーバ3に存在する各ポッド3aについて、識別子を含むキーとIPアドレスを含む値とからなる第1情報を第1マップ17aに記録し、端末装置2からパケットを受信したとき、第1マップ17aを参照して、当該パケットのコネクションIDに識別子が含まれる場合、当該識別子に対応するIPアドレスのポッド3aを宛先とし、当該パケットのコネクションIDに識別子が含まれない場合、最もCPU利用率の低いポッド3aを宛先としてパケットを転送する。
【選択図】図1
Description
本発明は、超低遅延配信でパケットを転送するパケット転送システム及びパケット転送方法に関する。
従来から、パケット転送システムでは、通信障害を回避するために、パケットを配信するサーバを冗長化し、クライアントである端末装置が適切なサーバと接続することが求められている。
例えば、特許文献1では、通信システムに含まれる中央局パケット冗長化装置は、複数のパケット処理装置の負荷が平均化されるように、受信したパケットを転送する負荷分散装置と、負荷分散装置によって転送されたパケットを処理する複数のパケット処理装置と、複数のパケット処理装置から受信したパケットを転送するスイッチとを備える。負荷分散装置は、移動局の情報処理装置の第1の部分に基づいて、パケットの転送先を決定し、決定された転送先のパケット処理装置にパケットを転送する。
パケット転送システムでは、サーバがリアルタイムに配信を行うために、クライアントである端末装置とサーバとの間で、超低遅延配信でパケットを転送することが求められている。例えば、パケット転送システムは、サーバにQUICプロトコルを適用し、UDP(User Datagram Protocol)を用いて高速化しつつ、TCP(Transmission Control Protocol)のような通信の信頼性を提供してパケット転送を行うものがある。パケット転送システムでは、QUICプロトコルを利用した超低遅延配信において、サーバが冗長化されている場合、複数の端末装置と冗長化サーバとの間で、適切な接続を行って各パケットを転送する必要がある。
従来のパケット転送システムには、超低遅延配信のために、L7アプリケーション層でロードバランサ(負荷分散装置)を実装するものがある。しかしながら、このようなロードバランサでは、処理速度に限界があり、CPUコア数を増大しても、超低遅延配信を実現することが困難であった。
また、パケット転送システムでは、QUICプロトコルを利用した超低遅延配信において、通信の一貫性及び効率性を保つために、端末装置は、最初にパケットを発行したサーバのノードと、その後も正確にルーティングされることが重要である。具体的には、端末装置が送信したリクエストに対して、サーバはコネクションIDを含むレスポンスを応答し、その後、端末装置は、当該コネクションIDを発行したサーバと接続する必要がある。しかしながら、パケット転送システムでは、端末装置が当該サーバと接続する手法や、また、サーバがレスポンスを応答する端末装置を特定する手法が明確化されておらず、困難であり、端末装置とサーバとが一貫性を保って接続することが困難であった。
そこで、本発明は上記事情を考慮し、端末装置とサーバとの間で、通信の一貫性及び効率性を向上しつつ、パケット転送を高速化して、超低遅延配信を実現することができるパケット転送システム及びパケット転送方法を提供することを目的とする。
上記課題を解決するために、本発明のパケット転送システムは、端末装置と、QUICプロトコルを利用してパケット処理を行う、1つ以上のコンテナからなる複数のポッドを定義して冗長化したサーバと、前記端末装置と前記サーバとの間でパケット転送を行うロードバランサと、を備え、前記ロードバランサは、ユーザー空間及びカーネル空間を有するオペレーティングシステムで動作し、前記ユーザー空間及び前記カーネル空間の間でデータを共有可能なマップを有し、前記サーバに存在する前記各ポッドについて、識別子を含むキーとIPアドレスを含む値とからなる第1情報を、前記マップである第1マップに記録し、前記端末装置からパケットを受信したとき、前記第1マップを参照して、当該パケットに設定されたコネクションIDに、前記識別子が含まれる場合、当該識別子に対応する前記IPアドレスの前記ポッドを宛先として前記パケットを転送し、当該パケットに設定されたコネクションIDに前記識別子が含まれない場合、前記サーバに存在する前記複数のポッドのうち、最もCPU利用率の低い前記ポッドを宛先として前記パケットを転送することを特徴とする。
また、上記課題を解決するために、本発明のパケット転送方法は、端末装置と、QUICプロトコルを利用してパケット処理を行う、1つ以上のコンテナからなる複数のポッドを定義して冗長化したサーバと、の間でパケット転送を行うパケット転送方法であって、ユーザー空間及びカーネル空間を有するオペレーティングシステムで動作し、前記ユーザー空間及び前記カーネル空間の間でデータを共有可能なマップを有するロードバランサによって、前記サーバに存在する前記各ポッドについて、識別子を含むキーとIPアドレスを含む値とからなる第1情報を、前記マップである第1マップに記録し、前記端末装置からパケットを受信したとき、前記第1マップを参照して、当該パケットに設定されたコネクションIDに、前記識別子が含まれる場合、当該識別子に対応する前記IPアドレスの前記ポッドを宛先として前記パケットを転送し、当該パケットに設定されたコネクションIDに前記識別子が含まれない場合、前記サーバに存在する前記複数のポッドのうち、最もCPU利用率の低い前記ポッドを宛先として前記パケットを転送することを特徴とする。
本発明によれば、端末装置とサーバとの間で、通信の一貫性及び効率性を向上しつつ、パケット転送を高速化して、超低遅延配信を実現することができるパケット転送システム及びパケット転送方法を提供することが可能となる。
先ず、図1を参照しながら、本発明の実施形態に係るパケット転送システム1の全体の構成について説明する。図1に示されるように、パケット転送システム1は、クライアントである1つ以上の端末装置2と、配信等を行うサーバ3と、端末装置2とサーバ3との間でパケット転送を行うロードバランサ4と、を備える。端末装置2とロードバランサ4とは、インターネット等のネットワークを介して通信可能に接続され、サーバ3とロードバランサ4とは、インターネット等のネットワークを介して通信可能に接続されている。
本実施形態では、パケット転送システム1は、UDP(User Datagram Protocol)をベースとしたQUIC(Quick UDP Internet Connections)プロトコルを適用する。QUICプロトコルで利用されるQUICパケット構造には、宛先を示すコネクションIDが含まれる。本実施形態では、端末装置2からサーバ3に向けて送信されるQUICパケット構造のコネクションIDは、宛先となるサーバ3のポッド3aを識別する識別子を格納するための識別子部分を含む。
端末装置2は、サーバ3が提供するサービスを利用する、いわゆるクライアントである。図1では、パケット転送システム1が2つの端末装置2を有する例を図示しているが、パケット転送システム1は、1つ又は3つ以上の端末装置2を有してもよい。
端末装置2は、ロードバランサ4を介してサーバ3に向けて、QUICパケット構造を含むUDPパケットを送信する。例えば、端末装置2は、サーバ3からサービスの提供を受けるために、リクエストパケットを作成してロードバランサ4を介してサーバ3に向けて送信し、リクエストパケットにサーバ3が応答したレスポンスパケットをロードバランサ4を介してサーバ3から受信する。
端末装置2は、当該端末装置2のIPアドレス及び当該端末装置2のポートを含む送信元情報をリクエストパケットに設定し、また、ロードバランサ4のIPアドレス及びロードバランサ4のリスンポート(待ち受けポート)を含む宛先情報をリクエストパケットに設定する。端末装置2は、ポッド3aが自身の宛先となるポッド3aを示すコネクションIDを発行する前は、ランダムな値のコネクションIDをリクエストパケットに設定し、ポッド3aが自身の宛先となるポッド3aを示すコネクションIDを発行した後は、当該ポッド3aの識別子を含むコネクションIDをリクエストパケットに設定する。
なお、端末装置2は、ロードバランサ4のIPアドレス及びロードバランサ4のリスンポートを含む送信元情報と、当該端末装置2のIPアドレス及び当該端末装置2のポートを含む宛先情報を有するレスポンスパケットを受信する。
サーバ3は、超低遅延配信でパケット転送を実現するために、QUICプロトコルを適用して動作する、いわゆるQUICサーバであり、QUICプロトコルを利用してパケット処理を行う。
サーバ3は、Kubernetes(登録商標)等のオーケストレーションシステム(コンテナ管理システム)を適用して、1つ以上のコンテナからなるコンテナ実行部として複数のポッド3aを定義している。図1では、サーバ3が2つのポッド3aを有する例を図示しているが、サーバ3は、3つ以上の多数のポッド3aを有してよい。サーバ3は、コンテナ実行部である複数のポッド3aがそれぞれ端末装置2との間でパケットを処理する複数のパケット処理部として機能するように、パケット処理機能を冗長化して構成されている。サーバ3では、1つの端末装置2からパケット通信のリクエストがあった場合に、複数のポッド3aのうち何れか1つのポッド3aが、当該端末装置2と1対1で通信を行ってパケット処理部として機能する。
サーバ3は、ロードバランサ4を介して端末装置2に向けて、QUICパケット又はQUICパケット構造を含むUDPパケットを送信する。例えば、サーバ3は、端末装置2から要求を受け付けるために、ロードバランサ4を介して端末装置2からリクエストパケットを受信し、リクエストパケットに応答するレスポンスパケットを作成してロードバランサ4を介して端末装置2に向けて送信する。
サーバ3は、当該サーバ3の送信元のポッド3aのIPアドレス及び当該サーバ3のポートを含む送信元情報をレスポンスパケットに設定し、また、ロードバランサ4のIPアドレス及び端末装置2のポートを含む宛先情報をレスポンスパケットに設定する。なお、サーバ3は、ロードバランサ4のIPアドレス及び当該端末装置2のポートを含む送信元情報と、当該サーバ3の宛先のポッド3aのIPアドレス及び当該サーバ3のリスンポートを含む宛先情報を有するリクエストパケットを受信する。サーバ3は、ロードバランサ4と同じリスンポートを有する。
また、サーバ3は、複数のポッド3aに関する情報をロードバランサ4に提供可能なAPI(Application Programming Interface)を有する。例えば、サーバ3は、サーバ3に存在する複数のポッド3aのそれぞれのポッド名及びIPアドレスを提供するAPIや、サーバ3に存在する複数のポッド3aのそれぞれのCPU利用率及びポッド名又はIPアドレスを提供するAPIを有する。
ロードバランサ4は、例えば、ハードウェアとして、制御部10と、記憶部11と、通信部12とを備えて構成される。
制御部10は、ロードバランサ4の各部及び各種機能を統括制御するものであり、CPU(Central Processing Unit)等のコンピュータで構成され、記憶部11及び通信部12に接続されている。記憶部11は、ROM(Read Only Memory)やRAM(Random Access Memory)などのメモリや、ハードディスクなどの記録媒体を有して構成され、ロードバランサ4の各部及び各種機能を制御するためのプログラムやデータを記憶する。通信部12は、ロードバランサ4がネットワークに接続するためのインタフェースであり、即ち、ロードバランサ4を端末装置2やサーバ3とネットワークを介して接続する。
制御部10は、記憶部11に記憶されたプログラムやデータに基づいて演算処理を実行することにより、ロードバランサ4の各種構成要素及び各種機能を制御する。例えば、制御部10は、記憶部11に記憶されたプログラムを実行することにより、第1マップ作成部20、パケット判定部21、第1パケット書換部22、第2マップ作成部23、第2パケット書換部24として動作する。なお、第1マップ作成部20、パケット判定部21、第1パケット書換部22、第2マップ作成部23、第2パケット書換部24は、本発明に係るパケット転送方法の第1マップ作成工程、パケット判定工程、第1パケット書換工程、第2マップ作成工程、第2パケット書換工程を実現する。
ロードバランサ4は、記憶部11にユーザー空間11a及びカーネル空間11bを有するLinux(登録商標)等のオペレーティングシステムで動作する。図1では、ユーザー空間11a及びカーネル空間11bが記憶部11とは別個に図示されているが、ユーザー空間11a及びカーネル空間11bは、記憶部11において展開される。
ロードバランサ4は、golang等のプログラミング言語で実装されてユーザー空間11aで動作するgolangアプリケーション等のユーザー空間アプリケーション15と、カーネル空間11bにプログラムを挿入し実行するためのeBPF(extended Berkeley Packet Filter)等の技術を用いて実装されてカーネル空間11bで動作するeBPFプログラム等のカーネル空間プログラム16とを有する。
ロードバランサ4は、ユーザー空間11a及びカーネル空間11bの間でデータを共有可能なeBPFマップ等のマップ17を有し、マップ17は、eBPF等の技術によって利用可能なデータ構造で構成され、カーネル空間プログラム16によって、ユーザー空間11aのユーザー空間アプリケーション15とカーネル空間11bのカーネル空間プログラム16との間でデータのやり取りを行うことを可能とする。
ロードバランサ4は、上記したマップ17として、サーバ3に存在する複数のポッド3aのそれぞれに関する第1情報を記録する第1マップ17aと、端末装置2とサーバ3のポッド3aとを紐付けるための第2情報を記録する第2マップ17bと、を記憶部11に有する。
第1マップ作成部20は、ユーザー空間アプリケーション15によってサーバ3のAPIを使用し、所定のタイミング毎に、サーバ3から複数のポッド3aに関する情報を取得し、当該情報に基づく第1情報によって第1マップ17aを作成又は更新する。第1マップ作成部20は、所定のタイミングとして、所定の経過時間(例えば、10秒)を設定する。
例えば、第1マップ作成部20は、サーバ3に存在する複数のポッド3aのそれぞれのポッド名及びIPアドレスを取得し、各ポッド3aのポッド名から各ポッド3aの識別子を取得し、具体的には、ポッド名の下5文字を識別子(5バイト)として取得する。そして、第1マップ作成部20は、サーバ3に存在する各ポッド3aについて、識別子を含むキー(key)とIPアドレスを含む値(value)とからなる第1情報を、第1マップ17aに記録する。
また、第1マップ作成部20は、サーバ3に存在する複数のポッド3aのそれぞれのCPU利用率を取得し、複数のポッド3aのうち、最もCPU利用率の低いポッド3aを特定ポッド3aとする。そして、第1マップ作成部20は、特定ポッド3aについて、固定文字列を含むキー(key)とIPアドレスを含む値(value)とからなる第1情報を、第1マップ17aに記録する。
パケット判定部21は、端末装置2又はサーバ3からパケットを受信し、カーネル空間プログラム16によって、ロードバランサ4が受信したパケットが、端末装置2からのパケットかサーバ3からのパケットかを判定する。
例えば、パケット判定部21は、受信したパケットがUDPパケットか否かを判定し、UDPパケットである場合には、更に、パケット判定部21は、UDPパケットを分解してUDPヘッダを取得し、宛先ポートがロードバランサ4のリスンポートである場合に、端末装置2からのパケットと判定し、それ以外である場合に、サーバ3からのパケットと判定する。
第1パケット書換部22は、ロードバランサ4が受信したパケットが端末装置2からのパケットである場合に、カーネル空間プログラム16によって、当該パケットの宛先となるサーバ3のポッド3aを判定して端末装置2とポッド3aとを紐付けし、当該パケットの宛先情報を、宛先となるサーバ3のポッド3aの宛先情報に書き換える。
例えば、第1パケット書換部22は、端末装置2から、当該端末装置2のIPアドレス及び当該端末装置2のポートを含む送信元情報が設定されたリクエストパケットを受信する。
第1パケット書換部22は、端末装置2からのリクエストパケットのQUICパケット構造からコネクションIDを取得し、コネクションIDから、宛先となるサーバ3のポッド3aを識別する識別子を格納するための識別子部分を抽出する。また、第1パケット書換部22は、第1マップ17aを参照して、当該識別子部分に示される識別子をキーとするポッド3aの第1情報が存在するか否かを判定する。
第1パケット書換部22は、当該識別子部分をキーとするポッド3aの第1情報が第1マップ17aに存在する場合、当該第1情報の値に示されるポッド3aのIPアドレスを取得する。また、第1パケット書換部22は、当該識別子部分をキーとするポッド3aの第1情報が第1マップ17aに存在しない場合、第1マップ17aを参照して、固定文字列をキーとする最もCPU利用率の低い特定ポッド3aの第1情報を取得し、当該第1情報の値に示される特定ポッド3aのIPアドレスを取得する。
そして、第1パケット書換部22は、端末装置2からのリクエストパケットの宛先情報を、取得したポッド3aのIPアドレス及びサーバ3のリスンポートを含む宛先情報に書き換える。また、第1パケット書換部22は、端末装置2からのリクエストパケットの送信元情報を、ロードバランサ4のIPアドレス及び端末装置2のポートを含む送信元情報に書き換える。第1パケット書換部22は、書き換えたリクエストパケットを、その宛先情報に基づくサーバ3のポッド3aへと送信する。
第2マップ作成部23は、端末装置2からパケットを受信したときに第1パケット書換部22が当該パケットの宛先となるサーバ3のポッド3aを判定した場合に、カーネル空間プログラム16によって、パケットの送信元情報や宛先情報に基づく第2情報によって第2マップ17bを作成又は更新する。例えば、第2マップ作成部23は、書換後の宛先情報のポッド3aのIPアドレス及び書換前の送信元情報の端末装置2のポートを含むキー(key)と、書換前の送信元情報の端末装置2のIPアドレス、書換後の宛先情報のポッド3aのIPアドレス及び書換前の送信元情報の端末装置2のポートを含む値(value)とからなる第2情報を第2マップ17bに記録する。
第2パケット書換部24は、ロードバランサ4が受信したパケットがサーバ3のポッド3aからのパケットである場合に、カーネル空間プログラム16によって、当該パケットの宛先となる端末装置2を判定してサーバ3のポッド3aと端末装置2とを紐付けし、当該パケットの宛先情報を、宛先となる端末装置2の宛先情報に書き換える。
例えば、第2パケット書換部24は、サーバ3から、当該サーバ3の送信元のポッド3aのIPアドレス及び当該サーバ3のポートを含む送信元情報が設定されたレスポンスパケットを受信する。第2パケット書換部24は、第2マップ17bを参照して、送信元情報のポッド3aのIPアドレスと端末装置2のポートとをキーとする第2情報を取得し、当該第2情報の値に示される端末装置2のIPアドレス及び端末装置2のポートを取得する。
そして、第2パケット書換部24は、サーバ3からのレスポンスパケットの宛先情報を、取得した端末装置2のIPアドレス及び端末装置2のポートを含む宛先情報に書き換える。また、第2パケット書換部24は、サーバ3からのレスポンスパケットの送信元情報を、ロードバランサ4のIPアドレス及びロードバランサ4のポートを含む送信元情報に書き換える。第2パケット書換部24は、書き換えたレスポンスパケットを、その宛先情報に基づく端末装置2へと送信する。
次に、パケット転送システム1のロードバランサ4によるパケット転送の動作例を、図2~図4のフローチャートを参照しながら説明する。
先ず、ロードバランサ4がパケットを受信すると(ステップS1)、パケット判定部21が、受信したパケットがUDPパケット否かを判定する(ステップS2)。
受信したパケットがUDPパケットでない場合(ステップS2:No)、本処理対象外として通常処理を行って終了する。
受信したパケットがUDPパケットである場合(ステップS2:Yes)、パケット判定部21は、UDPパケットのUDPヘッダに示される宛先ポートがロードバランサ4のリスンポートであるか否かを判定する(ステップS4)。
宛先ポートがロードバランサ4のリスンポートでない場合(ステップS4:No)、パケット判定部21は、受信したパケットがサーバ3からのレスポンスパケットであると判定し、レスポンスパケット処理(ステップS3)に移行する。
宛先ポートがロードバランサ4のリスンポートである場合(ステップS4:Yes)、パケット判定部21は、受信したパケットが端末装置2からのリクエストパケットであると判定し、リクエストパケット処理(ステップS5)に移行する。
次に、端末装置2からのリクエストパケット処理(ステップS5)について図3のフローチャートを参照しながら説明する。
先ず、第1パケット書換部22は、リクエストパケットのコネクションIDから、サーバ3のポッド3aの識別子部分を抽出する(ステップS11)。
また、第1パケット書換部22は、第1マップ17aを参照して、当該識別子部分に示される識別子をキーとするポッド3aの第1情報が存在するか否かを判定する(ステップS12)。
コネクションIDに含まれる識別子をキーとするポッド3aの第1情報が第1マップ17aに存在する場合(ステップS12:Yes)、第1パケット書換部22は、当該第1情報から宛先となるポッド3aのIPアドレスを取得する(ステップS13)。
コネクションIDに含まれる識別子をキーとするポッド3aの第1情報が第1マップ17aに存在しない場合(ステップS12:No)、第1パケット書換部22は、第1マップ17aを参照して、固定文字列をキーとする最もCPU利用率の低い特定ポッド3aの第1情報から特定ポッド3aのIPアドレスを取得する(ステップS14)。
第1パケット書換部22は、リクエストパケットの宛先情報を、ステップS13又はステップS14で取得したポッド3a又は特定ポッド3aのIPアドレス及びサーバ3のリスンポートを含む宛先情報に書き換える(ステップS15)。また、第1パケット書換部22は、リクエストパケットの送信元情報を、ロードバランサ4のIPアドレス及び端末装置2のポートを含む送信元情報に書き換える(ステップS16)。
なお、第2マップ作成部23は、宛先のポッド3aの情報と送信元の端末装置2の情報とからなる第2情報を第2マップ17bに記録する(ステップS17)。具体的には、第2マップ作成部23は、書換後の宛先情報のポッド3aのIPアドレス及び書換前の送信元情報の端末装置2のポートを含むキーと、書換前の送信元情報の端末装置2のIPアドレス、書換後の宛先情報のポッド3aのIPアドレス及び書換前の送信元情報の端末装置2のポートを含む値とからなる第2情報を第2マップ17bに記録する。
第1パケット書換部22は、書き換えたリクエストパケットを、その宛先情報に基づくサーバ3のポッド3aへと送信する(ステップS18)。
次に、サーバ3からのレスポンスパケット処理(ステップS3)について図4のフローチャートを参照しながら説明する。
先ず、第2パケット書換部24は、第2マップ17bを参照して、レスポンスパケットの送信元情報のポッド3aのIPアドレスと端末装置2のポートとをキーとする第2情報を取得し、当該第2情報から宛先となる端末装置2のIPアドレス及び端末装置2のポートを取得する(ステップS21)。
第2パケット書換部24は、レスポンスパケットの宛先情報を、ステップS21で取得した端末装置2のIPアドレス及び端末装置2のポートを含む宛先情報に書き換える(ステップS22)。また、第2パケット書換部24は、レスポンスパケットの送信元情報を、ロードバランサ4のIPアドレス及びロードバランサ4のポートを含む送信元情報に書き換える(ステップS23)。
第2パケット書換部24は、書き換えたレスポンスパケットを、その宛先情報に基づく端末装置2へと送信する(ステップS24)。
本実施形態では、上述のように、パケット転送システム1は、端末装置2と、QUICプロトコルを利用してパケット処理を行う、1つ以上のコンテナからなる複数のポッド3aを定義して冗長化したサーバ3と、端末装置2とサーバ3との間でパケット転送を行うロードバランサ4と、を備え、ロードバランサ4は、ユーザー空間11a及びカーネル空間11bを有するオペレーティングシステムで動作し、ユーザー空間11a及びカーネル空間11bの間でデータを共有可能なマップ17を有し、サーバ3に存在する各ポッド3aについて、識別子を含むキーとIPアドレスを含む値とからなる第1情報を、マップ17である第1マップ17aに記録し、端末装置2からパケットを受信したとき、第1マップ17aを参照して、当該パケットに設定されたコネクションIDに、識別子が含まれる場合、当該識別子に対応するIPアドレスのポッド3aを宛先としてパケットを転送し、当該パケットに設定されたコネクションIDに識別子が含まれない場合、サーバ3に存在する複数のポッド3aのうち、最もCPU利用率の低いポッド3aを宛先としてパケットを転送する。
換言すれば、本発明のパケット転送方法は、端末装置2と、QUICプロトコルを利用してパケット処理を行う、1つ以上のコンテナからなる複数のポッド3aを定義して冗長化したサーバ3と、の間でパケット転送を行うパケット転送方法であって、ユーザー空間11a及びカーネル空間11bを有するオペレーティングシステムで動作し、ユーザー空間11a及びカーネル空間11bの間でデータを共有可能なマップ17を有するロードバランサ4によって、サーバ3に存在する各ポッド3aについて、識別子を含むキーとIPアドレスを含む値とからなる第1情報を、マップ17である第1マップ17aに記録し、端末装置2からパケットを受信したとき、第1マップ17aを参照して、当該パケットに設定されたコネクションIDに、識別子が含まれる場合、当該識別子に対応するIPアドレスのポッド3aを宛先としてパケットを転送し、当該パケットに設定されたコネクションIDに識別子が含まれない場合、サーバ3に存在する複数のポッド3aのうち、最もCPU利用率の低いポッド3aを宛先としてパケットを転送する。
このような構成により、本実施形態によれば、QUICプロトコルを適用するサーバ3において冗長化された複数のポッド3aによって超低遅延配信を行う場合に、端末装置2とパケット転送を行っていたポッド3aがある場合には、当該ポッド3aを宛先とし、端末装置2とパケット転送を行っていたポッド3aがない場合には、CPU利用率の低いポッド3aを宛先とするため、高速にパケット転送を行うことができる。このように、本発明のパケット転送システム1によれば、ロードバランサ4によって、端末装置2からの宛先となるポッド3aが明確化し、端末装置2とサーバ3との間で、通信の一貫性及び効率性を向上しつつ、パケット転送を高速化して、超低遅延配信を実現することができる。
また、本実施形態のパケット転送システム1において、ロードバランサ4は、端末装置2からパケットを受信してポッド3aを宛先として転送するとき、当該ポッド3aのIPアドレス及び当該端末装置2のポートを含むキーと、当該端末装置2のIPアドレス、当該ポッド3aのIPアドレス及び当該端末装置2のポートを含む値とからなる第2情報を、マップ17である第2マップ17bに記録し、当該ポッド3aからパケットを受信したとき、当該パケットに設定された送信元情報から当該ポッド3aのIPアドレスを取得し、第2マップ17bを参照して、当該ポッド3aのIPアドレスに対応する当該端末装置2のIPアドレスを宛先としてパケットを転送する。
このような構成により、本実施形態によれば、端末装置2からのリクエストパケットに応答してサーバ3がレスポンスパケットを送信する場合に、宛先となる端末装置2のIPアドレスを容易且つ迅速に特定することができる。このように、本発明のパケット転送システム1によれば、ロードバランサ4によって、サーバ3からの宛先となる端末装置2が明確化し、端末装置2とサーバ3との間で、通信の一貫性及び効率性を向上しつつ、パケット転送を高速化して、超低遅延配信を実現することができる。
なお、上記した実施形態では、パケット転送システム1は、リクエストパケットの送信元やレスポンスパケットの宛先を、端末装置2のIPアドレスやポートとする例を説明したが、本発明はこの例に限定されず。リクエストパケットの送信元やレスポンスパケットの宛先を、端末装置2に接続されたゲートフェイのIPアドレスやポートとしてもよい。
本発明は、請求の範囲及び明細書全体から読み取ることのできる発明の要旨又は思想に反しない範囲で適宜変更可能であり、そのような変更を伴うパケット転送システム及びパケット転送方法もまた本発明の技術思想に含まれる。
1 パケット転送システム
2 端末装置
3 サーバ
3a ポッド
4 ロードバランサ
10 制御部
11 記憶部
11a ユーザー空間
11b カーネル空間
12 通信部
15 ユーザー空間アプリケーション
16 カーネル空間プログラム
17 マップ
17a 第1マップ
17b 第2マップ
20 第1マップ作成部
21 パケット判定部
22 第1パケット書換部
23 第2マップ作成部
24 第2パケット書換部
2 端末装置
3 サーバ
3a ポッド
4 ロードバランサ
10 制御部
11 記憶部
11a ユーザー空間
11b カーネル空間
12 通信部
15 ユーザー空間アプリケーション
16 カーネル空間プログラム
17 マップ
17a 第1マップ
17b 第2マップ
20 第1マップ作成部
21 パケット判定部
22 第1パケット書換部
23 第2マップ作成部
24 第2パケット書換部
Claims (4)
- 端末装置と、
QUICプロトコルを利用してパケット処理を行う、1つ以上のコンテナからなる複数のポッドを定義して冗長化したサーバと、
前記端末装置と前記サーバとの間でパケット転送を行うロードバランサと、を備え、
前記ロードバランサは、ユーザー空間及びカーネル空間を有するオペレーティングシステムで動作し、前記ユーザー空間及び前記カーネル空間の間でデータを共有可能なマップを有し、
前記サーバに存在する前記各ポッドについて、識別子を含むキーとIPアドレスを含む値とからなる第1情報を、前記マップである第1マップに記録し、
前記端末装置からパケットを受信したとき、前記第1マップを参照して、当該パケットに設定されたコネクションIDに、前記識別子が含まれる場合、当該識別子に対応する前記IPアドレスの前記ポッドを宛先として前記パケットを転送し、当該パケットに設定されたコネクションIDに前記識別子が含まれない場合、前記サーバに存在する前記複数のポッドのうち、最もCPU利用率の低い前記ポッドを宛先として前記パケットを転送することを特徴とするパケット転送システム。 - 前記ロードバランサは、前記端末装置からパケットを受信して前記ポッドを宛先として転送するとき、当該ポッドのIPアドレス及び当該端末装置のポートを含むキーと、当該端末装置のIPアドレス、当該ポッドのIPアドレス及び当該端末装置のポートを含む値とからなる第2情報を、前記マップである第2マップに記録し、
当該ポッドからパケットを受信したとき、当該パケットに設定された送信元情報から当該ポッドのIPアドレスを取得し、前記第2マップを参照して、当該ポッドのIPアドレスに対応する当該端末装置のIPアドレスを宛先として前記パケットを転送することを特徴とする請求項1に記載のパケット転送システム。 - 端末装置と、QUICプロトコルを利用してパケット処理を行う、1つ以上のコンテナからなる複数のポッドを定義して冗長化したサーバと、の間でパケット転送を行うパケット転送方法であって、
ユーザー空間及びカーネル空間を有するオペレーティングシステムで動作し、前記ユーザー空間及び前記カーネル空間の間でデータを共有可能なマップを有するロードバランサによって、
前記サーバに存在する前記各ポッドについて、識別子を含むキーとIPアドレスを含む値とからなる第1情報を、前記マップである第1マップに記録し、
前記端末装置からパケットを受信したとき、前記第1マップを参照して、当該パケットに設定されたコネクションIDに、前記識別子が含まれる場合、当該識別子に対応する前記IPアドレスの前記ポッドを宛先として前記パケットを転送し、当該パケットに設定されたコネクションIDに前記識別子が含まれない場合、前記サーバに存在する前記複数のポッドのうち、最もCPU利用率の低い前記ポッドを宛先として前記パケットを転送することを特徴とするパケット転送方法。 - 前記ロードバランサによって、前記端末装置からパケットを受信して前記ポッドを宛先として転送するとき、当該ポッドのIPアドレス及び当該端末装置のポートを含むキーと、当該端末装置のIPアドレス、当該ポッドのIPアドレス及び当該端末装置のポートを含む値とからなる第2情報を、前記マップである第2マップに記録し、
当該ポッドからパケットを受信したとき、当該パケットに設定された送信元情報から当該ポッドのIPアドレスを取得し、前記第2マップを参照して、当該ポッドのIPアドレスに対応する当該端末装置のIPアドレスを宛先として前記パケットを転送することを特徴とする請求項3に記載のパケット転送方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2025024744A JP7745795B1 (ja) | 2025-02-19 | 2025-02-19 | パケット転送システム及びパケット転送方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2025024744A JP7745795B1 (ja) | 2025-02-19 | 2025-02-19 | パケット転送システム及びパケット転送方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP7745795B1 true JP7745795B1 (ja) | 2025-09-29 |
Family
ID=97214678
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2025024744A Active JP7745795B1 (ja) | 2025-02-19 | 2025-02-19 | パケット転送システム及びパケット転送方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP7745795B1 (ja) |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2020096357A (ja) * | 2018-12-10 | 2020-06-18 | エスアーペー エスエー | コンテナオーケストレーションサービスを使用した動的ルーティング |
| US20230073891A1 (en) * | 2021-09-09 | 2023-03-09 | Beijing Bytedance Network Technology Co., Ltd. | Multifunctional application gateway for security and privacy |
| US20230198964A1 (en) * | 2021-12-16 | 2023-06-22 | Cisco Technology, Inc. | Encrypted data packet forwarding |
| JP2024504885A (ja) * | 2021-12-30 | 2024-02-02 | 17Live株式会社 | ストリーミングデータアクセスのためのシステム、方法、及びコンピュータ可読媒体 |
| JP2025523118A (ja) * | 2022-07-19 | 2025-07-17 | 京▲東▼科技信息技▲術▼有限公司 | マルチクラスタアクセス方法およびシステム |
-
2025
- 2025-02-19 JP JP2025024744A patent/JP7745795B1/ja active Active
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2020096357A (ja) * | 2018-12-10 | 2020-06-18 | エスアーペー エスエー | コンテナオーケストレーションサービスを使用した動的ルーティング |
| US20230073891A1 (en) * | 2021-09-09 | 2023-03-09 | Beijing Bytedance Network Technology Co., Ltd. | Multifunctional application gateway for security and privacy |
| US20230198964A1 (en) * | 2021-12-16 | 2023-06-22 | Cisco Technology, Inc. | Encrypted data packet forwarding |
| JP2024504885A (ja) * | 2021-12-30 | 2024-02-02 | 17Live株式会社 | ストリーミングデータアクセスのためのシステム、方法、及びコンピュータ可読媒体 |
| JP2025523118A (ja) * | 2022-07-19 | 2025-07-17 | 京▲東▼科技信息技▲術▼有限公司 | マルチクラスタアクセス方法およびシステム |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7363347B2 (en) | Method and system for reestablishing connection information on a switch connected to plural servers in a computer network | |
| US8892768B2 (en) | Load balancing apparatus and load balancing method | |
| US7730189B2 (en) | Network-initiated session recovery | |
| US7212527B2 (en) | Method and apparatus for communicating using labeled data packets in a network | |
| US7606929B2 (en) | Network load balancing with connection manipulation | |
| US7899047B2 (en) | Virtual network with adaptive dispatcher | |
| EP2088791B1 (en) | Method, system and device for increasing multimedia messaging service system capacity | |
| RU2464722C2 (ru) | Способ, устройство и система для распределения сообщений | |
| CN112631788B (zh) | 数据传输方法及数据传输服务器 | |
| NO331320B1 (no) | Balansering av nettverksbelastning ved bruk av informasjon om vertsmaskin-status | |
| CN112491717A (zh) | 一种服务路由方法及装置 | |
| US7483980B2 (en) | Method and system for managing connections in a computer network | |
| US6980534B1 (en) | System and method for efficient selection of a packet data servicing node | |
| US8209371B2 (en) | Method and system for managing communication in a computer network using aliases of computer network addresses | |
| CN106375355B (zh) | 负载均衡处理方法及装置 | |
| US6735220B1 (en) | Using a centralized server to coordinate assignment of identifiers in a distributed system | |
| US7647384B2 (en) | Method and system for managing fragmented information packets in a computer network | |
| KR20060070529A (ko) | 라우팅 힌트를 제공하기 위한 방법, 장치 및프로세서-액세스가능 매체 | |
| CN114885007B (zh) | 用于实时的强一致性会话同步的方法和电子设备 | |
| WO2023186109A1 (zh) | 节点访问方法以及数据传输系统 | |
| CN109120556B (zh) | 一种云主机访问对象存储服务器的方法及系统 | |
| JP7745795B1 (ja) | パケット転送システム及びパケット転送方法 | |
| CN118631813B (zh) | 一种quic协议的负载均衡方法、系统和负载均衡器 | |
| WO2025124474A1 (zh) | 一种bmgw-vip集群主动探测bm的方法 | |
| CN109413142B (zh) | 一种Linux下的iSCSI虚拟代理实现方法 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20250219 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20250902 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250916 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7745795 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |