(57)【要約】【課題】ＬＡＮとインターネット（ＷＡＮ）が接続されたネットワーク環境においてＷＡＮ側の機器からＬＡＮ内の機器に所望のタイミングで容易に接続可能とする通信システムを提供する。【解決手段】機器１０１は定期的にサーバ１０４に対しＵＤＰパケットを送信する。サーバ１０４は必要な時にこのＵＤＰパケットに対する返信パケットとして通信を送ることで、サーバ１０４から機器１０１へのＮＡＴを越えた通信を行なうことができる。特に、サーバ１０４がまず機器１０１に対しＵＤＰで接続要求１１１を送り、機器１０１はサーバ１０４からの接続要求１１１を受け、サーバ１０４に対してＴＣＰ接続１１２を行う。サーバ１０４は確立したＴＣＰ上で携帯電話機等の端末１０２と機器１０１間の通信（１１４〜１１７）を制御する。【選択図】　図１
2004120547.tif 000002
【特許請求の範囲】
【請求項１】
インターネットに接続された少なくとも１つの機器と、インターネットに接続可能な少なくとも１つの端末との間の通信を転送する、インターネットに接続されたサーバであって、
前記機器からの定期的な通知ＵＤＰパケットを受信し、
前記端末からの前記機器に対する転送要求があった場合、前記通知ＵＤＰパケットの応答として接続要求ＵＤＰパケットを前記機器に送信し、
該接続要求ＵＤＰパケットに応答して前記機器から前記サーバへ送信されたＴＣＰ接続要求を受諾し、
ＴＣＰ接続確立後、そのＴＣＰ接続上で前記端末と前記機器間の通信を転送する
ことを特徴とするサーバ。
【請求項２】
前記サーバは、前記端末から機器ＩＤを含んだＨＴＴＰリクエストにより前記機器に対する転送要求を受信し、
前記端末と前記機器の間の通信の転送を、前記端末からのＨＴＴＰリクエストを前記機器から張られたＴＣＰ接続上に転送し、前記機器から前記ＴＣＰ接続を通じて受信したＨＴＴＰレスポンスを端末へ転送することにより行なうことを特徴とする請求項１記載のサーバ。
【請求項３】
前記サーバは、少なくとも１つの端末から複数の転送要求を受信することができ、前記端末から前記機器に対する複数の転送要求があった場合に、各々に一意なセッション識別子を生成して前記接続要求ＵＤＰパケットにより機器に通知し、
前記接続要求ＵＤＰパケットに応答して前記機器から前記サーバへ送信されたＴＣＰ接続要求を受諾してＴＣＰ接続を確立し、該確立したＴＣＰ接続上で前記機器から送信されるセッション識別子を受信し、そのＴＣＰ接続に前記受信したセッション識別子を対応付けることで、前記端末からの複数の接続要求に対して複数のＴＣＰ接続を各々対応付け、
前記端末がセッション識別子を指定して接続を要求し、且つ、該指定されたセッション識別子に対応付けられたＴＣＰ接続が確立済みの場合に、前記端末からの通信をその確立済みのＴＣＰ接続上で転送することにより、セッション識別子毎に並列して通信内容の転送を行う
ことを特徴とする請求項１記載のサーバ。
【請求項４】
前記サーバは、複数の機器に対し、機器毎に最終アクセス時刻を記録する記憶手段を備え、
前記機器からの定期的な通知ＵＤＰパケットを受信したときに、前記最終アクセス時刻を該受信時刻で更新し、
前記端末から前記機器に対する転送要求があった際に、前記機器の最終アクセス時刻と現在時刻との差が所定期間を超えている場合は該接続要求を拒否し、その差が所定期間以下の場合は前記通知ＵＤＰパケットの応答として接続要求ＵＤＰパケットを前記機器に送る
ことを特徴とする請求項１記載のサーバ。
【請求項５】
前記サーバは、複数の機器に対し、機器毎に最終アクセス時間を記録する記憶手段を備え、
前記機器に予め最大アクセス確認周期情報を送信し、
前記機器からの定期的な通知ＵＤＰパケットを受信したときに、最終アクセス時刻を該通知ＵＤＰパケットの受信時刻で更新し、
前記端末から前記機器に対する転送要求があった際に、前記機器の最終アクセス時刻と現在時刻との差が最大アクセス確認周期情報が示す値を超えた場合は、前記接続要求を拒否し、その差が最大アクセス確認周期情報が示す値以下の場合は、前記通知ＵＤＰパケットの応答として接続要求ＵＤＰパケットを前記機器に送る
ことを特徴とする請求項１記載のサーバ。
【請求項６】
前記サーバは、サーバ証明書を保持し、通信を暗号化および復号化する暗号通信手段を備え、
前記端末と前記機器の間で秘密情報を転送する際、予め前記端末にサーバ証明書を送信し、
前記機器により確立されたＴＣＰ接続を介して前記端末から前記機器へ秘密情報を転送する際は、前記端末から暗号化された秘密情報を受信して前記暗号通信手段で復号化した後、前記暗号通信手段で暗号化して前記機器に送信し、
前記機器により確立されたＴＣＰ接続を介して前記機器から前記端末へ秘密情報を転送する際は、前記機器から暗号化された秘密情報を受信して前記暗号通信手段で復号化した後、前記暗号通信手段で暗号化して前記端末に送信することを特徴とする請求項１記載のサーバ。
【請求項７】
前記サーバは、サーバ証明書を保持し、通信を暗号化および復号化する暗号通信手段を備え、
前記端末と前記機器の間で秘密情報を転送する際、予め前記端末と前記機器に各々サーバ証明書を送信し、
前記確立されたＴＣＰ接続を介して前記端末から前記機器へ秘密情報を転送する際は、前記端末から暗号化された秘密情報を受信して前記暗号通信手段で復号化した後、前記暗号通信手段で暗号化して前記機器に送信し、
前記機器により確立されたＴＣＰ接続を介して前記機器から前記端末へ秘密情報を転送する際は、前記機器から暗号化された秘密情報を受信して前記暗号通信手段で復号化した後、前記暗号通信手段で暗号化して前記端末に送信する
ことを特徴とする請求項１記載のサーバ。
【請求項８】
インターネットに接続されたサーバと通信する、インターネットに接続された機器であって、
前記サーバに定期的に通知ＵＤＰパケットを送信し、
前記サーバから接続要求ＵＤＰパケットを受信した場合、前記サーバに対してＴＣＰ接続要求を送信し、
ＴＣＰ接続後、そのＴＣＰ接続上で前記サーバと通信する
ことを特徴とする機器。
【請求項９】
前記機器は、前記ＴＣＰ接続上での前記サーバとの通信を、前記サーバからＨＴＴＰリクエストを受信し、前記サーバへＨＴＴＰレスポンスを送信することにより行なうことを特徴とする請求項８記載の機器。
【請求項１０】
前記機器は、Ｗｅｂサーバモジュールと転送モジュールを備え、
前記Ｗｅｂサーバモジュールは、前記転送モジュールからＨＴＴＰリクエストを受信してＨＴＴＰレスポンスを返信し、
前記転送モジュールは、前記サーバから前記接続要求ＵＤＰパケットを受信した際は前記サーバに対してＴＣＰ接続要求を送信してＴＣＰ接続を確立し、そのＴＣＰ接続上で前記サーバからＨＴＴＰリクエストを受信して前記Ｗｅｂサーバに転送し、前記ＷｅｂサーバからＨＴＴＰレスポンスを受信して前記サーバに前記ＴＣＰ接続上で転送する
ことを特徴とする請求項９記載の機器。
【請求項１１】
前記機器は、前記サーバからセッション識別子を伴った接続要求ＵＤＰパケットを受信した場合、前記サーバに対してＴＣＰ接続を確立し、その確立したＴＣＰ接続上で前記セッション識別子をサーバに送信し、
前記ＴＣＰ接続確立後は、前記ＴＣＰ接続上で前記サーバと通信する
ことを特徴とする請求項８記載の機器。
【請求項１２】
前記機器は、前記サーバから最大アクセス確認周期情報を予め受信して前記機器内に保存しておき、前記最大アクセス確認周期情報が示す周期より短い周期で定期的に通知ＵＤＰパケットを送信することを特徴とする請求項８記載の機器。
【請求項１３】
前記機器は、通信を暗号化および復号化する暗号通信手段を備え、
前記サーバと秘密情報の送受信を確立したＴＣＰ接続上で暗号通信手段により暗号化して行うことを特徴とする請求項８記載の機器。
【請求項１４】
前記機器は、サーバ証明書を検証する手段と通信を暗号化および復号化する暗号通信手段を備え、
前記サーバからサーバ証明書を受信し、
前記サーバと秘密情報の送受信を、前記サーバ証明書を認証して正規であることを確認した後に前記確立したＴＣＰ接続上で暗号通信手段により暗号化して行うことを特徴とする請求項８記載の機器。
【請求項１５】
インターネットに接続された少なくとも１つの機器と、インターネットに接続可能な少なくとも１つの端末との間の通信を、インターネットに接続されたサーバを介して転送する通信システムであって、
前記機器は前記サーバに定期的に通知ＵＤＰパケットを送り、
前記サーバは前記端末から前記機器に対する転送要求があった場合、前記通知ＵＤＰパケットの応答として接続要求ＵＤＰパケットを前記機器に送り、
前記機器は、前記サーバから接続要求ＵＤＰパケットを受信した場合、前記サーバに対してＴＣＰ接続要求を送信し、
前記サーバは、前記接続要求ＵＤＰパケットに応答して前記機器から前記サーバへ送信されたＴＣＰ接続要求を受諾し、これによりＴＣＰ接続を確立し、
前記サーバは、前記ＴＣＰ接続確立後、そのＴＣＰ接続上で前記端末と前記機器の間の通信を転送する
ことを特徴とする通信システム。
【請求項１６】
前記端末は前記サーバに対し機器ＩＤを含んだＨＴＴＰリクエストを送信することにより前記機器に対する転送要求を行い、
前記サーバは前記端末と前記機器の間の通信を転送する際に、前記端末からのＨＴＴＰリクエストを前記機器から張られたＴＣＰ接続上に転送し、
前記機器は転送された前記ＨＴＴＰリクエストを処理して、それに対するＨＴＴＰレスポンスを前記ＴＣＰ接続上で前記サーバへ応答し、
前記サーバは該ＨＴＴＰレスポンスを端末へ転送する
ことを特徴とする請求項１５記載の通信システム。
【請求項１７】
前記サーバは、少なくとも１つの端末から複数の転送要求を受信することができ、前記端末から前記機器に対する複数の転送要求があった場合に、各々に一意なセッション識別子を生成し、前記接続要求ＵＤＰパケットにより前記機器に通知し、
前記機器は、前記サーバからセッション識別子を伴った接続要求ＵＤＰパケットを受信した場合、前記サーバに対してＴＣＰ接続を確立し、その確立したＴＣＰ接続上で前記セッション識別子をサーバに送信し、前記ＴＣＰ接続確立後は、前記ＴＣＰ接続上で前記サーバと通信し、
前記サーバは、前記接続要求ＵＤＰパケットに応答して前記機器から前記サーバへ送信されたＴＣＰ接続要求を受諾してＴＣＰ接続を確立し、前記ＴＣＰ接続上で前記機器から送信されるセッション識別子を受信し、前記ＴＣＰ接続に前記受信されたセッション識別子を対応付けることで、前記端末からの複数の接続要求に対して複数のＴＣＰ接続を各々対応付け、
前記サーバは、前記端末がセッション識別子を指定して接続を要求し、且つ、該指定されたセッション識別子に対応付けられたＴＣＰ接続が確立済みの場合、前記確立済みのＴＣＰ接続上で前記端末からの通信を転送することにより、セッション識別子毎に並列して通信内容の転送を行う
ことを特徴とする請求項１５記載の通信システム。
【請求項１８】
前記サーバは、複数の機器に対し、機器毎に最終アクセス時間を記録する記憶手段を備え、
前記サーバは、前記機器に予め最大アクセス確認周期情報を送信し、
前記機器は、その最大アクセス確認周期情報を受信して内部に保存しておき、前記最大アクセス確認周期情報が示す周期よりも短い周期で定期的に通知ＵＤＰパケットを送信し、
前記サーバは、前記機器から通知ＵＤＰパケットを受信した際に最終アクセス時刻を通知ＵＤＰパケットの受信時刻で更新し、
前記サーバは、前記端末から前記機器に対する転送要求があった際に、前記機器の最終アクセス時刻と現在時刻との差が最大アクセス確認周期情報が示す周期を超えている場合は前記接続要求を拒否し、その差が最大アクセス確認周期情報が示す周期以下の場合は、前記通知ＵＤＰパケットの応答として接続要求ＵＤＰパケットを前記機器に送信する
ことを特徴とする請求項１５記載の通信システム。
【請求項１９】
前記サーバは、サーバ証明書を保持し、通信を暗号化および復号化する暗号通信手段を備え、
前記端末は、サーバ証明書を検証する手段と通信を暗号化および復号化する暗号通信手段とを備え、
前記機器は、通信を暗号化および復号化する暗号通信手段を備え、
前記サーバは、前記端末と前記機器の間で秘密情報を転送する際、予め前記端末にサーバ証明書を送信し、
前記端末は、前記サーバと秘密情報の送受信を、前記サーバ証明書を認証して正規であることを確認した後に暗号通信手段により暗号化して行い、
前記機器は、前記サーバと秘密情報の送受信を、前記確立されたＴＣＰ接続で暗号通信手段により暗号化して行い、
前記サーバは、前記確立されたＴＣＰ接続を介して前記端末から前記機器へ秘密情報を転送する際は、前記端末から暗号化された秘密情報を受信して前記暗号通信手段で復号化した後、前記暗号通信手段で暗号化して前記機器に送信し、
前記サーバは、前記機器により確立されたＴＣＰ接続を介して前記機器から前記端末へ秘密情報を転送する際は、前記機器から暗号化された秘密情報を受信して前記暗号通信手段で復号化した後、前記暗号通信手段で暗号化して前記端末に送信する
ことを特徴とする請求項１５記載の通信システム。
【請求項２０】
前記サーバは、サーバ証明書を保持し、通信を暗号化および復号化する暗号通信手段を備え、
前記端末は、サーバ証明書を検証する手段と通信を暗号化および復号化する暗号通信手段を備え、
前記機器は、サーバ証明書を検証する手段と通信を暗号化および復号化する暗号通信手段を備え、
前記サーバは、前記端末と前記機器の間で秘密情報を転送する際、予め前記端末と前記機器に各々サーバ証明書を送信し、
前記端末は、前記サーバと秘密情報の送受信を、前記サーバ証明書を認証して正規であることを確認した後に暗号通信手段により暗号化して行い、
前記機器は、前記サーバと秘密情報の送受信を、前記サーバ証明書を認証して正規であることを確認した後に前記機器が確立したＴＣＰ接続上で暗号通信手段により暗号化して行い、
前記サーバは、前記機器により確立されたＴＣＰ接続を介して前記端末から前記機器へ秘密情報を転送する際は、前記端末から暗号化された秘密情報を受信して前記暗号通信手段で復号化した後、前記暗号通信手段で暗号化して前記機器に送信し、
前記サーバは、前記機器により確立されたＴＣＰ接続を介して前記機器から前記端末へ秘密情報を転送する際は、前記機器から暗号化された秘密情報を受信して前記暗号通信手段で復号化した後、前記暗号通信手段で暗号化して前記端末に送信する
ことを特徴とする請求項１５記載の通信システム。
【請求項２１】
インターネットに接続された少なくとも１つの機器と、インターネットに接続可能な少なくとも１つの端末との間の通信を転送する、インターネットに接続されたサーバであって、
複数の機器に対し、機器毎に最終アクセス時間を記録する記憶手段を備え、
前記機器から第１及び第２の通知ＵＤＰパケットを定期的に受信し、
前記機器から第１の通知ＵＤＰパケットを受信したときは、最終アクセス時刻を受信時刻で更新し、前記機器から第２の通知ＵＤＰパケットを受信したときは、最終アクセス時刻を更新せず、
前記端末から前記機器に対する転送要求があった際に、前記機器の最終アクセス時刻と現在時刻との差が所定期間を超えている場合は前記接続要求を拒否し、その差が所定期間以下の場合は前記第１及び第２の通知ＵＤＰパケットの応答として接続要求ＵＤＰパケットを前記機器に送り、
前記接続要求ＵＤＰパケットに応答して前記機器から前記サーバへ送信されるＴＣＰ接続要求を受諾し、
ＴＣＰ接続確立後は、前記ＴＣＰ接続上で前記端末と前記機器の間の通信を転送する
ことを特徴とするサーバ。
【請求項２２】
インターネットに接続されたサーバと通信する、インターネットに接続された機器であって、
前記サーバに第１及び第２の通知ＵＤＰパケットを定期的に送信し、前記第１の通知ＵＤＰパケットの送信周期は前記第２の通知ＵＤＰパケットの送信周期より長く、
前記機器は、前記サーバから接続要求ＵＤＰパケットを受信した場合、前記サーバに対してＴＣＰ接続要求を送信し、
前記機器はＴＣＰ接続が確立後、前記ＴＣＰ接続上で前記サーバと通信する
ことを特徴とする機器。
【請求項２３】
インターネットに接続された少なくとも１つの機器と、インターネットに接続可能な少なくとも１つの端末との間の通信を、インターネットに接続されたサーバが転送する通信システムであって、
前記サーバは、複数の機器に対し、機器毎に最終アクセス時間を記録する記憶手段を備え、
前記機器は、前記サーバに第１及び第２の通知ＵＤＰパケットを定期的に送り、前記第１の通知ＵＤＰパケットの送信周期は前記第２の通知ＵＤＰパケットの送信周期よりも長く、
前記サーバは、機器から第１及び第２の通知ＵＤＰパケットを受信し、前記機器から第１の通知ＵＤＰパケットを受信したときに最終アクセス時刻を受信時刻で更新し、第２の通知ＵＤＰパケットを受信したときには最終アクセス時刻を更新せず、
前記サーバは、前記端末から前記機器に対する転送要求があった際に、前記機器の最終アクセス時刻と現在時刻との差が所定期間を超えている場合は前記接続要求を拒否し、その差が所定期間以下の場合は、前記第１及び第２の通知ＵＤＰパケットの応答として接続要求ＵＤＰパケットを前記機器に送り、
前記機器は、前記サーバから接続要求ＵＤＰパケットを受信した場合、前記サーバに対してＴＣＰ接続要求を送信し、
前記サーバは、前記接続要求ＵＤＰパケットに応答して前記機器から前記サーバへ送信されたＴＣＰ接続要求を受諾し、これによりＴＣＰ接続を確立し、
前記サーバは、前記ＴＣＰ接続が確立後、そのＴＣＰ接続上で前記端末と前記機器の間の通信を転送する
ことを特徴とする通信システム。
【請求項２４】
プログラム可能な装置を、請求項１ないし７のいずれか一つ又は２１に記載のサーバとして動作させるためのプログラム。
【請求項２５】
プログラム可能な装置を、請求項８ないし１４のいずれか一つ又は２２に記載の機器として動作させるためのプログラム。
【請求項２６】
請求項２４又は２５に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＩＰプロトコルを採用する通信システムであって、特に、インターネット上の機器から所望のタイミングでルータを介してローカルエリアネットワーク内の機器に対する通信を開始できる通信システムに関する。
【０００２】
【従来の技術】
近年、企業、家庭を問わず、Ｎｅｔｗｏｒｋ　Ａｄｄｒｅｓｓ　Ｔｒａｎｓｌａｔｉｏｎ機能（以下「ＮＡＴ」と称す。）またはＮｅｔｗｏｒｋ　Ａｄｄｒｅｓｓ　Ｐｏｒｔ　Ｔｒａｎｓｌａｔｉｏｎ機能（以下「ＮＡＰＴ」と称す。）を搭載するルータによりローカルエリアネットワーク（以下「ＬＡＮ」と称す。）とインターネットを接続することが一般化している。
【０００３】
インターネットに接続された機器間で通信を行なう場合、世界中で一意に割り当てられたグローバルＩＰアドレスが使用される。一方で、インターネットに接続される機器数の急増によりグローバルＩＰアドレスは不足する傾向にある。そのため、インターネットに直接接続されない組織内や家庭内のＬＡＮにおいては、ＲＦＣ１９１８で規定されたＬＡＮ内でのみ一意なプライベートＩＰアドレスが使用されることが多い。プライベートＩＰアドレスはインターネット上において一意的なアドレスでないため、そのままではプライベートＩＰアドレスを持つ機器はインターネットに接続された機器と通信を行うことができない。ＮＡＴまたはＮＡＰＴ機能はこの問題を解決し、プライベートＩＰアドレスを割り当てられた機器がインターネット経由で通信を行なえるよう、グローバルＩＰアドレスとプライベートＩＰアドレスの相互変換機能を提供する。
【０００４】
以下で、ＮＡＴ機能の仕組みを図８の通信シーケンス図に沿って説明する。ＬＡＮ７１１はルータ７０３を介してインターネット７１２に接続されている。機器７０１はＬＡＮ７１１に接続され、サーバ７０２はインターネット７１２に接続されている。機器７０１のＩＰアドレスはプライベートＩＰアドレス”１９２．１６８．１．２”であり、サーバ７０２のＩＰアドレスはグローバルＩＰアドレス”４．１７．１６８．６”であるとする。ルータ７０３のインターネット側アドレスはグローバルＩＰアドレス”２０２．２２４．１５９．１４２”であるとする。ルータ７０３のインターネット側アドレスは説明の便宜上１つしかないとする。
【０００５】
上記ネットワーク構成において、機器７０１がサーバ７０２と通信を開始するためには、機器７０１は、まずＩＰパケット７０４をＬＡＮ７１１に送出する。ＩＰパケット７０４には送受信先を特定するために、ソースＩＰアドレス（以下「ＳＡ」と称す。）、ディスティネーションＩＰアドレス（以下「ＤＡ」と称す。）、ソースポート（以下「ＳＰ」と称す。）、ディスティネーションポート（以下「ＤＰ」と称す。）を各々保存するフィールドと、任意の情報を運ぶためのペイロードとが含まれる。
【０００６】
次に、ＩＰパケット７０４の宛先がグローバルＩＰアドレス”４．１７．１６８．６”であることを検出したルータ７０３は、ＩＰパケット７０４を往路変換７０８を行なってＩＰパケット７０５としてインターネット７１２に転送する。往路変換７０８においては、ＩＰパケット７０４のＳＡフィールド内のプライベートＩＰアドレス”１９２．１６８．１．２”を、ルータ７０３のインターネット側のグローバルＩＰアドレス”２０２．２２４．１５９．１４２”に置換する。この際、ルータ７０３は、ＩＰパケット７０４のＳＡ”１９２．１６８．１．２”とＩＰパケット７０５のＤＡ”４．１７．１６８．６”の組を、図８（ｂ）に示すようなルータ７０３内部に保持されるＮＡＴテーブル７１３に保存する。
【０００７】
変換７０８の結果、ＩＰパケット７０５はグローバルＩＰアドレスのみを含んだ、インターネット上で転送が可能なパケットとなる。そのためＩＰパケット７０５は目的のサーバ７０２に転送され、サーバ７０２でパケット応答処理（Ｓ７１０）が行なわれ、応答のＩＰパケット７０６がルータ７０３に返信される。パケット応答処理（Ｓ７１０）においてパケットのＳＡとＤＡの値は交換される。
【０００８】
ルータ７０３はＩＰパケット７０６を受信すると、ＮＡＴテーブル７１３との比較を行なう。比較により、ＩＰパケット７０６のＤＡはＩＰアドレス７０５のＳＡと一致することから、ルータ７０３が送出したパケットに対する応答であることを確認し、その結果、復路変換７０９を行なう。
【０００９】
復路変換７０９において、ルータ７０３は、ＩＰパケット７０６のＤＡフィールド内のグローバルＩＰアドレス”２０２．２２４．１５９．１４２”を、ＩＰパケット７０６のＳＡフィールド内のＩＰアドレス”４．１７．１６８．６”に基いてＮＡＴテーブル７１３に保存されていた機器２０１のＩＰアドレス”１９２．１６８．１．２”に置換し、ＩＰパケット７０７としてＬＡＮ７１１へ転送する。これによりＩＰパケット７０７は機器７０１に送信され、機器７０１ではＩＰパケット７０４のレスポンスとして受信される。
【００１０】
ＮＡＴテーブル７１３は通信を行なっている間保持され、通信が完了すると破棄される。通信完了の判定は通常、ＴＣＰパケットの場合はｓｙｎパケットの検出または通信が行なわれない時間によるタイムアウトにより行なわれ、ＵＤＰパケットではタイムアウトにより行なわれる。以上により、ＬＡＮ上のサーバ７０２とインターネット上の機器７０１間で通信が可能となる。
【００１１】
以上の様に、ＮＡＴ機能を持つルータにより、ＬＡＮ上の機器とインターネット上の機器の通信が可能となる一方、ＮＡＴの仕組みでは、ＬＡＮ上の複数の機器が同時にインターネット上の機器と通信を行なうためには、同時に通信する機器と同じ数だけのグローバルＩＰアドレスをＮＡＴルータに割り当てる必要があり、グローバルＩＰアドレスの削減効果が小さくなる。この様な課題を解決するためにＮＡＴの機能を拡張したＮＡＰＴ機能がある。
【００１２】
以下で、ＮＡＰＴ機能の仕組みを図９の通信シーケンス図に沿って説明する。但し、図８のＮＡＴと同様の動作については説明を略する。ＮＡＴではＩＰパケットのＩＰアドレスの変換のみを行なったが、ＮＡＰＴにおいてはポートの変換も同時に行なう。すなわち、図９の往路変換８０８において、ＮＡＴと同様の変換処理に加え、ルータ８０３が現在使用していないポート番号（ここでは「１００」とする。）を選び、ＩＰパケット８０４のＳＰ（ここでは「１」とする。）の内容に置き換えてＩＰパケット８０５に変換する。この際、ルータ８０３は、ＩＰパケット８０４のＳＡ”１９２．１６８．１．２”とＩＰパケット８０５のＤＡ”４．１７．１６８．６”の組に加え、ＩＰパケット８０４のＳＰ（１）とそれを置換したルータ８０３のポート（１００）の組をルータ８０３内部のＮＡＰＴテーブル８１４（図９（ｂ）参照）に保存する。
【００１３】
ルータ８０３はＩＰパケット８０６を受信すると、受信パケットの内容とテーブル８１３との比較を行なう。比較した結果、受信したＩＰパケット８０６のＤＡがＩＰアドレス８０５のＳＡと一致し、ＩＰパケット８０６のＤＰがＩＰアドレス８０５のＳＰと一致すれば、受信したパケット８０６がルータ８０３が送出したパケット８０５に対する応答であることを確認し、その結果、復路変換８０９を行なう。復路変換８０９においてはＮＡＴの動作に加え、ＩＰパケット８０６のＤＰ（ここでは「１００」）の内容を保存してあった機器８０１のＳＰ（ここでは「１」）に置き換え、ＩＰパケット８０７に変換する。これにより、ＬＡＮ上の機器８０１とインターネット上の機器８０２間で通信が可能となる。上記のＮＡＰＴ機能によれば、ＬＡＮ側から複数の機器が同時に通信する場合でも、機器８０１からの通信をルータのポート番号により区別することができ、従ってルータ８０３のグローバルＩＰアドレスが１つだけであっても、ルータのポートの数だけ同時に通信を行なうことが可能となる。
【００１４】
以上の様に、ＮＡＴまたはＮＡＰＴ技術によれば、プライベートＩＰアドレスを持つＬＡＮ内の機器からインターネット上のサーバに接続することは容易に可能である。一方で、プライベートＩＰアドレスを持つＬＡＮ内の機器に、インターネット上の機器から望む時に自由に接続することが容易でなく、このため例えば、携帯電話からインターネット経由で、家庭内の家電機器に接続して制御するような機能の実現は難しかった。これは、ＬＡＮ内の機器がプライベートＩＰアドレスを持つ上、インターネット上の機器からはプライベートＩＰアドレス宛てにパケットを送出することができないためである。この様な課題を解決するために例えば静的ＮＡＴまたはポートフォワーディングと呼ばれる機能がある。
【００１５】
静的ＮＡＴ機能においては、ユーザは予めルータに静的ＮＡＴテーブルを設定する必要がある。静的ＮＡＴテーブルのエントリは、接続したいＬＡＮ内の機器のＩＰアドレスとポート、及びルータの任意の空いているポートからなる。ユーザはインターネットからＬＡＮ内の機器に接続したい場合は、ユーザの端末から、ルータのグローバルＩＰアドレスと静的ＮＡＴテーブルに設定されたポートの組を指定してパケット送信を行なう。ルータは、ユーザの端末から受信したパケットの内容を、予め設定してあった静的ＮＡＴテーブルのエントリと照合して、パケットの送信先をエントリ内のＬＡＮ内の機器のＩＰアドレスとポートに置換して転送する。
【００１６】
【発明が解決しようとする課題】
以上の静的ＮＡＴにより、インターネット上の機器からＬＡＮ内の機器に対し通信が可能になる。しかし、静的ＮＡＴには、予めユーザが静的ＮＡＴテーブルを設定しておく必要があり、その設定内容がＩＰアドレスの知識のないエンドユーザにとって複雑であるという問題があった。また、ルータのグローバルＩＰがＰＰＰやＤＨＣＰプロトコルにより動的に割り振られている場合に、そのアドレスをユーザが把握することが難しく、接続先を特定できないという課題があった。さらに、外部からのパケットをＬＡＮ内に転送するためにセキュリティが低下すること、ユーザの管理するルータがＩＳＰのプライベートアドレスのネットワークに接続されている場合などＮＡＴが多段になっている場合にはＩＳＰのルータの静的ＮＡＴ設定も行なわなければインターネットから通信が行なえないことなど、多くの課題があった。
【００１７】
以上説明した様に、プライベートＩＰアドレスを持つＬＡＮ内の機器からインターネット上の機器に接続することは容易だが、プライベートＩＰアドレスを持つＬＡＮ内の機器に、インターネット上の機器から望む時に自由に接続することが容易でなかった。このため例えば、ＰＣ（パーソナルコンピュータ）や携帯電話からインターネット経由で、家庭内のＰＣや家電機器に接続して制御するような機能の実現は難しかった。
【００１８】
本発明は上記の課題を解決することを目的とする。すなわち、本発明はプライベートＩＰアドレスを持つＬＡＮ内の機器に対しインターネット上の機器から望む時に自由に通信できる方法を提供する。特に、その場合に、ユーザがルータに対して事前に複雑な設定を行なってく必要がなく、また、ルータのインターネット側アドレスが動的に割り振られている場合でも容易に通信先機器を指定でき、またＮＡＴルータが多段の場合でも、前述の通信を実現できる方法を提供する。
【００１９】
【課題を解決するための手段】
本発明に係る第１の通信システムは、インターネットに接続された少なくとも１つの機器と、インターネットに接続可能な少なくとも１つの端末との間の通信を、インターネットに接続されたサーバを介して転送する通信システムである。その通信システムにおいてサーバ及び機器は次にように動作する。
【００２０】
機器はサーバに定期的に通知ＵＤＰパケットを送り、サーバは端末から機器に対する転送要求があった場合、通知ＵＤＰパケットの応答として接続要求ＵＤＰパケットを前記機器に送る。機器は、サーバから接続要求ＵＤＰパケットを受信した場合、サーバに対してＴＣＰ接続要求を送信する。サーバは、接続要求ＵＤＰパケットに応答して機器からサーバへ送信されたＴＣＰ接続要求を受諾し、これによりＴＣＰ接続を確立する。サーバは、ＴＣＰ接続確立後、そのＴＣＰ接続上で端末と機器の間の通信を転送する。
【００２１】
第１の通信システムによれば、サーバから機器に送信される接続要求ＵＤＰパケットは機器からの通知ＵＤＰパケットの応答として送信されるため、機器がＮＡＴ機能を搭載したルータによってインターネットに接続されている場合でも、接続要求ＵＤＰパケットを静的ＮＡＴ設定無しにルータを越えて機器に届けることができる。またＴＣＰ接続の確立時に機器からサーバに対して接続要求が行われるため、やはり静的ＮＡＴ設定を無しにＴＣＰ接続を確立することが出来る。これによりサーバと機器の間に何時でも望むときにＴＣＰ接続を確立することができ、このＴＣＰ接続上でサーバが通信の転送を行うことにより、端末からＮＡＴルータの有無に関わらず何時でも望む時にＬＡＮに接続された機器と通信を行うことが可能となる。さらに本発明は、通信の転送を行わない期間は負荷の軽いＵＤＰパケットを用い、通信の転送を行う期間は通信の信頼性が高いＴＣＰ接続を用いるため、サーバの負荷を軽くしながら信頼性有る通信を実現することができる。
【００２２】
本発明に係る第２の通信システムは、第１の通信システムにおいてサーバ等が次のように動作する。端末はサーバに対し機器ＩＤを含んだＨＴＴＰリクエストを送信することにより機器に対する転送要求を行う。サーバは端末と機器の間の通信を転送する際に、端末からのＨＴＴＰリクエストを機器から張られたＴＣＰ接続上に転送する。機器は転送されたＨＴＴＰリクエストを処理して、それに対するＨＴＴＰレスポンスをＴＣＰ接続上でサーバへ応答する。サーバはＨＴＴＰレスポンスを端末へ転送する。第２の通信システムによれば、既存のＷｅｂブラウザを装備した端末から、ＮＡＴルータの有無に関わらず何時でも望む時にＬＡＮに接続された機器とＨＴＴＰによる通信を行うことが可能となる。
【００２３】
上記の第２の通信システムにおいて、機器はＷｅｂサーバモジュールと転送モジュールを備えてもよい。Ｗｅｂサーバモジュールは、転送モジュールからＨＴＴＰリクエストを受信してＨＴＴＰレスポンスを返信する。転送モジュールは、サーバから接続要求ＵＤＰパケットを受信した際はサーバに対してＴＣＰ接続要求を送信してＴＣＰ接続を確立し、そのＴＣＰ接続上でサーバからＨＴＴＰリクエストを受信してＷｅｂサーバに転送し、ＷｅｂサーバからＨＴＴＰレスポンスを受信してサーバにＴＣＰ接続上で転送する。
【００２４】
これによれば、既存のＷｅｂブラウザを装備した端末から、ＮＡＴルータの有無に関わらず何時でも望む時にＬＡＮに接続された機器とＨＴＴＰによる通信を行うことが可能となるうえ、既存のＷｅｂサーバモジュールを機器に実装することができる。
【００２５】
本発明に係る第３の通信システムは、第１の通信システムにおいてサーバ等が次のように動作する。
【００２６】
サーバは、少なくとも１つの端末から複数の転送要求を受信することができ、端末から機器に対する複数の転送要求があった場合に、各々に一意なセッション識別子を生成し、接続要求ＵＤＰパケットにより機器に通知する。機器は、サーバからセッション識別子を伴った接続要求ＵＤＰパケットを受信した場合、サーバに対してＴＣＰ接続を確立し、その確立したＴＣＰ接続上でセッション識別子をサーバに送信し、ＴＣＰ接続確立後は、ＴＣＰ接続上でサーバと通信する。サーバは、接続要求ＵＤＰパケットに応答して機器からサーバへ送信されたＴＣＰ接続要求を受諾してＴＣＰ接続を確立し、ＴＣＰ接続上で機器から送信されるセッション識別子を受信し、ＴＣＰ接続に受信されたセッション識別子を対応付けることで、端末からの複数の接続要求に対して複数のＴＣＰ接続を各々対応付ける。サーバは、端末がセッション識別子を指定して接続を要求し、且つ、指定されたセッション識別子に対応付けられたＴＣＰ接続が確立済みの場合、確立済みのＴＣＰ接続上で端末からの通信を転送することにより、セッション識別子毎に並列して通信内容の転送を行う。
【００２７】
第３の通信システムによれば、サーバと機器の間に複数のＴＣＰ接続を確立することができ、その際の個々のＴＣＰ接続上の通信内容を別々のセッションＩＤで管理することで、内容を混合して一貫性を無くすことなく、端末から機器に対しセッションＩＤ毎に並列した通信を行うことが可能となる。
【００２８】
第１の通信システムにおいてサーバは複数の機器に対し、機器毎に最終アクセス時間を記録する記憶手段を備え、次のように動作してもよい。サーバは、機器からの定期的な通知ＵＤＰパケットを受信したときに、最終アクセス時刻を通知ＵＤＰパケットの受信時刻で更新する。そして、端末から機器に対する転送要求があった際に、機器の最終アクセス時刻と現在時刻との差が所定値を超えた場合は、接続要求を拒否する。その差が最大アクセス確認周期情報が示す値以下の場合は、通知ＵＤＰパケットの応答として接続要求ＵＤＰパケットを前記機器に送る。
【００２９】
これによれば、機器が動作して通信可能なことが端末からサーバに接続要求があった際に直ちに確認できるため、通信不可能な場合に端末に対する拒否の応答が高速に出来、また機器のＩＰアドレスがＩＳＰによって動的に割り当てられており、かつ機器の電源断などにより、サーバに登録された機器のＩＰアドレスが既に関係無い別の機器に割り当てられた場合でも、誤って関係の無い別の機器に接続要求を行うことを回避できる。
【００３０】
本発明に係る第４の通信システムは、第１の通信システムにおいてサーバ等が次のように動作する。
【００３１】
サーバは、複数の機器に対し、機器毎に最終アクセス時間を記録する記憶手段を備える。サーバは、機器に予め最大アクセス確認周期情報を送信する。機器は、その最大アクセス確認周期情報を受信して内部に保存しておき、最大アクセス確認周期情報が示す周期よりも短い周期で定期的に通知ＵＤＰパケットを送信する。サーバは、機器から通知ＵＤＰパケットを受信した際に最終アクセス時刻を通知ＵＤＰパケットの受信時刻で更新する。サーバは、端末から機器に対する転送要求があった際に、機器の最終アクセス時刻と現在時刻との差が最大アクセス確認周期情報が示す周期を超えている場合は接続要求を拒否し、その差が最大アクセス確認周期情報が示す周期以下の場合は、通知ＵＤＰパケットの応答として接続要求ＵＤＰパケットを前記機器に送信する。
【００３２】
第４の通信システムによれば、機器が動作して通信可能なことが端末からサーバに接続要求があった際に直ちに確認できるため、通信不可能な場合に端末に対する拒否の応答が高速に出来、また機器のＩＰアドレスがＩＳＰによって動的に割り当てられており、かつ機器の電源断などにより、サーバに登録された機器のＩＰアドレスが既に関係無い別の機器に割り当てられた場合でも、誤って関係の無い別の機器に接続要求を行うことを回避できる。さらに、サーバから機器に予め最大アクセス確認周期情報を指定することで機器が通信可能な状態であることを確認する通知ＵＤＰパケットの送信周期を制御し、サーバにおいて通知ＵＤＰパケットの受信負荷と通信不可能なことを検出するまでの時間をトレードオフによって自由に調整することが可能となる。
【００３３】
本発明に係る第５の通信システムは、第１の通信システムにおいてサーバ等が次のように動作する。
【００３４】
サーバは、サーバ証明書を保持し、通信を暗号化および復号化する暗号通信手段を備える。端末は、サーバ証明書を検証する手段と通信を暗号化および復号化する暗号通信手段とを備える。機器は、通信を暗号化および復号化する暗号通信手段を備える。サーバは、端末と機器の間で秘密情報を転送する際、予め端末にサーバ証明書を送信する。端末は、サーバと秘密情報の送受信を、サーバ証明書を認証して正規であることを確認した後に暗号通信手段により暗号化して行う。機器は、サーバと秘密情報の送受信を、確立されたＴＣＰ接続で暗号通信手段により暗号化して行う。サーバは、確立されたＴＣＰ接続を介して端末から機器へ秘密情報を転送する際は、端末から暗号化された秘密情報を受信して暗号通信手段で復号化した後、暗号通信手段で暗号化して機器に送信する。または、機器により確立されたＴＣＰ接続を介して機器から端末へ秘密情報を転送する際は、機器から暗号化された秘密情報を受信して暗号通信手段で復号化した後、暗号通信手段で暗号化して前記端末に送信する。
【００３５】
第５の通信システムによれば、端末と機器の間で秘密に通信を行うことが出来、さらに端末から接続先を認証するためのサーバ証明書が各機器に不要でサーバに１種類で良いなど特に効果がある。
【００３６】
本発明に係る第６の通信システムは、第１の通信システムにおいてサーバ等が次のように動作する。
【００３７】
サーバは、サーバ証明書を保持し、通信を暗号化および復号化する暗号通信手段を備える。端末は、サーバ証明書を検証する手段と通信を暗号化および復号化する暗号通信手段を備える。機器は、サーバ証明書を検証する手段と通信を暗号化および復号化する暗号通信手段を備える。サーバは、端末と機器の間で秘密情報を転送する際、予め前記端末と前記機器に各々サーバ証明書を送信する。端末は、サーバと秘密情報の送受信を、サーバ証明書を認証して正規であることを確認した後に暗号通信手段により暗号化して行う。機器は、サーバと秘密情報の送受信を、サーバ証明書を認証して正規であることを確認した後に機器が確立したＴＣＰ接続上で暗号通信手段により暗号化して行う。サーバは、機器により確立されたＴＣＰ接続を介して端末から機器へ秘密情報を転送する際は、端末から暗号化された秘密情報を受信して暗号通信手段で復号化した後、暗号通信手段で暗号化して機器に送信する。又は、機器により確立されたＴＣＰ接続を介して機器から端末へ秘密情報を転送する際は、機器から暗号化された秘密情報を受信して暗号通信手段で復号化した後、暗号通信手段で暗号化して前記端末に送信する。
【００３８】
第６の通信システムによれば、端末と機器の間で秘密に通信を行うことができ、さらに端末から接続先を認証するためのサーバ証明書が各機器に不要でサーバに１種類で良く、かつ機器から接続先を認証するためのサーバ証明書も各機器に不要でサーバに１種類で良いなど特に効果がある。
【００３９】
本発明に係る第７の通信システムは、インターネットに接続された少なくとも１つの機器と、インターネットに接続可能な少なくとも１つの端末との間の通信を、インターネットに接続されたサーバが転送する通信システムである。その通信システムにおいてサーバ等は次のように動作する。
【００４０】
サーバは、複数の機器に対し、機器毎に最終アクセス時間を記録する記憶手段を備える。機器は、サーバに第１及び第２の通知ＵＤＰパケットを定期的に送り、第１の通知ＵＤＰパケットの送信周期は第２の通知ＵＤＰパケットの送信周期よりも長い。サーバは、機器から第１及び第２の通知ＵＤＰパケットを受信し、機器から第１の通知ＵＤＰパケットを受信したときに最終アクセス時刻を受信時刻で更新し、第２の通知ＵＤＰパケットを受信したときには最終アクセス時刻を更新しない。サーバは、端末から機器に対する転送要求があった際に、機器の最終アクセス時刻と現在時刻との差が所定期間を超えている場合は接続要求を拒否し、その差が所定期間以下の場合は、第１及び第２の通知ＵＤＰパケットの応答として接続要求ＵＤＰパケットを前記機器に送る。機器は、サーバから接続要求ＵＤＰパケットを受信した場合、サーバに対してＴＣＰ接続要求を送信する。サーバは、接続要求ＵＤＰパケットに応答して機器からサーバへ送信されたＴＣＰ接続要求を受諾し、これによりＴＣＰ接続を確立する。サーバは、ＴＣＰ接続が確立後、そのＴＣＰ接続上で端末と機器間の通信を転送する。
【００４１】
第７の通信システムによれば、機器が動作して通信可能なことが端末からサーバに接続要求があった際に直ちに確認できるため、通信不可能な場合に端末に対する拒否の応答が高速に出来、また機器のＩＰアドレスがＩＳＰによって動的に割り当てられており、かつ機器の電源断などにより、サーバに登録された機器のＩＰアドレスが既に関係無い別の機器に割り当てられた場合でも、誤って関係の無い別の機器に接続要求を行うことを回避できる。さらに本発明によれば、通知ＵＤＰパケットを第１および第２の通知ＵＤＰパケットの２種類に区別し、最終アクセス時間更新を第１の通知ＵＤＰパケット受信時に限ることで、ＮＡＴルータが接続要求ＵＤＰパケットを通知ＵＤＰパケットの応答とみなす時間が短いために通知ＵＤＰパケットの送信頻度を高くしなければならない場合でも、サーバにとって負荷の高い最終アクセス時間更新の頻度を高くしなくても良い効果がある。
【００４２】
上記の通信システムにおけるサーバ、機器の機能は、コンピュータのようなプログラム可能な装置で所定のプログラムを実行させることにより実現されてもよい。そのプログラムはコンピュータ読み取り可能な記録媒体により提供されてもよい。
【００４３】
【発明の実施の形態】
以下、添付の図面を参照し、本発明に係る通信システムの実施の形態を詳細に説明する。
【００４４】
（実施の形態１）
図１は本発明の実施の形態１の通信システムの通信シーケンスを説明した図である。図２は本発明の通信システムのネットワーク接続図である。本発明の通信システムはローカルエリアネットワーク（ＬＡＮ）１０６上の機器とインターネット１０５上の機器間の通信を実現するものであり、ＬＡＮ１０６に接続された機器１０１と、インターネット１０５上に接続されたサーバ１０４と、ＬＡＮ１０６とインターネットを接続するルータ１０３とを含む。インターネット１０５には通信端末１０２も接続されている。
【００４５】
ルータ１０３はＮＡＰＴ機能を実装している。機器１０１のＩＰアドレスはプライベートＩＰアドレス”１９２．１６８．１．２”であり、サーバ１０４のＩＰアドレスはグローバルＩＰアドレス”４．１７．１６８．６”であるとする。ルータ１０３のインターネット１０５側アドレスは一般にインターネットサービスプロバイダーからＤＨＣＰやＰＰＰ等のプロトコルにより割り当てられ、動的に変化するが、この時点でルータ１０３のインターネット側アドレスはグローバルＩＰアドレス”２０２．２２４．１５９．１４２”であるとする。説明の便宜上、ルータ１０３のインターネット１０５側アドレスは１つしかないとする。なお、本実施の形態において、ＩＰアドレスはＩＰｖｅｒ４に準拠している。
【００４６】
図１を参照し、本実施形態の通信シーケンスを説明する。
機器１０１はまず、サーバ１０４に対し最大アクセス確認周期情報要求１０７を送信する。サーバはこの応答として、最大アクセス確認周期情報通知１０８を送信する。これらの通信１０７、１０８はＵＤＰによってもＴＣＰによっても良く、ＬＡＮ１０６側に接続された機器１０１から開始されるため、ＮＡＰＴ機能を備えたルータ１０３を越えて支障なく通信できる。ここで、最大アクセス確認周期とは、機器１０１からサーバ１０４へ送信される通知ＵＤＰパケット（後述）の送信時間間隔の最大値を示すものであり、例えば「５分」というような値となる。
【００４７】
次に、機器１０１は周期的に通知ＵＤＰパケット１０９を送信する。この周期は先に取得した最大アクセス確認周期の値（例えば５分）より小さい間隔で送られる。通知ＵＤＰパケット１０９は機器１０１に固有に付与された機器識別子である「機器ＩＤ」を含む。通知ＵＤＰパケット１０９はルータ１０３により、往路のＮＡＰＴ変換が行なわれた後インターネット１０５に送出され、サーバ１０４にて受信される。
【００４８】
図３の（ａ）、（ｂ）に各々変換される前後の通知ＵＤＰパケットの内容を示す。通知ＵＤＰパケットの送信周期は、ルータ１０３がＵＤＰパケットのＮＡＰＴテーブルをタイムアウトにより破棄する時間よりも短く設定する。これによりルータ１０３には、図９（ｂ）に示したようなＮＡＰＴテーブルがタイムアウトせず継続的に保持される。
【００４９】
図１に戻り、サーバ１０４は、通知ＵＤＰパケット１０９を受信すると、ヘッダ内のＳＡ、ＤＡ、ＳＰ、ＤＰの各アドレスと機器ＩＤを取り出し、図４に示すように、これらの情報を機器１０１（機器ＩＤ＝”１２３４”）に対応する１組のエントリとしてサーバ内に登録保存する（ステップＳ１１９）。また、ステップＳ１１９では、最終アクセス時刻をエントリに付加し、サーバ１０４が通知ＵＤＰパケット１０９を受信した時刻を記録する。以後、サーバ１０４は、通知ＵＤＰパケット１０９を受信するたびにステップＳ１２０に示すように機器に対応するエントリの最終アクセス時刻を更新する。また、この際、通知ＵＤＰパケット１０９のヘッダ内のＳＡ、ＳＰの各アドレスが変更されていた場合は、エントリ中のそれらのアドレスの値も更新する。これにより、ルータ１０３のインターネット（ＷＡＮ）１０５側ＩＰアドレスが動的に割り振られていても、最新のアドレスがエントリに保持される。以上のシーケンスの実行により、通信の準備が完了する。
【００５０】
以上の通信準備が完了している状況で、端末１０２から機器１０１に対する通信を開始したい場合、端末１０２は機器１０１の機器ＩＤをパラメータに指定して、サーバ１０４に対し機器接続要求１１０を送信する。なお、機器ＩＤは端末１０２が予め認識しているものとする。機器接続要求１１０を受信したサーバ１０４は、端末１０２により指定された機器ＩＤを検索キーとして図４に示すテーブルからサーバ内に登録された機器ＩＤを検索し、機器１０１が登録した対応エントリを得る（ステップＳ１２１）。
【００５１】
次に、サーバ１０４はエントリ内の最終アクセス時刻を確認し、現在時刻との差が最大アクセス確認周期を超えている場合は機器接続要求１１０を拒否し、最大アクセス確認周期以下の場合は、ステップＳ１２２以後に進んで機器１０１に接続要求ＵＤＰパケット１１１を送信する。
【００５２】
このように最終アクセス時刻を確認することで、機器１０１が正常に動作し、かつ、ごく最近まで正常に通信できていたか否かが直ちに確認できるため、機器接続要求１１０の受諾可否判定が高速にできる。また、ルータ１０３のインターネット（ＷＡＮ）１０５側ＩＰアドレスはＩＳＰによって動的に割り当てられているため、機器１０１の電源遮断後ある程度時間が経過すると、サーバ１０４に登録された機器１０１のＩＰアドレスが別の機器に割り当てられてしまう場合があるが、この場合でも誤って関係の無い別の機器に接続要求を行うことを防止できる。
【００５３】
次に、サーバ１０４は、一意なセッション識別子を生成してサーバ内に保存する（ステップＳ１２２）。さらに、サーバ１０４は機器１０１に対応するエントリからＳＡ、ＤＡ、ＳＰ、ＤＰの各アドレスを取得し、これらを用いてセッション識別子をペイロードに含む接続要求ＵＤＰパケット１１１を送信する。ここで、接続要求ＵＤＰパケット１１１は通知ＵＤＰパケット１０９に対する応答として構成されている。図３（ｃ）にインターネット（ＷＡＮ）１０５上に送出された接続要求ＵＤＰパケットの内容を示す。図３（ｃ）に示すパケットのアドレスとポートの値は、それぞれ図３（ｂ）に示すパケットにおいてアドレスとポートのソースとディスティネーションの値を入れ替えた値となっている。これにより、接続要求ＵＤＰパケット１１１は通知ＵＤＰパケット１０９の応答パケットであることが分かる。接続要求ＵＤＰパケット１１１は、ルータ１０３において復路のＮＡＰＴ変換により図３（ｃ）に示す構成から図３（ｄ）に示す構成に変換され、機器１０１に転送される。
【００５４】
接続要求ＵＤＰパケット１１１を受信した機器１０１は、サーバ１０４に対してＴＣＰ接続要求１１２を送信する。ＴＣＰ接続要求１１２についての詳細な説明は省略するが、ｓｙｎ，ａｃｋ／ｓｙｎ，ａｃｋパケットによって接続を確立する通常のＴＣＰ接続確立手順である。ＴＣＰ接続要求１１２はＬＡＮ側からＷＡＮ側に対して行なわれるものであるため、ＮＡＰＴ機能を備えたルータ１０３を越えて支障なくＴＣＰ接続を確立することができる。
【００５５】
以上によりサーバ１０４と機器１０１の間でＴＣＰ接続が確立されたが、ＵＤＰパケットはコネクションレス型であるため、そのままではサーバ１０４において、ＴＣＰ接続が接続要求ＵＤＰパケット１１１に応えて確立されたか否かの判定ができない。そのために以下で説明する手順が実行される。
【００５６】
まず、機器１０１はそのＴＣＰ接続上で、接続要求ＵＤＰパケット１０９により通知されたセッション識別子を、セッション識別子通知１１３によってサーバへ返送する。サーバ１０４はセッション識別子を受信すると、ステップＳ１２３においてセッション識別子の照合を行う。照合の結果、このセッション識別子が機器接続要求１１０により生成されたものであることを検出すると、サーバ１０４はこのＴＣＰ接続を、接続要求１１０に答えて端末１０２と機器１０１間の通信の転送に使用することを決定する。
【００５７】
なお、セッション識別子に代えて機器ＩＤを用いてもＴＣＰ接続と接続要求ＵＤＰパケットを対応付けることはできるが、その場合はサーバ１０４と機器１０１の間には同時に複数のＴＣＰ接続を確立することができないという問題が生じる。本実施の形態によれば、サーバ１０４と機器１０１の間に複数のＴＣＰ接続を確立することができ、その際の個々のＴＣＰ接続上の通信内容を別々のセッション識別子で管理することで、複数の通信の内容を無秩序に混合してしまうことなく、別々のＴＣＰ接続上で各々一貫性を保持した通信の転送を行ない、端末１０２から機器１０１に対しセッション識別子毎に並列して複数の通信を行うことが可能となる。
【００５８】
以上述べた手順により、サーバ１０４と機器１０１の間でＴＣＰ接続が確立されると、サーバ１０４はそのＴＣＰ接続上で端末１０２と機器１０１間の通信の転送を開始する。すなわち、サーバ１０４は端末１０２からの通信１１４を通信１１５として機器１０１に転送し、機器１０１からの通信１１６を端末１０２に通信１１７として転送する。最後に、通信が完了すると、サーバ１０４または機器１０１からＴＣＰ切断１１８を行い、通常のＴＣＰ接続の切断を行なって一連のシーケンスが完了する。
【００５９】
なお、上記のサーバ１０４による通信の転送は、ＴＣＰ接続が維持されている間は何度でも繰り返して行なうことが可能であり、これにより端末１０２と機器１０１の間で一連の通信を行なうことができる。また、図１では端末１０４からの通信に対し機器１０１が応答する様子を図示しているが、これに限らず、どの様な手順のプロトコルの通信の転送をもＴＣＰ接続が維持されている間に行なうことが可能である。
【００６０】
以上説明したように本実施の形態によれば、通知ＵＤＰパケット１０９への応答として接続要求ＵＤＰパケット１１１を送ることで、プライベートＩＰアドレスを持つＬＡＮ内の機器１０１に対し、インターネット上の端末１０２から所望のタイミングで自由に通信を開始できる。これにより、例えば、端末としてインターネットに接続された携帯電話やＰＤＡを用い、機器としてＬＡＮに接続された、ビデオ、テレビ、エアコン、冷蔵庫などの家電を用いれば宅外から自由に家電操作を行なうことも可能となる。
【００６１】
また、本実施の形態によれば、ルータ１０３は通常のＮＡＰＴ動作のみを行なえばよく、静的ＮＡＴ、静的ＮＡＰＴ設定等が不要なため、事前にユーザがルータに対して複雑な設定を行なう必要が無い。
【００６２】
また、本実施の形態によれば、ルータ１０３に静的ＮＡＴを設定せず、機器１０１に対してＷＡＮ側から到達可能なパケットが、機器１０１が通知ＵＤＰパケットを送信している期間にサーバ１０４から送信されるパケットに限定される。これにより、第３者からの攻撃を受けにくく、セキュリティが向上する。
【００６３】
また、本実施の形態によれば、ＬＡＮ内からインターネットに対して周期的に通知ＵＤＰパケット１０７が送信される。これにより、このパケットがルータ１０３に対し、いわゆるキープアライブパケットとして作用し、ルータ１０３のＷＡＮ側接続のＰＰＰやＤＨＣＰがタイムアウトすることによってＩＳＰから切断されてしまうことを防ぎ、いつでもインターネットから通信可能な状態に維持するという効果を持つ。
【００６４】
また、本実施の形態によれば、サーバ１０４から最大アクセス確認周期情報通知１０８によって通知ＵＤＰパケット１０９の送信周期の長短を変更することで、サーバにおける通知ＵＤＰパケット１０９の受信負荷と通信不可能なことを検出するまでの時間を、互いにトレードオフして自由に調整することが可能となる。
【００６５】
また、本実施の形態によれば、ルータ１０３のＷＡＮ側ＩＰアドレスが動的に割り振られていても、通知パケット１０７により周期的に最新のＷＡＮ側ＩＰアドレスがサーバ１０４に登録されるため、端末１０２からは機器ＩＤを指定するのみで容易に機器１０１を指定して通信ができる。
【００６６】
また、本実施の形態において、負荷の低いＵＤＰ通信により通信の準備を行ない、端末１０２と機器１０１との通信自体はデータロスしにくく信頼性の高いＴＣＰ通信を行なうことが好ましい。これにより、サーバ１０４の負荷の低さと、端末１０２と機器１０１との通信の信頼性を両立することができる。通信を準備する通知ＵＤＰパケット１０９は、ルータ１０３のＮＡＰＴテーブルのタイムアウト以下の間隔で送出する必要があり、送信頻度が高くなるため、ＵＤＰパケットとすることによる負荷削減効果が大きく、一方で周期的に送信されるために多少のパケットロスがあっても次回の送信で復帰するために影響が小さいなど、ＵＤＰパケットを使用する事に特に利点がある。
【００６７】
なお、本実施の形態ではＮＡＰＴによって説明したが、ルータ１０３がＮＡＴ動作を行なっている場合であっても、機器１０１とサーバ１０４の動作を変更することなしに、図１のシーケンスが支障無く動作する。また、本実施の形態において、ユーザがＮＡＴ機能を有するルータを用いず、機器１０１を直接インターネット１０５に接続している場合であっても、機器１０１とサーバ１０４の動作を変更することなしに、図１のシーケンスが可能となる。さらに、本実施の形態において、ユーザがプライベートＩＰアドレスを使用するＩＳＰに加入し、その結果、ユーザのルータとＩＳＰのルータをあわせて多段のＮＡＴルータを介してインターネットによって接続されている場合でも、その各々の段のルータにおいて通常のＮＡＴまたはＮＡＰＴ動作が行なわれ、やはり機器１０１とサーバ１０４の動作を変更することなしに、図１のシーケンスが支障無く動作する。
【００６８】
なお、アドレス登録は通知ＵＤＰパケットに必須の機能ではなく、他の手段によってアドレス登録を行なっても本発明の効果は失われないが、周期的な送信が必要な、グローバルＩＰアドレスを登録するパケットとＮＡＴテーブルを維持するパケットの２種類を兼用するため効率が良く、特に好適な構成である。
【００６９】
なお、セッション識別子は接続要求１０８に対しＴＣＰ接続を一意に対応付けられる範囲で一意であれば良く、例えばサーバ内で一意でなくとも、機器ＩＤと組み合わせた場合に一意であっても良い。
【００７０】
なお、本実施の形態ではＩＰｖｅｒ４のアドレスを例示して説明したが、ＩＰｖｅｒ６のアドレスを用いた場合でも、ＬＡＮ内からインターネットへのパケットとそのパケットに対する応答は透過するが、インターネットからＬＡＮ内へのパケットは透過しないルータやゲートウェイを採用する限りにおいて本発明は同じ効果を有する。
【００７１】
なお、本実施の形態では端末１０２はインターネットに直接接続されるように図示されているが、端末１０２がＬＡＮに接続されていても端末１０２から通信を開始する限りにおいてサーバ１０４に対する通信に支障はないため、本発明の効果は同様に発揮される。さらに、端末１０２に機器１０１と同様の機能を搭載すれば、端末１０２と機器１０１がともにＬＡＮ内にあっても互いに通信を開始することが出来る構成となり、完全に対称な通信システムを構成できることは明らかである。
【００７２】
なお、本実施の形態では機器１０１からの接続先はサーバ１０４のみであり、サーバ１０４が端末１０２と機器１０１間の通信を転送したが、接続要求ＵＤＰパケット１０９により端末１０２のアドレスを通知すれば、機器１０１が端末１０２に対し直接ＴＣＰ接続要求１１０を送信する構成も可能である。この構成によれば、端末１０２と機器１０１が直接通信を行なうことが可能になり、サーバ１０４の転送負荷が低減されるなど別の効果がある。
【００７３】
なお、本実施の形態においてサーバは端末と機器の通信の転送のみを行ったが、同時にサーバ自身がＴＣＰ接続を用いて機器と通信を行うことも可能である。このような構成によればサーバは端末に対して機器への通信機能を提供すると同時に、機器の設定や監視、ソフトウェアのアップデートを行うなど機器へのサービスを提供することも可能である。
【００７４】
なお、本実施の形態において機器１０１およびサーバ１０４をコンピュータで構成することができる。その際に、機器１０１とサーバ１０４に各々図１のシーケンスを実行させるコンピュータプログラムを作成することが可能であり、またそれらを各々媒体に蓄積し配布することができる。これによれば汎用のコンピュータを用いて宅外からの通信を実現することができる。
【００７５】
（実施の形態２）
本発明に係る通信システムの別の実施形態を説明する。
本実施形態のネットワーク接続は図２で示したとおりである。アドレス付与も第１の実施の形態と同じであり、通信シーケンスのみが異なっている。本実施の形態では端末としてＷｅｂブラウザを備えたＰＣや携帯電話を用いており、これを用いてＬＡＮに接続された機器１０１とＨＴＴＰによる通信を行なって操作やコンテンツ取得などを行なうものである。
【００７６】
図５を参照し、本実施形態の通信シーケンスを説明する。
機器１０１はまず、サーバ１０４に対し最大アクセス確認周期情報要求４０７を送信する。サーバ１０４はこの応答として、最大アクセス確認周期情報通知４０８を送信し、最大アクセス確認周期の値（例えば５分）を通知する。この通信はＵＤＰによってもＴＣＰによってもよく、ＬＡＮ１０６側に接続された機器１０１から開始されるため、ＮＡＰＴ機能を備えたルータ１０３を越えて支障なく通信できる。
【００７７】
次に、機器１０１は２種類の通知ＵＤＰパケットＡ、Ｂ（４１０、４０９）を各々周期的に送信する。２種類のパケットＡ、Ｂの差異は、通知ＵＤＰパケットＡが最終アクセス時間を更新する機能を持っているのに対し、通知ＵＤＰパケットＢは最終アクセス時間を更新する機能を持たないことである。その他の点については同じである。
【００７８】
機器１０１から通知ＵＤＰパケットＡ（４１０）を送信する周期は先に取得した最大アクセス確認周期の値（例えば５分）より小さい間隔で送られる。一方、通知ＵＤＰパケットＡまたはＢのいずれかを送信する周期はルータ１０３がＵＤＰパケットのＮＡＰＴテーブルをタイムアウトにより破棄する時間よりも短く設定する。
【００７９】
実施の形態の１においては通知ＵＤＰパケットは１種類しかなかったため、その送信周期は前記の条件のうち周期の短いほうにあわせて設定する必要があった。そのため、ルータ１０３のＮＡＰＴテーブルの破棄時間が短い（例えば３０秒）の場合、通知ＵＤＰパケットが３０秒周期以下の高頻度で送信され、その度ごとに最終アクセス時刻が更新されるため、ルータ１０３のＷＡＮ側のアドレス変更が無い場合でもエントリの更新作業が行なわれ、サーバ負荷が増大するという問題があった。本実施の形態は、最終アクセス時刻の更新周期を、ルータ１０３のＮＡＰＴテーブルの破棄時間と関係なく独立に設定することができ、負荷を削減しやすいという効果を有する。
【００８０】
通知ＵＤＰパケットＡ、Ｂは機器１０１に固有に付与された機器識別子である機器ＩＤを含む。通知ＵＤＰパケットＡ、Ｂは、ルータ１０３により往路のＮＡＰＴ変換が施されてインターネットに送出され、サーバ１０４で受信される。ＮＡＰＴ変換の内容は実施の形態の１と同様である。また、通知ＵＤＰパケットによりルータ１０３内のＮＡＰＴテーブルがタイムアウトせず継続的に保持される点も同じであり、サーバ１０４内のエントリに、機器１０１にパケットを送信するためのアドレスが登録される点（ステップＳ４２１）、エントリ中の最新アクセス時刻の更新（ステップＳ４２２）についても実施の形態の１と同様である。ここまでのシーケンスの実行により、通信の準備が完了する。
【００８１】
以上の通信準備が完了している状況で、端末１０２から機器１０１に対する通信を開始する場合、端末１０２はサーバ１０４に対し、「ＧＥＴ　ｃｏｎｎｅｃｔ．ｃｇｉ？ＩＤ＝１２３４」のように機器１０１の機器ＩＤをパラメータに指定して、ＨＴＴＰリクエストとして機器接続要求４１１を送信する。なお、機器ＩＤ”１２３４”は端末１０２が予め認識しているものとする。機器接続要求４１１を受信したサーバ１０４は、ステップＳ４２３において、指定された機器ＩＤをキーにサーバ内に登録された機器ＩＤを検索し、機器１０１が登録した対応エントリを得る。
【００８２】
次に、サーバ１０４はエントリ内の最終アクセス時刻（図４参照）を確認し、それと現在時刻との差が最大アクセス確認周期を超えている場合は機器接続要求４１１を拒否し、最大アクセス確認周期以内の場合は、ステップＳ４２４以後に進んで機器１０１に接続要求ＵＤＰパケット４１２を送信する。この最終アクセス時刻の確認により、第１の実施の形態と同様に、誤って関係の無い別の機器に接続要求を行うことを回避できる等の効果がある。
【００８３】
次にサーバ１０４は、ステップＳ４２４において一意なセッション識別子を生成してサーバ１０４内に保存する。さらに、サーバ１０４は機器１０１に対応するエントリからＳＡ、ＤＡ、ＳＰ、ＤＰの各アドレスを取得し、これらを用いてセッション識別子をペイロードに含む接続要求ＵＤＰパケット４１２を送信する。ここで、接続要求ＵＤＰパケット４１２は通知ＵＤＰパケットＡ（４１０）または通知ＵＤＰパケットＢ（４０９）に対する応答として構成されているため、ルータ１０３において、復路のＮＡＰＴ変換が行なわれて機器１０１に転送される。
【００８４】
接続要求ＵＤＰパケット４１２を受信した機器１０１は、サーバ１０４に対してＴＣＰ接続要求４１３を送信する。ＴＣＰ接続要求４１３についての詳細な説明は省略するが、ｓｙｎ，ａｃｋ／ｓｙｎ，ａｃｋパケットによって接続を確立する通常のＴＣＰ接続確立手順である。ＴＣＰ接続要求４１３はＬＡＮ側からＷＡＮ側に対して行なわれるものであるため、ＮＡＰＴ機能を備えたルータ１０３を越えて支障なくＴＣＰ接続を確立することができる。
【００８５】
以上によりサーバ１０４と機器１０１の間でＴＣＰ接続が確立された後、機器１０１はそのＴＣＰ接続上で、接続要求ＵＤＰパケット４１２により通知されたセッション識別子を、セッション識別子通知４１４によってサーバ１０４へ返送する。サーバ１０４はセッション識別子を受信すると、ステップＳ４２５でセッション識別子の照合を行い、このセッション識別子が機器接続要求４１１により生成されたものであり、従って機器接続要求４１１に対するＴＣＰ接続確立が成功したことを検出する。
【００８６】
その後、サーバ１０４はＨＴＴＰリクエスト４１１に対する応答としてＨＴＴＰレスポンス４１５を端末１０２に送信する。このＨＴＴＰレスポンス４１５は、端末１０２に表示すべきＨＴＭＬコンテンツを含んでおり、かつ、このＨＴＭＬコンテンツにはセッション識別子”５６７８”が、例えば「＜Ａ　ＨＲＥＦ＝”ｃｏｎｔｒｏｌ．ｃｇｉ？ＳｅｓｓｉｏｎＩＤ＝５６７８＆Ｔａｒｇｅｔ＝ｄｅｖｉｃｅＦｕｎｃ．ｃｇｉ＆Ｐａｒａｍ＝ａｂｃｄ”＞リンク＜／Ａ＞」のようにリンクやボタンとして埋め込まれている。以上の手順により、端末１０２には機器１０１に対応するページ（画像）が表示される。
【００８７】
次に、ユーザが表示されたページ内のリンクをクリックすると、”ＧＥＴ　ｃｏｎｔｒｏｌ．ｃｇｉ？ＳｅｓｓｉｏｎＩＤ＝５６７８＆Ｔａｒｇｅｔ＝ｄｅｖｉｃｅＦｕｎｃ．ｃｇｉ＆Ｐａｒａｍ＝ａｂｃｄ”等のようにセッション識別子を含むＨＴＴＰリクエスト４１６が生成されてサーバ１０４に送信される。サーバ１０４はＨＴＴＰリクエスト４１６を受信すると、指定されたｃｏｎｔｒｏｌ．ｃｇｉが起動し、セッション識別子”５６７８”を照合する（ステップＳ４２６）。照合した結果、セッション識別子”５６７８”のＴＣＰ接続が既に確立済みであることを検出すると、サーバ１０４のｃｏｎｔｒｏｌ．ｃｇｉは、ＨＴＴＰリクエスト４１６の内容を”ＧＥＴ　ｄｅｖｉｃｅＦｕｎｃ．ｃｇｉ？Ｐａｒａｍ＝ａｂｃｄ”のように変換してＨＴＴＰリクエスト転送４１７としてそのＴＣＰ接続上に転送する。このようにして、端末１０２は、機器１０１に対するＨＴＴＰリクエストを送信できる。
【００８８】
本発明の端末と機器間の通信転送において、上記で説明したような変換方式を用いると、端末は従来のＷｅｂブラウザをなんら変更することなく動作可能な上、機器上の”ｄｅｖｉｃｅＦｕｎｃ．ｃｇｉ”等の所望のｃｇｉと”Ｐａｒａｍ＝ａｂｃｄ”等の所望のパラメータを指定して起動させるＨＴＭＬ文書を機器が自由に記述することが可能になるなど、優れた効果を持つ。
【００８９】
ＨＴＴＰリクエスト転送４１７を受信した機器１０１は、その応答としてＨＴＴＰレスポンス４１８を返信する。この動作について図６を用いて詳細に説明する。
【００９０】
図６に示すように、機器１０１は転送モジュール５０１とＷｅｂサーバモジュール５０２を備える。転送モジュール５０１はサーバ１０４との間で本発明の通信プロトコルによる通信を行なうためのモジュールであり、Ｗｅｂサーバモジュール５０２は通常のＷｅｂサーバである。転送モジュール５０１は前述の様に、接続要求ＵＤＰパケット４１２を受信してＴＣＰ接続要求４１３を行い、ＨＴＴＰリクエスト転送４１７を受信する。この際の転送モジュール５０１の通信方向に注目すると、ＴＣＰ接続を要求（４１３）する一方でＨＴＴＰリクエスト（４１７）を受信しており、クライアントからＴＣＰ接続を要求され且つＨＴＴＰリクエストを受信する通常のＷｅｂサーバとは通信の方向が異なる。本実施の形態では、転送モジュール５０１がこの方向の違いを吸収し、Ｗｅｂサーバモジュール５０２に対し、ソケット等を通じて内部的にＨＴＴＰリクエスト５０３の送信、ＨＴＴＰレスポンス５０４の受信を行なうことで、通常のＷｅｂサーバを用いて、本発明のＨＴＴＰ通信手順が実装できるという効果を有する。
【００９１】
図５に戻り、次に、サーバ１０４により、ＨＴＴＰレスポンス４１８がＨＴＴＰレスポンス転送４１９として端末１０２に返送される。ＨＴＴＰレスポンス転送４１９に含まれるＨＴＭＬコンテンツには、セッション識別子がリンクやボタンとして埋め込まれており、手順４１６〜４１９と同様の手順を繰り返すことにより、端末１０２から機器１０１に対して継続的にＨＴＴＰによるアクセスを行なうことが可能になる。この通信のＨＴＭＬコンテンツ生成は機器１０１で行なわれ、コンテンツ表示と操作は端末１０２で行なわれることにより、端末１０２から機器１０１を自由に操作したり、コンテンツを取得したりできる。
【００９２】
最後に、通信が完了すると、サーバ１０４または機器１０１がＴＣＰ切断４２０を行い、ＴＣＰ接続の切断を行なって一連のシーケンスが完了する。
【００９３】
以上説明したように本実施の形態によれば、第１の実施の形態同様、プライベートＩＰアドレスを持つＬＡＮ内の機器１０１に対し、インターネット上の端末１０２から任意のタイミングで自由に通信を開始できる。これにより、端末としてＷｅｂブラウザを搭載したＰＣや携帯電話により、家庭内の機器を自由に操作したり、コンテンツを取得することができる。
【００９４】
また、第１の実施の形態同様、ルータ１０３は通常のＮＡＰＴ動作のみを行なえばよく、静的ＮＡＴ／ＮＡＰＴ設定等が不要なため、事前にユーザがルータに対して複雑な設定を行なう必要が無い。
【００９５】
また、第１の実施の形態同様、第３者からの攻撃を受けにくく、セキュリティが向上するという効果を有する。
【００９６】
また、第１の実施の形態同様、ルータ１０３のＷＡＮ側接続のＰＰＰやＤＨＣＰがタイムアウトすることによってＩＳＰから切断されてしまうことを防ぎ、いつでもインターネットから通信可能な状態に維持するという効果を奏する。
【００９７】
また、第１の実施の形態同様、サーバ１０４における通知ＵＤＰパケット１０９の受信不可と通信不可能なことを検出するまでの時間を、互いにトレードオフして自由に調整することが可能となる。
【００９８】
さらに、最終アクセス時刻を更新する機能を持つパケットと持たないパケットの２種類の通知ＵＤＰパケットを用意することで、上記の時間の調整を、ルータ１０３のＮＡＰＴテーブルの破棄時間と関係なく独立に行なうことができるという効果を有する。
【００９９】
また、第１の実施の形態同様、端末１０２からは機器ＩＤを指定するのみで容易に機器１０１を指定して通信ができる。
【０１００】
また、第１の実施の形態同様、ＵＤＰパケットによるサーバ１０４の負荷の低さと、ＴＣＰパケットによる端末１０２と機器１０１との通信の信頼性を両立することができる。
【０１０１】
また、本実施の形態によれば、端末１０２に通常のＷｅｂブラウザを搭載した端末を用い、機器１０１に通常のＷｅｂサーバを搭載してＨＴＴＰの応答を実装することができるため、汎用性が高く、ユーザの使い勝手のよい通信システムを低コストに構成できる。
【０１０２】
なお、本実施の形態ではＮＡＰＴによって説明したが、ルータ１０３がＮＡＴを行なっている場合であっても、機器１０１とサーバ１０４の動作を変更することなしに、図５に示す通信シーケンスを支障無く実現できる。また、本実施の形態において、ユーザがＮＡＴルータを用いず、機器１０１を直接インターネット１０５に接続している場合であっても、機器１０１とサーバ１０４の動作を変更することなしに、図５のシーケンスが支障無く実現できる。さらに、本実施の形態において、ユーザがプライベートＩＰアドレスを使用するＩＳＰに加入し、その結果、ユーザのルータとＩＳＰのルータをあわせて多段のＮＡＴルータを介してインターネットによって接続されている場合でも、その各々の段のルータにおいて通常のＮＡＴまたはＮＡＰＴ動作が行なわれ、やはり機器１０１とサーバ１０４の動作を変更することなしに、図５のシーケンスを支障無く実現できる。
【０１０３】
なお、アドレス登録は通知ＵＤＰパケットに必須の機能ではなく、他の手段によってアドレス登録を行なっても本発明の効果は失われないが、周期的な送信が必要な、グローバルＩＰアドレスを登録するパケットとＮＡＴテーブルを維持するパケットの２種類を兼用するため効率が良く、特に好適な構成である。
【０１０４】
なお、セッション識別子はＨＴＴＰリクエスト４１１に対しＴＣＰ接続を一意に対応付けられる範囲で一意であれば良く、例えばサーバ内で一意でなくとも、機器ＩＤと組み合わせた場合に一意であっても良い。
【０１０５】
また、ＩＰアドレスにＩＰｖｅｒ６のアドレスを用いてもよい。この場合、ＬＡＮ内からインターネットへのパケットとそのパケットに対する応答は透過するが、インターネットからＬＡＮ内へのパケットは透過しないルータやゲートウェイを採用する限りにおいて本発明は同じ効果を有する。
【０１０６】
なお、本実施の形態では端末１０２はインターネットに直接接続されるように図示されているが、端末１０２がＬＡＮに接続されていても端末１０２から通信を開始する限りにおいてサーバ１０４に対する通信に支障はないため、本発明の効果は同様に発揮される。さらに、端末１０２に機器１０１と同様の機能を搭載すれば、端末１０２と機器１０１がともにＬＡＮ内にあっても互いに通信を開始することが出来る構成となり、完全に対称な通信システムを構成できることは明らかである。
【０１０７】
なお、本実施の形態では機器１０１からの接続先はサーバ１０４のみであり、サーバ１０４が端末１０２と機器１０１間の通信を転送したが、接続要求ＵＤＰパケット４１２により端末１０２のアドレスを通知すれば、機器１０１が端末１０２に対し直接ＴＣＰ接続要求１１０を送信する構成も可能である。この構成に拠れば、端末１０２と機器１０１が直接通信を行なうことが可能になり、サーバ１０４の転送負荷が低減されるなど別の効果がある。
【０１０８】
なお、本実施の形態においてサーバは端末と機器の通信の転送のみを行ったが、同時にサーバ自身がＴＣＰ接続を用いて機器と通信を行うことも可能である。このような構成によればサーバは端末に対して機器への通信機能を提供すると同時に、機器の設定や監視、ソフトウェアのアップデートを行うなど機器へのサービスを提供することも可能である。
【０１０９】
なお、本実施の形態において機器１０１およびサーバ１０４をコンピュータで構成することができる。その際に、機器１０１とサーバ１０４に各々図４のシーケンスを実行させるコンピュータプログラムを作成することが可能であり、またそれらを各々媒体に蓄積し配布することができる。これによれば汎用のコンピュータを用いて家庭外からの通信を実現することができる。
【０１１０】
（実施の形態３）
本発明の通信システムの第３の実施の形態を説明する。
本実施の形態のネットワーク接続は図２で示されたとおりである。アドレス付与も前述の実施の形態と同じであり、通信シーケンスのみが異なっている。本実施の形態では端末としてＷｅｂブラウザを備えたＰＣや携帯電話を用いており、これを用いてＬＡＮに接続された機器１０１とＨＴＴＰによる通信を行なって操作やコンテンツ取得などを行なう。
【０１１１】
図７を参照して、本実施の形態の通信シーケンスを説明する。
本実施の形態の通信シーケンスは、通知ＵＤＰパケットによって通信準備が行なわれるまでの手順は、図５で示した実施の形態２のシーケンスと同じである。図７にはそれ以降の手順を図示している。
【０１１２】
端末１０２から機器１０１に対する通信を開始したい場合、端末１０２はサーバ１０４に対し、ＳＳＬでのＴＣＰ接続要求６０７を送信する。これにより通常のＳＳＬの手順に従ってサーバ証明書通知６０８がサーバ１０４から端末１０２に送付されて、ステップＳ６２４で認証される。認証が成功すると暗号化通信が可能となる。続いて、第２の実施の形態と同じ手順に従って、機器接続要求６０９からＴＣＰ接続要求６１１までのシーケンスが実行される。
【０１１３】
第２の実施の形態と異なる第１の点は、機器接続要求６０９が暗号化されていることである。これにより機器接続要求６０９に含まれる機器ＩＤを秘匿する点ができる。また、第２の異なる点は、ステップＳ６２６において乱数が生成されてサーバ内に保存され、さらに接続要求ＵＤＰパケット６１０により機器に通知される点である。
【０１１４】
次に、機器１０１がＴＣＰ／ＳＳＬ接続要求６１１を送信し、サーバ１０４との間でＴＣＰ接続を接続する。これにより通常のＳＳＬの手順に従ってサーバ証明書通知６１２がサーバ１０４から機器１０１に送付されて、認証される（ステップＳ６２７）。認証が成功すると暗号化通信が可能となる。
【０１１５】
以上によりサーバ１０４と機器１０１の間でＳＳＬで暗号化されたＴＣＰ接続が確立された後、手順６１３〜６１４の転送が行なわれて端末１０２にページが表示される。その後、ユーザによるトリガによりセッション識別子を使った手順６１５〜６１８のＨＴＴＰ通信の転送、及び手順６１９〜６２２のＨＴＴＰ通信の転送が行なわれる。これらのＨＴＴＰの転送の内容自体は実施の形態２と同じである。そのため、実施の形態２と異なる点を説明する。
【０１１６】
本実施形態と実施の形態２の間の第１の差異は、通信の暗号化がおこなわれていることである。これにより機器ＩＤなどの、機器固有の情報やその他の価値のある情報を秘密にすることができる。
【０１１７】
本実施形態と実施の形態２の間の第２の差異は、セッション識別子通知６１３において、セッション識別子に加えて、機器証明書と、サーバから接続要求ＵＤＰパケット６１０によって送信された乱数とが引数として通知される点である。機器証明書は機器１０１が正当であることを証明するものである。機器証明書はステップＳ６２８において検証され、正しい機器である場合のみ後続のステップが実行される。機器証明書が暗号化されて送信できることは、本発明の方式にこのような手順で機器証明書認証を組み合わせた場合に特に利点となる。
【０１１８】
さらに、ステップＳ６２８において、セッション識別子通知６１３の引数の乱数が、ステップＳ６２６においてサーバ内に保存してあった乱数と同じであるか否かを検証し、同じである場合のみ続くステップが実行される。これにより、接続要求ＵＤＰパケット６１０が本当にサーバが送信したものかどうかを確認でき、クラッカーが接続要求ＵＤＰパケット６１０を偽造した場合でも誤動作を防ぐことができる。
【０１１９】
また、本発明の構成が単一のサーバを必ず経由する構成であるため、サーバ側にサーバ証明書をおいて暗号を確立する方式と組み合わせた場合、各機器、各端末に個別に証明書を置かずともサーバに置くだけで、複数の機器と複数の端末が存在して互いに接続しあうシステムにおいても互いを認証しあうことができる。これによりサーバ証明書の数を削減して管理を省力化できる。また、機器１０１とサーバ１０４間のＴＣＰ通信の方向が機器１０１側からＴＣＰ通信を開始する構成のため、サーバ１０４側に単一のサーバ証明書を備えればよく、特にＳＳＬの適用に好適な構成である。
【０１２０】
なお、ＨＴＴＰリクエストとＨＴＴＰレスポンスの対毎に通信内容の秘匿必要性に応じて暗号化の適用非適用を変更することも可能で、これにより暗号化による負荷を最適化できる。本実施の形態はこれらの効果を第２の実施の形態に加えて保持する。
【０１２１】
【発明の効果】
以上説明したように本発明では、プライベートＩＰアドレスを持つＬＡＮ内の機器に、インターネット上の機器から望む時に自由に通信できる方法を提供し、その際、事前にユーザがルータに対して複雑な設定を行なわなくても良く、さらにルータのインターネット側アドレスが動的に割り振られていても容易に通信先機器を指定でき、またＮＡＴルータが多段の場合でも動作する方法を提供する。その際に、ＵＤＰパケットによるのサーバ負荷の低さと、ＴＣＰパケットによる端末と機器との通信の信頼性を両立することができる。
【０１２２】
また、静的ＮＡＴを行なわないためにＮＡＴ第３者からの攻撃を受けにくくセキュリティが高く、サーバの通信負荷の調整が容易であり、通常のＷｅｂブラウザを搭載した端末とＨＴＴＰ通信を採用した、汎用性が高くユーザの使い勝手のよい通信システムを低コストに構成することが可能になるなど、多くの顕著な効果が得られる
【図面の簡単な説明】
【図１】本発明の第１の実施の形態における通信シーケンスを示した図である。
【図２】本発明の通信システムにおけるネットワーク構成を示した図である。
【図３】本発明の通信システムにおける通信パケットの内容を示した図である。
【図４】本発明の通信システムにおけるサーバ内で登録される、機器ＩＤ、ＳＡ、ＤＡ等の各アドレス、最終アクセス時刻を含むエントリを示した図である。
【図５】本発明の第２の実施の形態における通信シーケンスを示した図である。
【図６】第２の実施の形態の通信システムにおける機器の構成を示した図である。
【図７】本発明の第３の実施の形態における通信シーケンスを示した図である。
【図８】従来のＮＡＴ機能を持つルータの通信シーケンスを示した図である。
【図９】従来のＮＡＰＴ機能を持つルータの通信シーケンスを示した図である。
【符号の説明】
１０１　機器
１０２　端末
１０３　ルータ
１０４　サーバ
１０５　インターネット
１０６　ＬＡＮ
１０７、４０７　最大アクセス確認周期情報要求
１０８、４０８　最大アクセス確認周期情報通知
１０９、４０９、４１０　通知ＵＤＰパケット
１１０、４１１、６０９　機器接続要求
１１１、４１２、６１０　接続要求ＵＤＰパケット
１１２、４１３、６１１　ＴＣＰ接続要求
１１３、４１４、６１３　セッション識別子通知
４１５、６１４　機器接続応答
４１６、６１５　ＨＴＴＰリクエスト
４１７、６１６、６２０　ＨＴＴＰリクエスト転送
４１８、６１７、６２１　ＨＴＴＰレスポンス
４１９、６２２　ＨＴＴＰレスポンス転送
５０１　転送モジュール
５０２　Ｗｅｂサーバモジュール
６１２サーバ証明書通知
６１３セッション識別子通知
【図１】
2004120547.tif 000003
【図２】
2004120547.tif 000004
【図３】
2004120547.tif 000005
【図４】
2004120547.tif 000006
【図５】
2004120547.tif 000007
【図６】
2004120547.tif 000008
【図７】
2004120547.tif 000009
【図８】
2004120547.tif 000010
【図９】
2004120547.tif 000011
【手続補正書】
【提出日】平成14年9月30日(2002.9.30)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００２８
【補正方法】変更
【補正の内容】
【００２８】
第１の通信システムにおいてサーバは複数の機器に対し、機器毎に最終アクセス時刻を記録する記憶手段を備え、次のように動作してもよい。サーバは、機器からの定期的な通知ＵＤＰパケットを受信したときに、最終アクセス時刻を通知ＵＤＰパケットの受信時刻で更新する。そして、端末から機器に対する転送要求があった際に、機器の最終アクセス時刻と現在時刻との差が所定値を超えた場合は、接続要求を拒否する。その差が所定値以下の場合は、通知ＵＤＰパケットの応答として接続要求ＵＤＰパケットを前記機器に送る。




