JP2008011072A - Transmitting and receiving method - Google Patents

Transmitting and receiving method Download PDF

Info

Publication number
JP2008011072A
JP2008011072A JP2006178382A JP2006178382A JP2008011072A JP 2008011072 A JP2008011072 A JP 2008011072A JP 2006178382 A JP2006178382 A JP 2006178382A JP 2006178382 A JP2006178382 A JP 2006178382A JP 2008011072 A JP2008011072 A JP 2008011072A
Authority
JP
Japan
Prior art keywords
information
path
database
child thread
communication
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.)
Pending
Application number
JP2006178382A
Other languages
Japanese (ja)
Inventor
Taku Toyokawa
卓 豊川
Hisao Kumai
久雄 熊井
Toru Sugayama
亨 菅山
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.)
Sharp Corp
Original Assignee
Sharp Corp
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 Sharp Corp filed Critical Sharp Corp
Priority to JP2006178382A priority Critical patent/JP2008011072A/en
Publication of JP2008011072A publication Critical patent/JP2008011072A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To provide a transmitting and receiving method of selecting a combination of a flow and a path with which two terminals which are communicating with each other can communicate with correct data even if two or more events occur to one or both of the terminals simultaneously. <P>SOLUTION: When an event occurs, a child process or child thread is generated and a parent process is made to be always adaptive. Further, a lock function is provided for data that a communication management section holds, and sequential access is gained. Further, a message reported through a network is provided with a management number to judge which information is latest. Further, when communication media are transmitted, down path information is sent back. <P>COPYRIGHT: (C)2008,JPO&INPIT

Description

本発明は、MobileIPなどの第三層移動管理プロトコルにおける通信路選択機能を有し、アプリケーションに帯域を割り当てる送受信方法に関する。   The present invention relates to a transmission / reception method having a communication path selection function in a third layer mobility management protocol such as MobileIP and allocating a band to an application.

近年、MobileIPv6(Mobility Support in IPv6、RFC3775)等のIP層でのモビリティサポートの研究・開発が盛んである。MobileIPは、(OSI;Open Systems Interconnection)7階層モデルにおける第三層のプロトコルで、上位アプリケーションからクライアントの移動(ネットワーク/通信メディアの切り替えや、通信の瞬断など)を隠蔽し、通信を継続させる技術である。このMobileIPは、モバイルノード(MN:Mobile Node)、ホームエージェント(HA:Home Agent)、コレスポンデントノード(CN:Correspondent Node)と呼ばれるノードから構成される。   In recent years, research and development of mobility support in the IP layer such as MobileIPv6 (Mobility Support in IPv6, RFC3775) has been actively conducted. MobileIP is a third-layer protocol in the (OSI; Open Systems Interconnection) 7-layer model that hides the movement of clients (network / communication media switching, communication interruption, etc.) from higher-level applications and continues communication. Technology. This MobileIP is composed of nodes called a mobile node (MN), a home agent (HA), and a correspondent node (CN).

モバイルノード(MN)は、ホームアドレスと呼ばれる常に不変なアドレスを有しており、そのアドレスを管理するノードがホームエージェント(HA)である。MNはHAのリンクであるホームリンク以外のネットワークに接続した際、ケアオブアドレス(CoA:Care-of Address)と呼ばれるアドレスを何らかの手段(RA、DHCPv6など)で得る。ここで得たCoAは、HAにBinding Updateというメッセージで通知される。   A mobile node (MN) always has an invariable address called a home address, and a node that manages the address is a home agent (HA). When the MN connects to a network other than the home link that is the HA link, the MN obtains an address called a care-of address (CoA) by some means (RA, DHCPv6, etc.). The CoA obtained here is notified to the HA by a message “Binding Update”.

この結果、MNと通信したいノード(=CN)がホームアドレス宛にパケットを送信すると、ホームアドレスはHAの管理するリンクのアドレスであるので、一旦、HAに届く。その際に、HAは、ホームアドレスを関連付けされたCoA宛に転送する。この結果、常にMNは、ホームアドレスで通信可能となる。MNにおいては、MN上で動作するアプリケーションが、前記ホームアドレスと呼ばれるIPアドレスを常に使用し通信する。   As a result, when a node (= CN) that wants to communicate with the MN transmits a packet addressed to the home address, the home address reaches the HA once because the home address is the address of the link managed by the HA. At that time, the HA transfers the home address to the associated CoA. As a result, the MN can always communicate with the home address. In the MN, an application operating on the MN always uses the IP address called the home address for communication.

実際のIPv6(Internet Protocol Version 6 )パケットのソースアドレスもしくはディスティネーションアドレスにはCoAを用いる。また、上位アプリケーションに移動を隠蔽するために、IPv6 over IPv6カプセル化、mobility headerなどの技術を用いる。この結果、アプリケーションにはホームアドレスを通知し、実際に用いるIPv6アドレス(CoA)を隠蔽している。その結果、前記アプリケーションは、以下のような特性を持つ。   CoA is used as the source address or destination address of an actual IPv6 (Internet Protocol Version 6) packet. Further, in order to conceal the movement from the upper application, techniques such as IPv6 over IPv6 encapsulation and mobility header are used. As a result, the home address is notified to the application, and the IPv6 address (CoA) actually used is concealed. As a result, the application has the following characteristics.

(1)ネットワークとの接続性がある際には、ホームアドレスで常に通信が可能である。(2)通信中に、複数の異なるネットワークへのハンドオーバーが出来るようになる。すなわち、MobileIP対応端末は、複数の通信メディア(例えば、NIC:Network Interface Card)を有することが可能で、前記複数の通信メディアに跨ったハンドオーバーが可能である。   (1) When there is connectivity with a network, communication is always possible using a home address. (2) During communication, handover to a plurality of different networks can be performed. That is, the MobileIP compatible terminal can have a plurality of communication media (for example, NIC: Network Interface Card), and can perform handover across the plurality of communication media.

また、MobileIPは、複数のCoAを有する場合、複数の通信メディアを同時に使用するマルチホームを実現できるといわれることが多い。しかしながら、実際のMobileIPの仕様では、マルチホームを実現することはできない。そこで、それを実現する一手段として、全てのCoAを通信相手及びHAに対して通知するべきであるとの趣旨から、複数のCoAを有する際のMobileIPの仕様である「draft-ietf-monami6-multiplecoa」が提案されている。また、複数の通信メディアを同時に使用する技術として、特許文献1が知られている。   In addition, when MobileIP has a plurality of CoAs, it is often said that it can realize multihome using a plurality of communication media simultaneously. However, in the actual MobileIP specification, multihome cannot be realized. Therefore, as one means for realizing this, since all CoAs should be notified to the communication partner and the HA, the MobileIP specification “draft-ietf-monami6- "multiplecoa" has been proposed. Further, Patent Document 1 is known as a technique for simultaneously using a plurality of communication media.

また、「draft-ietf-monami6-multiplecoa」に代表される、マルチホーム機能を有するL3モビリティプロトコルにおいては、その機能の使用価値を高めるために、END端末の通信において、ポリシールーティングの設定とアプリケーション動作の連携が必要となる。
これらの問題を解決するために、アプリケーションの嗜好に従って、アプリケーション毎にポリシールーティングを設定し、さらに、各アプリケーションはそのポリシールーティングの設定に適した帯域で通信することが可能となる技術も提案されている。
特表2004−528765号公報
In addition, in the L3 mobility protocol with multi-home function represented by “draft-ietf-monami6-multiplecoa”, policy routing setting and application operation are performed in END terminal communication in order to increase the use value of the function. Cooperation is required.
In order to solve these problems, a technology has been proposed in which policy routing is set for each application according to the preference of the application, and each application can communicate in a band suitable for the policy routing setting. Yes.
Special table 2004-528765 gazette

しかしながら、上記の提案にはシーケンス上、両END端末においていずれかの通信メディアが使用不可能になったり、または、何らかの通信メディアが使用可能になったなどのイベントが同時に発生した際の対応が、未解決のままとなっている。   However, in the above sequence, in response to a sequence, an event such that one of the communication media becomes unusable in both END terminals or an event such as the availability of some communication media occurs at the same time. It remains unresolved.

例えば、図20(A)に示すように通信開始の初期シーケンスにおいて、端末10の通信管理部はアプリケーションからのフロー情報(イニシエータとなるべきかどうかを含んだ)を受取り、イニシエータとなるべき場合には通信メディアのNIC情報を通信相手の端末11に送信する。その結果、相手からパス情報を得る。このパス情報は、上りと下りの両方が存在している。   For example, as shown in FIG. 20A, in the initial communication start sequence, the communication management unit of the terminal 10 receives flow information (including whether or not to become an initiator) from an application, and is to become an initiator. Transmits the NIC information of the communication media to the communication partner terminal 11. As a result, path information is obtained from the other party. This path information includes both uplink and downlink.

これを、通信中の両通信端末で、イベントが同時発生した場合に当てはめて見ると、以下のような状態に陥ってしまう。例えば、図20(B)に示すようにイベントが発生した通信端末側では、イニシエータとなるべく通信メディア情報を通信相手に送信する。その際、イニシエータとなるので、通信相手端末からパス情報が帰ってくることを期待する。これが双方の通信端末で同時に起きてしまうと、双方がイニシエータとなってしまい、通信メディアを受取っても、パス情報を返せない状態、いわゆるシーケンスがデッドロック状態に陥ってしまうという問題がある。   If this is applied when both events occur simultaneously in both communication terminals in communication, the following situation occurs. For example, as shown in FIG. 20B, on the communication terminal side where an event has occurred, communication media information is transmitted to the communication partner as much as possible as an initiator. At this time, since it becomes an initiator, it is expected that path information will be returned from the communication partner terminal. If this occurs simultaneously in both communication terminals, both become initiators, and there is a problem that even if communication media is received, the path information cannot be returned, that is, a so-called sequence falls into a deadlock state.

本発明においては、上述の問題を解決するために、イベントが生じた場合は子プロセスもしくは子スレッドを生成してそのイベントに対応し、親プロセスは常にイベントに対応可能とする。また、通信管理部が保持するデータにロック機能を設け、アクセスがシーケンシャルに行われるようにする。さらに、ネットワークを介して通知されるメッセージには管理番号を設けてどの情報が最新のものかを判断できるようにする。また、通信メディア情報を送信すると必ず下り又は上りのパス情報が送られてくるようにする。   In the present invention, in order to solve the above-described problem, when an event occurs, a child process or a child thread is generated to respond to the event, and the parent process can always respond to the event. In addition, a lock function is provided for data held by the communication management unit so that access is performed sequentially. Further, a management number is provided in a message notified via the network so that it can be determined which information is the latest. Also, whenever communication media information is transmitted, downlink or uplink path information is transmitted.

本発明における送受信方法は、2つの通信端末間で、1以上のパスで、1以上のフローを送受信する際に、フロー情報を受信、自分側通信メディアの変化の受信、パス状態取得終了を受信、パス情報を受信、相手側通信メディアの変化を受信、パス優先順位を受信、選択されたパス情報を受信のイベントの1つ又は複数を検出した際に、各イベント用の子スレッドを生成してフローとパスの組み合わせを選択することを特徴とする。   The transmission / reception method according to the present invention receives flow information, reception of change of own communication media, and reception of completion of path status when transmitting / receiving one or more flows between two communication terminals using one or more paths. When receiving one or more events of receiving path information, receiving changes in communication media on the other side, receiving path priority, and receiving selected path information, create a child thread for each event And selecting a combination of flow and path.

前記の各イベント用の子スレッドは、データベースをロックして各イベントに関わる情報のを書き込み又は読み出し等の所定の処理を行った後、データベースをアンロックし、次いで子スレッドは相手通信端末に情報を送信するなどして終了する。
また、通信端末は、上記の送受信を行うに際して、通信相手の通信相手情報として、少なくとも通信相手アドレスを有する他に、自分側通信メディア管理番号、相手側通信メディア管理番号、自分側パス管理番号、相手側パス管理番号、自分側優先順位管理番号、相手側優先順位管理番号の何れかを用いている。
The child thread for each event locks the database, performs a predetermined process such as writing or reading information related to each event, unlocks the database, and then the child thread sends information to the partner communication terminal. Quit by sending etc.
In addition, when performing the above transmission / reception, the communication terminal has at least the communication partner address as communication partner information of the communication partner, as well as its own communication media management number, the other party communication media management number, its own path management number, Any one of the other party path management number, the own party priority management number, and the other party priority management number is used.

本発明によれば、通信中の2つの通信端末において同時にイベントが発生しても、デッドロックを起さずに通信を続けることが可能となる。また、微小時間内に複数のイベントが発生した場合にも、最終的に正しい情報をもつことが可能となり、正しい通信を続けることができる。さらに、動画ストリーミングのような一方向のアプリケーションの場合にも、特別な処理をすることなく片方向のパスのみを保持すればよくなり、無駄なデータを保持/送受信しなくてすむようになる。   According to the present invention, it is possible to continue communication without causing a deadlock even if an event occurs simultaneously in two communication terminals in communication. Further, even when a plurality of events occur within a minute time, it is possible to finally have correct information, and correct communication can be continued. Furthermore, even in the case of a one-way application such as video streaming, it is only necessary to hold a one-way path without performing special processing, and it is not necessary to hold / transmit / receive useless data.

図により本発明の概略を説明する。図1(A)は動画ストリーミングの例を用いたシステム構成の模式図で、一方の端末10は、ホームアドレスとしてIP10を有し、通信メディアとしてNIC100及びNIC101を有していて、その双方でインターネットに接続しているとする。他方の端末11(端末10の通信相手端末)は、ホームアドレスとしてIP11を有し、通信メディアとしてNIC110及びNIC111を有していて、そのうちのNIC110でインターネットに接続しているとする。   The outline of the present invention will be described with reference to the drawings. FIG. 1A is a schematic diagram of a system configuration using an example of video streaming. One terminal 10 has an IP 10 as a home address, NIC 100 and NIC 101 as communication media, and both of them have the Internet. Suppose you are connected to. The other terminal 11 (communication partner terminal of the terminal 10) has IP11 as a home address, NIC110 and NIC111 as communication media, and it is assumed that the NIC 110 is connected to the Internet.

端末10及び端末11の構成は、概略として動画の送信/受信のアプリケーション(13a,13b)、通信管理部(14a,14b)、MultipleCoA部(15a,15b)から成る。ここで、通信管理部(14a,14b)は、図1(B)に示すように、通信メディア監視モジュール16、パス管理モジュール17、パス状態取得モジュール18から成る。通信メディア監視モジュール16は、主に通信メディアのNICを監視し、そのNICが使用可能かどうかを判断したり、MultipleCoAから上がるイベントを受信する機能を有していて、それらの通信メディア情報をパス管理モジュール17に通知する機能を有している。   The configuration of the terminal 10 and the terminal 11 roughly includes a moving image transmission / reception application (13a, 13b), a communication management unit (14a, 14b), and a MultipleCoA unit (15a, 15b). Here, the communication management unit (14a, 14b) includes a communication media monitoring module 16, a path management module 17, and a path status acquisition module 18, as shown in FIG. The communication media monitoring module 16 mainly has a function of monitoring the NIC of the communication media, determining whether the NIC can be used, and receiving an event raised from the MultipleCoA. It has a function of notifying the management module 17.

