JP4908591B2 - How to generate privacy addresses efficiently - Google Patents

How to generate privacy addresses efficiently Download PDF

Info

Publication number
JP4908591B2
JP4908591B2 JP2009530549A JP2009530549A JP4908591B2 JP 4908591 B2 JP4908591 B2 JP 4908591B2 JP 2009530549 A JP2009530549 A JP 2009530549A JP 2009530549 A JP2009530549 A JP 2009530549A JP 4908591 B2 JP4908591 B2 JP 4908591B2
Authority
JP
Japan
Prior art keywords
address
application
privacy
processor
privacy address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2009530549A
Other languages
Japanese (ja)
Other versions
JP2010504720A (en
Inventor
リオイ、マルセロ
トリマイン、マイケル・シー.
バッバー、アッピンダー・シング
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2010504720A publication Critical patent/JP2010504720A/en
Application granted granted Critical
Publication of JP4908591B2 publication Critical patent/JP4908591B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/26Network addressing or numbering for mobility support
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5092Address allocation by self-assignment, e.g. picking addresses at random and testing if they are already in use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/659Internet protocol version 6 [IPv6] addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Description

米国特許法第119条による優先権の主張Priority claim under 35 USC 119

本特許出願は、2006年9月25日に出願され、”METHOD OF EFFICIENTLY GENERATING PRIVACY ADDRESSES(プライバシーアドレスを効率的に生成する方法)”と題され、その全体が参照することによって本明細書に明白に組み込まれる、米国仮特許出願第60/826,895号の優先権を主張する。   This patent application was filed on September 25, 2006 and is entitled “METHOD OF EFFICIENTLY GENERATING PRIVACY ADDRESSES”, which is expressly incorporated herein by reference in its entirety. US Provisional Patent Application No. 60 / 826,895, incorporated herein by reference.

本発明は一般に、ネットワーク通信に関し、特に、IPv6プライバシーアドレスを生成する技法に関する。   The present invention relates generally to network communications, and more particularly to techniques for generating IPv6 privacy addresses.

インターネットプロトコル(IP)ネットワークにおいて、ホストはルータを介して別のホストと通信する。本明細書において、「IP」は一般的に、あらゆるバージョンのインターネットプロトコルをいう。IPの用語で、「ノード」はIPを導入する装置であり、「ルータ」はそれ自身に明示的にアドレス指定されていないIPパケットを転送するノードであり、「ホスト」はルータではないノードをいう。ホストは、リンクへの1つ又は複数のインタフェースを有し得る。IPの用語で、「リンク」は、ノードがリンク層(これはIP層のすぐ下位の層である)で通信するのに介する通信機器又は通信媒体であり、「インタフェース」はリンクへのノードの結合である。インタフェースはネットワーク通信ポートとしてみなされてもよい。各インタフェースは、当該インタフェースを一意に識別する1つ又は複数のIPアドレスと関連付けられる。   In an Internet Protocol (IP) network, a host communicates with another host through a router. As used herein, “IP” generally refers to any version of the Internet protocol. In IP terms, “node” is a device that introduces IP, “router” is a node that forwards IP packets that are not explicitly addressed to itself, and “host” is a node that is not a router. Say. A host may have one or more interfaces to the link. In IP terminology, a “link” is a communication device or medium through which a node communicates at the link layer (which is immediately below the IP layer), and an “interface” is the node's to link It is a bond. The interface may be viewed as a network communication port. Each interface is associated with one or more IP addresses that uniquely identify the interface.

インターネットプロトコルバージョン6(IPv6)は、広く用いられているインターネットプロトコルバージョン4(IPv4)に代わる予定とされるインターネットプロトコルの一つのバージョンである。IPv6は、IPv4の幾つかの重要な制限を解決する。例えば、IPv4は、インターネットに接続される機械を一意に識別するための充分な数のアドレスを提供すると本来考えられた32ビットのアドレスを利用する。しかしながら、インターネットの爆発的な成長は、IPv4アドレスが枯渇する現実的なリスクを生み出した。IPv6は、この懸念を128ビットのアドレスを利用することによって改善する。   Internet Protocol version 6 (IPv6) is one version of the Internet protocol that is planned to replace the widely used Internet protocol version 4 (IPv4). IPv6 solves some important limitations of IPv4. For example, IPv4 utilizes a 32-bit address that was originally thought to provide a sufficient number of addresses to uniquely identify machines connected to the Internet. However, the explosive growth of the Internet has created a real risk of exhausting IPv4 addresses. IPv6 remedies this concern by utilizing 128-bit addresses.

IPv6はまた、IPv4に対して他の改善点も提供する。例えば、IPv6は、ステートレスアドレス自動設定(stateless address autoconfiguration)をサポートするが、これはホストがそれ自身のIPv6アドレスを自動的に設定することを可能にする処理である。ステートレスアドレス設定は、各ホストを、そのホストのネットワークへの接続の前に手動で設定する必要を回避し、専用のサーバが、当該ネットワーク上のホストに対するアドレスの割り当て及び管理を行う必要を除去し、また、当該ネットワーク上のホストのアドレスの番号を付け替えることを容易にすることができる。   IPv6 also provides other improvements over IPv4. For example, IPv6 supports stateless address autoconfiguration, which is a process that allows a host to automatically configure its own IPv6 address. Stateless addressing avoids the need to manually configure each host before connecting it to the network, eliminating the need for a dedicated server to assign and manage addresses for hosts on that network. In addition, it is possible to easily change the address number of the host on the network.

IPv6のステートレスアドレス設定は、RFC3041-Privacy Extensions for Stateless Address Autoconfiguration in IPv6に定義されるように、ノードが「プライバシーアドレス」を生成することを可能にする。これは、ノードがそれらのIPアドレスを周期的に変更することで、IPv6インターネット内におけるそれらの移動を隠すことを可能にする。これは、ランダムなインタフェースID(「IID」)を生成し、それを現在のアクセスルータのネットワークプレフィックスに関連付けることによって達成される。ノードがブロードキャストネットワーク上にあるとき、新たに生成されたIIDを用いるノードが他に存在しないことを確認することが必要である。本明細書において、「ブロードキャストネットワーク」とは、802.3といったブロードキャストメディアに接続されるネットワークをいう。ブロードキャストノードのプライバシーアドレスを用いるノードが他には無いことを確認する処理は、重複アドレス検出(Duplicate Address Detection)(DAD)と称される。IIDを生成及び確認する処理は時間を要し、プライバシーアドレスを要求するノードは、ノードがアドレスを用いることができる前に、アドレスが生成され、確認され、また最終的に割り当てられるまで待機することを要求される。この処理によって導入される待ち時間は望ましくない。必要とされるのは、ブロードキャストネットワーク上にあるときに、IPv6のプライバシーアドレスを生成及び管理する効率的なシステムである。   IPv6 stateless address configuration allows a node to generate a “privacy address” as defined in RFC3041-Privacy Extensions for Stateless Address Autoconfiguration in IPv6. This allows nodes to hide their movement within the IPv6 Internet by periodically changing their IP addresses. This is accomplished by generating a random interface ID (“IID”) and associating it with the network prefix of the current access router. When the node is on the broadcast network, it is necessary to make sure that no other node uses the newly generated IID. In this specification, “broadcast network” refers to a network connected to broadcast media such as 802.3. The process of confirming that there is no other node that uses the privacy address of the broadcast node is called duplicate address detection (DAD). The process of generating and verifying an IID is time consuming, and a node requesting a privacy address waits for the address to be generated, verified, and finally assigned before the node can use the address. As required. The latency introduced by this process is undesirable. What is needed is an efficient system for generating and managing IPv6 privacy addresses when on a broadcast network.

概要Overview

種々の実施形態は、プライバシーアドレスの生成に関連付けられる待ち時間の問題を、アプリケーションによって要求されるとすぐに使用のために確認及び格納される、少なくとも1つの付加的なプライベートIID又はアドレスを生成することで解決する。別のプライベートIID又はアドレスは、アプリケーション又はノードにプライベートアドレスが割り当てられたときはいつでも生成されることができる。プライベートアドレスのためのデプリケーションタイマ(deprecation timers)は、アプリケーションがアドレスをバインドするときのみ開始される。   Various embodiments generate at least one additional private IID or address that is checked and stored for use as soon as requested by the application for latency issues associated with the generation of privacy addresses. It will be solved. Another private IID or address can be generated whenever a private address is assigned to an application or node. Deprecation timers for private addresses are started only when an application binds an address.

種々の実施形態は、共有アドレスを要求する如何なる数のアプリケーションにも割り当てることができる共有アドレスのみならず、単独のアプリケーションのみに割り当てられ、一つよりも多くのアプリケーションによってバインドされることができない、一意のアドレスも提供する。実施形態は、非推奨アドレス(deprecated address)を、当該アドレスが使用されている期間は削除しないことによってトラヒックフローの中断を最小限に抑える。   Various embodiments can be assigned not only to a shared address that can be assigned to any number of applications that require a shared address, but also to a single application and cannot be bound by more than one application. It also provides a unique address. Embodiments minimize traffic flow interruptions by not deleting a deprecated address during the period in which the address is used.

プライバシーアドレスを生成する方法は、特にモバイルハンドセットを含む、任意のコンピューティングデバイスに導入し得る。   The method for generating a privacy address may be deployed on any computing device, particularly including mobile handsets.

図1は、アプリケーションに対してプライベートアドレスの生成及び割り当てを行う種々の実施形態の概要を提供する処理フロー図である。FIG. 1 is a process flow diagram that provides an overview of various embodiments for creating and assigning private addresses to an application. 図2は、一実施形態に係るプライベートアドレスのためのデプリケーションタイマの初期化の概要を提供する処理フロー図である。FIG. 2 is a process flow diagram that provides an overview of initialization of a depletion timer for a private address according to one embodiment. 図3は、種々の実施形態のうちの一つを実施する装置の動作期間中の種々のIIDの取り得る状態を例証する状態機械図である。FIG. 3 is a state machine diagram illustrating the possible states of various IIDs during operation of an apparatus implementing one of the various embodiments. 図4は、IIDを生成する実施形態の方法の処理フロー図である。FIG. 4 is a process flow diagram of an embodiment method for generating an IID. 図5は、アプリケーション要求によってトリガされるプライベートアドレスを割り当てる実施形態の方法の処理フロー図である。FIG. 5 is a process flow diagram of an embodiment method for assigning private addresses triggered by application requests. 図6は、重複アドレス検出処理の期間にプライベートIIDを管理する実施形態の方法の処理フロー図である。FIG. 6 is a process flow diagram of a method of an embodiment for managing private IIDs during the duplicate address detection process. 図7は、未解決のアプリケーション要求にサービスする実施形態の方法の処理フロー図である。FIG. 7 is a process flow diagram of an embodiment method for servicing outstanding application requests. 図8は、セッション確立時にプライベートIIDを生成する実施形態の方法の処理フロー図である。FIG. 8 is a process flow diagram of an embodiment method for generating a private IID upon session establishment. 図9は、プライベートIIDを生成する別の実施形態の方法の処理フロー図である。FIG. 9 is a process flow diagram of another embodiment method for generating a private IID. 図10は、種々の実施形態を実施するのに適当なモバイルハンドセットのコンポーネントブロック図である。FIG. 10 is a component block diagram of a mobile handset suitable for implementing various embodiments.

詳細な説明Detailed description

本発明の特徴及び本質は、以下に述べられる詳細な説明を、同様の符号は全体を通して同様に識別する図面と共に考慮することで、より明らかになるであろう。   The features and nature of the present invention will become more apparent from the detailed description set forth below when taken in conjunction with the drawings in which like numerals identify like elements throughout.

種々の実施形態は、添付の図面を参照しつつ詳細に記載されるであろう。可能な限り、同一の参照番号は、図面全体を通して同一又は同様の部分を参照するために用いられるであろう。   Various embodiments will be described in detail with reference to the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts.

RFC-3041-Privacy Extensions for Stateless Address Autoconfiguration in IPv6に記載されるように、これはその全体が参照することによって組み込まれるが、インターネットユーザによっては、IPアドレスが盗聴者及びデータマイナ(data miners)によってモニタされ得るという可能性に関してプライバシーについての懸念を有するかもしれない。特定のインタフェース(例えば、携帯電話、ラップトップ型コンピュータ、パーソナルデータアシスタント(PDA)及び携帯可能な電子メール受信機)によって用いられるIPアドレスをトラッキングすることによって、通信がそれ自体暗号化されている場合でも、データマイナがユーザのインターネット通信及び動向をトラッキングすることが可能になり得る。これらの懸念は、ランダムな方法で生成され、周期的に変更されるIPアドレスを用いることで解決することができ、これによって、特定のノード(例えば、ユーザモバイルハンドセット又はラップトップ型コンピュータ)のIPアドレスをトラッキングする問題を困難にする。   This is incorporated by reference in its entirety, as described in RFC-3041-Privacy Extensions for Stateless Address Autoconfiguration in IPv6, but for some Internet users, the IP address is set by eavesdroppers and data miners. You may have privacy concerns regarding the possibility of being monitored. If the communication is itself encrypted by tracking the IP address used by a specific interface (eg, mobile phone, laptop computer, personal data assistant (PDA) and portable email receiver) However, it may be possible for a data minor to track a user's Internet communications and trends. These concerns can be solved by using IP addresses that are generated in a random manner and that are periodically changed, which allows the IP of a particular node (eg, a user mobile handset or laptop computer). Makes the problem of tracking addresses difficult.

セルラー式のモバイルハンドセット(例えば、多機能携帯電話)は、プライベートIPアドレスを採用して、電子メール及びインターネット接続サービスへのデータリンク接続と同様、携帯電話ノードへの接続を確立及び管理する。呼が発呼され、各セルラーノードハンドオフを用いると、新たなIPアドレスをモバイルハンドセットに用いることができる。同様に、電子メールメッセージが送信されるべきとき、又は無線データリンクを介してインターネットへのアクセスが要求されるとき、IPアドレスは、モバイルハンドセットによって生成されるか、モバイルハンドセットに割り当てられる。IPv6の下では、データマイニングツールが個人のロケーション及び電話の利用を簡単にトラッキングできないようにできるように、IPアドレスを非公開に(private)できる。   Cellular mobile handsets (eg, multi-function mobile phones) employ private IP addresses to establish and manage connections to mobile phone nodes as well as data link connections to e-mail and Internet connection services. When a call is placed and each cellular node handoff is used, a new IP address can be used for the mobile handset. Similarly, an IP address is generated by or assigned to a mobile handset when an email message is to be sent or when access to the Internet is requested via a wireless data link. Under IPv6, IP addresses can be private so that data mining tools cannot easily track individual locations and phone usage.

上述したように、IPv6のIPアドレスは128ビット長であり、64ビットのプレフィックスと64ビットのIIDとを含む。大抵の状況において、プレフィックスは、装置が接続しているルータによって供給又は固定される。従って、プライベートIPアドレスを生成するために、システムは、公知のプレフィックスと結合されるランダム且つ非冗長的なIIDを生成しさえすればよい。IIDとプレフィックスとのこの結合を為すことによるIPアドレスの生成は、一般的にシステムによって達成される(種々の実施形態はまた、IIDの受信時にアドレスを生成するアプリケーションにおける実施においても有用であろうが)。   As described above, the IPv6 IP address is 128 bits long and includes a 64-bit prefix and a 64-bit IID. In most situations, the prefix is supplied or fixed by the router to which the device is connected. Thus, to generate a private IP address, the system need only generate a random and non-redundant IID combined with a known prefix. Generation of an IP address by making this combination of IID and prefix is generally accomplished by the system (various embodiments may also be useful in implementations in applications that generate addresses upon receipt of an IID. But).

種々の実施形態において、アプリケーションがIPアドレスを要求したとき(即ち、アドレスがアプリケーションに割り当てられる直前に)、システムは新たなアドレスを予め確認されたIIDをプレフィックスと結合することによって生成し得る。あるいは、システムはIIDが生成及び確認された(ブロードキャストアドレスについて)ときにアドレスを生成してもよく、アドレスはアプリケーションによって要求されるまで、メモリ又はバッファに格納される。換言すれば、種々の実施又は実施形態において、プレフィックスは、64ビットの乱数の生成後のいつでもプライベートIIDと結合されることができる。従って、システムの実施形態は、本明細書に記載される方法に従って、IID又はアドレスを管理することができる。このため、当業者によって理解されるように、本明細書における「IPアドレス」、「アドレス」及び「IID」への言及は、文脈によっては互換的であり得る。更に、「アドレス」への言及は、システムがIIDを生成又は格納し得る文脈においては、プレフィックスとIIDとの結合についてのみ言及すること、又はIIDを除外することを意図するものではない。同様に、「IID」への言及は、システムがアドレスを生成、格納又は割り当てを行い得る文脈において、必ずしもアドレス(即ち、IIDとプレフィックスとの結合)を除外することを意図するものではない。また、IPアドレスを形成するためのプレフィックスとIIDとの結合は、実施形態の処理における特定の時点で完全なIPアドレスが生成されるということを意味することを回避すべく、図面には示されていない。   In various embodiments, when an application requests an IP address (ie, just before an address is assigned to an application), the system can generate a new address by combining a pre-identified IID with a prefix. Alternatively, the system may generate an address when the IID is generated and confirmed (for a broadcast address) and the address is stored in memory or a buffer until requested by the application. In other words, in various implementations or embodiments, the prefix can be combined with the private IID at any time after generation of a 64-bit random number. Thus, system embodiments can manage IIDs or addresses in accordance with the methods described herein. Thus, as will be appreciated by those skilled in the art, references to “IP address”, “address” and “IID” herein may be interchangeable depending on the context. Furthermore, references to “addresses” are not intended to refer only to the binding of prefixes to IIDs or to exclude IIDs in the context where the system may generate or store IIDs. Similarly, reference to “IID” is not necessarily intended to exclude addresses (ie, bindings of IIDs and prefixes) in contexts where the system may generate, store or assign addresses. Also, the combination of a prefix and IID to form an IP address is shown in the drawings to avoid implying that a complete IP address is generated at a particular point in the processing of the embodiment. Not.

RFC3041に記載されるプロシージャは、高度な無作為性(randomness)を確実にすべく設計されたアルゴリズムに従って、64ビットの乱数を生成することによって生成する。64ビットの乱数は、一時的なIIDとして用いられるが、これはプライベートIPアドレスを作成するために、装置が接続されたノード又はルータのプレフィックスアドレスと結合される。盗聴者及びデータマイナを挫折させるために、RFC3041に記載される一時的なIIDに基づくアドレスは、有効な存続期間(例えば、1週間)、及び、より短い好適な存続期間(例えば、1日)に限定される。RFC3041で構想されるように、有効な存続期間タイマによって測定される、有効な存続期間が終了すると、アドレスは、もはやシステムによって用いられるべきではなく、削除されるべきである。好適な存続期間タイマによって測定される、好適な存続期間が終了すると、アドレスは「デプリケートされた(deprecated)」と称され、アプリケーションに割り当てられるべきではなく、非推奨アドレスを用いるアプリケーションは新たなプライベートアドレスを要求すべきである。アドレスはその好適な存続期間タイマが終了するとデプリケートされる(deprecated)ので、好適な存続期間タイマは、本明細書において一般的に「デプリケーションタイマ(deprecation timer)」と称される。RFC3041は、新たなIIDが作成されるとき、又は当該新たなIIDに基づいたアドレスが生成されるときに、有効なデプリケーションタイマの開始を要請する。ブロードキャストネットワークに接続された装置、即ち、802.3といったブロードキャストメディアに接続されたネットワークは、ネットワークがパケットの目的地及びソースを知るために、一意のIPアドレスを有さなければならない。それ故に、ブロードキャスト環境(context)における使用のために生成されるIIDは、ブロードキャストネットワーク上の他のノードが同一のIIDを用いていないことを確認するDAD処理を用いて検査される(validated)。DAD処理は完了するのに時間を要するため、RFC3041は、現在のIIDの好適な存続期間が終了する少し(例えば、5秒)前に新たなIIDを生成することを要請する。   The procedure described in RFC3041 is generated by generating a 64-bit random number according to an algorithm designed to ensure a high degree of randomness. A 64-bit random number is used as a temporary IID, which is combined with the prefix address of the node or router to which the device is connected to create a private IP address. To frustrate eavesdroppers and data minors, the temporary IID-based address described in RFC3041 has a valid lifetime (eg, 1 week) and a shorter preferred duration (eg, 1 day). It is limited to. As envisioned in RFC 3041, when a valid lifetime, as measured by a valid lifetime timer, expires, the address should no longer be used by the system and should be deleted. At the end of the preferred lifetime, as measured by the preferred lifetime timer, the address is said to be “deprecated” and should not be assigned to the application, and applications using deprecated addresses will become new private An address should be requested. Since the address is deprecated when its preferred lifetime timer expires, the preferred lifetime timer is generally referred to herein as a “deprecation timer”. RFC3041 requests the start of a valid deprecation timer when a new IID is created or when an address based on the new IID is generated. Devices connected to a broadcast network, ie, a network connected to broadcast media such as 802.3, must have a unique IP address in order for the network to know the destination and source of the packet. Therefore, the IID generated for use in the broadcast context is validated using a DAD process that confirms that no other node on the broadcast network is using the same IID. Because DAD processing takes time to complete, RFC 3041 requests that a new IID be generated shortly before the preferred lifetime of the current IID ends (eg, 5 seconds).

RFC3041に明記されるプロシージャは、多くの固定されたコンピュータアプリケーション又は携帯用のコンピュータアプリケーションにとって満足なものであり得る一方で、プロシージャはユーザの体験に、特に携帯電話型のモバイルハンドセットのとの関連で影響を与え得る制限を有する。ユーザは通常、彼らのモバイルハンドセットを常に携帯するので、プライバシーへの懸念は増大する。モバイルハンドセットで用いられるアドレスが、RFC3041で予期されるような存続期間(即ち、1日から1週間)を有する場合、データマイナはユーザのネットワーク利用及び位置を1日中又はまる1週間トラッキングし得る。従って、RFC3041で予期されるIIDベースのアドレスの存続期間は、多くのモバイルハンドセットユーザに対して充分な匿名性を供給しないであろう。モバイルハンドセットは、呼ごと、また潜在的にはセルノードハンドオーバごとに新たなIIDに基づいた新たなアドレスを用いることができる。モバイルハンドセットからの通話及びデータコールは、短いことも長いこともあり、いつでも確立され得るので、RFC3041では予期されていない、頻繁な且つ予測不可能な基準でプライベートアドレスを生成する方法の必要性がある。   While the procedure specified in RFC3041 may be satisfactory for many fixed or portable computer applications, the procedure is relevant to the user experience, particularly in the context of mobile phone-type mobile handsets. Has limitations that can affect it. Since users usually always carry their mobile handsets, privacy concerns increase. If the address used on the mobile handset has a lifetime (ie 1 day to 1 week) as expected in RFC 3041, the data minor can track the user's network usage and location throughout the day or for a whole week. . Thus, the expected duration of IID-based addresses in RFC 3041 will not provide sufficient anonymity for many mobile handset users. The mobile handset can use a new address based on the new IID for each call and potentially for each cell node handover. Since calls and data calls from mobile handsets can be short or long and can be established at any time, there is a need for a method of generating private addresses on a frequent and unpredictable basis that is not expected by RFC3041. is there.

現代のモバイルハンドセットは、同時に実行される多数のアプリケーションを有することができ、また多数のインタフェースを採用することができる。従って、モバイルハンドセットは多数のアドレスを、従って多数のIIDを要求し得る。一部のアプリケーションは、IIDベースのアドレスを共有することができ得るが、携帯電話通信及び無線インターネット通信といった、他のアプリケーションは、専用の且つ全世界的に一意なIPアドレスを要求する。しかしながら、RFC3041は、装置について単一のIPアドレスのみを生成することを予期している。従って、多様なインタフェース及びアプリケーションに対して多様なアドレスを生成し、また割り当てる方法への必要性がある。   Modern mobile handsets can have multiple applications running simultaneously and can employ multiple interfaces. Thus, a mobile handset can request multiple addresses and thus multiple IIDs. Some applications may be able to share IID-based addresses, while other applications such as mobile phone communications and wireless Internet communications require dedicated and globally unique IP addresses. However, RFC 3041 expects to generate only a single IP address for the device. Accordingly, there is a need for a method for generating and assigning various addresses for various interfaces and applications.

モバイルハンドセットの通常の動作においては、RFC3041に明示されるプロシージャよりも、IIDの乱数を生成する、より多くのランダムなシード値を供給する特性及び信号強度に関連付けられる種々の一意に変化する値がある。従って、モバイルハンドセットは、より高いレベルの無作為性を提供する一方で、より少ないステップ又はメモリを伴う異なるアルゴリズムを用い得る。   In normal operation of a mobile handset, there are a variety of uniquely changing values associated with the characteristics and signal strength that generate more random seed values to generate IID random numbers than the procedure specified in RFC3041. is there. Thus, mobile handsets may use different algorithms with fewer steps or memory while providing a higher level of randomness.

モバイルアプリケーションにおいて、IIDは、接続されるブロードキャストネットワークルータの64ビットのネットワークプレフィックスと結合されて、128ビットのIPv6アドレスを作成する、64ビットの乱数である。従って、一意のIPアドレスを確実にするために、DAD(重複アドレス検出)ルーチンが実行されて、通信ノード又はルータに接続された装置で同一のIID又はアドレスを用いているものは無いことを確認する。DAD処理は、通常、提案されたアドレスをブロードキャストし、他の装置が既に当該アドレスを用いているか照会することを伴う。しかしながら、この処理は完了するのに時間を要し、これは呼の確立、電子メールの送信、又はインターネットコンテンツの受信における遅延といった、ユーザ体験上の問題という結果を招き得る。   In mobile applications, the IID is a 64-bit random number that is combined with the 64-bit network prefix of the connected broadcast network router to create a 128-bit IPv6 address. Therefore, to ensure a unique IP address, a DAD (Duplicate Address Detection) routine is executed to confirm that no device connected to the communication node or router uses the same IID or address. To do. DAD processing usually involves broadcasting a proposed address and inquiring if other devices are already using that address. However, this process takes time to complete, which can result in user experience issues such as delays in establishing calls, sending emails, or receiving Internet content.

これらの制限を克服すべく、種々の実施形態は、プライベートアドレスを生成し、割り当て、また制御する、改良された方法を提供する。これらの改良点は、予め検査されたIID又はアドレスが大抵の状況において容易に利用可能であるように、アドレスがアプリケーションによって要求される前に、IID又はアドレスを生成及び確認することを含む。この能力を可能にするために、モバイルハンドセットといった装置が初期化されるとき、又は、(例えば、ルータ広告(router advertisement)を受信したときに)データセッションが特定のインタフェースについて確立されるときに、IID又はアドレスが生成され、バッファ又はメモリに格納され得る。次いで、アプリケーションがアドレスを要求し、アドレスが割り当てられるときはいつでも、置換のIIDが迅速に生成されるが、これは格納されてもよいし、一部の実施形態においては、格納されるアドレスを作成するために用いられてもよい。IIDは予め生成及び検査されるので、特定のIID又はアドレスに関連付けられたデプリケーションタイマは、要求しているアプリケーションが実際にアドレスをバインドするまでは、開始されない。これは、バッファ又はメモリに格納されたアドレス又はIIDが、これらが用いられる前には失効せず、短期間のIID又はアドレスの存続期間の使用を可能にすることを確実にする。また、種々の実施形態は、多数のアプリケーションによって共有されることができるアドレス、及び特定のアプリケーションに対して一意であるアドレスを提供する。   In order to overcome these limitations, the various embodiments provide an improved method of creating, assigning, and controlling private addresses. These improvements include generating and verifying the IID or address before the address is requested by the application so that the pre-tested IID or address is readily available in most situations. To enable this capability, when a device such as a mobile handset is initialized, or when a data session is established for a particular interface (eg, when a router advertisement is received) An IID or address can be generated and stored in a buffer or memory. Then, whenever an application requests an address and an address is assigned, a replacement IID is quickly generated, which may be stored, and in some embodiments, the stored address. It may be used to create. Since the IID is generated and checked in advance, the depletion timer associated with a particular IID or address is not started until the requesting application actually binds the address. This ensures that the addresses or IIDs stored in the buffer or memory do not expire before they are used and allow the use of a short duration IID or address lifetime. Various embodiments also provide addresses that can be shared by multiple applications and addresses that are unique to a particular application.

IPアドレスを割り当てる際、実施形態のシステムは、要求しているアプリケーションがアドレスをバインドするかどうかのトラッキングをすることができる。例えば、システムは、アドレスがアプリケーションに割り当てられるときに開始され、2分間といった、前もって設定された時間まで、又は、アプリケーションがアドレスをソケットにバインドするまでカウントダウンするタイマを備え得る。要求しているアプリケーションが、割り当てられたアドレスを前もって設定された時間(例えば、2分間)内にバインドしない場合、アプリケーションはそのアドレスを用いないということが推定でき、また、アドレスは削除されてもよく、アプリケーションは当該アドレスが最早有効ではないことを知らされる。この能力は、アプリケーションが不必要にリソースを消費することを防止する。   When assigning an IP address, the system of the embodiment can track whether the requesting application binds the address. For example, the system may include a timer that starts when an address is assigned to an application and counts down to a preset time, such as 2 minutes, or until the application binds an address to a socket. If the requesting application does not bind the assigned address within a pre-set time (eg 2 minutes), it can be assumed that the application will not use that address, and if the address is deleted Often, the application is informed that the address is no longer valid. This capability prevents the application from consuming resources unnecessarily.

実施形態のシステムはまた、割り当てられたアドレス(又はIID)を、本明細書において参照カウント(”Ref_cnt”)と称されるものを用いて各アドレスにバインドされたアプリケーションの数をカウントすることによって、トラッキングし得る。一つのアプリケーションが、あるアドレスにバインドする場合、当該アドレスの参照カウントは1である。二つのアプリケーションが、あるアドレスを共有し、双方が当該アドレスにバインドする場合、参照カウントは2である。アプリケーションが、あるアドレスからアンバインドする(unbinds)する場合、参照カウントは1だけ減少される。アプリケーションが一意のアドレスをアンバインドする場合、参照カウントはゼロにデクリメントされるが、これはシステムに対して当該アドレスが削除されるべきことを指示する。同様に、参照カウントは非推奨の共有アドレスを削除できるときを判定するのに用いられる。具体的には、非推奨アドレスは参照カウントがゼロに等しくなるまで削除されない。従って、システムは、共有アドレスを、一旦そのデプリケーションタイマが終了すると、アプリケーションに割り当てないであろうが、それはその参照カウントがゼロに等しくなり、当該アドレスを現在用いているアプリケーションが無いことが示されるまで、非推奨アドレスを削除しないであろう。この方法の有意な利点は、それがトラヒックフローの中断を、非推奨アドレスを当該アドレスが使用中の期間は削除しないことによって、最小限にすることである。参照カウントはまた、システムリソースを解放することができるか判定するためにシステムによって用いられることができる。   The system of the embodiment also counts the number of applications bound to each address using what is referred to herein as a reference count ("Ref_cnt"), the assigned address (or IID). Can track. When one application binds to an address, the reference count of the address is 1. If two applications share an address and both bind to that address, the reference count is 2. If the application unbinds from an address, the reference count is decremented by one. If the application unbinds a unique address, the reference count is decremented to zero, which indicates to the system that the address should be deleted. Similarly, the reference count is used to determine when a deprecated shared address can be deleted. Specifically, deprecated addresses are not deleted until the reference count is equal to zero. Thus, the system will not assign a shared address to an application once its deprecation timer expires, but it has its reference count equal to zero, indicating that no application is currently using that address. Will not delete deprecated addresses until A significant advantage of this method is that it minimizes the interruption of traffic flow by not deleting the deprecated address during the period in which the address is in use. The reference count can also be used by the system to determine if system resources can be released.

図1は、種々の実施形態の概要の方法を示す。実施形態の方法は、アプリケーション開発ツールキット、ランタイム環境、又はオペレーティングシステム内のサポートアプリケーション若しくはアプリケーションプログラムインタフェース、サブルーチンとして実施され得る。例えば、ステップ102で、有効なルータ広告(router advertisement)(RA)が受信されたとき、又はアプリケーションがIPv6のプライバシーアドレスを要求するとき、ステップ100で、該方法は起動され得る。実施中のソフトウェアは最初に、テスト104で、余分なIID又はプライバシーアドレスがメモリに格納されているか判定するチェックをし得る。余分なIID又はアドレスがメモリにある場合、テスト106で、要求のタイプがテストされて、アプリケーションがアドレスを要求していないか判定され得るが、この場合、ルーチンはステップ108で終了する。アプリケーションがIID生成処理を開始していない場合、これは処理がルータ広告によって自主的に(autonomously)生成されたことを意味するが、ここで、メモリに格納された一つの余分なアドレスがある限り、処理はそれ以上する必要がない。要求がアプリケーションからである場合(即ち、テスト106=「Yes」)、ステップ110で、アプリケーションに必要なアドレスのタイプ(一意又は共有)が確保される。次いで、ステップ112で、メモリに格納された種々の乱数(例えば、リンク管理に関連する値)をシード値として用いて64ビットの乱数を生成すること等によって、IIDが生成される。テスト114で、アドレスが生成されつつあるインタフェースがブロードキャストインタフェース(即ち、802.3といった、ブロードキャストメディアに接続されたインタフェース)であろう場合、ステップ116で、DADルーチンが開始されるであろう。このルーチンの一部として、アプリケーションは、アドレスはそれが確認されたときに供給されるであろうことを知らされ得る。   FIG. 1 illustrates an overview method of various embodiments. The method of an embodiment may be implemented as an application development toolkit, runtime environment, or supporting application or application program interface, subroutine within an operating system. For example, the method may be invoked at step 100 when a valid router advertisement (RA) is received at step 102 or when an application requests an IPv6 privacy address. The running software may first check at test 104 to determine if an extra IID or privacy address is stored in memory. If there is an extra IID or address in memory, test 106 may test the type of request to determine if the application is not requesting an address, in which case the routine ends at step 108. If the application has not started the IID generation process, this means that the process has been generated autonomously by router advertisement, as long as there is one extra address stored in memory. No further processing is required. If the request is from an application (ie, test 106 = “Yes”), at step 110, the type of address required for the application (unique or shared) is reserved. Next, at step 112, an IID is generated, such as by generating a 64-bit random number using various random numbers stored in the memory (eg, values related to link management) as seed values. If at test 114 the interface for which the address is being generated would be a broadcast interface (ie, an interface connected to broadcast media, such as 802.3), at step 116, the DAD routine would be initiated. As part of this routine, the application can be informed that the address will be supplied when it is confirmed.

DAD処理116において、提案されたIID(又はアドレスそれ自体)はネットワーク上の他のノードにブロードキャストされて、他の装置が同一のIID値又はアドレスを用いているか判定する。この処理の結果は、DADが成功した(即ち、IID又はアドレスを用いている他の装置は無いと処理が判定した)か否か(即ち、提案されたIIDは重複すると処理が判定した)を示す値になるであろう。テスト118で、DAD処理が成功しない場合、テスト124で、ルーチンは、IIDを生成する所定の再試行の回数を超えたかどうかをテストし得る。このテストは、適当な時間内に非冗長的なIIDを取得することを除外し得る誤り状態を検出するために提供される。所定の再試行の回数を超える場合、ステップ126で、誤りメッセージがアプリケーションに供給されてもよく、ルーチンは終了する。所定の回数の再試行を超えていない場合、ステップ112で、別のIIDが生成され、IIDがDAD処理を首尾よく完了するまで、処理は上述したように継続する。   In the DAD process 116, the proposed IID (or address itself) is broadcast to other nodes on the network to determine if other devices are using the same IID value or address. The result of this process is whether the DAD was successful (ie, the process has determined that there is no other device using the IID or address) (ie, the process has determined that the proposed IID is duplicated). Will be the value shown. If the DAD process is not successful at test 118, at test 124, the routine may test whether a predetermined number of retries to generate the IID has been exceeded. This test is provided to detect error conditions that may preclude obtaining a non-redundant IID within a reasonable time. If the predetermined number of retries is exceeded, an error message may be provided to the application at step 126 and the routine ends. If the predetermined number of retries has not been exceeded, at step 112, another IID is generated and the process continues as described above until the IID successfully completes the DAD process.

IID又はアドレスがブロードキャストインタフェースに向けられていない場合(即ち、テスト114=「No」)、又はDAD処理が成功である場合(即ち、テスト118=「Yes」)、テスト120で、処理は最初のIID又はアドレスが生成されつつあるかどうかテストし得るが、これは使用可能な余分なIID又はアドレスが無い場合に起こり得る。処理が最初のプライバシーアドレスを作成していない場合、ステップ122で、IIDは返され、メモリに格納されるか、プレフィックスと結合されて、アプリケーションに割り当てられるアドレスを形成し、ルーチンは終了する。ルーチンが最初のプライバシーアドレスを作成している場合(即ち、テスト120=「Yes」)、処理はテスト106から始めて繰り返され、第2のIIDが生成される。この第2のIIDは次いで、次のアドレスへの要求に応答して用いるためにメモリ又はバッファに格納される(又は、メモリ又はバッファに格納されるアドレスを作成するために使用される)ことができる。   If the IID or address is not directed to the broadcast interface (ie, test 114 = “No”), or if the DAD process is successful (ie, test 118 = “Yes”), at test 120, the process is the first You can test whether an IID or address is being generated, but this can happen if there are no extra IIDs or addresses available. If the process has not created the first privacy address, at step 122, the IID is returned and stored in memory or combined with the prefix to form the address assigned to the application, and the routine ends. If the routine is creating the first privacy address (ie, test 120 = “Yes”), the process is repeated starting with test 106 to generate a second IID. This second IID can then be stored in a memory or buffer for use in response to a request for the next address (or used to create an address stored in the memory or buffer). it can.

テスト104に戻り、余分なプライバシーアドレスがメモリに存在しない場合(即ち、テスト104=「No」)、ステップ112で、処理はIIDの生成に直接進み得る。この状態では、最初のプライバシーアドレスを作成するテスト、即ちテスト120は、「Yes」になるであろうし、ルーチンはアドレスがアプリケーションに割り当てられる前に繰りかえされるであろう。この処理は、次のアドレスへの要求に応答して用いる、余分なプライバシーアドレスがメモリ又はバッファで保持されることを確実にする。   Returning to test 104, if there is no extra privacy address in memory (ie, test 104 = “No”), at step 112, processing may proceed directly to generating an IID. In this state, the test that creates the first privacy address, test 120, will be “Yes” and the routine will be repeated before the address is assigned to the application. This process ensures that the extra privacy address used in response to a request for the next address is held in memory or a buffer.

IID又はアドレスが前もって生成されることを可能にするために、アドレスデプリケーションタイマの起動の変更が要求される。RFC3041で構想された方法の下では、好適なデプリケーションタイマは、IIDの作成時、又はアドレスがIIDを用いて生成されるときに開始される。従って、IID又はアドレスがアプリケーション要求に先立って生成される場合、アドレスは、アプリケーションに割り当てられる直前又は直後に終了又はデプリケートし得る。こうしたことが予め生成されたIID又はアドレスについて発生するのを防止するために、種々の実施形態は、好適なデプリケーションタイマを、アプリケーションがアドレスをソケットにバインドする(即ち、アプリケーションがそれを用い始める)まで開始しない。このことは、IID及びアドレスがアプリケーションに割り当てられるときに充分な好適な存続期間が残存するであろうIID及びアドレスの前もった生成を可能にする。   In order to allow the IID or address to be generated in advance, a change in the activation of the address deprecation timer is required. Under the method envisaged in RFC 3041, a suitable deprecation timer is started when an IID is created or when an address is generated using an IID. Thus, if an IID or address is generated prior to an application request, the address may terminate or replicate just before or after being assigned to the application. In order to prevent this from happening for pre-generated IIDs or addresses, various embodiments provide a suitable deprecation timer and the application binds the address to the socket (ie, the application begins to use it). ) Do not start until. This allows for the prior generation of IIDs and addresses that will leave a sufficient preferred lifetime when IIDs and addresses are assigned to applications.