【手続補正書】
【提出日】平成15年3月25日(2003.3.25)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
復路変換７０９において、ルータ７０３は、ＩＰパケット７０６のＤＡフィールド内のグローバルＩＰアドレス”２０２．２２４．１５９．１４２”を、ＩＰパケット７０６のＳＡフィールド内のＩＰアドレス”４．１７．１６８．６”に基いてＮＡＴテーブル７１３に保存されていた機器７０１のＩＰアドレス”１９２．１６８．１．２”に置換し、ＩＰパケット７０７としてＬＡＮ７１１へ転送する。これによりＩＰパケット７０７は機器７０１に送信され、機器７０１ではＩＰパケット７０４のレスポンスとして受信される。


【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
以下で、ＮＡＰＴ機能の仕組みを図９の通信シーケンス図に沿って説明する。但し、図８のＮＡＴと同様の動作については説明を略する。ＮＡＴではＩＰパケットのＩＰアドレスの変換のみを行なったが、ＮＡＰＴにおいてはポートの変換も同時に行なう。すなわち、図９の往路変換８０８において、ＮＡＴと同様の変換処理に加え、ルータ８０３が現在使用していないポート番号（ここでは「１００」とする。）を選び、ＩＰパケット８０４のＳＰ（ここでは「１」とする。）の内容に置き換えてＩＰパケット８０５に変換する。この際、ルータ８０３は、ＩＰパケット８０４のＳＡ”１９２．１６８．１．２”とＩＰパケット８０５のＤＡ”４．１７．１６８．６”の組に加え、ＩＰパケット８０４のＳＰ（１）とそれを置換したルータ８０３のポート（１００）の組をルータ８０３内部のＮＡＰＴテーブル８１３（図９（ｂ）参照）に保存する。