パス管理モジュール17は、アプリケーション(13a,13b)からのフロー情報受信機能、通信メディア監視モジュール16から通知される通信メディア情報受信機能、通信相手に通信メディア情報を送信する機能、通信相手から通信メディア情報を受信する機能、パス(通信メディアの組み合わせ)作成機能、優先順位決定機能、ポリシールーティング設定機能、帯域割当通知機能、データベース機能等を有する。
パス状態取得モジュール18は、END−ENDのパスを測定したり、パス状態サーバの保有する情報から取得したりすることにより、帯域情報や遅延時間などパスの状態を取得する機能を有している。
The path management module 17 has a function for receiving flow information from the applications (13a, 13b), a function for receiving communication media information notified from the communication media monitoring module 16, a function for transmitting communication media information to the communication partner, and a communication medium from the communication partner. It has a function for receiving information, a path (combination of communication media) creation function, a priority determination function, a policy routing setting function, a bandwidth allocation notification function, a database function, and the like.
The path state acquisition module 18 has a function of acquiring a path state such as bandwidth information and delay time by measuring an END-END path or acquiring it from information held by a path state server. .

ここで、例えば、通信端末に以下のようなイベント発生があるとする。
(1)通信端末を起動する。
(2)2つの通信端末間で通信開始する。
(3)通信端末10側において、通信メディアNIC101が使用不可能となる。
(4)その後、通信端末11側の通信メディアNIC111が使用可能となる。
Here, for example, it is assumed that the following event occurs in the communication terminal.
(1) Start the communication terminal.
(2) Start communication between two communication terminals.
(3) On the communication terminal 10 side, the communication media NIC 101 becomes unusable.
(4) Thereafter, the communication media NIC 111 on the communication terminal 11 side can be used.

まず、(1)の通信端末の起動時の処理について、図2のシーケンス図により説明をする。例えば、端末10の通信管理部14aが起動されると、通信メディア監視モジュール16が現在使用可能な通信メディアNICを判断し、使用可能な通信メディアのリストを通信メディア情報としてパス管理モジュール17に送信する。パス管理モジュール17では、通信メディア情報を受取ったことをトリガに子スレッドを生成する。その子スレッドは、パス管理モジュール17が有しているデータベース機能にアクセスし、まず、データベースにロックをかける。この結果、データベースがアンロックをされるまでは、この子スレッド以外でのデータベースの読み込みや書き込みが出来なくなる。   First, the process at the time of starting the communication terminal (1) will be described with reference to the sequence diagram of FIG. For example, when the communication management unit 14a of the terminal 10 is activated, the communication media monitoring module 16 determines the currently usable communication media NIC and transmits a list of available communication media to the path management module 17 as communication media information. To do. The path management module 17 generates a child thread triggered by the reception of communication media information. The child thread accesses the database function of the path management module 17 and first locks the database. As a result, the database cannot be read or written by other than this child thread until the database is unlocked.

ところで、以下に本発明を説明するに際して、上記の「データベースをロックする」という記載が頻繁に出てくるが、これは、Aというスレッドでデータベースをロックしている間は、Bというスレッドがデータベースにアクセスしようとするのを拒否することを言う。すなわち、Bスレッドは、Aスレッドがデータベースをアンロックするまで待機することとなり、この結果、データベースへのアクセスは、必ずシーケンシャルに行われることとなる。   By the way, in the following description of the present invention, the above description “locking the database” frequently appears. This is because while the thread A is locking the database, the thread B is the database. Say to refuse to try to access. That is, the B thread waits until the A thread unlocks the database. As a result, access to the database is always performed sequentially.

図1に示すようなシステム構成において、端末10では通信メディアのNIC100とNIC101の情報が、端末11では通信メディアのNIC110の情報が書き込まれる。通信メディア情報は、最低限そのNICの持つCoA(ケアオブアドレス)を有している。この通信メディア情報を図3(A)、図3(B)に示す。図3(A)は、端末10側が有する通信メディア情報で、NIC100はCoA100というIPアドレスを持ち、上り下り共に11MbpsのNICであり、NIC101はCoA101というIPアドレスを持ち上り下り共に54MbpsのNICであることを示している。図3(B)は、端末11側が有する通信メディア情報で、NIC110はCoA110というIPアドレスを持ち、上り下り共に11MbpsのNICであることを示している。これらの通信メディア情報がデータベースに書き込まれたらデータベースをアンロックし、子スレッドは消滅する。   In the system configuration as shown in FIG. 1, information on NICs 100 and 101 of communication media is written in the terminal 10, and information on the NIC 110 of communication media is written in the terminal 11. The communication media information has at least CoA (care of address) of the NIC. The communication media information is shown in FIGS. 3 (A) and 3 (B). FIG. 3A shows communication media information on the terminal 10 side. The NIC 100 has a CoA100 IP address and is 11 Mbps NIC both upstream and downstream, and the NIC 101 has a CoA101 IP address and 54 Mbps NIC both upstream and downstream. It is shown that. FIG. 3B shows communication media information on the terminal 11 side, and shows that the NIC 110 has an IP address of CoA 110 and is 11 Mbps NIC for both uplink and downlink. When the communication media information is written in the database, the database is unlocked and the child thread disappears.

次に、(2)の2つの通信端末間での通信開始の処理について、図1及び図4−1〜図4−6のシーケンス図により説明する。まず、図4−1に示すように、動画送信アプリケーション13bと動画受信アプリケーション13aとの間で呼制御に関する通信が行われ、フロー情報が確定する。端末10側の動画受信アプリケーション13aは、確定したフロー情報を通信管理部14aのパス管理モジュール17に通知する。このフロー情報は図5のようなデータで、フローのソースアドレスがIP11で、ディスティネーションアドレスがIP10、すなわち、このフロー情報は下り(端末11から端末10への方向)となっている。   Next, the process of starting communication between the two communication terminals (2) will be described with reference to the sequence diagrams of FIGS. 1 and 4-1 to 4-6. First, as illustrated in FIG. 4A, communication related to call control is performed between the moving image transmission application 13b and the moving image reception application 13a, and the flow information is determined. The moving image receiving application 13a on the terminal 10 side notifies the determined flow information to the path management module 17 of the communication management unit 14a. This flow information is data as shown in FIG. 5, the source address of the flow is IP11, the destination address is IP10, that is, the flow information is downstream (direction from the terminal 11 to the terminal 10).

また、ディスティネーションのポートは9080でソースポートは特に指定されておらず、帯域幅BW1(50kbps)に関する嗜好レベルは必須(Must)、帯域幅BW2(400kbps)に対する嗜好レベルは*1、帯域幅BW3に対する嗜好レベルは*5、遅延に対する嗜好レベルが*1、価格に対する嗜好レベルが*3のフロー情報となっている。通信管理部14aのパス管理モジュール17では、下りのフロー情報をアプリケーションから通知されたことをトリガに動作を開始する。下りフロー情報を受取ったパス管理モジュール17は、子スレッドを生成する。   The destination port is 9080, the source port is not specified, the preference level for the bandwidth BW1 (50 kbps) is essential (Must), the preference level for the bandwidth BW2 (400 kbps) is * 1, and the bandwidth BW3 The preference information is * 5, the preference level for delay is * 1, and the preference level for price is * 3. The path management module 17 of the communication management unit 14a starts to operate when triggered by notification of downstream flow information from the application. The path management module 17 that has received the downstream flow information generates a child thread.

生成された子スレッドは、まず、パス管理モジュール17のデータベースをロックし、取得したフロー情報を書き込む。次に、該当する通信相手に関する通信相手情報を読み込む。図4−1に示す本例の場合、この情報は存在しないが、既に他のアプリケーションによる通信がある場合はこの情報が存在することもある。次いで、通信相手(端末11)に関する下りパスが存在するかどうかをチェックする。これは、他のアプリケーションによって端末10−端末11間の通信が行われていた場合には、既に下りパスが存在するケースがある。ただ、本例では他のアプリケーションはなく、下りパスがデータベースに存在しないので、自分側(端末10側)通信メディア情報を読み込み、通信相手情報を書き込む。   The generated child thread first locks the database of the path management module 17 and writes the acquired flow information. Next, communication partner information regarding the corresponding communication partner is read. In the case of this example shown in FIG. 4A, this information does not exist, but this information may exist when there is communication by another application. Next, it is checked whether there is a downlink path related to the communication partner (terminal 11). This is because there is a case where a downlink path already exists when communication between the terminal 10 and the terminal 11 is performed by another application. However, in this example, there is no other application, and the downlink path does not exist in the database, so the communication media information on the own side (terminal 10 side) is read and the communication partner information is written.

このとき、通信相手情報の自分側通信メディア管理番号を、先に読み込んだ通信相手情報の通信メディア管理番号に「+1」して書き込む。本例では、読み込んだ際に通信相手情報が無かったため、図6(A)のように、自分側通信メディア情報管理番号を「1」としたので、相手側通信メディア管理番号は「0」で、相手アドレスにはIP11として情報を書き込む。その後、データベースをアンロックし、通信相手(端末11)の通信管理部のパス管理モジュール17に、図3(A)に示すような通信メディア情報と自分側(端末10側)通信メディア情報管理番号を通知する。   At this time, the own communication media management number of the communication partner information is written as “+1” to the communication media management number of the communication partner information read earlier. In this example, since there was no communication partner information at the time of reading, as shown in FIG. 6A, the own communication media information management number is set to “1”, so the counterpart communication media management number is “0”. In the other party address, information is written as IP11. Thereafter, the database is unlocked, and the communication media information as shown in FIG. 3A and the communication media information management number on its own side (terminal 10 side) are displayed in the path management module 17 of the communication management unit of the communication partner (terminal 11). To be notified.

続いて、図4−2により、端末10から通信メディア情報を受取った端末11側の処理について説明する。端末11では、端末10から通信メディア情報を受取ったことをトリガに、子スレッドを生成する。生成された子スレッドは、まず、データベースをロックする。次に、通信相手情報(端末10)を読み込んで、データベース中の相手側通信メディア情報管理番号と、いま端末10から受取った通信メディア情報に添付された端末10側の通信メディア情報管理番号とを比べ、受取った管理番号の方が大きかった場合はチェックOKとする。図4−2の本例では、通信相手情報が存在しないので相手側通信メディア情報管理番号=0と見なし、1>0なので、チェックOKとなる。チェックOKとなったことにより、通知された端末10の通信メディア情報をデータベースに書き込む。   Next, a process on the terminal 11 side that has received the communication media information from the terminal 10 will be described with reference to FIG. The terminal 11 generates a child thread triggered by receiving communication media information from the terminal 10. The created child thread first locks the database. Next, the communication partner information (terminal 10) is read, and the partner communication media information management number in the database and the communication media information management number on the terminal 10 side attached to the communication media information received from the terminal 10 are obtained. In comparison, if the received management number is larger, the check is OK. In this example of FIG. 4B, since there is no communication partner information, it is considered that the partner communication media information management number = 0 and 1> 0, so the check is OK. When the check is OK, the notified communication media information of the terminal 10 is written in the database.

また、自分側(端末11)の通信メディア情報を読み込み、相手の通信メディア情報と自分の通信メディア情報とから図7(A)に示すようなパス情報を作成する。パス情報は送信元端末識別子SrcAddr、送信先端末識別子となるDstAddr、そのパスでの使用可能帯域幅(ここではブランク)、遅延時間、価格、送信元の通信メディアであるSrcNIC、送信先の通信メディアであるDstNICなどの情報を含む。本例では、パス1,パス2共に送信元の端末はIP11を持つ端末すなわち端末11で、送信先の端末はIP10を持つ端末10で、パス1,パス2共に送信元のNICはNIC110だが、送信先のNICだけ異なって、パス1ではNIC100に、パス2ではNIC101を利用することを示している。   Also, the communication media information of the own side (terminal 11) is read, and path information as shown in FIG. 7A is created from the communication media information of the other party and the own communication media information. The path information includes a transmission source terminal identifier SrcAddr, a transmission destination terminal identifier DstAddr, usable bandwidth (blank here) in the path, delay time, price, transmission communication medium SrcNIC, transmission destination communication medium Information such as DstNIC. In this example, the source terminal for both path 1 and path 2 is a terminal having IP11, that is, terminal 11, the destination terminal is terminal 10 having IP10, and the source NIC for both path 1 and path 2 is NIC110. Only the destination NIC is different, indicating that the NIC 100 is used in the path 1 and the NIC 101 is used in the path 2.

このパス情報をデータベースに書き込み、通信相手情報の自分側パス管理番号に先ほど得た値に「+1」としてデータベースに書き込む。本例では「0+1」で「1」、また、図6(B)に示すように相手側通信メディア情報管理番号も受取った数字(=1)として書き込む。これらの書込みが終了したら、データベースをアンロックする。そして、自分側(端末11側)パス管理番号(=1)と共にパス情報を、端末10の通信管理部のパス管理モジュール17に送信する。この子スレッドは、パス情報を送信したら消滅する。   This path information is written in the database, and “+1” is written in the database as the value obtained earlier for the local path management number of the communication partner information. In this example, “0 + 1” is “1”, and the other party communication media information management number is written as the received number (= 1) as shown in FIG. When these writes are finished, the database is unlocked. Then, the path information is transmitted to the path management module 17 of the communication management unit of the terminal 10 together with its own (terminal 11) path management number (= 1). This child thread disappears when the path information is transmitted.

次に、図4−3により、端末11からパス情報を受取った後の端末10側における処理について説明する。端末10のパス管理モジュール17は、端末11からパス情報を受取り、子スレッドを生成し、データベースをロックする。次に、通信相手情報を読み込み、相手側パス管理番号と、受取った端末11側パス管理番号とを比べ、受取った管理番号の方が大きかった場合には、チェックOKとし、受取ったパス情報をデータベースに書き込む。また、通信相手情報の相手側パス管理番号に「+1」してデータベースに書き込み、データベースをアンロックする。ここで得たパス情報をパス状態取得モジュールに送信してパス状態の取得を依頼し、この子スレッドは消滅する。   Next, processing on the terminal 10 side after receiving path information from the terminal 11 will be described with reference to FIG. The path management module 17 of the terminal 10 receives the path information from the terminal 11, generates a child thread, and locks the database. Next, the communication partner information is read, the partner path management number is compared with the received terminal 11 side path management number, and if the received management number is larger, the check is OK, and the received path information is Write to the database. Also, “+1” is added to the partner path management number of the communication partner information, and the database is written into the database to unlock the database. The path information obtained here is sent to the path status acquisition module to request acquisition of the path status, and this child thread disappears.