好適な実施形態において、システムは、アプリケーションにアドレスがデプリケートされたことを知らせることによって好適な存続期間のデプリケーションタイマに対して影響を及ぼすだけである。有効な存続期間タイマは実行されるが、システムはアドレスをその有効な存続期間タイマが終了するときにアドレスを削除する処理を講じない。というのは、これは、VOIP(Voice over IP)及びリアルタイムアプリケーションといった、主要なアプリケーションの望ましくない中断を引き起こし得るからである。共有されるプライベートIIDの場合、好適なデプリケーションタイマは、新たなアプリケーションに特定の共有IIDを割り当てることができる期間を指示する。一旦、好適なタイマが終了すると、アドレスはデプリケーとされたと言われ、新たなアプリケーション要求は新たな共有プライベートIIDベースのアドレスの割り当てをトリガするであろう。また、デプリケートされた共有アドレスを用いるアプリケーションは、アドレスが新たなアドレスを要求できるように通知されるであろう。   In the preferred embodiment, the system only affects the preferred lifetime deprecation timer by informing the application that the address has been replicated. Although a valid lifetime timer is executed, the system does not take action to delete the address when its valid lifetime timer expires. This is because it can cause undesired disruption of key applications such as VOIP (Voice over IP) and real-time applications. In the case of a shared private IID, a suitable deprecation timer indicates the period of time during which a particular shared IID can be assigned to a new application. Once the preferred timer expires, the address is said to be deprecated and a new application request will trigger the assignment of a new shared private IID based address. Also, applications that use a replicated shared address will be notified so that the address can request a new address.