【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
ルータ８０３はＩＰパケット８０６を受信すると、受信パケットの内容とテーブル８１３との比較を行なう。比較した結果、受信したＩＰパケット８０６のＤＡがＩＰアドレス８０５のＳＡと一致し、ＩＰパケット８０６のＤＰがＩＰアドレス８０５のＳＰと一致すれば、受信したパケット８０６がルータ８０３が送出したパケット８０５に対する応答であることを確認し、その結果、復路変換８０９を行なう。復路変換８０９においてはＮＡＴの動作に加え、ＩＰパケット８０６のＤＰ（ここでは「１００」）の内容を保存してあったＩＰパケット８０４のＳＰ（ここでは「１」）に置き換え、ＩＰパケット８０７に変換する。これにより、ＬＡＮ上の機器８０１とインターネット上のサーバ８０２間で通信が可能となる。上記のＮＡＰＴ機能によれば、ＬＡＮ側から複数の機器が同時に通信する場合でも、機器８０１からの通信をルータのポート番号により区別することができ、従ってルータ８０３のグローバルＩＰアドレスが１つだけであっても、ルータのポートの数だけ同時に通信を行なうことが可能となる。


【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
本発明は上記の課題を解決することを目的とする。すなわち、本発明はプライベートＩＰアドレスを持つＬＡＮ内の機器に対しインターネット上の機器から望む時に自由に通信できる方法を提供する。特に、その場合に、ユーザがルータに対して事前に複雑な設定を行なっておく必要がなく、また、ルータのインターネット側アドレスが動的に割り振られている場合でも容易に通信先機器を指定でき、またＮＡＴルータが多段の場合でも、前述の通信を実現できる方法を提供する。