パス状態取得モジュール18では、受取ったパス情報をもとにパスの状態を取得する。パスの状態の取得は、ネットワーク上のサーバから取得しても良いし、実際にEND−ENDで測定しても良い。パス状態取得モジュールでのネットワーク状態の取得が終わると、取得が終了した旨がパス管理モジュールに通知される(図4−4)。このデータ(取得終了)は、パス情報の使用可能帯域/遅延時間/価格などの値となっている。   The path status acquisition module 18 acquires the path status based on the received path information. The path status may be acquired from a server on the network, or actually measured by END-END. When the network status is acquired by the path status acquisition module, the path management module is notified that the acquisition has been completed (FIG. 4-4). This data (acquisition completion) has values such as usable bandwidth / delay time / price of path information.

図4−4は、図4−3に引続く処理シーケンスを示し、端末10のパス管理モジュール17は、取得終了のメッセージを受けて、使用可能帯域幅/遅延時間/価格などの値を入れることが可能となる。パスにこの値が入った後のパス情報を図7(B)に示す。まず、パス管理モジュール17は、受信したパス状態取得終了メッセージから子スレッドの生成と図7(B)のようなパス情報を作成し、データベースをロックした上でパス情報に上書きする。次に、パス情報を読み込み、さらにフロー情報を読み込んで、パス優先順位を決定する。   FIG. 4-4 shows a processing sequence subsequent to FIG. 4-3, and the path management module 17 of the terminal 10 inputs a value such as usable bandwidth / delay time / price in response to the acquisition end message. Is possible. FIG. 7B shows path information after this value is entered in the path. First, the path management module 17 creates a child thread and path information as shown in FIG. 7B from the received path status acquisition end message, locks the database, and overwrites the path information. Next, the path information is read, and further the flow information is read to determine the path priority.

パス優先順位は、各フローとパスの組み合せで、本例ではフローが1つしかないので、パスの数と同数の組み合せが存在する。このパス優先順位は、一例として示す図8(A)のようになり、例えば、組み合せ1の場合にはフロー10−1はパス1を利用し、400kbpsで、スコアは95であり、組み合せ2の場合にはパス2を利用し、2Mbpsで、スコアは103とする。これは、端末10側としては、組み合せ2の方をより好むことを示している。このパス優先順位が決定したら、通信相手情報の自分側優先順位管理番号を読み、そこに「+1」したものを新たな自分側優先順位管理番号として、通信相手情報をデータベースに書き込み、データベースをアンロックする。次にこのパス優先順位を送信するため、孫スレッドを生成する。孫スレッドは、パス優先順位と新たな自分側優先順位管理番号を通信相手(端末11)に送信する。   The path priority order is a combination of each flow and path. In this example, there is only one flow, so there are the same number of combinations as the number of paths. This path priority is as shown in FIG. 8A as an example. For example, in the case of the combination 1, the flow 10-1 uses the path 1, 400 kbps, the score is 95, and the combination 2 In this case, path 2 is used, 2 Mbps, and the score is 103. This indicates that the terminal 10 side prefers the combination 2 more. When this path priority is determined, read the local priority management number of the communication partner information, write “+1” there as the new local priority management number, write the communication partner information to the database, and unload the database. Lock it. Next, a grandchild thread is generated to transmit this path priority. The grandchild thread transmits the path priority and the new own priority management number to the communication partner (terminal 11).

次に、図4−4に続く図4−5により、パス優先順位を受取った端末11側における処理について説明する。パス優先順位を受取った端末11のパス管理モジュール17は、子スレッド生成する。その子スレッドは、まず、データベースにロックをかける。次に、通信相手情報を読み込み、その中の相手側優先順位管理番号を取得する。「データベース内の相手側優先順位管理番号<受信した相手側優先順位管理番号」であればチェックOKとして、以下の処理を行う。まず、相手の送信してきたパス優先順位のうちの1つの組み合せを選択する。それを選択されたパス情報としてデータベースに書き込む。また、受信した相手側優先順位管理番号を通信相手情報として書き込む。その後、データベースをアンロックして、選択されたパス情報を端末10に送信する。このとき、パス優先順位は、受信した相手側優先順位管理番号で送信し、子スレッドは消滅する。   Next, processing on the terminal 11 side that has received the path priority will be described with reference to FIG. The path management module 17 of the terminal 11 that has received the path priority order generates a child thread. The child thread first locks the database. Next, the communication partner information is read, and the partner priority order management number in it is acquired. If “the other party priority management number in the database <the received other party priority management number”, the following processing is performed with the check OK. First, one combination of path priorities transmitted by the other party is selected. Write it to the database as selected path information. Also, the received partner priority management number is written as communication partner information. Thereafter, the database is unlocked, and the selected path information is transmitted to the terminal 10. At this time, the path priority is transmitted by the received partner priority management number, and the child thread disappears.

次に、図4−5に引続く図4−6により、選択されたパス情報を受信した端末10側における処理について説明する。端末10側は選択されたパス情報を端末11から受取ったら、まず、終了されていない孫スレッドによりデータベースをロックする。次に、端末11に関する通信相手情報を読み込み、その自分側優先順位管理番号を取得する。この、「データベース内の自分側優先順位管理番号」≦「受信した自分側優先順位管理番号」の場合は、チェックOKとして選択されたパスをデータベースに書込み、データベースをアンロックする。そして、選択されたパス情報に基づき、そのアプリケーション(動画受信アプリケーション)13aにネットワーク状態を通知する。このネットワーク状態は図8(B)に示すような情報で、そのフローが最大限利用可能な帯域幅、遅延時間、価格などの情報を含んでいる。   Next, processing on the terminal 10 side that has received the selected path information will be described with reference to FIG. When the terminal 10 receives the selected path information from the terminal 11, it first locks the database with a grandchild thread that has not been terminated. Next, the communication partner information regarding the terminal 11 is read, and its own priority management number is acquired. In the case of “your own priority management number in the database” ≦ “received own priority management number”, the path selected as the check OK is written to the database and the database is unlocked. Based on the selected path information, the network state is notified to the application (video receiving application) 13a. This network state is information as shown in FIG. 8B, and includes information such as bandwidth, delay time, and price that the flow can use to the maximum.

また、これと前後して、ルーティングポリシーを設定する。これはMultipleCoAなどのマルチホーム対応プロトコルのIF(InterFace)を利用して行う。このとき必要な情報は、図8(C)に示すような情報で、送信元端末識別子であるSrcHoA、送信元のポート番号、送信先の端末識別子であるDstHoA、送信先ポート番号、この4つの情報でフローを一意に識別することが可能で、この4つ情報はフロー識別子である。これに対して、フローをルーティングするための情報がその後に続く、送信元通信メディアであるSrcNICと送信先通信メディアであるDstNICである。   Also, before and after this, a routing policy is set. This is performed using an IF (InterFace) of a multi-home compatible protocol such as MultipleCoA. The information necessary at this time is information as shown in FIG. 8C. The source terminal identifier SrcHoA, the source port number, the destination terminal identifier DstHoA, the destination port number, and the four A flow can be uniquely identified by information, and these four pieces of information are flow identifiers. On the other hand, SrcNIC that is a transmission source communication medium and DstNIC that is a transmission destination communication medium are followed by information for routing a flow.

この結果、フロー10−1のルーティングポリシーは、送信元のNIC110から送信先のNIC101にルーティングする設定がなされる。また、先に説明したネットワーク状態を通知されたアプリケーション13aでは、ネットワーク情報の最大限利用可能な帯域幅に対応したコンテンツを選択したり、価格をもとにユーザに価格情報を提示したり、遅延時間をもとにバッファ量を調整したりすることが可能となる。本例では、この結果、2Mbpsのコンテンツを取得可能と判断し、その情報を端末10の動画受信アプリケーション13aが動画送信アプリケーション13bと呼制御プロトコルを通じて通知して、2Mbpsのコンテンツを取得するようになる。   As a result, the routing policy of the flow 10-1 is set to route from the transmission source NIC 110 to the transmission destination NIC 101. In addition, the application 13a notified of the network status described above selects content corresponding to the maximum available bandwidth of the network information, presents price information to the user based on the price, or delays. It is possible to adjust the buffer amount based on time. In this example, as a result, it is determined that 2 Mbps content can be acquired, and the moving image receiving application 13a of the terminal 10 notifies the moving image transmission application 13b and the information through the call control protocol to acquire 2 Mbps content. .

次に、(3)の通信端末10側において、通信メディアNIC101が使用不可能となる場合について説明する。このイベントは、図9に示すシステム構成のように、図1のシステム構成から新たに通信メディアNIC101が使用不可となる例で、これについての処理を、図10−1〜図10−6のシーケンス図により説明する。   Next, the case where the communication media NIC 101 becomes unusable on the communication terminal 10 side in (3) will be described. This event is an example in which the communication media NIC 101 is newly unavailable from the system configuration shown in FIG. 1 as in the system configuration shown in FIG. 9, and the processing for this event is performed in the sequence shown in FIGS. 10-1 to 10-6. This will be described with reference to the drawings.

まず、図10−1に示すように、端末10の通信メディア監視モジュール16は、通信メディアNIC101が使用できなくなった
ことを検知する。この使用できないという判断は、RSSI( Received Signal Strength Indicator )が一定の閾値を下回った場合や、輻輳やS/N( Signal to Noise )比が一定値を下回ったとか、これらの複合要因を考慮して判断するなど、種々の方法が考えられる。しかし、ここではこれら方法は、発明のポイントではないので考慮に入れず、通信メディア監視モジュール16は、通信メディアNICの使用可否の判断が可能で、通信メディアの状態に変化があった場合には、パス管理モジュール17に通信メディア情報を通知する機能を有していることが重要となる。
First, as illustrated in FIG. 10A, the communication media monitoring module 16 of the terminal 10 detects that the communication media NIC 101 cannot be used. This judgment that it cannot be used is based on these complex factors, such as when the RSSI (Received Signal Strength Indicator) falls below a certain threshold, or when the congestion and S / N (Signal to Noise) ratio falls below a certain value. Various methods can be considered, such as making a judgment. However, these methods are not taken into consideration here because they are not points of the invention, and the communication media monitoring module 16 can determine whether or not the communication media NIC can be used, and if there is a change in the status of the communication media. It is important that the path management module 17 has a function of notifying communication media information.

通信メディア監視モジュール16は、通信メディアNIC101が使用不可能になったことを受けて、通信メディア情報をパス管理モジュール17に通知する。この通信メディア情報は、図11に示すように、現在使用可能な通信メディアであるNIC100の情報となっている。通信メディア情報を受取ったパス管理モジュール17は、子スレッドを生成する。生成された子スレッドでデータベースをロックして、自分側通信メディア情報を上書きする。次に、通信相手情報のフロー情報を読み込んで、データベースをアンロックする。   The communication media monitoring module 16 notifies the path management module 17 of the communication media information when the communication media NIC 101 becomes unusable. As shown in FIG. 11, the communication media information is information on the NIC 100 that is a currently usable communication media. The path management module 17 that has received the communication media information generates a child thread. Lock the database with the created child thread and overwrite the local communication media information. Next, the flow information of the communication partner information is read and the database is unlocked.

ここでは、上りフローがなく、下りフローが有るとする。下りフロー情報があるので、それを処理するため孫スレッドを生成し、上りはフロー情報がないので、その孫スレッドは生成しない。下りフロー情報の孫スレッドは、まず、データベースをロックし、通信相手情報を読み込み、次いで、自分側の通信メディア情報を読み込み、自分側通信メディア管理番号に「+1」して通信相手情報を書き込んでデータベースをアンロックする。そして、通信メディア情報NIC100と自分側通信メディア情報管理番号(=2)を通信相手のパス管理モジュール17に送信する。   Here, it is assumed that there is no upstream flow and there is a downstream flow. Since there is downstream flow information, a grandchild thread is generated to process it, and since there is no flow information for upstream, the grandchild thread is not generated. The descendant thread of the downstream flow information first locks the database, reads the communication partner information, then reads its own communication media information, writes "+1" to its own communication media management number, and writes the communication partner information Unlock the database. Then, the communication media information NIC 100 and its own communication media information management number (= 2) are transmitted to the communication partner path management module 17.

次に、図10−2により、通信メディア情報NIC100を受取った端末11側における処理について説明する。この処理シーケンスは、先に説明した図4−2と同じであるが、受取った通信メディア管理番号が「2」であることと受信した通信メディア情報が異なっている。現在のデータベース内の通信メディア管理番号は「1」なので、チェックはOKとなり、端末10の通信メディアとしてNIC100がデータベースに上書きされ、相手側通信メディア管理番号の「2」が通信相手情報としてデータベースに書き込まれ、最終的にはパス情報を端末11側パス管理番号(=2)として端末10に送信する。   Next, processing on the terminal 11 side that has received the communication media information NIC 100 will be described with reference to FIG. This processing sequence is the same as that in FIG. 4B described above, but the received communication media management number is “2” and the received communication media information is different. Since the communication media management number in the current database is “1”, the check is OK, the NIC 100 is overwritten in the database as the communication media of the terminal 10, and the communication media management number “2” of the other party is stored in the database as the communication partner information. Finally, the path information is transmitted to the terminal 10 as the terminal 11 side path management number (= 2).

次に、図10−3により、パス情報を受取った端末10側における処理について説明する。この処理シーケンスは、先に説明した図4−3と同じであるが、現在の端末11側パス管理番号が「2」であることと受信したパス情報の中身が異なっている。現在のデータベース内の端末11側パス管理番号は「1」であるので、受取ったパス情報は、チェックOKとして、受信したパス情報はデータベースに上書きされる。このとき、使用可能帯域幅/遅延時間/価格などの値は、以前に取得したものをそのまま入れておく。また、端末11に関する通信相手情報を新たに受取った相手側パス管理番号(=2)として書き込む。そして、パス状態取得モジュール18にパス状態取得を依頼する。   Next, processing on the terminal 10 side that has received the path information will be described with reference to FIG. This processing sequence is the same as that in FIG. 4C described above, but the current terminal 11 side path management number is “2” and the content of the received path information is different. Since the terminal 11 side path management number in the current database is “1”, the received path information is checked as OK, and the received path information is overwritten in the database. At this time, the values such as the available bandwidth / delay time / price are previously acquired. Also, the communication partner information related to the terminal 11 is written as the newly received partner path management number (= 2). Then, the path status acquisition module 18 is requested to acquire the path status.

