【手続補正書】
【提出日】平成21年8月7日(2009.8.7)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータを、
データ送信元のＩＰアドレスを取得するソケットと、
ネットワークプロトコルに関するＩＰアドレスの処理を行うための関数を含む複数の関数を保持する関数構造体と、
前記関数構造体の保持する関数のうち、第１のインターネットプロトコルに関するアドレスの処理を行うための第１の関数群を示す第１のポインタと、第２のインターネットプロトコルに関するアドレスの処理を行うための第２の関数群を示す第２のポインタとを有するテーブルと、
前記ソケットの取得するＩＰアドレスの長さに対応する識別情報を発信する発信手段と、
前記発信手段の発信した識別情報に応じて前記第１又は第２のポインタの示す関数によって接続制御を行う制御手段として機能させるためのプログラム。
【請求項２】
前記識別情報に応じて異なる長さのヘッダをデータに付加する付加手段と、
前記ヘッダと前記データとについてチェックサムを算出する算出手段として更に機能させるための請求項１に記載のプログラム。
【請求項３】
前記付加手段はデータに前記識別情報を付加することを特徴とする請求項２に記載のプログラム。
【請求項４】
コンピュータを、
ネットワークからデータと当該データの伝達に用いたプロトコルを示す識別情報とを受信する受信手段と、
ネットワークプロトコルに関するＩＰアドレスの処理を行うための関数を含む複数の関数を保持する関数構造体と、
前記関数構造体の保持する関数のうち、第１のインターネットプロトコルに関するアドレスの処理を行うための第１の関数群を連結する第１のポインタと、第２のインターネットプロトコルに関するアドレスの処理を行うための第２の関数群を示す第２のポインタとを有するテーブルと、
前記識別情報に応じて前記第１又は第２のポインタの示す関数によって接続制御を行う制御手段として機能させるためのプログラム。
【請求項５】
前記第１のインターネットプロトコルはインターネットプロトコルバージョン４であり、前記第２のインターネットプロトコルはインターネットプロトコルバージョン６であり、前記発信手段は、前記ソケットの取得するＩＰアドレスが３２ｂｉｔであればインターネットプロトコルパージョン４を示す識別情報を発信し、前記ソケットの取得するＩＰアドレスが１２８ｂｉｔであればインターネットプロトコルバージョン６を示す識別情報を発信することを特徴とする請求項１乃至３のいずれか１項に記載のプログラム。
【請求項６】
前記関数構造体は、
宛先となるＩＰアドレスとこのＩＰアドレスまでの経路が記載されたルーティングテーブル中のＩＰアドレスとを比較する関数、
宛先となるＩＰアドレスとこのＩＰアドレスまでの経路が記載されたルーティングテーブル中のネットワークアドレスとを比較する関数、
宛先となるＩＰアドレスとデフォルトアドレスとを比較する関数、
ＩＰアドレスを特定するか否かを判別する関数、
自ホストのアドレスか否かを判別する関数、
送受信されたパケットがこわれていないかを保障するチェックサムの計算をする関数、
ＩＰアドレスが構造体としてまとめられたアドレス情報構造体にＩＰアドレスとポート番号をセットする関数、
ＩＰアドレスの長さを取得する関数、
ＩＰアドレスが構造体としてまとめられたアドレス情報構造体からＩＰアドレスとポート番号を取得する関数、及び
パケットのヘッダの長さを取得する関数のうち少なくともひとつを含むことを特徴とする請求項１乃至５のいずれか１項に記載のプログラム。
【請求項７】
送信元のＩＰアドレスを取得する取得手段と、
ネットワークプロトコルに関するアドレスの処理を行うための複数の関数を保持する関数構造体を格納する第１の保持手段と、
前記関数構造体の保持する関数のうち、第１のネットワークプロトコルに関するアドレスの処理を行うための第１の関数群を示す第１のポインタと、第２のネットワークプロトコルに関するアドレスの処理を行うための第２の関数群を示す第２のポインタとを有するテーブルを格納する第２の保持手段と、
前記取得手段の取得するＩＰアドレスの長さに対応する識別情報を発信する発信手段と、
前記発信手段の発信した識別情報に応じて前記第１又は第２のポインタの示す関数によって接続制御を行う制御手段と
を有することを特徴とする情報処理装置。
【請求項８】
コンピュータを、
ネットワークからデータと当該データの伝達に用いたプロトコルを示す識別情報とを受信する受信手段と、
ネットワークプロトコルに関するＩＰアドレスの処理を行うための関数を含む複数の関数を保持する関数構造体を格納する第１の保持手段と、
前記関数構造体の保持する関数のうち、第１のネットワークプロトコルに関するアドレスの処理を行うための第１の関数群を示す第１のポインタと、第２のネットワークプロトコルに関するアドレスの処理を行うための第２の関数群を示す第２のポインタとを有するテーブルを格納する第２の保持手段と、
前記識別情報に応じて前記第１又は第２のポインタの示す関数によって接続制御を行う制御手段として機能させるためのプログラム。
【請求項９】
ネットワークからデータと当該データの伝達に用いたプロトコルを示す識別情報とを受信する受信手段と、
ネットワークプロトコルに関するＩＰアドレスの処理を行うための関数を含む複数の関数を保持する関数構造体を格納する第１の保持手段と、
前記関数構造体の保持する関数のうち、第１のネットワークプロトコルに関するアドレスの処理を行うための第１の関数群を示す第１のポインタと、第２のネットワークプロトコルに関するアドレスの処理を行うための第２の関数群を示す第２のポインタとを有するテーブルを格納する第２の保持手段と、
前記識別情報に応じて前記第１又は第２のポインタの示す関数によって接続制御を行う制御手段とを有することを特徴とする情報処理装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】発明の名称
【補正方法】変更
【補正の内容】
【発明の名称】プログラムおよび情報処理装置
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は異なる２つのＩＰ（インターネットプロトコル）を同時に使用可能なプログラムおよび情報処理装置に関する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
上記課題を解決するために本発明は、コンピュータを、データ送信元のＩＰアドレスを取得するソケットと、ネットワークプロトコルに関するＩＰアドレスの処理を行うための関数を含む複数の関数を保持する関数構造体と、前記関数構造体の保持する関数のうち、第１のインターネットプロトコルに関するアドレスの処理を行うための第１の関数群を示す第１のポインタと、第２のインターネットプロトコルに関するアドレスの処理を行うための第２の関数群を示す第２のポインタとを有するテーブルと、前記ソケットの取得するＩＰアドレスの長さに対応する識別情報を発信する発信手段と、前記発信手段の発信した識別情報に応じて前記第１又は第２のポインタの示す関数によって接続制御を行う制御手段として機能させる。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
本発明によれば、第１のインターネットプロトコルでも第２のインターネットプロトコルでも同じ関数インタフェースでアドレスの操作を行うことができる。また、ＴＣＰ／ＵＤＰを第１のインターネットプロトコルと第２のインターネットプロトコルで共有したすっきりとした構成にできるので、コードの縮小化や保守性の向上を図ることができる。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００３９
【補正方法】変更
【補正の内容】
【００３９】
以上のように、ＩＰｖ４とＩＰｖ６のアドレス操作関数を構造体としてまとめ、そのポインタをテーブル化し、ＩＰｖ４かＩＰｖ６かで切り替える構成することで、ＴＣＰやＵＤＰのＩＰｖ４／ＩＰｖ６依存部を吸収することができる。したがって、ＩＰｖ４用ＴＣＰ／ＵＤＰやＩＰｖ６用ＴＣＰ／ＵＤＰを作らずにまとめ、すっきりした構成にでき、コードの縮小化や保守性の向上が図れる。
すなわち、本実施形態によれば、ネットワークスタックプログラムにおいて、第１のインターネットプロトコルと第２のインターネットプロトコルのアドレスを扱う部分をアドレス操作関数構造体としてまとめた。さらに、そのポインタをテーブル化してアドレス操作関数構造体テーブルとし、アドレス操作はこのアドレス操作関数構造体テーブルを通して行うようにした。そうすることで、第１のインターネットプロトコルでも第２のインターネットプロトコルでも同じ関数インタフェースでアドレスの操作を行うことができる。例えば、図１２（送信時）、図１３（受信時）のような構成であったプロトコルスタックが、図８（送信時）、図９（受信時）のように、ＴＣＰ／ＵＤＰをＩＰｖ４／ＩＰｖ６で共有したすっきりとした構成にできる。したがって、コードの縮小化や保守性の向上を図ることができる。