また、種々の実施形態は、一意の且つ共有されるアドレスを供給する。この革新は、多くのアプリケーションがコンフリクト無しにアドレスを容易に共有できる一方で、携帯電話通信及び無線インターネット通信といった、一部のアプリケーションはアドレスを共有できないという事実を認識する。   Various embodiments also provide a unique and shared address. This innovation recognizes the fact that many applications can easily share addresses without conflicts, while some applications such as mobile phone communications and wireless Internet communications cannot share addresses.

共有アドレスは、コンフリクト無しに多様なアプリケーションによって用いられることができる。RFC3041で構想されたデプリケーションタイマは、プライバシーの懸念が存在する限り、共有アドレスが用いられないということを確実にすべく用いられ得る。共有アドレスは、デプリケーションタイマによって判定されるそれらの存続期間を用いてシステムによって制御される。   The shared address can be used by various applications without conflict. The deprecation timer envisioned in RFC 3041 can be used to ensure that shared addresses are not used as long as privacy concerns exist. Shared addresses are controlled by the system using their lifetime determined by a deprecation timer.

一意のアドレスは単一のアプリケーションのみに割り当てられ、当該アプリケーションが当該アドレスを解放するとすぐに、IID及びアドレスは、アドレスが一度のみ用いられるように削除される。これは、最高のプライバシー保護を備える一意のIIDを用いるアプリケーションを提供する。一意のアドレスを要求及び受信するアプリケーションは、システムによる関与無しにアドレスを他のアプリケーションに割り当てることができ、アプリケーションにネットワークデータ接続に対する更なる制御を与える。単一のアプリケーションのみが所与のIIDを一度だけ用いるので、アプリケーションにデプリケーションタイマの終了を通知することは、一意のアドレスを用いれば随意である。通知される場合、アドレスを用いるアプリケーションには、タイマの終了が通知されるのみで、アドレスは削除されない。アドレスの使用の終了はアプリケーションに任される。   A unique address is assigned to only a single application, and as soon as the application releases the address, the IID and address are deleted so that the address is used only once. This provides an application that uses a unique IID with the best privacy protection. Applications that request and receive unique addresses can assign addresses to other applications without involvement by the system, giving applications more control over network data connections. Since only a single application uses a given IID only once, it is optional to use a unique address to notify the application of the end of the deprecation timer. When notified, the application using the address is only notified of the end of the timer, and the address is not deleted. The end of use of the address is left to the application.

IIDベースのアドレスのアプリケーションへの割り当て及びデプリケーションタイマの使用は、図2に示される。ステップ200で、アドレスへの要求がアプリケーションから受信されると、ステップ202で、メモリ中のIIDを用いてアドレスが生成されるか、メモリからアドレスが呼び出され、以下に更に詳述されるようにアプリケーションに割り当てられる。テスト204で、アドレスの取り扱いは、アドレスが共有されるべきか一意であるべきかに依存する。アドレスが共有されるべき場合、ステップ206で、アドレスは、アドレス(アドレスはプレフィックスにIIDを足したものである)をバインドする要求中のアプリケーションに割り当てられる。この時点において、ステップ208で、デプリケーションタイマは共有アドレスについて開始される。他のアプリケーションからの共有アドレスへのその後の要求は、新たなデプリケーションタイマを開始させる必要無しに、第1のアプリケーションによって用いられるのと同一の共有アドレスによって満たすことができる。   The assignment of IID-based addresses to applications and the use of a depletion timer is illustrated in FIG. When a request for an address is received from the application at step 200, an address is generated or recalled from the memory at step 202 using an IID in memory, as described in further detail below. Assigned to the application. In test 204, address handling depends on whether the address should be shared or unique. If the address is to be shared, at step 206, the address is assigned to the requesting application that binds the address (the address is the prefix plus the IID). At this point, in step 208, the depletion timer is started for the shared address. Subsequent requests for shared addresses from other applications can be satisfied by the same shared address used by the first application without having to start a new deprecation timer.

一旦、開始されると、デプリケーションタイマはテスト210でそれが終了するまで継続する。その時点において、ステップ212で、アドレスを用いるアプリケーションは、アドレスがデプリケートされることを通知され、ステップ214で、それを別のアプリケーションに割り当てることができないようにアドレスがデプリケートされる。各アプリケーションがアドレスを解放すると、アドレスの参照カウント(”Ref_cnt”)はデクリメントされる。処理は、テスト216で、非推奨アドレスの参照カウントをモニタし、カウントがゼロに等しくなると、これはアドレスが全てのアプリケーションによって解放されたことを意味するが、ステップ218で非推奨アドレスは削除される。   Once started, the depletion timer continues until it expires at test 210. At that point, in step 212, the application using the address is notified that the address is to be replicated, and in step 214 the address is replicated so that it cannot be assigned to another application. When each application releases the address, the address reference count ("Ref_cnt") is decremented. Processing monitors the deprecated address reference count in test 216, and when the count equals zero, this means that the address has been released by all applications, but in step 218 the deprecated address is deleted. The

要求が一意のアドレスへのものである場合、メモリ中のIIDはプレフィックスと結合されて、1つのアプリケーションのみに割り当てられる一意なアドレスを生成するが、これはステップ220でアドレスをバインドする。アドレスがIIDから前もって形成され、メモリに格納される実施形態において、メモリ中のアドレスは、ステップ220でアドレスをバインドする一つのアプリケーションに割り当てられる。一意のアドレスは、アプリケーションがアドレスを解放し、参照カウント(”Ref_cnt”)をゼロにデクリメントするまで、有効なまま残存し、用いられるであろう。処理は参照カウントをモニタし、テスト228で、参照カウントがゼロに等しくなると、ステップ218で、IID及びアドレスは、再度用いられることができないように削除される。デプリケーションタイマは、ステップ222で、アプリケーションがアドレスをバインドするときに開始され、ステップ224で、デプリケーションタイマが終了するまで実行される。随意であるが、ステップ226で、処理はアプリケーションにアドレスデプリケーションタイマが終了したことを通知してもよい(当該ステップは、一部の実施形態では実施されないので、点線で示されている)。しかしながら、アプリケーションの機能を中断することを妨げるために、アドレスはデプリケーションタイマの終了に基づいてデプリケートされないであろう。アプリケーションは、好適な存続期間タイマが終了したことを通知されたときに新たなアドレスを要求する条件(provisions)を含んでもよいし、そのような通知を無視するようにプログラムされてもよい。   If the request is for a unique address, the IID in memory is combined with the prefix to generate a unique address that is assigned to only one application, which binds the address at step 220. In embodiments where the address is pre-formed from the IID and stored in memory, the address in the memory is assigned to one application that binds the address in step 220. The unique address will remain valid and used until the application releases the address and decrements the reference count ("Ref_cnt") to zero. The process monitors the reference count, and in test 228, if the reference count equals zero, at step 218, the IID and address are deleted so that they cannot be used again. The deprecation timer is started at step 222 when the application binds an address and is executed at step 224 until the depletion timer expires. Optionally, at step 226, the process may notify the application that the address depletion timer has expired (this step is not implemented in some embodiments and is shown as a dotted line). However, to prevent interrupting the application's functionality, the address will not be replicated based on the expiration of the depletion timer. The application may include provisions that require a new address when notified that the preferred lifetime timer has expired, or may be programmed to ignore such notifications.

種々の実施形態の全体的な機能は図3に例証されるが、図3は、IID及びプライバシーアドレスに関する動作の期間中にシステムが取り得る種々の状態を例証する、IIDの状態機械を示す。状態機械は、メモリ又はバッファに格納されるか、割り当てられているプライベートIID又はアドレスが無い状態フリー(Free)300から始まる。この状態は、IIDを生成することができない、ネットワークと接続していない期間の後、又は、IIDが生成される前、装置の起動時に達成され得る。この状態から、プライベートIIDは、図4を参照しつつ以下に記載されるように生成される。装置で実行されているアプリケーションは、ネットワークに接続するためのプライベートアドレスを要求し得る。この要求を受信すると、装置はIIDを生成し、状態機械は、状態C(state C)302に進む。   Although the overall functionality of various embodiments is illustrated in FIG. 3, FIG. 3 illustrates an IID state machine that illustrates the various states that the system can take during operations on IIDs and privacy addresses. The state machine begins with a state free 300 that has no private IID or address stored or allocated in memory or buffer. This state can be achieved at device startup after a period of no connection to the network, where the IID cannot be generated, or before the IID is generated. From this state, the private IID is generated as described below with reference to FIG. An application running on the device may request a private address to connect to the network. Upon receipt of this request, the device generates an IID and the state machine proceeds to state C 302.

C状態302から、要求が、ポイント・ツー・ポイントのネットワーク又は非ブロードキャストネットワーク上、即ち、アドレスを共有できるアプリケーションからである場合、生成されたIIDは使える状態にあり、状態機械は使用可能な状態306に進む。これは、要求しているアプリケーションへの割り当て用のアドレスを作成するためにプライベートIIDが使用可能な状態である。一部の実施形態において、使用可能な(Available)状態306は、プライベートアドレスがIIDから作成され、要求しているアプリケーションへの割り当てに使用可能であることを示し得る。ポイント・ツー・ポイントのネットワークは、プレフィックスが接続ごとに一意であるものである。   From C state 302, if the request is on a point-to-point network or non-broadcast network, i.e. from an application that can share an address, the generated IID is ready and the state machine is ready Proceed to 306. This is a state in which a private IID can be used to create an address for assignment to the requesting application. In some embodiments, the Available state 306 may indicate that a private address is created from the IID and is available for assignment to the requesting application. A point-to-point network is one in which the prefix is unique for each connection.