次に、図10−4により、パス状態取得モジュール18が取得依頼を受取った後の端末10側における処理について説明する。この処理シーケンスは、先に説明した図4−4と同じになる。本例では、パスは削除されるだけなので、新たにパス状態を取得する必要はなく、取得終了をパス管理モジュール17に通知する。パス管理モジュール17は、取得終了を受取ったら子スレッドを生成し、まず、データベースをロックし、パス情報を書き込み(本シーケンスでは書き込むパス情報は無し)、全てのパス情報をデータベースから読み込む。また、フロー情報も読み込んで、パス優先順位を決定して、通信相手情報のパス優先順位管理番号を「+1」して上書きし、データベースをアンロックする。次いで、孫スレッドを生成して、端末11にパス優先順位をパス優先順位管理番号(=2)と共に送信する。   Next, processing on the terminal 10 side after the path status acquisition module 18 receives the acquisition request will be described with reference to FIG. This processing sequence is the same as that shown in FIG. In this example, since the path is only deleted, it is not necessary to newly acquire a path state, and the acquisition end is notified to the path management module 17. When the path management module 17 receives the acquisition completion, it generates a child thread, first locks the database, writes path information (there is no path information to be written in this sequence), and reads all path information from the database. The flow information is also read, the path priority is determined, the path priority management number of the communication partner information is overwritten with “+1”, and the database is unlocked. Next, a grandchild thread is generated and the path priority is transmitted to the terminal 11 together with the path priority management number (= 2).

次に、図10−5により、パス優先順位を受取った端末11側における処理について説明する。この処理シーケンスは、先に説明した図4−5と同じになる。すなわち、パス優先順位を受取った端末11では子スレッドを生成し、まず、データベースをロックして、相手(端末10)側優先順位管理番号をチェックする。本例ではデータベース内の相手側優先順位管理番号は「1」で、受信した相手側優先順位管理番号は「2」であるのでチェックOKとなり、選択されたパス情報を生成する。その選択されたパス情報をデータベースに書込み、通信相手情報の相手側優先順位管理番号を「2」として書込み、データベースをアンロックして選択されたパス情報を送信する。この場合、端末10側の優先順位管理番号(=2)も同時に送信する。   Next, processing on the terminal 11 side that has received the path priority will be described with reference to FIG. This processing sequence is the same as that shown in FIG. That is, the terminal 11 that has received the path priority order generates a child thread, first locks the database, and checks the other party (terminal 10) side priority order management number. In this example, since the other party priority management number in the database is “1” and the received other party priority management number is “2”, the check is OK, and the selected path information is generated. The selected path information is written into the database, the other party priority management number of the communication partner information is written as “2”, the database is unlocked, and the selected path information is transmitted. In this case, the priority management number (= 2) on the terminal 10 side is also transmitted simultaneously.

次に、図10−6により、選択されたパス情報を受取った端末10側における処理について説明する。この処理シーケンスは、先に説明した図4−6と同じである。すなわち、選択されたパス情報を受信したら、データベースをロックし、通信相手情報を読み込み、自分側優先順位管理番号をチェックする。本例ではデータベース内の自分側優先順位管理番号が「2」で、受信した自分側優先順位管理番号も「2」なので、チェックOKとなる。そこで、選択されたパス情報をデータベースに書き込み、動画受信アプリケーション13aにネットワーク状態を送信し、MultipleCoA−IFを利用してルーティングポリシーを通知し、アプリケーションは呼制御を経て最適な帯域幅で通信するようになる。   Next, processing on the terminal 10 side that has received the selected path information will be described with reference to FIG. This processing sequence is the same as that shown in FIGS. That is, when the selected path information is received, the database is locked, the communication partner information is read, and the own priority management number is checked. In this example, since the own priority management number in the database is “2” and the received own priority management number is also “2”, the check is OK. Therefore, the selected path information is written in the database, the network status is transmitted to the moving image receiving application 13a, the routing policy is notified using MultipleCoA-IF, and the application communicates with the optimum bandwidth through call control. become.

次に、(4)の通信端末11側の通信メディアNIC111が使用可能となる場合について説明する。このイベントは、図12のシステム構成に示すように、図9のシステム構成から、通信メディアNIC111が使用可能となる例で、これについての処理を、図13−1〜図13−5のシーケンス図により説明する。   Next, a case where the communication media NIC 111 on the communication terminal 11 side in (4) can be used will be described. As shown in the system configuration of FIG. 12, this event is an example in which the communication media NIC 111 can be used from the system configuration of FIG. 9, and the processing for this is illustrated in the sequence diagrams of FIGS. 13-1 to 13-5. Will be described.

まず、図13−1に示すように、端末11の通信メディア監視モジュール16では、使用不可能であった通信メディアのNIC111が使用可能となったことを検知する。その結果、通信メディア情報として、図14に示すようなNIC110とNIC111の情報をパス管理モジュール17に通知する。通信メディア情報を受信したパス管理モジュール17では、子スレッドを生成する。次に、データベースをロックして、通信相手情報を読み込み、自分側通信メディア情報を上書きする。また、フロー情報を読み込み、自分側通信メディア管理番号に「+1」して「2」とし、通信相手情報に上書きして、データベースをアンロックする。   First, as shown in FIG. 13A, the communication media monitoring module 16 of the terminal 11 detects that the NIC 111 of the communication media that could not be used can be used. As a result, information on NIC 110 and NIC 111 as shown in FIG. 14 is notified to the path management module 17 as communication media information. The path management module 17 that has received the communication media information generates a child thread. Next, the database is locked, the communication partner information is read, and the local communication media information is overwritten. In addition, the flow information is read, the communication media management number on its own side is “+1” to “2”, the communication partner information is overwritten, and the database is unlocked.

フロー情報には、下りフローが無く、上りフローしかないので、上りフロー有りの際の処理を行うための孫スレッドを生成する。次に、この孫スレッドによりデータベースをロックして、相手通信メディア情報と自分側通信メディア情報を読み込んで、パス情報を作成し、このパス情報を上書きし、通信相手情報の中の自分側パス管理番号に「+1」して「3」としてデータベースに通信相手情報を書き込む。そして、データベースをアンロックした上で、図15に示すようなパス情報と、自分側パス管理番号(=3)を端末10に送信する。   Since there is no downstream flow and only upstream flow in the flow information, a grandchild thread for performing processing when there is upstream flow is generated. Next, this grandchild thread locks the database, reads the partner communication media information and the local communication media information, creates path information, overwrites this path information, and manages the local path in the communication partner information. The communication partner information is written in the database as “3” by adding “+1” to the number. Then, after unlocking the database, the path information as shown in FIG. 15 and the own path management number (= 3) are transmitted to the terminal 10.

次に、図13−2により、パス情報を受取った端末10側における処理について説明する。この処理シーケンスは、先に説明した図4−3、図10−3と同じである。すなわち、端末10側がパス情報を受取ったらパス管理モジュール17は、子スレッドを生成する。その子スレッドは、データベースをロックし、通信相手情報を読み込み、相手側パス管理番号チェックを行う。   Next, processing on the terminal 10 side that has received the path information will be described with reference to FIG. This processing sequence is the same as that of FIGS. 4-3 and 10-3 described above. That is, when the terminal 10 receives the path information, the path management module 17 generates a child thread. The child thread locks the database, reads the communication partner information, and checks the partner path management number.

ここで、データベース内の端末11側パス管理番号は「2」で、受信したパス管理番号は「3」であるので、チェックOKとなる。チェックOKなのでパス情報を上書きし、通信相手情報の相手側パス管理番号を「3」として上書きする。データベースをアンロックした上でパス状態取得モジュール18にパス状態の取得を依頼する。パス状態取得モジュール18は、図15のパス1に関しては、先に説明した(2)のイベントの際、既にパス状態を取得しているので(図7参照)、パス2に関するパス状態を取得し、取得終了後にパス管理モジュール17に取得終了を通知する。   Here, since the path management number on the terminal 11 side in the database is “2” and the received path management number is “3”, the check is OK. Since the check is OK, the path information is overwritten, and the partner path management number of the communication partner information is overwritten as “3”. After unlocking the database, the path status acquisition module 18 is requested to acquire the path status. Since the path status acquisition module 18 has already acquired the path status for the path 1 in FIG. 15 in the event of (2) described above (see FIG. 7), the path status acquisition module 18 acquires the path status related to the path 2. After completion of acquisition, the path management module 17 is notified of the end of acquisition.

次に、図13−3により、パス情報の取得終了を受取った後の端末10側における処理について説明する。この処理シーケンスは、先に説明した図4−4、図10−4と同じである。すなわち、パス常態の取得終了を受信したら、子スレッドを生成し、データベースをロックし、パス情報を書き込み、パス情報を読み込み、フロー情報を読み込む。そして、パス優先順位を決定し、通信相手情報を読み込み、通信相手情報の自分側パス優先順位管理番号に「+1」して上書きし、データベースをアンロックする。次いで,孫スレッドを生成して、端末11にパス優先順位をパス優先順位管理番号(=3)と共に送信する。   Next, processing on the terminal 10 side after receiving the end of acquisition of path information will be described with reference to FIG. This processing sequence is the same as that in FIGS. 4-4 and 10-4 described above. That is, when the end of acquisition of the normal state of the path is received, a child thread is generated, the database is locked, the path information is written, the path information is read, and the flow information is read. Then, the path priority order is determined, the communication partner information is read, the local path priority management number of the communication partner information is overwritten with “+1”, and the database is unlocked. Next, a grandchild thread is generated, and the path priority is transmitted to the terminal 11 together with the path priority management number (= 3).

次に、図13−4により、パス優先順位を受取った端末11側における処理について説明する。この処理シーケンスは、先に説明した図4−5、図10−5と同じである。すなわち、パス優先順位を受取った端末11では、子スレッドを生成する。まず、データベースをロックして、相手情報の端末10側の優先順位管理番号をチェックする。本例ではデータベース内の相手側優先順位管理番号は「2」で、新たに受信した相手側優先順位管理番号は「3」であるのでチェックOKとなり、選択されたパス情報を生成する。その選択されたパス情報をデータベースに書き込み、通信相手情報の相手側優先順位管理番号を「3」として書込み、データベースをアンロックして選択されたパス情報を送信する。この場合、端末10側優先順位管理番号(=3)も同時に送信する。   Next, processing on the terminal 11 side that has received the path priority will be described with reference to FIG. This processing sequence is the same as that in FIGS. 4-5 and 10-5 described above. That is, the terminal 11 that has received the path priority order generates a child thread. First, the database is locked, and the priority management number on the terminal 10 side of the partner information is checked. In this example, the other party priority management number in the database is “2”, and the newly received other party priority management number is “3”. Therefore, the check is OK, and the selected path information is generated. The selected path information is written into the database, the partner side priority management number of the communication partner information is written as “3”, the database is unlocked, and the selected path information is transmitted. In this case, the terminal 10 side priority management number (= 3) is also transmitted simultaneously.

次に、図13−5により、選択されたパス情報を受取った端末10側における処理について説明する。この処理シーケンスは、先に説明した図4−6、図10−6と同じである。すなわち、選択されたパス情報を受信したら、データベースをロックし、通信相手情報を読み込み、自分側優先順位管理番号をチェックする。本例ではデータベース内の自分側優先順位管理番号が「3」で、新たに受信した自分側優先順位管理番号も「3」なのでチェックOKとなる。そこで、選択されたパス情報をデータベースに書込み、アプリケーションにネットワーク状態を送信し、MultipleCoA−IFを利用してルーティングポリシーを通知し、アプリケーションは呼制御を経て最適な帯域幅で通信するようになる。   Next, processing on the terminal 10 side that has received the selected path information will be described with reference to FIG. This processing sequence is the same as that in FIGS. 4-6 and 10-6 described above. That is, when the selected path information is received, the database is locked, the communication partner information is read, and the own priority management number is checked. In this example, since the own priority management number in the database is “3” and the newly received own priority management number is also “3”, the check is OK. Therefore, the selected path information is written in the database, the network state is transmitted to the application, the routing policy is notified using MultipleCoA-IF, and the application communicates with the optimum bandwidth through call control.

次に、図16−1〜図16−7のフロー図により、本発明の送受信方法における具合的なイベント発生に対する実施形態を説明する。なお。本発明における主な特徴は、以下の3点に集約される。
1.イベントの切り分け
2.イベント毎の子スレッドの生成とデータベースのロック/アンロック
3.管理番号チェック
Next, an embodiment for specific event occurrence in the transmission / reception method of the present invention will be described with reference to the flowcharts of FIGS. Note that. The main features of the present invention are summarized in the following three points.
1. 1. Event separation 2. Create a child thread for each event and lock / unlock the database Control number check

具体的なイベントとしては、以下のようになる。
[1]アプリケーションからフロー情報を受信(アプリケーションから)
[2]自分側通信メディアの変化を受信(通信メディア監視モジュールから)
[3]パス状態取得終了を受信(パス状態取得モジュールから)
[4]パス情報を受信(通信相手パス管理モジュールから)
[5]相手側通信メディアの変化を受信(通信相手パス管理モジュールから)
[6]パス優先順位を受信(通信相手パス管理モジュールから)
[7]選択されたパス情報を受信(通信相手パス管理モジュールから)
なお、このうち、[7]に関しては、パス管理モジュールから親スレッドにメッセージが送信されるとは限らず、その前のシーケンスで既に子スレッドが生成されていて、その子スレッドで処理されることもある。
Specific events are as follows.
[1] Receive flow information from application (from application)
[2] Receiving changes in communication media on the local side (from the communication media monitoring module)
[3] Receiving end of path status acquisition (from path status acquisition module)
[4] Receive path information (from communication partner path management module)
[5] Receiving change of communication media on the other side (from communication partner path management module)
[6] Receive path priority (from communication partner path management module)
[7] Receive selected path information (from communication partner path management module)
Of these, regarding [7], a message is not necessarily transmitted from the path management module to the parent thread, and a child thread has already been generated in the previous sequence and may be processed by the child thread. is there.

まず、「[1]アプリケーションからフロー情報を受信」について、図16−1により説明する。これはアプリケーションが、ルーティングの設定と帯域の割当を、通信管理部に対して依頼するために通知する。このフロー情報は、これらを依頼する場合と、通信が終了して依頼を取り下げる場合とがある。これは、通信管理部のパス管理モジュールからは、フローの追加要求とフローの削除要求と見ることができる。フロー情報を受取ったら(S100)、フロー情報の変化に基づいた子スレッドを生成する(S101)。この子スレッドにより以下の処理を行う。   First, “[1] Receive Flow Information from Application” will be described with reference to FIG. This notifies the application to request the communication management unit for routing setting and bandwidth allocation. This flow information includes a case where these are requested and a case where communication is terminated and the request is withdrawn. This can be viewed as a flow addition request and a flow deletion request from the path management module of the communication management unit. When the flow information is received (S100), a child thread based on the change of the flow information is generated (S101). The following processing is performed by this child thread.

まず、データベースをロックし(S102)、取得したフロー情報をデータベースに追加(もしくは削除)する(S103)。このデータベースのロックは、フロー情報の書込み前である必要がある。フロー情報から得られる通信相手のIPアドレスをキーに通信相手情報とフロー情報を取得する(S104)。このフロー情報に下りフローがない場合は(S105NO)、データベースをアンロックし(S106)、処理を終了する(S107)。下りフローがある場合は(S105YES)、以下の処理を行う。   First, the database is locked (S102), and the acquired flow information is added (or deleted) to the database (S103). This database lock must be before the flow information is written. Communication partner information and flow information are acquired using the IP address of the communication partner obtained from the flow information as a key (S104). If there is no downstream flow in this flow information (S105 NO), the database is unlocked (S106), and the process is terminated (S107). If there is a downstream flow (S105 YES), the following processing is performed.