【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００５６
【補正方法】変更
【補正の内容】
【００５６】
まず、機器１０１はそのＴＣＰ接続上で、接続要求ＵＤＰパケット１１１により通知されたセッション識別子を、セッション識別子通知１１３によってサーバへ返送する。サーバ１０４はセッション識別子を受信すると、ステップＳ１２３においてセッション識別子の照合を行う。照合の結果、このセッション識別子が機器接続要求１１０により生成されたものであることを検出すると、サーバ１０４はこのＴＣＰ接続を、接続要求１１０に答えて端末１０２と機器１０１間の通信の転送に使用することを決定する。


【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００６３
【補正方法】変更
【補正の内容】
【００６３】
また、本実施の形態によれば、ＬＡＮ内からインターネットに対して周期的に通知ＵＤＰパケット１０９が送信される。これにより、このパケットがルータ１０３に対し、いわゆるキープアライブパケットとして作用し、ルータ１０３のＷＡＮ側接続のＰＰＰやＤＨＣＰがタイムアウトすることによってＩＳＰから切断されてしまうことを防ぎ、いつでもインターネットから通信可能な状態に維持するという効果を持つ。


【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００６５
【補正方法】変更
【補正の内容】
【００６５】
また、本実施の形態によれば、ルータ１０３のＷＡＮ側ＩＰアドレスが動的に割り振られていても、通知ＵＤＰパケット１０９により周期的に最新のＷＡＮ側ＩＰアドレスがサーバ１０４に登録されるため、端末１０２からは機器ＩＤを指定するのみで容易に機器１０１を指定して通信ができる。


