(57)【特許請求の範囲】
【請求項１】
パケットを送信する時刻を示す時刻情報及び前記パケットの誤りを確認するためのチェックサムが付与された前記パケットを送信する送信装置であって、
前記時刻情報及び前記チェックサムが付与される前の前記パケットを所定長の長さで区切り、前記所定長の長さを有するチェックサム算出要素を取得するチェックサム算出要素取得部と、
前記チェックサム算出要素取得部によって取得された前記チェックサム算出要素を互いに加算し、暫定チェックサムを算出する暫定チェックサム算出部と、
前記暫定チェックサム算出部によって前記暫定チェックサムが算出された後に、前記時刻情報を取得する時刻情報取得部と、
前記時刻情報取得部によって取得された前記時刻情報と前記暫定チェックサム算出部によって算出された前記暫定チェックサムとを加算し、前記チェックサムを算出するチェックサム算出部と、
前記時刻情報取得部によって取得された前記時刻情報及び前記チェックサム算出部によって算出された前記チェックサムが付与された前記パケットを送信するパケット送信部とを備え、
前記パケット送信部は、前記チェックサム算出部がＵＤＰヘッダに付与される前記チェックサムを算出する処理と並列で、ＩＰヘッダの送信を開始することを特徴とする送信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タイムスタンプ（時刻情報）及びチェックサムが付与されたパケットを送信する送信装置に関する。
【背景技術】
【０００２】
従来、送信装置と受信装置との間で送受信されるパケットが誤っていないかを調べる手法として、チェックサムを用いる手法が一般的に知られている。具体的には、送信装置は、パケットに含まれるbit列を所定長毎に加算してチェックサムを算出し、算出したチェックサムが付与されたパケットを受信装置に送信する（例えば、非特許文献１）。
【０００３】
一方、受信装置は、送信装置と同様にチェックサムを算出し、算出したチェックサムとパケットに付与されたチェックサムとを比較することによって、パケットが誤っていないかを調べる。
【０００４】
例えば、RTP／UDP／IP方式に対応する送信装置を例に挙げると、チェックサムは、以下の手順によって算出される。なお、算出されたチェックサムは、UDPヘッダ内の所定フィールドに付与される。
【０００５】
まず、送信装置は、IPヘッダが簡略化された擬似ヘッダ、UDPヘッダ、RTPヘッダ及びRTPペイロード（以下、これらを総称してチェックサム算出用bit列）を、チェックサムを計算するために読み込む。また、送信装置は、チェックサム算出用bit列の全てを読み込んだ際に、RTPヘッダに付与されるタイムスタンプ（時刻情報）を取得する。
【０００６】
次に、送信装置は、タイムスタンプが付与されたRTPヘッダを含むチェックサム算出用bit列を１６ｂｉｔ長毎に区切り、１６bit長の各bit列を加算して１の補数和を算出する。また、送信装置は、算出した１の補数和について１の補数をとって、チェックサムを算出する。
【０００７】
さらに、送信装置は、算出したチェックサムをUDPヘッダ内の所定フィールドに付与し、IPヘッダ、チェックサムが付与されたUDPヘッダ、タイムスタンプが付与されたRTPヘッダ及びRTPペイロードを含むパケットを読み込み、読み込んだパケットを受信装置に送信する。
【非特許文献１】R.Braden、“Computing the Internet Checksum”、[online]、1988年9月、[平成17年7月6日検索]、インターネット<URL:http://www.ietf.org/rfc/rfc1071.txt>
【発明の開示】
【発明が解決しようとする課題】
【０００８】
このように、従来の送信装置は、タイムスタンプを取得してからパケットを送信するまでの遅延時間を短縮するために、チェックサム算出用bit列の全てを読み込んでからタイムスタンプを取得する。
【０００９】
従って、従来の送信装置では、チェックサム算出用bit列の全てを格納することが可能なメモリがチェックサムを算出するために必要とされる。
【００１０】
また、従来の送信装置では、タイムスタンプを取得してからチェックサムの算出を開始するため、タイムスタンプを取得してからパケットを送信するまでの時間が長くなってしまう。
【００１１】
そこで、本発明は、上述した課題を解決するためになされたものであり、チェックサムを算出するために必要なメモリの低容量化を図り、タイムスタンプを取得してからパケットを送信するまでの時間を短縮することが可能な送信装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明の特徴は、パケットを送信する時刻を示す時刻情報（タイムスタンプ）及び前記パケットの誤りを確認するためのチェックサムが付与された前記パケットを送信する送信装置が、前記時刻情報及び前記チェックサムが付与される前の前記パケットを所定長の長さで区切り、前記所定長の長さを有するチェックサム算出要素を取得するチェックサム算出要素取得部（IPパケット生成部１１０）と、前記チェックサム算出要素取得部によって取得された前記チェックサム算出要素を互いに加算し、暫定チェックサムを算出する暫定チェックサム算出部（IPパケット生成部１１０）と、前記暫定チェックサム算出部によって前記暫定チェックサムが算出された後に、前記時刻情報を取得する時刻情報取得部（IPパケット転送部１４０）と、前記時刻情報取得部によって取得された前記時刻情報と前記暫定チェックサム算出部によって算出された前記暫定チェックサムとを加算し、前記チェックサムを算出するチェックサム算出部（IPパケット転送部１４０）と、前記時刻情報取得部によって取得された前記時刻情報及び前記チェックサム算出部によって算出された前記チェックサムが付与された前記パケットを送信するパケット送信部（IPパケット転送部１４０）とを備え、前記パケット送信部は、前記チェックサム算出部がＵＤＰヘッダに付与される前記チェックサムを算出する処理と並列で、ＩＰヘッダの送信を開始することを要旨とする。
【００１３】
かかる特徴によれば、暫定チェックサム算出部が、時刻情報（タイムスタンプ）が付与される前のパケットを所定長の長さで区切ったチェックサム算出要素を互いに加算し、暫定チェックサムを算出する。また、チェックサム算出部が、時刻情報が付与された後に、暫定チェックサムと時刻情報とを加算し、チェックサムを算出する。
【００１４】
従って、算出された暫定チェックサムを格納するメモリが必要となるものの、チェックサムを算出するためにパケットの全てを格納するメモリが不要となるため、チェックサムを算出するために必要なメモリの低容量化を図ることができる。
【００１５】
また、時刻情報（タイムスタンプ）を取得した後にチェックサムの計算を最初から開始する場合に比べて、時刻情報を取得した後におけるチェックサムの計算量を削減でき、時刻情報を取得してからパケットを送信するまでの時間を短縮することができる。
【発明の効果】
【００１８】
本発明によれば、チェックサムを算出するために必要なメモリの低容量化を図り、タイムスタンプを取得してからパケットを送信するまでの時間を短縮することが可能な送信装置を提供することができる。
【発明を実施するための最良の形態】
【００１９】
（送信装置の構成）
以下において、本発明の一実施形態に係る送信装置の構成について、図面を参照しながら説明する。図１は、本発明の一実施形態に係る送信装置１００の構成を示す図である。
【００２０】
なお、本実施形態において、送信装置１００に適用されるプロトコルは、RTP（Real-time Transport Protocol）、UDP（User Datagram Protocol）及びIP（Internet Protocol）である。すなわち、RTPヘッダには、パケットを送信する時刻を示すタイムスタンプが付与され、UDPヘッダには、受信装置がパケットの誤りを確認するためのチェックサムが付与される。
【００２１】
図１に示すように、送信装置１００は、IPパケット生成部１１０と、IPパケット格納部１２０と、暫定チェックサム格納部１３０と、IPパケット転送部１４０と、イーサネット（登録商標）Ｉ／Ｆ１５０とを有する。
【００２２】
IPパケット生成部１１０は、IPヘッダ、UDPヘッダ、RTPヘッダ及びRTPペイロードを順に生成し、これらを含むパケットを生成する。なお、この段階では、チェックサムがUDPヘッダに付与されておらず、チェックサムが付与されるUDPヘッダのフィールドの値は“０”である。同様に、タイムスタンプもRTPヘッダに付与されておらず、タイムスタンプが付与されるRTPヘッダのフィールドの値は“０”である。
【００２３】
具体的には、IPパケット生成部１１０は、書込判定フラグの値が“０”である場合に、IPヘッダ、UDPヘッダ、RTPヘッダ及びRTPペイロードを順に生成し、生成したbit列が所定長（本実施形態では、３２bit）の長さとなると、IPパケット構成要素としてIPパケット格納部１２０に順次格納する。
【００２４】
なお、書込判定フラグとは、暫定チェックサム格納部１３０に格納された暫定チェックサムを用いて最終的なチェックサムの算出が完了しているか否かを判定するためのフラグである。具体的には、書込判定フラグは、書込判定フラグの値が“０”である場合に、最終的なチェックサムの算出が完了していることを示しており、書込判定フラグの値が“１”である場合に、最終的なチェックサムの算出が完了していないことを示している。
【００２５】
また、書込判定フラグは、暫定チェックサム格納部１３０に暫定チェックサムが格納されているか否かも示している。具体的には、書込判定フラグは、書込判定フラグの値が“０”である場合に、暫定チェックサムが格納されていないことを示しており、書込判定フラグの値が“１”である場合に、暫定チェックサムが格納されていることを示している。
【００２６】
IPパケット生成部１１０は、擬似ヘッダ、UDPヘッダ、RTPヘッダ及びRTPペイロードを所定長（本実施形態では１６bit）毎に加算し、暫定チェックサムを算出する。なお、擬似ヘッダとは、IPヘッダを簡略化したものである。
【００２７】
具体的には、IPパケット生成部１１０は、生成したIPパケット構成要素から、擬似ヘッダ、UDPヘッダ、RTPヘッダ及びRTPペイロードを抽出し、抽出したbit列を所定長の長さ（１６bit）で区切り、１６bit長の長さを有するチェックサム算出要素を取得する。また、IPパケット生成部１１０は、取得したチェックサム算出要素を互いに加算し、暫定チェックサムを算出する。さらに、IPパケット生成部１１０は、算出した暫定チェックサムを暫定チェックサム格納部１３０に格納する。
【００２８】
このように、IPパケット生成部１１０は、IPパケット構成要素をIPパケット格納部１２０に格納する処理と並列で、暫定チェックサムを算出する処理を行う。
【００２９】
なお、上述したように、暫定チェックサムを算出する段階では、RTPヘッダにタイムスタンプが付与されていない。すなわち、暫定チェックサムは、タイムスタンプが付与される前のRTPヘッダを用いて算出される。
【００３０】
IPパケット格納部１２０は、IPパケット生成部１１０によって生成されるＩＰパケット構成要素が格納されるメモリである。なお、本実施形態のIPパケット格納部１２０としては、FIFO（First In First Out）のメモリが用いられる。
【００３１】
暫定チェックサム格納部１３０は、IPパケット生成部１１０によって算出される暫定チェックサム及び書込判定フラグの値などが格納されるメモリである。ここで、暫定チェックサムが書き込まれる領域は、チェックサム算出要素（１６ｂｉｔ）よりも大きいサイズを有し、本実施形態では、３２ｂｉｔのサイズを有する。なお、本実施形態において、暫定チェックサム格納部１３０は、DP-RAM（Dual Port RAM）である。
【００３２】
これによって、暫定チェックサム格納部１３０は、チェックサム算出要素が互いに加算された際に桁あふれが起きた場合であっても、暫定チェックサムを格納することができる。なお、暫定チェックサム格納部１３０のサイズを３２bitとした理由は、後述するIPパケット転送部１４０がチェックサムを算出する際に１の補数和をとれば、この段階で１の補数和をとって暫定チェックサムを16bitに畳み込む必要がなく、チェックサムの計算処理を簡略化するためである。
【００３３】
IPパケット転送部１４０は、IPパケット格納部１２０に格納されたIPパケット構成要素をイーサネット（登録商標）Ｉ／Ｆ１５０に転送する。
【００３４】
具体的には、IPパケット転送部１４０は、書込判定フラグの値が“１”であり、パケットの送信タイミングとなると、タイムスタンプを取得するとともに、取得したタイムスタンプをIPパケット格納部１２０に格納されたRTPヘッダに付与する。
【００３５】
IPパケット転送部１４０は、取得したタイムスタンプを暫定チェックサム格納部１３０に格納された暫定チェックサムに加算する。また、IPパケット転送部１４０は、タイムスタンプを暫定チェックサムに加算して得られた値（加算結果）の１の補数和を算出し、加算結果を１６bitのbit列に畳み込む。さらに、IPパケット転送部１４０は、１６bitに畳み込まれたbit列の１の補数をチェックサムとして算出する。さらに、IPパケット転送部１４０は、算出したチェックサムをIPパケット格納部１２０に格納されたUDPヘッダに付与する。
【００３６】
IPパケット転送部１４０は、IPヘッダ、UDPヘッダ、RTPヘッダ及びRTPペイロードに対応するIPパケット構成要素を順にイーサネット（登録商標）Ｉ／Ｆ１５０に転送する。ここで、IPパケット転送部１４０は、チェックサムを算出する処理と並列で、IPヘッダに対応するIPパケット構成要素をイーサネット（登録商標）Ｉ／Ｆ１５０に転送し、チェックサムを算出した後に、UDPヘッダ、RTPヘッダ及びRTPペイロードに対応するIPパケット構成要素をイーサネット（登録商標）Ｉ／Ｆ１５０に転送する。
【００３７】
イーサネット（登録商標）Ｉ／Ｆ１５０は、IPパケット転送部１４０から転送されるIPパケットにMAC（Media Access Control）アドレスなどを付与して、イーサネット（登録商標）フレームを生成する。また、イーサネット（登録商標）Ｉ／Ｆ１５０は、生成したイーサネット（登録商標）フレームを受信装置に送信する。
【００３８】
以下において、本発明の一実施形態に係る暫定チェックサムの生成方法について、図面を参照しながら説明する。図２は、本発明の一実施形態に係る暫定チェックサムの生成方法を説明するための図である。
【００３９】
図２に示すように、暫定チェックサムは、IPヘッダを簡略化した擬似ヘッダ、UDPヘッダ、RTPヘッダ及びRTPヘッダによって生成される。具体的には、上述したように、暫定チェックサムは、擬似ヘッダ、UDPヘッダ、RTPヘッダ及びRTPペイロードを１６bit毎に区切り、１６bit長のチェックサム算出要素を互いに加算して算出される。
【００４０】
擬似ヘッダは、送信元IPアドレスや宛先IPアドレスなどをIPアドレスから抜き出したbit列である。
【００４１】
UDPヘッダは、送信元ポート、宛先ポートやチェックサムなどを含むbit列であり、チェックサムが付与されるフィールドには、初期値として“０”が設定されている。
【００４２】
RTPヘッダは、RTPペイロードの種類を示すペイロードタイプ、シーケンス番号やタイムスタンプなどを含むbit列であり、タイムスタンプが付与されるフィールドには、初期値として“０”が設定されている。
【００４３】
以下において、本発明の一実施形態に係る暫定チェックサム格納部１３０について、図面を参照しながら説明する。図３は、本発明の一実施形態に係る暫定チェックサム格納部１３０を示す図である。
【００４４】
図３に示すように、暫定チェックサム格納部１３０は、上述した暫定チェックサム及び書込判定フラグが格納される領域を有する。また、暫定チェックサム格納部１３０は、将来的に機能を拡張することができるように、所定長のbit列を格納可能な予備の領域（Reserved）を有する。
【００４５】
（送信装置の動作）
以下において、本発明の一実施形態に係る送信装置１００の動作について、図面を参照しながら説明する。まず、本発明の一実施形態に係るIPパケット生成部１１０の動作について説明する。図４は、本発明の一実施形態に係るIPパケット生成部１１０の動作を示すフロー図である。
【００４６】
図４に示すように、ステップ１０において、IPパケット生成部１１０は、書込判定フラグの値を取得する。
【００４７】
ステップ１１において、IPパケット生成部１１０は、ステップ１０で取得した書込判定フラグの値が“０”であるか否かを判定する。また、IPパケット生成部１１０は、書込判定フラグの値が“０”である場合には、ステップ１２、ステップ１３及びステップ１５の処理に移り、書込判定フラグの値が“１”である場合には、ステップ１０の処理に戻る。
【００４８】
ステップ１２において、IPパケット生成部１１０は、IPパケット構成要素を生成する。具体的には、IPパケット生成部１１０は、IPヘッダ、UDPヘッダ、RTPヘッダ及びRTPペイロードを順に生成し、生成したbit列を３２bit毎に纏め、IPパケット構成要素を生成する。なお、チェックサムが付与されるUDPヘッダのフィールドには“０”が設定され、タイムスタンプが付与されるRTPヘッダのフィールドにも“０”が設定される。
【００４９】
ステップ１３において、IPパケット生成部１１０は、暫定チェックサムが書き込まれる位置を示す暫定チェックサム格納部１３０のアドレスをIPパケット格納部１２０に書き込む。これによって、IPパケット転送部１４０が暫定チェックサムを読み出す際に、IPパケット構成要素と暫定チェックサムとの同期をとることができる。
【００５０】
ステップ１４において、IPパケット生成部１１０は、ステップ１２で生成されたIPパケット構成要素を順にIPパケット格納部１２０に転送する。
【００５１】
ステップ１５において、IPパケット生成部１１０は、ステップ１２で生成されたIPパケット構成要素から、擬似ヘッダ、UDPヘッダ、RTPヘッダ及びRTPペイロードを抽出し、暫定チェックサムを生成する。具体的には、IPパケット生成部１１０は、上述したように、擬似ヘッダ、UDPヘッダ、RTPヘッダ及びRTPペイロードを１６bit毎に区切り、１６bitの長さを有するチェックサム算出要素を取得する。また、IPパケット生成部１１０は、取得したチェックサム算出要素を互いに加算し、暫定チェックサムを算出する。
【００５２】
ステップ１６において、IPパケット生成部１１０は、ステップ１５で算出された暫定チェックサムを暫定チェックサム格納部１３０に書き込む。また、IPパケット生成部１１０は、書込判定フラグの値に“１”をセットする。
【００５３】
上述したように、IPパケット生成部１１０は、IPパケット構成要素をIPパケット格納部１２０に格納する処理（ステップ１４）と並列で、暫定チェックサムを算出する処理（ステップ１５）を行う。
【００５４】
次に、本発明の一実施形態に係るIPパケット転送部１４０の動作について説明する。図５は、本発明の一実施形態に係るIPパケット転送部１４０の動作を示すフロー図である。
【００５５】
図５に示すように、ステップ２０において、IPパケット転送部１４０は、暫定チェックサムが書き込まれた暫定チェックサム格納部１３０のアドレスがIPパケット格納部１２０に格納されることを待つ状態となる。具体的には、IPパケット転送部１４０は、IPパケット格納部１２０を参照して、暫定チェックサム格納部１３０のアドレスが格納されているか否かを適宜確認する。
【００５６】
ステップ２１において、IPパケット転送部１４０は、暫定チェックサム格納部１３０のアドレスが格納されているか否かを判定する。また、IPパケット転送部１４０は、アドレスが格納されている場合には、ステップ２２の処理に移り、アドレスが格納されていない場合には、ステップ２０の処理に戻る。
【００５７】
ステップ２２において、IPパケット転送部１４０は、IPパケット生成部１１０による暫定チェックサムの算出の終了待ち状態となる。
【００５８】
ステップ２３において、IPパケット転送部１４０は、書込判定フラグの値が“１”であり、かつ、パケットの送信タイミングであるか否かを判定する。また、IPパケット転送部１４０は、書込判定フラグの値が“１”であり、かつ、パケットの送信タイミングである場合には、ステップ２４及びステップ２５の処理に移り、それ以外の場合には、ステップ２２の処理に戻る。
【００５９】
ステップ２４において、IPパケット転送部１４０は、IPヘッダに対応するIPパケット構成要素をIPパケット格納部１２０から読み出し、読み出したIPヘッダをイーサネット（登録商標）Ｉ／Ｆ１５０に転送する。
【００６０】
ステップ２５において、IPパケット転送部１４０は、RTPヘッダに付与されるタイムスタンプを取得する。
【００６１】
ステップ２６において、IPパケット転送部１４０は、ステップ２５で取得されたタイムスタンプと暫定チェックサム格納部１３０に格納された暫定チェックサムとを加算し、最終的なチェックサムを算出する。
【００６２】
ステップ２７において、IPパケット転送部１４０は、暫定チェックサムが書き込まれた暫定チェックサム格納部１３０のアドレスを消去する。また、IPパケット転送部１４０は、書込判定フラグの値に“０”をセットする。
【００６３】
ステップ２８において、IPパケット転送部１４０は、UDPヘッダに対応するIPパケット構成要素をIPパケット格納部１２０から読み出し、読み出したUDPヘッダにステップ２６で算出されたチェックサムを付与する。また、IPパケット転送部１４０は、チェックサムが付与されたUDPヘッダをイーサネット（登録商標）Ｉ／Ｆ１５０に転送する。
【００６４】
ステップ２９において、IPパケット転送部１４０は、RTPヘッダに対応するIPパケット構成要素をIPパケット格納部１２０から読み出し、読み出したRTPヘッダにステップ２５で取得されたタイムスタンプを付与する。また、IPパケット転送部１４０は、タイムスタンプが付与されたRTPヘッダをイーサネット（登録商標）Ｉ／Ｆ１５０に転送する。
【００６５】
ステップ３０において、IPパケット転送部１４０は、RTPペイロードに対応するIPパケット構成要素をIPパケット格納部１２０から読み出し、読み出したRTPペイロードをイーサネット（登録商標）Ｉ／Ｆ１５０に転送する。
【００６６】
上述したように、IPパケット転送部１４０は、IPヘッダに対応するIPパケット構成要素をイーサネット（登録商標）Ｉ／Ｆ１５０に転送する処理（ステップ２４）と並列で、チェックサムを算出する処理（ステップ２６）を行う。
【００６７】
（送信装置の作用及び効果）
本発明の一実施形態に係る送信装置１００によれば、IPパケット生成部１１０が、タイムスタンプが付与される前のパケットを所定長の長さで区切ったチェックサム算出要素を互いに加算し、暫定チェックサムを算出する。また、IPパケット転送部１４０が、タイムスタンプが付与された後に、暫定チェックサムと時刻情報とを加算し、チェックサムを算出する。
【００６８】
従って、算出された暫定チェックサムを格納する暫定チェックサム格納部１３０が必要となるものの、パケットの全てを格納するメモリが不要となるため、チェックサムを算出するために必要なメモリの低容量化を図ることができる。
【００６９】
例えば、パケットの長さが１５００byteである場合を例に挙げると、従来の送信装置では、パケットの全てを一時的に格納するために１２kbit以上のサイズを有するメモリが必要であるのに対して、本発明の一実施形態に係る送信装置１００では、暫定チェックサム格納部１３０が少なくとも３６bitのサイズを有していればよい。
【００７０】
また、タイムスタンプを取得した後にチェックサムの計算を最初から開始する場合に比べて、タイムスタンプを取得した後におけるチェックサムの計算量を削減でき、タイムスタンプを取得してからパケットを送信するまでの時間を短縮することができる。
【００７１】
また、IPパケット転送部１４０が、チェックサムを算出する処理と並列で、パケットの送信を開始すること（IPヘッダに対応するIPパケット構成要素をイーサネット（登録商標）Ｉ／Ｆ１５０に転送すること）により、時刻情報を取得してからパケットの送信が完了するまでの時間を短縮することができる。
【００７２】
（その他の実施例）
上述した実施形態では、送信装置１００がRTP／UDP／IPに対応しているが、これに限定されるものではない。具体的には、送信装置１００がタイムスタンプ及びチェックサムがパケットに付与されるプロトコルに対応していれば、本発明を適用することが可能である。
【００７３】
また、上述した実施形態では、チェックサムの長さが１６bitであるが、これに限定されるものではなく、チェックサム算出要素の長さも１６bitに限定されるものではない。
【図面の簡単な説明】
【００７４】
【図１】本発明の一実施形態に係る送信装置１００の構成を示す図である。
【図２】本発明の一実施形態に係る暫定チェックサムの生成方法を説明するための図である。
【図３】本発明の一実施形態に係る暫定チェックサム格納部１３０に格納される情報を示す図である。
【図４】本発明の一実施形態に係るIPパケット生成部１１０の動作を示すフロー図である。
【図５】本発明の一実施形態に係るIPパケット転送部１４０の動作を示すフロー図である。
【符号の説明】
【００７５】
１００・・・送信装置、１１０・・・IPパケット生成部、１２０・・・IPパケット格納部、１３０・・・暫定チェックサム格納部、１４０・・・IPパケット転送部、１５０・・・イーサネット（登録商標）Ｉ／Ｆ
【図１】
0004611826.tif 000002
【図２】
0004611826.tif 000003
【図３】
0004611826.tif 000004
【図４】
0004611826.tif 000005
【図５】
0004611826.tif 000006