上述したのと同様に通信相手のIPアドレスをキーにパス情報を取得する(S108)。下りパス情報がある場合は(S109YES)、データベースをアンロックし(S110)、パス状態取得を依頼して(S111)、子スレッドを終了する(S112)。下りパス情報がない場合は(S109NO)、自身の通信メディア情報を読み込み(S113)、通信相手情報の自分側通信メディア管理番号を増加(例えば+1)させた後、その通信相手情報を書き込み(S114)、データベースをアンロックする(S115)。その後、取得した自分側通信メディア情報を送信し(S116)、子スレッドを終了する(S117)。   As described above, path information is acquired using the IP address of the communication partner as a key (S108). If there is downlink path information (S109 YES), the database is unlocked (S110), the path status acquisition is requested (S111), and the child thread is terminated (S112). If there is no downlink path information (NO at S109), the communication media information of the communication partner is read (S113), the communication media management number of the communication partner information is increased (for example, +1), and then the communication partner information is written (S114). The database is unlocked (S115). Thereafter, the acquired own communication media information is transmitted (S116), and the child thread is terminated (S117).

つまり、データベースのデータの読み込みや書込みがある間は、データベースをロックすることとなる。また、その他のモジュールへのパス状態取得依頼や、通信メディア情報送信及び、スレッドの終了前にはアンロックする必要がある。   That is, the database is locked while the database data is being read or written. Further, it is necessary to unlock before acquiring a path status request to other modules, transmitting communication media information, and ending the thread.

次に「[2]自分側通信メディア状態の変化を受信」について、図16−2により説明する。図16−2(A)に示すように、自分側の通信メディア状態に変化が生じたことを検出(受信)したら(S200)、まず、子スレッドを作成する(S201)。次に、データベースをロックし(S202)、通信メディア情報を書き込む(S203)。次にフロー情報を読み込み(S204)、データベースをアンロックする(S205)。   Next, “[2] Receiving change of own communication media state” will be described with reference to FIG. As shown in FIG. 16-2 (A), when it is detected (received) that a change has occurred in the communication media state on its own side (S200), first, a child thread is created (S201). Next, the database is locked (S202), and communication media information is written (S203). Next, the flow information is read (S204), and the database is unlocked (S205).

ここで、フロー情報は普通、複数あり通信相手も一つとは限らない。そこで、通信相手毎にフロー情報をチェックして、その相手との通信に下りフローがある場合は(S207YES)、通信メディア情報送信用の子スレッドを生成する(S208)。つまり、通信相手が二つあり、その双方に下りフローある場合は、ここで二つの子スレッドが生成されることとなる。同様に上りフローに関してもチェックを行い、上りフローがある場合は(S209YES)、パス情報送信用の子スレッドを生成する(S210)。これも通信メディア情報送信用子スレッドと同様、複数の子スレッドが生成される可能性がある。   Here, there are usually a plurality of pieces of flow information, and the number of communication partners is not necessarily one. Therefore, the flow information is checked for each communication partner, and if there is a downstream flow in communication with that partner (YES in S207), a child thread for transmitting communication media information is generated (S208). That is, when there are two communication partners and both have downstream flows, two child threads are generated here. Similarly, an upstream flow is also checked, and if there is an upstream flow (YES in S209), a child thread for path information transmission is generated (S210). Similarly to the communication media information transmission child thread, a plurality of child threads may be generated.

次に、通信メディア情報送信用子のスレッド(S209)の処理を、図16−2(B)により説明する。通信メディア送信用の子スレッドは、少なくとも通信相手のIPアドレスを知った状態で生成される(S221)。まず、データベースをロックして(S222)、通信メディア情報を読み込み、通信相手情報をそのIPアドレスをキーに読み込み(223)、自分側通信メディア管理番号を増加させて通信相手情報に書き込み(S224)、データベースをアンロックする(S225)。そして、通信メディア情報と、増加後の自分側通信メディア管理番号とをセットで通信相手に送信し(S226)、子スレッドを終了する(S227)。   Next, the processing of the communication media information sending thread (S209) will be described with reference to FIG. The child thread for communication media transmission is generated in a state where at least the IP address of the communication partner is known (S221). First, the database is locked (S222), the communication media information is read, the communication partner information is read using the IP address as a key (223), and the own communication media management number is increased and written to the communication partner information (S224). The database is unlocked (S225). Then, the communication media information and the increased own communication media management number are transmitted as a set to the communication partner (S226), and the child thread is terminated (S227).

次に、パス情報送信用の子スレッドの処理を、図16−2(C)により説明する。パス情報送信用の子スレッドは、通信メディア送信用の子スレッドと同様に少なくとも通信相手のIPアドレスを知った状態で生成される(S231)。まず、データベースをロックする(S232)。このロックはデータベースデータの読み込み前に行われなければ成らない。次に、通信メディア情報を読み込み、通信相手のIPアドレスをキーに相手側通信メディア情報を読み込み、通信相手情報を読み込む(S233)。   Next, processing of a child thread for transmitting path information will be described with reference to FIG. The child thread for transmitting path information is generated in a state in which at least the IP address of the communication partner is known in the same manner as the child thread for transmitting communication media (S231). First, the database is locked (S232). This locking must be done before reading the database data. Next, the communication media information is read, the other party communication media information is read using the IP address of the communication partner as a key, and the communication partner information is read (S233).

そして、取得した通信メディア情報と相手側通信メディア情報をもとにパス情報を生成する(S234)。次いで、パス情報及び通信相手情報の自分側パス管理番号を増加させて書き込み(S235)、データベースをアンロックする(S236)。なお、データベースのアンロックは、通信メディア情報取得、相手側通信メディア情報取得、通信相手情報書込みの処理後に行われなければならない。そしてパス情報を増加した自分側パス管理番号と共に送信し(S237)、子スレッドを終了する(S238)。   Then, path information is generated based on the acquired communication media information and the partner communication media information (S234). Next, the path information and communication partner information are increased and written (S235), and the database is unlocked (S236). Note that the database must be unlocked after processing of communication media information acquisition, partner communication media information acquisition, and communication partner information writing. Then, the path information is transmitted together with the increased own path management number (S237), and the child thread is terminated (S238).

次に、「[3]パス状態取得終了を受信」について、図16−3により説明する。パス状態取得モジュールは、パスの状態を取得したら、その取得終了をパス管理モジュールに通知する(S300)。パス管理モジュールでは、パス状態取得終了の処理を行う子スレッドを生成し(S301)、受取った取得終了のメッセージに含まれるパス状態をデータベースに書き込むのだが、その前に、データベースをロックする(S302)。データベースをロックした後、該当するパス情報に帯域/遅延/価格などのネットワークの状態を書き込む(S303)。   Next, “[3] reception of completion of path status acquisition” will be described with reference to FIG. When the path status acquisition module acquires the path status, it notifies the path management module of the end of acquisition (S300). In the path management module, a child thread for performing a path status acquisition end process is generated (S301), and the path status included in the received acquisition end message is written in the database. Before that, the database is locked (S302). ). After locking the database, the network status such as bandwidth / delay / price is written in the corresponding path information (S303).

次に、通信相手のIPアドレスをキーに全てのパス情報を取得し、また、その通信相手との全てのフロー情報も取得する(S304)。その後、通信相手情報の自分側パス優先順位管理番号を増加させてデータベースに書き込み(S305)、パス優先順位をパス情報とフロー情報から作成(S306)する。次いで、データベースをアンロックし(S307)、作成したパス優先順位を通信相手に送信し(S308)、子スレッドを終了する(S309)。ちなみに、このパス優先順位作成はパス情報・フロー情報読み込み後で、通信相手に送信前ならどのタイミングで行っても良い。   Next, all path information is acquired using the IP address of the communication partner as a key, and all flow information with the communication partner is also acquired (S304). Thereafter, the own path priority management number of the communication partner information is increased and written in the database (S305), and the path priority is created from the path information and the flow information (S306). Next, the database is unlocked (S307), the created path priority is transmitted to the communication partner (S308), and the child thread is terminated (S309). Incidentally, the path priority order generation may be performed at any timing after the path information / flow information is read and before transmission to the communication partner.

次に「[4]パス情報を受信」について、図16−4により説明する。パス情報を受信したら(S400)、まず、子スレッドを生成する(S401)。次に、データベースをロックし(S402)、パス情報中の相手のIPアドレスをキーに通信相手情報を取得する(S403)。データベース内の相手側パス管理番号と受信したパス情報に添付された相手側パス管理番号とを比べ、「データベース内のパス管理番号」<「受信したパス管理番号」であった場合は、チェックOKとする(S404YES)。チェックNGだった場合には(S404NO)、データベースをアンロックし(S405)、子スレッドを終了する(S406)。   Next, “[4] Receiving path information” will be described with reference to FIG. When the path information is received (S400), first, a child thread is generated (S401). Next, the database is locked (S402), and communication partner information is acquired using the partner's IP address in the path information as a key (S403). Compare the partner path management number in the database with the partner path management number attached to the received path information, and if “path management number in database” <“received path management number”, check OK (S404 YES). If it is NG (S404 NO), the database is unlocked (S405), and the child thread is terminated (S406).

チェックOKだった場合には、受取ったパス情報をデータベースに書き込み(S407)、通信相手情報の相手側パス管理番号として、新たに受信したパス管理番号を代入して通信相手情報を書き込む(S408)。その後、データベースをアンロックして(S409)、パス状態の取得依頼をパス状態取得モジュールに依頼し(S410)、子スレッドを終了する(S411)。なお、ここで子スレッドは必ずしも終了させる必要はなく、選択されたパス情報受信用に残しても良い。   If the check is OK, the received path information is written in the database (S407), and the communication partner information is written by substituting the newly received path management number as the partner path management number of the communication partner information (S408). . Thereafter, the database is unlocked (S409), a path status acquisition request is requested to the path status acquisition module (S410), and the child thread is terminated (S411). Here, the child thread does not necessarily have to be terminated, and may be left for receiving the selected path information.

次に、「[5]相手側通信メディアの変化を受信」について、図16−5により説明する。相手側から通信メディア情報の変化を受信したら(S500)、まず、子スレッドを生成する(S501)。次に、データベースをロックして(S502)、該当する通信相手の通信相手情報を読み込む(S503)。データベース内の相手側通信メディア管理番号と、受信した通信メディア情報に添付された相手側通信メディア管理番号とを比べて、「データベース内の通信メディア管理番号」<「受信した通信メディア管理番号」であったら、チェックOKとする(S504YES)。チェックNGだったらデータベースをアンロックし(S505)、子スレッドを終了する(S506)。   Next, “[5] Receiving change in communication medium on other side” will be described with reference to FIG. When a change in communication media information is received from the other party (S500), first, a child thread is generated (S501). Next, the database is locked (S502), and the communication partner information of the corresponding communication partner is read (S503). Compare the communication media management number of the other party in the database with the communication media management number of the other party attached to the received communication media information so that “communication media management number in the database” <“received communication media management number” If there is, check OK (S504 YES). If it is NG, the database is unlocked (S505), and the child thread is terminated (S506).

チェックOKの場合は(S504YES)、受取った相手側通信メディア情報を書き込み(S507)、通信メディア情報及び相手側通信メディア情報を読み込み(S508)、パス情報を生成して(S509)、パス情報を書き込む(S510)。次に、通信相手情報の自分側パス管理番号を増加させて書き込み(S511)、データベースをアンロックして(S512)、パス情報を送信して(S513)、子スレッドを終了する(S514)。   If the check is OK (S504 YES), the received communication media information is written (S507), the communication media information and the communication media information is read (S508), path information is generated (S509), and the path information is Write (S510). Next, the own path management number of the communication partner information is incremented and written (S511), the database is unlocked (S512), the path information is transmitted (S513), and the child thread is terminated (S514).

次に、「[6]パス優先順位を受信」について、図16−6により説明する。パス優先順位を受信したら(S600)、パス優先順位受信として子スレッドを生成する(S601)。次に、データベースをロックして(S602)、該当する通信相手の通信相手情報を取得する(S603)。データベース内の通信相手情報の相手側優先順位管理番号と、受信したパス優先順位に添付された相手側優先順位管理番号を比べ、「データベース内の優先順位管理番号」<「受信した優先順位管理番号」であった場合に、チェックOKとする(S604YES)。NGだった場合は(S604NO)、データベースをアンロックし(S605)、子スレッドを終了する(S606)。   Next, “[6] Receive path priority” will be described with reference to FIG. When the path priority is received (S600), a child thread is generated as the path priority reception (S601). Next, the database is locked (S602), and communication partner information of the corresponding communication partner is acquired (S603). The other party priority management number of the communication partner information in the database is compared with the other party priority management number attached to the received path priority, and “priority management number in database” <“received priority management number” ", The check is OK (S604 YES). If it is NG (S604 NO), the database is unlocked (S605), and the child thread is terminated (S606).

チェックOKの場合は(S604YES)、受取ったパス優先順位から自分の上りに関する嗜好を加味して選択されたパス情報を生成する(S607)。その選択されたパス情報をデータベースに書込み(S608)、通信相手情報の相手側パス優先順位管理番号を受信したパス優先順位管理番号として書き込む(S609)。その後、データベースをアンロックし(S610)、選択されたパス情報をそのパス優先順位管理番号と共に送信し(S611)、子スレッドを終了する(S612)。   If the check is OK (YES in S604), the selected path information is generated from the received path priority order in consideration of the preference relating to own uplink (S607). The selected path information is written in the database (S608), and the partner path priority management number of the communication partner information is written as the received path priority management number (S609). Thereafter, the database is unlocked (S610), the selected path information is transmitted together with the path priority management number (S611), and the child thread is terminated (S612).

次に「[7]選択されたパス情報を受信」について、図16−7により説明する。まず、選択されたパス情報を受取ったら、選択されたパス情報受信用として子スレッドを生成する(S701)。なお、選択されたパス情報を受信する場合に関しては、上記の「[4]パス情報を受信」の際に、最後に子スレッドを終了していない場合には、次の子スレッドの生成はなくても良い。次いで、デーベースをロックし(S702)、該当する通信相手情報を読み込む(S703)。データベース内の通信相手情報の自分側優先順位管理番号と、受信した選択されたパス情報に添付されている自分側優先順位管理番号を比べて、「データベース内の自分側優先順位管理番号」≦「受信した自分側優先順位管理番号」である場合には、チェックOKとする(S704YES)。この場合のみ、イコールが入っている。チェックNGの場合は(S704NO)、データベースをアンロックして(S705)、子スレッドを終了する(S706)。   Next, “[7] Receive selected path information” will be described with reference to FIG. First, when the selected path information is received, a child thread is generated for receiving the selected path information (S701). As for the case of receiving the selected path information, if the child thread is not terminated at the time of the above “[4] Receive path information”, the next child thread is not generated. May be. Next, the database is locked (S702), and the corresponding communication partner information is read (S703). By comparing the own priority management number of the communication partner information in the database with the own priority management number attached to the received selected path information, “the own priority management number in the database” ≦ “ If it is “the received own priority management number”, the check is OK (YES in S704). Only in this case, equals are entered. In the case of check NG (NO in S704), the database is unlocked (S705), and the child thread is terminated (S706).