【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００６９
【補正方法】変更
【補正の内容】
【００６９】
なお、セッション識別子はＴＣＰ接続要求１１２に対しＴＣＰ接続を一意に対応付けられる範囲で一意であれば良く、例えばサーバ内で一意でなくとも、機器ＩＤと組み合わせた場合に一意であっても良い。


【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００７２
【補正方法】変更
【補正の内容】
【００７２】
なお、本実施の形態では機器１０１からの接続先はサーバ１０４のみであり、サーバ１０４が端末１０２と機器１０１間の通信を転送したが、接続要求ＵＤＰパケット１１１により端末１０２のアドレスを通知すれば、機器１０１が端末１０２に対し直接ＴＣＰ接続要求１１２を送信する構成も可能である。この構成によれば、端末１０２と機器１０１が直接通信を行なうことが可能になり、サーバ１０４の転送負荷が低減されるなど別の効果がある。


【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００９７
【補正方法】変更
【補正の内容】
【００９７】
また、第１の実施の形態同様、サーバ１０４における通知ＵＤＰパケットＡ４１０の受信負荷と通信不可能なことを検出するまでの時間を、互いにトレードオフして自由に調整することが可能となる。


【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】０１０７
【補正方法】変更
【補正の内容】
【０１０７】
なお、本実施の形態では機器１０１からの接続先はサーバ１０４のみであり、サーバ１０４が端末１０２と機器１０１間の通信を転送したが、接続要求ＵＤＰパケット４１２により端末１０２のアドレスを通知すれば、機器１０１が端末１０２に対し直接ＴＣＰ接続要求４１３を送信する構成も可能である。この構成に拠れば、端末１０２と機器１０１が直接通信を行なうことが可能になり、サーバ１０４の転送負荷が低減されるなど別の効果がある。