プレフィックスが、ルータからの他のポイント・ツー・ポイントのリンクで共有される場合、又はアドレス要求がポイント・ツー・ポイントのネットワークではないブロードキャストネットワーク上でなされる場合、装置はDAD処理を開始し、状態機械は試験的な(Tentative)状態304に進む。試験的な状態304において、ネットワークは、IIDが別のノードによって既に使用中のアドレスと重複しないことを確実にすべく、記載されたDAD処理を実行する。このIID状態は、DAD処理が進行している間、IIDを検査する際の遅延を考慮する(account for)ために試験的である。DAD処理が失敗した場合、これは重複するIIDが生成されたことを示すが、状態機械はフリー状態300に、次いで新たなIIDが作成されることができるようにC状態302に戻る。IIDを要求するアプリケーションは、別のIIDを生成し、新たなIIDについてDAD処理を完了させる時間は、アプリケーションに対するアドレスの割り当てを遅延させることがあるので、失敗を通知され得る。共有アドレスへの複数の要求の場合、要求が失敗した場合は、共有アドレスを要求する全てのアプリケーションに通知される必要がある。DAD処理が成功した場合、これはIIDがブロードキャストノード上で冗長的ではないことを示すが、状態機械は試験的な状態304から使用可能な状態306に進むが、これは検査されたブロードキャストIIDが、割り当てられ得るアドレスを生成するのに用いられる準備ができたことを示す。   If the prefix is shared with other point-to-point links from the router, or if the address request is made on a broadcast network that is not a point-to-point network, the device initiates the DAD process; The state machine proceeds to a Tentative state 304. In the trial state 304, the network performs the described DAD process to ensure that the IID does not overlap with an address already in use by another node. This IID state is experimental to account for delays in examining the IID while the DAD process is in progress. If the DAD process fails, this indicates that a duplicate IID has been generated, but the state machine returns to the free state 300 and then back to the C state 302 so that a new IID can be created. An application that requests an IID can be notified of failure because the time to generate another IID and complete the DAD process for the new IID may delay the allocation of addresses to the application. In the case of multiple requests to a shared address, if the request fails, all applications that request the shared address need to be notified. If the DAD processing is successful, this indicates that the IID is not redundant on the broadcast node, but the state machine proceeds from the experimental state 304 to the available state 306, which indicates that the inspected broadcast IID is Indicates that it is ready to be used to generate an address that can be assigned.

使用可能な状態306から、装置はアプリケーションが共有アドレスを要求したのか、一意なアドレスを要求したのかを判定する。アプリケーションが共有アドレスを要求した場合、状態機械は共有(Shared)状態310に進む。アドレスは、使用可能なIIDをプレフィックスと結合するか、使用可能なアドレスをメモリから呼び出すことで作成される。共有状態310において、アプリケーションには他のアプリケーションと共有され得るアドレスが割り当てられる。共有状態310内で、アドレスは最初に、当該アドレスが一つ又は複数のアプリケーションに割り当てられる共有アンバウンド(Shared Unbound)状態312にある。アプリケーションが、割り当てられたアドレスにバインドするとき、状態機械は共有バウンド(Shared Bound)状態314に進む。バインドするときに、参照カウンタ(”ref_cnt”)は、アドレスにバインドされたアプリケーションの数を追跡するためにインクリメントされる。他のアプリケーションもまた、共有アドレスにバインドすることができる。別のアプリケーションが共有アドレスにバインドする度に、参照カウンタはインクリメントされる。いつでもアプリケーションはアドレスを解放する(即ち、アドレスをアンバインドし、使用を終了する)ことができるが、この時点で、参照カウントはデクリメントされる。アプリケーションが共有アドレスを解放した後、参照カウントがゼロに等しい場合、これはアドレスに現在バインドされているアプリケーションが無いことを示すが、アドレスが以下に記載するようにデプリケートされない限り、共有アドレスはアンバウンド状態312に戻る。   From the available state 306, the device determines whether the application has requested a shared address or a unique address. If the application requests a shared address, the state machine proceeds to the Shared state 310. The address is created by combining an available IID with a prefix or calling an available address from memory. In shared state 310, the application is assigned an address that can be shared with other applications. Within the shared state 310, the address is first in a shared unbound state 312 where the address is assigned to one or more applications. When the application binds to the assigned address, the state machine proceeds to the Shared Bound state 314. When binding, the reference counter ("ref_cnt") is incremented to keep track of the number of applications bound to the address. Other applications can also bind to the shared address. Each time another application binds to a shared address, the reference counter is incremented. At any time, the application can release the address (ie, unbind the address and end use), but at this point, the reference count is decremented. After the application releases the shared address, if the reference count is equal to zero, this indicates that no application is currently bound to the address, but the shared address will be unloaded unless the address is replicated as described below. Return to the bound state 312.

上述したように、共有プライベートIIDベースのアドレスは、これらのアドレスのうちの一つを用いるアプリケーションが無いことを無期限に確実にすべく、それらに関連付けられた好適な存続期間を有する。第1のアプリケーションが共有アドレスにバインドすると、IID/アドレス状態を共有アンバウンド312から共有バウンド314に変化させるが、IIDベースのアドレスに関連付けられたデプリケーションタイマが開始される。デプリケーションタイマは、アドレスの好適な存続期間に残存する時間を判定するのに用いられる。(有効なタイマも開始されるが、本明細書に記載されるように、有効なタイマはシステムによって用いられず、アドレスは有効なタイマの終了に基づいて削除されない。)一旦、あるアドレスのデプリケーションタイマが終了すると、当該アドレスはデプリケートされ、その後のアプリケーション共有アドレス要求は、異なるプライベートな共有アドレスで満たされるであろう。一実施形態において、好適なデプリケーションタイマは、アドレスがアプリケーションに割り当てられることができるかどうかを示すために、また、アドレスを用いるアプリケーションが、アドレスはデプリケートしたこと、及び新たなアドレスが要求されるべきであることを通知されるべきとき、用いられる。IIDベースのアドレスが共有バウンド状態314にある間、他のアプリケーションは同一のアドレスにバインドすることができ、従って、そのデプリケーションタイマが終了していない限り、それを共有することができる。   As described above, shared private IID-based addresses have a preferred lifetime associated with them to ensure indefinitely that no application uses one of these addresses. When the first application binds to a shared address, it changes the IID / address state from shared unbound 312 to shared bound 314, but a deprecation timer associated with the IID-based address is started. The deplication timer is used to determine the time remaining in the preferred lifetime of the address. (A valid timer is also started, but as described herein, a valid timer is not used by the system and the address is not deleted upon expiration of the valid timer.) When the application timer expires, the address will be replicated and subsequent application shared address requests will be satisfied with a different private shared address. In one embodiment, a suitable deprecation timer is used to indicate whether an address can be assigned to the application, and the application using the address has deprecated the address and a new address is required. Used when it should be notified that it should. While an IID-based address is in the shared bound state 314, other applications can bind to the same address and thus share it as long as its deprecation timer has not expired.

デプリケーションタイマは、IIDベースのアドレスの残りの好適な存続期間をそれが終了するまでカウントダウンするが、その時点で、アドレスはデプリケート(Deprecated)状態318に変化する。この時点で、共有IIDベースのアドレスを用いるアプリケーションは、アドレスがデプリケートされたので、アプリケーションは、当該アプリケーションがそのようにプログラムされている場合、新たなアドレスを要求できることを通知され得る。一旦、デプリケートされた共有アドレスを用いる全てのアプリケーションがアドレスを解放すると、その参照カウント(”Ref_cnt”)はゼロに等しくなり、この時点で、アドレスは削除され、システムはフリー状態300に移行するので、新たなIIDを生成し、アドレスを割り当てる処理を継続することができる。   The deprecation timer counts down the remaining preferred lifetime of the IID-based address until it expires, at which point the address changes to the Deprecated state 318. At this point, an application using a shared IID-based address can be notified that, since the address has been replicated, the application can request a new address if the application is so programmed. Once all applications using the shared address that has been replicated release the address, the reference count ("Ref_cnt") is equal to zero, at which point the address is deleted and the system transitions to the free state 300. The process of generating a new IID and assigning an address can be continued.

使用可能な状態306に戻り、アプリケーションが一意なアドレスを要求した場合、IIDベースのアドレスは、要求しているアプリケーションのみに割り当てられ、状態機械は一意な(Unique)状態316に進む。一意な状態316において、アプリケーションは一意なアドレスにバインドされ、当該アドレスはアプリケーションによって制御される。一旦、一意なアドレスがアプリケーションに割り当てられると、システムは、もはや当該アドレスを他の如何なるアプリケーションにも割り当てることができない。しかしながら、一意なアドレスを割り当てられた最初のアプリケーションは、他のアプリケーション又は処理が一意なアドレスにバインドすることを許可し得る。従って、一意な状態316において、一意なアドレスの制御は、要求しているアプリケーションに渡される。デプリケーションタイマは、一意なアドレスのアプリケーションへの割り当て時に開始されるが、このタイマの終了の当該アプリケーションへの如何なる通知も、一意なアドレスについてはオプションである。単一のアプリケーションのみが一意なアドレスを用いるので、アプリケーションがアドレスを使用することを止めるまで、システムはアプリケーションにアドレスを解放するように指示する(prompt)必要はない。デプリケーションタイマが用いられ、終了した場合、アプリケーションはこの事実を通知され得るが、アドレスはシステムによってデプリケートされない。しかしながら、本明細書に記載されるように、アプリケーションが一意なアドレスを解放するとすぐに、これはその参照カウントをゼロにデクリメントするが、解放された一意なアドレスはシステムによって削除される。   Returning to the available state 306, if the application requests a unique address, the IID-based address is assigned only to the requesting application, and the state machine proceeds to the unique state 316. In the unique state 316, the application is bound to a unique address, which is controlled by the application. Once a unique address is assigned to an application, the system can no longer assign that address to any other application. However, the first application assigned a unique address may allow other applications or processes to bind to the unique address. Thus, in the unique state 316, control of the unique address is passed to the requesting application. Although the depletion timer is started when a unique address is assigned to the application, any notification to the application of the expiration of this timer is optional for the unique address. Since only a single application uses a unique address, the system need not prompt the application to release the address until the application stops using the address. If the deprecation timer is used and expires, the application can be notified of this fact, but the address is not deprecated by the system. However, as described herein, as soon as an application releases a unique address, it decrements its reference count to zero, but the released unique address is deleted by the system.

アプリケーションの動作の速度を速めるために、アプリケーションがアドレスを要求したときには、IID又はアドレスが常に使用可能なことを確実にすることが望ましい。これは、プライベートIIDをセッション確立時に生成し、別のプライベートIIDをアプリケーションが要求を行うときに自動的に生成することによって為され得る。これは、余分なIID(又はアドレス)は常に確保されているため、プライベートアドレスのアプリケーションへのリターンの速度を増す。これは、モバイルハンドセットに採用され得るような、ブロードキャストインタフェースには重要である。というのは、DADが、望ましくない遅延を通信の確立時又は継続時にもたらし得る幾らかの時間を要するためである。これらの方法を用いることで、予め検査されたアドレスはいつでも使用可能となり、アドレスが予期せずに削除されたとき、又は失効したときでも、アプリケーションのアドレス要求をサポートする準備ができる。プライベートIIDを生成し割り当てる方法は、図4乃至図9を参照しつつ以下に記載される。   In order to speed up the operation of the application, it is desirable to ensure that the IID or address is always available when the application requests an address. This can be done by generating a private IID at session establishment and automatically generating another private IID when the application makes a request. This increases the speed of returning private addresses to the application, as extra IIDs (or addresses) are always reserved. This is important for broadcast interfaces, such as can be employed in mobile handsets. This is because DAD takes some time that can introduce undesirable delays when establishing or continuing communications. Using these methods, pre-inspected addresses are always available and ready to support application address requests even when addresses are deleted unexpectedly or expire. A method for generating and assigning a private IID is described below with reference to FIGS.

図4は、IID生成処理400の例示の実施形態を示す。ステップ401で、アプリケーションがアドレスを要求したとき、又はシステムがルータ広告を受信したとき、IID生成処理は開始され得る。ステップ402で、処理は一時的なIIDとして用いられるべき64ビットの乱数を生成する。任意の公知の乱数生成アルゴリズムを用いてこの数を生成してもよく、またモバイルハンドセットの場合、リンク制御データは急速に変化し、所与の瞬間においてあらゆるモバイルハンドセットにおいて大概異なるので、様々なリンク制御データをアルゴリズムのランダムなシード値として用いてもよい。IIDは無作為に生成されるので、テスト404で、既に装置によって採用されている、又はシステムに格納されているIIDはテストされ、新たなIIDが重複していないことが確認される。重複したIIDが生成された場合(即ち、テスト404=「Yes」)、処理は前のステップに戻って、ステップ402で別の64ビットの乱数を生成する。このIIDを生成及びテストする処理、即ち、ステップ402及び404は、重複しないIIDが生成されるまで継続する。   FIG. 4 illustrates an exemplary embodiment of an IID generation process 400. In step 401, the IID generation process may be initiated when an application requests an address or when the system receives a router advertisement. In step 402, the process generates a 64-bit random number to be used as a temporary IID. Any known random number generation algorithm may be used to generate this number, and in the case of mobile handsets, link control data changes rapidly, and is generally different for every mobile handset at a given moment. Control data may be used as a random seed value for the algorithm. Since the IID is randomly generated, a test 404 tests the IID that has already been adopted by the device or stored in the system to ensure that the new IID is not duplicated. If a duplicate IID is generated (ie, test 404 = “Yes”), the process returns to the previous step, and another 64-bit random number is generated at step 402. The process of generating and testing this IID, ie, steps 402 and 404, continues until a non-overlapping IID is generated.

生成されたIIDがシステム上の如何なる既存のIIDにも一致しない場合(即ち、テスト404=「No」)、ステップ406で、新たに作成されたIIDは、アドレスが要求されたインタフェースに関連付けられたバッファ又はメモリに格納される。次に、テスト408で、処理は、IIDがブロードキャストネットワークで用いられるのかを判定する。インタフェースがブロードキャストメディアに用いられないであろう場合(即ち、テスト408=「No」)、ステップ424で、IIDは、アプリケーションへの割り当て用のアドレスを生成するのに使用可能とされるが、その後、ステップ422で、処理はそれを呼び出した処理又はルーチンに戻ることができる。一実施形態において、ステップ406で、新たに生成されたIIDは、バッファ又はメモリに格納されるアドレスを作成するために用いられてもよい。   If the generated IID does not match any existing IID on the system (ie, test 404 = “No”), then in step 406, the newly created IID is associated with the interface for which the address was requested. Stored in a buffer or memory. Next, at test 408, the process determines whether the IID is used in the broadcast network. If the interface will not be used for broadcast media (ie, test 408 = “No”), then in step 424, the IID is enabled to generate an address for assignment to the application, but then At step 422, the process can return to the process or routine that called it. In one embodiment, at step 406, the newly generated IID may be used to create an address that is stored in a buffer or memory.

IIDがブロードキャストネットワークで用いられる場合(即ち、テスト408=「yes」)、ステップ410で、処理はIIDの状態を試験的に設定し、ステップ420で、DAD処理を開始する。リンクのどちらの終端のノードのIIDも通常分かっているので、DAD処理はポイント・ツー・ポイントのネットワークについて実行される必要はない。なおこれは、今日の3Gネットワークの場合である。DADを開始すると、ステップ422で、処理はそれを呼び出した処理又はルーチンに戻ることができる。DAD処理は、IID(又はIIDに基づくアドレス)がブロードキャストノード上の別のIID(又はアドレス)の重複であると判定し得るので、DAD処理420の結果はテストされる必要があるであろう。このテストは図6を参照しつつ以下に記載される。一実施形態において、処理は、DAD処理420から図6に示されるDAD完了処理へ直接進み得る。別の実施形態において、DADテストは、図9を参照しつつ以下に記載されるように、IID生成処理内に含まれてもよい。   If the IID is used in a broadcast network (ie, test 408 = “yes”), at step 410, the process sets the IID state experimentally and at step 420, the DAD process begins. Since the IID of the node at either end of the link is usually known, the DAD process does not need to be performed for a point-to-point network. This is the case with today's 3G networks. Once the DAD is initiated, at step 422, the process can return to the process or routine that called it. Since the DAD process may determine that the IID (or address based on the IID) is a duplicate of another IID (or address) on the broadcast node, the result of the DAD process 420 will need to be tested. This test is described below with reference to FIG. In one embodiment, the process may proceed directly from the DAD process 420 to the DAD completion process shown in FIG. In another embodiment, the DAD test may be included in the IID generation process, as described below with reference to FIG.