チェックOKの場合には(S704YES)、選択されたパス情報をデータベースに書き込み(S707)、通信相手情報の自分側優先順位管理番号を書き込み(S708)、データベースをアンロックする(S709)。その後、MultipleCoAのインタフェース(IF)を用いてルーティングポリシーを設定し、アプリケーションに対して、割り当てられた帯域幅等の情報であるネットワーク状態を通知し(S710)、子スレッドを終了する(S711)。   When the check is OK (YES in S704), the selected path information is written in the database (S707), the own priority management number of the communication partner information is written (S708), and the database is unlocked (S709). Thereafter, a routing policy is set using the interface (IF) of MultipleCoA, the network state that is information such as the allocated bandwidth is notified to the application (S710), and the child thread is terminated (S711).

次に、図17−1〜図19−4により、本発明における作用・効果について説明する。なお、以下の説明は、図17−1〜図17−3のシステム構成の模式図で示すように、2つの端末間で通信するアプリケーションとして、TV電話を用い、映像と音声の2つのフローを双方向で送受信することを例としている。また、ここでは、通信開始時の一連の処理シーケンスは終了し、最適なコンテンツでの通信が既に行われているものとする。   Next, the operation and effect of the present invention will be described with reference to FIGS. In the following description, as shown in the schematic diagram of the system configuration in FIGS. 17-1 to 17-3, a videophone is used as an application for communication between two terminals, and two flows of video and audio are performed. An example is bidirectional transmission / reception. Here, it is assumed that a series of processing sequences at the start of communication is completed, and communication with the optimum content has already been performed.

いま、2つの端末間における送受信は、図17−1に示すように端末10が、通信メディアNIC100とNIC101で通信し、端末11が通信メディアNIC110とNIC111で通信中でNIC112が使用不可の状態にあるとする。
ここで、2つの端末間における送受信のイベントとして、
{1}端末11の通信メディアのNIC112が使用可能となるとほぼ同時に、NIC111が使用できなくなる。(図17−1→ 図17−2への状態に変化)
{2}端末11側の通信メディアのNIC111が使用可能となるのとほぼ同時に、端末10側のNIC101が使用できなくなる。(図17−2→ 図17−3への状態に変化)
を想定して、以下に説明する。
Now, in the transmission / reception between the two terminals, as shown in FIG. 17A, the terminal 10 communicates with the communication media NIC 100 and NIC 101, the terminal 11 is communicating with the communication media NIC 110 and NIC 111, and the NIC 112 becomes unusable. Suppose there is.
Here, as an event of transmission / reception between two terminals,
{1} When the NIC 112 of the communication media of the terminal 11 becomes usable, the NIC 111 becomes unusable almost at the same time. (Change from Fig. 17-1 to Fig. 17-2)
{2} The NIC 101 on the terminal 10 side becomes unusable almost simultaneously with the NIC 111 on the communication medium on the terminal 11 side becoming usable. (Change from Fig. 17-2 to Fig. 17-3)
This will be explained below.

上記{1}は、端末11の通信メディアNIC112が使用可能になるというイベントと、通信メディアNIC111が使用できなくなるというイベントの2つのイベントが、端末11でほぼ同時に起こる例である。これを、図18−1のシーケンス図により説明する。通信メディア監視モジュールは、これらのイベントを検知して、通信メディア情報をパス管理モジュールに通知する。これは1回の監視で両方のイベントを検知するかも知れないし、2回分けて検知されるかも知れない。1回の監視で両方を検知できた場合は、通常と同じシーケンスとなる。ここでは、2回に分けて検知された例で説明する。   The above {1} is an example in which two events of the event that the communication media NIC 112 of the terminal 11 becomes usable and the event that the communication media NIC 111 becomes unusable occur at the terminal 11 almost simultaneously. This will be described with reference to the sequence diagram of FIG. The communication media monitoring module detects these events and notifies the path management module of communication media information. This may detect both events in a single monitoring, or may be detected in two parts. When both can be detected by one monitoring, the sequence is the same as usual. Here, an example in which detection is performed in two steps will be described.

図18−1により、通信メディアNIC112が使用可能となるのが、通信メディアNIC111が使用できなくなるより、僅かに早かった場合を説明する。通信メディアNIC112が使用可能となったことにより、生成された子スレッド(子スレッドA)の方が先にデータベースをロックし、通信メディアNIC111が使用不可能になったことにより生成された子スレッド(子スレッドB)は、データベースにアクセスできない。   FIG. 18A illustrates a case where the communication media NIC 112 can be used slightly earlier than the communication media NIC 111 cannot be used. When the communication media NIC 112 becomes available, the generated child thread (child thread A) locks the database first, and the child thread (when the communication media NIC 111 becomes unavailable) Child thread B) cannot access the database.

このため、僅かに後のイベントとなる子スレッドBのデータは、後からデータベースに反映され、データベース内のデータが正しいものとなる。ここで、子スレッドAも子スレッドBも上りフロー・下りフロー共に存在するため、図16−2で説明したように、通信メディア情報送信用の子スレッドとパス情報送信用の子スレッドが生成される。つまり、都合4つの子スレッドが生成されることとなる。図18−2では、説明を分かりやすくにするため、通信メディア情報送信用の子スレッド(A−1,B−1)のみ示している。   For this reason, the data of the child thread B, which is a slightly later event, is reflected later in the database, and the data in the database is correct. Here, since both the child thread A and the child thread B exist in both the upstream flow and downstream flow, as described in FIG. 16B, a child thread for transmitting communication media information and a child thread for transmitting path information are generated. The That is, for convenience, four child threads are generated. In FIG. 18-2, only the child threads (A-1, B-1) for transmitting communication media information are shown for easy understanding.

図18−2に示すように、子スレッドAは、通信メディア情報送信のため子スレッドA−1を生成する。しかし、子スレッドA−1の送信しようとしている通信メディア情報は、間違っている可能性がある。これは、子スレッドBの情報が反映された後にデータベースにアクセスしていれば正しい情報だが、それ以前にアクセスしていれば、正しい情報ではないからである。また、子スレッドBは、通信メディア情報送信のため子スレッッドB−1を生成する。先の子スレッドA−1の送信しようとした通信メディア情報に対して、子スレッドB−1の送信しようとしている通信メディア情報は、必ず正しいものとなっている。これは、子スレッドB−1は、子スレッドB−1を生成する子スレッドBの情報がデータベースに反映された後に生成されるためである。つまり、データベースへのアクセスタイミングを見ると、子スレッドA>子スレッドA−1、子スレッドB>子スレッドB−1が成立している。   As illustrated in FIG. 18B, the child thread A generates a child thread A-1 for transmission of communication media information. However, the communication media information to be transmitted by the child thread A-1 may be wrong. This is because the information is correct if the database is accessed after the information of the child thread B is reflected, but is not correct if accessed before that. Further, the child thread B generates a child thread B-1 for transmission of communication media information. The communication media information to be transmitted by the child thread B-1 is always correct with respect to the communication media information to be transmitted by the previous child thread A-1. This is because the child thread B-1 is generated after the information of the child thread B that generates the child thread B-1 is reflected in the database. That is, when viewing the access timing to the database, child thread A> child thread A-1, child thread B> child thread B-1 is established.

ここで、子スレッドA−1による通信メディア情報の送信が子スレッドB−1よりも早かったとする。管理番号に注目すると、子スレッドA−1が送信する通信メディア情報に添付された自分側(端末11側)通信メディア管理番号をNとすると、子スレッドB−1の送信する通信メディア情報は、データベースへのアクセスがシーケンシャルとなっているため、必ずN+1以上の数値となる。   Here, it is assumed that the transmission of the communication media information by the child thread A-1 is earlier than that of the child thread B-1. When attention is paid to the management number, if the communication media management number attached to the communication media information transmitted by the child thread A-1 is N, the communication media information transmitted by the child thread B-1 is: Since access to the database is sequential, the value is always N + 1 or more.

次に、図18−3に示すように、子スレッドA−1と子スレッドB−1が送信した通信メディア情報が、端末10に到着する途中で順番が、ネットワークのジッタなどにより入れ変わってしまったとする。この場合、先に到着した子スレッドB−1からの通信メディア情報を端末10で処理することとなる。ここで、子スレッドB−1からの通信メディア情報は、端末11側通信メディア情報管理番号N+1として処理される。そうすると、端末10内での端末11に関する相手端末情報中の相手側通信メディア管理番号は、N+1となっている。その後、子スレッドA−1からの通信メディア情報が到着して処理するが、管理番号がNのため、チェックNGとなり処理されない。   Next, as shown in FIG. 18-3, the order of the communication media information transmitted by the child thread A-1 and the child thread B-1 is changed due to network jitter or the like while arriving at the terminal 10. Suppose. In this case, the terminal 10 processes the communication media information from the child thread B-1 that has arrived first. Here, the communication media information from the child thread B-1 is processed as the terminal 11 side communication media information management number N + 1. Then, the partner communication media management number in the partner terminal information regarding the terminal 11 in the terminal 10 is N + 1. Thereafter, the communication media information from the child thread A-1 arrives and is processed. However, since the management number is N, it becomes a check NG and is not processed.

この結果、子スレッドBから生まれた子スレッドB−1のシーケンスだけ進むこととなる。ちなみに、子スレッドA−1の通信メディア情報の方が先に到着した場合には、子スレッドA−1の処理は、通常通り処理されるが、直後に子スレッドB−1の通信メディア情報が到着し、その処理も通常通り処理されるため、最終的には子スレッドB−1起点の処理がなされることとなる。   As a result, the sequence of the child thread B-1 born from the child thread B is advanced. Incidentally, when the communication media information of the child thread A-1 arrives first, the processing of the child thread A-1 is processed as usual, but immediately after that, the communication media information of the child thread B-1 is Since the process arrives and is processed as usual, the process of starting from the child thread B-1 is finally performed.

上述の例は、「子スレッドA−1による送信が、子スレッドB−1よりも早い」とする場合であるが、反対に「子スレッドB−1による送信が、子スレッドA−1よりも早い」とする場合がある。この場合は、図18−4に示すように、子スレッドA−1が送信する通信メディア情報も、子スレッドB−1が送信する通信メディア情報も子スレッドBの後となるため、どちらも正確な情報を送信することとなる。なお、この後のシーケンスに関しては説明は省略する。   The above example is a case where “the transmission by the child thread A-1 is earlier than the child thread B-1,” but conversely, “the transmission by the child thread B-1 is more than the child thread A-1. It may be “fast”. In this case, both the communication media information transmitted by the child thread A-1 and the communication media information transmitted by the child thread B-1 are after the child thread B, as shown in FIG. Information will be transmitted. The description of the subsequent sequence is omitted.

次いで、パス情報の送信に関して説明すると、これも通信メディア情報の送信と同じで、子スレッドAがパス情報送信用の子スレッドA−2を生成し、子スレッドBがパス情報送信用の子スレッドB−2を生成する。ここで、子スレッドBは、子スレッドAよりも必ず後に処理されるとする。また、子スレッドA−2は、子スレッドAよりも後だが、子スレッドBとの時間関係はどうなるかは分からない。また、子スレッドB−2は子スレッドBよりも必ず後に処理される。つまり、データベースへのアクセスタイミングを見ると、子スレッドA>子スレッドA−2、子スレッドB>子スレッドB−2が成立する。   Next, transmission of path information will be described. This is the same as transmission of communication media information. The child thread A generates a child thread A-2 for transmitting path information, and the child thread B generates a child thread for transmitting path information. B-2 is generated. Here, it is assumed that the child thread B is always processed after the child thread A. The child thread A-2 is later than the child thread A, but the time relationship with the child thread B is unknown. The child thread B-2 is always processed after the child thread B. That is, looking at the access timing to the database, child thread A> child thread A-2 and child thread B> child thread B-2 are established.

ここで、子スレッドA−2によるパス情報の送信が子スレッドB−2よりも早かったとする。パス情報の管理番号に注目すると、子スレッドA−2が送信するパス情報に添付された自分側(端末11側)パス管理番号をMとすると、子スレッドB−2の送信する通信メディア情報はデータベースへのアクセスがシーケンシャルとなっているため、必ずM+1以上の数値となっている。   Here, it is assumed that the transmission of path information by the child thread A-2 is earlier than that of the child thread B-2. When attention is paid to the management number of the path information, if the own side (terminal 11 side) path management number attached to the path information transmitted by the child thread A-2 is M, the communication media information transmitted by the child thread B-2 is Since access to the database is sequential, the value is always M + 1 or more.

次に、図18−5に示すように、子スレッドA−2と子スレッドB−2が送信したパス情報が端末10に到着する途中で順番が、ネットワークのジッタなどにより変わってしまったとする。この場合、子スレッドB−2からのパス情報受信を、先に端末10で処理することとなる。ここで、子スレッドB−2からのパス情報は、端末11側通信メディア情報管理番号M+1として到着し、処理される。そうすると、端末10内での端末11に関する相手端末情報中の相手側パス管理番号はM+1となっている。その後、子スレッドA−2からのパス情報が到着して処理するが、管理番号がMのため、チェックNGとなり、処理されない。   Next, as shown in FIG. 18-5, it is assumed that the order of the path information transmitted by the child thread A-2 and the child thread B-2 has changed due to network jitter or the like while arriving at the terminal 10. In this case, reception of path information from the child thread B-2 is first processed by the terminal 10. Here, the path information from the child thread B-2 arrives as the terminal 11 side communication media information management number M + 1 and is processed. Then, the partner path management number in the partner terminal information regarding the terminal 11 in the terminal 10 is M + 1. Thereafter, the path information from the child thread A-2 arrives and is processed. However, since the management number is M, it becomes a check NG and is not processed.

この結果、子スレッドBから生まれた子スレッドB−2のシーケンスだけ進むこととなる。ちなみに、A−2の子スレッドのパス情報の方が先に到着した場合には、子スレッドA−2の処理は通常通り処理されるが、直後に子スレッドB−2のパス情報が到着し、その処理も通常通り処理されるため、最終的には子スレッドB−2起点の処理がなされることとなる。   As a result, the sequence of the child thread B-2 born from the child thread B is advanced. Incidentally, when the path information of the child thread A-2 arrives first, the process of the child thread A-2 is processed as usual, but immediately after that, the path information of the child thread B-2 arrives. Since the process is also performed as usual, the process starting from the child thread B-2 is finally performed.

