本発明はIPネットワークに接続するパケット通信システムに関する。
近年、IP(Internet Protocol)のアプリケーションおよびトラヒックが増加し、移動通
信ネットワークにIPとの親和性が高いことが求められるようになってきている。移動通信ネットワークへのIP技術導入の流れは、ALL IP化と呼ばれ、様々な規格標準化団体でも議論されている。例えば3GPP2(3rd Generation Partnership Project 2)は、cdma2000ネットワークのALL IP化に向けた段階的な進化について検討している(3GPP2 S.P0038-0 Version 1.1.8 Draft, September 17, 2003(非特許文献1))。
インターネットのブロードバンドアクセスの普及に伴い、データ通信やVoIP、動画メール等のマルチメディア通信の利用が広がっている。マルチメディア通信において要求される、伝送遅延や伝送遅延揺らぎ、情報誤り等の品質はメディア毎に異なる。各メディアに適したサービス品質(QoS: Quality of Service)を制御する必要性が高まっている。
インターネットで一般的なQoS制御方式としてIETFで標準化されているDiffservが挙げられる。DiffservはIPヘッダ内にTOS(Type of Service)フィールドの再定義を行い、TOSフィールド内のDSCP(Diffserv Code Point)の値によりノードにおけるパケットフォワーディング動作の制御を行うものである。DSCPで指定されるパケットフォワーディング動作をPHB(Per-Hop Behavior)という。
Diffservのクラスは大きく3つあり、EF(Expedited Forwarding)が最優先のクラス、AF(Assured Forwarding)が中間のクラス、Defaultがベストエフォートのクラスである。AFはさらに送出の優先度で4クラスに分かれ、さらに各クラスはパケット廃棄の優先度で3レベルに分かれる。Diffserveはパケット内の制御情報であるDSCPに基づいてパケット転送制御を行う。網規模(中継ノード数)にスケーラブルな方式であり普及が進んでいる。
移動通信ネットワークにおいてもQoS制御が検討されている。
例えば、NTT DoCoMo Technical Journal Vol.5, No.2, pp.41-46, September 2003(非特許文献2)で第4世代の移動通信システムのQoS制御についての検討が報告されている。
引例ではEF,AF等のクラスのIPパケットを、IP下位層のQoSクラスにマッピングして制御するアーキテクチャやIP層のQoSを無線のQoSにリンクさせる特徴が開示されている。しかし無線伝送のためにはRAN(Radio Access Network)や無線基地局でIPパケットを分割したり、無線伝送用のパケットの組み立てることが通常で、一般にIPパケットとIPレイヤ下位のパケットは1対1に対応しない。パケットの分割等のためにレイヤ毎に情報単位が違う場合のQoS制御について引例では具体的に開示されていない。
また例えば3GPP2において、MS(Mobile station)とCN(Correspondent Node)間のエンドポイント間でQoS制御を行うことが議論されている(3GPP2 S.P0079-0 Version 0.05.5, June 11, 2003(非特許文献3))。3GPP2において、典型的なシステム構成を図1に示す。8、340がMS(Mobile station)、7がCN(Correspondent Node)である。また1はIPネットワーク、2、6はボーダールータ、3はノード装置PDSN(Packet Data Service Node)、4はパケット制御装置BSC/PCF(Base Station Controller/Packet Control Function)、5はAP(Access Point)、9がRAN(Radio Access Network)である。エンドポイント間でIP層のQoS制御を行うとき、PDSNとMS間でIPよりも下位層が提供するサービスにIP層のサービスと親和性が高いことが要求される。
3GPP2の移動通信ネットワークにおける従来のIPパケット転送制御の例を以下に説明する。図1に示すネットワークにおいて、BR2からPDSN3にIPパケットが入力されたとする。PDSN3からMS8までの情報の流れの例を図2に示す。PDSN3に入力されたIPパケット10はヘッダの制御情報に示されるQoSクラス等によって、異なるコネクション11,12にマッピングされPCF4へ送られる。PDSN3からPCF4までのコネクション11,12はA10インターフェースのコネクションであり、PDSNはIPパケットからA10パケットを作成し、PCFに送信する。PCF4からAP5までのコネクション13、14はA8インターフェースのコネクションであり、PCF4はA10パケットからA8パケットを作成し、AP5に送信する。AP5のスケジューラ115はコネクション13、14に応じた優先度で受信したA8パケットの無線媒体への送信制御を行う。
例えば、コネクション14がBest effortクラスで、コネクション13がhigh priorityクラスであるとする。スケジューラ115はコネクション14のA8パケットよりコネクション13のA8パケットを優先して送信する制御を行う。AP5はRLP(Radio Link Protocol)を使う場合、A8パケットからRLPに従ってRLPパケット15,16を生成し、RLP下位層で生成した信号を無線媒体へ送信する。MS8は無線送受信機能を持つAT(Access Terminal)18とアプリケーションを実行するTE(Terminal)19からなる。AT18は受信した信号15、16から情報を復調し、IPパケット17を再構成してTE19に送信する。ここで図1はネットワーク構成の1例であって、例えばPDSN3とPCF4は1体の筐体に実装されても良い。また例えば、BSCとPCFが別の筐体に実装されていても良い。A10、A8は、それぞれ、PDSNとPCF、PCFとAPとの間の通信で用いられるプロトコルである。
図3にPDSN3において作成するA10パケットのフォーマット例を示す。PDSN3がIPパケット20を受信したとする。PDSN3とMS8間でPPP(Point to Point Protocol)を用いる場合、PDSN3がIPパケット20にPPPの制御情報を付加し、PPPパケット21を組み立てる。さらにPDSN3がPPPから使用するフレーミングプロトコルに応じてPPPパケットに制御情報7Eを付加してフレーム22を組み立てる。PDSN3がフレーム22を最大転送単位(MTU:Maximum Transfer Unit)に26、30に分割する。分割したデータ26、30に制御情報としてそれぞれIPヘッダ24、28およびGRE(Generic Routing Encapsulation)ヘッダ25、29を付加し、それぞれA10パケット23,27を組み立てる。PDSN3はPCF4宛にA10パケット23,27を送信する。
図4にPCF4において作成するA8パケットのフォーマット例を示す。PCF4がA10パケット23を受信したとする。PCF4はAP5で作成するECB等の情報転送単位に応じてデータ26を35、36に分割する。ここでECB(Error Control Block)とは誤り制御のためのRS(Reed Solomon)符号化単位である。PCF4は分割したデータ35、36に、制御情報としてそれぞれIPヘッダ38、42およびGREヘッダ39,43を付加し、それぞれA8パケット37,41を組み立てる。PCF4はAP5宛にA8パケット37,41を送信する。
図5にAP5において作成する無線送信単位としてECBのフォーマット例を示す。AP5がA8パケット37を受信したとする。AP5はGREヘッダ37に含まれる制御情報に従ってECB55にデータ35を格納する。AP5のスケジューラ115はA8パケット37に応じた優先度でECB55にデータ35を格納する。優先度は、IPヘッダに含まれるDSCPにより判断される。AP5は格納した前記情報を用いて誤り訂正のためのパリティ57を計算し、ECB55に格納する。
図6にAP5において作成する無線送信単位の他のフォーマット例を示す。AP5がA8パケット37を受信したとする。AP5のスケジューラ115はA8パケット37に応じた優先度でA8パケット37からRLPパケットを組み立てる。AP5はA8パケット37のデータ35にRLPヘッダを付加してRLPパケット120を作成する。AP5はRLPパケット120に制御情報(Stream Layer Header)を付加してストリームレイヤーパケット121を作成する。AP5はストリームレイヤーパケット121に制御情報(Session Layer Header)を付加してセッションレイヤーパケット122を作成する。AP5はセッションレイヤーパケット122に制御情報(Connection Layer Header)を付加してコネクションレイヤーパケット123を作成する。AP5はコネクションレイヤーパケット123に制御情報(Encryption Protocol Header/Trailer、Authentication Protocol Header/Trailer、Security Protocol Header/Trailer)を付加してセキュリティレイヤーパケット125を作成する。AP5はセキュリティレイヤーパケット125に制御情報(MAC Layer Trailer)を付加してMACレイヤーパケット126を作成して送信する。
3GPP2の寄書、”Transport QoS in the Radio Access Network (RAN)”,A20-20020107-016,(2002年1月)(非特許文献4)には、Diffservを用いてRANのQoS制御を行うことが開示されている。引例によるとPDSNでIPカプセル化を行うとき、カプセル化されるIPヘッダ(インナーIPヘッダ)のDSCPを、カプセル化して出来るIPヘッダ(アウターIPヘッダ)のDSCPにマッピングすることが開示されている。例えば図3において、PDSN3がIPパケット20のIPヘッダ50のDSCPをA10パケットのIPヘッダ24、28にコピーする。また例えば図3において、PDSN3がIPパケット20のIPヘッダ50のDSCPに対応したDSCPをA10パケットのIPヘッダ24、28に付加する。PCF4は受信したA10パケットからA8パケットを作成する。このときPCF4はA10パケットのアウターIPヘッダのDSCPを変えずにA8パケットのアウターIPヘッダのDSCPにコピーする。
Kuenyoung Kim, Hoon Kim, Youngnam Han, "A PROPORTIONALLY FAIR SCHEDULING ALGORITHM WITH QOS AND PRIORITY IN 1XEV-DO", Proceedings PIMRC2002, Lisbon, September, 2002, p.2239(非特許文献5)に従来の1xEvDOのAPにおけるスケジューリングアルゴリズムについて開示されている。この文献によるとAPはプロポーショナルフェアネスと呼ばれるアルゴリズムでスケジューリングを行う。プロポーショナルフェアネスはシステムのスループットを可能な限り大きくし、かつ移動局に公平に送信時間を割り当てるアルゴリズムである。以下に概要を説明する。移動局がC/Iを測定して実現可能と判断出来る最も高い伝送レートをAPに要求する。ここでC/Iは信号電力対干渉電力比である。移動局はスロットと呼ばれる時間毎に伝送レートをAPに要求する。移動局の要求する伝送レートをDRCとする。APは前記移動局に実際に割り当てた送信レートの平均値Rを計算する。さらにAPはDRC/Rを計算する。APはDRC/Rが最大となる移動局に送信時間を割り当てる。
図28に図1に示すシステムにおけるスケジューリングの1例を示す。図28において横軸は時間、縦軸はDRC/Rの値である。MS8およびMS340のDRC/Rは伝搬環境の変化により変動している。期間601においてはMS8のDRC/Rの方がMS340のDRC/Rより大きい。AP5は期間601をMS8への送信時間として割り当てる。期間602においてはMS340のDRC/Rの方がMS8のDRC/Rより大きい。AP5は期間602をMS340への送信時間として割り当てる。期間603においてMS8のDRC/Rの方がMS340のDRC/Rより大きい。AP5は期間603をMS8への送信時間として割り当てる。期間604においてMS340のDRC/Rの方がMS8のDRC/Rより大きい。AP5は期間604をMS340への送信時間として割り当てる。非特許文献5にはkで重み付けを行い、k*(DRC/R)の値でスケジューリングを行う例が開示されている。kは遅延やデーターレートによることが言及されているが、具体的な方式は開示されていない。
3GPP2 S.P0038-0 Version 1.1.8 Draft, September 17, 2003
NTT DoCoMo Technical Journal Vol.5, No.2, pp.41-46, September 2003
3GPP2 S.P0079-0 Version 0.05.5, June 11, 2003
Transport QoS in the Radio Access Network (RAN),A20-20020107-016
Kuenyoung Kim, Hoon Kim, Youngnam Han, "A PROPORTIONALLY FAIR SCHEDULING ALGORITHM WITH QOS AND PRIORITY IN 1XEV-DO", Proceedings PIMRC2002, Lisbon, September, 2002, p.2239
従来の方式によると、PDSNやPCFにおいてIPパケットをデータフラグメントに分割し、RAN伝送用のパケットを作成する。RANはIPパケット単位の区切りを関知できないため、以下に説明する問題が生じる。
RANにおいてIPパケット単位を考慮しないQoS制御を行う。このためIPパケットのQoSとの親和性が高くない。例えばIPパケットを分割してA8/A10パケットを作成し、IPパケット情報の纏まりを考慮せずA8/A10パケット伝送するため、無駄な情報伝送やIPパケットの遅延やジッタが発生する。図7にIPパケットの伝送時にIPパケットをデータフラグメントへ分割する場合のIPパケット処理の1例を示す。RANプロトコルとIPプロトコルではパケット長が必ずしも一致しないので、例えば、IPパケット60の1フラグメント62のみ廃棄する状況が発生する。この場合、受信側でデータフラグメント63、64を受信しても、IPパケット60は復元できず、データフラグメント63、64の伝送が無駄になる。また例えば、AP5での無線送信単位(ECB67)作成時にIPパケットの1フラグメント64を格納しなかったとする。AP5からフラグメント64が抜けた無線送信単位が送信される。結局受信側のMS8でIPパケットを構成する全データが揃うのを待つため、IPパケット60の全体としての伝送が遅れる状況が発生する。
さらに、A8/A10パケットレベルで遅延、ジッタ制御をしてもIPパケットのQoS改善に繋がらないことがある。PDSN/RANでIPレイヤにおいて保証できる以上の厳密なQoS制御を行っても、ネットワーク全体からみるとオーバースペックで無駄である。例えば、PCF4においてジッタ制御を行い、IPパケットを分割したデータフラグメント間の時間間隔74、75、76、77を保つようにしても、結局受信側のMS8でIPパケット単位のデータが揃ってからIPパケット60、61を組み立てるので無駄が生じる。
また1つのRLP(Radio Link Protocol)に複数のA8コネクションが対応するとき、1つの無線送信単位(RLPパケット)に複数のA8コネクションのデータを詰めて無線に送信する。このとき複数のIPパケットの分割された情報を入れ子で送ると、RLPパケットを受信したMSでIPパケットが復元出来ないという問題がある。例えば図26にRANからMSへのIPパケットを送信する場合のパケットフォーマットの1例を示す。APのコネクション#1にIPパケット350を分割したデータフラグメント352、353が入力され、APのコネクション#2にIPパケット351を分割したデータフラグメント354、355が入力されたとする。APはIPパケットの纏まりを考慮せずに、IPパケット350のデータフラグメント352、IPパケット351のデータフラグメント354、IPパケット350のデータフラグメント353、IPパケット351のデータフラグメント355の順にRLPパケット356に詰めて送る。受信したMSはデータフラグメントの境界が分からず、IPパケット350と351を分離出来ない。
PDSNにおいて、IPパケットからRAN伝送用のパケットを作成する。PDSNでIPパケットが分割される場合があり、RAN内の伝送単位とコアネットワークでの伝送単位(IPパケット)が異なる可能性がある。RAN側では、IPパケットを意識しない伝送制御を行うので無駄が起こりえる。RAN側とコアネットワーク側の伝送プロトコルの違いによる無駄を減らすことが本発明の目的の1つである。
本発明のノード(PDSN)はIPパケットを分割して作成するA10パケットにA10連結フラグを付加する。A10連結フラグはIPパケットの先頭にあたるデータフラグメントを含むA10パケットおよびIPパケットの後尾にあたるデータフラグメントを含むA10パケットを表すものである。また本発明のPDSNは通信プロトコルによって1つのIPパケットの全体を包含するフレームを作成し、該フレームを分割して作成するA10パケットにA10連結フラグを付加する。
また本発明のPDSNは、時刻を刻むタイマーと、IPパケットの受信時刻を計測し、該IPパケットを分割してA10パケットを作成する制御部を備える。PDSNの制御部は、プロトコルに拠って受信したIPパケットを包含するフレームを作成し、該フレームを分割してA10パケットを作成する。本発明のPDSNはA10パケットの制御情報として該IPパケットの受信時刻を付加して送信する。
本発明のパケット制御装置(PCF)は、A10パケットを受信し、A8パケットを作成する制御部を備え、A8パケットの制御情報としてA8連結フラグを付加する。A8連結フラグは前記PDSNが受信したIPパケット先頭にあたるデータフラグメントを含むA8パケットおよび該IPパケットの後尾にあたるデータフラグメントを含むA8パケットを表すものである。
本発明のPCFは、A10パケットを受信し、A8パケットを作成する制御部を備え、A8パケットの制御情報として前記PDSNにおけるIPパケットの受信時刻を付加する。
本発明のPCFは、A10連結フラグを用いて該PDSNの同一の受信IPパケットもしくはフレームを構成する情報を含む、A10パケットの情報(データおよびヘッダ等の付加情報)をまとめて廃棄する。
また本発明のPCFは、A10連結フラグとPDSNが受信したIPパケットのサービス品質の種類を用いて該PDSNの同一の受信IPパケットもしくはフレームを構成する情報を含む、A10パケットの情報(データおよびヘッダ等の付加情報)をまとめて廃棄する。
本発明の基地局(AP)は、A8連結フラグを用いて前記PDSNの同一の受信IPパケットもしくはフレームを構成する情報を含む、A8パケットの情報を廃棄する。
また本発明のAPは、A8連結フラグとPDSNが受信したIPパケットのサービス品質の種類を用いて該PDSNの同一の受信IPパケットもしくはフレームを構成する情報を含む、A8パケットの情報(データおよびヘッダ等の付加情報)をまとめて廃棄する。
また本発明のAPは、PDSNが受信した複数のIPパケットもしくはPDSNが作成した複数のフレームから無線送信単位を作成する制御部とを備える。該制御部はA8連結フラグを用いて同一のIPパケットもしくはフレームの先頭から後尾までの情報を連続して無線送信単位に格納する。
また本発明のAPは、PDSNが受信したIPパケットの先頭のデータフラグメントを含むA8パケットを受信してから一定時間以上該IPパケットの後尾のデータフラグメントを含むA8 パケットを受信しない場合に、A8連結フラグと受信時刻とを用いて同一の該IPパケット若しくはフレームを構成する情報を含む、A8パケットの情報をまとめて廃棄する。
また本発明のAPは、時刻を刻むタイマーと、受信したA8パケットから無線送信単位を作成する制御部を備え、制御部はA8連結フラグを用いて無線送信単位を作成し、該A8パケットに含まれる受信時刻を用いて無線送信単位の送信時刻を制御する。
また本発明のAPは、時刻を刻むタイマーと、A8連結フラグを用いて無線送信単位を作成する制御部とを備え、該受信時刻を用いて無線送信単位の作成か送信の何れかの優先制御を行うことを特徴とする。
本発明のパケットはGREヘッダにA8連結フラグまたはA10連結フラグを格納する。
また本発明のパケットはGREヘッダにA8連結フラグまたはA10連結フラグと時刻情報を格納する。
また本発明のパケットはGREヘッダの後にA8連結フラグまたはA10連結フラグとプロトコル指示子を格納する。
また本発明のパケットはGREヘッダの後にA8連結フラグまたはA10連結フラグと時刻情報とプロトコル指示子を格納する。
PDSNにおいてIPパケットを分割して作成するA10パケットに、当該A10パケットがIPパケットの先頭若しくは後尾にあたるデータフラグメントを含むかを示すA10連結フラグを付加する。PCFにおいて、A10パケットからA8パケットを生成する際に、当該A8パケットがIPパケットの先頭若しくは後尾にあたるデータフラグメントを含むかを示すA8連結フラグを付加する。A10連結フラグ、A8連結フラグを参照することでそれぞれPCFや APがIPパケットの区切りを検出することが可能となる。
PCF,APにおいてそれぞれA10連結フラグ、A8連結フラグによりIPパケット単位でバッファのデータの送信、廃棄を管理する。IPパケットの1部が欠けて伝送される事を防止することができ、無駄な情報伝送を低減させることができる。PDSNにおいてIPパケット受信時刻をA8/A10パケットに付加し、APにおいて遅延揺らぎ制御を行う。IPパケット単位でRAN区間の揺らぎ制御が出来る。PDSNがIPパケットを分割してパケットを作成しIPパケットの先頭から順に送信する。パケットは順序を保ってAPに受信される。APは1つのIPパケット分のデータを連続して無線パケットに格納する。APは複数IPパケットの分割された情報を互い違いに入れ子にならないように無線パケットを作成できる。MSはIPパケット単位のデータを連続して受信するため、IPパケットのヘッダに含まれるパケット長を参照してIPパケットを復元出来る。
PDSN3(図11に装置構成図を示す)にて、IPパケットの分割情報にIPパケットの区切りを示す情報を格納する例を図8に示す。PDSNはコアネットワークとRANの境界にあり、コアネットワークで用いられるIPプロトコルとRANで用いられるプロトコル間の変換を行う。PDSN3のネットワークインタフェース255がIPパケット80、81を受信したとする。制御部252は受信情報を記憶部251に保持し、パケットの分解や組み立てを行う。PDSN3の制御部252はIPパケット80、81からそれぞれPPPパケット82、83を作成し、さらにそれぞれフレーム84、85を作成する。
PDSN3の制御部252はフレーム84をデータフラグメント94、97、…、100に分割し、それぞれA10パケット86、87、…、88を作成する。このとき制御部252はデータフラグメント94にIPヘッダ92、GREヘッダ93を付加する。また、制御部252はデータフラグメント97にIPヘッダ95、GREヘッダ96を付加する。また、制御部252はデータフラグメント100にIPヘッダ98、GREヘッダ99を付加する。
制御部252はフレーム85をデータフラグメント103、106、…、109に分割し、それぞれA10パケット89、90、…、91を作成する。このとき制御部252はデータフラグメント103にIPヘッダ101、GREヘッダ102を付加する。また、制御部252はデータフラグメント106にIPヘッダ104、GREヘッダ105を付加する。また、制御部252はデータフラグメント109にIPヘッダ107、GREヘッダ108を付加する。
A10パケット86、87、88、90、91、92のGREヘッダにIPパケットの区切りを示す情報を格納するフィールドとしてそれぞれA10連結フラグ161、162、163、165、166、167を設ける。A10連結フラグはデータフラグメントがIPパケットのどの部分の情報かを表すもので、2ビットで構成することができる。1ビット目はデータフラグメントがIPパケットの先頭の情報なら1、先頭でなければ0である。2ビット目はデータフラグメントがIPパケットの最後尾の情報なら1、最後尾でなければ0である。図のA10連結フラグは1ビット目を左に、2ビット目を右に記載している。本実施例では既存のGREヘッダを再定義してA10連結フラグのフィールドを設ける。例えば、既存のGREヘッダの制御に使用されていない領域(Reservedの領域)に連結フラグのフィールドを設けても良い。
ここで、データフラグメント94はIPパケット80の先頭の情報を含む。またIPパケット80の分割された情報がデータフラグメント94に継続するデータフラグメント97、100に含まれ、データフラグメント94はIPパケット80の最後尾の情報を含まない。そこで制御部252はデータフラグメント94に付加するA10連結フラグ161において、1ビット目を1、2ビット目を0とする。データフラグメント97はIPパケット80の先頭の情報を含まず、IPパケット80の最後尾の情報も含まない。そこで制御部252はデータフラグメント97に付加するA10連結フラグ162において、1ビット目を0、2ビット目を0とする。データフラグメント100はIPパケット80の先頭の情報を含まず、IPパケット80の最後尾の情報を含む。そこで制御部252はデータフラグメント100に付加するA10連結フラグ163において、1ビット目を0、2ビット目を1とする。
IPパケット81の分割に対しても同様に制御情報を付加する。データフラグメント103がIPパケット81の先頭の情報を含む。またIPパケット81の分割された情報がデータフラグメント103に継続するデータフラグメント106、109に含まれ、データフラグメント103がIPパケット81の最後尾の情報を含まない。そこで制御部252はデータフラグメント103に付加するA10連結フラグ165において、1ビット目を1、2ビット目を0とする。データフラグメント106はIPパケット81の先頭の情報を含まず、IPパケット81の最後尾の情報も含まない。そこで制御部252はデータフラグメント106に付加するA10連結フラグ166において、1ビット目を0、2ビット目を0とする。データフラグメント109はIPパケット81の先頭の情報を含まず、IPパケット81の最後尾の情報を含む。そこで制御部252はデータフラグメント109に付加するA10連結フラグ167において、1ビット目を0、2ビット目を1とする。
PDSN3は1つのIPパケット内の情報の並びを保つ順序でネットワークインタフェース250よりA10パケットを送信する。例えばIPパケット80については、PDSN3はIPパケット80の先頭の情報を含むA10パケット86を先ず送信する。次にPDSN3はA10パケット87を送信する。最後にPDSN3はIPパケット80の後尾の情報を含むA10パケット88を送信する。またIPパケット81についても同様に、PDSN3はIPパケット81の先頭の情報を含むA10パケット89を先ず送信する。次にPDSN3はA10パケット90を送信する。最後にPDSN3はIPパケット81の後尾の情報を含むA10パケット91を送信する。本実施例、及び他の実施例において、データフラグメントの格納や転送は、IPパケット内の情報の並びの順序を保ちながら行うため、IPパケットの先頭のデータフラグメントを示すフラグを持つパケットからIPパケットの後尾のデータフラグメントを示すフラグを持つパケットまでが同一のIPパケットに関わるものであることが判断できる。そのため、本発明においては、IPパケットのID情報等がなくともIPパケット単位のデータ転送/廃棄処理を行うことができる。
PCF4(図12、13に示す)にて、記憶部に格納するIPパケットの分割情報にIPパケットの区切りを示す情報を含める例を以下に示す。PCF4にIPパケット80を分割して作成したA10パケット86、87、88が入力されたとする。PCF4がそれぞれA10パケット86、87、88のデータフラグメント94、97、100を分割しない場合のパケットフォーマットの1例を図9に示す。PCF4のCPU308はデータフラグメント94、97、100に制御情報を付加してそれぞれA8パケット186、187、188を作成する。PCF4はA10パケット86のデータフラグメント94にIPヘッダ192とGREヘッダ193を付加し、A8パケット186を作成する。このときA10パケットのA10連結フラグ161をA8パケットのA8連結フラグ181に付け替える。同様に、PCF4はA10パケット87のデータフラグメント97にIPヘッダ195とGREヘッダ196を付加し、A8パケット187を作成する。このときA10パケットのA10連結フラグ162をA8パケットのA8連結フラグ182に付け替える。
また、PCF4はA10パケット88のデータフラグメント100にIPヘッダ198とGREヘッダ199を付加し、A8パケット188を作成する。このときA10パケットのA10連結フラグ163をA8パケットのA8連結フラグ183に付け替える。PCF4において、受信したA10パケット86、87、88のそれぞれのIPヘッダ92、95、98を外し、各A8パケットの送信先のアドレスを含む別のIPヘッダ、それぞれ192、195、198を付加する。またPCF4において、GREヘッダ93、96、99の一部の情報(GRE Key、シーケンス番号)を付け替え、それぞれ193、196、199とする。GREヘッダ93、96、99のA10連結フラグを、それぞれ193、196、199のA8連結フラグとしてコピーする。
PCF4がそれぞれA10パケット86、87、88のデータフラグメント94、97、100を分割する場合のパケットフォーマットの1例を図10に示す。PCF4は受信したA10パケットのデータフラグメント94を、データフラグメント203、206に分割し、制御情報を付加してそれぞれA8パケット230、231を作成する。PCF4はA10連結フラグ161から、データフラグメント94はIPパケット80の先頭の情報を含み、IPパケット80の最後尾の情報を含まないことを判断する。したがって、PCF4が2つに分割した先頭のデータフラグメント203にIPパケット80の先頭の情報が含まれる。PCF4はデータフラグメント203に付加するA8連結フラグ221において、1ビット目を1、2ビット目を0とする。PCF4は2つに分割した2番目のデータフラグメント206に付加するA8連結フラグ222において、1ビット目を0、2ビット目を0とする。
PCF4は受信したA10パケットのデータフラグメント97を、データフラグメント209、212に分割し、制御情報を付加してそれぞれA8パケット232、233を作成する。PCF4はA10連結フラグ162から、データフラグメント97はIPパケット80の先頭の情報を含まず、IPパケット80の最後尾の情報も含まないことを判断する。PCF4はデータフラグメント209、212に付加するA8連結フラグ、それぞれ223,224において、1ビット目を0、2ビット目を0とする。
PCF4は受信したA10パケットのデータフラグメント100を、データフラグメント215、218に分割し、制御情報を付加してそれぞれA8パケット234、235を作成する。PCF4はA10連結フラグ163から、データフラグメント100はIPパケット80の先頭の情報を含まず、IPパケット80の最後尾の情報を含むことを判断する。PCF4が2つに分割した2番目のデータフラグメント218にIPパケット80の最後尾の情報が含まれる。PCF4は2つに分割した先頭のデータフラグメント215に付加するA8連結フラグ221において、1ビット目を0、2ビット目を0とする。PCF4は2つに分割した2番目のデータフラグメント218に付加するA8連結フラグ226において、1ビット目を0、2ビット目を1とする。
前記例の通りPDSN3はIPパケットの情報の並びを保つ順序でA10パケットを送信する。PCF4もIPパケットの情報の並びを保つ順序でA8パケットを送信する。
例えばIPパケット80については、PCF4はIPパケット80の先頭の情報を含むA8パケット186を先ず送信する。次にPCF4はA8パケット187を送信する。最後にPCF4はIPパケット80の後尾の情報を含むA8パケット188を送信する。APがA8パケット186、187、188を受信したときも、この順序が保たれていることを保証できる。
図11に本発明のPDSN3の構成の1例を示す。NW IF250はPCF4に接続するネットワークとのネットワークインタフェースである。NW IF255はボーダールーター2に接続するネットワークとのネットワークインタフェースである。記憶部251は、受信したIPパケット、伝送するA8パケットを保持する。制御部252は、パケット送受信の管理、記憶部251に保持される情報の管理、A10パケットの組み立て分解、IPパケットの受信時刻の計測を行う。UIF253はユーザーインタフェースである。タイマー254は時刻に拠り増加するカウンタであり、IPパケットの受信時刻の計測に用いられる。
図12に本発明のPCF4の1例を示す。NW IF301、306はネットワークインタフェースである。SW302、305は信号を交換するスイッチである。制御部303はPCF4全体の管理、呼制御を行う。トラヒック制御部TC304はA8,A10パケットの組立て分解および送受信を行う。図13に本発明のトラヒック制御部TC304の1例を示す。記憶部307は送受信するパケットデータおよび管理情報を保持する。CPU308はパケット送受信の管理、記憶部307に保持される情報の管理、A8パケットおよびA10パケットの組み立て分解、パケット受信時刻の計測を行う。タイマー309は時刻に拠り増加するカウンタであり、A10パケットの受信時刻の計測に用いられる。
図14に本発明のAP5の1例を示す。AP5はRAN9においてMS8、340のアクセスポイントとなる無線基地局である。NW IF320はPCF4に接続するネットワークとのインターフェースである。BB321はベースバンド処理を行う。送信信号を変調し、受信信号の同期補足および復調を行う。IF322は中間周波数(IF: Intermediate Frequency)の信号処理を行う。IF322はBB321から入力されるベースバンド信号をDA(Digital to Analog )変換の上、中間周波数へ変換し、RF323に出力する。またIF322はRF323から入力する信号をAD(Analog to Digital)変換してBB321に出力する。RF323は無線周波数(RF: Radio Frequency)の信号処理を行う。RF323はIF322から入力した信号を無線周波数にアップコンバートし、送信電力を増幅の上アンテナ328に出力する。RF323はアンテナ328から入力した信号を中間周波数に中間周波数にダウンコンバートの上、IF322へ出力する。制御部326はAP全体の管理機能を有する。無線伝送単位およびA8パケットの組み立て分解、無線伝送単位の送信タイミング制御、記憶部325の情報管理を行う。また制御部326はA8パケットの受信時刻の計測を行う。記憶部325は、A8パケット、無線伝送単位や、格納情報管理テーブル450等の管理情報を保持する。タイマー327は時刻に拠り増加するカウンタである。
以下にPCF4からIPパケットの纏まりにしたがってパケット送信を管理する例を示す。PCF4の記憶部307に、送信する情報を保持する領域として、送信待ちバッファ112を設けるものとする。図15はPCF4の記憶部307の送信待ちバッファ112の1例である。PDSN3からPCF4が受信したA10パケットのデータフラグメントが送信待ちバッファ112に格納される。データフラグメントはPCF4に入力された順に連続して送信待ちバッファ112に格納される。PCF3のCPU308が送信待ちバッファ112に格納されたデータフラグメントからA8パケットを作成し、AP5へ送信する。送信待ちバッファ112においてIPパケットの纏まりでパケットを廃棄する例を以下に説明する。
CPU308は送信待ちバッファ112に格納されたデータを管理する。図17は記憶部307に保持される格納情報管理テーブル450の1例である。CPU308はPCF4が受信したA10パケットのIPヘッダを451に書き込む。CPU308はPCF4が受信したA10パケットのGREヘッダを452に書き込む。CPU308は、バッファ112においてPCF4が受信したA10パケットのデータフラグメントを保持する開始アドレスを452に書き込む。CPU308は、バッファ112においてPCF4が受信したA10パケットのデータフラグメントを保持する終了アドレスを453に書き込む。CPU308はPCF4が受信したA10パケットの受信時刻を455に書き込む。ここで時刻はPCF4のタイマ309で計測する。
送信待ちバッファ112が空の状態で、データフラグメント110を含むA10パケットがPCF4に入力されたとする。CPU308は該A10パケットのIPヘッダをテーブルの行460、列451に記録する。CPU308は該A10パケットのA10連結フラグを含むGREヘッダをテーブルの行460、列452に記録する。CPU308は該A10パケットのデータフラグメント110を格納する開始アドレスとしてバッファ112の先頭アドレスを行460、列453に記録する。CPU308は該A10パケットのデータフラグメント110を格納する終了アドレスとしてバッファ112の先頭アドレスにデータフラグメント110の長さを加算したアドレスを行460、列454に記録する。ここで、データフラグメント110の長さとは、CPU308が、該A10パケットのIPヘッダに含まれるIPパケットのオクテット数からIPヘッダおよびGREヘッダのオクテット数を差し引いて算出する。CPU308が、PCF4のタイマ309で計測された該A10パケットの受信時刻を行460、列455に記録する。CPU308は行460に記録された開始アドレスから終了アドレスまでの領域にデータフラグメント110を格納する。
さらにPCF8がA10パケット86を受信したとする。CPU308はA10パケット86のIPヘッダ92をテーブルの行461、列451に記録する。CPU308はA10パケット86のA10連結フラグを含むGREヘッダ93をテーブルの行461、列452に記録する。CPU308はA10パケット86のデータフラグメント94を格納する開始アドレスとしてデータフラグメント110の終了アドレスに1オクテット加算したアドレスを行461、列453に記録する。CPU308はA10パケット86のデータフラグメント94を格納する終了アドレスとして、行461、列453に記録された開始アドレスにデータフラグメント94の長さを加算したアドレスを行461、列454に記録する。ここで、データフラグメント94の長さとは、CPU308が、A10パケット86のIPヘッダ92に含まれるIPパケットのオクテット数からIPヘッダ92およびGREヘッダ93のオクテット数を差し引いて算出する。CPU308が、PCF4のタイマ309で計測されたA10パケット86の受信時刻を行461、列455に記録する。CPU308は行461に記録された開始アドレスから終了アドレスまでの領域にデータフラグメント94を格納する。
CPU308はデータフラグメント97、100、103、106、109,111についても同様にバッファ112に格納する。またCPU308はそれぞれのデータフラグメントに対応する制御情報451、452、453、454を格納情報管理テーブル450の各行に記録する。
PCF8がデータフラグメント110にIPヘッダとGREヘッダを付加してA8パケットを作成し、AP5に送信する際には、CPU308は行460の情報を廃棄し、行461の情報で上書きする。さらに行460、列453の開始アドレスからデータフラグメント110の長さを差し引いたアドレスを開始アドレスとして改めて行460、列453に記録する。さらに行460、列454の終了アドレスからデータフラグメント110の長さを差し引いたアドレスを終了アドレスとして改めて行460、列454に記録する。
以下同様に、CPU308は格納情報管理テーブル450のある行の情報を次の行の情報で上書きする。さらにCPU308はそれぞれの行の開始アドレス453および終了アドレス454からデータフラグメント110の長さを差し引いたアドレスを改めて記録する。CPU308はバッファ112において、データフラグメント94、97、100、103、106、109,111を前詰め(図15において左詰め)に格納しなおす。
いまバッファ112にデータフラグメント110、97、100、103、106、109が格納されており、データフラグメント111を含むA10パケットがPCF4に入力されたとする。CPU308がデータフラグメント111のバッファ112への格納にあたり、データフラグメント111に対応する制御情報を格納情報管理テーブル450の行462に記録する。データフラグメント111の終了アドレスを算出したとき、バッファ112として確保された領域を超えた値が算出されたとする。CPU308はバッファ112の空き容量が不足したと判断する。CPU308は格納情報管理テーブル450に記録されたIPヘッダのTOSを参照し、バッファ112に格納された情報から廃棄する情報を探す。
今、データフラグメント94、97、100に比べて、データフラグメント110、103、106,109、111に対応するTOSに示されるパケット廃棄の優先度が高かったとする。またデータフラグメント110の長さが、データフラグメント94の長さ以下であったとする。CPU308はIPヘッダ451から各データフラグメントの長さを求める。CPU308は、データフラグメント94を廃棄すれば、データフラグメント111をバッファ112に格納出来ることを判断する。さらにCPU308はGREヘッダ452に含まれるA10連結フラグを参照し、データフラグメント94、97、100が1つのIPパケット80を構成するデータであることを判断する。データフラグメント94、97、100の何れかの情報が無ければ、IPパケットは再構成できず、他のデータフラグメントの転送が、ネットワークにとって無駄な負担となってしまう。この無駄を省くために、CPU308はデータフラグメント94のみでは無く、データフラグメント94、97、100を廃棄する。CPU308はバッファ112においてデータフラグメント110に続けてデータフラグメント103、106,109、111を格納する。
さらにCPU308は格納情報管理テーブル450を更新する。CPU308はデータフラグメント94、97、100に対応する行を廃棄する。CPU308はデータフラグメント94に対応する行461の情報を廃棄し、データフラグメント103に対応する情報で上書きする。行461、列453の開始アドレスから廃棄したデータフラグメント94、97、100の合計の長さを差し引いたアドレスを開始アドレスとして改めて行461、列453に記録する。行461、列454の終了アドレスから廃棄したデータフラグメント94、97、100の合計の長さを差し引いたアドレスを終了アドレスとして改めて行461、列454に記録する。CPU308はデータフラグメント97に対応する行461の次の行の情報を廃棄し、データフラグメント106に対応する情報で上書きする。行461の次の行の列453において、元の開始アドレスから廃棄したデータフラグメント94、97、100の合計の長さを差し引いたアドレスを開始アドレスとして改めて記録する。行461の次の行の列454において、元の終了アドレスから廃棄したデータフラグメント94、97、100の合計の長さを差し引いたアドレスを終了アドレスとして改めて記録する。
以降、データフラグメント109、111に対応する情報についても同様に、CPU308がテーブル450の上の行からPCF4が受信したデータフラグメントの順に記録する。元の開始アドレス453から廃棄したデータフラグメント94、97、100の合計の長さを差し引いたアドレスを開始アドレス453として改めて記録する。元の終了アドレス454から廃棄したデータフラグメント94、97、100の合計の長さを差し引いたアドレスを開始アドレス454として改めて記録する。
PCF4がIPパケット単位で送信制御を行う他の例を示す。本例のPCF4のバッファの1例を図16に示す。IPパケット80のIPヘッダのTOSにEF(Expedited Forwarding)が設定されていたとする。PDSN3はA10パケット86、87,88を作成するとき、それぞれのIPヘッダ92、95、98のTOSフィールドの値をEFとする。またPDSN3はIPヘッダ92、95、98のLengthフィールドにそれぞれA10パケット86、87、88の長さを設定する。PDSN3はA10パケット86、87、88をPCF4に送信する。
バッファ112に既にデータフラグメント110が格納されているとする。PCF4の格納情報管理テーブル450の行460がデータフラグメント110の制御情報とする。PCF4がA10パケット86を受信すると、CPU308はA10パケットの制御情報を行461の451、452、453、454に記録する。また、CPU308はA10パケット86の受信時刻をタイマ309で計測し、行461の455に記録する。CPU308はデータフラグメント94をバッファ112に格納する。PCF4がA10パケット87を受信すると、CPU308はA10パケットの制御情報を行461の次の行の451、452、453、454に記録する。また、CPU308はA10パケット87の受信時刻をタイマ309で計測し、行461の次の行の455に記録する。CPU308はデータフラグメント97をバッファ112に格納する。
CPU308は、GREなどに含まれるA10連結フラグに基づいてデータフラグメント94がIPパケット80の先頭のデータフラグメントであると判断し、行461の入力時刻455を基準として一定時間、最後尾のデータフラグメント100の到着を待つ。図16に示す通りIPパケット80の先頭のデータフラグメント94がPCF4に入力されてから一定時間以上、最後尾のデータフラグメント100がPCF4に入力されないとする。IPパケット80のデータフラグメント97まで入力された状況とする。CPU308は行461のGREヘッダ452のA10連結フラグを参照し、IPパケット80の最後尾のデータフラグメントであるか判断する。データフラグメント94、97だけではIPパケットは再構成できない。またA10パケット転送の遅延が大きく、PCF4が更にIPパケット80の最後尾の情報を含むデータフラグメント100の到着を待っても、IPパケット伝送の遅延時間が大きくなる。そこでPCF4はIPパケット80のデータフラグメントを廃棄する。
先ずCPU308が格納情報管理テーブル450のGREヘッダ452のA10連結フラグを参照して廃棄するデータを検索する。CPU308は最後尾である461の次の行から遡ってA10連結フラグを参照しIPパケットの先頭のデータフラグメントを特定する。CPU308は461の行のA10連結フラグからデータフラグメント94がIPパケット80の先頭と判断する。CPU308は廃棄するデータが461の行以降の行で管理されるデータフラグメントと判断する。CPU308は各行の開始アドレス453から終了アドレス454で指定される領域の情報を廃棄する。
PCF4のCPU308はバッファ112より既に受信したデータフラグメント94、97を廃棄する。さらに、CPU308は格納情報管理テーブル450において、それぞれデータフラグメント94と97に対応する行461と行461の次の行の情報を廃棄する。さらにPCF4のCPU308はIPパケット80の最後尾のデータフラグメント100を受信するまで、あるいは次のIPパケットの先頭のデータフラグメントを受信するまでに、受信したA10パケットを、IPパケット80のデータフラグメントであると判断し、廃棄する。
ここで前記一定時間はTOSに指定されるクラス別に設定しても良い。例えば、一定時間としてTOSがEFの場合に最短とし、TOSがAFの場合にはEFの場合より長く設定しても良い。
以下にAP5からIPパケットの纏まりにしたがってパケット送信を管理する例を示す。AP5の記憶部325に、送信する情報を保持する領域として、送信待ちバッファ113を設ける。図18はAP5の記憶部325の送信待ちバッファ113の1例である。PCF4からAP5が受信したA8パケットのデータフラグメントが送信待ちバッファ113に格納される。データフラグメントはAP5に入力された順に連続して送信待ちバッファ113に格納される。AP5の制御部326が送信待ちバッファ113に格納されたデータフラグメントからRLPパケットもしくはECBを作成する。送信待ちバッファ113においてIPパケットの纏まりでパケットを廃棄する例を以下に説明する。
AP5の制御部326は送信待ちバッファ113に格納されたデータを管理する。図17は記憶部325に保持される格納情報管理テーブル450の1例である。APにおいても、前述のPCFと同様の項目でパケットの送信管理を行うことができる。制御部326はAP5が受信したA8パケットのIPヘッダを451に書き込む。制御部326はAP5が受信したA8パケットのGREヘッダを452に書き込む。制御部326は、バッファ113においてAP5が受信したA8パケットのデータフラグメントを保持する開始アドレスを452に書き込む。制御部326は、バッファ113においてAP5が受信したA8パケットのデータフラグメントを保持する終了アドレスを453に書き込む。制御部326はAP5が受信したA8パケットの受信時刻を455に書き込む。ここで時刻はAP5のタイマ327で計測する。
送信待ちバッファ113が空の状態で、データフラグメント110を含むA8パケットがAP5に入力されたとする。制御部326は該A8パケットのIPヘッダをテーブルの行460、列451に記録する。制御部326は該A8パケットのA8連結フラグを含むGREヘッダをテーブルの行460、列452に記録する。制御部326は該A8パケットのデータフラグメント110を格納する開始アドレスとしてバッファ113の先頭アドレスを行460、列453に記録する。制御部326は該A8パケットのデータフラグメント110を格納する終了アドレスとしてバッファ113の先頭アドレスにデータフラグメント110の長さを加算したアドレスを行460、列454に記録する。ここで、データフラグメント110の長さとは、制御部326が、該A8パケットのIPヘッダに含まれるIPパケットのオクテット数からIPヘッダおよびGREヘッダのオクテット数を差し引いて算出する。制御部326が、AP5のタイマ327で計測された該A8パケットの受信時刻を行460、列455に記録する。制御部326は行460に記録された開始アドレスから終了アドレスまでの領域にデータフラグメント110を格納する。
さらにAP5がA8パケット186を受信したとする。制御部326はA8パケット186のIPヘッダ192をテーブルの行461、列451に記録する。制御部326はA8パケット186のA8連結フラグを含むGREヘッダ193をテーブルの行461、列452に記録する。制御部326はA8パケット186のデータフラグメント194を格納する開始アドレスとしてデータフラグメント110の終了アドレスに1オクテット加算したアドレスを行461、列453に記録する。制御部326はA8パケット186のデータフラグメント94を格納する終了アドレスとして、行461、列453に記録された開始アドレスにデータフラグメント94の長さを加算したアドレスを行461、列454に記録する。ここで、データフラグメント94の長さとは、制御部326が、A8パケット186のIPヘッダ192に含まれるIPパケットのオクテット数からIPヘッダ192およびGREヘッダ193のオクテット数を差し引いて算出する。制御部326が、AP5のタイマ327で計測されたA8パケット186の受信時刻を行461、列455に記録する。制御部326は行461に記録された開始アドレスから終了アドレスまでの領域にデータフラグメント94を格納する。
制御部326はデータフラグメント97、100、103、106、109,111についても同様にバッファ113に格納する。また制御部326はそれぞれのデータフラグメントに対応する制御情報451、452、453、454を格納情報管理テーブル450の各行に記録する。
データフラグメント110の送信が完了した場合には、制御部326は行460の情報を廃棄し、行461の情報で上書きをする。さらに行460、列453の開始アドレスからデータフラグメント110の長さを差し引いたアドレスを開始アドレスとして改めて行460、列453に記録する。さらに行460、列454の終了アドレスからデータフラグメント110の長さを差し引いたアドレスを終了アドレスとして改めて行460、列454に記録する。
以下同様に、制御部326は格納情報管理テーブル450のある行の情報を次の行の情報で上書きする。さらに制御部326はそれぞれの行の開始アドレス453および終了アドレス454からデータフラグメント110の長さを差し引いたアドレスを改めて記録する。
制御部326はバッファ113において、データフラグメント94、97、100、103、106、109,111を前詰め(図18において左詰め)に格納しなおす。
いまバッファ113にデータフラグメント110、97、100、103、106、109が格納されており、データフラグメント111を含むA8パケットがAP5に入力されたとする。制御部326がデータフラグメント111のバッファ113への格納にあたり、データフラグメント111に対応する制御情報を格納情報管理テーブル450の行462に記録する。データフラグメント111の終了アドレスを算出したとき、バッファ113として確保された領域を超えた値が算出されたとする。
制御部326はバッファ113の空き容量が不足したと判断する。制御部326は格納情報管理テーブル450に記録されたIPヘッダのTOSを参照し、バッファ113に格納された情報から廃棄する情報を探す。今、データフラグメント94、97、100に比べて、データフラグメント110、103、106,109、111に対応するTOSに示されるパケット廃棄の優先度が高かったとする。またデータフラグメント110の長さが、データフラグメント94の長さ以下であったとする。制御部326はIPヘッダ451から各データフラグメントの長さを求める。制御部326は、データフラグメント94を廃棄すれば、データフラグメント111をバッファ113に格納出来ると判断する。さらに制御部326はGREヘッダ452に含まれるA8連結フラグを参照し、データフラグメント94、97、100が1つのIPパケット80を構成するデータであると判断する。データフラグメント94、97、100の何れかの情報が無ければ、IPパケット80は再構成できず、他のデータフラグメントの転送が、ネットワークにとって無駄な負担となってしまう。この無駄を省くために、制御部326はデータフラグメント94のみでは無く、データフラグメント94、97、100を廃棄する。制御部326はバッファ113においてデータフラグメント110に続けてデータフラグメント103、106,109、111を格納する。
さらに制御部326は格納情報管理テーブル450を更新する。制御部326はデータフラグメント94、97、100に対応する行を廃棄する。制御部326はデータフラグメント94に対応する行461の情報を廃棄し、データフラグメント103に対応する情報で上書きする。行461、列453の開始アドレスから廃棄したデータフラグメント94、97、100の合計の長さを差し引いたアドレスを開始アドレスとして改めて行461、列453に記録する。行461、列454の終了アドレスから廃棄したデータフラグメント94、97、100の合計の長さを差し引いたアドレスを終了アドレスとして改めて行461、列454に記録する。制御部326はデータフラグメント97に対応する行461の次の行の情報を廃棄し、データフラグメント106に対応する情報で上書きする。行461の次の行の列453において、元の開始アドレスから廃棄したデータフラグメント94、97、100の合計の長さを差し引いたアドレスを開始アドレスとして改めて記録する。行461の次の行の列454において、元の終了アドレスから廃棄したデータフラグメント94、97、100の合計の長さを差し引いたアドレスを終了アドレスとして改めて記録する。
以降、データフラグメント109、111に対応する情報についても同様に、制御部326がテーブル450の上の行からAP5が受信したデータフラグメントの順に記録する。元の開始アドレス453から廃棄したデータフラグメント94、97、100の合計の長さを差し引いたアドレスを開始アドレス453として改めて記録する。元の終了アドレス454から廃棄したデータフラグメント94、97、100の合計の長さを差し引いたアドレスを開始アドレス454として改めて記録する。
以下にAP5からIPパケットの纏まりでパケットを送信する他の例を示す。図19にパケットフォーマットの1例を示す。
PDSN3にIPパケット350、351が入力されたとする。PDSN3はIPパケット350をデータフラグメント352、353に分割し、それぞれA10パケット368、369を構成してPCF4へ送信する。PDSN3は、A10パケット368がIPパケット350の先頭を含むので、A10連結フラグ370の1ビット目を1、2ビット目を0とする。PDSN3は、A10パケット369がIPパケット350の後尾を含むので、A10連結フラグ371の1ビット目を0、2ビット目を1とする。また、PDSN3はIPパケット351をデータフラグメント354、355に分割し、それぞれA10パケット372、373を構成してPCF4へ送信する。PDSN3は、A10パケット372がIPパケット351の先頭を含むので、A10連結フラグ374の1ビット目を1、2ビット目を0とする。PDSN3は、A10パケット373がIPパケット351の後尾を含むので、A10連結フラグ375の1ビット目を0、2ビット目を1とする。
PCF4はA10パケット368、369、372、373を受信し、それぞれからA8パケット388、389、392、393を構成し、AP5に送信する。このとき、PCF4はA10連結フラグ370をA8連結フラグ390にコピーする。PCF4はA10連結フラグ371をA8連結フラグ391にコピーする。PCF4はA10連結フラグ374をA8連結フラグ394にコピーする。PCF4はA10連結フラグ375をA8連結フラグ395にコピーする。
IPパケット350のTOSにEFが指定され、IPパケット351のTOSにDefaultが指定されているとする。PDSN3はA10パケット368、369を構成するとき、付加するIPヘッダ360、362のTOSにEFを設定する。PDSN3はA10パケット372、373を構成するとき、付加するIPヘッダ364、366のTOSにDefaultを設定する。
PCF4はA10パケット368、369、372、373を受信し、それぞれからA8パケット388、389、392、393を構成する。このとき、PCF4はIPヘッダ360のTOSをIPヘッダ380のTOSにコピーする。またPCF4はIPヘッダ362のTOSをIPヘッダ382のTOSにコピーする。またPCF4はIPヘッダ364のTOSをIPヘッダ384のTOSにコピーする。またPCF4はIPヘッダ366のTOSをIPヘッダ386のTOSにコピーする。
A8パケット388、389、392、393が1つのコネクションのA10パケットとしてAP5に入力され、このときAP5は、IPパケットの情報の並びを保つ順序でA8パケットを受信するとする。AP5の制御部326はデータフラグメント352、353、354、355を記憶部325の送信バッファ113に格納する。また、AP5の制御部326はテーブル450にデータフラグメント352、353、354、355の制御情報を設定する。制御部326はA8パケット388、389、392、393の順に行毎に制御情報を記録する。制御部326はAP5が受信したA8パケットのIPヘッダを451に書き込む。制御部326はAP5が受信したA8パケットのGREヘッダを452に書き込む。制御部326は、バッファ113においてAP5が受信したA8パケットのデータフラグメントを保持する開始アドレスを452に書き込む。制御部326は、バッファ113においてAP5が受信したA8パケットのデータフラグメントを保持する終了アドレスを453に書き込む。制御部326はAP5が受信したA8パケットの受信時刻を455に書き込む。ここで時刻はAP5のタイマ327で計測する。
AP5の制御部326は送信バッファ113に格納されたデータフラグメントから、制御部326のスケジューラ機能が指示するタイミングに従って無線伝送のためのパケットを作成する。無線伝送のためのパケットとは例えばRLPパケットである。また例えばECBであっても良い。
制御部326はテーブル450のGREヘッダ452を参照し、データフラグメント352、353と354、355がそれぞれIPパケット350、351を構成していると判断する。また制御部326はIPヘッダ451のTOSを参照し、IPパケット350のデータフラグメント352、353がEFクラス、IPパケット351のデータフラグメント354、355がDefaultクラスであることを判断する。さらに制御部326はIPヘッダ451を参照し、IPパケット350のデータフラグメント352、353、IPパケット351のデータフラグメント354、355それぞれの長さを算出する。データフラグメントの長さは、制御部326がIPヘッダ451に記録されたそれぞれのA8パケット長からIPヘッダ長とGREヘッダ長を差し引くことで求まる。データフラグメント352、353、354、355は1つのRLPパケットに合わせて格納出来ない長さだとする。制御部326は以下の通り優先度の高いデータをIPパケット単位でRLPパケットに格納し、余裕があれば優先度が低いデータをRLPに格納する。IPパケットが複数RLPパケット間にまたがって送られる場合、結局情報が揃うまではIPパケットの復元が出来ない。以下により優先度が高いデータは複数RLPパケットに分割されにくく出来る。
制御部326は先ずRLPパケット396に優先度の高いIPパケット350のデータフラグメント352、353を連続して格納する。次に制御部326は、優先度が低いIPパケット351のデータフラグメント354がRLPパケット396に格納できる長さであれば、データフラグメント354もRLPパケット396に格納する。制御部326は、優先度が低いIPパケット351のデータフラグメント355がRLPパケット396に格納できないので、データフラグメント355は次に作成するRLPパケットに格納する。
このとき、制御部326はIPパケットのデータフラグメントの順序を保ってRLPパケットに格納する。例えば、IPパケット350については、データフラグメント352、353の順に連続してRLPパケット396に格納する。IPパケット351については、可能ならデータフラグメント354、355の順にRLPパケット396に格納する。あるいは、RLPパケット396に十分な余地が無ければデータフラグメント354をまずRLPパケット396に格納する。次のRLPパケットに続けてデータフラグメント355を格納する。
制御部326はIPパケット単位が揃ったことを確認してから、データフラグメントをRLPパケットに格納しても良い。制御部326はA8連結フラグを含むGREヘッダ452を参照し、IPパケットの先頭のデータフラグメントとIPパケットの後尾のデータフラグメントが分かる。
またIPパケットデータが欠落すると、APから何時までたってもIPパケットのデータが送信されないことが起こりえる。制御部326はIPパケットの先頭のデータフラグメントを受信してから、一定時間以上、該IPパケットの後尾のデータフラグメントを受信しなかった場合、該IPパケット単位のデータフラグメントを廃棄しても良い。
以下にAP5からIPパケットの纏まりでパケットを送信する他の例を示す。AP5において、宛先の端末MSが同じである複数のA8コネクションのデータフラグメントから無線伝送のためのパケットを作成する例を示す。
図20にパケットフォーマットの1例を示す。PDSN3にIPパケット350、351が入力されたとする。PDSN3はIPパケット350をデータフラグメント352、353に分割し、それぞれA10パケット368、369を構成してPCF4へ送信する。PDSN3は、A10パケット368がIPパケット350の先頭を含むので、A10連結フラグ370の1ビット目を1、2ビット目を0とする。PDSN3は、A10パケット369がIPパケット350の後尾を含むので、A10連結フラグ371の1ビット目を0、2ビット目を1とする。また、PDSN3はIPパケット351をデータフラグメント354、355に分割し、それぞれA10パケット372、373を構成してPCF4へ送信する。PDSN3は、A10パケット372がIPパケット351の先頭を含むので、A10連結フラグ374の1ビット目を1、2ビット目を0とする。PDSN3は、A10パケット373がIPパケット351の後尾を含むので、A10連結フラグ375の1ビット目を0、2ビット目を1とする。
PCF4はA10パケット368、369、372、373を受信し、それぞれからA8パケット388、389、392、393を構成し、AP5に送信する。このとき、PCF4はA10連結フラグ370をA8連結フラグ390にコピーする。PCF4はA10連結フラグ371をA8連結フラグ391にコピーする。PCF4はA10連結フラグ374をA8連結フラグ394にコピーする。PCF4はA10連結フラグ375をA8連結フラグ395にコピーする。
AP5のコネクション#1にIPパケット350のデータフラグメントを含むA8パケット388、389が入力されたとする。またAP5のコネクション#2にIPパケット351のデータフラグメントを含むA8パケット392、393が入力されたとする。
このときAP5は、それぞれのコネクション内ではIPパケットの情報の並びを保つ順序でA8パケットを受信するとする。AP5の制御部326はデータフラグメント352、353、354、355を記憶部325の送信バッファ113に格納する。また、AP5の制御部326はテーブル450にデータフラグメント352、353、354、355の制御情報を設定する。制御部326はA8パケット388、389、392、393の順に行毎に制御情報を記録する。制御部326はAP5が受信したA8パケットのIPヘッダを451に書き込む。制御部326はAP5が受信したA8パケットのGREヘッダを452に書き込む。制御部326は、バッファ113においてAP5が受信したA8パケットのデータフラグメントを保持する開始アドレスを452に書き込む。制御部326は、バッファ113においてAP5が受信したA8パケットのデータフラグメントを保持する終了アドレスを453に書き込む。制御部326はAP5が受信したA8パケットの受信時刻を455に書き込む。ここで時刻はAP5のタイマ327で計測する。
AP5は送信バッファ113に格納されたデータフラグメントから、制御部326のスケジューラ機能が指示するタイミングに従って無線伝送のためのパケットを作成する。無線伝送のためのパケットとは例えばRLPパケットである。また例えばECBであっても良い。
制御部326はテーブル450のGREヘッダ452を参照し、データフラグメント352、353と354、355がそれぞれIPパケット350、351を構成していることを判断する。
制御部326はIPパケット350のデータフラグメント352、353を連続してRLPパケット396に格納する。また制御部326はIPパケット351のデータフラグメント354、355を連続してRLPパケット396に格納する。
このとき、制御部326はIPパケットのデータフラグメントの順序を保ってRLPパケットに格納する。例えば、IPパケット350については、データフラグメント352、353の順に連続してRLPパケット396に格納する。IPパケット351については、可能ならデータフラグメント354、355の順にRLPパケット396に格納する。あるいは、RLPパケット396に十分な余地が無ければデータフラグメント354をまずRLPパケット396に格納する。次のRLPパケットに続けてデータフラグメント355を格納する。
制御部326はIPパケット単位が揃ったことを確認してから、データフラグメントを連続してRLPパケットに格納しても良い。例えば制御部326はA8連結フラグを含むGREヘッダ452を参照し、IPパケットの先頭のデータフラグメントとIPパケットの後尾のデータフラグメントが分かる。
またコネクション#1またはコネクション#2のIPパケットデータが欠落すると、APから何時までたってもIPパケットのデータが送信されないことが起こりえる。制御部326はIPパケットの先頭のデータフラグメントを受信してから一定時間以上、IPパケットの後尾のデータフラグメントを受信しなかった場合、該IPパケットのデータフラグメントを廃棄しても良い。次に、APにおいてデータフラグメントを廃棄する実施例を示す。
AP5からIPパケットの纏まりでパケットを送信制御する他の例を示す。本例のAP5のバッファの1例を図21に示す。
IPパケット80のIPヘッダのTOSにEFが設定されていたとする。PDSN3はA10パケット86、87,88を作成するとき、それぞれのIPヘッダ92、95、98のTOSフィールドの値をEFとする。またPDSN3はIPヘッダ92、95、98のLengthフィールドにそれぞれA10パケット86、87、88の長さを設定する。PDSN3はA10パケット86、87、88をPCF4に送信する。
PCF4はA8パケット186、187,188を作成するとき、それぞれのIPヘッダ192、195、198のTOSフィールドの値をEFとする。またPDF4はIPヘッダ192、195、198のLengthフィールドにそれぞれA8パケット186、187、188の長さを設定する。PCF4はA8パケット186、187、188をAP5に送信する。
AP5のバッファ113に既にデータフラグメント110が格納されているとする。AP5の格納情報管理テーブル450の行460がデータフラグメント110の制御情報とする。AP5がA8パケット186を受信すると、制御部326はA8パケットの制御情報を行461の451、452、453、454に記録する。また、制御部326はA8パケット186の受信時刻をタイマ327で計測し、行461の455に記録する。制御部326はデータフラグメント94をバッファ113に格納する。AP5がA8パケット187を受信すると、制御部326はA8パケットの制御情報を行461の次の行の451、452、453、454に記録する。また、制御部326はA8パケット187の受信時刻をタイマ327で計測し、行461の次の行の455に記録する。制御部326はデータフラグメント97をバッファ113に格納する。
制御部326は、GREなどに含まれるA8連結フラグに基づいてデータフラグメント94がIPパケット80の先頭のデータフラグメントであると判断し、行461の入力時刻455を基準として一定時間、最後尾のデータフラグメント100の到着を待つ。図21に示す通りIPパケット80の先頭のデータフラグメント94がAP5に入力されてから一定時間以上、最後尾のデータフラグメント100がAP5に入力されないとする。IPパケット80のデータフラグメント97まで入力された状況とする。制御部326は行461のGREヘッダ452のA8連結フラグを参照し、IPパケット80の最後尾のデータフラグメントであるか判断する。データフラグメント94、97だけではIPパケットは再構成できない。またA8パケット転送の遅延が大きく、AP5が更にIPパケット80の最後尾の情報を含むデータフラグメント100の到着を待っても、IPパケット伝送の遅延時間が大きくなる。そこでAP5はIPパケット80のデータフラグメントを廃棄する。
先ず制御部326が格納情報管理テーブル450のGREヘッダ452のA8連結フラグを参照して廃棄するデータを検索する。制御部326は最後尾である461の次の行から遡ってA8連結フラグを参照しIPパケットの先頭のデータフラグメントを特定する。制御部326は461の行のA8連結フラグからデータフラグメント94がIPパケット80の先頭と判断する。制御部326は廃棄するデータが461の行以降の行で管理されるデータフラグメントと判断する。制御部326は各行の開始アドレス453から終了アドレス454で指定される領域の情報を廃棄する。AP5の制御部326はバッファ113より既に受信したデータフラグメント94、97を廃棄する。さらに、制御部326は格納情報管理テーブル450において、それぞれデータフラグメント94と97に対応する行461と行461の次の行の情報を廃棄する。さらにAP5の制御部326はIPパケット80の最後尾のデータフラグメント100を受信するまで、あるいは次のIPパケットの先頭のデータフラグメントを受信するまでに、受信したA10パケットを、IPパケット80のデータフラグメントであると判断して廃棄する。
ここで前記一定時間はTOSに指定されるクラス別に設定しても良い。例えば、一定時間としてTOSがEFの場合に最短とし、TOSがAFの場合にはEFの場合より長く設定しても良い。
IPパケットを分割して作成する、他のパケットフォーマットの1例を図22に示す。400はA8パケットまたはA10パケットである。401はIPヘッダである。402はGREヘッダである。403はGREには含まれないA8またはA10連結フラグである。404はプロトコルでフィールド405に格納されるデータのプロトコルを示す。405は例えばデータフラグメント352、また例えばデータフラグメント353を格納するフィールドである。IPヘッダにプロトコルフィールドがあり、IPパケットペイロードに格納されるプロトコルを示す。GREパケットを格納する場合、パケットを作成するPDSNまたはPCFはIPヘッダのプロトコルフィールドにGREパケットを格納することを示す値を設定する。
A8コネクションまたはA10コネクションでデータ伝送に用いられるGREパケットのフォーマットはIETF ( The Internet Engineering Task Force )のRFC2784、RFC2890に規定されている。GREヘッダにProtocol Typeフィールドがあり、Protocol Type の情報はGREパケットペイロードに格納されるプロトコルを示す。例えば、構造の無いバイトストリーム(Unstructured Byte Stream)をGREパケットペイロードに格納する場合は、Protocol Typeフィールドの値は0x8881である。今、図22に示すパケットフォーマットを用いる場合、GREパケットペイロードにA8またはA10連結フラグ403と、プロトコル404と、構造の無いバイトストリーム405とを格納する。このときGREパケットを作成するPDSN3またはPCF4はGREヘッダ402のProtocol TypeフィールドにA8またはA10連結フラグ403と、プロトコル404と、405のフィールドのデータとを格納することを示す値を設定する。さらにGREパケットを作成するPDSN3またはPCF4は、プロトコル404に、405のフィールドのデータが構造の無いバイトストリーム(Unstructured Byte Stream)であることを示す値を設定する。
IPパケットを分割して作成する、他のパケットフォーマットの1例を図23に示す。400はA8パケットまたはA10パケットである。401はIPヘッダである。402はGREヘッダである。403はGREには含まれないA8またはA10連結フラグである。404はプロトコルでフィールド405に格納されるデータのプロトコルを示す。405は例えばデータフラグメント352、また例えばデータフラグメント353を格納するフィールドである。406はGREには含まれない、タイムスタンプを格納するフィールドである。例えばA10パケットを作成する場合、PDSN3がフィールド406にPDSN3へのIPパケットの入力時刻情報を設定する。また例えばPCF4がA10パケットを受信してA8パケットを作成する場合、PCF4はA8パケットのフィールド406をA10パケットのフィールド407にコピーする。
IPヘッダにプロトコルフィールドがあり、IPパケットペイロードに格納されるプロトコルを示す。GREパケットを格納する場合、パケットを作成するPDSNまたはPCFはIPヘッダのプロトコルフィールドにGREパケットを格納することを示す値を設定する。
今、図23に示すパケットフォーマットを用いる場合、GREパケットペイロードにA8またはA10連結フラグ403と、タイムスタンプ406と、プロトコル404と、構造の無いバイトストリーム405とを格納する。このときGREパケットを作成するPDSN3またはPCF4はGREヘッダ402のProtocol TypeフィールドにA8またはA10連結フラグ403と、タイムスタンプ406と、プロトコル404と、405のフィールドのデータとを格納することを示す値を設定する。さらにGREパケットを作成するPDSN3またはPCF4は、プロトコル404に、405のフィールドのデータが構造の無いバイトストリーム(Unstructured Byte Stream)であることを示す値を設定する。
IPパケットを分割して作成する、他のパケットフォーマットの1例を図24に示す。400はA8パケットまたはA10パケットである。401はIPヘッダである。402はGREヘッダである。403はGREに含まれるA8またはA10連結フラグである。406はGREに含まれる、タイムスタンプを格納するフィールドである。405は例えばデータフラグメント352、また例えばデータフラグメント353を格納するフィールドである。例えばA10パケットを作成する場合、PDSN3がフィールド406にPDSN3へのIPパケットの入力時刻情報を設定する。また例えばPCF4がA10パケットを受信してA8パケットを作成する場合、PCF4はA8パケットのフィールド406をA10パケットのフィールド407にコピーする。
A8コネクションまたはA10コネクションでデータ伝送に用いられるGREパケットのフォーマットはIETF ( The Internet Engineering Task Force )のRFC2784、RFC2890に規定されている。A8またはA10連結フラグ403、およびタイムスタンプ406は例えば従来のGREヘッダ内の未使用の領域を新たに割り当てても良い。また例えば従来のGREヘッダのフォーマットを再定義してA8またはA10連結フラグ403およびタイムスタンプ406を設けても良い。IPヘッダにプロトコルフィールドがあり、IPパケットペイロードに格納されるプロトコルを示す。GREパケットを格納する場合、パケットを作成するPDSNまたはPCFはIPヘッダのプロトコルフィールドにGREパケットを格納することを示す値を設定する。
今、図24に示すパケットフォーマットを用いる場合、GREパケットペイロードに構造の無いバイトストリーム405を格納する。このときGREパケットを作成するPDSN3またはPCF4はGREヘッダ402のProtocol Typeフィールドに405のフィールドのデータが構造の無いバイトストリーム(Unstructured Byte Stream)であることを示す値を設定する。
図25に本発明の遅延、ジッタ制御のためのパケット伝送制御の1例を示す。PDSN3のタイマ254とAP5のタイマ327は何らかの方法で同期が取れているものとする。例えばAP5とPDSN3がGPS受信機を備え、GPS衛星から受信する信号を用いて同期しても良い。あるいは、例えばNTP(Network Time Protocol)等のプロトコルを用いて図1に示すネットワーク内でのメッセージ交換により同期しても良い。
PDSN3のネットワークインタフェース255がIPパケット420、421、422を受信したとする。PDSN3はIPパケットを分割してA10パケットを作成し、PCF4に送信する。PDSN3の制御部252は受信したIPパケットからPPPフレームを作成し、PPPフレームを分割しても良い。例えばPDSN3、又はPDF4が図24に示すパケットフォーマットでA10パケット、又はA8パケットを作成するとする。図23に示すパケットフォーマットでA10パケットおよびA8パケットを作成しても良い。制御部252はタイマ254が刻むカウンタの値を参照してIPパケット420、421、422の受信時刻を測定し、A10パケットのタイムスタンプ406に該時刻を設定する。なお、以下では簡略のため、PDSN3がA10パケットの送信管理を行う例を説明するが、PCFを用いたA8パケットの送信管理も同様に行うことができる。
制御部252はIPパケット420をデータフラグメント423,424に分割し、それぞれA10パケット473、474を作成する。制御部252はA10パケット473、474のタイムスタンプ406にIPパケット420の受信時刻を設定する。今PDSN3で測定されたIPパケット420の受信時刻をaとする。データフラグメント423はIPパケット420の先頭を含み、またIPパケット420の後尾を含まない。そこで制御部252はA10パケット473のA10連結フラグ403の1ビット目を1、2ビット目を0に設定する。データフラグメント424はIPパケット420の先頭を含まず、またIPパケット420の後尾を含む。そこで制御部252はA10パケット474のA10連結フラグ403の1ビット目を0、2ビット目を1に設定する。
制御部252はIPパケット421からA10パケット475を作成する。制御部252はA10パケット475のタイムスタンプ406にIPパケット421の受信時刻を設定する。今PDSN3で測定されたIPパケット421の受信時刻をbとする。データフラグメント425はIPパケット420の先頭を含み、またIPパケット420の後尾を含む。そこで制御部252はA10パケット473のA10連結フラグ403の1ビット目を1、2ビット目を1に設定する。
制御部252はIPパケット422をデータフラグメント426,427に分割し、それぞれA10パケット476、477を作成する。制御部252はA10パケット476、477のタイムスタンプ406にIPパケット422の受信時刻を設定する。今PDSN3で測定されたIPパケット422の受信時刻をcとする。データフラグメント426はIPパケット422の先頭を含み、またIPパケット422の後尾を含まない。そこで制御部252はA10パケット476のA10連結フラグ403の1ビット目を1、2ビット目を0に設定する。データフラグメント427はIPパケット422の先頭を含まず、またIPパケット422の後尾を含む。そこで制御部252はA10パケット477のA10連結フラグ403の1ビット目を0、2ビット目を1に設定する。
PCF4のネットワークインタフェース306がA10パケットを受信する。受信されたデータフラグメントおよび制御情報は記憶部307に保持される。PCF4にてA10からA8へのインターフェース変換を行う。即ち、PCF4のCPU308はA10パケット473においてIPヘッダ501、GREヘッダ502を付け替え、A8パケット473を作成する。PCF4のCPU308はA10パケット474においてIPヘッダ503、GREヘッダ504を付け替え、A8パケット474を作成する。PCF4のCPU308はA10パケット475においてIPヘッダ505、GREヘッダ506を付け替え、A8パケット475を作成する。PCF4のCPU308はA10パケット476においてIPヘッダ507、GREヘッダ508を付け替え、A8パケット476を作成する。PCF4のCPU308はA10パケット477においてIPヘッダ509、GREヘッダ510を付け替え、A8パケット477を作成する。A10パケットと該A10パケットを変換したA8パケットとで、A10またはA8連結フラグ403、タイムスタンプ406の情報は同じとする。またA10パケットをさらに複数に分割してA8パケットを作成する場合、該複数のA8パケットにおいてタイムスタンプ406の情報は同じとする。PCF4はネットワークインタフェース301よりA8パケット473、474、475、476、477をAP5に送信する。
AP5のネットワークインタフェース320がA8パケット473、474、475、476、477を受信する。AP5がA8パケットを受信すると、制御部326はA8パケットの制御情報を格納情報管理テーブル450に記録する。制御部326はAP5が受信したA8パケットのIPヘッダを451に書き込む。制御部326はA8連結フラグ403およびタイムスタンプ406を含むGREヘッダを452に書き込む。制御部326は、バッファ113においてAP5が受信したA8パケットのデータフラグメントを保持する開始アドレスを452に書き込む。制御部326は、バッファ113においてAP5が受信したA8パケットのデータフラグメントを保持する終了アドレスを453に書き込む。制御部326はAP5が受信したA8パケットの受信時刻を455に書き込む。ここで時刻はAP5のタイマ327で計測する。さらに、制御部326は受信したA8パケットのデータフラグメント423、424、425、426、427を記憶部325内の領域として定義されたバッファ113に格納する。また制御部326は、管理テーブル450に記録されたA8連結フラグ403およびタイムスタンプ406を用いてRLPパケットを作成し、RLPパケットの送信タイミングを制御する。
制御部326はIPパケット420のデータフラグメント423、424からRLPパケット430を作成する。制御部326は、RLPパケットをプロトコルが規定する長さにするために、パディング433をRLPパケット430に詰めて長さを調節しても良い。制御部326はIPパケット431のデータフラグメント425からRLPパケット431を作成する。制御部326は長さを調節するためにパディング434をRLPパケットに詰めても良い。制御部326はIPパケット432のデータフラグメント426、427からRLPパケット432を作成する。制御部326は長さを調節するためにパディング435をRLPパケットに詰めても良い。またパディング433、434、435ではなくデータフラグメントを詰めても良い。例えば、遅延やジッタについて寛容なベストエフォートクラスのIPパケットを構成するデータを詰めても良い。
制御部326はRLPパケット430を時刻aa、RLPパケット431を時刻bb、RLPパケット432を時刻ccに送信する制御を行う。ここで一定の遅延時間をDとすると、aaはaにDを加えた時刻、bbはbにDを加えた時刻、ccはcにDを加えた時刻として表される。制御部326は管理テーブル450のGREヘッダ452に含まれるタイムスタンプ406を参照し、時刻a,b,cを検知する。Dは制御部326が、RLPパケットの若しくはRLPパケットを構成する情報の、記憶部325での滞在時間を制御して加える。前述の通りPDSN3のタイマ254とAP5のタイマ327が同期している。AP5の制御部326はタイマ327で計測される時刻をD遅延させた時刻に無線パケットを送信する制御を行う。AP5はRLPパケットから無線信号を作成し、アンテナ328から送信する。
制御部326は可能な限りRLPパケット430を時刻aa、RLPパケット431を時刻bb、RLPパケット432を時刻ccに送信する制御を行う。例えば、AP5の記憶部325にRLPパケット430に格納するIPパケット420のTOSで指定される優先度より高い優先度のデータがあったとする。このとき制御部326はIPパケット420より高い優先度のデータの送信を優先し、結果としてRLPパケット430の送信時刻が時刻aaより遅れても良い。 また例えばRLPパケット430の送信タイミングがスロットとして量子化されている場合、制御部326は可能な限り時刻ccに近いスロットにおいて送信しても良い。
図29に本発明の遅延、ジッタ制御のためのパケット伝送制御の他の1例を示す。PDSN3のタイマ254とAP5のタイマ327は何らかの方法で同期が取れているものとする。例えばAP5とPDSN3がGPS受信機を備え、GPS衛星から受信する信号を用いて同期しても良い。あるいは、例えばNTP(Network Time Protocol)等のプロトコルを用いて図1に示すネットワーク内でのメッセージ交換により同期しても良い。AP5が通信するMSが複数ある場合、IPパケット単位の伝送制御をAP5での各MSへの通信時間の割り当て制御(スケジューリング)で行う事が出来る。
PDSN3のネットワークインタフェース255がIPパケット620、621、622を受信したとする。IPパケット620はMS8宛て、IPパケット621、622はMS340宛てとする。PDSN3はIPパケットを分割してA10パケットを作成し、PCF4に送信する。PDSN3の制御部252は受信したIPパケットからPPPフレームを作成し、PPPフレームを分割しても良い。例えばPDSN3、又はPCF4が図24に示すパケットフォーマットでA10パケット、またはA8パケットを作成するとする。制御部252はタイマ254が刻むカウンタの値を参照してIPパケット620、621、622の受信時刻を測定し、A10パケットのタイムスタンプ406に該時刻を設定する。なお、以下では簡略のため、PDSN3がA10パケットの送信管理を行う例を説明するが、PCFを用いたA8パケットの送信管理も同様に行うことができる。
制御部252はIPパケット620をデータフラグメント623,624に分割し、それぞれA10パケット673、674を作成する。制御部252はA10パケット673、674のタイムスタンプ406にIPパケット620の受信時刻を設定する。今PDSN3で測定されたIPパケット620の受信時刻をaとする。データフラグメント623はIPパケット620の先頭を含み、またIPパケット620の後尾を含まない。そこで制御部252はA10パケット673のA10連結フラグ403の1ビット目を1、2ビット目を0に設定する。データフラグメント624はIPパケット620の先頭を含まず、またIPパケット620の後尾を含む。そこで制御部252はA10パケット674のA10連結フラグ403の1ビット目を0、2ビット目を1に設定する。
制御部252はIPパケット621からA10パケット675を作成する。制御部252はA10パケット675のタイムスタンプ406にIPパケット621の受信時刻を設定する。今PDSN3で測定されたIPパケット621の受信時刻をbとする。データフラグメント625はIPパケット620の先頭を含み、またIPパケット620の後尾を含む。そこで制御部252はA10パケット673のA10連結フラグ403の1ビット目を1、2ビット目を1に設定する。
制御部252はIPパケット622をデータフラグメント626,627に分割し、それぞれA10パケット676、677を作成する。制御部252はA10パケット676、677のタイムスタンプ406にIPパケット622の受信時刻を設定する。今PDSN3で測定されたIPパケット622の受信時刻をcとする。データフラグメント626はIPパケット622の先頭を含み、またIPパケット622の後尾を含まない。そこで制御部252はA10パケット676のA10連結フラグ403の1ビット目を1、2ビット目を0に設定する。データフラグメント627はIPパケット622の先頭を含まず、またIPパケット622の後尾を含む。そこで制御部252はA10パケット677のA10連結フラグ403の1ビット目を0、2ビット目を1に設定する。
PCF4のネットワークインタフェース306がA10パケットを受信する。受信されたデータフラグメントおよび制御情報は記憶部307に保持される。PCF4にてA10からA8へのインターフェース変換を行う。即ち、PCF4のCPU308はA10パケット673においてIPヘッダ641、GREヘッダ642を付け替え、A8パケット673を作成する。PCF4のCPU308はA10パケット674においてIPヘッダ643、GREヘッダ644を付け替え、A8パケット674を作成する。PCF4のCPU308はA10パケット675においてIPヘッダ645、GREヘッダ646を付け替え、A8パケット675を作成する。PCF4のCPU308はA10パケット676においてIPヘッダ647、GREヘッダ648を付け替え、A8パケット676を作成する。PCF4のCPU308はA10パケット677においてIPヘッダ649、GREヘッダ670を付け替え、A8パケット677を作成する。A10パケットと該A10パケットを変換したA8パケットとで、A10またはA8連結フラグ403、タイムスタンプ406の情報は同じとする。またA10パケットをさらに複数に分割してA8パケットを作成する場合、該複数のA8パケットにおいてタイムスタンプ406の情報は同じとする。PCF4はネットワークインタフェース301よりA8パケット673、674、675、676、677をAP5に送信する。AP5は受信したA8パケットのGREヘッダを参照し、A8パケットの宛先を判断する。AP5の制御部326は記憶部325内の受信バッファにA8パケットを宛先毎に分けて格納する。
AP5のネットワークインタフェース320がA8パケット673、674、675、676、677を受信する。受信情報を保持する記憶部325内のバッファを図30に示す。AP5の制御部326はA8パケットの制御情報を参照してデータフラグメント623、624をMS8用のバッファ651に格納する。AP5の制御部326はA8パケットの制御情報を参照してデータフラグメント625、626、627をMS340用のバッファ652に格納する。
AP5がA8パケットを受信すると、制御部326はA8パケットの制御情報を記憶部325内の格納情報管理テーブル653、654に記録する。格納情報管理テーブル653、654の例を図31に示す。制御部326はMS8向けの情報を格納情報管理テーブル653に記録し、MS340向けの情報を格納情報管理テーブル654に記録する。
制御部326はAP5が受信した、A8パケット673、674それぞれのIPヘッダ641、643を661に書き込む。制御部326はA8連結フラグ403およびタイムスタンプ406を含むGREヘッダ642、644を662に書き込む。制御部326は、バッファ651においてAP5が受信したA8パケットのデータフラグメントを保持する開始アドレスを663に書き込む。制御部326は、バッファ651においてAP5が受信したA8パケットのデータフラグメントを保持する終了アドレスを664に書き込む。制御部326はAP5が受信したA8パケットの受信時刻を665に書き込む。ここで時刻はAP5のタイマ327で計測する。制御部326はA8パケット673の制御情報を行680に記録する。また制御部326はA8パケット674の制御情報を行681に記録する。
制御部326はAP5が受信した、それぞれA8パケット675、676、677のIPヘッダ645、647、649を671に書き込む。制御部326はA8連結フラグ403およびタイムスタンプ406を含むGREヘッダ646、648、650を672に書き込む。制御部326は、バッファ652においてAP5が受信したA8パケットのデータフラグメントを保持する開始アドレスを673に書き込む。制御部326は、バッファ652においてAP5が受信したA8パケットのデータフラグメントを保持する終了アドレスを674に書き込む。制御部326はAP5が受信したA8パケットの受信時刻を675に書き込む。ここで時刻はAP5のタイマ327で計測する。制御部326はA8パケット675の制御情報を行684に記録する。また制御部326はA8パケット676の制御情報を行685に記録する。また制御部326はA8パケット677の制御情報を行686に記録する。
従来のスケジューリングではMS8,MS340がAP5にDRCを送信する。AP5はDRCを受信し、AP5の制御部326がMS8とMS340についてDRC/Rを計算する。制御部326はDRC/Rが最大の移動局宛ての情報を用いてRLPパケットを作成し、送信する。これに対して、本発明のスケジューリングは以下である。
以下にIPパケットの遅延時間を考慮したスケジューリングの例を説明する。本例では送信する情報のPDSN3への入力時刻からの経過時間が大きくなるに従って、AP5の制御部326が前記送信情報の優先度を高くするスケジューリングを行う。例えば、制御部326が各移動局、MS8とMS340とについて数1を計算する。
制御部326は数1が最大となる移動局宛ての情報を用いてRLPパケットを作成し送信する。ここで(DRC/R)iはMSiについてのDRC/Rである。例えば図1に示すシステムではiは8または340である。fは補正関数、tはタイマ327の時刻である。tPDSNは、記憶部325に保持された当該移動局宛てのデータフラグメントを含む、IPパケットがPDSN3に入力された時刻のうち最も過去の時刻である。図29、図30および図31において、例えばMS8についてtPDSNは時刻a、MS340についてtPDSNは時刻bである。AP5は管理テーブル653、654を参照して、記憶部325に保持された当該移動局宛てのデータフラグメントを含む、IPパケットがPDSN3に入力された時刻を検知することが出来る。数1は一般的な表現であって、例えば数1が数2であってもよい。
数2において、α、βは正定数とする。数2によれば、当該移動局宛てのデータフラグメントが記憶部325に保持された状態で時間経過すると、補正関数[α+β(t-tPDSN)]の値が大きくなる。結果として、当該移動局に送信時間が割り当てられ易くなり、該データフラグメントの伝送遅延を小さく出来る。
図29に期間602におけるスケジューリングの例を示す。従来のスケジューリング方式では図28に示したように、DRC/Rの値によって、期間602は全てMS340への送信時間に当てられる。
本発明の制御で制御部326は時刻aaa に、MS8について(DRC/R)8[α+β(aaa-a)]を計算し、MS340について(DRC/R)340[α+β(aaa-b)]を計算して両値を比較する。(DRC/R)340[α+β(aaa-b)]の方が(DRC/R)8[α+β(aaa-a)]より大きかったとする。制御部326はMS340宛てのデータセグメント625からRLPパケット631を作成し、無線伝搬路に送信する。制御部326は、バッファ652において送信完了したデータセグメント625をデータセグメント626、627で上書きする。また制御部326は管理テーブル654において、送信完了した情報が記録された行684を行685で上書きし、行685を行686で上書きする。さらに制御部326は開始アドレス673、終了アドレス674を更新する。
制御部326は時刻bbb に、MS8について(DRC/R)8[α+β(bbb-a)]を計算し、MS340について(DRC/R)340[α+β(bbb-c)]を計算して両値を比較する。(DRC/R)8[α+β(bbb-a)]の方が (DRC/R)340[α+β(bbb-b)]より大きかったとする。制御部326はMS8宛てのデータセグメント623、624からRLPパケット630を作成し、無線伝搬路に送信する。制御部326は、バッファ651において送信完了したデータセグメント623、624を廃棄する。制御部326は、MS8宛てのデータを含むA8パケットを受信したらデータフラグメントを図30の左詰めに格納する。また制御部326は、管理テーブル653の情報を廃棄する。
PDSN3にて、IPパケットの分割情報にIPパケットの区切りを示す情報を格納する他の例を図27に示す。PDSN3のプロトコルによってはIPパケットからフレームを作成し、フレームを分割してA10パケットを作成することがある。フレームの先頭や後尾に制御情報を付加するために、もともとのIPパケットが含まれないA10パケットもしくはA8パケットがそれぞれPDSNまたはPCFにおいて作成されることが有り得る。このとき、それぞれA10もしくはA8連結フラグは1つのIPパケットを含むフレームの先頭もしくは最後尾を表す。以下に例を説明する。
PDSN3のネットワークインタフェース255がIPパケット550を受信したとする。制御部252は受信情報を記憶部251に保持し、パケットの分解や組み立てを行う。PDSN3の制御部252はIPパケット550に制御情報562を付加してPPPパケット551を作成する。さらにフレーム84、85を作成する。制御部252はPPPパケット551の先頭に制御情報563、後尾に制御情報564を付加し、フレーム552を作成する。
PDSN3の制御部252はフレーム552をデータフラグメント573、576、…、579に分割し、それぞれA10パケット555、556、…、557を作成する。
このとき制御部252はデータフラグメント573にIPヘッダ571、GREヘッダ572を付加する。また、制御部252はデータフラグメント576にIPヘッダ574、GREヘッダ575を付加する。また、制御部252はデータフラグメント579にIPヘッダ577、GREヘッダ578を付加する。図27に示すようにA10パケット555のデータフラグメントはフレーム552の先頭の情報を含むが、PDSN3が受信したIPパケット550の先頭の情報は含まない。また、A10パケット557のデータフラグメントはフレーム552の後尾の情報を含むが、PDSN3が受信したIPパケット550の後尾の情報は含まない。
このときA10パケット555、556、…、557のGREヘッダにIPパケット単位のフレームの区切りを示す情報を格納するフィールドとしてそれぞれA10連結フラグ581、582、…、583を設ける。A10連結フラグは2ビットからなる。1ビット目はデータフラグメントがフレーム552の先頭の情報なら1、先頭でなければ0である。2ビット目はデータフラグメントがフレーム552の最後尾の情報なら1、最後尾でなければ0である。図のA10連結フラグは1ビット目を左に、2ビット目を右に記載している。本実施例では既存のGREヘッダを再定義してA10連結フラグのフィールドを設ける。例えば、既存のGREヘッダの制御に使用されていない領域(Reservedの領域)にA10連結フラグのフィールドを設けても良い。
データフラグメント573がIPパケット550の先頭の情報を含む。またデータフラグメント573がIPパケット550の最後尾の情報を含まない。そこで制御部252はデータフラグメント573に付加するA10連結フラグ581において、1ビット目を1、2ビット目を0とする。データフラグメント576はフレーム552の先頭の情報を含まず、またフレーム552の最後尾の情報も含まない。そこで制御部252はデータフラグメント576に付加するA10連結フラグ582において、1ビット目を0、2ビット目を0とする。データフラグメント579はフレーム552の先頭の情報を含まず、フレーム552の最後尾の情報を含む。そこで制御部252はデータフラグメント579に付加するA10連結フラグ583において、1ビット目を0、2ビット目を1とする。
PDSN3はフレーム552の情報の並びを保つ順序でネットワークインタフェース250よりA10パケットを送信する。例えばフレーム552については、PDSN3はフレーム552の先頭の情報を含むA10パケット555を先ず送信する。次にPDSN3はA10パケット556を送信する。最後にPDSN3はフレーム552の後尾の情報を含むA10パケット557を送信する。PCF4とAP5は前記例と全く同様にA8またはA10連結フラグを扱う。これによりPCF4とAP5はIPパケット550単位ではなく、IPパケットから作られたフレーム552単位の制御を行う。
また例えばPDSN3が、図24に示すフォーマットでA10パケットを作成するとする。このときPDSN3はA10パケット555、556、…、557のタイムスタンプ406に、PDSN3におけるIPパケット550の受信時刻を設定する。
本出願に係る発明としては、以下に記載するパケットのフォーマットをその範疇に含むものとする。
PSDN3またはPCF4から送信する送信パケットであって、IPヘッダに続くGREヘッダを備え、該GREヘッダは該送信パケットが、PSDNで受信された受信パケットの先頭または後尾に相当するデータフラグメントを含むか否かを示す連結フラグを含むことを特徴とする送信パケット。
上述の送信パケットのGREヘッダに、連結ヘッダに加えて、PSDNで受信された受信パケットのPSDNにおける受信時刻の情報を含むことを特徴とする送信パケット。
PSDN3またはPCF4から送信する送信パケットであって、IPヘッダに続くGREヘッダを備え、該GREヘッダに続いて、該送信パケットが、PSDNで受信された受信パケットの先頭または後尾に相当するデータフラグメントを含むか否かを示す連結フラグと、該パケットに格納される情報のプロトコルを表すプロトコル指示子とを記述するフィールドを備えることを特徴とする送信パケット。
上述の送信パケットであって、更に、PSDNで受信された受信パケットのPSDNにおける受信時刻の情報を記述するフィールドを備えることを特徴とする送信パケット。
ネットワーク構成の1例。
データーフローの1例。
パケットフォーマットの1例。
パケットフォーマットの1例。
無線送信単位のフォーマットの1例。
無線送信単位のフォーマットの1例。
IPパケットの分割処理の1例。
本発明のパケットフォーマットの1例。
本発明のパケットフォーマットの1例。
本発明のパケットフォーマットの1例。
本発明のPDSNの1例。
本発明のPCFの1例。
本発明のトラヒック制御部の1例。
本発明のAPの1例。
本発明の送信待ちバッファの1例。
本発明の送信待ちバッファの1例。
本発明の格納情報管理テーブルの1例。
本発明の送信待ちバッファの1例。
本発明のパケットフォーマットの1例。
本発明のパケットフォーマットの1例。
本発明の送信待ちバッファの1例。
本発明のパケットフォーマットの1例。
本発明のパケットフォーマットの1例。
本発明のパケットフォーマットの1例。
本発明のパケット伝送制御の1例。
無線送信単位のフォーマットの1例。
本発明のパケットフォーマットの1例。
APの送信スケジューリングの1例。
本発明のパケット伝送制御の1例。
本発明の送信待ちバッファの1例。
本発明の格納情報管理テーブルの1例。