(57)【要約】【課題】ＲＴＳＰを用いて音声や映像のストリーミング配信を行う際、ＮＡＰＴやＮＡＴ−ＰＴを用いる環境下であっても高ビットレートのストリーミング配信を可能とする。【解決手段】ＲＴＳＰのＳＥＴＵＰメッセージを受信した時、クライアントが通知するクライアントポート番号と同じ桁のポート番号をポート番号プールから割り当て、ＮＡＰＴテーブルに登録し、ＳＥＴＵＰメッセージをそのポート番号で書き換える。【選択図】図６
2011103566.tif 000002
【特許請求の範囲】
【請求項１】
パケット振り分け処理部と、ヘッダ変換部と、転送処理部とを備え、ＩＰアドレス変換テーブルを参照して、第１のＩＰアドレスと第２のＩＰアドレスとを変換するゲートウェイ装置において、
さらにペイロードＩＰアドレス変換部を備え、
このペイロードＩＰアドレス変換部は、制御メッセージのペイロードに含まれる第２のポート番号の桁数を取得して、同じ桁数の第１のポート番号に変換し、前記第２のポート番号と前記第１のポート番号とを前記ＩＰアドレス変換テーブルに記憶し、前記制御メッセージに対する応答メッセージに含まれる前記第１のポート番号を前記第２のポート番号に変換することを特徴とするゲートウェイ装置。
【請求項２】
請求項１に記載のゲートウェイ装置であって、
さらに変換ポート番号プールを備え、
この変換ポート番号プールは、複数の桁数の第１のポート番号を蓄え、
前記ペイロードＩＰアドレス変換部は、前記変換ポート番号プールから、前記第１のポート番号の割当を受けることを特徴とするゲートウェイ装置。
【請求項３】
請求項２に記載のゲートウェイ装置であって、
さらにエージング処理部を備え、
前記ＩＰアドレス変換テーブルは、それぞれのレコードに最後に使用した時刻情報を記録し、
前記エージング処理部は、前記時刻情報に基づいて、当該レコードに記録された前記第１のポート番号を前記変換ポート番号プールに返却することを特徴とするゲートウェイ装置。
【請求項４】
メッセージを受信して宛先ＩＰアドレスを判定するステップと、
アプリケーションプロトコルを判定するステップと、
メッソッドを判定するステップと、
転送方向を判定するステップと、
転送方向が上りのとき、前記メッセージのペイロードに記載された要求ポート番号の桁数を取得するステップと、同じ桁数のポート番号を割当てるステップと、ＩＰアドレス変換テーブルに記録するステップと、
転送方向が下りのとき、前記ＩＰアドレス変換テーブルから要求ポート番号を取得するステップと、
前記ペイロードを更新するステップと、
前記メッセージのヘッダに記載されたＩＰアドレスとポート番号とを変換するステップとを含むポート番号割当て方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ゲートウェイ装置およびポート番号割当て方法に係り、リアルタイムパケットを使用するゲートウェイ装置およびポート番号割当て方法に関する。
【背景技術】
【０００２】
今日、１つのグローバルアドレスを家庭あるいは企業内などにある複数の端末で共有するためにＮＡＰＴ（Network Address Port Translation）が広く利用されている（非特許文献１参照）。
【０００３】
また、異なるプロトコルを扱うネットワーク間、具体的にはプロトコルとしてＩＰｖ４（Internet Protocol version 4）を用いる網とＩＰｖ６（Internet Protocol version 6）を用いる網を相互に接続する方法として、ＮＡＴ−ＰＴ（Network Address Translation - Protocol Translation）が知られている（非特許文献２参照）。
【０００４】
これらＮＡＰＴおよびＮＡＴ−ＰＴは、ＩＰヘッダおよびＴＣＰ／ＵＤＰヘッダのポート番号を適宜変換することで異なるネットワーク間の相互接続を可能にしている。しかし、アプリケーションによっては、ＩＰヘッダおよびＴＣＰ／ＵＤＰヘッダの他にペイロードにアドレス、ポート番号を記載するものがある。この場合、ＮＡＰＴおよびＮＡＴ−ＰＴを実現するにあたって、ＩＰヘッダやＴＣＰ／ＵＤＰヘッダ以外にペイロード部分のアドレスやポート番号情報も書き換えが必要となる。
【０００５】
この変換機能の事をＡＬＧ（Application Level Gateway）と呼んでいる。一言でＡＬＧと言っても、アプリケーションによってペイロードにおけるアドレスやポート番号が記載されている位置が異なる。このため、アプリケーションごとに書き換えルールを定義する必要がある。
【０００６】
具体的には、ＳＩＰメッセージは、ペイロード部の書き換えを必要とする。特許文献１は、ＳＩＰメッセージを変換することで、ＮＡＴ−ＰＴを使用する環境下でＳＩＰメッセージによる相互接続を可能としている。
【０００７】
一方、音声、映像信号などのストリーミング配信を制御するプロトコルのＲＴＳＰ（Real Time Streaming Protocol）も、ペイロード部に変換を必要とする情報が書かれるプロトコルである。ＲＴＳＰは、ＳＥＴＵＰメソッドのメッセージ中にＲＴＰ／ＲＴＣＰ（Real-time Transport Protocol/RTP Control Protocol）で用いるクライアントポート番号が記述される。このため、ＮＡＰＴ処理またはＮＡＴ−ＰＴを行なう環境下ではＲＴＳＰ−ＡＬＧ（Real Time Streaming Protocol - Application Level Gateway）によってＳＥＴＵＰメッセージを書き換える必要がある。
【０００８】
ここで、クライアントがペイロードで伝えるクライアントポート番号の桁数と、ＮＡＰＴ処理によって割り当てられるポート番号の桁数が異なると、ＴＣＰのセグメント長が変換前と変換後で異なることになる。
【０００９】
ＴＣＰセグメント長が変わるということは、そのメッセージに対する確認応答番号およびその後に続くパケットのシーケンス番号も変わることになる。これは、確認応答番号として、シーケンス番号にＴＣＰセグメント長を加算した値を用いるからである。また、シーケンス番号として、前回のシーケンス番号に今回のＴＣＰセグメント長を加算した値を用いるからである。
【００１０】
セッションを矛盾無く保つには、ＮＡＰＴ処理またはＮＡＴ−ＰＴを行なう変換装置においてシーケンス番号、および確認応答番号に関する差分リストを持ち、それ以降に受信したパケットについて、シーケンス番号および確認応答番号を書き換える必要がある（非特許文献２参照）。一度ＴＣＰのセグメント長が変わると、後続のＴＣＰパケットのシーケンス番号に波及する。このため、この変換処理はセッション終了まで必要となる。
【００１１】
ＲＴＳＰは、配信方法として、ＵＤＰ配信とＩＬ（Interleave）配信の２通りが規定されている。そのうちのＩＬ配信は、ＲＴＳＰ制御メッセージ用のＴＣＰセッション上に、ＲＴＰ／ＲＴＣＰデータを重畳する。このため、セグメント長が変わった場合、シーケンス番号および確認応答番号の変換コストは、大きなものになる。
特許文献２は、上述した差分リストに加え、代理ＡＣＫを送信することによって、パケットがロストした場合に転送レートを下げない工夫を開示している。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００５−０７３３０２号公報
【特許文献２】特開２００９−０１５３９２号公報
【非特許文献】
【００１３】
【非特許文献１】P. Srisuresh、外１名、”IP Network Address Translator (NAT) Terminology and Considerations”、[online]、１９９９年８月、ＩＥＴＦ、[平成２１年１０月２３日検索]、インターネット＜http://www.ietf.org/rfc/rfc2663.txt?number=2663＞
【非特許文献２】G. Tsirtsis、外１名、”Network Address Translation - Protocol Translation (NAT-PT)”、[online]、２０００年２月、ＩＥＴＦ、[平成２１年１０月２３日検索]、インターネット＜http://www.ietf.org/rfc/rfc2766.txt?number=2766＞
【発明の概要】
【発明が解決しようとする課題】
【００１４】
非特許文献２および特許文献２の技術によればＲＴＳＰ  ＳＥＴＵＰメッセージの書き換えにより一度セグメント長が変わると、その後のパケットに対してシーケンス番号、確認応答番号の書き換え処理が続く。この結果、シーケンス番号および確認応答番号の変換コストがセッション終了までかかることになる。
【００１５】
本発明では、ＲＴＳＰ  ＳＥＴＵＰメッセージ書き換え時に、セグメント長が変わらないように工夫する。この結果、後続パケットのシーケンス番号および確認応答番号の書き換えを必要としないゲートウェイ装置およびポート払い出し方法を提供する。
【課題を解決するための手段】
【００１６】
上述した課題は、パケット振り分け処理部と、ヘッダ変換部と、転送処理部とを備え、ＩＰアドレス変換テーブルを参照して、第１のＩＰアドレスと第２のＩＰアドレスとを変換し、さらにペイロードＩＰアドレス変換部を備え、このペイロードＩＰアドレス変換部は、制御メッセージのペイロードに含まれる第２のポート番号の桁数を取得して、同じ桁数の第１のポート番号に変換し、第２のポート番号と第１のポート番号とをＩＰアドレス変換テーブルに記憶し、制御メッセージに対する応答メッセージに含まれる第１のポート番号を第２のポート番号に変換するゲートウェイ装置により、達成できる。
【００１７】
また、メッセージを受信して宛先ＩＰアドレスを判定するステップと、アプリケーションプロトコルを判定するステップと、メッソッドを判定するステップと、転送方向を判定するステップと、転送方向が上りのとき、メッセージのペイロードに記載された要求ポート番号の桁数を取得するステップと、同じ桁数のポート番号を割当てるステップと、ＩＰアドレス変換テーブルに記録するステップと、転送方向が下りのとき、ＩＰアドレス変換テーブルから要求ポート番号を取得するステップと、ペイロードを更新するステップと、メッセージのヘッダに記載されたＩＰアドレスとポート番号とを変換するステップとを含むポート番号割当て方法により、達成できる。
【発明の効果】
【００１８】
ＮＡＰＴ／ＮＡＴ−ＰＴを用いる環境下においても、ＲＴＳＰ  ＳＥＴＵＰメッセージの書き換え時セグメント長が変わることがないため、ＴＣＰのシーケンス番号および確認応答番号を書き換える必要がない。これにより書き換え処理による転送能力の低下を防止できる。また、差分リストおよびパケットがロスした場合を考慮した複雑な処理を必要としない。
【図面の簡単な説明】
【００１９】
【図１】ネットワークシステムのハードウェアブロック図である。
【図２Ａ】ＳＥＴＵＰパケットおよびその応答パケットを説明する図である。
【図２Ｂ】ＳＥＴＵＰパケットおよびその応答パケットを説明する図である。
【図２Ｃ】ＳＥＴＵＰパケットおよびその応答パケットを説明する図である。
【図２Ｄ】ＳＥＴＵＰパケットおよびその応答パケットを説明する図である。
【図３】ＮＡＰＴテーブルを説明する図である。
【図４】ゲートウェイ装置の構成を説明するブロック図である。
【図５】ゲートウェイ装置の処理を説明するフローチャートである。
【図６】ゲートウェイ処理を説明するフローチャートである。
【図７】ＲＴＳＰセッション確立から切断までのシーケンス図である。
【図８Ａ】ＲＴＳＰ  ＳＥＴＵＰメッセージ（ポート番号４桁）である。
【図８Ｂ】ＲＴＳＰ  ＳＥＴＵＰ応答メッセージ（ポート番号４桁）である。
【図９Ａ】ＲＴＳＰ  ＳＥＴＵＰメッセージ（ポート番号５桁）である。
【図９Ｂ】ＲＴＳＰ  ＳＥＴＵＰ応答メッセージ（ポート番号５桁）である。
【図１０】メッセージ書き換え前後のシーケンス番号と確認応答番号を説明するシーケンス図である。
【発明を実施するための形態】
【００２０】
以下、本発明の実施の形態について、実施例を用い図面を参照しながら、詳細に説明する。なお、実質同一部位には同じ参照番号を振り、説明は繰り返さない。
【００２１】
まず、図１を参照して、ゲートウェイ装置２００が適用されるネットワークシステム５００を説明する。図１において、ネットワークシステム５００は、
ＬＡＮ１０２に接続された複数台の端末１００と、ＬＡＮ１０２とＷＡＮ１０３を接続するゲートウェイ装置２００と、ＷＡＮ１０３に接続されたコンテンツサーバ３００とから構成される。
【００２２】
端末１００−１〜１００−３は、プライベートＩＰアドレス１１３−１〜１１３−３が付与されている。一方、ＷＡＮ１０３は、インターネット、通信キャリアが設ける地域網と接続され、グローバルＩＰアドレスが使われる。ＬＡＮ側ネットワーク１０２に属する端末１００−１〜１００−３からＷＡＮ側ネットワーク１０３のコンテンツサーバ３００にアクセスする際、ＮＡＴ機能を用いてアドレスおよびポート変換を行なうことで通信する。
【００２３】
図２を参照して、ＲＴＳＰのＳＥＴＵＰメッセージを説明する。図２において、メッセージ１０８のＩＰヘッダ１０９、ＴＣＰヘッダ１１０およびデータ部のメッセージ１１１はそれぞれ簡略化して表現している。図２Ａにおいて、まず、端末１００−１よりコンテンツサーバ３００向けにＳＥＴＵＰメッセージ１０８−１を送出している。
【００２４】
図２Ｂにおいて、ゲートウェイ装置２００は、パケット１０８−１を受信するとＷＡＮ１０３に属するコンテンツサーバ３００に転送するために、Ｓｒｃ  ＩＰ（送信元ＩＰアドレス）１９２.１６８.１.１０をゲートウェイ装置２００のＷＡＮ側Ｉ／Ｆ（ｉｎｔｅｒｆａｃｅ）のＩＰアドレス２.２.２.２（１１３−４）に変換する。併せて、Ｄｓｔ  Ｐｏｒｔ（送信元ポート番号）６００１もゲートウェイ装置２００が確保したポート番号４０００１に変換する。
【００２５】
ゲートウェイ装置２００は、この際ＮＡＰＴテーブル２２０に対応関係を記憶する。このゲートウェイ装置２００は、コンテンツサーバ３００からの応答メッセージ１０８−３を受信した際も、この対応関係を参照し、Ｄｓｔ  ＩＰ（送信先ＩＰアドレス）２.２.２.２を１９２.１６８.１.１０に、Ｄｓｔ  Ｐｏｒｔ（送信先ポート番号）４０００１を６００１と逆変換する。この結果、パケットが端末１００−１に届く。ここまでは、ＮＡＰＴの基本動作である。図２Ｃおよび図２Ｄは、コンテンツサーバ３００からの応答メッセージとその逆変換メッセージを表示している。
【００２６】
しかし、ゲートウェイ装置２００は、さらにＳＥＴＵＰメッセージ１１１を受信した際に、データ部の「ｃｌｉｅｎｔ＿ｐｏｒｔ＝」に続く番号（−で区切られている場合はその前後の番号）と変換ポート番号および送信元ＩＰアドレス、変換ＩＰアドレスの組をＮＡＰＴテーブル２２０に登録する。後で詳述するが、この時割り当てる変換ポート番号は、通知されたポート番号と同じ桁数のポート番号を割り当てる。そうすることで、データ部のデータ長が変わらないため、ＴＣＰにおけるシーケンス番号および確認応答番号に影響を与えなくなる。
【００２７】
図３を参照して、ＮＡＰＴテーブル２２０を説明する。図３において、ＮＡＰＴテーブル２２０は、送信元ＩＰアドレス２２１、送信元ポート番号２２２、変換ＩＰアドレス２２３、変換ポート番号２２４、最終使用日時２２５から構成される。
【００２８】
送信元ＩＰアドレス２２１は、ＬＡＮ１０２で使用されるプライベートＩＰアドレスである。送信元ポート番号２２２は、ＬＡＮ１０２に接続された端末１００−１のポート番号である。変換ＩＰアドレス２２３は、ゲートウェイ装置２００のＷＡＮ側ＩＰアドレスである。変換ポート番号２２４は、ゲートウェイ装置２００のＷＡＮ側ポート番号である。最終使用日時２２５は、当該エントリを最後に作成または参照した日時である。最終使用日時２２５は、当該エントリの削除に使用する。
【００２９】
ＬＡＮからＷＡＮに抜ける初発パケット受信時、およびＲＴＳＰ−ＳＥＴＵＰ受信時にエントリが追加される。それ以降に受信したパケットは、上りパケットは送信元ＩＰアドレス２２１と送信元ポート番号２２２をキーに変換ＩＰアドレス２２３と変換ポート番号２２４を参照する。下りパケットの場合は、変換アドレス２２３と変換ポート番号２２４をキーに送信元ＩＰアドレス２２１と送信元ポート番号２２２を参照する。一定時間使われなかったエントリは、エージング処理によって削除される。
【００３０】
図３で強調されたエントリ２、３、６、７は、ＲＴＳＰ−ＡＬＧ処理によって登録されたエントリである。エントリ２、３の送信元ポート番号は、４桁であるため、変換ポート番号も４桁のポート番号を割り当てられている。エントリ６、７の送信元ポート番号は、５桁であるため、変換ポート番号も５桁のポート番号が割り当てられている。通常のＮＡＰＴ処理によってエントリされた１、４、５、８のエントリは、送信元ポート番号の桁を意識することなく変換ポート番号を割り当てても問題ない。したがって、桁数に関係無く空きポート番号を順次割り当てられている。
【００３１】
図４を参照して、ゲートウェイ装置２００の構成を説明する。ゲートウェイ装置２００は、パケット受信処理部２０１、パケット振り分け処理部２０２、転送処理部２０３、パケット送信処理部２０４、ＮＡＰＴ処理部２０５、ＲＴＳＰ−ＡＬＧ処理部２０６、変換ポート番号プール２０７、エージング処理部２０８、ＮＡＰＴテーブル２２０から構成される。
【００３２】
ＬＡＮ  Ｉ／ＦまたはＷＡＮ  Ｉ／Ｆのパケット受信処理部２０１は、ＬＡＮまたはＷＡＮからパケットを受信する。パケット受信処理部２０１は、受信したパケットをパケット振り分け処理部２０２に転送する。パケット振り分け処理部２０２は、パケットの内容によって転送処理部２０３、ＮＡＰＴ処理部２０５、ＲＴＳＰ−ＡＬＧ処理部２０６に振り分ける。パケット振り分け処理部２０２は、同一ネットワーク内の転送処理など、ＮＡＰＴ処理が必要無い場合、転送処理部２０３に振り分ける。一方、ＬＡＮ側ネットワーク内１０２にある端末からＷＡＮ側ネットワーク１０３にあるサーバにパケットが送信された場合、パケット振り分け処理部２０２は、ＮＡＰＴ処理部２０５に振り分ける。
【００３３】
ＮＡＰＴ処理部２０５は、まずＮＡＰＴテーブル２２０を参照する。エントリが無い場合、ＮＡＰＴ処理部２０５は、初めて通過するパケットとして、変換ポート番号を変換ポート番号プール２０７より使用可能なポート番号を割当てを受ける。ＮＡＰＴ処理部２０５は、ＩＰヘッダ、ＴＣＰヘッダにあるＩＰアドレス、ポート番号を書き換える。ＮＡＰＴ処理部２０５は、同時にＮＡＰＴテーブル２２０にエントリする。２回目以降に受け取ったパケットおよびサーバからの応答パケットについて、ＮＡＰＴ処理部２０５は、ＮＡＰＴテーブル２２０を参照して、パケットを書き換え転送する。
【００３４】
特にパケット振り分け処理部２０２で受け取ったパケットがＲＴＳＰのＳＥＴＵＰメッセージであった場合、パケット振り分け処理部２０２は、ＲＴＳＰ−ＡＬＧ処理部２０６に振り分ける。ＲＴＳＰ−ＡＬＧ処理部２０６は、そのメッセージに書かれている内容に従ってＲＴＰ，ＲＴＣＰで用いるポート番号を検出する。ＲＴＳＰ−ＡＬＧ処理部２０６は、それと同桁のポート番号を変換ポート番号プール２０７より割り当て、メッセージを書き換える。ＲＴＳＰ−ＡＬＧ処理部２０６は、併せてＮＡＰＴテーブル２２０に登録する。ＳＥＴＵＰ応答メッセージを受信した場合、ＲＴＳＰ−ＡＬＧ処理部２０６は、逆にＮＡＰＴテーブル２２０を参照し、メッセージを書き換える。ＲＴＳＰ−ＡＬＧ処理部２０６は、メッセージをＮＡＰＴ処理部２０５に転送する。ＮＡＰＴ処理部２０５は、ＮＡＰＴ処理を行なって、転送処理部２０３に転送すする。
【００３５】
エージング処理部２０８は、一定周期でＮＡＰＴテーブル２２０の最終使用日時２２５を参照する。エージング処理部２０８は、一定時間使われなかったＮＡＰＴテーブル２２０のエントリを削除し、割り当てていたポート番号を変換ポート番号プール２０７に返却する。
【００３６】
図５を参照して、ゲートウェイ装置２００の処理フローを説明する。このフローはパケット受信により開始される。パケットを受信した場合、ゲートウェイ装置２００は、まず宛先ＩＰアドレスを参照して、ＮＡＰＴ対象かそれ以外かを判別する（Ｓ４０１）。ＮＡＰＴ対象外アドレス宛の場合、ゲートウェイ装置２００は、通常の転送処理を行なって（Ｓ４０２）、終了する。ステップ４０１でＮＡＰＴ対象アドレス宛の場合、ゲートウェイ装置２００は、アプリケーションプロトコル判定を行なう（Ｓ４０３）。ここでＲＴＳＰプロトコル（送信先・送信元ポート番号が５５４）以外である場合、ゲートウェイ装置２００は、ＮＡＰＴ処理を実施する（Ｓ４０４）。具体的なＮＡＰＴ処理は、上りパケットの場合、送信元のアドレス変換、送信元のポート変換を行なう。一方、下りパケットの場合、宛先アドレス変換、宛先ポート変換を行なう。なお、ここで上りとは、端末１００からコンテンツサーバ３００への通信である。また、下りとは、コンテンツサーバ３００から端末１００への通信である。
【００３７】
一方、ステップ４０３でＲＴＳＰプロトコルと判別された場合、ゲートウェイ装置２００は、さらにＲＴＳＰメソッド判定を行なう（Ｓ４０５）。具体的には、メソッドがＳＥＴＵＰか否かを判別する。ＳＥＴＵＰメソッド以外と判別された場合、ゲートウェイ装置２００は、そのままステップ４０４に遷移する。ステップ４０５でＳＥＴＵＰメソッド（Ｒｅｐｌｙを含む）と判別された場合、ゲートウェイ装置２００は、ゲートウェイ処理を実施し（Ｓ４０６）、ステップ４０４に遷移する。
【００３８】
図６を参照して、ゲートウェイ処理（Ｓ４０４）の内容について、説明する。ＲＴＳＰ−ＡＬＧ処理部２０６は、まず転送方向を判別する（Ｓ５０１）。上り方向の場合、ＲＴＳＰ−ＡＬＧ処理部２０６は、ＳＥＴＵＰメッセージ中から要求ポートの桁数を読取る（Ｓ５０２）。ＲＴＳＰ−ＡＬＧ処理部２０６は、同じ桁数のポート番号を割り当てる（Ｓ５０３）。ＲＴＳＰ−ＡＬＧ処理部２０６は、次に割り当てたポート番号と送信元アドレス、送信元ポート番号、変換アドレスを組にして、ＮＡＰＴテーブル２２０にエントリする。最後に、ＲＴＳＰ−ＡＬＧ処理部２０６は、割り当てたポート番号でメッセージを書き換える（Ｓ５０５）。一方、ステップ５０１で下り方向の場合、ＲＴＳＰ−ＡＬＧ処理部２０６は、ＮＡＰＴテーブル２２０を検索参照して（Ｓ５０６）、ステップ５０５に遷移する。
【００３９】
図７を参照して、ゲートウェイ装置２００を用いた環境下でのＲＴＳＰセッション確立から切断までのシーケンスを説明する。ＲＴＳＰにおいて、端末１００−１とコンテンツサーバ３００は、まずＯＰＴＩＯＮメソッドを用いて使用可能な機能情報の交換を行なう。次に、端末１００−１は、ＤＥＳＣＲＩＢＥメソッドを用いてコンテンツの情報を取得する。さらに、端末１００−１は、ＳＥＴＵＰメソッドを用いて伝送方法を決定する。以下、その手順を具体的に説明する。
【００４０】
端末１００−１は、ゲートウェイ装置２００に使用可能な機能を記述したＯＰＴＩＯＮメッセージを送信する（Ｓ６０１）。ゲートウェイ装置２００は、送信元ＩＰアドレスと送信元ポート番号を変換して、コンテンツサーバ３００にＯＰＴＩＯＮメッセージを送信する（Ｓ６０２）。コンテンツサーバ３００は、ゲートウェイ装置２００に使用可能な機能を記述した２００ ＯＫを送信する（Ｓ６０３）。ゲートウェイ装置２００は、宛先ＩＰアドレスと宛先ポート番号を変換して、端末１００−１に２００ ＯＫを送信する（Ｓ６０４）。
【００４１】
端末１００−１は、ゲートウェイ装置２００にコンテンツの情報取得のためＤＥＳＣＲＩＢＥメッセージを送信する（Ｓ６０６）。ゲートウェイ装置２００は、送信元ＩＰアドレスと送信元ポート番号を変換して、コンテンツサーバ３００にＤＥＳＣＲＩＢＥメッセージを送信する（Ｓ６０７）。コンテンツサーバ３００は、ゲートウェイ装置２００にコンテンツの情報を記載した２００ ＯＫを送信する（Ｓ６０８）。ゲートウェイ装置２００は、宛先ＩＰアドレスと宛先ポート番号を変換して、端末１００−１に２００ ＯＫを送信する（Ｓ６０９）。
【００４２】
端末１００−１は、ゲートウェイ装置２００に使用可能なＴｒａｎｓｐｏｒｔを記載したＳＥＴＵＰメッセージを送信する（Ｓ６１１）。ゲートウェイ装置２００は、ＳＥＴＵＰメッセージ中の送信元ポート番号を読み取り、同じ桁数のポート番号と変換する（Ｓ６１２）。ゲートウェイ装置２００は、ヘッダの送信元ＩＰアドレスと送信元ポート番号を変換して、コンテンツサーバ３００にＳＥＴＵＰメッセージを送信する（Ｓ６１３）。コンテンツサーバ３００は、ゲートウェイ装置２００に選択したＴｒａｎｓｐｏｒｔを記載した２００ ＯＫを送信する（Ｓ６１４）。ゲートウェイ装置２００は、２００ ＯＫ中の宛先ポート番号を読み取り、元の送信元のポート番号と変換する（Ｓ６１６）。ゲートウェイ装置２００は、宛先ＩＰアドレスと宛先ポート番号を変換して、端末１００−１に２００ ＯＫを送信する（Ｓ６１７）。端末１００−１は、ゲートウェイ装置２００にＰＬＡＹメッセージを送信する（Ｓ６１８）。ゲートウェイ装置２００は、送信元ＩＰアドレスと送信元ポート番号を変換して、コンテンツサーバ３００にＰＬＡＹメッセージを送信する（Ｓ６１９）。コンテンツサーバ３００は、ゲートウェイ装置２００に２００ ＯＫを送信する（Ｓ６２１）。ゲートウェイ装置２００は、宛先ＩＰアドレスと宛先ポート番号を変換して、端末１００−１に２００ ＯＫを送信する（Ｓ６２２）。
【００４３】
端末１００−１とコンテンツサーバ３００は、ＲＴＰパケット、ＲＴＣＰパケットの交換を開始する。引き続いて、端末１００−１は、ゲートウェイ装置２００に再生の終了であるＴＥＡＲＤＯＷＮメッセージを送信する（Ｓ６２３）。ゲートウェイ装置２００は、送信元ＩＰアドレスと送信元ポート番号を変換して、コンテンツサーバ３００にＴＥＡＲＤＯＷＮメッセージを送信する（Ｓ６２４）。コンテンツサーバ３００は、ゲートウェイ装置２００に２００ ＯＫを送信する（Ｓ６２６）。ゲートウェイ装置２００は、宛先ＩＰアドレスと宛先ポート番号を変換して、端末１００−１に２００ ＯＫを送信する（Ｓ６２７）。
【００４４】
ステップ６１１において、端末（ＲＴＳＰクライアント）１００−１は、使用するポート番号を通知する。しかし、ＮＡＴ環境下ではポート番号が変更されるため、ゲートウェイ２００は、同じ桁数の変換ポート番号にメッセージを書き換える。ゲートウェイ２００は、応答メッセージ（２００ ＯＫ）もＮＡＰＴテーブル２２０を参照してメッセージを書き換える。コンテンツの再生は、ＰＬＡＹメソッドを用いる。これ以降ＳＥＴＵＰメソッドで決定した伝送方法を用いて、ＲＴＰ、ＲＴＣＰパケットによってストリーミング配信が行なわれる。最後にＴＥＡＲＤＯＷＮメソッドによってコンテンツの再生が停止される。
【００４５】
図８Ａ、図８Ｂおよび図９Ａ、図９Ｂを参照して、書き換えるメッセージの内容について、説明する。図８Ａ（ａ）は、端末１００−１が送信したＳＥＴＵＰメソッドのメッセージ１０８Ａ−１である。一方、図８Ａ（ｂ）は、ゲートウェイ２００が送信したＳＥＴＵＰメソッドのメッセージ１０８Ａ−１である。図８Ａにおいて、ＳＥＴＵＰメソッドかは、ペイロードの先頭に「ＳＥＴＵＰ」の文字列の有無で判別可能である。このメッセージのペイロードの「ｃｌｉｅｎｔ＿ｐｏｒｔ＝」に続く数値（−で区切られる場合は範囲を示す）がＲＴＰ，ＲＴＣＰで用いる端末側１００−１の送信元ポート番号を示している。ゲートウェイ２００は、このポート番号の桁を取得して、同じ桁の変換ポート番号を割当、メッセージを図８Ａ（ｂ）に書き換える。
【００４６】
図８Ｂ（ａ）は、コンテンツサーバ３００が送信したＳＥＴＵＰメソッドの応答メッセージ１０８Ａ−３である。図８Ｂ（ｂ）は、ゲートウェイ２００が送信したＳＥＴＵＰメソッドの応答メッセージ１０８Ａ−４である。一方、図８Ｂ（ａ）において、このメッセージ中にも、「ｃｌｉｅｎｔ＿ｐｏｒｔ＝」の記述があるため、ゲートウェイ装置２００は、この後に続く値を、ＮＡＰＴテーブル２２０を参照して、逆変換する。
図８Ａ、図８Ｂは、ポート番号が４桁の場合を示した。図９Ａ、図９Ｂではポート番号が５桁の場合である。
【００４７】
図１０を参照して、メッセージ書き換え前後のシーケンス番号および確認応答番号を説明する。図１０において、説明を分かり易くするため、クライアントからサーバ向きにのみデータが載っている状態で説明する。またセグメント長も切りの良い値を用いる。
【００４８】
図１０において、初めに端末１００−１は、セグメント長（Ｌｅｎ＝）１００のパケットをコンテンツサーバ３００に向けて送出する（Ｓ９０１）。このときシーケンス番号（Ｓｅｑ＝）は、１００００である。ゲートウェイ装置２００は、送信元アドレスと、送信元ポート番号を変換して、コンテンツサーバ３００に転送する（Ｓ９０２）。コンテンツサーバ３００は、このパケットを受信すると、次のデータを要求するために、確認応答番号（Ａｃｋ＝）１０１００のＡｃｋを返す（Ｓ９０３）。ゲートウェイ装置２００は、宛先アドレス変換と、宛先ポートを変換して、端末１００−１に転送する（Ｓ９０４）。
【００４９】
端末１００−１は、次にセグメント長１００のＳＥＴＵＰメッセージ９０３を送出する（Ｓ９０６）。ゲートウェイ装置２００は、メッセージ書き換え行なう（Ｓ９０７）。ゲートウェイ装置２００は、書き換えたメッセージをコンテンツサーバ３００に送信する（Ｓ９０８）。ここでは、メッセージの書き換えのとき、ポート番号の桁数を合わせているので、セグメント長は、変わらない。
【００５０】
しかし、仮にセグメント長が変わると、ＴＣＰシーケンスの整合性を保つために、ゲートウェイ装置２００において、図の中で示される範囲では四角く囲ってあるシーケンス番号および確認応答番号の書き換えが必要であった。また、これ以降に続くシーケンスの確認応答番号および、シーケンス番号全てに影響をおよぼすため、これらを書き換える必要があった。
【００５１】
コンテンツサーバ３００は、このパケットを受信すると、次のデータを要求するために、確認応答番号（Ａｃｋ＝）１０２００のＡｃｋを返す（Ｓ９０９）。ゲートウェイ装置２００は、宛先アドレス変換と、宛先ポートを変換して、端末１００−１に転送する（Ｓ９１１）。端末１００−１は、セグメント長（Ｌｅｎ＝）１００のパケットをコンテンツサーバ３００に向けて送出する（Ｓ９１２）。このときシーケンス番号（Ｓｅｑ＝）は、受信した確認応答番号とおなじ１０２００である。ゲートウェイ装置２００は、送信元アドレスと、送信元ポート番号を変換して、コンテンツサーバ３００に転送する（Ｓ９１３）。コンテンツサーバ３００は、このパケットを受信すると、次のデータを要求するために、確認応答番号（Ａｃｋ＝）１０３００のＡｃｋを返す（Ｓ９１４）。ゲートウェイ装置２００は、宛先アドレス変換と、宛先ポートを変換して、端末１００−１に転送する（Ｓ９１６）。
【００５２】
本実施例によれば、変換ポート番号は同じ桁のポート番号が割り当てられることが保証される。つまりメッセージ書き換え後のセグメント長が変わらないことが保証される。よって、これ以降のシーケンスでも確認応答番号、シーケンス番号を書き換える必要が無い。
【符号の説明】
【００５３】
１００…端末、１０２…ＬＡＮ、１０３…ＷＡＮ、１０８…ＳＥＴＵＰパケット、１０９…ＩＰヘッダ、１１０…ＴＣＰヘッダ、１１１…ＳＥＴＵＰメッセージ、１１３…ＩＰアドレス、２００…ゲートウェイ装置、２０１…パケット受信処理部、２０２…パケット振り分け処理部、２０３…転送処理部、２０４…パケット送信処理部、２０５…ＮＡＰＴ処理部、２０６…ＲＴＳＰ−ＡＬＧ処理部、２０７…変換ポート番号プール、２０８…エージング処理部、２２０…ＮＡＰＴテーブル、２２１…送信元ＩＰアドレス、２２２…送信元ポート番号、２２３…変換後ＩＰアドレス、２２４…変換後ポート番号、３００…コンテンツサーバ、５００…ネットワークシステム。
【図１】
2011103566.tif 000003
【図２Ａ】
2011103566.tif 000004
【図２Ｂ】
2011103566.tif 000005
【図２Ｃ】
2011103566.tif 000006
【図２Ｄ】
2011103566.tif 000007
【図３】
2011103566.tif 000008
【図４】
2011103566.tif 000009
【図５】
2011103566.tif 000010
【図６】
2011103566.tif 000011
【図７】
2011103566.tif 000012
【図８Ａ】
2011103566.tif 000013
【図８Ｂ】
2011103566.tif 000014
【図９Ａ】
2011103566.tif 000015
【図９Ｂ】
2011103566.tif 000016
【図１０】
2011103566.tif 000017