CDMA無線アプリケーションにおいては、各モバイルハンドセットがそれ自身のプレフィックスを所有するので、DAD処理をアドレスに対して実行する必要がないことに留意すべきである。その代わり、ステップ404で、IIDがモバイルハンドセットで用いられる別のIIDに一致しないことを確認することは、当該アドレスが冗長的ではないことを確認するのに充分である。従って、DAD処理及び試験的な状態におけるIIDの処理を含む実施形態の処理は、CDMAネットワークインタフェースでは実施されなくてもよい。これは、CDMAモバイルハンドセットが種々の実施形態を採用しないことを意味するものではない。というのは、WiMax、WiFi、Bluetooth(登録商標)、WLAN等のような広域無線(wide-area wireless)(WiFi)ネットワーク接続といった、他の無線ネットワーク接続及び有線ネットワーク接続もまた、モバイルハンドセットによって用いられ得るからである。   It should be noted that in CDMA wireless applications, each mobile handset has its own prefix, so there is no need to perform DAD processing on the address. Instead, confirming in step 404 that the IID does not match another IID used in the mobile handset is sufficient to confirm that the address is not redundant. Thus, the processing of the embodiment including DAD processing and IID processing in a pilot state may not be performed at the CDMA network interface. This does not mean that the CDMA mobile handset does not employ various embodiments. This is because other wireless and wired network connections are also used by mobile handsets, such as wide-area wireless (WiFi) network connections such as WiMax, WiFi, Bluetooth, WLAN, etc. Because it can be done.

アプリケーションがアドレスを要求し、IID又はアドレスが使用可能であるとき、当該アドレス(メモリ中のアドレスか、IIDとプレフィックスとの結合)はアプリケーションに割り当てられる必要がある。このアドレス割り当てを達成する例示の実施形態の処理は、図5に示されている。ステップ500で、処理はサブルーチン又はアプリケーションの呼び出しとして開始され得るが、その後、テスト502で、処理はアプリケーションが共有アドレスを要求したかどうかを判定する。上述したように、アプリケーションが共有プライベートアドレスを要求するとき、当該プライベートアドレスは一つよりも多くのアプリケーションによって用いられ得る。アプリケーションが共有アドレスを要求した場合(即ち、テスト502=「Yes」)、テスト504で、処理は(共有IIDに基づく)既存のアドレスが共有状態にあるのかどうかを判定する。上述したように、前のアプリケーションが既に共有アドレスを要求し、共有アドレスが割り当てられた場合、アドレス(又はアドレスを生成するために用いられるIID)は共有状態にあり得る。IID(又はアドレス)が共有状態にあり、使用可能な場合(即ち、テスト504=「Yes」)、ステップ506で、アプリケーションは共有アドレスが使用可能であることを通知され、当該アドレスを供給される。アプリケーションのアドレス要求を満たすと、新たなIIDが作成される必要はないので、ステップ524で処理は終了するか、当該処理を呼び出したルーチンに戻る。   When an application requests an address and an IID or address is available, that address (an address in memory or a combination of an IID and a prefix) needs to be assigned to the application. The process of an exemplary embodiment that accomplishes this address assignment is shown in FIG. At step 500, the process may begin as a subroutine or application call, but then at test 502, the process determines whether the application has requested a shared address. As described above, when an application requests a shared private address, that private address can be used by more than one application. If the application requests a shared address (ie, test 502 = “Yes”), at test 504, the process determines whether the existing address (based on the shared IID) is in a shared state. As described above, if a previous application has already requested a shared address and a shared address has been assigned, the address (or IID used to generate the address) can be in a shared state. If the IID (or address) is shared and available (ie, test 504 = “Yes”), at step 506, the application is notified that the shared address is available and provided with that address. . When the address request of the application is satisfied, it is not necessary to create a new IID, so the process ends at step 524 or returns to the routine that called the process.

アプリケーションが共有アドレスを要求したが、アドレス又はIIDが共有状態に無い場合(即ち、テスト504=「No」)、又はアプリケーションが一意なアドレスを要求した場合(即ち、テスト502=「No」)、テスト506で、処理はIID又はアドレスが使用可能な状態にある(即ち、IID又はアドレスが割り当て用に使用可能である)かどうかを判定する。図3を参照しつつ使用可能な状態306について上述したように、IIDは、当該IIDがアプリケーションに割り当てることができるアドレスを作成するために用いられる準備ができている場合、使用可能な状態にある。同様に、アドレスは、当該アドレスをアプリケーションに割り当てることができる場合、使用可能な状態にある。IID又はアドレスが使用可能な状態にある場合(即ち、テスト506=「Yes」)、テスト508で、処理は再び、アプリケーションが一意のアドレスを要求しているのか、共有アドレスを要求しているのかをチェックする。アプリケーションが共有アドレスを要求していない場合(即ち、テスト508=「No」)、510で、処理はIID/アドレスの状態を共有に設定し、図4を参照しつつ上述したように、別のIIDの生成、即ち処理400を開始する。この新たなプライベートIIDは、アドレスが要求されるまでメモリ又はバッファに格納され得るか、要求されるまでメモリ又はバッファに格納される新たなプライベートアドレスを生成するために用いられ得る。次いで、ステップ506で、アプリケーションは、共有アドレスが使用可能であり、IIDベースのアドレスが供給されることを通知される。アプリケーションのアドレス要求を満たすと、ステップ524で、処理は終了するか、処理を呼び出したルーチンに戻る。   If the application requests a shared address but the address or IID is not in a shared state (ie, test 504 = “No”), or if the application requests a unique address (ie, test 502 = “No”) At test 506, the process determines whether the IID or address is available (ie, the IID or address is available for assignment). As described above for the usable state 306 with reference to FIG. 3, the IID is in a usable state when it is ready to be used to create an address that can be assigned to an application. . Similarly, an address is ready for use if it can be assigned to an application. If the IID or address is available (ie, test 506 = “Yes”), at test 508, the process is again requesting a unique address or a shared address? Check. If the application is not requesting a shared address (ie, test 508 = “No”), at 510, the process sets the IID / address state to shared, as described above with reference to FIG. The generation of the IID, that is, the process 400 is started. This new private IID can be stored in memory or buffer until an address is requested, or can be used to generate a new private address that is stored in memory or buffer until requested. Then, in step 506, the application is notified that the shared address is available and an IID based address is provided. If the application address request is satisfied, the process ends at step 524 or returns to the routine that called the process.

アプリケーションが一意なアドレスを要求している場合(即ち、テスト508=「Yes」)、ステップ512で、処理はIID又はアドレスの状態を設定し、図4を参照しつつ上述したように、別のIIDの生成、即ち処理400を開始する。この新たなプライベートIIDは、アドレスが要求されるまでメモリ又はバッファに格納されてもよいし、要求されるまでメモリ又はバッファに格納される新たなプライベートアドレスを生成するために用いられてもよい。ステップ506で、アプリケーションは次いで、一意なアドレスが使用可能であり、IIDベースのアドレスが供給されることを通知される。アプリケーションのアドレス要求を満たすと、ステップ524で、処理は終了するか、処理を呼び出したルーチンに戻る。   If the application is requesting a unique address (ie, test 508 = “Yes”), at step 512, the process sets the state of the IID or address, as described above with reference to FIG. The generation of the IID, that is, the process 400 is started. This new private IID may be stored in memory or buffer until an address is requested, or may be used to generate a new private address that is stored in memory or buffer until requested. In step 506, the application is then notified that a unique address is available and an IID-based address is provided. If the application address request is satisfied, the process ends at step 524 or returns to the routine that called the process.

IID又はアドレスが使用可能な状態に無い場合(即ち、テスト506=「No」)、テスト514で、処理はIIDが試験的な状態にあるのか判定する。図3を参照しつつ試験的な状態304について上述したように、IIDがDAD処理を受けている場合、IIDは試験的な状態にある。IIDが試験的な状態にある場合、ステップ516で、処理はアプリケーションに対して、アドレスが使用可能になればすぐに当該アプリケーションに通知されるであろうことを知らせ、ステップ518で、アドレスを作成するためにプライベートIIDが使用可能になるまで、未解決の(outstanding)アプリケーション要求はキューに入れられる。新たなプライベートIIDが生成されるべきかどうかを判定するために、テスト520で、処理はアプリケーションが一意なアドレスを要求したかどうかを判定する。アプリケーションが一意なアドレスを要求した場合、図4を参照しつつ上述したように、ステップ400で、処理は新たなプライベートIIDを生成する。この新たなプライベートIIDは、アドレスが要求されるまでメモリ又はバッファに格納されてよいし、要求されるまでメモリ又はバッファに格納される新たなプライベートアドレスを生成するのに用いられても良い。IIDはDAD処理を試験的な状態で待っているので、要求しているアプリケーションに割り当てられるべきアドレスを生成するのに用いられることはまだできず、従って、ステップ524で、処理は終了するか、処理を呼び出したルーチンに戻る。IIDベースのアドレスは、図6を参照しつつ以下に記載されるように、DAD処理が完了するときに、要求しているアプリケーションに割り当てられるであろう。   If the IID or address is not in a usable state (ie, test 506 = “No”), at test 514, the process determines whether the IID is in a trial state. As described above for the experimental state 304 with reference to FIG. 3, if the IID is undergoing DAD processing, the IID is in the experimental state. If the IID is in an experimental state, in step 516 the process informs the application that it will be notified as soon as the address is available, and in step 518 it creates the address. Until the private IID is available to do so, outstanding application requests are queued. To determine whether a new private IID should be generated, at test 520, the process determines whether the application has requested a unique address. If the application requests a unique address, the process generates a new private IID at step 400 as described above with reference to FIG. This new private IID may be stored in memory or buffer until an address is requested, or may be used to generate a new private address that is stored in memory or buffer until requested. Since the IID is waiting for DAD processing in a test state, it cannot yet be used to generate an address to be assigned to the requesting application, so at step 524, the process ends or Return to the routine that called the process. The IID-based address will be assigned to the requesting application when the DAD process is complete, as described below with reference to FIG.

アプリケーションが一意なアドレスを要求しなかった場合(即ち、テスト520=「No」)、テスト522で、処理はこれが共有アドレスへの最初の要求であるのかどうかを判定する。それが共有アドレスへの最初の要求ではない場合、生成されるべき新たなIID又は割り当てられるべきアドレスは無いか、IIDは、要求しているアプリケーションにまだ割り当てられることができないように、DAD処理を試験的な状態で待っているので、ステップ524で、処理は終了するか、処理を呼び出したルーチンに戻る。IIDに基づいたアドレスは、図6を参照しつつ以下に記載されるように、DAD処理が完了するときに、要求しているアプリケーションに割り当てられるであろう。   If the application did not request a unique address (ie, test 520 = “No”), at test 522, the process determines whether this is the first request for a shared address. If it is not the first request for a shared address, there is no new IID to be generated or an address to be assigned, or the IID has not been assigned to the requesting application yet. Since we are waiting in a test state, at step 524 the process ends or returns to the routine that called the process. The address based on the IID will be assigned to the requesting application when the DAD process is complete, as described below with reference to FIG.

これが共有アドレスへの最初の要求である場合(即ち、テスト522=「Yes」)、アドレスは割り当てられ、置換される必要があるので、図4を参照しつつ上述されるように、処理400で、新たなプライベートIIDが生成される。IIDは、DAD処理を試験的な状態で待っているので、IIDに基づくアドレスは、要求しているアプリケーションにまだ割り当てられることはできず、従って、ステップ524で、処理は終了するか、処理を呼び出したルーチンに戻る。IIDに基づくアドレスは、図6を参照しつつ以下に記載されるように、DAD処理が完了するときに、要求しているアプリケーションに割り当てられるであろう。   If this is the first request for a shared address (ie, test 522 = “Yes”), the address needs to be assigned and replaced, so as described above with reference to FIG. A new private IID is generated. Since the IID is waiting for the DAD process in a test state, an address based on the IID cannot yet be assigned to the requesting application, so at step 524 the process ends or the process is terminated. Return to the calling routine. The address based on the IID will be assigned to the requesting application when the DAD process is complete, as described below with reference to FIG.

テスト514の、IIDが試験的な状態にあるかどうかの判定に戻ると、IIDが試験的な状態にない場合(即ち、テスト514=「No」)、これはIIDが生成されず、メモリ中で使用可能であるか、DAD処理を受けていることを示す。この場合、図4を参照しつつ上述したように、処理400で、処理は別のIIDの生成を開始し得る。処理は次いで、テスト526で、IIDの生成が成功したかどうかをテストし、成功した場合、テスト528で、IIDは試験的な状態にあるかどうかテストし得る。IIDがこの時点で試験的な状態にある場合(即ち、テスト528=「Yes」)、IIDはDAD処理を受けており、従って、ステップ516で、アプリケーションは、アドレスが使用可能になったときに通知されるであろうことを知らされる。その後、処理はステップ518乃至524について上述したように継続する。例えば、アプリケーションからの要求が共有ブロードキャストアドレスであった場合、テスト514の後に生成されたIIDはDAD処理を受け、従って、テスト528は「Yes」であろうし、テスト520は「no」であろうし、またテスト522は「yes」であろう。というのは、最初に使用可能なブロードキャストアドレスは無いからである。結果として、ステップ524で、処理が終了するか、処理を呼び出したルーチンに戻る前に、処理400で、第2のプライベートIIDが生成されるであろう。   Returning to the test 514 determining whether the IID is in a test state, if the IID is not in a test state (ie, test 514 = “No”), this does not generate an IID and is in memory. It can be used in the case of DAD processing. In this case, as described above with reference to FIG. 4, at process 400, the process may begin generating another IID. The process can then test at test 526 whether the generation of the IID was successful, and if successful, at test 528, it can test whether the IID is in a trial state. If the IID is in a pilot state at this point (ie, test 528 = “Yes”), the IID has undergone DAD processing, so in step 516, the application is ready when the address is available. Be informed that you will be notified. Thereafter, processing continues as described above for steps 518-524. For example, if the request from the application was a shared broadcast address, the IID generated after test 514 would undergo DAD processing, so test 528 would be “Yes” and test 520 would be “no”. And test 522 would be “yes”. This is because there is no first available broadcast address. As a result, at step 524, a second private IID will be generated at process 400 before the process ends or returns to the routine that called the process.

プライベートIIDの生成の成功後、IIDは試験的な状態にないと判定される場合(即ち、テスト528=「No」)、これはアプリケーションが非ブロードキャストアドレスを要求したことを示す(なぜなら、DAD処理が開始されなかったからである)。この状況では、テスト508で、処理は、アプリケーションが一意なアドレスを要求したかを判定することによって継続する。その後、処理はステップ508−510−400−506、又は508−512−400−506について上述したように継続する。   If it is determined that after the successful generation of the private IID, the IID is not in a trial state (ie, test 528 = “No”), this indicates that the application has requested a non-broadcast address (because the DAD process Was not started). In this situation, at test 508, processing continues by determining whether the application has requested a unique address. Thereafter, processing continues as described above for steps 508-510-400-506 or 508-512-400-506.

プライベートIIDの生成(テスト514後の処理400)が成功しなかったと判定される場合(即ち、テスト526=「No」)、これは、何らかの理由により、非冗長的なIIDの生成を除外した、誤り状態が存在することを示す。この状況において、アドレスへの要求を処理することを継続するのは意味が無いので、ステップ530で、アプリケーションは、誤りが発生したことを通知され、ステップ524で、処理が終了するか、処理を呼び出したルーチンに戻る。   If it is determined that private IID generation (process 400 after test 514) was not successful (ie, test 526 = “No”), this excluded, for some reason, non-redundant IID generation; Indicates that an error condition exists. In this situation, there is no point in continuing to process the request for the address, so in step 530 the application is notified that an error has occurred and in step 524 the process is terminated or processed. Return to the calling routine.

DAD処理の期間にプライベートIID及びアドレスを管理する例示の実施形態の処理が図6に示されている。ステップ600で、図4を参照しつつ上述したIID生成処理において開始されたDAD処理(ステップ420参照)が完了すると、処理が開始される。処理は最初に、テスト602で、DAD処理が成功したか判定する。DAD処理が成功した場合、システム上に一致するアドレスは無いので、IIDを用いて非冗長的なブロードキャストアドレスを生成することができ、ステップ605で、処理はIID状態を「使用可能」に設定する。IIDが使用可能な状態にある状態では、IIDを用いてアプリケーションへの割り当て用のアドレスを生成できるので、テスト606で、処理はアプリケーションアドレス要求で未解決のものがあるか判定する。未解決のアプリケーションアドレス要求がある場合(即ち、テスト606=「Yes」)、ステップ700で、処理は未解決のアドレス要求をサービスし(services)、図7を参照しつつ以下に記載される処理を開始する。一旦、それらの処理が完了する(即ち、一つ又は複数のアプリケーションにIIDが割り当てられる)と、ステップ608で、処理は終了するか、処理を呼び出したルーチンに戻る。しかしながら、アプリケーションアドレス要求で未解決のものが無い場合(即ち、テスト606=「No」)、ステップ608で、処理は終了するか、処理を呼び出したルーチンに戻る。   The process of an exemplary embodiment for managing private IIDs and addresses during the DAD process is shown in FIG. In step 600, when the DAD process (see step 420) started in the IID generation process described above with reference to FIG. 4 is completed, the process is started. The process first determines in test 602 whether the DAD process was successful. If the DAD process is successful, there is no matching address on the system, so a non-redundant broadcast address can be generated using the IID, and in step 605, the process sets the IID state to “available”. . In the state where the IID is in a usable state, an address for assignment to the application can be generated using the IID. Therefore, in the test 606, it is determined whether there is an unresolved application address request. If there is an unresolved application address request (ie, test 606 = “Yes”), at step 700, the process services the unresolved address request (services) and is described below with reference to FIG. To start. Once these processes are complete (ie, an IID is assigned to one or more applications), at step 608, the process ends or returns to the routine that called the process. However, if there are no unresolved application address requests (ie, test 606 = “No”), processing ends at step 608 or returns to the routine that called the processing.