【手続補正１２】
【補正対象書類名】図面
【補正対象項目名】図８
【補正方法】変更
【補正の内容】
【図８】
2004120547.tif 000012
【手続補正書】
【提出日】平成15年4月24日(2003.4.24)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
インターネットに接続された少なくとも１つの機器と、インターネットに接続可能な少なくとも１つの端末との間の通信を転送する、インターネットに接続されたサーバであって、
前記機器からの定期的な通知パケットを受信し、
前記端末からの前記機器に対する転送要求があった場合、前記通知パケットの応答として接続要求パケットを前記機器に送信し、
該接続要求パケットに応答して前記機器から前記サーバへ送信されたＴＣＰ接続要求を受諾し、
ＴＣＰ接続確立後、そのＴＣＰ接続上で前記端末と前記機器間の通信を転送する
ことを特徴とするサーバ。
【請求項２】
前記サーバは、前記端末から機器ＩＤを含んだＨＴＴＰリクエストにより前記機器に対する転送要求を受信し、
前記端末と前記機器の間の通信の転送を、前記端末からのＨＴＴＰリクエストを前記機器から張られたＴＣＰ接続上に転送し、前記機器から前記ＴＣＰ接続を通じて受信したＨＴＴＰレスポンスを端末へ転送することにより行なうことを特徴とする請求項１記載のサーバ。
【請求項３】
前記サーバは、少なくとも１つの端末から複数の転送要求を受信することができ、前記端末から前記機器に対する複数の転送要求があった場合に、各々に一意なセッション識別子を生成して前記接続要求パケットにより機器に通知し、
前記接続要求パケットに応答して前記機器から前記サーバへ送信されたＴＣＰ接続要求を受諾してＴＣＰ接続を確立し、該確立したＴＣＰ接続上で前記機器から送信されるセッション識別子を受信し、そのＴＣＰ接続に前記受信したセッション識別子を対応付けることで、前記端末からの複数の接続要求に対して複数のＴＣＰ接続を各々対応付け、
前記端末がセッション識別子を指定して接続を要求し、且つ、該指定されたセッション識別子に対応付けられたＴＣＰ接続が確立済みの場合に、前記端末からの通信をその確立済みのＴＣＰ接続上で転送することにより、セッション識別子毎に並列して通信内容の転送を行う
ことを特徴とする請求項１記載のサーバ。
【請求項４】
前記サーバは、複数の機器に対し、機器毎に最終アクセス時刻を記録する記憶手段を備え、
前記機器からの定期的な通知パケットを受信したときに、前記最終アクセス時刻を該受信時刻で更新し、
前記端末から前記機器に対する転送要求があった際に、前記機器の最終アクセス時刻と現在時刻との差が所定期間を超えている場合は該接続要求を拒否し、その差が所定期間以下の場合は前記通知パケットの応答として接続要求パケットを前記機器に送る
ことを特徴とする請求項１記載のサーバ。
【請求項５】
前記サーバは、複数の機器に対し、機器毎に最終アクセス時間を記録する記憶手段を備え、
前記機器に予め最大アクセス確認周期情報を送信し、
前記機器からの定期的な通知パケットを受信したときに、最終アクセス時刻を該通知パケットの受信時刻で更新し、
前記端末から前記機器に対する転送要求があった際に、前記機器の最終アクセス時刻と現在時刻との差が最大アクセス確認周期情報が示す値を超えた場合は、前記接続要求を拒否し、その差が最大アクセス確認周期情報が示す値以下の場合は、前記通知パケットの応答として接続要求パケットを前記機器に送る
ことを特徴とする請求項１記載のサーバ。
【請求項６】
前記サーバは、サーバ証明書を保持し、通信を暗号化および復号化する暗号通信手段を備え、
前記端末と前記機器の間で秘密情報を転送する際、予め前記端末にサーバ証明書を送信し、
前記機器により確立されたＴＣＰ接続を介して前記端末から前記機器へ秘密情報を転送する際は、前記端末から暗号化された秘密情報を受信して前記暗号通信手段で復号化した後、前記暗号通信手段で暗号化して前記機器に送信し、
前記機器により確立されたＴＣＰ接続を介して前記機器から前記端末へ秘密情報を転送する際は、前記機器から暗号化された秘密情報を受信して前記暗号通信手段で復号化した後、前記暗号通信手段で暗号化して前記端末に送信することを特徴とする請求項１記載のサーバ。
【請求項７】
前記サーバは、サーバ証明書を保持し、通信を暗号化および復号化する暗号通信手段を備え、
前記端末と前記機器の間で秘密情報を転送する際、予め前記端末と前記機器に各々サーバ証明書を送信し、
前記確立されたＴＣＰ接続を介して前記端末から前記機器へ秘密情報を転送する際は、前記端末から暗号化された秘密情報を受信して前記暗号通信手段で復号化した後、前記暗号通信手段で暗号化して前記機器に送信し、
前記機器により確立されたＴＣＰ接続を介して前記機器から前記端末へ秘密情報を転送する際は、前記機器から暗号化された秘密情報を受信して前記暗号通信手段で復号化した後、前記暗号通信手段で暗号化して前記端末に送信する
ことを特徴とする請求項１記載のサーバ。
【請求項８】
インターネットに接続されたサーバと通信する、インターネットに接続された機器であって、
前記サーバに定期的に通知パケットを送信し、
前記サーバから接続要求パケットを受信した場合、前記サーバに対してＴＣＰ接続要求を送信し、
ＴＣＰ接続後、そのＴＣＰ接続上で前記サーバと通信する
ことを特徴とする機器。
【請求項９】
前記機器は、前記ＴＣＰ接続上での前記サーバとの通信を、前記サーバからＨＴＴＰリクエストを受信し、前記サーバへＨＴＴＰレスポンスを送信することにより行なうことを特徴とする請求項８記載の機器。
【請求項１０】
前記機器は、Ｗｅｂサーバモジュールと転送モジュールを備え、
前記Ｗｅｂサーバモジュールは、前記転送モジュールからＨＴＴＰリクエストを受信してＨＴＴＰレスポンスを返信し、
前記転送モジュールは、前記サーバから前記接続要求パケットを受信した際は前記サーバに対してＴＣＰ接続要求を送信してＴＣＰ接続を確立し、そのＴＣＰ接続上で前記サーバからＨＴＴＰリクエストを受信して前記Ｗｅｂサーバに転送し、前記ＷｅｂサーバからＨＴＴＰレスポンスを受信して前記サーバに前記ＴＣＰ接続上で転送する
ことを特徴とする請求項９記載の機器。
【請求項１１】
前記機器は、前記サーバからセッション識別子を伴った接続要求パケットを受信した場合、前記サーバに対してＴＣＰ接続を確立し、その確立したＴＣＰ接続上で前記セッション識別子をサーバに送信し、
前記ＴＣＰ接続確立後は、前記ＴＣＰ接続上で前記サーバと通信する
ことを特徴とする請求項８記載の機器。
【請求項１２】
前記機器は、前記サーバから最大アクセス確認周期情報を予め受信して前記機器内に保存しておき、前記最大アクセス確認周期情報が示す周期より短い周期で定期的に通知パケットを送信することを特徴とする請求項８記載の機器。
【請求項１３】
前記機器は、通信を暗号化および復号化する暗号通信手段を備え、
前記サーバと秘密情報の送受信を確立したＴＣＰ接続上で暗号通信手段により暗号化して行うことを特徴とする請求項８記載の機器。
【請求項１４】
前記機器は、サーバ証明書を検証する手段と通信を暗号化および復号化する暗号通信手段を備え、
前記サーバからサーバ証明書を受信し、
前記サーバと秘密情報の送受信を、前記サーバ証明書を認証して正規であることを確認した後に前記確立したＴＣＰ接続上で暗号通信手段により暗号化して行うことを特徴とする請求項８記載の機器。
【請求項１５】
インターネットに接続された少なくとも１つの機器と、インターネットに接続可能な少なくとも１つの端末との間の通信を、インターネットに接続されたサーバを介して転送する通信システムであって、
前記機器は前記サーバに定期的に通知パケットを送り、
前記サーバは前記端末から前記機器に対する転送要求があった場合、前記通知パケットの応答として接続要求パケットを前記機器に送り、
前記機器は、前記サーバから接続要求パケットを受信した場合、前記サーバに対してＴＣＰ接続要求を送信し、
前記サーバは、前記接続要求パケットに応答して前記機器から前記サーバへ送信されたＴＣＰ接続要求を受諾し、これによりＴＣＰ接続を確立し、
前記サーバは、前記ＴＣＰ接続確立後、そのＴＣＰ接続上で前記端末と前記機器の間の通信を転送する
ことを特徴とする通信システム。
【請求項１６】
前記端末は前記サーバに対し機器ＩＤを含んだＨＴＴＰリクエストを送信することにより前記機器に対する転送要求を行い、
前記サーバは前記端末と前記機器の間の通信を転送する際に、前記端末からのＨＴＴＰリクエストを前記機器から張られたＴＣＰ接続上に転送し、
前記機器は転送された前記ＨＴＴＰリクエストを処理して、それに対するＨＴＴＰレスポンスを前記ＴＣＰ接続上で前記サーバへ応答し、
前記サーバは該ＨＴＴＰレスポンスを端末へ転送する
ことを特徴とする請求項１５記載の通信システム。
【請求項１７】
前記サーバは、少なくとも１つの端末から複数の転送要求を受信することができ、前記端末から前記機器に対する複数の転送要求があった場合に、各々に一意なセッション識別子を生成し、前記接続要求パケットにより前記機器に通知し、
前記機器は、前記サーバからセッション識別子を伴った接続要求パケットを受信した場合、前記サーバに対してＴＣＰ接続を確立し、その確立したＴＣＰ接続上で前記セッション識別子をサーバに送信し、前記ＴＣＰ接続確立後は、前記ＴＣＰ接続上で前記サーバと通信し、
前記サーバは、前記接続要求パケットに応答して前記機器から前記サーバへ送信されたＴＣＰ接続要求を受諾してＴＣＰ接続を確立し、前記ＴＣＰ接続上で前記機器から送信されるセッション識別子を受信し、前記ＴＣＰ接続に前記受信されたセッション識別子を対応付けることで、前記端末からの複数の接続要求に対して複数のＴＣＰ接続を各々対応付け、
前記サーバは、前記端末がセッション識別子を指定して接続を要求し、且つ、該指定されたセッション識別子に対応付けられたＴＣＰ接続が確立済みの場合、前記確立済みのＴＣＰ接続上で前記端末からの通信を転送することにより、セッション識別子毎に並列して通信内容の転送を行う
ことを特徴とする請求項１５記載の通信システム。
【請求項１８】
前記サーバは、複数の機器に対し、機器毎に最終アクセス時間を記録する記憶手段を備え、
前記サーバは、前記機器に予め最大アクセス確認周期情報を送信し、
前記機器は、その最大アクセス確認周期情報を受信して内部に保存しておき、前記最大アクセス確認周期情報が示す周期よりも短い周期で定期的に通知パケットを送信し、
前記サーバは、前記機器から通知パケットを受信した際に最終アクセス時刻を通知パケットの受信時刻で更新し、
前記サーバは、前記端末から前記機器に対する転送要求があった際に、前記機器の最終アクセス時刻と現在時刻との差が最大アクセス確認周期情報が示す周期を超えている場合は前記接続要求を拒否し、その差が最大アクセス確認周期情報が示す周期以下の場合は、前記通知パケットの応答として接続要求パケットを前記機器に送信する
ことを特徴とする請求項１５記載の通信システム。
【請求項１９】
前記サーバは、サーバ証明書を保持し、通信を暗号化および復号化する暗号通信手段を備え、
前記端末は、サーバ証明書を検証する手段と通信を暗号化および復号化する暗号通信手段とを備え、
前記機器は、通信を暗号化および復号化する暗号通信手段を備え、
前記サーバは、前記端末と前記機器の間で秘密情報を転送する際、予め前記端末にサーバ証明書を送信し、
前記端末は、前記サーバと秘密情報の送受信を、前記サーバ証明書を認証して正規であることを確認した後に暗号通信手段により暗号化して行い、
前記機器は、前記サーバと秘密情報の送受信を、前記確立されたＴＣＰ接続で暗号通信手段により暗号化して行い、
前記サーバは、前記確立されたＴＣＰ接続を介して前記端末から前記機器へ秘密情報を転送する際は、前記端末から暗号化された秘密情報を受信して前記暗号通信手段で復号化した後、前記暗号通信手段で暗号化して前記機器に送信し、
前記サーバは、前記機器により確立されたＴＣＰ接続を介して前記機器から前記端末へ秘密情報を転送する際は、前記機器から暗号化された秘密情報を受信して前記暗号通信手段で復号化した後、前記暗号通信手段で暗号化して前記端末に送信する
ことを特徴とする請求項１５記載の通信システム。
【請求項２０】
前記サーバは、サーバ証明書を保持し、通信を暗号化および復号化する暗号通信手段を備え、
前記端末は、サーバ証明書を検証する手段と通信を暗号化および復号化する暗号通信手段を備え、
前記機器は、サーバ証明書を検証する手段と通信を暗号化および復号化する暗号通信手段を備え、
前記サーバは、前記端末と前記機器の間で秘密情報を転送する際、予め前記端末と前記機器に各々サーバ証明書を送信し、
前記端末は、前記サーバと秘密情報の送受信を、前記サーバ証明書を認証して正規であることを確認した後に暗号通信手段により暗号化して行い、
前記機器は、前記サーバと秘密情報の送受信を、前記サーバ証明書を認証して正規であることを確認した後に前記機器が確立したＴＣＰ接続上で暗号通信手段により暗号化して行い、
前記サーバは、前記機器により確立されたＴＣＰ接続を介して前記端末から前記機器へ秘密情報を転送する際は、前記端末から暗号化された秘密情報を受信して前記暗号通信手段で復号化した後、前記暗号通信手段で暗号化して前記機器に送信し、
前記サーバは、前記機器により確立されたＴＣＰ接続を介して前記機器から前記端末へ秘密情報を転送する際は、前記機器から暗号化された秘密情報を受信して前記暗号通信手段で復号化した後、前記暗号通信手段で暗号化して前記端末に送信する
ことを特徴とする請求項１５記載の通信システム。
【請求項２１】
インターネットに接続された少なくとも１つの機器と、インターネットに接続可能な少なくとも１つの端末との間の通信を転送する、インターネットに接続されたサーバであって、
複数の機器に対し、機器毎に最終アクセス時間を記録する記憶手段を備え、
前記機器から第１及び第２の通知パケットを定期的に受信し、
前記機器から第１の通知パケットを受信したときは、最終アクセス時刻を受信時刻で更新し、前記機器から第２の通知パケットを受信したときは、最終アクセス時刻を更新せず、
前記端末から前記機器に対する転送要求があった際に、前記機器の最終アクセス時刻と現在時刻との差が所定期間を超えている場合は前記接続要求を拒否し、その差が所定期間以下の場合は前記第１及び第２の通知パケットの応答として接続要求パケットを前記機器に送り、
前記接続要求パケットに応答して前記機器から前記サーバへ送信されるＴＣＰ接続要求を受諾し、
ＴＣＰ接続確立後は、前記ＴＣＰ接続上で前記端末と前記機器の間の通信を転送する
ことを特徴とするサーバ。
【請求項２２】
インターネットに接続されたサーバと通信する、インターネットに接続された機器であって、
前記サーバに第１及び第２の通知パケットを定期的に送信し、前記第１の通知パケットの送信周期は前記第２の通知パケットの送信周期より長く、
前記機器は、前記サーバから接続要求パケットを受信した場合、前記サーバに対してＴＣＰ接続要求を送信し、
前記機器はＴＣＰ接続が確立後、前記ＴＣＰ接続上で前記サーバと通信する
ことを特徴とする機器。
【請求項２３】
インターネットに接続された少なくとも１つの機器と、インターネットに接続可能な少なくとも１つの端末との間の通信を、インターネットに接続されたサーバが転送する通信システムであって、
前記サーバは、複数の機器に対し、機器毎に最終アクセス時間を記録する記憶手段を備え、
前記機器は、前記サーバに第１及び第２の通知パケットを定期的に送り、前記第１の通知パケットの送信周期は前記第２の通知パケットの送信周期よりも長く、
前記サーバは、機器から第１及び第２の通知パケットを受信し、前記機器から第１の通知パケットを受信したときに最終アクセス時刻を受信時刻で更新し、第２の通知パケットを受信したときには最終アクセス時刻を更新せず、
前記サーバは、前記端末から前記機器に対する転送要求があった際に、前記機器の最終アクセス時刻と現在時刻との差が所定期間を超えている場合は前記接続要求を拒否し、その差が所定期間以下の場合は、前記第１及び第２の通知パケットの応答として接続要求パケットを前記機器に送り、
前記機器は、前記サーバから接続要求パケットを受信した場合、前記サーバに対してＴＣＰ接続要求を送信し、
前記サーバは、前記接続要求パケットに応答して前記機器から前記サーバへ送信されたＴＣＰ接続要求を受諾し、これによりＴＣＰ接続を確立し、
前記サーバは、前記ＴＣＰ接続が確立後、そのＴＣＰ接続上で前記端末と前記機器の間の通信を転送する
ことを特徴とする通信システム。
【請求項２４】
プログラム可能な装置を、請求項１ないし７のいずれか一つ又は２１に記載のサーバとして動作させるためのプログラム。
【請求項２５】
プログラム可能な装置を、請求項８ないし１４のいずれか一つ又は２２に記載の機器として動作させるためのプログラム。
【請求項２６】
請求項２４又は２５に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】変更
【補正の内容】
【００２０】
機器はサーバに定期的に通知パケットを送り、サーバは端末から機器に対する転送要求があった場合、通知パケットの応答として接続要求パケットを前記機器に送る。機器は、サーバから接続要求パケットを受信した場合、サーバに対してＴＣＰ接続要求を送信する。サーバは、接続要求パケットに応答して機器からサーバへ送信されたＴＣＰ接続要求を受諾し、これによりＴＣＰ接続を確立する。サーバは、ＴＣＰ接続確立後、そのＴＣＰ接続上で端末と機器の間の通信を転送する。