上述の例は、「子スレッドA−2による送信が、子スレッドB−2よりも早い」とする場合であるが、反対に「子スレッドB−2による送信が、子スレッドA−2よりも早い」とする場合がある。この場合は、子スレッドA−2が送信するパス情報も、子スレッドB−2が送信するパス情報も子スレッドBの後となるため、どちらも正確な情報を送信することとなる。なお、この後のシーケンスに関しては説明は省略する。   The above example is a case where “the transmission by the child thread A-2 is earlier than the child thread B-2”, but conversely, “the transmission by the child thread B-2 is more than the child thread A-2. It may be “fast”. In this case, since the path information transmitted by the child thread A-2 and the path information transmitted by the child thread B-2 are after the child thread B, both of them transmit accurate information. The description of the subsequent sequence is omitted.

次に、上記{2}は、端末11側の通信メディアNIC111が使用可能というイベントと、端末10側の通信メディアNIC101が使用できなくなるというイベントの2つイベントがほぼ同時に起こる例である。これを、図19−1〜図19−4のシーケンス図により説明する。   Next, {2} is an example in which two events of an event that the communication media NIC 111 on the terminal 11 side can be used and an event that the communication media NIC 101 on the terminal 10 side cannot be used occur almost simultaneously. This will be described with reference to the sequence diagrams of FIGS.

ここで、図19−2に示す端末11側の処理に注目すると、端末10←端末11方向のパス情報は端末11で作成される。ここで、パス情報を作成するタイミングを見ると、自分の通信メディア監視モジュールから通信メディア情報を受取った際と、通信相手から相手側の通信メディア情報を受け取った際となっている。ここで、自分側(端末11側)の通信メディア情報のデータベースへの書込みは、子スレッドBが、相手側(端末10側)の通信メディア情報のデータベースへの書込みは子スレッドCが行う。また、子スレッドB自体はパス情報は作成しない。ここで必要なことは、正しいデータで生成されたパス情報に、自分側(端末11側)パス管理番号が付加されていることにある。   Here, paying attention to the processing on the terminal 11 side shown in FIG. Here, the timing for creating the path information is when the communication media information is received from the own communication media monitoring module and when the communication media information of the other party is received from the communication partner. Here, the child thread B writes the communication media information on its own side (terminal 11 side) into the database, and the child thread C writes the communication media information on the partner side (terminal 10 side) into the database. Further, the child thread B itself does not create path information. What is necessary here is that a path management number of its own side (terminal 11 side) is added to path information generated with correct data.

そこで、データベースへのアクセスのタイミングを全て列挙して、各々についてパス情報が正しいかを検証する。パス情報送信用の子スレッドB−2のデータベースへのアクセスは必ず子スレッドBよりも後になるので、以下の3通りが考えられる。
〈1〉子スレッドB→子スレッドC→子スレッドB−2
〈2〉子スレッドB→子スレッドB−2→子スレッドC
〈3〉子スレッドC→子スレッドB→子スレッドB−2
Therefore, all the access timings to the database are listed, and it is verified whether the path information is correct for each. Since access to the database of the child thread B-2 for path information transmission is always after the child thread B, the following three methods are conceivable.
<1> Child thread B → Child thread C → Child thread B-2
<2> Child thread B → Child thread B-2 → Child thread C
<3> Child thread C → Child thread B → Child thread B-2

〈1〉の場合のシーケンスを図19−2に、〈2〉の場合のシーケンスを図19−3に、〈3〉の場合のシーケンスを図19−4に示す。ここで、最終的に正しいパス情報は、端末10側はNIC100のみで、端末11側はNIC110、NIC111、NIC112が有るので、(NIC100)×(NIC110、NIC111、NIC112)の組み合せによるパスが作成されていれば良いことになる。   The sequence for <1> is shown in FIG. 19-2, the sequence for <2> is shown in FIG. 19-3, and the sequence for <3> is shown in FIG. 19-4. Here, since the correct path information is finally the NIC 100 only on the terminal 10 side and the NIC 110, NIC 111, and NIC 112 on the terminal 11 side, a path based on a combination of (NIC100) × (NIC110, NIC111, NIC112) is created. It will be good if it is.

まず、〈1〉のケースについて、図19−2により説明する。このケースでは、子スレッドBによる通信メディア情報が反映された後に、子スレッドCが通信メディア情報を読み込んでパス情報を作成している。そのため、子スレッドCが作成し送信するパス情報も、子スレッドB−2が作成するパス情報も、(NIC100)×(NIC110、NIC111、NIC112)のものとなっている。また、端末11側の管理番号最大値のものは子スレッドB−1(図19−1参照)が作成するもので、これは正しいパス情報を反映したものとなっている。   First, the case <1> will be described with reference to FIG. In this case, after the communication media information by the child thread B is reflected, the child thread C reads the communication media information and creates path information. Therefore, the path information created and transmitted by the child thread C and the path information created by the child thread B-2 are (NIC100) × (NIC110, NIC111, NIC112). The maximum management number on the terminal 11 side is created by the child thread B-1 (see FIG. 19-1), which reflects correct path information.

次に、〈2〉のケースについて、図19−3により説明する。このケースでは、子スレッドCによる相手側の通信メディア情報が反映される前に、子スレッドB−1(図19−1参照)がパス情報を作成し送信している。そのため、このパス情報は、(NIC100、NIC101)×(NIC110、NIC111、NIC112)による間違ったパス情報を作成してしまっている。しかし、この後、子スレッドCがパス情報を作成する際には、相手側(端末10側)の通信メディア情報が反映されるので、(NIC100)×(NIC110、NIC111、NIC112)による正しいパスが作成され送信される。また、これは、子スレッドB−2によるアクセスよりも後なので、このパス情報に添付される端末11側パス管理番号は、子スレッドB−2が送信するパス情報に添付される端末11側パス管理番号よりも大きくなる。そのため、最終的には正しいパス情報が反映されることとなる。   Next, the case <2> will be described with reference to FIG. In this case, before the communication media information of the other party by the child thread C is reflected, the child thread B-1 (see FIG. 19-1) creates and transmits path information. For this reason, this path information has created incorrect path information of (NIC100, NIC101) × (NIC110, NIC111, NIC112). However, after that, when the child thread C creates the path information, since the communication media information of the other party (terminal 10 side) is reflected, the correct path by (NIC100) × (NIC110, NIC111, NIC112) Created and sent. Since this is after access by the child thread B-2, the terminal 11 side path management number attached to this path information is the terminal 11 side path attached to the path information transmitted by the child thread B-2. It becomes larger than the management number. As a result, correct path information is eventually reflected.

最後に、〈3〉のケースについて、図19−4により説明する。このケースでは、子スレッドBによる通信メディア情報(自分側)が反映される前に、子スレッドCがパス情報を作成し、送信する。そのため、子スレッドCが作成するパス情報は、(NIC100)×(NIC110、NIC112)によるパスとなってしまう。しかし、この後子スレッドBの情報が反映された後に、子スレッドB−2がパスを作成するため、このパス情報は正しいパス情報(NIC100)×(NIC110、NIC111、NIC112)によるものとなる。また、このパス情報に添付される自分側パス管理番号は、子スレッドCが送信するものよりも必ず大きいものとなるので、最終的に正しいデータが反映されることとなる。   Finally, the case <3> will be described with reference to FIG. In this case, before the communication media information (self side) by the child thread B is reflected, the child thread C creates and transmits path information. Therefore, the path information created by the child thread C is a path of (NIC100) × (NIC110, NIC112). However, since the child thread B-2 creates a path after the information of the child thread B is reflected later, the path information is based on the correct path information (NIC100) × (NIC110, NIC111, NIC112). Further, since the own path management number attached to the path information is always larger than that transmitted by the child thread C, the correct data is finally reflected.

以上のシーケンスは、端末10側でも全く同じことが言えるので、詳細な説明は省略する。なお、本発明におけるポイントをまとめると、以下のようになる。
1.各種イベントにおけるシーケンスを明確化にする。
2.送信するデータ毎に管理番号を自分側と相手側に分けて使用する。
3.データベースのロックとアンロックをアクセス時に行う。
4.下りフローがある場合、通信メディア情報を送信する(又は、上りフローがある場合、通信メディア情報を送信する)。
5.上りフローがある場合、上りのパス情報を送信する(又は、下りフローがある場合、下りのパス情報を送信する)。
以上により、通信中の2つの端末において、端末の一方または双方で同時に2つ以上のイベントが発生したような場合でも、正しいデータで通信を行うことが可能となる。
Since the above sequence can be said to be exactly the same on the terminal 10 side, a detailed description thereof will be omitted. The points in the present invention are summarized as follows.
1. Clarify the sequence of events.
2. A management number is used separately for each side of data to be sent.
3. Lock and unlock the database when accessing it.
4). When there is a downstream flow, the communication media information is transmitted (or when there is an upstream flow, the communication media information is transmitted).
5. When there is an uplink flow, uplink path information is transmitted (or when there is a downlink flow, downlink path information is transmitted).
As described above, even when two or more events occur simultaneously in one or both of the two communicating terminals, it is possible to perform communication using correct data.

本発明の概略を説明するシステム構成の模式図である。1 is a schematic diagram of a system configuration for explaining an outline of the present invention. 通信端末の起動時の処理について説明するシーケンス図である。It is a sequence diagram explaining the process at the time of starting of a communication terminal. 図1における通信メディア情報の一例を示す図である。It is a figure which shows an example of the communication media information in FIG. 本発明における処理を説明するシーケンス図である。It is a sequence diagram explaining the process in this invention. 図4−1に引続くシーケンス図である。FIG. 4 is a sequence diagram subsequent to FIG. 4-1. 図4−2に引続くシーケンス図である。FIG. 4 is a sequence diagram subsequent to FIG. 図4−3に引続くシーケンス図である。FIG. 4 is a sequence diagram subsequent to FIG. 4-3. 図4−4に引続くシーケンス図である。FIG. 4 is a sequence diagram subsequent to FIG. 4-4. 図4−5に引続くシーケンス図である。FIG. 6 is a sequence diagram subsequent to FIG. 4-5. 図1におけるフロー情報の一例を示す図である。It is a figure which shows an example of the flow information in FIG. 図1における通信相手情報の一例を示す図である。It is a figure which shows an example of the communication other party information in FIG. 図1におけるパス情報の一例を示す図である。It is a figure which shows an example of the path information in FIG. 図1におけるネットワーク状態の一例を示す図である。It is a figure which shows an example of the network state in FIG. 図1のシステム構成で、イベントが発生したときの模式図である。FIG. 2 is a schematic diagram when an event occurs in the system configuration of FIG. 1. イベント発生後の処理を説明するシーケンス図である。It is a sequence diagram explaining the process after event occurrence. 図10−1に引続くシーケンス図である。FIG. 10 is a sequence diagram subsequent to FIG. 図10−2に引続くシーケンス図である。FIG. 10 is a sequence diagram subsequent to FIG. 図10−3に引続くシーケンス図である。FIG. 10 is a sequence diagram subsequent to FIG. 図10−4に引続くシーケンス図である。FIG. 4 is a sequence diagram subsequent to FIG. 図10−5に引続くシーケンス図である。FIG. 6 is a sequence diagram subsequent to FIG. 10-5. イベント発生後に通知される通信メディア情報の一例を示す図である。It is a figure which shows an example of the communication media information notified after event occurrence. 図9のシステム構成で、イベントが発生したときの模式図である。FIG. 10 is a schematic diagram when an event occurs in the system configuration of FIG. 9. 他のイベント発生後の処理を説明するシーケンス図である。It is a sequence diagram explaining the process after another event occurrence. 他のイベント発生後の処理を説明するシーケンス図である。It is a sequence diagram explaining the process after another event occurrence. 他のイベント発生後の処理を説明するシーケンス図である。It is a sequence diagram explaining the process after another event occurrence. 他のイベント発生後の処理を説明するシーケンス図である。It is a sequence diagram explaining the process after another event occurrence. 他のイベント発生後の処理を説明するシーケンス図である。It is a sequence diagram explaining the process after another event occurrence. 他のイベント発生時の通信メディア情報の一例を示す図である。It is a figure which shows an example of the communication media information at the time of another event occurrence. 他のイベント発生時のパス情報の一例を示す図である。It is a figure which shows an example of the path information at the time of another event occurrence. 「フロー情報を受信」のイベント発生によるフロー図である。FIG. 11 is a flow diagram when an event “receive flow information” occurs. 「通信メディア変化を受信」のイベント発生によるフロー図である。FIG. 10 is a flow diagram when an event “receive communication media change” occurs. 「パス状態取得終了を受信」のイベント発生によるフロー図である。FIG. 10 is a flow diagram when an event of “reception of path status acquisition” occurs. 「パス情報を受信」のイベント発生によるフロー図である。FIG. 10 is a flow diagram when an event “receive path information” occurs. 「フ相手側通信メディア変化を受信」のイベント発生によるフロー図である。FIG. 10 is a flow chart due to the occurrence of an event “Reception of communication partner side communication media”. 「パス優先順位を受信」のイベント発生によるフロー図である。FIG. 10 is a flow diagram when an event “receive path priority” occurs. 「選択されたパス情報を受信」のイベント発生によるフロー図である。FIG. 10 is a flow diagram when an event “receive selected path information” occurs. 本発明を説明する他のシステム構成の模式図である。It is a schematic diagram of the other system configuration explaining this invention. 図17−1のシステム構成で、イベントが発生したときの模式図である。It is a schematic diagram when an event occurs in the system configuration of FIG. 図17−2のシステム構成で、イベントが発生したときの模式図である。It is a schematic diagram when an event occurs in the system configuration of FIG. 図17−2における処理の一例を説明するシーケンス図である。It is a sequence diagram explaining an example of the process in FIG. 図18−1と異なる処理を説明するシーケンス図である。FIG. 19 is a sequence diagram illustrating a process different from FIG. 図18−1と異なる他の処理を説明するシーケンス図である。FIG. 19 is a sequence diagram illustrating another process different from FIG. 図18−1と異なる他の処理を説明するシーケンス図である。FIG. 19 is a sequence diagram illustrating another process different from FIG. 図18−1と異なる他の処理を説明するシーケンス図である。FIG. 19 is a sequence diagram illustrating another process different from FIG. 図17−3に変化したときの処理を説明するシーケンス図である。FIG. 17 is a sequence diagram illustrating a process when it is changed to FIG. 図19−1と異なる他の処理を説明するシーケンス図である。FIG. 19 is a sequence diagram illustrating another process different from FIG. 19-1. 図19−1と異なる他の処理を説明するシーケンス図である。FIG. 19 is a sequence diagram illustrating another process different from FIG. 19-1. 図19−1と異なる他の処理を説明するシーケンス図である。FIG. 19 is a sequence diagram illustrating another process different from FIG. 19-1. 従来の課題を説明する図である。It is a figure explaining the conventional subject.

符号の説明Explanation of symbols