DAD処理は成功しなかったと処理が判定する場合(即ち、テスト602=「No」)、テスト610で、処理は、IIDが冗長的であると分かる場合、異なるIIDを確認するための複数回の試行をDAD処理が許可するか調べるために、チェックし得る。処理が複数回の試行を許可せず、最大限の試行を上回っていない場合(即ち、テスト610=「No」)、図4を参照しつつ上述したように、ステップ400で、処理は新たなプライベートIDの生成を開始することを進める。アプリケーションはブロードキャストアドレスを要求したので(これはDAD処理が開始されることを引き起こす)、処理400で、新たなIIDを生成する処理はまた、DAD処理(図4のステップ420参照)を開始するであろうし、点線で示されるように、当該処理は図6に示される処理の始まり、即ちステップ600に戻るであろう。   If the process determines that the DAD process was not successful (ie, test 602 = “No”), then in test 610, if the process knows that the IID is redundant, the process can be run multiple times to check for different IIDs. A check may be made to see if the DAD process allows the attempt. If the process does not allow multiple attempts and does not exceed the maximum number of attempts (ie, test 610 = “No”), as described above with reference to FIG. Proceed to start generating the private ID. Since the application has requested a broadcast address (this causes the DAD process to start), in process 400, the process of creating a new IID also starts the DAD process (see step 420 in FIG. 4). The process will then return to the beginning of the process shown in FIG.

処理が最大限の試行回数を許可しない場合、又は最大限の試行回数を超えた場合(即ち、テスト610=「Yes」)、ステップ612で、処理はIID状態を「フリー」に設定して、使用可能なIIDが無いことを示し、ステップ700で、未解決のアドレス要求をサービスし、図7を参照しつつ以下に記載される処理を開始する。一旦、それらの処理が完了する(即ち、一つ又は複数のアプリケーションにIIDが割り当てられる)と、ステップ608で、処理は終了するか、処理を呼び出したルーチンに戻る。   If the process does not allow the maximum number of attempts, or if the maximum number of attempts has been exceeded (ie, test 610 = “Yes”), at step 612, the process sets the IID status to “free”; Indicating that no IID is available, service an unresolved address request at step 700 and start the process described below with reference to FIG. Once these processes are complete (ie, an IID is assigned to one or more applications), at step 608, the process ends or returns to the routine that called the process.

未解決のアプリケーションアドレス要求にサービスする(servicing)例示の実施形態の処理、即ち処理700は、図7に示されている。ステップ702で、処理700は、IIDが使用可能な状態にあるとき、アプリケーションからのアドレス要求に応答して、システムによって、又は、図6を参照しつつ上述したDAD完了ハンドリング処理の完了によって、起動され得る。処理は最初に、テスト704で、要求が共有アドレスへのものかどうか判定する。要求が共有アドレスへのものである場合、テスト706で、処理はIIDが使用可能な状態にあるかどうか判定し、それが使用可能な状態にある場合、ステップ708で、処理はIID又はアドレスの状態を共有に設定する。処理は次いで、ステップ710で、アプリケーションに対してアドレスが使用可能であることを示し、ステップ712で、要求を共有キューから除去する。処理は更に、テスト714で、共有キューにまだ要求が存在するか判定し、存在しない場合、ステップ716で、処理は終了するか、処理を呼び出した処理又はルーチンに戻る。まだアドレス要求が共有キューに存在する場合(即ち、テスト714=「Yes」)、処理はステップ710に戻って、共有キューの次の要求を有するアプリケーションに対して、共有アドレスが使用可能であることを示すが、その後、ステップ712で、要求は共有キューから除去され、714で、処理は、共有キューにまだ要求が存在するかどうか再び判定する。   The process of an exemplary embodiment servicing an outstanding application address request, or process 700, is illustrated in FIG. In step 702, process 700 is activated by the system or upon completion of the DAD completion handling process described above with reference to FIG. 6 in response to an address request from an application when the IID is available. Can be done. The process first determines at test 704 whether the request is for a shared address. If the request is for a shared address, at test 706 the process determines whether the IID is available and if it is available, at step 708 the process proceeds to the IID or address. Set the state to shared. The process then indicates that the address is available to the application at step 710 and removes the request from the shared queue at step 712. The process further determines at test 714 whether there are still requests in the shared queue, and if not, at step 716 the process ends or returns to the process or routine that called the process. If there is still an address request in the shared queue (ie, test 714 = “Yes”), processing returns to step 710 that the shared address is available for the application that has the next request in the shared queue. After that, at step 712, the request is removed from the shared queue, and at 714, the process again determines whether there are more requests in the shared queue.

IIDが使用可能な状態に無い場合(即ち、テスト706=「No」)、ステップ718で、処理はアプリケーションにDAD処理の失敗が発生したこと、及び結果として、アドレスを提供するのに更なる遅延があるであろうことを通知する。アドレス要求は次いで、ステップ712で、共有キューから除去される。テスト722で、処理は更に、共有キューにまだ要求が存在するか判定し、存在しない場合、ステップ716で、処理は終了するか、処理を呼び出したルーチンに戻る。しかしながら、共有キューにまだ要求が存在する場合(即ち、テスト722=「Yes」)、処理はステップ718に戻ってDADの失敗とアドレスの遅延を共有キューの次のアプリケーションに示し、その後、ステップ720で、要求は共有キューから除去され、722で、処理は共有キューにまだ要求が存在するかどうか再び判定する。   If the IID is not available (ie, test 706 = “No”), at step 718, the process has caused a DAD processing failure to occur to the application and, as a result, further delay in providing an address. Notify that there will be. The address request is then removed from the shared queue at step 712. At test 722, the process further determines if there are more requests in the shared queue, and if not, at step 716, the process ends or returns to the routine that called the process. However, if there is still a request in the shared queue (ie, test 722 = “Yes”), processing returns to step 718 to indicate DAD failure and address delay to the next application in the shared queue, after which step 720 The request is then removed from the shared queue, and at 722, the process again determines whether there are more requests in the shared queue.

要求が共有アドレスへのものではなく、従って一意なアドレスへのものである場合(即ち、テスト722=「No」)、テスト724で、処理はIID(又はアドレス)が使用可能な状態にあるかどうかを判定する。IIDが使用可能な状態にある場合、ステップ726で、処理はIID(又はアドレス)の状態を一意に設定し、ステップ728で、アプリケーションにアドレスが使用可能であることを示し、ステップ730で、共有キューから要求を除去する。処理は次いで、ステップ716で、終了するか、処理を呼び出したルーチンに戻る。   If the request is not to a shared address and therefore to a unique address (ie, test 722 = “No”), at test 724, the process is in a state where an IID (or address) is available Determine if. If the IID is in a usable state, at step 726, the process uniquely sets the state of the IID (or address), indicates at step 728 that the address is available to the application, and is shared at step 730. Remove the request from the queue. The process then ends at step 716 or returns to the routine that called the process.

テスト724でIID又はアドレスが使用可能な状態に無い場合(即ち、テスト724=「No」)、ステップ732で、処理はアプリケーションにDAD処理の失敗が発生したこと、及び結果として、アドレスが供給されないかもしれないことを通知する。アドレス要求は次いでステップ734で、共有キューから除去され、ステップ716で、処理は終了するか、処理を呼び出した処理又はルーチンに戻る。この状況は、DAD処理が不成功に終わり(即ち、図6のテスト602=「No」)、IIDの生成における最大限の再試行回数を超えた(即ち、図6のテスト610=「Yes」)場合に達し得ることに留意されたい。   If the IID or address is not available in test 724 (ie, test 724 = “No”), at step 732, the process has failed the DAD process in the application and, as a result, no address is provided. Notify that it may be. The address request is then removed from the shared queue at step 734, and at step 716 the process ends or returns to the process or routine that called the process. This situation resulted in unsuccessful DAD processing (ie, test 602 = “No” in FIG. 6) and exceeded the maximum number of retries in generating the IID (ie, test 610 = “Yes” in FIG. 6). Note that the case can be reached.

図7に示され、上述されたアドレス割り当て処理の実施形態において、アドレスは要求が受信された順番でアプリケーションに対して割り当てられる。従って、新たなアドレスが各々生成されると、それはキューに残存している第1のアプリケーションに割り当てられる(先入先出法)。   In the embodiment of the address assignment process shown in FIG. 7 and described above, addresses are assigned to applications in the order in which requests are received. Thus, as each new address is generated, it is assigned to the first application remaining in the queue (first-in first-out method).

初めてアドレスが要求されたときに遅延が無いことを確実にするために、システムは、図8に示されるように、アプリケーションからの保留の要求が存在する前のセッション確立時に、プライベートIID又はアドレスを生成することができる。この処理は、ステップ800で、セッションが確立されるときに始まる。例えば、この処理は、IPアドレスを作成すべくIIPと結合して用いられるべきプレフィックスを供給するルータ広告(RA)を装置が受信したときに開始され得る。処理は、図4を参照しつつ上述されたIID生成処理400を用いてプライベートIIDを生成すべく進む。処理は、アドレスが要求時にアプリケーションに割り当てられる準備ができていることを示す、使用可能な状態(図4に示されるステップ424参照)にあるプライベートIIDを作成する。このプライベートIIDは、アドレスが要求されるまで、又は要求されるまでメモリ又はバッファに格納される新たなプライベートアドレスを生成するのに用いられるまで、メモリ又はバッファに格納され得る。この処理はインタフェースごとに繰り返され得る。ブロードキャストインタフェースの場合、IIDはDAD処理(図4に示されるステップ420参照)を受けるであろう。一旦、プライベートIID又はアドレスが作成されると、ステップ804で、処理は終了するか、処理を呼び出した処理又はルーチンに戻る。   To ensure that there is no delay when the address is requested for the first time, the system uses the private IID or address at session establishment before there is a pending request from the application, as shown in FIG. Can be generated. This process begins at step 800 when a session is established. For example, this process may be initiated when a device receives a router advertisement (RA) that provides a prefix to be used in conjunction with an IIP to create an IP address. The process proceeds to generate a private IID using the IID generation process 400 described above with reference to FIG. The process creates a private IID in an available state (see step 424 shown in FIG. 4) indicating that the address is ready to be assigned to the application at the time of the request. This private IID can be stored in memory or buffer until an address is requested or until it is used to generate a new private address that is stored in memory or buffer until requested. This process can be repeated for each interface. In the case of a broadcast interface, the IID will undergo DAD processing (see step 420 shown in FIG. 4). Once the private IID or address is created, at step 804, the process ends or returns to the process or routine that called the process.

前述の実施形態の処理は、本発明の実行し得る実施の例として提供され、当該処理のバリエーションは特許請求の範囲内にある。例えば、プライベートIID及びアドレスをDADの期間及びDADの後に管理する処理は、図9に示されるように、IIDを生成する処理400内に組み込まれ得る。この結合されたIID生成処理400Aは、図4を参照しつつ上述したのと同一のステップを含み(図4の記載は、図9に示されるステップのように、参照することでここに組み込まれる)、図5及び図6に示されるステップを追加する。特に、ステップ408で、アドレスはブロードキャストメディア用であることを判定するとき、ステップ410で、処理はIIDの状態を試験的と設定し、ステップ516で、アプリケーションに対してアドレスが使用可能なときに通知されるであろうことを示し、ステップ518で、アドレス要求をキューに入れ、ステップ412でDAD処理を開始する。DAD処理412が完了すると、テスト602で、処理はDADが成功した(即ち、IIDは冗長的でない)かどうかを判定し得る。DADが成功した場合、ステップ424で、IIDの状態は使用可能に設定され、ステップ422で、処理は当該処理を呼び出したルーチンに戻る。   The processes of the foregoing embodiments are provided as examples of possible implementations of the invention, and variations of the processes are within the scope of the claims. For example, the process of managing private IIDs and addresses during the period of DAD and after DAD can be incorporated into process 400 for generating IIDs, as shown in FIG. This combined IID generation process 400A includes the same steps as described above with reference to FIG. 4 (the description of FIG. 4 is incorporated herein by reference, such as the steps shown in FIG. 9). ), And the steps shown in FIGS. 5 and 6 are added. In particular, when it is determined at step 408 that the address is for broadcast media, at step 410 the process sets the IID state to experimental, and at step 516 when the address is available to the application. In step 518, the address request is queued and in step 412 the DAD process is started. Once the DAD process 412 is complete, at test 602, the process may determine whether the DAD was successful (ie, the IID is not redundant). If the DAD is successful, at step 424 the IID state is set to available, and at step 422 the process returns to the routine that called the process.

DAD処理が成功しなかった場合(即ち、テスト602=「No」)、処理は、テスト610で、IIDが冗長的であると分かった場合、異なるIIDを確認するための複数回の試行をDAD処理が許可するか調べるためにチェックし得る。処理が複数回の試行を許可し、最大限の試行回数を超えていない場合(即ち、テスト610=「No」)、ステップ904で、重複するIIDは削除され得るが、その後、処理はステップ402に戻って別の64ビットの乱数を生成する。このループは、DAD処理が成功する(即ち、テスト602=「Yes」)か、使用可能なIIDを生成する最大限の試行回数を超える(即ち、テスト610=「Yes」)まで、継続され得る。   If the DAD process is unsuccessful (ie, test 602 = “No”), the process determines that the IID is redundant if the test 610 finds that the IID is redundant. You can check to see if the process allows it. If the process allows multiple attempts and the maximum number of attempts has not been exceeded (ie, test 610 = “No”), then at step 904, duplicate IIDs can be deleted, but the process then proceeds to step 402. Return to, and generate another 64-bit random number. This loop may continue until the DAD process succeeds (ie, test 602 = “Yes”) or exceeds the maximum number of attempts to generate a usable IID (ie, test 610 = “Yes”). .

処理が最大限の試行回数を許可しない場合、又は最大限の試行回数を超えた場合(即ち、テスト610=「Yes」)、ステップ612で、処理はIIDの状態を「フリー」に設定して、使用可能なIID又はアドレスが無いことを示し、ステップ422で、処理は当該処理を呼び出したルーチンに戻る。   If the process does not allow the maximum number of attempts, or if the maximum number of attempts has been exceeded (ie, test 610 = “Yes”), at step 612, the process sets the IID state to “free”. Indicates that no IID or address is available, and in step 422, the process returns to the routine that called the process.

上述した種々の実施形態は、様々な有線及び無線のネットワークに有線及び無線のインタフェースを介して接続するソフトウェア及び回路を備えるように構成されたモバイルハンドセットに実施し得る。図10は、携帯電話、マルチメディアインターネットが利用可能な携帯電話、パーソナルデジタルアシスタント、電子音楽ファイル(例えば、MP3)プレーヤ、及び/又は無線電子メール受信器のうちのいずれでもあり得る、そのようなモバイルハンドセット10の例示の実施形態のブロック図を提供する。そのようなモバイルハンドセット10は、ディスプレイ13とメモリ12に結合されたプロセッサ11を備え得る。モバイルハンドセット10はまた、例えば携帯電話データ受信器、有線の(例えば、FireWire(登録商標))データリンク、Bluetooth(登録商標)無線データリンク、及び赤外線データリンク(図示せず)といった、多数のデータ入力/出力インタフェースを備え得る。例えば、モバイルハンドセット10は、無線ネットワーク送信器/受信器ノード(図示せず)から電磁波信号を受信するアンテナ14と、無線信号を受信し、信号をプロセッサ11に中継されるデジタルデータに変換する、アンテナ14に結合される無線トランシーバ15を備え得る。同様に、Bluetooth(登録商標)又は類似のローカルな無線データリンクは、WiFi、Bluetooth(登録商標)、WLAN、WiMax等に接続されるアンテナ14(又は別個に図示されない別のアンテナ)と、受信された無線信号をプロセッサ11に中継されるデジタルデータに変換するトランシーバ18を備え得る。データはまた、FireWire(登録商標)、USB、シリアル(例えば、RS−232)、又はイーサネット(登録商標)データリンクといった、有線のデータリンクを用いて、モバイルハンドセット10に送信され、またモバイルハンドセット10から送信される。例えば、データは、FireWireモデム回路20に結合されたFireWire(登録商標)データコネクタ19を手段として送信され得る。FireWireモデム回路20は、コネクタ19から受け取るデータを、プロセッサ11に中継されるデジタルデータに変換する。当分野で周知のように、他の有線のデータリンクは、特定のデータリンクに適当な同様の回路を伴い得る。   The various embodiments described above may be implemented in mobile handsets configured with software and circuitry that connect to various wired and wireless networks via wired and wireless interfaces. FIG. 10 may be any of a mobile phone, a mobile phone capable of multimedia internet, a personal digital assistant, an electronic music file (eg, MP3) player, and / or a wireless email receiver, such as FIG. 2 provides a block diagram of an exemplary embodiment of mobile handset 10. Such a mobile handset 10 may comprise a processor 11 coupled to a display 13 and a memory 12. The mobile handset 10 also includes a number of data such as a cellular phone data receiver, a wired (eg, FireWire®) data link, a Bluetooth® wireless data link, and an infrared data link (not shown). An input / output interface may be provided. For example, the mobile handset 10 receives an electromagnetic wave signal from a wireless network transmitter / receiver node (not shown) and a radio signal and converts the signal into digital data that is relayed to the processor 11. A wireless transceiver 15 coupled to the antenna 14 may be provided. Similarly, Bluetooth or similar local wireless data link is received with antenna 14 (or another antenna not separately shown) connected to WiFi, Bluetooth, WLAN, WiMax, etc. A transceiver 18 may be provided for converting the wireless signal into digital data that is relayed to the processor 11. Data is also sent to the mobile handset 10 using a wired data link, such as FireWire®, USB, serial (eg, RS-232), or Ethernet® data link, and the mobile handset 10 Sent from For example, data can be transmitted by way of a FireWire® data connector 19 coupled to a FireWire modem circuit 20. The FireWire modem circuit 20 converts data received from the connector 19 into digital data relayed to the processor 11. As is well known in the art, other wired data links may involve similar circuitry appropriate to the particular data link.