【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２１
【補正方法】変更
【補正の内容】
【００２１】
第１の通信システムによれば、サーバから機器に送信される接続要求パケットは機器からの通知パケットの応答として送信されるため、機器がＮＡＴ機能を搭載したルータによってインターネットに接続されている場合でも、接続要求パケットを静的ＮＡＴ設定無しにルータを越えて機器に届けることができる。またＴＣＰ接続の確立時に機器からサーバに対して接続要求が行われるため、やはり静的ＮＡＴ設定を無しにＴＣＰ接続を確立することが出来る。これによりサーバと機器の間に何時でも望むときにＴＣＰ接続を確立することができ、このＴＣＰ接続上でサーバが通信の転送を行うことにより、端末からＮＡＴルータの有無に関わらず何時でも望む時にＬＡＮに接続された機器と通信を行うことが可能となる。さらに本発明は、通信の転送を行わない期間は負荷の軽いパケットを用い、通信の転送を行う期間は通信の信頼性が高いＴＣＰ接続を用いるため、サーバの負荷を軽くしながら信頼性有る通信を実現することができる。


【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】変更
【補正の内容】
【００２３】
上記の第２の通信システムにおいて、機器はＷｅｂサーバモジュールと転送モジュールを備えてもよい。Ｗｅｂサーバモジュールは、転送モジュールからＨＴＴＰリクエストを受信してＨＴＴＰレスポンスを返信する。転送モジュールは、サーバから接続要求パケットを受信した際はサーバに対してＴＣＰ接続要求を送信してＴＣＰ接続を確立し、そのＴＣＰ接続上でサーバからＨＴＴＰリクエストを受信してＷｅｂサーバに転送し、ＷｅｂサーバからＨＴＴＰレスポンスを受信してサーバにＴＣＰ接続上で転送する。