10,11…通信端末(端末)、13a,13b…アプリケーション、14a,14b…通信管理部、15a,15b…MultipleCoA部、16…通信メディア監視モジュール、17…パス管理モジュール、18…パス状態取得モジュール。 DESCRIPTION OF SYMBOLS 10,11 ... Communication terminal (terminal), 13a, 13b ... Application, 14a, 14b ... Communication management part, 15a, 15b ... MultipleCoA part, 16 ... Communication media monitoring module, 17 ... Path management module, 18 ... Path state acquisition module .

Claims (16)

2つの通信端末間で、1以上のパスで、1以上のフローを送受信する際に、フローとパスの組み合わせを選択する送受信方法であって、
フロー情報を受信、自分側通信メディアの変化を受信、パス状態取得終了を受信、パス情報を受信、相手側通信メディアの変化を受信、パス優先順位を受信、選択されたパス情報を受信の何れか1つ又は複数のイベントを検出した際に、子スレッドを生成してフローとパスの組み合わせを選択することを特徴とする送受信方法。
A transmission / reception method for selecting a combination of a flow and a path when transmitting / receiving one or more flows with one or more paths between two communication terminals,
Receives flow information, receives changes in communication media on its own side, receives completion of path status acquisition, receives path information, receives changes in communication media on the other side, receives path priority, receives selected path information A transmission / reception method comprising: generating a child thread and selecting a combination of a flow and a path when detecting one or a plurality of events.
前記フロー情報を受信した際に、フロー情報用の子スレッドを生成し、前記子スレッドは、データベースをロックして前記フロー情報を書き込み、次いでデータベースから前記フロー情報と通信相手の通信相手情報を読み込み、
下りフローがない場合はデータベースをアンロックして前記子スレッドを終了することを特徴とする請求項1に記載の送受信方法。
When the flow information is received, a child thread for flow information is generated, and the child thread locks the database and writes the flow information, and then reads the flow information and the communication partner information of the communication partner from the database. ,
2. The transmission / reception method according to claim 1, wherein when there is no downstream flow, the child thread is terminated by unlocking a database.
前記フロー情報を受信した際に、フロー情報用の子スレッドを生成し、前記子スレッドは、データベースをロックして前記フロー情報を書き込み、次いでデータベースから前記フロー情報と通信相手の通信相手情報を読み込み、
下りフローがある場合はパス情報を読み込み、さらに下りパス情報がある場合はデータベースをアンロックし、パス状態取得を依頼することを特徴とする請求項1に記載の送受信方法。
When the flow information is received, a child thread for flow information is generated, and the child thread locks the database and writes the flow information, and then reads the flow information and the communication partner information of the communication partner from the database. ,
2. The transmission / reception method according to claim 1, wherein when there is a downlink flow, path information is read, and when there is further downlink path information, the database is unlocked and a path status acquisition is requested.
前記フロー情報を受信した際に、フロー情報用の子スレッドを生成し、前記子スレッドは、データベースをロックして前記フロー情報を書き込み、次いでデータベースから前記フロー情報と通信相手の通信相手情報を読み込み、
下りフローがある場合はパス情報を読み込み、次いで下りパス情報がない場合は自分側通信メディア情報を読み込み、自分側通信メディア管理番号を増加させて通信相手情報を書き込み、データベースをアンロックした後、通信メディア情報と自分側通信メディア管理番号と一緒に送信することを特徴とする請求項1に記載の送受信方法。
When the flow information is received, a child thread for flow information is generated, and the child thread locks the database and writes the flow information, and then reads the flow information and the communication partner information of the communication partner from the database. ,
Read the path information if there is a downstream flow, then read the local communication media information if there is no downstream path information, increase the local communication media management number and write the communication partner information, unlock the database, The transmission / reception method according to claim 1, wherein the transmission is performed together with the communication media information and the local communication media management number.
前記自分側通信メディアの変化を受信した際に、通信メディア情報用の子スレッドを生成し、前記子スレッドは、データベースをロックして前記通信メディア情報を書き込み、次いでデータベースから前記フロー情報を読み込んだ後、データベースをアンロックして通信相手毎にフローをチェックし、
通信相手に下りフローがある場合は通信メディア情報送信用の子スレッドを生成し、さらに通信相手に上りフローがある場合はパス情報送信用の子スレッドを生成することを特徴とする請求項1に記載の送受信方法。
Upon receiving the change of the communication media on its own side, a child thread for communication media information is generated, and the child thread locks the database and writes the communication media information, and then reads the flow information from the database. After that, unlock the database and check the flow for each communication partner,
The child thread for transmitting communication media information is generated when the communication partner has a downstream flow, and further, the child thread for transmitting path information is generated when the communication partner has an upstream flow. The transmission / reception method described.
前記通信メディア情報送信用の子スレッドを生成した後、前記子スレッドは、データベースをロックして通信相手情報及び通信メディア情報を読み込み、次いで自分側通信メディア管理番号を増加させて通信相手情報を書き込み、データベースをアンロックした後、前記通信メディア情報を通信相手に送信し、前記通信メディア情報送信用の子スレッドを終了することを特徴とする請求項5に記載の送受信方法。   After the child thread for transmitting the communication media information is generated, the child thread locks the database and reads the communication partner information and the communication media information, and then increases the communication media management number on its own side and writes the communication partner information. 6. The transmission / reception method according to claim 5, wherein after the database is unlocked, the communication media information is transmitted to a communication partner, and the child thread for transmitting the communication media information is terminated. 前記パス情報送信用の子スレッドを生成した後、前記子スレッドは、データベースをロックして通信相手情報及び通信メディア情報並びに相手側通信メディア情報を読み込んでパス情報を生成し、次いで自分側パス管理番号を増加させて通信相手情報及び前記パス情報を書き込み、データベースをアンロックした後、前記パス情報を通信相手に送信し、前記パス情報送信用の子スレッドを終了することを特徴とする請求項5に記載の送受信方法。   After generating the child thread for transmitting the path information, the child thread locks the database, reads communication partner information, communication media information, and partner communication medium information to generate path information, and then manages its own path. The communication partner information and the path information are written with increasing numbers, the database is unlocked, the path information is transmitted to the communication partner, and the path information transmission child thread is terminated. 5. The transmission / reception method according to 5. 前記パス状態取得終了を受信した際に、パス状態取得終了用の子スレッドを生成し、前記子スレッドは、データベースをロックしてパス情報を書き込み、次いで通信相手のパス情報及びフロー情報を読み込んだ後、自分側パス優先順位管理番号を増加させて通信相手情報を書き込んで、データベースをアンロックし、次いでパス優先順位を生成させて通信相手に送信することを特徴とする請求項1に記載の送受信方法。   When the path status acquisition end is received, a child thread for path status acquisition end is generated. The child thread locks the database and writes the path information, and then reads the communication partner's path information and flow information. The communication path information is written by increasing the own path priority management number, the database is unlocked, and then the path priority is generated and transmitted to the communication partner. Transmission / reception method. 前記パス情報を受信した際に、パス情報用の子スレッドを生成し、前記子スレッドは、データベースをロックして通信相手情報を読み込み、次いで、「データベース内の相手側パス管理番号」<「受信した相手側パス管理番号」であった場合はチェックOKとして受信したパス情報を書き込み、この後、前記受信した相手側パス管理番号で通信相手情報を書き込んでデータベースをアンロックし、次いでパス状態取得を依頼することを特徴とする請求項1に記載の送受信方法。   When the path information is received, a child thread for path information is generated, the child thread locks the database and reads the communication partner information, and then “the partner path management number in the database” <“receive If it is "the other party path management number", the received path information is written as a check OK, and then the communication partner information is written with the received other party path management number to unlock the database, and then the path status is acquired. The transmission / reception method according to claim 1, further comprising: 前記「データベース内の相手側パス管理番号」<「受信した相手側パス管理番号」でなかった場合は、チェックNGとしてデータベースをアンロックし、前記子スレッドを終了することを特徴とする請求項9に記載の送受信方法。   10. If the “other party path management number in database” <“received party path management number” is not satisfied, the database is unlocked as a check NG and the child thread is terminated. The transmission / reception method described in 1. 前記相手側通信メディアの変化を受信した際に、相手側通信メディア情報用の子スレッドを生成し、前記子スレッドは、データベースをロックして通信相手情報を読み込み、次いで、「データベース内の相手側通信メディア管理番号」<「受信した相手側通信メディア管理番号」であった場合はチェックOKとして受信した相手側通信メディア情報を書き込み、この後、通信メディア情報及び相手側通信メディア情報を読み込んでパス情報を生成して書き込み、次いで自分側パス管理番号を増加させて通信相手情報を書き込んでデータベースをアンロックし、この後、前記パス情報を送信することを特徴とする請求項1に記載の送受信方法。   Upon receiving the change of the other party communication media, a child thread for the other party communication media information is generated, and the child thread locks the database and reads the communication partner information. If “communication media management number” <“received other party communication media management number”, the other party communication media information received as check OK is written, and then the communication media information and the other party communication media information are read and passed. The transmission / reception according to claim 1, characterized in that information is generated and written, then the local path management number is increased, communication partner information is written to unlock the database, and then the path information is transmitted. Method. 前記「データベース内の相手側通信メディア管理番号」<「受信した相手側通信メディア管理番号」でなかった場合は、チェックNGとしてデータベースをアンロックし、前記子スレッドを終了することを特徴とする前記請求項11に記載の送受信方法。   If the “other party communication media management number in the database” <“received other party communication media management number” is not satisfied, the database is unlocked as a check NG and the child thread is terminated. The transmission / reception method according to claim 11. 前記パス優先順位を受信した際に、パス優先順位用の子スレッドを生成し、前記子スレッドは、データベースをロックして通信相手情報を読み込み、次いで、「データベース内の相手側パス優先順位管理番号」<「受信した相手側パス優先順位管理番号」であった場合はチェックOKとして、上りに関する嗜好を加味した選択されたパス情報を生成して書き込み、次いで受信した相手側パス優先順位管理番号で通信相手情を書き込んでデータベースをアンロックし、この後、前記選択されたパス情報を送信することを特徴とする請求項1に記載の送受信方法。   When the path priority is received, a child thread for path priority is generated, and the child thread reads the communication partner information by locking the database, and then "the partner path priority management number in the database" ”<“ Received partner path priority management number ”, as a check OK, the selected path information considering the preference for uplink is generated and written, and then the received partner path priority management number is received. 2. The transmission / reception method according to claim 1, wherein the communication partner information is written to unlock the database, and then the selected path information is transmitted. 前記「データベース内の相手側パス優先順位管理番号」<「受信した相手側パス優先順位管理番号」でなかった場合は、チェックNGとしてデータベースをアンロックし、前記子スレッドを終了することを特徴とする請求項13に記載の送受信方法。   If “other party path priority management number in database” <“received partner path priority management number” is not satisfied, the database is unlocked as a check NG and the child thread is terminated. The transmission / reception method according to claim 13. 前記選択されたパス情報を受信した際に、選択されたパス情報用の子スレッドを生成し、前記子スレッドは、データベースをロックして通信相手情報を読み込み、次いで、「データベース内の自分側パス優先順位管理番号」≦「受信した自分側パス優先順位管理番号」であった場合はチェックOKとして選択されたパス情報を書き込み、次いで受信した自分側パス優先順位管理番号を書き込んでデータベースをアンロックし、この後、MultipleCoAのインタフェースでネットワーク状態を通知することを特徴とする請求項1に記載の送受信方法。   When the selected path information is received, a child thread for the selected path information is generated. The child thread locks the database and reads the communication partner information. If “priority management number” ≦ “received local path priority management number”, the path information selected as check OK is written, and then the received local path priority management number is written to unlock the database. Thereafter, the network state is notified through a MultipleCoA interface, and the transmission / reception method according to claim 1. 前記「データベース内の自分側パス優先順位管理番号」≦「受信した自分側パス優先順位管理番号」でなかった場合は、チェックNGとしてデータベースをアンロックし、前記子スレッドを終了することを特徴とする請求項15に記載の送受信方法。   If “the local path priority management number in the database” ≦ “the received local path priority management number” is not satisfied, the database is unlocked as a check NG and the child thread is terminated. The transmission / reception method according to claim 15.
JP2006178382A 2006-06-28 2006-06-28 Transmitting and receiving method Pending JP2008011072A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006178382A JP2008011072A (en) 2006-06-28 2006-06-28 Transmitting and receiving method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006178382A JP2008011072A (en) 2006-06-28 2006-06-28 Transmitting and receiving method

Publications (1)

Publication Number Publication Date
JP2008011072A true JP2008011072A (en) 2008-01-17

Family

ID=39068902

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006178382A Pending JP2008011072A (en) 2006-06-28 2006-06-28 Transmitting and receiving method

Country Status (1)

Country Link
JP (1) JP2008011072A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111552567A (en) * 2020-04-27 2020-08-18 北京奇艺世纪科技有限公司 Thread management method and device, electronic equipment and storage medium

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111552567A (en) * 2020-04-27 2020-08-18 北京奇艺世纪科技有限公司 Thread management method and device, electronic equipment and storage medium
CN111552567B (en) * 2020-04-27 2023-07-07 北京奇艺世纪科技有限公司 Thread management method and device, electronic equipment and storage medium

Similar Documents

Publication Publication Date Title
US10505908B2 (en) System and method for automatic wireless connection between a portable terminal and a digital device
JP4963318B2 (en) Improved 802.11 mesh architecture
US6704293B1 (en) Broadcast as a triggering mechanism for route discovery in ad-hoc networks
KR20210118918A (en) Data transmission method and device, quality of service flow management method and device, and medium
US7664055B2 (en) System and method for synchronizing components in a mesh network
US8493989B2 (en) Network device and data control program
EP1810456B1 (en) Systems and methods for accelerated learning in ring networks
JP3974590B2 (en) System and method for path MTU discovery in ad hoc networks
JP4847085B2 (en) Wireless communication method and wireless communication terminal device
JP2004007638A (en) Encryption and setting in proximity network
KR20070081733A (en) Apparatus for setting multipath and method thereof
KR20070055525A (en) Enhanced techniques for using core based nodes for state transfer
JP2003258825A (en) Gateway device, method for managing address of gateway device, and av equipment having gateway function
US20060209720A1 (en) System and method for collecting routing information in a mesh network
KR20050091611A (en) Method and apparatus for performing fast handover
CN111711941B (en) Data transmission method, related equipment and device
JP2007006437A (en) Communication system, communication control method, communication control apparatus, and communication control program
US8184588B2 (en) Apparatus and method for performing fast handover
US7738388B2 (en) Operational status testing apparatus and method for Ethernet-based automatic protection switching process
JP2006128949A (en) Radio communication device, communication system, radio communication method, and computer program
JP4658973B2 (en) How to insert a new device into the device community
JP2008011072A (en) Transmitting and receiving method
JP4735113B2 (en) User terminal identification method
JP2007505588A (en) UPNP terminal for ad hoc wireless network
JP4579629B2 (en) Communication device