携帯電話データ受信器15、有線データリンク19、20、無線データリンク18、及びIRデータリンク(図示せず)の各々は、アプリケーションがプロセッサに対して共有アドレス又は一意なアドレスを供給するように要求し得るインタフェースである。また、データを他のモジュール及びコプロセッサ間でやり取りするために、他のインタフェースがモバイルハンドセット10内に実装されてもよい。従って、プライベートアドレスを用いてデータ接続を確立するために、アプリケーションはアドレスをインタフェースから取得し、そのソケットのうちの一つを当該アドレスにバインドしなければならない。   Each of the cellular data receiver 15, wired data links 19, 20, wireless data link 18, and IR data link (not shown) requires the application to provide a shared or unique address to the processor. Interface. Other interfaces may also be implemented in the mobile handset 10 to exchange data between other modules and coprocessors. Thus, in order to establish a data connection using a private address, the application must obtain an address from the interface and bind one of its sockets to that address.

プライベートアドレスは、上述した実施形態の方法のうちの一つ又は複数を実行するプロセッサ11によって、例えば該方法のうちの一つ又は複数を実施するように構成されたソフトウェア命令を実行することによって、生成され得る。そのようなソフトウェア命令は、APIとして、デバイスのオペレーティングシステムの一部として、又は実施形態の方法を実施するコンパイルされたソフトウェアとして、メモリ12に格納され得る。   The private address may be obtained by executing a software instruction configured to perform one or more of the methods, for example, by the processor 11 that performs one or more of the methods of the above-described embodiments. Can be generated. Such software instructions may be stored in the memory 12 as an API, as part of the device operating system, or as compiled software that implements the methods of the embodiments.

プロセッサ11は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)若しくは他のプログラマブルロジックデバイス、ディスクリートゲート若しくはトランジスタロジック、ディスクリートハードウェアコンポーネント、又は、本明細書に記載される機能を実行すべく設計された、これらの任意の組み合わせであってよい。汎用プロセッサは、マイクロプロセッサであってもよいが、代替物として、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、又は状態機械であってもよい。プロセッサはまた、例えば、DSPとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、DSPコアと連動する一つ又は複数のマイクロプロセッサ、又は他の任意のそのような構成といった、コンピューティングデバイスの組み合わせとして実装されてもよい。   The processor 11 may be a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, a discrete gate or transistor logic, a discrete hardware component, or It can be any combination of these designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices such as, for example, a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. May be.

上述された種々の実施形態は、モバイルハンドセット10といった装置が、アドレス要求に応答して、IIDが生成される場合には要求されるであろう、装置のパフォーマンスへの影響なしにプライベートアドレスを生成することを可能にする。種々の実施形態は、特に、プライバシーの懸念を増大させ、頻繁なネットワーク接続で動作する携帯電話装置との関連で有利である。プライベートアドレスの生成に関連付けられるリンク確立の遅延を防止することで、種々の実施形態はユーザの体験を改善することができる。   The various embodiments described above allow a device such as mobile handset 10 to generate a private address without impacting device performance that would be required if an IID was generated in response to an address request. Make it possible to do. Various embodiments are particularly advantageous in connection with cellular telephone devices that increase privacy concerns and operate with frequent network connections. By preventing link establishment delays associated with private address generation, various embodiments may improve the user experience.

前述の実施形態の事象(events)を実施するために用いられるハードウェアは、一組の命令を実行するように構成された記憶素子及び処理素子であり得るが、当該一組の命令は上記の事象に対応する方法のステップを実行するためのものである。あるいは、一部の事象は、所与の機能に特有の回路によって実行されてもよい。   The hardware used to implement the events of the previous embodiments may be a storage element and a processing element configured to execute a set of instructions, which set of instructions is as described above. It is for executing the steps of the method corresponding to the event. Alternatively, some events may be performed by circuitry that is specific to a given function.

当業者は、本明細書に開示される実施形態に関連して記載される、種々の例示的な論理ブロック、モジュール、回路、及びアルゴリズムのステップは、電子ハードウェア、コンピュータソフトウェア、又は双方の組み合わせとして実施され得ることを認識するであろう。このハードウェアとソフトウェアの互換性を明確に例証するために、種々の例示的なコンポーネント、ブロック、モジュール、回路、及びステップは、概してそれらの機能性の観点から上述されている。そのような機能性がハードウェアとして実施されるか、ソフトウェアとして実施されるかは、システム全体に課される設計上の制約及び特定の適用例に依存する。熟練工は、記載された機能性を特定の適用例ごとに種々の方法で実施し得るが、そのような実施上の決定は、本発明の範囲からの逸脱をもたらすものとして解釈されるべきではない。   Those skilled in the art will understand that the various exemplary logic blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be electronic hardware, computer software, or a combination of both. It will be appreciated that can be implemented as: To clearly illustrate this hardware and software compatibility, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the design constraints imposed on the overall system and the particular application. The skilled worker may implement the described functionality in a variety of ways for each specific application, but such implementation decisions should not be construed as deviating from the scope of the invention. .

本明細書に開示される実施形態に関連して記載されるアルゴリズム又は方法のステップは、直接ハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、又はこの2つの組み合わせで具現化され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD−ROM、又は当分野で公知の他の任意の形式の記憶媒体のうちのいずれであってもよい、プロセッサ読み取り可能なメモリ12に存在し得る。例示の記憶媒体11は、プロセッサ11が記憶媒体12から情報を読み出し、また記憶媒体12に情報を書き込めるように、プロセッサ11に結合される。代替案では、記憶媒体はプロセッサ11と一体であってもよい。プロセッサ11と記憶媒体11はASICに存在し得る。ASICはユーザ端末に存在し得る。代替案において、プロセッサ11と記憶媒体12は、ユーザ端末中の別個のコンポーネントとして存在してもよい。   The algorithm or method steps described in connection with the embodiments disclosed herein may be implemented directly in hardware, in software modules executed by a processor, or in a combination of the two. A software module can be any of RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, removable disk, CD-ROM, or any other form of storage medium known in the art. May reside in processor readable memory 12. The exemplary storage medium 11 is coupled to the processor 11 such that the processor 11 can read information from, and write information to, the storage medium 12. In the alternative, the storage medium may be integral to the processor 11. The processor 11 and the storage medium 11 can exist in the ASIC. The ASIC may reside in the user terminal. In the alternative, the processor 11 and the storage medium 12 may exist as separate components in a user terminal.

種々の実施形態の前述の記載は、如何なる当業者も本発明を作成又は使用することを可能にすべく提供される。これらの実施形態に対する種々の変形は、当業者には容易に明白となるであろうし、本明細書に定義される一般的な原理は、本発明の範囲及び精神から逸脱することなく他の実施形態にも適用され得る。従って、本発明は本明細書に示される実施形態に限定されることを意図されたものではなく、それよりも特許請求の範囲は本明細書に開示される新規な特徴及び原理と合致する最も広範な範囲に一致すべきである。   The previous description of various embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be used in other implementations without departing from the scope and spirit of the invention. It can also be applied to forms. Accordingly, the present invention is not intended to be limited to the embodiments shown herein, but rather the claims are most consistent with the novel features and principles disclosed herein. Should be consistent with a broad range.

Claims (32)