【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００２６
【補正方法】変更
【補正の内容】
【００２６】
サーバは、少なくとも１つの端末から複数の転送要求を受信することができ、端末から機器に対する複数の転送要求があった場合に、各々に一意なセッション識別子を生成し、接続要求パケットにより機器に通知する。機器は、サーバからセッション識別子を伴った接続要求パケットを受信した場合、サーバに対してＴＣＰ接続を確立し、その確立したＴＣＰ接続上でセッション識別子をサーバに送信し、ＴＣＰ接続確立後は、ＴＣＰ接続上でサーバと通信する。サーバは、接続要求パケットに応答して機器からサーバへ送信されたＴＣＰ接続要求を受諾してＴＣＰ接続を確立し、ＴＣＰ接続上で機器から送信されるセッション識別子を受信し、ＴＣＰ接続に受信されたセッション識別子を対応付けることで、端末からの複数の接続要求に対して複数のＴＣＰ接続を各々対応付ける。サーバは、端末がセッション識別子を指定して接続を要求し、且つ、指定されたセッション識別子に対応付けられたＴＣＰ接続が確立済みの場合、確立済みのＴＣＰ接続上で端末からの通信を転送することにより、セッション識別子毎に並列して通信内容の転送を行う。


【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００２８
【補正方法】変更
【補正の内容】
【００２８】
第１の通信システムにおいてサーバは複数の機器に対し、機器毎に最終アクセス時間を記録する記憶手段を備え、次のように動作してもよい。サーバは、機器からの定期的な通知パケットを受信したときに、最終アクセス時刻を通知パケットの受信時刻で更新する。そして、端末から機器に対する転送要求があった際に、機器の最終アクセス時刻と現在時刻との差が所定値を超えた場合は、接続要求を拒否する。その差が所定値以下の場合は、通知パケットの応答として接続要求パケットを前記機器に送る。


【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００３１
【補正方法】変更
【補正の内容】
【００３１】
サーバは、複数の機器に対し、機器毎に最終アクセス時間を記録する記憶手段を備える。サーバは、機器に予め最大アクセス確認周期情報を送信する。機器は、その最大アクセス確認周期情報を受信して内部に保存しておき、最大アクセス確認周期情報が示す周期よりも短い周期で定期的に通知パケットを送信する。サーバは、機器から通知パケットを受信した際に最終アクセス時刻を通知パケットの受信時刻で更新する。サーバは、端末から機器に対する転送要求があった際に、機器の最終アクセス時刻と現在時刻との差が最大アクセス確認周期情報が示す周期を超えている場合は接続要求を拒否し、その差が最大アクセス確認周期情報が示す周期以下の場合は、通知パケットの応答として接続要求パケットを前記機器に送信する。


【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００３２
【補正方法】変更
【補正の内容】
【００３２】
第４の通信システムによれば、機器が動作して通信可能なことが端末からサーバに接続要求があった際に直ちに確認できるため、通信不可能な場合に端末に対する拒否の応答が高速に出来、また機器のＩＰアドレスがＩＳＰによって動的に割り当てられており、かつ機器の電源断などにより、サーバに登録された機器のＩＰアドレスが既に関係無い別の機器に割り当てられた場合でも、誤って関係の無い別の機器に接続要求を行うことを回避できる。さらに、サーバから機器に予め最大アクセス確認周期情報を指定することで機器が通信可能な状態であることを確認する通知パケットの送信周期を制御し、サーバにおいて通知パケットの受信負荷と通信不可能なことを検出するまでの時間をトレードオフによって自由に調整することが可能となる。


【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００４０
【補正方法】変更
【補正の内容】
【００４０】
サーバは、複数の機器に対し、機器毎に最終アクセス時間を記録する記憶手段を備える。機器は、サーバに第１及び第２の通知パケットを定期的に送り、第１の通知パケットの送信周期は第２の通知パケットの送信周期よりも長い。サーバは、機器から第１及び第２の通知パケットを受信し、機器から第１の通知パケットを受信したときに最終アクセス時刻を受信時刻で更新し、第２の通知パケットを受信したときには最終アクセス時刻を更新しない。サーバは、端末から機器に対する転送要求があった際に、機器の最終アクセス時刻と現在時刻との差が所定期間を超えている場合は接続要求を拒否し、その差が所定期間以下の場合は、第１及び第２の通知パケットの応答として接続要求パケットを前記機器に送る。機器は、サーバから接続要求パケットを受信した場合、サーバに対してＴＣＰ接続要求を送信する。サーバは、接続要求パケットに応答して機器からサーバへ送信されたＴＣＰ接続要求を受諾し、これによりＴＣＰ接続を確立する。サーバは、ＴＣＰ接続が確立後、そのＴＣＰ接続上で端末と機器間の通信を転送する。


【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００４１
【補正方法】変更
【補正の内容】
【００４１】
第７の通信システムによれば、機器が動作して通信可能なことが端末からサーバに接続要求があった際に直ちに確認できるため、通信不可能な場合に端末に対する拒否の応答が高速に出来、また機器のＩＰアドレスがＩＳＰによって動的に割り当てられており、かつ機器の電源断などにより、サーバに登録された機器のＩＰアドレスが既に関係無い別の機器に割り当てられた場合でも、誤って関係の無い別の機器に接続要求を行うことを回避できる。さらに本発明によれば、通知パケットを第１および第２の通知パケットの２種類に区別し、最終アクセス時間更新を第１の通知パケット受信時に限ることで、ＮＡＴルータが接続要求パケットを通知パケットの応答とみなす時間が短いために通知パケットの送信頻度を高くしなければならない場合でも、サーバにとって負荷の高い最終アクセス時間更新の頻度を高くしなくても良い効果がある。