(57)【要約】【課題】シーケンス番号の逆転を回避する。【解決手段】パケット送信装置は、パケットを優先度に応じた複数のキューのいずれかへ格納する格納部と、前記優先度に基づいて前記複数のキューからパケットを読み出す読み出し部と、前記複数のキューから読み出されたパケットに前記複数のキューからの読み出し順でシーケンス番号を付与するシーケンス番号付与処理を行う制御部と、前記シーケンス番号が付与されたパケットを送信する送信部とを含む。【選択図】図５
2019083372.tif 000002
【特許請求の範囲】
【請求項１】
パケットを優先度に応じた複数のキューのいずれかへ格納する格納部と、
前記優先度に基づいて前記複数のキューからパケットを読み出す読み出し部と、
前記複数のキューから読み出されたパケットに前記複数のキューからの読み出し順でシーケンス番号を付与するシーケンス番号付与処理を行う処理部と、
前記シーケンス番号が付与されたパケットを送信する送信部と
を含むパケット送信装置。
【請求項２】
前記複数のキューに格納された各パケットの前記シーケンス番号付与処理後のパケットサイズを取得する取得部をさらに含み、
前記読み出し部は、前記シーケンス番号付与処理後のパケットサイズに基づいて前記複数のキューからのパケット読み出しを行う
請求項１に記載のパケット送信装置。
【請求項３】
前記処理部は、パケットの暗号化を含む前記シーケンス番号付与処理を行う
請求項１又は２に記載のパケット送信装置。
【請求項４】
前記取得部は、元のパケットのサイズと、前記シーケンス番号付与処理によって前記元のパケットに付加される情報のサイズとを取得して前記シーケンス番号付与処理後のパケットサイズを得る
請求項１から３のいずれか１項に記載のパケット送信装置。
【請求項５】
前記処理部は、前記複数のキューから読み出された各パケットからＥＳＰパケットを生成することによって前記シーケンス番号付与処理を行う
請求項１から４のいずれかに記載のパケット送信装置。
【請求項６】
前記シーケンス番号付与処理によって元のパケットに付加される情報のサイズを示す情報は、ＥＳＰヘッダのサイズと、ＥＳＰトレーラのサイズと、ＥＳＰ認証データとのそれぞれのサイズを示す情報を含む
請求項５に記載のパケット送信装置。
【請求項７】
受信されたパケットを優先度に応じた複数のキューのいずれかへ格納し、
前記優先度に基づいて前記複数のキューからパケットを読み出し、
前記複数のキューから読み出されたパケットに前記複数のキューからの読み出し順でシーケンス番号を付与し、
前記シーケンス番号が付与されたパケットを送信する
ことを含むパケット送信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット送信装置、及びパケット送信制御方法に関する。
【背景技術】
【０００２】
複数のユーザ（端末）がネットワークを介してパケット通信を行う環境において、各端末の通信内容に応じた通信品質（Quality of Service（ＱｏＳ））を確保した通信が行われる場合がある。また、ネットワーク上でのセキュリティを担保するために、パケットが暗号化されることがある。暗号化に係るプロトコルとしては、例えばIP (Internet Protocol) Security Protocol（IPsec）のEncapsulating Security Payload（ＥＳＰ）がある
。
【０００３】
また、リプレイ攻撃に対する対策が採られる場合がある。リプレイ攻撃とは、例えば、有効なパケットのコピーをネットワークに送出することで、受信側端末にコピーパケット（重複パケット）の廃棄処理を行わせ、受信側端末に処理負荷上昇や遅延等を発生させる攻撃である。IPsecでのリプレイ攻撃に対する対策の一例として、送信側でパケットに付
与したシーケンス番号を、受信側で検査し、重複、過去の古い番号だった場合、パケットを破棄する方法がある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１８７３２７号公報
【特許文献２】特開２０１１−１９３０５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
リプレイ攻撃対策の一つに、アンチリプレイ機能がある。アンチリプレイ機能は、ネットワークにおいて、パケットが受信済みのシーケンス番号を有する場合にパケット破棄を行う。或いは、アンチリプレイ機能は、到着したパケットのシーケンス番号が直前に到着したパケットのシーケンス番号より小さい場合にパケット破棄を行う。
【０００６】
しかしながら、例えば、ＥＳＰに基づいてパケットの暗号化及びシーケンス番号付与の処理を行った後にＱｏＳに基づく帯域制御（優先制御ともいう）を行うと、シーケンス番号の順序が逆転することがある。このシーケンス番号の逆転をアンチリプレイ機能がリプレイ攻撃と判定し、パケット破棄を行うおそれがあった。このような問題は、ＥＳＰに限定されず、シーケンス番号の付与後に優先制御が行われ、シーケンス番号の順序の逆転が発生し得る環境下で生じる問題であった。
【０００７】
本発明は、シーケンス番号の順序の逆転を回避し得るパケット送信装置及びパケット送信制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
一つの態様では、パケット送信装置は、パケットを優先度に応じた複数のキューのいずれかへ格納する格納部と、前記優先度に基づいて前記複数のキューからパケットを読み出す読み出し部と、前記複数のキューから読み出されたパケットに前記複数のキューからの読み出し順でシーケンス番号を付与するシーケンス番号付与処理を行う制御部と、前記シーケンス番号が付与されたパケットを送信する送信部とを含む。
また、本発明の他の態様は、パケット送信制御方法である。
【発明の効果】
【０００９】
一つの側面として、シーケンス番号の逆転を回避することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施形態に係るネットワークシステム（通信システム）の構成例を示す図である。
【図２】図２は、リプレイ攻撃の説明図である。
【図３】図３は、図１に示したネットワークシステムに比較例に係るルータを適用した場合の説明図である。
【図４】図４は、ルータの構成例を示す図である。
【図５】図５は、ルータの構成例を示す図である。
【図６】図６は、ルータにて行われる処理の説明図である。
【図７】図７は、パケットのフォーマット説明図である。
【図８】図８は、パケットのフォーマット説明図である。
【図９】図９は、実施形態に係る動作例を示すシーケンス図である。
【発明を実施するための形態】
【００１１】
実施形態に係るパケット送信装置は、以下を含む。
（１）パケットを優先度に応じた複数のキューのいずれかへ格納する格納部。
（２）前記優先度に基づいて前記複数のキューからパケットを読み出す読み出し部。
（３）前記複数のキューから読み出されたパケットに前記複数のキューからの読み出し順でシーケンス番号を付与するシーケンス番号付与処理を行う処理部。
（４）前記シーケンス番号が付与されたパケットを送信する送信部。
【００１２】
パケット送信装置によれば、パケットを優先度に応じた複数のキューのいずれかへ格納し、前記優先度に基づいて前記複数のキューからパケットを読み出す。読み出されたパケットに対し、前記複数のキューからの読み出し順でシーケンス番号を付与する。そして、前記シーケンス番号が付与されたパケットを送信する。これによって、優先制御によりシーケンス番号の逆転が起こらない状態でパケットを送信できる。このため、パケットの送信順で受信側がパケットを受信する限り、アンチリプレイ機能による誤判定は起こらない。よって、優先制御とアンチリプレイ機能との双方を並行に行うことができる。
【００１３】
実施形態に係るパケット送信装置では、前記複数のキューに格納された各パケットのシーケンス番号付与処理後のパケットサイズを取得する取得部をさらに含んでも良い。この場合、前記読み出し部は、前記シーケンス番号付与処理の後のパケットサイズに基づいて前記複数のキューからのパケット読み出しを行うようにしても良い。
【００１４】
シーケンス番号の付与に、パケットの空き領域を用いる等して、シーケンス番号付与処理後にパケットサイズが変わらない場合には、読み出し部の読み出しは、元のパケットのサイズに基づいて行うことができる。これに対し、シーケンス番号付与処理後にパケットサイズが増加する場合に、元のパケットサイズに基づいてキューからの読み出しを行うと、サイズ増加によって優先度に対して設定された帯域（送信レート）超過となることがあり得る。この場合、パケットが送信されないまま破棄される問題が生じ得る。上記した構成の採用によって、シーケンス番号付与処理後のパケットサイズに基づいて読み出しを行うことで、上記した問題の発生を回避することができる。
【００１５】
実施形態に係るパケット送信装置において、前記処理部は、パケットの暗号化を含む前記シーケンス番号付与処理を行うようにしても良い。シーケンス番号の逆転回避の観点からはパケットの暗号化は必ずしも必須ではない。但し、パケットの暗号化によって、パケ
ットを不正取得した者がパケット中のデータの内容を知ることを回避することができ、アンチリプレイ機能と相俟って、パケットのセキュリティを高めることができる。
【００１６】
実施形態に係るパケット送信装置において、前記取得部は、元のパケットのサイズと、前記シーケンス番号付与処理によって前記元のパケットに付加される情報のサイズとを取得して前記シーケンス番号付与処理後のパケットサイズを得るようにしても良い。
【００１７】
実施形態に係るパケット送信装置において、前記処理部は、前記複数のキューから読み出された各パケットからＥＳＰパケットを生成することによって前記シーケンス番号付与処理を行うようにしても良い。この場合、前記シーケンス番号付与処理によって前記元のパケットに付加される情報のサイズを示す情報は、ＥＳＰヘッダのサイズと、ＥＳＰトレーラのサイズと、ＥＳＰ認証データとのそれぞれのサイズを示す情報を含むようにしても良い。
【００１８】
以下、図面を参照して本発明の実施形態に係るパケット送信装置及びパケット送信制御方法をさらに説明する。実施形態の構成は例示であり、本発明は、実施形態の構成に限定されない。
【００１９】
図１は、実施形態に係るネットワークシステム（通信システム）の構成例を示す図である。図１に示す例では、端末４Ａと端末４Ｂ（両者を区別しない場合は端末４と表記）とのそれぞれが、サーバ３と通信するネットワーク構成が例示されている。端末４Ａ及び端末４Ｂはルータ２Ａに接続されている。ルータ２Ａはネットワーク１に接続され、ネットワーク１には、ルータ２Ｂが接続されている。ルータ２Ｂには、サーバ３が接続されている。なお、ルータ２Ａとルータ２Ｂとを区別しない場合はルータ２と表記する。ネットワーク１は、インターネットなどのＩＰ網である。
【００２０】
端末４Ａ及び端末４Ｂのそれぞれから送信されるパケットは、ルータ２Ａ、ネットワーク１、及びルータ２Ｂを経てサーバ３に受信される。サーバ３から送信されるパケットは、ルータ２Ｂ、ネットワーク１を経てルータ２Ａに受信される。ルータ２Ａはパケットの宛先アドレスに応じてパケットを端末４Ａ又は端末４Ｂに送信する。
【００２１】
端末４Ｂからサーバ３へ送信されるパケットには、端末４Ａからサーバ３へ送信されるパケットより高いＱｏＳ（通信品質）のクラス（優先度）が設定されている。このため、端末４Ｂから送信されるパケットの優先順位は、端末４Ａから送信されるパケットの優先順位よりも高く、ルータ２Ａ及びルータ２Ｂは、端末４Ｂからのパケットを端末４Ａからのパケットより優先して送信する優先制御を行う。優先制御により、端末４Ｂからのパケットには、端末４Ａからのパケットより高い送信レート（帯域幅）が設定される。
【００２２】
ルータ２Ａは、ネットワーク１でのセキュリティ確保のために、IPsecのＥＳＰに基づ
く暗号化及びシーケンス番号（ＳＮ）付与処理を各端末４からサーバ３へ送信されるパケット（「上り方向のパケット」と称する）に施し、ネットワーク１へ送出する。上り方向のパケットの暗号化は、サーバ３又はルータ２Ｂにて解除される。ルータ２Ｂも、サーバ３から端末４Ａ又は端末４Ｂ宛のパケット（「下り方向のパケット」と称する）に対し、ＥＳＰに基づく暗号化及びシーケンス番号付与処理を行う。下り方向のパケットに対する暗号化解除は、例えば宛先の端末４又はルータ２Ａにて実行される。暗号化処理によって、パケットが不正に取得されても、パケット中のデータの内容を知られることを回避できる。
【００２３】
ルータ２は、パケット送信装置の一例である。ルータ２は、レイヤ３スイッチを含む。但し、端末４やサーバ３のような端末装置がＥＳＰパケットを生成する場合もあり得る。
この場合、端末装置もパケット送信装置に含まれる。また、少なくともシーケンス番号付与処理を行う通信機器であれば、ルータや端末装置以外の通信機器もパケット送信装置に含まれる。また、実施形態では、シーケンス番号付与処理を行うプロトコルとして、ＥＳＰを例示するが、プロトコルはＥＳＰに制限されない。
【００２４】
図２は、リプレイ攻撃の説明図である。リプレイ攻撃とは、攻撃側端末がデータ転送を故意または不正に繰り返すことにより、受信側端末に処理負荷の上昇や遅延等を発生させることである。図２では、送信側端末４ａ（例えば端末４Ａ）が受信側端末４ｂ（例えばサーバ３）へルータ２Ａ、ネットワーク１及びルータ２Ｂを介してパケットを送信している。
【００２５】
ルータ２Ａは、送信側端末４ａからのパケットに対する暗号化及びシーケンス番号付与処理を行う。図２中の＃１〜＃５はシーケンス番号を示し、シーケンス番号＃１及び＃２が付与されたパケットが受信側端末４ｂにて受信されている様子を示す。
【００２６】
リプレイ攻撃を行う者は、攻撃側端末４ｃを用いてネットワーク１にアクセスし、パケットを不正に入手する。図２ではシーケンス番号＃２のパケットが不正取得された例が示されている。攻撃側端末４ｃは、シーケンス番号＃２のパケットをコピーし、送信側端末４ａになりすまして受信側端末４ｂ宛てにコピーパケットを送信する。コピーパケットが大量に受信側端末４ｂに送信されると、受信側端末４ｂにて不要な大量の重複パケット（コピーパケット）の破棄処理が発生する。これにより、受信側端末４ｂの処理負荷上昇、処理負荷上昇に伴う処理遅延が生じ得る。
【００２７】
リプレイ攻撃対策として、ルータ２Ｂや受信側端末４ｂにアンチリプレイ機能を実装する。アンチリプレイ機能は、受信済みシーケンス番号を持つパケットや、直前に受信したパケットのシーケンス番号より小さいシーケンス番号を持つパケットの破棄などを行う。
【００２８】
図３は、図１に示したネットワークシステムに比較例に係るルータ２ａ、ルータ２ｂを適用した場合の説明図である。図３はルータ２ａの動作を示すが、ルータ２ｂも同様の動作を行う。図３の例では、端末４Ａがパケットａ〜ｄ（優先度：低又は並）を送信し、端末４ＢがパケットＡ〜Ｄ（優先度：高）を送信している。ルータ２ａは、暗号化及びシーケンス番号（ＳＮ、ＳＥＱ番号とも表記）付与処理をパケットの到着順（受信順）に行う。
【００２９】
その後、ルータ２ａは、パケットの優先度に応じて用意された複数のキューのいずれかに、パケットａ〜ｄ及びパケットＡ〜Ｄを格納する。図３の例では、優先度高のキューと、優先度並のキューと、優先度低のキューとが用意されており、パケットＡ〜Ｄは優先度高のキューに格納され、パケットａ及びｂは優先度並のキューに格納され、パケットｃ及びｄは優先度低のキューに格納されたと仮定する。
【００３０】
その後、ルータ２ａは、優先度に基づいて各キューからのパケットの読み出しを行う。このとき、優先度の高いパケットが優先度の低いパケットより優先的にキューから読み出される。その結果、例えば、図３に例示するように、パケットａが読み出された後に、優先度の高いパケットＡが読み出され、その後にパケットｂが読み出され、その後に優先度の高いパケットＢ〜Ｄがパケットｃ及びｄに優先して読み出される。このようにして、パケットに付与されたシーケンス番号の逆転が起こる。このようなパケットの順序で、例えばルータ２ｂ又はサーバ３（アンチリプレイ機能に基づく処理を行う）が各パケットを受信すると、以下が起こる。すなわち、パケットｂのシーケンス番号“２”は、直前に受信したパケットＡのシーケンス番号“５”より小さいので、パケットｂは破棄される。このように、正当なパケットであるにも拘わらず、パケット破棄が起こる可能性があった。実
施形態では、上記問題を解消し得るルータ２（ルータ２Ａ、ルータ２Ｂ）について説明する。
【００３１】
＜ルータの構成例＞
図４はルータ２（ルータ２Ａ、ルータ２Ｂ）の構成例を示す。ルータ２は、バスを介して相互に接続されたＣＰＵ２１と、ＲＡＭ（Random Access Memory）２２と、ＲＯＭ（Read Only Memory）２３と、ハードディスク（ＨＤ）２４と、通信インタフェース（通信Ｉ／Ｆ）２５とを含む。
【００３２】
ＲＡＭ２２及びＲＯＭ２３は、主記憶装置として使用される。主記憶装置はプログラムの展開領域、ＣＰＵ２１の作業領域、データやプログラムの記憶領域、通信データのバッファ領域などとして使用される。ＲＡＭ単体で主記憶装置として使用される場合もある。
【００３３】
ＨＤ２４は補助記憶装置の例示であり、補助記憶装置はデータやプログラムの記憶領域として使用される。補助記憶装置は、例えば、ＨＤ２４の他、Solid State Drive（ＳＳ
Ｄ）、フラッシュメモリ、Electrically Erasable Programmable Read-Only Memory（Ｅ
ＥＰＲＯＭ）などの不揮発性記憶媒体で形成される。主記憶装置，補助記憶装置は、「記憶装置」、「記憶媒体」、「メモリ」、「記憶部」の一例である。以下の説明において、主記憶装置又は補助記憶装置をまとめてメモリ２４１（図５参照）と呼ぶ場合もある。
【００３４】
通信Ｉ／Ｆ２５は、パケットの送受信を司る。通信Ｉ／Ｆ２５として、例えばネットワークインタフェースカード（ＮＩＣ）を適用できる。通信Ｉ／Ｆ２５は、「送信部」、「受信部」、「通信部」の一例である。
【００３５】
ＣＰＵ２１は、メモリに記憶されたプログラムを実行して、ルータ２としての様々な処理を行う。例えば、ＣＰＵ２１は、パケットの宛先アドレスに応じたポートへ向けてパケットを転送する処理を行う。また、ＣＰＵ２１は、受信されたパケットに対する暗号化及びシーケンス番号付与処理（ＥＳＰパケットの生成処理）を行う。或いは、ＣＰＵ２１は、ＱｏＳに基づく優先制御（ＱｏＳクラス単位の帯域制御など）を行う。
【００３６】
ＣＰＵ２１は、「制御装置」、「コントローラ」の一例である。ＣＰＵ２１は、ＭＰＵ（Microprocessor）、プロセッサとも呼ばれる。ＣＰＵ２１は、単一のプロセッサに限定される訳ではなく、マルチプロセッサ構成であってもよい。また、単一のソケットで接続される単一のＣＰＵがマルチコア構成を有していても良い。ＣＰＵ２１で行われる処理の少なくとも一部は、マルチコア又は複数のＣＰＵで実行されても良い。ＣＰＵ２１で行われる処理の少なくとも一部は、ＣＰＵ以外のプロセッサ、例えば、Digital Signal Processor(ＤＳＰ)、Graphics Processing Unit（ＧＰＵ）、数値演算プロセッサ、ベクトルプロセッサ、画像処理プロセッサ等の専用プロセッサで行われても良い。
【００３７】
また、ＣＰＵ２１によって行われる処理の少なくとも一部は、集積回路（ＩＣ）、その他のディジタル回路で行われても良い。また、集積回路やディジタル回路はアナログ回路を含んでいても良い。集積回路は、ＬＳＩ、Application Specific Integrated Circuit
（ＡＳＩＣ）、プログラマブルロジックデバイス（ＰＬＤ）を含む。ＰＬＤは、Complex Programmable Logic Device（ＣＰＬＤ）及びField-Programmable Gate Array(ＦＰＧＡ)を含む。ＣＰＵ２１で行われる処理の少なくとも一部は、プロセッサと集積回路との組み合わせにより実行されても良い。組み合わせは、例えば、マイクロコントローラ（ＭＣＵ）、ＳｏＣ（System-on-a-chip）、システムＬＳＩ、チップセットなどと呼ばれる。
【００３８】
図５及び図６は、ルータ２で行われる処理の説明図である。ＣＰＵ２１は、プログラムの実行によって制御部２１Ａと、暗号化処理部２１Ｂとして動作する。これより、ルータ
２は、制御部２１Ａと、暗号化処理部２１Ｂと、メモリ２４１と、ＬＡＮ（Local Area Network）側Ｉ／Ｆ２５１と、ＷＡＮ（Wide Area Network）側Ｉ／Ｆ２５２とを含む装置
として動作する。制御部２１Ａは、優先制御部２１１、パケット長取得部２１２、帯域幅調節部２１３、暗号化／認証方式取得部２１４、及びスケジューラ２１５としての動作を行う。なお、逆方向（下り方向）についても同様の構成を有するが説明は省略する。優先制御部２１１は「格納部」の一例であり、スケジューラ２１５は「読み出し部」の一例である。また、暗号化処理部２１Ｂは「処理部」の一例である。帯域幅調節部２１３は「取得部」の一例である。
【００３９】
通信Ｉ／Ｆ２５は、ＬＡＮ側Ｉ／Ｆ２５１及びＷＡＮ側Ｉ／Ｆ２５２として動作する。ＬＡＮ側Ｉ／Ｆ２５１は、端末４と接続され、端末４とパケットの送受信処理を行う。ＷＡＮ側Ｉ／Ｆ２５２は、ネットワーク１と接続され、ネットワーク１とパケットの送受信処理を行う。ＬＡＮ側Ｉ／Ｆ２５１は「受信部」として動作し、ＷＡＮ側Ｉ／Ｆ２５２は「送信部」として動作する。
【００４０】
優先制御部２１１は、ＱｏＳにおける優先制御を行う。メモリ２４１（例えばＲＡＭ２２）には、ＱｏＳクラスに対応する複数のキューＱ１，Ｑ２，Ｑ３が形成されている（図６）。キューＱ１は優先度高に対応し、キューＱ２は優先度並に対応し、キューＱ３は優先度低に対応する。優先制御部２１１は、ＬＡＮ側Ｉ／Ｆ２５１から受信される各パケットをその優先度に対応するキューＱ１〜Ｑ３のいずれかに格納する。
【００４１】
図６の例では、端末４Ａがパケットａ〜ｄ（優先度：低又は並）を送信し、端末４ＢがパケットＡ〜Ｄ（優先度：高）を送信している。優先制御部２１１は、パケットＡ〜Ｄを優先度高のキューＱ１に格納し、パケットａ及びｂを優先度並のキューＱ２に格納し、パケットｃ及びｄを優先度低のキューＱ３に格納している。
【００４２】
なお、優先度は、例えばパケットの識別情報と紐づけされており、優先制御部２１１は、パケットの識別情報に対応する優先度のキューにパケットを格納する。識別情報は、例えばパケットフローを示すフロー情報である。フロー情報は、例えばパケットに格納されるＩＰアドレスとＴＣＰ／ＵＤＰポート番号との組み合わせにより生成される。但し、他の識別情報が用いられても良い。
【００４３】
スケジューラ２１５は、優先度毎の帯域幅（送信レート）に基づいて、キューＱ１〜Ｑ３からパケットを読み出し、バッファＱ４（図６）に格納する。優先度高のパケットは優先度並や優先度低のパケットに優先して読み出される。図６の例では、スケジューラ２１５が、パケット“ａ”，パケット“Ａ”，パケット“ｂ”，パケット“Ｂ”，パケット“Ｃ”，パケット“Ｄ”の順でパケットを読み出し、バッファＱ４に格納している。これにより、バッファＱ４の格納順は、パケットの受信順から見て逆転が発生している。
【００４４】
暗号化処理部２１Ｂは、ＥＳＰに基づく暗号化及びシーケンス番号付与処理を行う。暗号化処理部２１Ｂは、バッファＱ４に格納されたパケットを格納順に読み出し、各パケットを用いたＥＳＰパケットの生成を行う。暗号化及びシーケンス番号付与処理は、ＥＳＰパケットの生成過程にて行われる。
【００４５】
図７及び図８はＥＳＰパケットのフォーマット説明図である。図７には、バッファＱ４から読み出されるパケットの例示として、ＩＰｖ４（IP version 4）パケットが図示されている。但し、パケットはＩＰｖ６（IP version 6）パケットでもよい。以下の説明では単にＩＰｖ４パケットとＩＰｖ６パケットとをまとめたＩＰパケットとの表記を用いる。ＩＰパケットは、固定長のＩＰヘッダと固定長のＴＣＰ／ＵＤＰ（Transmission Control
Protocol/User Datagram Protocol）ヘッダと、可変長のペイロードデータとを含む。
【００４６】
暗号化処理部２１ＢはＥＳＰのモードに応じたＥＳＰパケットを生成する。ＥＳＰのモードがＥＳＰトランスポートモードである場合、暗号化処理部２１Ｂにより、次のようなＥＳＰパケットが生成される。すなわち、元のパケットのＩＰヘッダとＴＣＰ／ＵＤＰヘッダとの間にＥＳＰヘッダが挿入されるともに、ペイロードデータに続けてＥＳＰトレーラ、ＥＳＰ認証データを付与したＥＳＰパケットが生成される。
【００４７】
暗号化処理部２１Ｂは、ＥＳＰトランスポートモードのＥＳＰパケットの生成に際して、ＴＣＰ／ＵＤＰヘッダ、ペイロードデータ、ＥＳＰトレーラに対する暗号化処理を行う。なお、ＥＳＰ認証データに対応する認証範囲は、ＥＳＰヘッダ、ＴＣＰ／ＵＤＰヘッダ、ペイロードデータ、ＥＳＰトレーラである。
【００４８】
図８に示すように、ＥＳＰヘッダは固定長であり、セキュリティパラメータインデックス（ＳＰＩ）とシーケンス番号とを含む。ＥＳＰトレーラは、ペイロードデータ（可変長）のサイズに応じたパディング（詰め物：０〜２５５バイト）と、パディング長（固定長）と次ヘッダ番号（固定長）とを含む。ＥＳＰトレーラは可変長であるが、ペイロードデータとＥＳＰトレーラとの合計サイズが固定となるようにパディングサイズが決められる。但し、ペイロードデータとＥＳＰトレーラとの合計サイズが可変長となるようにパディングサイズが決められても良い。
【００４９】
ＥＳＰモードがＥＳＰトンネルモードである場合、暗号化処理部２１Ｂによって、次のようなＥＳＰパケットが生成される。すなわち、図７に示すように、元のＩＰパケットの先頭側に新たなＩＰヘッダとＥＳＰヘッダとが付与される。一方、元のＩＰパケットの末尾にＥＳＰトレーラ及びＥＳＰ認証データが付与される。ＥＳＰヘッダ、ＥＳＰトレーラ、ＥＳＰ認証データの構成は、トランスポートモードと共通である（図８）。但し、認証範囲は、ＥＳＰヘッダからＥＳＰトレーラまでの範囲となる（図７）。
【００５０】
暗号化処理部２１Ｂは、シーケンス番号を、バッファＱ４からの読み出し順で各パケットに付与する。これにより、パケットが受信された順でなく、優先度に従って並べられた順でパケットにシーケンス番号が付与される。そして、シーケンス番号順に、ＷＡＮ側Ｉ／Ｆ２５２からパケットが送信される。このようにすれば、シーケンス番号の逆転は起こらないので、ルータ２Ｂやサーバ３でのアンチリプレイ機能によるパケット破棄を回避することが可能となる。
【００５１】
スケジューラ２１５は、優先度に応じた帯域（送信レート）の情報を有しており、帯域を超過しないようにキューＱ１〜Ｑ３からのパケットの読み出しを行う。ところが、ルータ２では、キューＱ１〜Ｑ３から読み出された後のパケットをＥＳＰパケットに作り替える（変換する）。このため、読み出し後のパケットサイズが大きくなる。これより、元のパケットサイズに基づいてキューからの読み出しを行うと、ＥＳＰパケットへの変換によって帯域超過となり、送信できないまま破棄されるパケットが生じるおそれがある。
【００５２】
また、以下の表１に示すように、ＥＳＰのモード、暗号化方式、認証方式によって、ＥＳＰヘッダやＥＳＰ認証データのサイズは異なる。
【表１】
2019083372.tif 000003
【００５３】
上述した事情に鑑み、ルータ２は、以下のような構成によって、スケジューラ２１５に、ＥＳＰパケットへの変換後のパケットサイズに基づいてキューＱ１〜Ｑ３からのパケット読み出しを行わせる。図５に示すように、制御部２１Ａは、パケット長取得部２１２、帯域幅調節部２１３、暗号化／認証方式取得部２１４を含んでいる。
【００５４】
図９は、制御部２１Ａ（パケット長取得部２１２、帯域幅調節部２１３、暗号化／認証方式取得部２１４）の動作例を示すシーケンス図である。図９に示す処理は、キューＱ１〜Ｑ３に格納されるパケットについて行われる。
【００５５】
パケット長取得部２１２は、パケット長（元のパケットサイズ）を取得し、帯域幅調節部２１３へ送る（図９＜１＞）。帯域幅調節部２１３は、サイズ情報の要求を暗号化／認証方式取得部２１４へ送る（図９＜２＞）。サイズ情報は、パケット長情報から得たペイロードデータ長を含む。ペイロードデータ長は、パケット長からＩＰヘッダ長及びＴＣＰ／ＵＤＰヘッダ長を差し引くことで得られる。なお、帯域幅調節部２１３がパケット長取得部２１２からパケット長とペイロードデータ長を得るようにしても良い。
【００５６】
暗号化／認証方式取得部２１４は、メモリ２４１にアクセスして（図９＜３＞）、現在
使用しているＥＳＰのモード、暗号化方式及び認証方式に対応するＥＳＰヘッダ及びＥＳＰ認証データのサイズ情報を得る（図９＜４＞）。
【００５７】
メモリ２４１には、表１に示したモード、暗号化方式及び認証方式に応じたＥＳＰヘッダ及びＥＳＰ認証データのサイズ情報のリスト（テーブルＴ１）が記憶されている。暗号化／認証方式取得部２１４は、現在使用中のモード、暗号化方式及び認証方式を示す情報と、暗号化方式及び認証方式に係るサイズ情報（ＥＳＰヘッダ長、認証データ長）を取得する。テーブルＴ１は、例えば、ルータ２のコンフィグ（configuration）情報に含まれ
て管理されても良く、コンフィグ情報とは別個に管理されても良い。
【００５８】
メモリ２４１として、ルータ２内にあるメモリを利用する他、ルータ２に一時的に接続又は装着されるメモリを利用しても良い。また、サイズ情報は、ルータ２の外部から通信により取得しても良い。なお、表１に示した複数のサイズ情報のうち、現在使用中のサイズ情報のみがメモリ２４１のテーブルＴ１に記憶されていても良い。
【００５９】
暗号化／認証方式取得部２１４は、サイズ情報の要求に対する応答として、メモリから得られたサイズ情報を帯域幅調節部２１３に送る（図９＜５＞）。帯域幅調節部２１３は、元のパケットサイズ（パケット長）と、ＥＳＰヘッダ長、認証データ長、ＩＰヘッダ長（固定長であり既知）とを元に、暗号化及びシーケンス番号付与後のパケットサイズを算出する。帯域幅調節部２１３は、元のパケットのペイロードデータ長からＥＳＰトレーラのパディングサイズを算出する情報を有しており、パディングサイズを求めることで、ＥＳＰトレーラ長を算出する。但し、ＥＳＰトレーラ長は、サイズ情報の要求にペイロードデータ長を含めることで、暗号化／認証方式取得部２１４がパディングサイズの算出を行い、応答中にペイロードデータ長に対応するパディング長或いはＥＳＰトレーラ長が含まれるようにしても良い。
【００６０】
その後、帯域幅調節部２１３は、暗号化及びシーケンス番号付与処理後のパケットサイズ（ＥＳＰパケットへの変換後のサイズ情報（パケット長））をスケジューラ２１５に送る（図９＜６＞）。スケジューラ２１５は、ＥＳＰパケット変換後のサイズ情報を保管し、ＥＳＰパケット変換後の対応するサイズ情報を考慮して、帯域超過にならないように、キューＱ１〜Ｑ３からパケットを読み出す。ルータ２ａは、優先度に基づいて各キューからのパケットの読み出しを行う。このとき、優先度の高いパケットが優先度の低いパケットより優先的にキューから読み出される。その結果、例えば、図３に例示するように、パケットａが読み出された後に、優先度の高いパケットＡが読み出され、その後にパケットｂが読み出され、その後に優先度の高いパケットＢ〜Ｄがパケットｃ及びｄに優先して読み出される。
【００６１】
実施形態に係るパケット送信装置（ルータ２）によれば、シーケンス番号の逆転を回避できるので、受信側でシーケンス番号の逆転を原因とするリプレイ攻撃の誤検出を回避することができる。また、ＥＳＰパケット変換後のサイズに基づいてキューＱ１〜Ｑ３からの読み出しを行うので、帯域超過によりキューから読み出されたパケットが送信されないまま破棄されるのを回避することができる。実施形態の構成は適宜組み合わせることができる。
【符号の説明】
【００６２】
１・・・ネットワーク
２・・・ルータ
３・・・サーバ
４・・・端末
２１・・・ＣＰＵ
２１Ｂ・・・暗号化処理部
２２・・・ＲＡＭ
２３・・・ＲＯＭ
２４・・・ＨＤ
２１１・・・優先制御部
２１３・・・帯域幅調節部
２１５・・・スケジューラ
２４１・・・メモリ
【図１】
2019083372.tif 000004
【図２】
2019083372.tif 000005
【図３】
2019083372.tif 000006
【図４】
2019083372.tif 000007
【図５】
2019083372.tif 000008
【図６】
2019083372.tif 000009
【図７】
2019083372.tif 000010
【図８】
2019083372.tif 000011
【図９】
2019083372.tif 000012