プライバシーアドレスをアプリケーションに割り当てる方法であって、
第1のプライバシーアドレスをメモリから呼び出し、
前記第1のプライバシーアドレスを前記アプリケーションに割り当て、
第2のプライバシーアドレスを直ちに生成し、
前記第2のプライバシーアドレスをメモリに格納し、
前記アプリケーションが前記第1のプライバシーアドレスをバインドするとき、前記第1のプライバシーアドレスの存続期間を測定するために、デプリケーションタイマを開始する
ことを含む、方法。
A method of assigning a privacy address to an application,
Call the first privacy address from memory,
Assigning the first privacy address to the application;
Immediately generate a second privacy address,
Storing the second privacy address in a memory ;
A method comprising: starting a depletion timer to measure a lifetime of the first privacy address when the application binds the first privacy address .
前記アプリケーションが一意なアドレスを要求しているか判定し、
前記アプリケーションが一意なアドレスを要求している場合、前記第1のプライバシーアドレスを前記アプリケーションのみに割り当てる
ことを更に含む、請求項1記載のプライバシーアドレスをアプリケーションに割り当てる方法。
Determine if the application requires a unique address;
2. The method of assigning a privacy address to an application according to claim 1, further comprising: assigning the first privacy address only to the application if the application requires a unique address.
前記アプリケーションが共有アドレスを要求しているか判定し、
前記アプリケーションが共有アドレスを要求している場合、共有アドレスを要求している他のアプリケーションへの割り当てのために前記第1のプライバシーアドレスをメモリに保持している間に、前記第1のプライバシーアドレスを前記アプリケーションに割り当て
ことを更に含み、
前記要求しているアプリケーションが前記第1のプライバシーアドレスをバインドするとき、前記デプリケーションタイマ開始される、
請求項1記載のプライバシーアドレスをアプリケーションに割り当てる方法。
Determine if the application is requesting a shared address;
If the application requests a shared address, the first privacy address while holding the first privacy address in memory for assignment to another application requesting the shared address the you assign to the application,
Further including
When an application that the request will bind the first privacy addresses, the deprecation timer is started,
A method of assigning a privacy address according to claim 1 to an application.
前記第1のプライバシーアドレスは、前記アプリケーションによるアドレスへの要求の受信に先立って生成される、請求項1記載のプライバシーアドレスをアプリケーションに割り当てる方法。  The method of assigning a privacy address to an application according to claim 1, wherein the first privacy address is generated prior to receiving a request for an address by the application. 前記第2のプライバシーアドレスに重複アドレス判定を行うこと
を更に含む、請求項1記載のプライバシーアドレスをアプリケーションに割り当てる方法。
The method of allocating a privacy address to an application according to claim 1, further comprising: performing a duplicate address determination on the second privacy address.
前記アプリケーションが前記第1のプライバシーアドレスをアンバインドするとき、前記第1のプライバシーアドレスを削除する
ことを更に含む、請求項2記載のプライバシーアドレスをアプリケーションに割り当てる方法。
The method of assigning a privacy address to an application according to claim 2, further comprising: deleting the first privacy address when the application unbinds the first privacy address.
前記第1のプライバシーアドレスにバインドされたアプリケーションの数を示す前記第1のプライバシーアドレスの参照カウントを保持し、
(1)前記デプリケーションタイマが終了したとき、及び(2)前記参照カウントがゼロに等しくなったとき、前記前記第1のプライバシーアドレスを削除する
ことを更に含む、請求項3記載のプライバシーアドレスをアプリケーションに割り当てる方法。
Holding a reference count of the first privacy address indicating the number of applications bound to the first privacy address;
The privacy address of claim 3, further comprising: (1) the deprecation timer expires; and (2) the first privacy address is deleted when the reference count equals zero. How to assign to an application.
前記アプリケーションが、予め設定された期間内に前記第1のプライバシーアドレスをバインドしない場合、前記第1のプライバシーアドレスを削除し、
前記第1のプライバシーアドレスは削除されることを前記アプリケーションに通知することを更に含む、請求項1記載のプライバシーアドレスをアプリケーションに割り当てる方法。
If the application does not bind the first privacy address within a preset time period, delete the first privacy address;
The method of assigning a privacy address to an application according to claim 1, further comprising notifying the application that the first privacy address is deleted.
プロセッサと、
前記プロセッサに結合される少なくとも一つのネットワークインタフェースと、
プロセッサに結合されるメモリであって、前記メモリは、前記プロセッサに、
第1のプライバシーアドレスをメモリから呼び出し、
前記第1のプライバシーアドレスをアプリケーションに割り当て、
第2のプライバシーアドレスを直ちに生成し、
前記第2のプライバシーアドレスを前記メモリに格納し、
前記アプリケーションが前記第1のプライバシーアドレスをバインドするとき、前記第1のプライバシーアドレスの存続期間を測定するために、デプリケーションタイマを開始する、
ステップを実行させるように構成されたプロセッサ実行可能なソフトウェア命令を当該メモリ中に格納した、
メモリと、
を備える、モバイルハンドセット。
A processor;
At least one network interface coupled to the processor;
A memory coupled to a processor, wherein the memory is in the processor;
Call the first privacy address from memory ,
Assigning the first privacy address to an application;
Immediately generate a second privacy address,
Storing the second privacy address in the memory ;
When the application binds the first privacy address, a deprecation timer is started to measure the lifetime of the first privacy address;
Stored in the memory is a processor executable software instruction configured to execute the step;
Memory,
Mobile handset with
前記メモリに格納された前記プロセッサ実行可能なソフトウェア命令は、
前記プロセッサに、
前記アプリケーションが一意なアドレスを要求しているか判定し、
前記アプリケーションが一意なアドレスを要求している場合、前記第1のプライバシーアドレスを前記アプリケーションのみに割り当てる
ことを更に含むステップを実行させるように構成される、請求項9記載のモバイルハンドセット。
The processor executable software instructions stored in the memory are:
In the processor,
Determine if the application requires a unique address;
The mobile handset of claim 9, wherein the mobile handset is configured to cause a step further comprising: assigning the first privacy address only to the application if the application requires a unique address.
前記メモリに格納された前記プロセッサ実行可能なソフトウェア命令は、
前記プロセッサに、
前記アプリケーションが共有アドレスを要求しているか判定し、
前記アプリケーションが共有アドレスを要求している場合、共有アドレスを要求している他のアプリケーションへの割り当てのために前記第1のプライバシーアドレスをメモリに保持している間、前記第1のプライバシーアドレスを前記アプリケーションに割り当て
ことを更に含むステップを実行させるように構成され、
前記要求しているアプリケーションが前記第1のプライバシーアドレスをバインドするとき、前記デプリケーションタイマ開始される、
請求項9記載のモバイルハンドセット。
The processor executable software instructions stored in the memory are:
In the processor,
Determine if the application is requesting a shared address;
If the application is requesting a shared address, the first privacy address is stored while holding the first privacy address in memory for assignment to another application requesting a shared address. It assigns to the application,
Configured to perform a step further comprising:
When an application that the request will bind the first privacy addresses, the deprecation timer is started,
The mobile handset of claim 9.
前記メモリに格納された前記プロセッサ実行可能なソフトウェア命令は、前記プロセッサに、前記第1のプライバシーアドレスを前記アプリケーションによるアドレスへの要求の受信に先立って生成させるように構成される、請求項9記載のモバイルハンドセット。  The processor-executable software instructions stored in the memory are configured to cause the processor to generate the first privacy address prior to receiving a request for an address by the application. Mobile handset. 前記メモリに格納された前記プロセッサ実行可能なソフトウェア命令は、前記プロセッサに、前記第2のプライバシーアドレスに重複アドレス判定を行うこと更に含むステップを実行させる、請求項9記載のモバイルハンドセット。  The mobile handset of claim 9, wherein the processor executable software instructions stored in the memory cause the processor to further comprise performing a duplicate address determination on the second privacy address. 前記メモリに格納された前記プロセッサ実行可能なソフトウェア命令は、前記プロセッサに、前記アプリケーションが前記第1のプライバシーアドレスをアンバインドするとき、前記第1のプライバシーアドレスを削除することを更に含むステップを実行させる、請求項10記載のモバイルハンドセット。  The processor-executable software instructions stored in the memory perform steps further comprising deleting the first privacy address when the application unbinds the first privacy address to the processor. The mobile handset according to claim 10. 前記メモリに格納された前記プロセッサ実行可能なソフトウェア命令は、
前記プロセッサに、
前記第1のプライバシーアドレスにバインドされたアプリケーションの数を示す前記第1のプライバシーアドレスの参照カウントを保持し、
(1)前記デプリケーションタイマが終了したとき、及び(2)前記参照カウントがゼロに等しくなったとき、前記前記第1のプライバシーアドレスを削除する
ことを更に含むステップを実行させる、請求項11記載のモバイルハンドセット。
The processor executable software instructions stored in the memory are:
In the processor,
Holding a reference count of the first privacy address indicating the number of applications bound to the first privacy address;
12. A step further comprising: (1) when the depletion timer expires; and (2) deleting the first privacy address when the reference count is equal to zero. Mobile handset.
前記メモリに格納された前記プロセッサ実行可能なソフトウェア命令は、
前記プロセッサに、
前記アプリケーションが、予め設定された期間内に前記第1のプライバシーアドレスをバインドしない場合、前記第1のプライバシーアドレスを削除し、
前記第1のプライバシーアドレスは削除されることを前記アプリケーションに通知することを更に含むステップを実行させる、請求項9記載のモバイルハンドセット。
The processor executable software instructions stored in the memory are:
In the processor,
If the application does not bind the first privacy address within a preset time period, delete the first privacy address;
The mobile handset of claim 9, further comprising the step of notifying the application that the first privacy address is deleted.
第1のプライバシーアドレスをメモリから呼び出す手段と、
前記第1のプライバシーアドレスをアプリケーションに割り当てる手段と、
第2のプライバシーアドレスを直ちに生成する手段と、
前記第2のプライバシーアドレスを前記メモリに格納する手段と
前記アプリケーションが前記第1のプライバシーアドレスをバインドするとき、前記第1のプライバシーアドレスの存続期間を測定するために、デプリケーションタイマを開始する手段と、
を備える、モバイルハンドセット。
Means for calling the first privacy address from memory ;
Means for assigning the first privacy address to an application;
Means for immediately generating a second privacy address;
Means for storing the second privacy address in the memory ;
Means for starting a deprecation timer to measure the lifetime of the first privacy address when the application binds the first privacy address;
Mobile handset with
前記アプリケーションが一意なアドレスを要求しているか判定する手段と、
前記アプリケーションが一意なアドレスを要求している場合、前記第1のプライバシーアドレスを前記アプリケーションのみに割り当てる手段と
を更に備える、請求項17記載のモバイルハンドセット。
Means for determining whether the application is requesting a unique address;
18. The mobile handset of claim 17, further comprising: means for assigning the first privacy address only to the application if the application requires a unique address.
前記アプリケーションが共有アドレスを要求しているか判定する手段と、
前記アプリケーションが共有アドレスを要求している場合、共有アドレスを要求している他のアプリケーションへの割り当てのために前記第1のプライバシーアドレスをメモリに保持している間、前記第1のプライバシーアドレスを前記アプリケーションに割り当てる手段と
を更に備え、
前記要求しているアプリケーションが前記第1のプライバシーアドレスをバインドするとき、前記デプリケーションタイマが開始される、
請求項17記載のモバイルハンドセット。
Means for determining whether the application requests a shared address;
If the application is requesting a shared address, the first privacy address is stored while holding the first privacy address in memory for assignment to another application requesting a shared address. Means for assigning to said application;
Further comprising
When an application that the request will bind the first privacy addresses, the deprecation timer is started,
The mobile handset of claim 17.
前記第1のプライバシーアドレスを、前記アプリケーションによるアドレスへの要求の受信に先立って生成する手段を更に備える、請求項17記載のモバイルハンドセット。  The mobile handset of claim 17, further comprising means for generating the first privacy address prior to receiving a request for an address by the application. 前記第2のプライバシーアドレスに重複アドレス判定を行う手段を更に備える、請求項17記載のモバイルハンドセット。  The mobile handset of claim 17, further comprising means for performing a duplicate address determination on the second privacy address. 前記アプリケーションが前記第1のプライバシーアドレスをアンバインドするとき、前記第1のプライバシーアドレスを削除する手段を更に備える、請求項18記載のモバイルハンドセット。  The mobile handset of claim 18, further comprising means for deleting the first privacy address when the application unbinds the first privacy address. 前記第1のプライバシーアドレスにバインドされたアプリケーションの数を示す前記第1のプライバシーアドレスの参照カウントを保持する手段と、
(1)前記デプリケーションタイマが終了したとき、及び(2)前記参照カウントがゼロに等しくなったとき、前記前記第1のプライバシーアドレスを削除する手段と
を更に備える、請求項19記載のモバイルハンドセット。
Means for maintaining a reference count of the first privacy address indicating the number of applications bound to the first privacy address;
20. The mobile handset of claim 19, further comprising: (1) when the depletion timer expires; and (2) when the reference count equals zero, means for deleting the first privacy address. .
前記アプリケーションが、予め設定された期間内に前記第1のプライバシーアドレスをバインドしない場合、前記第1のプライバシーアドレスを削除する手段と、
前記第1のプライバシーアドレスは削除されることを前記アプリケーションに通知する手段と
を更に備える、請求項17記載のモバイルハンドセット。
Means for deleting the first privacy address if the application does not bind the first privacy address within a preset period;
The mobile handset of claim 17, further comprising means for notifying the application that the first privacy address is deleted.
プロセッサに、
第1のプライバシーアドレスをメモリから呼び出し、
前記第1のプライバシーアドレスをアプリケーションに割り当て、
第2のプライバシーアドレスを直ちに生成し、
前記第2のプライバシーアドレスを前記メモリに格納し、
前記アプリケーションが前記第1のプライバシーアドレスをバインドするとき、前記第1のプライバシーアドレスの存続期間を測定するために、デプリケーションタイマを開始する
ことを含むステップを実行させるように構成された、プロセッサ実行可能な命令を格納した、プロセッサ読み取り可能な有形の記憶媒体。
To the processor,
Call the first privacy address from memory ,
Assigning the first privacy address to an application;
Immediately generate a second privacy address,
Storing the second privacy address in the memory ;
A processor implementation configured to cause a step comprising starting a deprecation timer to measure a lifetime of the first privacy address when the application binds to the first privacy address. A processor-readable tangible storage medium that stores possible instructions.
前記格納されたプロセッサ実行可能なソフトウェア命令は、
前記プロセッサに、
前記アプリケーションが一意なアドレスを要求しているか判定し、
前記アプリケーションが一意なアドレスを要求している場合、前記第1のプライバシーアドレスを前記アプリケーションのみに割り当てる
ことを更に含むステップを実行させるように構成される、請求項25記載のプロセッサ読み取り可能な有形の記憶媒体。
The stored processor-executable software instructions are:
In the processor,
Determine if the application requires a unique address;
26. The processor readable tangible of claim 25, wherein the processor readable tangible is further configured to perform a step further comprising: assigning the first privacy address only to the application if the application requires a unique address. Storage medium.
前記格納されたプロセッサ実行可能なソフトウェア命令は、
前記プロセッサに、
前記アプリケーションが共有アドレスを要求しているか判定し、
前記アプリケーションが共有アドレスを要求している場合、共有アドレスを要求している他のアプリケーションへの割り当てのために前記第1のプライバシーアドレスをメモリに保持している間、前記第1のプライバシーアドレスを前記アプリケーションに割り当て
ことを更に含むステップを実行させるように構成され、
前記要求しているアプリケーションが前記第1のプライバシーアドレスをバインドするとき、前記デプリケーションタイマ開始される、
請求項25記載のプロセッサ読み取り可能な有形の記憶媒体。
The stored processor-executable software instructions are:
In the processor,
Determine if the application is requesting a shared address;
If the application is requesting a shared address, the first privacy address is stored while holding the first privacy address in memory for assignment to another application requesting a shared address. to assign to the application
Configured to perform a step further comprising:
When an application that the request will bind the first privacy addresses, the deprecation timer is started,
26. A processor-readable tangible storage medium according to claim 25.
前記格納されたプロセッサ実行可能なソフトウェア命令は、
前記プロセッサに、
前記第1のプライバシーアドレスは、前記アプリケーションによるアドレスへの要求の受信に先立って生成させるように構成される、請求項25記載のプロセッサ読み取り可能な有形の記憶媒体。
The stored processor-executable software instructions are:
In the processor,
26. The processor readable tangible storage medium of claim 25, wherein the first privacy address is configured to be generated prior to receiving a request for an address by the application.
前記格納されたプロセッサ実行可能なソフトウェア命令は、
前記プロセッサに、
前記第2のプライバシーアドレスに重複アドレス判定を行うこと
を更に含むステップを実行させるように構成される、請求項25記載のプロセッサ読み取り可能な有形の記憶媒体。
The stored processor-executable software instructions are:
In the processor,
26. The processor readable tangible storage medium of claim 25, further configured to cause a step further comprising: performing a duplicate address determination on the second privacy address.
前記格納されたプロセッサ実行可能なソフトウェア命令は、
前記プロセッサに、
前記アプリケーションが前記第1のプライバシーアドレスをアンバインドするとき、前記第1のプライバシーアドレスを削除する
ことを更に含むステップを実行させるように構成される、請求項26記載のプロセッサ読み取り可能な有形の記憶媒体。
The stored processor-executable software instructions are:
In the processor,
27. The processor-readable tangible storage of claim 26, further configured to cause a step further comprising: deleting the first privacy address when the application unbinds the first privacy address. Medium.
前記格納されたプロセッサ実行可能なソフトウェア命令は、
前記プロセッサに、
前記第1のプライバシーアドレスにバインドされたアプリケーションの数を示す前記第1のプライバシーアドレスの参照カウントを保持し、
(1)前記デプリケーションタイマが終了したとき、及び(2)前記参照カウントがゼロに等しくなったとき、前記前記第1のプライバシーアドレスを削除する
ことを更に含むステップを実行させるように構成される、請求項27記載のプロセッサ読み取り可能な有形の記憶媒体。
The stored processor-executable software instructions are:
In the processor,
Holding a reference count of the first privacy address indicating the number of applications bound to the first privacy address;
(1) when the depletion timer expires, and (2) when the reference count becomes equal to zero, the step is further configured to execute the step further comprising: deleting the first privacy address 28. A processor-readable tangible storage medium according to claim 27.
前記格納されたプロセッサ実行可能なソフトウェア命令は、
前記プロセッサに、
前記アプリケーションが、予め設定された期間内に前記第1のプライバシーアドレスをバインドしない場合、前記第1のプライバシーアドレスを削除し、
前記第1のプライバシーアドレスは削除されることを前記アプリケーションに通知することを更に含むステップを実行させるように構成される、請求項25記載のプロセッサ読み取り可能な有形の記憶媒体。
The stored processor-executable software instructions are:
In the processor,
If the application does not bind the first privacy address within a preset time period, delete the first privacy address;
26. The processor readable tangible storage medium of claim 25, further configured to cause the process to further include notifying the application that the first privacy address is deleted.
JP2009530549A 2006-09-25 2007-09-24 How to generate privacy addresses efficiently Expired - Fee Related JP4908591B2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US82689506P 2006-09-25 2006-09-25
US60/826,895 2006-09-25
US11/859,766 2007-09-22
US11/859,766 US8429305B2 (en) 2006-09-25 2007-09-22 Method for efficiently generating privacy addresses
PCT/US2007/079339 WO2008039729A2 (en) 2006-09-25 2007-09-24 Method for efficiently generating privacy addresses

Publications (2)

Publication Number Publication Date
JP2010504720A JP2010504720A (en) 2010-02-12
JP4908591B2 true JP4908591B2 (en) 2012-04-04

Family

ID=39224857

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009530549A Expired - Fee Related JP4908591B2 (en) 2006-09-25 2007-09-24 How to generate privacy addresses efficiently

Country Status (7)

Country Link
US (1) US8429305B2 (en)
EP (1) EP2087710B1 (en)
JP (1) JP4908591B2 (en)
KR (1) KR101124045B1 (en)
CN (1) CN104702712A (en)
TW (1) TW200830789A (en)
WO (1) WO2008039729A2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7688196B2 (en) * 2006-12-19 2010-03-30 Dewayne Newell Hannah Intrinsically safe communication and tracking system
JP4347358B2 (en) * 2007-03-29 2009-10-21 株式会社沖データ Image processing apparatus and image processing system
US9042549B2 (en) * 2009-03-30 2015-05-26 Qualcomm Incorporated Apparatus and method for address privacy protection in receiver oriented channels
US9306902B2 (en) * 2012-08-29 2016-04-05 Qualcomm Incorporated Embedded thin DHCP for wi-fi direct to provide an IP address during connection establishment
KR102236175B1 (en) * 2015-08-18 2021-04-06 한국전자통신연구원 METHOD OF DEFINING AN INTERFACE IDENTIFIER(IID) OF IPv6 ADDRESS, AND A COMMUNICATION DEVICE OPERATING THE SAME

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006020262A (en) * 2004-05-31 2006-01-19 Ricoh Co Ltd Image forming apparatus, information processor, service providing method, and ipsec setting method

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10320323A (en) 1997-05-15 1998-12-04 Hewlett Packard Japan Ltd Server computer and method for controlling server computer and recording medium for recording program for controlling server computer
JP3538527B2 (en) 1997-08-05 2004-06-14 株式会社東芝 Wireless communication system and wireless communication method
US7051087B1 (en) 2000-06-05 2006-05-23 Microsoft Corporation System and method for automatic detection and configuration of network parameters
GB2366705B (en) * 2000-08-29 2004-07-14 Motorola Inc Communications system, communications unit and method of operation
JP4020576B2 (en) * 2000-09-14 2007-12-12 株式会社東芝 Packet transfer method, mobile terminal device and router device
US6928478B1 (en) * 2001-06-25 2005-08-09 Network Appliance, Inc. Method and apparatus for implementing a MAC address pool for assignment to a virtual interface aggregate
US20030026230A1 (en) * 2001-08-02 2003-02-06 Juan-Antonio Ibanez Proxy duplicate address detection for dynamic address allocation
JP3725070B2 (en) * 2001-12-21 2005-12-07 株式会社東芝 Network system, router, host, prefix management method and IP address management method
US8090828B2 (en) * 2002-03-05 2012-01-03 Cisco Technology, Inc. Method and apparatus for reusing DHCP addresses in home addresses of mobile IP clients
JP4014923B2 (en) * 2002-04-30 2007-11-28 株式会社日立製作所 Shared memory control method and control system
US20050160136A1 (en) * 2002-09-09 2005-07-21 Fujitsu Limited Information providing system, device thereof, address setting method, program thereof, and storage medium thereof
US20050041671A1 (en) * 2003-07-28 2005-02-24 Naoya Ikeda Network system and an interworking apparatus

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006020262A (en) * 2004-05-31 2006-01-19 Ricoh Co Ltd Image forming apparatus, information processor, service providing method, and ipsec setting method

Also Published As

Publication number Publication date
TW200830789A (en) 2008-07-16
CN104702712A (en) 2015-06-10
WO2008039729A3 (en) 2008-07-17
KR20090073206A (en) 2009-07-02
US8429305B2 (en) 2013-04-23
JP2010504720A (en) 2010-02-12
WO2008039729A2 (en) 2008-04-03
US20080075083A1 (en) 2008-03-27
KR101124045B1 (en) 2012-03-28
EP2087710A2 (en) 2009-08-12
EP2087710B1 (en) 2013-06-26

Similar Documents

Publication Publication Date Title
JP6989226B2 (en) Methods, devices, and systems for establishing sessions
KR100636186B1 (en) Bidirectional tunnel establishment method and system thereof
JP5095861B2 (en) Method and system for maintaining connection between terminal and server in communication system
KR100965676B1 (en) Method and system for supporting handoff proceduer of a mobile node in a mobile communication supporting proxy mobile internet protocol
JP4908591B2 (en) How to generate privacy addresses efficiently
CN113206894B (en) Method and device for discovering DNS server, computer equipment and storage medium
JP2011526774A (en) Method and apparatus for ensuring IPv6 uniqueness in a mobile subnet environment
WO2014086167A1 (en) Mobile terminal and address allocation method and system thereof
JP5447522B2 (en) Communication between client and server in mobile radio communication device
JP5502947B2 (en) Method and apparatus for matching dynamic host configuration protocol (DHCP) release messages
WO2018006684A1 (en) Message processing method and device, and router
KR101213159B1 (en) Mobile terminal and method for assigning ip address in wireless network
JPWO2010082509A1 (en) SCTP communication method
KR101221596B1 (en) Mobile terminal and method for notifying ip address to access router in wireless network
JP3676347B2 (en) IP address management apparatus, IP address management method, and computer program
WO2017000122A1 (en) Dual stack address management method and first network element
JP6433240B2 (en) COMMUNICATION DEVICE, COMMUNICATION DEVICE CONTROL METHOD, COMPUTER PROGRAM
Dunmore et al. of Deliverable: Final MIPv6 Support Guide
CN101523871A (en) Method for efficiently generating privacy addresses
JP2008312225A (en) Address management device and position management device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110111

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110411

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110418

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110511

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110518

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110609

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20111213

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120112

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4908591

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees