(57)【要約】【課題】ＴＣＰタイムスタンプと用いて通信する通信システムにおいて、送信パケットに追加情報を付加しなくても、不正なＴＣＰタイムスタンプによる通信セッションの途切れを低減できるようにする。【解決手段】通信装置は、通信ネットワークを介して接続される他の通信装置と通信する通信装置であって、不正なＴＣＰタイムスタンプを含む受信パケットを受信したときに、前記受信パケットを送信した通信装置の情報を記憶部に記憶して管理する管理部と、前記他の通信装置と通信するときに、前記他の通信装置の情報が前記記憶部に記憶されているか否かを判断する判断部と、前記他の通信装置の情報が前記記憶部に記憶されている場合、前記他の通信装置との通信におけるＴＣＰタイムスタンプオプションを無効にする通信制御部と、を有する。【選択図】図４
2020123858.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークを介して接続される他の通信装置と通信する通信装置であって、
不正なＴＣＰタイムスタンプを含む受信パケットを受信したときに、前記受信パケットを送信した通信装置の情報を記憶部に記憶して管理する管理部と、
前記他の通信装置と通信するときに、前記他の通信装置の情報が前記記憶部に記憶されているか否かを判断する判断部と、
前記他の通信装置の情報が前記記憶部に記憶されている場合、前記他の通信装置との通信におけるＴＣＰタイムスタンプオプションを無効にする通信制御部と、
を有する、通信装置。
【請求項２】
前記他の通信装置の情報が前記記憶部に記憶されていない場合、ＴＣＰタイムスタンプを用いて前記他の通信装置と通信を行う、請求項１に記載の通信装置。
【請求項３】
前記通信装置の情報は、当該通信装置のＭＡＣアドレスを含み、
前記判断部は、前記他の通信装置から受信したＳＹＮパケットに含まれるＭＡＣアドレスが、前記記憶部に記憶されているか否かを判断する、請求項１又は２に記載の通信装置。
【請求項４】
前記管理部は、前記受信パケットのＴＣＰタイムスタンプが、前回受信した受信パケットのＴＣＰタイムスタンプよりも古い場合、前記受信パケットが不正なＴＣＰタイムスタンプを含むと判断する、請求項１乃至３のいずれか一項に記載の通信装置。
【請求項５】
前記管理部は、過去に受信した複数のＴＣＰタイムスタンプを保持しておき、
前記受信パケットのＴＣＰタイムスタンプと、前記過去に受信した複数のＴＣＰタイムスタンプとを用いて、前記受信パケットが不正なＴＣＰタイムスタンプであるか否かを判断する、請求項１乃至４のいずれか一項に記載の通信装置。
【請求項６】
前記管理部は、前記ＴＣＰタイムスタンプが、予め設定された所定の条件を満たす場合、前記受信パケットが不正なＴＣＰタイムスタンプを含むと判断する、請求項１乃至５のいずれか一項に記載の通信装置。
【請求項７】
前記所定の条件の設定を受け付ける設定受付部を有する、請求項６に記載の通信装置。
【請求項８】
前記記憶部に記憶する前記通信装置の情報の登録を受け付ける登録受付部を有する、請求項１乃至７のいずれか一項に記載の通信装置。
【請求項９】
通信ネットワークを介して接続される他の通信装置と通信する通信装置に、
不正なＴＣＰタイムスタンプを含む受信パケットを受信したときに、前記受信パケットを送信した通信装置の情報を記憶部に記憶する処理と、
前記他の通信装置と通信するときに、前記他の通信装置の情報が前記記憶部に記憶されているかを判断する処理と、
前記他の通信装置の情報が前記記憶部に記憶されている場合、前記他の通信装置との通信におけるＴＣＰタイムスタンプオプションを無効にする処理と、
を実行させる、通信プログラム。
【請求項１０】
通信装置が、通信ネットワークを介して接続される他の通信装置と通信する通信方法であって、
前記通信装置が、
不正なＴＣＰタイムスタンプを含む受信パケットを受信したときに、前記受信パケットを送信した通信装置の情報を記憶部に記憶する処理と、
前記他の通信装置と通信するときに、前記他の通信装置の情報が前記記憶部に記憶されているかを判断する処理と、
前記他の通信装置の情報が前記記憶部に記憶されている場合、前記他の通信装置との通信におけるＴＣＰタイムスタンプオプションを無効にする処理と、
を実行する、通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信装置、通信プログラム、及び通信方法に関する。
【背景技術】
【０００２】
ＴＣＰ（Transmission Control Protocol）通信を行う通信システムにおいて、ＴＣＰオプションの一つであるＴＣＰタイムスタンプ（TCP Timestamp）を用いた通信が行われている。
【０００３】
また、通信系の違い等の理由によって、順序が入れ替わったミラーパケットの並べ替えを行うために、ミラーリングハブで受信したパケット毎に、タイムスタンプ情報を示すパケットを作成して、記憶装置に転送する技術が知られている（例えば、特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＴＣＰタイムスタンプを用いた通信では、受信パケットの順序が入れ替わると、ＴＣＰタイムスタンプの値が不正と判断され、不正と判断された受信パケットは破棄されるため、通信セッションが途切れてしまう場合がある。
【０００５】
これに対して、例えば、特許文献１に開示された技術を適用して、パケットを並べ替える方法も考えられるが、この方法では、送信側の通信装置が、送信パケットに追加情報を付加しなければならないという問題がある。
【０００６】
本発明の一実施形態は、上記の問題点に鑑みてなされたものであって、ＴＣＰタイムスタンプと用いて通信する通信システムにおいて、送信パケットに追加情報を付加しなくても、不正なＴＣＰタイムスタンプによる通信セッションの途切れを低減できるようにする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の一実施形態に係る通信装置は、通信ネットワークを介して接続される他の通信装置と通信する通信装置であって、不正なＴＣＰタイムスタンプを含む受信パケットを受信したときに、前記受信パケットを送信した通信装置の情報を記憶部に記憶して管理する管理部と、前記他の通信装置と通信するときに、前記他の通信装置の情報が前記記憶部に記憶されているか否かを判断する判断部と、前記他の通信装置の情報が前記記憶部に記憶されている場合、前記他の通信装置との通信におけるＴＣＰタイムスタンプオプションを無効にする通信制御部と、を有する。
【発明の効果】
【０００８】
本発明の一実施形態によれば、ＴＣＰタイムスタンプと用いて通信する通信システムにおいて、送信パケットに追加情報を付加しなくても、不正なＴＣＰタイムスタンプによる通信セッションの途切れを低減できる。
【図面の簡単な説明】
【０００９】
【図１】一実施形態に係る通信システムのシステム構成の例を示す図である。
【図２】一実施形態に係るＭＦＰのハードウェア構成の例を示す図である。
【図３】一実施形態に係るＰＣのハードウェア構成の例を示す図である。
【図４】第１の実施形態に係る通信装置の機能構成の例を示す図である。
【図５】第１の実施形態に係る通信制御処理の例を示すフローチャートである。
【図６】第１の実施形態に係る判断部の処理について説明するための図である。
【図７】第１の実施形態に係るＴＣＰタイムスタンプを判断する処理について説明するための図である。
【図８】第２の実施形態に係る通信装置の機能構成の例を示す図である。
【図９】第２の実施形態に係る装置情報の登録、及びルール情報の設定について説明するための図である。
【発明を実施するための形態】
【００１０】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
【００１１】
＜システム構成＞
図１は、一実施形態に係る通信システムのシステム構成の例を示す図である。通信システム１は、例えば、インターネットやＬＡＮ（Local Area Network）等の通信ネットワーク１０を介して、他の通信装置と通信する複数の通信装置が含まれる。複数の通信装置には、例えば、ＭＦＰ（Multifunction Peripheral）１００ａ、プロジェクタ１００ｂ、ビデオ会議端末１００ｃ等の電子機器や、ＰＣ（Personal Computer）１００ｄ、スマートフォン１００３、サーバ１００ｆの情報処理装置等が含まれる。なお、以下の説明の中で、複数の通信装置のうち、任意の通信装置を示す場合「通信装置１００」を用いる。
【００１２】
通信装置１００は、通信ネットワーク１０を介して接続される他の通信装置と、ＴＣＰタイムスタンプ（TCP Timestamp）を用いて、ＴＣＰ（Transmission Control Protocol）通信を行うことができる。
【００１３】
ＴＣＰタイムスタンプは、ＴＣＰオプションの一つであり、パケット中にタイムスタンプ（送信時間）を埋め込むために用いられる。ＴＣＰタイプスタンプの情報は、例えば、パケットの往復時間（ＲＴＴ: Round Trip Time）の測定や、シーケンス番号の巡回防止等に用いられる。ＴＣＰタイムスタンプはオプションであるため、有効／無効のいずれでもＴＣＰ通信が可能であるが、有効にすることにより、スループットの向上や通信品質の向上が期待できるため、できるだけ有効に設定することが望ましい。
【００１４】
ＴＣＰタイムスタンプは、ＴＣＰ３ウェイハンドシェイク（TCP 3 way handshake）の際に、お互いのＳＹＮ（Synchronize）パケットにフラグを設定することで有効となり、ＴＣＰパケットを送信するときに、内部タイマの値をＴＣＰタイムスタンプに格納する。
【００１５】
ＴＣＰパケットを送信するときにＴＣＰタイムスタンプに格納する値は、単調増加させることがＲＦＣ１３２３に規定されているが、例えば、対向機やネットワークの状態等によって、受信するＴＣＰタイムスタンプの値が入れ替わる（逆転する）場合がある。
【００１６】
ＴＣＰタイムスタンプを用いた通信では、ＴＣＰタイムスタンプの値が逆転すると、ＴＣＰタイムスタンプの値が不正と判断され、不正と判断された受信パケットは破棄されるため、ＴＣＰの通信セッションが途切れてしまう場合がある。このような場合、再度ＴＣＰの通信セッションが確立することができるが、対向機やネットワークの状態が改善されない限り、上述したような、ＴＣＰタイムスタンプの逆転現象は高い確率で再発するという問題がある。
【００１７】
一方、ＴＣＰタイムスタンプを一律で無効に設定してしまうと、ＲＴＴの測定精度が低下する、或いはシーケンス番号の巡回防止ができないため、ＴＣＰ通信のスループットや通信品質等が低下する等の問題がある。
【００１８】
また、例えば、特許文献１に開示された技術を適用して、パケットを並べ替える方法も考えられるが、この方法では、送信側の通信装置が、送信パケットに追加情報を付加しなければならないという問題がある。
【００１９】
そこで、本実施形態では、ＴＣＰタイムスタンプと用いて通信する通信システム１において、送信パケットに追加情報を付加しなくても、不正なＴＣＰタイムスタンプによる通信セッションの途切れを低減する方法について説明する。
【００２０】
本実施形態に係る通信装置１００は、不正なＴＣＰタイムスタンプを含む受信パケットを受信したときに、受信パケットを送信した通信装置の情報（例えば、ＭＡＣアドレス等）を記憶部に記憶する機能を有している。
【００２１】
また、通信装置１００は、他の通信装置と通信するときに、他の通信装置から受信したＳＹＮパケットに含まれる通信装置の情報が、記憶部に記憶されている場合、他の通信装置との通信におけるＴＣＰタイムスタンプを無効にして通信を行う。一方、他の通信装置から受信したＳＹＮパケットに含まれる通信装置の情報が、記憶部に記憶されていない場合、他の通信装置との通信におけるＴＣＰタイムスタンプを有効にして通信を行う。
【００２２】
これにより、通信装置１００は、他の通信装置１００から不正なタイムスタンプを受信していない場合、他の通信装置とＴＣＰタイムオプションを有効にして通信を行うことができるので、スループット、通信品質等の向上が期待できる。
【００２３】
また、通信装置１００は、ＴＣＰタイムスタンプと用いて通信する通信システム１において、送信パケットに追加情報を付加しなくても、不正なＴＣＰタイムスタンプによる通信セッションの途切れを低減することができる。
【００２４】
ここでは、一例として、通信装置１００がＭＦＰ１００ａ等の電子機器であり、他の通信装置がＰＣ１００ｄ等の情報処理装置であるものとして、以下の説明を行う。ただし、これは、あくまで一例であり、通信装置１００及び他の通信装置は、例えば、プロジェクタ１００ｂ、ＩＷＢ（Interactive White Board：相互通信が可能な電子式の黒板機能を有する白板）、デジタルサイネージ、ＨＵＤ（Head Up Display）装置等の出力装置であっても良い。また、通信装置１００及び他の通信装置は、例えば、産業機械、撮像装置、集音装置、医療機器、ネットワーク家電、自動車（Connected Car）、デジタルカメラ、ウェアラブル端末等の機器であっても良い。さらに、通信装置１００及び他の通信装置は、例えば、携帯電話、スマートフォン、タブレット端末、ゲーム機、ＰＤＡ（Personal Digital Assistant）、デジタルカメラ、ウェアラブル端末等の汎用の情報処理装置であっても良い。
【００２５】
＜ハードウェア構成＞
続いて、本実施形態に係る通信装置１００のハードウェア構成の例について説明する。
【００２６】
（ＭＦＰのハードウェア構成）
図２は、一実施形態に係るＭＦＰのハードウェア構成の例を示す図である。ここでは、通信装置１００が電子機器である場合のハードウェア構成の一例として、ＭＦＰ１００ａハードウェア構成について説明する。
【００２７】
ＭＦＰ１００ａは、例えば、図２に示されるように、コントローラ２１０、近距離通信回路２２０、エンジン制御部２３０、操作パネル２４０、ネットワークＩ／Ｆ（Interface）２５０等を備えている。
【００２８】
これらのうち、コントローラ２１０は、コンピュータの主要部であるＣＰＵ（Central Processing Unit）２０１、システムメモリ（ＭＥＭ−Ｐ）２０２、ノースブリッジ（ＮＢ）２０３、サウスブリッジ（ＳＢ）２０４、ＡＳＩＣ(Application Specific Integrated Circuit)２０５、記憶部であるローカルメモリ（ＭＥＭ−Ｃ）２０６、ＨＤＤ(Hard Disk Drive)コントローラ２０７、及び、記憶部であるＨＤ（Hard Disk）２０８等を有し、ＮＢ２０３とＡＳＩＣ２０５との間をＡＧＰ(Accelerated Graphics Port)バス２１１で接続した構成となっている。
【００２９】
これらのうち、ＣＰＵ２０１は、ＭＦＰ１００ａの全体制御を行う制御部である。ＮＢ２０３は、ＣＰＵ２０１と、ＭＥＭ−Ｐ２０２、ＳＢ２０４、及びＡＧＰバス２１１とを接続するためのブリッジであり、ＭＥＭ−Ｐ２０２に対する読み書きなどを制御するメモリコントローラと、ＰＣＩ(Peripheral Component Interconnect)マスタ及びＡＧＰターゲットとを有する。
【００３０】
ＭＥＭ−Ｐ２０２は、コントローラ２１０の各機能を実現させるプログラムやデータの格納用メモリであるＲＯＭ（Read Only Memory）２０２ａ、プログラムやデータの展開、及びメモリ印刷時の描画用メモリなどとして用いるＲＡＭ（Random Access Memory）２０２ｂとからなる。なお、ＲＡＭ２０２ｂに記憶されているプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録して提供するように構成しても良い。
【００３１】
ＳＢ２０４は、ＮＢ２０３とＰＣＩデバイス、周辺デバイスとを接続するためのブリッジである。ＡＳＩＣ２０５は、画像処理用のハードウェア要素を有する画像処理用途向けのＩＣ(Integrated Circuit)であり、ＡＧＰバス２１１、ＰＣＩバス２１２、ＨＤＤコントローラ２０７、及びＭＥＭ−Ｃ２０６をそれぞれ接続するブリッジの役割を有する。このＡＳＩＣ２０５は、ＰＣＩターゲット及びＡＧＰマスタ、ＡＳＩＣ２０５の中核をなすアービタ（ＡＲＢ）、ＭＥＭ−Ｃ２０６を制御するメモリコントローラ、ハードウェアロジック等により画像データの回転などを行う複数のＤＭＡＣ(Direct Memory Access Controller)、並びに、スキャナ部２３１及びプリンタ部２３２との間でＰＣＩバス２１２を介したデータ転送を行うＰＣＩユニットとからなる。なお、ＡＳＩＣ２０５には、ＵＳＢのインターフェースや、ＩＥＥＥ１３９４(Institute of Electrical and Electronics Engineers 1394）のインターフェースを接続するようにしても良い。
【００３２】
ＭＥＭ−Ｃ２０６は、コピー用画像バッファ及び符号バッファとして用いるローカルメモリである。ＨＤ２０８は、画像データの蓄積、印刷時に用いるフォントデータの蓄積、フォームの蓄積を行うためのストレージである。ＨＤ２０８は、ＣＰＵ２０１の制御に従ってＨＤ２０８に対するデータの読出又は書込を制御する。ＡＧＰバス２１１は、グラフィック処理を高速化するために提案されたグラフィックスアクセラレータカード用のバスインタフェースであり、ＭＥＭ−Ｐ２０２に高スループットで直接アクセスすることにより、グラフィックスアクセラレータカードを高速にすることができる。
【００３３】
近距離通信回路２２０には、１つ以上の無線通信Ｉ／Ｆ２２０ａが備わっている。無線通信Ｉ／Ｆ２２０ａには、例えば、ＮＦＣ（Near Field Communication）、Ｂｌｕｅｔｏｏｔｈ（登録商標）等の近距離無線通信を行うためのアンテナ、高周波回路、通信制御回路等が含まれ得る。
【００３４】
エンジン制御部２３０は、例えば、スキャナ部２３１及びプリンタ部２３２等によって構成されている。スキャナ部２３１は、原稿等を読み取る読取装置である。プリンタ部２３２は、印刷データを印刷媒体に印刷する印刷装置である。スキャナ部２３１又はプリンタ部２３２には、例えば、誤差拡散やガンマ変換等の画像処理部分が含まれている。
【００３５】
操作パネル２４０は、現在の設定値や選択画面等を表示させ、操作者からの入力を受け付けるタッチパネル等のパネル表示部２４０ａ、並びに、濃度の設定条件などの画像形成に関する条件の設定値を受け付けるテンキー及びコピー開始指示を受け付けるスタートキー等からなる操作ボタン２４０ｂを備えている。コントローラ２１０は、ＭＦＰ１００ａ全体の制御を行い、例えば、描画、通信、操作パネル２４０からの入力等を制御する。
【００３６】
なお、ＭＦＰ１００ａは、操作パネル２４０のアプリケーション切り替えキーにより、ドキュメントボックス機能、コピー機能、プリンタ機能、及びファクシミリ機能を順次に切り替えて選択することが可能となる。ドキュメントボックス機能の選択時にはドキュメントボックスモードとなり、コピー機能の選択時にはコピーモードとなり、プリンタ機能の選択時にはプリンタモードとなり、ファクシミリモードの選択時にはファクシミリモードとなる。
【００３７】
また、ネットワークＩ／Ｆ２５０は、通信ネットワーク１０を利用してデータ通信をするためのインターフェースである。近距離通信回路２２０及びネットワークＩ／Ｆ２５０は、ＰＣＩバス２１２を介して、ＡＳＩＣ２０５に電気的に接続されている。
【００３８】
（ＰＣのハードウェア構成）
図３は、一実施形態に係るＰＣのハードウェア構成の例を示す図である。ここでは、通信装置１００が情報処理装置である場合のハードウェア構成の一例として、ＰＣ１００ｄハードウェア構成について説明する。
【００３９】
ＰＣ１００ｄは、例えば、図３に示すようなコンピュータのハードウェア構成を有している。ＰＣ１００ｄは、例えば、ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３、ＨＤ３０４、ＨＤＤコントローラ３０５、ディスプレイ３０６、外部機器接続Ｉ／Ｆ３０７、ネットワークＩ／Ｆ３０８、キーボード３０９、ポインティングデバイス３１０、ＤＶＤ−ＲＷ(Digital Versatile Disk Rewritable)ドライブ３１２、メディアＩ／Ｆ３１４、及びバスライン３１５等を備えている。
【００４０】
これらのうち、ＣＰＵ３０１は、ＰＣ１００ｄ全体の動作を制御する。ＲＯＭ３０２は、例えば、ＩＰＬ（Initial Program Loader）等のＣＰＵ３０１の起動に用いられるプログラムを記憶する。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される。ＨＤ３０４は、プログラム等の各種データを記憶する。ＨＤＤコントローラ３０５は、ＣＰＵ３０１の制御に従ってＨＤ３０４に対する各種データの読み出し又は書き込みを制御する。
【００４１】
ディスプレイ３０６は、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示する。外部機器接続Ｉ／Ｆ３０７は、各種の外部機器を接続するためのインターフェースである。この場合の外部機器は、例えば、ＵＳＢ(Universal Serial Bus)メモリやプリンタ等が含まれる。ネットワークＩ／Ｆ３０８は、通信ネットワーク１０を利用してデータ通信をするためのインターフェースである。
【００４２】
キーボード３０９は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。ポインティングデバイス３１０は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行う入力手段の一種である。ＤＶＤ−ＲＷドライブ３１２は、着脱可能な記録媒体の一例としてのＤＶＤ−ＲＷ３１１に対する各種データの読み出し又は書き込みを制御する。なお、ＤＶＤ−ＲＷ３１１は、ＤＶＤ−ＲＷに限らず、ＤＶＤ−Ｒ等であっても良い。メディアＩ／Ｆ３１４は、フラッシュメモリ等のメディア３１３に対するデータの読み出し又は書き込み（記憶）を制御する。バスライン３１５は、上記の各構成要素を電気的に接続するためのアドレスバス、データバス及び各種の制御信号等を含む。
【００４３】
＜機能構成＞
続いて、通信装置１００の機能構成について説明する。
【００４４】
図４は、一実施形態に係る通信装置の機能構成の例を示す図である。通信装置１００は、例えば、図２のＣＰＵ２０１（又は図３のＣＰＵ３０１）で所定のプログラム（通信プログラム）を実行することにより、通信部４０１、管理部４０２、判断部４０３、通信制御部４０４、及び記憶部４０５等を実現している。なお、上記の各機能構成のうち、少なくとも一部は、ハードウェアによって実現されるものであっても良い。
【００４５】
通信部４０１は、例えば、ＣＰＵ２０１（又はＣＰＵ３０１）で実行されるプログラム、及びネットワークＩ／Ｆ２５０（又はネットワークＩ／Ｆ３０８）等によって実現され、通信ネットワーク１０を介して接続される他の通信装置とＴＣＰ通信を行う。
【００４６】
管理部４０２は、例えば、ＣＰＵ２０１（又はＣＰＵ３０１）で実行されるプログラムによって実現され、通信部４０１が不正なＴＣＰタイムスタンプを含む受信パケットを受信したときに、受信パケットを送信した通信装置の情報を記憶部４０５に記憶する。
【００４７】
例えば、管理部４０２は、受信パケットに含まれるＴＣＰタイムスタンプの順序が入れ替わっているとき（逆転しているとき）、不正なＴＣＰタイムスタンプと判断する。
【００４８】
好ましくは、管理部４０２は、記憶部４０５のルール情報４１２に予め設定されたルール（所定の条件）を満たすＴＣＰタイムスタンプについても、不正なＴＣＰタイムスタンプと判断する。
【００４９】
また、管理部４０２は、不正なＴＣＰタイムスタンプを含むと判断された受信パケットに設定されている送信元のＭＡＣ（Media Access Control）アドレス（通信装置の情報の一例）を、記憶部４０５の装置情報４１１に記憶して管理する。
【００５０】
好ましくは、管理部４０２は、過去に受信した複数のＴＣＰタイムスタンプを、記憶部４０５等に保持しておき、受信パケットのＴＣＰタイムスタンプと、過去に受信した複数のＴＣＰタイムスタンプとを用いて、受信パケットが不正なＴＣＰタイムスタンプを含むか否かを判断しても良い。
【００５１】
判断部４０３は、例えば、ＣＰＵ２０１（又はＣＰＵ３０１）で実行されるプログラムによって実現され、他の通信装置と通信するときに、他の通信装置の情報が、記憶部４０５に記憶されているか否かを判断する。例えば、判断部４０３は、他の通信装置から受信したＳＹＮパケットに含まれる送信元のＭＡＣアドレスが、記憶部４０５の装置情報４１１に記憶されているが否かを判断する。
【００５２】
通信制御部４０４は、例えば、ＣＰＵ２０１（又はＣＰＵ３０１）で実行されるプログラムによって実現され、他の通信装置の情報が記憶部４０５に記憶されている場合、他の通信装置との通信におけるＴＣＰタイムスタンプオプションを無効にする。例えば、通信制御部４０４は、判断部４０３によって、他の通信装置の情報が、記憶部４０５に記憶されていると判断された場合、ＳＹＮパケット応答するＳＹＮ／ＡＣＫパケットのＴＣＰタイムスタンプオプションを無効に設定する。
【００５３】
一方、通信制御部４０４は、ＳＹＮパケットに含まれる他の通信装置の情報が記憶部４０５に記憶されていない場合、他の通信装置との通信におけるＴＣＰタイムスタンプオプションを有効にする。
【００５４】
記憶部４０５は、例えば、ＣＰＵ２０１（又はＣＰＵ３０１）で実行されるプログラム、及び図２のＨＤ２０８（又は図３のＨＤ３０４）等によって実現され、装置情報４１１、ルール情報４１２、及び受信パケットのＴＣＰタイムス８０１タンプ等の情報を記憶する。
【００５５】
装置情報４１１に記憶されている情報の一例を表１に示す。
【００５６】
【表１】
2020123858.tif 000003
装置情報４１１には、例えば、表１に示すように、ＴＣＰタイムスタンプが不正と判断された他の通信装置のＭＡＣアドレスの一覧が記憶されている。
【００５７】
また、ルール情報４１２に記憶されている情報の一例を表２に示す。
【００５８】
【表２】
2020123858.tif 000004
ルール情報４１２には、例えば、表２に示すように、受信パケットに含まれるＴＣＰタイムスタンプを、不正と判断するためのルールの一覧が記憶されている。
【００５９】
＜処理の流れ＞
続いて、第１の実施形態に係る通信方法の処理の流れについて説明する。
【００６０】
［第１の実施形態］
図５は、第１の実施形態に係る通信制御処理の例を示すフローチャートである。この処理は、通信装置１００が、他の通信装置と通信を行うときに実行する通信制御処理の例を示している。
【００６１】
ステップＳ５０１において、通信装置１００の通信部４０１は、ＴＣＰ通信を行う他の通信装置からＳＹＮパケットを受信する。
【００６２】
ステップＳ５０２において、通信装置１００の判断部４０３は、受信したＳＹＮパケットに含まれる送信元のＭＡＣアドレスが、記憶部４０５に記憶されているか否かを判断する。
【００６３】
図６は、第１の実施形態に係る判断部の処理について説明するための図である。図６に示すように、受信したＳＹＮパケット６０１には、ＳＹＮパケット６０１を送信した送信元のＭＡＣアドレスが含まれている。また、記憶部４０５の装置情報４１１には、図に示すように、過去にＴＣＰタイムスタンプが不正と判断された通信装置のＭＡＣアドレスの一覧が記憶されている。
【００６４】
判断部４０３は、ＳＹＮパケット６０１に含まれる送信元のＭＡＣアドレスが、装置情報４１１に記憶されているか否かを判断し、送信元のＭＡＣアドレスが装置情報４１１に記憶されていない場合、処理をステップＳ５０３に移行させる。一方、判断部４０３は、送信元のＭＡＣアドレスが装置情報４１１に記憶されている場合、処理をステップＳ５１０に移行させる。
【００６５】
例えば、図６の例では、ＳＹＮパケット６０１に含まれる送信元のＭＡＣアドレス「ａａ：ｂｂ：ｃｃ：ｄｄ：ｅｅ：ｆｆ」が、装置情報４１１に記憶されているＭＡＣアドレスと一致するので、通信装置１００は、ステップＳ５１０の処理を実行する。
【００６６】
まず、ステップＳ５０２からステップＳ５０３に移行した場合の処理について説明する。ステップＳ５０３に移行すると、通信装置１００の通信制御部４０４は、他の通信装置とＴＣＰタイムスタンプオプションを有効に設定する。これにより、通信部４０１は、受信したＳＹＮパケットに応じて、ＴＣＰタイムスタンプを有効に設定したＳＹＮ／ＡＣＫパケットを、他の通信装置に送信する。これにより、ステップＳ５０４において、通信装置１００は、他の通信装置とＴＣＰタイムスタンプ有効でＴＣＰ通信を行う。
【００６７】
ステップＳ５０５において、通信装置１００は、ＴＣＰの通信セッションが終了したか否かを判断する。ＴＣＰの通信セッションが終了した場合、通信装置１００は、図５の処理を終了させる。一方、ＴＣＰの通信セッションが終了していない場合、通信装置１００は、処理をステップＳ５０６に移行させる。
【００６８】
ステップＳ５０６において、通信装置１００の通信部４０１は、他の通信装置から送信されるＴＣＰパケットを受信すると、ステップＳ５０７以降の処理を実行する。
【００６９】
ステップＳ５０７において、通信装置１００の管理部４０２は、受信したＴＣＰパケットのＴＣＰタイムスタンプが不正であるか否かを判断する。
【００７０】
図７は、第１の実施形態に係るＴＣＰタイムスタンプを判断する処理について説明するための図である。
【００７１】
図７（ａ）は、ＴＣＰタイムスタンプ６１１のフォーマットの例を示している。図７（ａ）に示すように、ＴＣＰタイムスタンプ６１１には、オプション番号、長さ、ＴｉｍｅＳｔａｍｐ値、ＴｉｍｅＳｔａｍｐ Ｅｃｈｏ Ｒｅｐｌｙ値等の情報が含まれる。管理部４０２は、これらの情報のうち、ＴｉｍｅＳｔａｍｐ値を、ＴＣＰパケットを受信する毎に、記憶部４０５に保持（記憶）しておく。
【００７２】
また、管理部４０２は、通信部４０１がＴＣＰパケットを受信すると、例えば、図７（ｂ）に示すように、前回受信したＴｉｍｅＳｔａｍｐ値と、今回受信したＴｉｍｅＳｔａｍｐ値とを比較する。さらに、管理部４０２は、図７（ｂ）に示すように、今回受信したＴｉｍｅＳｔａｍｐ値が、前回受信したＴｉｍｅＳｔａｍｐ値より小さい場合（又は前記受信したＴｉｍｅＳｔａｍｐ値と同じ値である場合）、ＴＣＰタイムスタンプが不正であると判断する。一方、管理部は、今回受信したＴｉｍｅＳｔａｍｐ値が、前回受信したＴｉｍｅＳｔａｍｐ値より大きい場合、ＴＣＰタイムスタンプが不正ではない（正しい）と判断する。
【００７３】
好ましくは、管理部４０２は、上記の判断に加えて、受信したＴＣＰパケットが、例えば、表２に示すようなルール情報４１２に設定されているルールを満たす場合、ＴＣＰタイムスタンプが不正であると判断する。
【００７４】
受信したＴＣＰパケットのＴＣＰタイムスタンプが不正である場合、管理部４０２は、処理をステップＳ５０８に移行させる。一方、受信したＴＣＰパケットのＴＣＰタイムスタンプが不正ではない場合、管理部４０２は、処理をステップＳ５０９に移行させる。
【００７５】
ステップＳ５０８に移行すると、管理部４０２は、受信したＴＣＰパケットに含まれる通信装置の情報を、記憶部４０５に記憶する。例えば、管理部４０２は、受信したＴＣＰパケットに含まれる送信元のＭＡＣアドレスを、表１に示すような装置情報４１１に登録する。
【００７６】
ステップＳ５０９に移行すると、管理部４０２は、受信したＴＣＰパケットに含まれるＴＣＰタイムスタンプ（ＴｉｍｅＳｔａｍｐ値）を記憶部４０５等に保持（記憶）して、処理をステップＳ５０５に戻す。
【００７７】
続いて、ステップＳ５０２からステップＳ５１０に移行した場合の処理について説明する。ステップＳ５１０に移行すると、通信装置１００の通信制御部４０４は、他の通信装置との通信におけるＴＣＰタイムスタンプオプションを無効に設定する。これにより、通信部４０１は、受信したＳＹＮパケットに応じて、ＴＣＰタイムスタンプを無効に設定したＳＹＮ／ＡＣＫパケットを、他の通信装置に送信する。これにより、ステップＳ５１１において、通信装置１００は、他の通信装置とＴＣＰタイムスタンプ無効でＴＣＰ通信を行う。
【００７８】
ステップＳ５１２において、通信装置１００は、ＴＣＰの通信セッションが終了するまで通信を継続し、ＴＣＰの通信セッションが終了すると図５の処理を終了する。
【００７９】
上記の処理により、通信装置１００は、通信先の他の通信装置から、不正なＴＣＰタイムスタンプを受信していない場合、ＴＣＰタイムスタンプを有効してＴＣＰ通信を行うことができる。
【００８０】
また、通信装置１００は、上記の処理を繰り返し実行することにより、通信先の他の通信装置から、不正なＴＣＰタイムスタンプを受信した場合、ＴＣＰタイムスタンプを無効に設定することができる。
【００８１】
これにより、通信装置１００は、例えば、他の通信装置と通信中に、不正なＴＣＰタイムスタンプにより通信セッションが途切れた場合、ＴＣＰタイムスタンプを無効に変更して通信セッションを再開することができるようになる。
【００８２】
従って、本実施形態によれば、ＴＣＰタイムスタンプと用いて通信する通信システム１において、送信パケットに追加情報を付加しなくても、不正なＴＣＰタイムスタンプによる通信セッションの途切れを低減できるようになる。
【００８３】
［第２の実施形態］
図８は、第２の実施形態に係る通信装置の機能構成の例を示す図である。第２の実施形態に係る通信装置１００は、図４に示す第１の実施形態に係る通信装置１００の機能構成に加えて、登録受付部８０１、設定受付部８０２等を有している。
【００８４】
登録受付部８０１は、例えば、ＣＰＵ２０１（又はＣＰＵ３０１）で実行されるプログラムによって実現され、表１に示すような装置情報４１１に記憶する通信装置の情報（例えば、ＭＡＣアドレス）を受け付ける。また、登録受付部８０１は、受け付けた通信装置の情報を、記憶部４０５の装置情報４１１に記憶する。
【００８５】
設定受付部８０２は、例えば、ＣＰＵ２０１（又はＣＰＵ３０１）で実行されるプログラムによって実現され、表２に示すようなルール情報４１２に登録する判断ルール（所定の条件）を受け付ける。また、設定受付部８０２は、受け付けた判断ルールを、記憶部のルール情報４１２に記憶する。
【００８６】
図９は、第２の実施形態に係る装置情報の登録、及びルール情報の設定について説明するための図である。
【００８７】
第１の実施形態では、通信装置１００の管理部４０２が、他の通信装置から受信した受信パケットのＴＣＰタイムスタンプが不正であると判断したときに、他の通信装置のＭＡＣアドレス（通信装置の情報）を、装置情報４１１に自動的に登録していた。例えば、管理部４０２は、受信パケットのＴＣＰタイムスタンプが、前回のＴＣＰタイムスタンプより古い場合、及びルール情報４１２に設定された判断ルールを満たしている場合、他の通信装置のＭＡＣアドレスを装置情報４１１に自動的に登録していた。
【００８８】
第２の実施形態では、通信装置１００の登録受付部８０１は、例えば、図２の操作パネル２４０（又は図３のディスプレイ３０６）等の表示部に登録画面９０２を表示させて、ユーザによるＭＡＣアドレスの登録を受け付けることができる、これにより、ユーザは、例えば、登録画面９０２のＭＡＣアドレスの入力欄等にＭＡＣアドレスを入力すること等により、ＭＡＣアドレスを手動で装置情報４１１に登録することができる。
【００８９】
また、第２の実施形態では、通信装置１００の設定受付部８０２は、例えば、図２の操作パネル２４０（又は図３のディスプレイ３０６）等の表示部に設定画面９０１を表示させて、ユーザによる判断ルールの設定を受け付けることができる。これにより、ユーザは、例えば、設定画面９０１に表示された、設定可能な判断ルールの一覧から、設定したい判断ルールを有効に設定すること等により、判断ルールを手動でルール情報４１２に設定することができる。
【００９０】
また、別の一例として、登録受付部８０１、設定受付部８０２は、管理者のＰＣ等から送信される装置情報、ルール情報等の設定要求に応じて、記憶部４０５に記憶した装置情報４１１、ルール情報４１２を更新するものであっても良い。
【００９１】
これにより、通信装置１００のユーザや管理者等は、装置情報４１１、ルール情報４１２等を、より柔軟に管理することができるようになる。
【００９２】
以上、本発明の各実施形態によれば、ＴＣＰタイムスタンプと用いて通信する通信システム１において、送信パケットに追加情報を付加しなくても、不正なＴＣＰタイムスタンプによる通信セッションの途切れを低減できるようになる。
【００９３】
＜補足＞
上記で説明した各実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたＡＳＩＣ（Application Specific Integrated Circuit）、ＤＳＰ（digital signal processor）、ＦＰＧＡ（field programmable gate array）や従来の回路モジュール等のデバイスを含むものとする。
【符号の説明】
【００９４】
１          通信システム
１０        通信ネットワーク
１００      通信装置
４０１      通信部
４０２      管理部
４０３      判断部
４０４      通信制御部
４０５      記憶部
【先行技術文献】
【特許文献】
【００９５】
【特許文献１】特開２０１８−０７４５１１号公報
【図１】
2020123858.tif 000005
【図２】
2020123858.tif 000006
【図３】
2020123858.tif 000007
【図４】
2020123858.tif 000008
【図５】
2020123858.tif 000009
【図６】
2020123858.tif 000010
【図７】
2020123858.tif 000011
【図８】
2020123858.tif 000012
【図９】
2020123858.tif 000013