JP2007043678A - Communication terminal and communication method - Google Patents

Communication terminal and communication method Download PDF

Info

Publication number
JP2007043678A
JP2007043678A JP2006178755A JP2006178755A JP2007043678A JP 2007043678 A JP2007043678 A JP 2007043678A JP 2006178755 A JP2006178755 A JP 2006178755A JP 2006178755 A JP2006178755 A JP 2006178755A JP 2007043678 A JP2007043678 A JP 2007043678A
Authority
JP
Japan
Prior art keywords
segment
transmission
path
management unit
terminal
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
JP2006178755A
Other languages
Japanese (ja)
Inventor
Takeshi Igarashi
健 五十嵐
Kentaro Saito
健太郎 斎藤
Daisuke Ochi
大介 越智
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.)
NTT Docomo Inc
Original Assignee
NTT Docomo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NTT Docomo Inc filed Critical NTT Docomo Inc
Priority to JP2006178755A priority Critical patent/JP2007043678A/en
Publication of JP2007043678A publication Critical patent/JP2007043678A/en
Pending legal-status Critical Current

Links

Images

Landscapes

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

Abstract

<P>PROBLEM TO BE SOLVED: To achieve a multiform enabled transport protocol for performing control similar to an ordinary TCP without using any header other than an ordinary TCP header. <P>SOLUTION: A communication terminal 10 includes: a path information manager unit 12 for managing TCP control information related to each of a plurality of paths; a transmission segment manager unit 11 for storing segments generated by dividing data to be transmitted; and a segment transmitter unit 13 for extracting a segment from the transmission segment manager unit 11 and transmitting the extracted segment to a receiving terminal 30. The transmission segment manager unit 11 makes a reservation for the transmission of the segment based on the TCP control information by storing the segment in association with a path used for the transmission of the segment, and the segment transmitter unit 13 extracts only a segment from the transmission segment manager unit 11 and transmits the extracted segment to the receiving terminal along a path associated with the segment. <P>COPYRIGHT: (C)2007,JPO&INPIT

Description

本発明は、送信端末が、複数のパスを同時に用いて、データを受信端末に送信する通信方法、及び、かかる通信方法を実現する通信端末に関する。   The present invention relates to a communication method in which a transmission terminal transmits data to a reception terminal using a plurality of paths simultaneously, and a communication terminal that implements the communication method.

従来、マルチホーム対応トランスポートプロトコル(Multi-Path TCP(Transmission Control Protocol))を用いた通信方法、すなわち、送信端末が、複数のパスを同時に用いてデータを受信端末に送信する通信方法として、非特許文献1乃至3に記載されている技術が知られている。
RFC2960、「SCTP(Stream Control Transmission Protocol)」 「A transport layer approach for improving end-to-end performance and robustness using redundant paths.」、Arvind Krishnamurthy、Larry Peterson、Ming Zhang、Junwen Lai、Randolph Wang著、USENIX’ 04、99〜112頁、2004年6月 「A transport layer approach for achieving aggregate bandwidth on multi-homed mobile hosts.」、Hung-Yun Heleh、Raghupathy Sivakumar著、ACM Mobicom’ 02、2002年9月
Conventionally, as a communication method using a multi-home compatible transport protocol (Multi-Path TCP (Transmission Control Protocol)), that is, a communication method in which a transmitting terminal transmits data to a receiving terminal using a plurality of paths simultaneously, Techniques described in Patent Documents 1 to 3 are known.
RFC 2960, “SCTP (Stream Control Transmission Protocol)” “A transport layer approfor for improving end-to-end perforance and Robustness using redundant paths.”, 2004. “A transport layer approach for aggregating bandwidth on multi-homed mobile hosts.” Hung-Yun Heleh, Raghupathy Momon, 2002

しかしながら、非特許文献1に提案されているマルチホーム対応トランスポートプロトコルを用いた通信方法は、最も通信状態の良い1つのパスのみを用いて通信を行い、障害時の迂回経路としてその他のパスを利用するように構成されているため、複数のパスを同時に利用して通信を行うことはできないという問題点があった。   However, the communication method using the multihome-compatible transport protocol proposed in Non-Patent Document 1 performs communication using only one path having the best communication state, and uses other paths as detour paths at the time of failure. Since it is configured to use, there is a problem that communication cannot be performed using a plurality of paths simultaneously.

これに対して、非特許文献2及び3に提案されている技術は、送信端末と受信端末との間に存在する複数のパスを同時に利用して通信を行うことができる。   On the other hand, the technologies proposed in Non-Patent Documents 2 and 3 can perform communication by simultaneously using a plurality of paths existing between the transmission terminal and the reception terminal.

しかしながら、非特許文献2に提案されている技術では、通常のTCPヘッダの上位に新たなヘッダを必要とすることから、非特許文献2に提案されているプロトコルを備えていない通信端末との間で通信を行うことができないという問題点があった。   However, since the technique proposed in Non-Patent Document 2 requires a new header above the normal TCP header, communication with a communication terminal not equipped with the protocol proposed in Non-Patent Document 2 There was a problem that it was not possible to communicate with.

この点、非特許文献3に提案されている技術では、通常のTCPヘッダのみを利用して、送信端末と受信端末との間に存在する複数のパスを同時に利用して通信を行うこと(すなわち、マルチホーム接続)を実現するように構成されている。   In this regard, in the technology proposed in Non-Patent Document 3, communication is performed by using only a normal TCP header and simultaneously using a plurality of paths existing between a transmitting terminal and a receiving terminal (that is, Multi-home connection).

しかしながら、非特許文献3に提案されている技術では、ACK(Acknowledgement:送達確認信号)を送信するためのパス(ACKパス)が1つしか利用できないため、利用しているACKパスに障害が発生すると、全てのパスにおいて影響を受けると共に、それぞれのパスが非対称となる(パケットを送信したパスとACKを受信するパスが異なる)ため、RTT(Round Trip Time)が正確に計測されないという問題点があった。   However, in the technique proposed in Non-Patent Document 3, only one path (ACK path) for transmitting an ACK (Acknowledgement signal) can be used, so a failure occurs in the ACK path being used. Then, all the paths are affected, and each path is asymmetric (the path that transmitted the packet is different from the path that receives the ACK), so that the RTT (Round Trip Time) is not accurately measured. there were.

さらに、非特許文献3に提案されている技術では、C-ACK(Cumulative ACK)を利用することができない等の問題があり、パス単位では、通常のTCPと同等の制御を行うことができないという問題点があった。   Furthermore, the technique proposed in Non-Patent Document 3 has a problem that C-ACK (Cumulative ACK) cannot be used, and it is impossible to perform control equivalent to normal TCP on a path basis. There was a problem.

本発明は、以上の点に鑑みてなされたもので、本発明に係る技術を適用していない受信端末との間であっても通信を可能とするために、通常のTCPヘッダ以外のヘッダを用いることなく、複数のACKパスを利用することで対称なパスを用いて正確なRTTを計測すると共に、Cumulative ACKを改良することによって、通常のTCPと同様の制御を行うことができるマルチホーム対応トランスポートプロトコルを実現する通信方法及び通信端末を提供することを目的とする。   The present invention has been made in view of the above points. In order to enable communication even with a receiving terminal to which the technology according to the present invention is not applied, a header other than a normal TCP header is used. Without using it, it is possible to perform the same control as normal TCP by measuring accurate RTT using a symmetric path by using multiple ACK paths and improving Cumulative ACK An object of the present invention is to provide a communication method and a communication terminal for realizing a transport protocol.

本発明の第1の特徴は、複数のパスを同時に用いて、データを受信端末に送信可能な通信端末であって、前記複数のパスの各々に係るTCP制御情報を管理するように構成されているパス情報管理部と、受信端末に対して送信すべきデータを分割して生成したセグメントを記憶するように構成されている送信セグメント管理部と、前記送信セグメント管理部から前記セグメントを抽出して前記受信端末に対して送信するように構成されているセグメント送信部とを具備し、前記送信セグメント管理部は、前記TCP制御情報に基づいて、前記セグメントと該セグメントの送信に用いられるパスとを関連付けて記憶することによって、該セグメントに対する送信予約を行うように構成されており、前記セグメント送信部は、前記送信セグメント管理部から前記セグメントのみを抽出して、該セグメントに関連付けられているパスを介して該セグメントを前記受信端末に送信するように構成されていることを要旨とする。   A first feature of the present invention is a communication terminal capable of transmitting data to a receiving terminal using a plurality of paths simultaneously, and configured to manage TCP control information related to each of the plurality of paths. A path information management unit, a transmission segment management unit configured to store a segment generated by dividing data to be transmitted to the receiving terminal, and extracting the segment from the transmission segment management unit A segment transmission unit configured to transmit to the receiving terminal, and the transmission segment management unit, based on the TCP control information, determines the segment and a path used for transmission of the segment. The segment transmission unit is configured to perform transmission reservation for the segment by associating and storing the segment, and the segment transmission unit includes the transmission segment. From processing section extracts only the segment, and summarized in that via the path associated with the segment is configured to transmit the segment to the receiving terminal.

かかる発明によれば、セグメントの送信が、通常のTCPヘッダのみを用いて行われるように構成されているため、本発明に係る技術を適用していない受信端末がとの間であっても通信を行うことができる。   According to this invention, since the segment is transmitted using only a normal TCP header, communication can be performed even with a receiving terminal to which the technology according to the present invention is not applied. It can be performed.

本発明の第1の特徴において、前記セグメントに係る送達確認信号が、該セグメントの送信に用いられたパスと同一のパスを介して受信された場合、全ての送信セグメント管理部の中で、送達確認信号を受信していないセグメントの最小のシーケンス番号より小さいシーケンス番号を有するセグメントを前記送信セグメント管理部から削除するように構成されているセグメント受信部を具備してもよい。   1st characteristic of this invention WHEREIN: When the delivery confirmation signal which concerns on the said segment is received via the path | pass same as the path | pass used for transmission of this segment, it is delivered in all the transmission segment management parts. A segment reception unit configured to delete from the transmission segment management unit a segment having a sequence number smaller than the minimum sequence number of a segment that has not received a confirmation signal may be provided.

本発明の第1の特徴において、前記送信セグメント管理部が、タイムアウトを検出した場合、送達確認信号を受信していない全てのセグメントに対する送信予約を取り消し、再度、前記TCP制御情報に基づいて、該セグメントに対する送信予約を行うように構成されていてもよい。   In the first aspect of the present invention, when the transmission segment management unit detects a timeout, the transmission segment management unit cancels the transmission reservation for all the segments that have not received the delivery confirmation signal, and again, based on the TCP control information, You may be comprised so that the transmission reservation with respect to a segment may be performed.

本発明の第1の特徴において、前記送信セグメント管理部が、選択送達確認信号を受信した最大のセグメントと、次に送達確認信号を受信すべきセグメントとの間に、送達確認信号を受信していないセグメントが所定数以上ある場合、選択送達確認信号を受信した最大のセグメントのシーケンス番号以下のシーケンス番号で送達確認信号を受信していないセグメント、及び、未送信のセグメントに対する送信予約を取り消し、再度、前記TCP制御情報に基づいて、該セグメントに対する送信予約を行うように構成されていてもよい。   In the first aspect of the present invention, the transmission segment management unit receives a delivery confirmation signal between the largest segment that has received the selective delivery confirmation signal and the next segment that should receive the delivery confirmation signal. If there are more than a certain number of segments, cancel transmission reservations for segments that have not received a delivery confirmation signal with a sequence number equal to or less than the sequence number of the largest segment that has received the selective delivery confirmation signal, and unsent segments, and again The transmission reservation for the segment may be performed based on the TCP control information.

本発明の第1の特徴において、前記セグメント送信部が、近隣通信端末との間でアドホックネットワークを形成し、該アドホックネットワーク内の前記パスを介して前記セグメントを送信するように構成されていてもよい。   In the first aspect of the present invention, the segment transmission unit may be configured to form an ad hoc network with a neighboring communication terminal and transmit the segment via the path in the ad hoc network. Good.

かかる発明によれば、近隣通信端末との間で形成されたアドホックネットワーク内のパスを利用することによって、複数のインターフェースを持たない通信端末においても、送信端末と受信端末との間に存在する複数のパスを同時に利用して通信を行うこと(すなわち、仮想的にマルチホーム接続)を実現することができる。   According to this invention, by using a path in an ad hoc network formed with neighboring communication terminals, a plurality of communication terminals that do not have a plurality of interfaces exist between a transmission terminal and a reception terminal. It is possible to realize communication (that is, virtual multi-home connection) by simultaneously using these paths.

本発明の第2の特徴は、複数のパスを同時に用いて、送信端末からデータを受信可能な通信端末であって、前記複数のパスの各々に係るTCP制御情報を管理するように構成されているパス情報管理部と、前記複数のパスを介して、前記データを分割して生成されたセグメントを受信するように構成されているセグメント受信部と、受信した前記セグメントを、該セグメントが送信されたパスごとに記憶するように構成されている受信セグメント管理部と、前記TCP制御情報に基づいて、各パスを介したセグメントの受信結果を通知するための送達確認信号を送信するように構成されているセグメント送信部とを具備することを要旨とする。   A second feature of the present invention is a communication terminal capable of receiving data from a transmission terminal using a plurality of paths simultaneously, and configured to manage TCP control information related to each of the plurality of paths. A path information management unit, a segment reception unit configured to receive a segment generated by dividing the data via the plurality of paths, and the segment received by the segment. A reception segment management unit configured to store for each path, and a transmission confirmation signal for notifying a reception result of the segment through each path based on the TCP control information. And a segment transmission unit.

本発明の第2の特徴において、前記送達確認信号が、前記パスを介して受信に成功したセグメントのシーケンス番号を通知するように構成されていてもよい。   In the second aspect of the present invention, the delivery confirmation signal may be configured to notify a sequence number of a segment successfully received via the path.

かかる発明によれば、パケットを受信したパスに対してACKを送信するように構成されているため、RTTを正確に計測することができ、C-ACKを改良することによって各パスに対して通常のTCP制御と同等の制御を行うことができる。   According to this invention, since it is configured to transmit an ACK to the path that received the packet, it is possible to accurately measure the RTT, and to improve the C-ACK, The same control as the TCP control can be performed.

本発明の第2の特徴において、同一のパスを介してシーケンス番号が連続する複数のセグメントが受信されている場合、前記送達確認信号が、該複数のセグメントの受信結果についてまとめて通知するように構成されていてもよい。   In the second aspect of the present invention, when a plurality of segments having consecutive sequence numbers are received through the same path, the delivery confirmation signal collectively notifies the reception results of the plurality of segments. It may be configured.

かかる発明によれば、複数のACK(送達確認信号)を送信することができるので(例えば、C-ACKを利用することができるので)、送信するACKの数を削減することができる。   According to this invention, since a plurality of ACKs (acknowledgment confirmation signals) can be transmitted (for example, C-ACK can be used), the number of ACKs to be transmitted can be reduced.

本発明の第2の特徴において、前記セグメント受信部が、近隣通信端末との間でアドホックネットワークを形成し、該アドホックネットワーク内の前記パスを介して前記セグメントを受信するように構成されていてもよい。   In the second aspect of the present invention, the segment receiving unit may be configured to form an ad hoc network with a neighboring communication terminal and receive the segment via the path in the ad hoc network. Good.

本発明の第3の特徴は、送信端末が、複数のパスを同時に用いて、データを受信端末に送信する通信方法であって、前記送信端末が、前記複数のパスごとに管理されているTCP制御情報に基づいて、前記受信端末に対して送信すべきデータを分割して生成したセグメントと、該セグメントの送信に用いられるパスとを関連付けて送信セグメント管理部に記憶することによって、該セグメントに対する送信予約を行う工程と、前記送信端末が、前記送信セグメント管理部から前記セグメントのみを抽出して、該セグメントに関連付けられているパスを介して該セグメントを前記受信端末に送信する工程と、前記受信端末が、受信した前記セグメントを、該セグメントが送信されたパスごとに管理すると共に、前記複数のパスごとに管理されているTCP制御情報に基づいて、各パスを介したセグメントの受信結果を通知するための送達確認信号を送信する工程と、前記送信端末が、前記セグメントに係る送達確認信号が、該セグメントの送信に用いられたパスと同一のパスを介して受信された場合、該セグメント及び該セグメントに関連付けられているパスを前記送信セグメント管理部から削除する工程とを有することを要旨とする。   A third feature of the present invention is a communication method in which a transmission terminal uses a plurality of paths simultaneously to transmit data to a reception terminal, and the transmission terminal is managed for each of the plurality of paths. Based on the control information, the segment generated by dividing the data to be transmitted to the receiving terminal and the path used for transmitting the segment are associated with each other and stored in the transmission segment management unit. A step of performing transmission reservation, a step in which the transmission terminal extracts only the segment from the transmission segment management unit, and transmits the segment to the reception terminal via a path associated with the segment; The receiving terminal manages the received segment for each path through which the segment is transmitted, and is managed for each of the plurality of paths. A step of transmitting a delivery confirmation signal for notifying the reception result of the segment via each path based on the TCP control information, and the transmission terminal sends a delivery confirmation signal related to the segment to the transmission of the segment. And a step of deleting the segment and the path associated with the segment from the transmission segment management unit when received via the same path as the used path.

本発明の第3の特徴において、前記送信端末及び前記受信端末が、近隣通信端末との間でアドホックネットワークを形成する工程を有し、前記送信端末は、生成した前記セグメントを、前記アドホックネットワーク内の前記パスを介して前記受信端末に対して送信し、前記受信端末は、前記アドホックネットワーク内の前記パスを介して前記セグメントを受信してもよい。   In the third aspect of the present invention, the transmitting terminal and the receiving terminal have a step of forming an ad hoc network with a neighboring communication terminal, and the transmitting terminal transmits the generated segment to the ad hoc network. May be transmitted to the receiving terminal via the path, and the receiving terminal may receive the segment via the path in the ad hoc network.

以上説明したように、本発明によれば、通常のTCPヘッダ以外のヘッダを用いることなく、通常のTCPと同様の制御を行うことができるマルチホーム対応トランスポートプロトコルを実現する通信方法及び通信端末を提供することができる。   As described above, according to the present invention, a communication method and a communication terminal for realizing a multihomed transport protocol capable of performing the same control as normal TCP without using a header other than the normal TCP header. Can be provided.

(本発明の第1の実施形態に係る通信端末の構成)
図1に、本発明の第1の実施形態に係る通信端末(送信端末10及び受信端末30)を具備する通信システムの一例を示す。図1に示すように、本実施形態では、3つのパス#1乃至#3を同時に用いて、送信端末10から受信端末30に対して、データを送信する環境を想定している。
(Configuration of communication terminal according to the first embodiment of the present invention)
FIG. 1 shows an example of a communication system including communication terminals (transmission terminal 10 and reception terminal 30) according to the first embodiment of the present invention. As shown in FIG. 1, in the present embodiment, an environment is assumed in which data is transmitted from the transmission terminal 10 to the reception terminal 30 using the three paths # 1 to # 3 simultaneously.

かかるデータとして、FTP(File Transfer Protocol)やSMTP(Simple Mail Transfer Protocol)やHTTP(Hyper Text Transfer Protocol)やPOP3(Post Office Protocol Version 3)等のアプリケーションデータが想定される。   As such data, applications such as FTP (File Transfer Protocol), SMTP (Simple Mail Transfer Protocol), HTTP (Hyper Text Transfer Protocol), and POP3 (Post Office Protocol Version 3) are assumed.

また、かかるデータは、SQL(Structured Query Language)等のデータベース言語で適用可能であり、NFS(Network File System)等のネットワーク越しのファイルアクセスで適用可能であり、SSH(Secure SHell)やSSL(Secure Socket Layer)やEthernet(登録商標) over TCP/IP等のVPN(Virtual Private Network)等、TCPを用いたあらゆる通信に適用可能である。   In addition, such data can be applied in a database language such as SQL (Structured Query Language), and can be applied in a file access over a network such as NFS (Network File System), such as SSH (Secure Shell) or SSL (Secure The present invention can be applied to any communication using TCP such as VPN (Virtual Private Network) such as Socket Layer) and Ethernet (registered trademark) over TCP / IP.

図1に示すように、本実施形態に係る受信端末30は、WAN(Wireless Area Network)における3G対応のインターフェースと、WLAN(Wireless Local Area Network)におけるIEEE802.11b対応のインターフェースと、WPAN(Wireless Personal Area Network)におけるBluetooth(登録商標)対応のインターフェース等といった複数の無線インターフェースを具備する(マルチホーム接続に対応可能な)ように構成されている。   As shown in FIG. 1, a receiving terminal 30 according to the present embodiment includes a 3G-compatible interface in a WAN (Wireless Area Network), an IEEE802.11b-compatible interface in a WLAN (Wireless Local Area Network), and a WPAN (Wireless Person). It is configured to have a plurality of wireless interfaces (compatible with multi-home connection) such as an interface compatible with Bluetooth (registered trademark) in Area Network.

そして、本実施形態に係る受信端末30は、複数のインターフェースによって確立される複数のパス#1乃至#3を同時に用いて、送信端末10から送信されるデータを受信するように構成されている。   The receiving terminal 30 according to the present embodiment is configured to receive data transmitted from the transmitting terminal 10 by simultaneously using a plurality of paths # 1 to # 3 established by a plurality of interfaces.

一方、図1の例では、本実施形態に係る送信端末10は、有線インターフェースを具備するだけで、複数の無線インターフェースを具備していない。   On the other hand, in the example of FIG. 1, the transmission terminal 10 according to the present embodiment includes only a wired interface and does not include a plurality of wireless interfaces.

しかしながら、通常のTCPにおいて、パス(一般的なTCPコネクション)は、[(送信者のIPアドレス,ポート番号),(受信者のIPアドレス,ポート番号)]の4つのアドレスによって判別される。   However, in normal TCP, a path (a general TCP connection) is determined by four addresses: [(IP address of sender, port number), (IP address of recipient, port number)].

したがって、本実施形態に係る送信端末10も、複数のパス#1乃至#3を同時に用いて、受信端末30に対してデータ(を構成するセグメント)を送信する必要がある以上、上述のパス#1乃至#3を判別できる(マルチホーム接続に対応可能な)ように構成されている。   Therefore, the transmission terminal 10 according to the present embodiment also needs to transmit the data (the segment constituting the) to the reception terminal 30 by using the plurality of paths # 1 to # 3 simultaneously. 1 to # 3 can be discriminated (corresponding to multihome connection).

図2に示すように、本実施形態に係る送信端末10は、アプリケーション機能部10aと、送信セグメント管理部11と、パス情報管理部12と、セグメント送信部13と、セグメント受信部14とを具備している。   As shown in FIG. 2, the transmission terminal 10 according to the present embodiment includes an application function unit 10a, a transmission segment management unit 11, a path information management unit 12, a segment transmission unit 13, and a segment reception unit 14. is doing.

アプリケーション機能部10aは、送信セグメント管理部11に対して、アプリケーションで用いられるデータを送信するように指示するものである。   The application function unit 10a instructs the transmission segment management unit 11 to transmit data used in the application.

ここで、アプリケーション機能部10aは、データを送信するパスとして、複数のパスの組を明示的に指定することができるように構成されていてもよい。   Here, the application function unit 10a may be configured to be able to explicitly specify a set of a plurality of paths as a path for transmitting data.

また、アプリケーション機能部10aは、データを送信するパスとして、代表パスを指定し、他のパスは、自動的に追加させるように構成されていてもよい。   Further, the application function unit 10a may be configured to designate a representative path as a path for transmitting data and to automatically add other paths.

送信セグメント管理部11は、受信端末30に対して送信すべきデータを分割して生成したセグメントを記憶する送信バッファによって構成されている。   The transmission segment management unit 11 includes a transmission buffer that stores segments generated by dividing data to be transmitted to the receiving terminal 30.

また、送信セグメント管理部11は、パスごとに「TCP-CB:TCP Control Block」によって管理されているTCP制御情報に基づいて、生成されたセグメントと、当該セグメントの送信に用いられるパス(変数「path」)とを関連付けて記憶することによって、当該セグメントに対する送信予約を行うように構成されている。   In addition, the transmission segment management unit 11 generates a segment generated based on TCP control information managed by “TCP-CB: TCP Control Block” for each path, and a path (variable “ path ") is stored in association with each other, thereby making a transmission reservation for the segment.

具体的には、送信セグメント管理部11は、図3に示すように、アプリケーション機能部10aから渡された受信端末30に送信すべきデータをPDU(Protocol DataUnit)単位に分割し、分割された各データに対して、通常のTCPヘッダを付与してセグメントを形成する。ここで、TCPヘッダは、通常のTCPで用いられるTCPヘッダであるものとする。   Specifically, as shown in FIG. 3, the transmission segment management unit 11 divides the data to be transmitted to the receiving terminal 30 passed from the application function unit 10 a into PDU (Protocol Data Unit) units. A segment is formed by adding a normal TCP header to the data. Here, the TCP header is assumed to be a TCP header used in normal TCP.

また、送信セグメント管理部11は、形成された当該セグメントに対して、当該セグメントを管理するための特別のヘッダを付与して管理するように構成されている。   Moreover, the transmission segment management part 11 is comprised so that the special header for managing the said segment may be provided and managed with respect to the formed said segment.

かかる特別のヘッダは、図3に示すように、「path」、「sack」、「p_seq」、「next」等といった変数や、「rsv」フラグ等といったフラグを含むように構成されている。   As shown in FIG. 3, the special header is configured to include variables such as “path”, “sack”, “p_seq”, “next”, and flags such as “rsv” flag.

ここで、変数「p_seq」は、パスごとに割り振られたセグメントのシーケンス番号を示す。   Here, the variable “p_seq” indicates the sequence number of the segment allocated for each path.

なお、TCPでは、シーケンス番号を、「バイトオーダー」で表現するのが一般的であるが、本明細書では、簡略化のため「シーケンスオーダー」で表現するものとする。   In TCP, the sequence number is generally expressed in “byte order”, but in this specification, it is expressed in “sequence order” for the sake of simplicity.

また、変数「path」は、当該セグメントの送信に用いられるパスの識別情報を示し、変数「sack」は、当該セグメントに対するACKの受信に用いられたパスの識別情報を示す。また、変数「next」は、当該セグメントの次に参照すべきセグメントを示す。   The variable “path” indicates identification information of a path used for transmission of the segment, and the variable “sack” indicates identification information of a path used for reception of an ACK for the segment. The variable “next” indicates a segment to be referred to next to the segment.

「rsv」フラグは、当該セグメントに対する送信予約が行われている状態を示すフラグである(かかる状態である場合「1」)。   The “rsv” flag is a flag indicating a state in which transmission reservation for the segment is performed (“1” in this state).

さらに、送信セグメント管理部11は、次に予約すべきデータ開始位置を示す「rsv_nxt」という変数を管理している。   Further, the transmission segment management unit 11 manages a variable “rsv_nxt” indicating the data start position to be reserved next.

また、送信セグメント管理部11は、タイムアウトを検出した場合、ACK(送達確認信号)を受信していない全てのセグメントに対する送信予約を取り消し、再度、TCP-CB(TCP制御情報)に基づいて、当該セグメントに対する送信予約を行うように構成されている。   If the transmission segment management unit 11 detects a timeout, the transmission segment management unit 11 cancels transmission reservations for all segments that have not received ACK (acknowledgement signal), and again, based on TCP-CB (TCP control information), It is configured to make a transmission reservation for the segment.

また、送信セグメント管理部11は、SACKブロック(選択送達確認信号)を受信した最大のセグメント(「max_sack」)と、次にACK(送達確認信号)を受信すべきセグメント(「rcv_nxt」)との間に、ACK(送達確認信号)を受信していないセグメントが所定数(例えば、3つ)以上ある場合、SACKブロック(選択送達確認信号)を受信した最大のセグメントのシーケンス番号以下のシーケンス番号でACK(送達確認信号)を受信していないセグメント、及び、未送信のセグメントに対する送信予約を取り消し、再度、TCP-CB(TCP制御情報)に基づいて、当該セグメントに対する送信予約を行うように構成されている。   In addition, the transmission segment management unit 11 includes a maximum segment (“max_sack”) that has received the SACK block (selective acknowledgment signal) and a segment (“rcv_nxt”) that is to receive the next ACK (delivery acknowledgment signal). If there are more than a predetermined number (for example, 3) of segments that have not received ACK (acknowledgment acknowledgment signal) in the meantime, the sequence number is equal to or less than the sequence number of the largest segment that has received the SACK block (selective acknowledgment signal) It is configured to cancel transmission reservations for segments that have not received an ACK (acknowledgement signal) and untransmitted segments, and make transmission reservations for the segments again based on TCP-CB (TCP control information). ing.

パス情報管理部12は、複数のパス情報管理部#1乃至#3によって、複数のパス#1乃至#3の各々に係るTCP-CB(TCP制御情報)を管理するように構成されている。なお、各パスは、[(送信者のIPアドレス,ポート番号),(受信者のIPアドレス,ポート番号)]の4つのアドレスによって判別される。   The path information management unit 12 is configured to manage TCP-CB (TCP control information) related to each of the plurality of paths # 1 to # 3 by the plurality of path information management units # 1 to # 3. Each path is identified by four addresses, [(IP address of sender, port number), (IP address of recipient, port number)].

具体的には、各パス情報管理部#nは、図4に示すように、「rtt」、「t_timer」、「t_seq」、「cwnd」、「ssthresh」、「rcv_nxt」、「snd_nxt」、「rsv_num」、「snd_num」、「max_sack」等といった変数を含むTCP-CB(n)を管理するように構成されている。   Specifically, as illustrated in FIG. 4, each path information management unit #n performs “rtt”, “t_timer”, “t_seq”, “cwnd”, “ssthresh”, “rcv_nxt”, “snd_nxt”, “ It is configured to manage TCP-CB (n) including variables such as “rsv_num”, “snd_num”, and “max_sack”.

なお、かかるTCP-CB(n)には、さらに「t_state」や「t_flags」等といったTCPコネクションを維持するための様々な情報が確保されていてもよい。   In addition, various information for maintaining a TCP connection such as “t_state” and “t_flags” may be secured in the TCP-CB (n).

ここで、「rtt」は、計測されたラウンドトリップタイムであり、「t_timer」は、「rtt」を元に計算されたタイムアウト値であり、「t_seq」は、「rtt」の計測に用いられるセグメントのシーケンス番号であり、「cwnd」は、輻輳ウィンドウであり、「ssthresh」は、「Slow Start Threshold」であり、「rcv_nxt」は、次に受信を期待するセグメントのシーケンス番号であり、「snd_nxt」は、次に送信するセグメントのシーケンス番号であり、「rsv_num」は、予約済みのデータ量であり、「snd_num」は、送信済みのデータ量であり、「max_sack」は、当該パスで送信されたセグメントにおいて、ACK又はSACKオプションによって通知された最大のシーケンス番号である。   Here, “rtt” is a measured round trip time, “t_timer” is a timeout value calculated based on “rtt”, and “t_seq” is a segment used for measuring “rtt”. "Cwnd" is a congestion window, "ssthresh" is "Slow Start Threshold", "rcv_nxt" is the sequence number of the segment that is expected to be received next, and "snd_nxt" Is a sequence number of a segment to be transmitted next, “rsv_num” is a reserved data amount, “snd_num” is a transmitted data amount, and “max_sack” is transmitted through the path. Notify by ACK or SACK option in segment Is the largest sequence number assigned.

セグメント送信部13は、送信セグメント管理部11からセグメントを抽出して、当該セグメントに関連付けられているパスを介して当該セグメントを受信端末30に対して送信するように構成されている。   The segment transmission unit 13 is configured to extract a segment from the transmission segment management unit 11 and transmit the segment to the receiving terminal 30 via a path associated with the segment.

また、セグメント送信部13は、特定のセグメントのロストが検出された場合、当該セグメントについて再送信を行うように構成されている。   Moreover, the segment transmission part 13 is comprised so that it may retransmit about the said segment, when the loss of a specific segment is detected.

セグメント受信部14は、セグメントに係るACK(送達確認信号)が、当該セグメントの送信に用いられたパスと同一のパスを介して受信された場合、全ての送信セグメント管理部11の中で、ACK(送達確認信号)を受信していないセグメントの最小のシーケンス番号より小さいシーケンス番号を有するセグメントを送信セグメント管理部11から削除するように構成されている。   When the ACK (acknowledgment confirmation signal) related to the segment is received via the same path as the path used for transmitting the segment, the segment receiving unit 14 A segment having a sequence number smaller than the minimum sequence number of a segment that has not received (delivery confirmation signal) is deleted from the transmission segment management unit 11.

図5に示すように、本実施形態に係る受信端末30は、アプリケーション機能部30aと、セグメント受信部31と、パス情報管理部32と、受信セグメント管理部33と、セグメント送信部34とを具備している。   As shown in FIG. 5, the receiving terminal 30 according to the present embodiment includes an application function unit 30a, a segment receiving unit 31, a path information managing unit 32, a receiving segment managing unit 33, and a segment transmitting unit 34. is doing.

セグメント受信部31は、送信端末10から複数のパス#1乃至#3を介してセグメントを受信し、受信したセグメントのそれぞれを[(送信者のIPアドレス,ポート番号),(受信者のIPアドレス,ポート番号)]の4つのアドレスに基づいて、特定のパス情報管理部#1乃至#3に送信するように構成されている。   The segment receiving unit 31 receives segments from the transmitting terminal 10 via a plurality of paths # 1 to # 3, and selects each of the received segments [(sender's IP address, port number), (receiver's IP address , Port number)]] to the specific path information management units # 1 to # 3.

パス情報管理部32は、複数のパス情報管理部#1乃至#3によって、複数のパス#1乃至#3の各々に係るTCP-CB(TCP制御情報)を管理するように構成されている。なお、各パスは、[(送信者のIPアドレス,ポート番号),(受信者のIPアドレス,ポート番号)]の4つのアドレスによって判別される。   The path information management unit 32 is configured to manage TCP-CB (TCP control information) related to each of the plurality of paths # 1 to # 3 by the plurality of path information management units # 1 to # 3. Each path is identified by four addresses, [(IP address of sender, port number), (IP address of recipient, port number)].

具体的には、各パス情報管理部#nは、図6に示すように、「del_timer」、「del_ack」、「rcv_nxt」、「p_sack1」、「p_sack2」、「p_sack3」等といった変数を含むTCP-CB(n)を管理するように構成されている。   Specifically, each path information management unit #n includes a TCP including variables such as “del_timer”, “del_ack”, “rcv_nxt”, “p_sack1”, “p_sack2”, “p_sack3”, etc., as shown in FIG. -It is configured to manage CB (n).

なお、かかるTCP-CB(n)には、さらに、TCPコネクションを維持するための様々な情報が確保されていてもよい。   In addition, various information for maintaining the TCP connection may be secured in the TCP-CB (n).

ここで、「del_timer」は、ACKの送信を遅らせるためのタイマであり、「del_ack」は、「del_timer」満了時のACKに用いられるシーケンス番号であり、「rcv_nxt」は、次に受信を期待するセグメントのシーケンス番号であり、「p_sackn」は、n番目のブロックに記入するシーケンス番号である。   Here, “del_timer” is a timer for delaying transmission of ACK, “del_ack” is a sequence number used for ACK when “del_timer” expires, and “rcv_nxt” is expected to be received next. This is the sequence number of the segment, and “p_sackn” is the sequence number entered in the nth block.

受信セグメント管理部33は、受信したセグメントを、当該セグメントが送信されたパスごとに管理するように構成されている。   The reception segment management unit 33 is configured to manage the received segment for each path through which the segment is transmitted.

具体的には、受信セグメント管理部33は、図7に示すように、パス情報管理部12から送信された各セグメントに対して、当該セグメントを管理するための特別のヘッダを付与して管理するように構成されている受信バッファである。   Specifically, as shown in FIG. 7, the reception segment management unit 33 manages each segment transmitted from the path information management unit 12 by adding a special header for managing the segment. The reception buffer is configured as described above.

かかる特別のヘッダは、図7に示すように、「path」等といった変数を含むように構成されている。   The special header is configured to include a variable such as “path” as shown in FIG.

ここで、変数「path」は、当該セグメントの送信に用いられるパスの識別情報を示す。   Here, the variable “path” indicates identification information of a path used for transmission of the segment.

さらに、受信セグメント管理部33は、最初に受信したセグメントが記憶されている開始位置を示す「rcv_buf_first」という変数を管理している。   Further, the reception segment management unit 33 manages a variable “rcv_buf_first” indicating the start position where the first received segment is stored.

なお、受信セグメント管理部33は、変数「rcv_buf_first」によって示されるセグメントから、アプリケーション機能部30aに送信するように構成されている。   The reception segment management unit 33 is configured to transmit from the segment indicated by the variable “rcv_buf_first” to the application function unit 30a.

セグメント送信部34は、パスごとに管理されているTCP-CB(TCP制御情報)に基づいて、各パスを介したセグメントの受信結果を通知するためのACK(送達確認信号)を送信するように構成されている。   Based on TCP-CB (TCP control information) managed for each path, the segment transmission unit 34 transmits an ACK (delivery confirmation signal) for notifying the reception result of the segment via each path. It is configured.

なお、かかるACKには、後述するように、RFC2018で定義されているSACK(Selective Acknowledgement)オプションが付与されている。   Note that, as will be described later, a SACK (Selective Acknowledgment) option defined in RFC2018 is given to the ACK.

ここで、ACKに付与されたSACKオプションは、各パスを介して受信に成功したセグメントのシーケンス番号を通知するように構成されている。   Here, the SACK option given to ACK is configured to notify the sequence number of the segment successfully received via each path.

また、セグメント送信部34は、同一のパス内でシーケンス番号が連続する複数のセグメントが受信されている場合、当該複数のセグメントの受信結果についてまとめて通知する送達確認信号(C-ACK)を送信するように構成されていてもよい。   Further, when a plurality of segments having consecutive sequence numbers are received in the same path, the segment transmission unit 34 transmits a delivery confirmation signal (C-ACK) for collectively reporting the reception results of the plurality of segments. It may be configured to.

(本発明の第1の実施形態に係る通信端末の動作)
以下、図8乃至図15を参照して、本発明の第1の実施形態に係る通信端末の動作について説明する。
(Operation of the communication terminal according to the first embodiment of the present invention)
The operation of the communication terminal according to the first embodiment of the present invention will be described below with reference to FIGS.

第1に、図8及び図9を参照して、本実施形態に係る送信端末10が、複数のパス#1乃至#3を同時に用いて、データを受信端末30に送信する動作について説明する。   First, with reference to FIG. 8 and FIG. 9, an operation in which the transmission terminal 10 according to the present embodiment transmits data to the reception terminal 30 using a plurality of paths # 1 to # 3 simultaneously will be described.

図8に示すように、ステップS101において、送信端末10の送信セグメント管理部11は、アプリケーション機能部10aから渡されたデータをMTU単位に分割する。   As shown in FIG. 8, in step S101, the transmission segment management unit 11 of the transmission terminal 10 divides the data passed from the application function unit 10a into MTU units.

ステップS102において、送信セグメント管理部11は、MTU単位に分割されたそれぞれのデータにTCPヘッダを付与してセグメントを形成して、上述の特別のヘッダ(図3参照)を付与して管理する。   In step S102, the transmission segment management unit 11 forms a segment by adding a TCP header to each piece of data divided in MTU units, and manages the data by adding the above-described special header (see FIG. 3).

ここで、送信セグメント管理部11は、各変数及びフラグに、初期値として「0」を設定する。   Here, the transmission segment management unit 11 sets “0” as an initial value in each variable and flag.

ステップS103において、送信セグメント管理部11は、パス情報管理部12によって管理されている全てのパスに係るTCP-CB内の変数「rsv_num」を監視しており、変数「rsv_num」が、変数「max_burst」を下回っている場合、先頭のデータ(変数「rsv_nxt」によって示されるデータ)に対して送信予約を行う。   In step S103, the transmission segment management unit 11 monitors the variable “rsv_num” in the TCP-CB related to all paths managed by the path information management unit 12, and the variable “rsv_num” is changed to the variable “max_burst”. ”Is less than“ ”, a transmission reservation is made for the top data (data indicated by the variable“ rsv_nxt ”).

ここで、変数「max_burst」は、ACK受信時に一度に送信することのできる最大のセグメントのデータ量(セグメント数)を示す。なお、変数「max_burst」は、全てのパス(インターフェース)で共通の変数である。   Here, the variable “max_burst” indicates the maximum data amount (number of segments) that can be transmitted at a time when an ACK is received. The variable “max_burst” is a variable common to all paths (interfaces).

そして、送信セグメント管理部11は、送信セグメント管理部11の先頭データ(「変数「rsv_nxt」によって示されるデータ」から、「rsv」フラグが設定されていないセグメントに対して送信予約を行い、パス情報管理部12は、送信予約を行ったセグメントのデータ量を、当該セグメントの送信に用いるパスに対応するTCP-CBにおける変数「rsv_num」に追加する。   Then, the transmission segment management unit 11 makes a transmission reservation for the segment in which the “rsv” flag is not set from the top data of the transmission segment management unit 11 (“data indicated by the variable“ rsv_nxt ””). The management unit 12 adds the data amount of the segment for which transmission reservation has been made to the variable “rsv_num” in the TCP-CB corresponding to the path used for transmission of the segment.

なお、予約されたセグメントは、変数「next」によって結ばれており、各セグメントに付与された特別なヘッダ内の変数「next」を辿ることによって、次に予約されているセグメントを辿ることができる。   The reserved segments are connected by the variable “next”, and the next reserved segment can be traced by following the variable “next” in the special header given to each segment. .

ここで、変数「rsv_num」に既に値が設定されていた場合は、送信セグメント管理部11は、「cwnd」−「rsv_num」に該当する分のセグメントに対してのみ送信予約を行う。   Here, when a value is already set in the variable “rsv_num”, the transmission segment management unit 11 performs transmission reservation only for the segments corresponding to “cwnd” − “rsv_num”.

つまり、送信セグメント管理部11は、変数「rsv_num」=変数「cwnd」となるように、セグメントに対する送信予約を行うように構成されている。   That is, the transmission segment management unit 11 is configured to make a transmission reservation for a segment such that the variable “rsv_num” = the variable “cwnd”.

ただし、ACK内の広告ウィンドウ値が、全てのパス情報管理部#nによって管理される変数「cwnd」の合計(Σcwnd)よりも小さい場合は、送信セグメント管理部11は、変数「rsv_num」が、「ACK内の広告ウィンドウ値×cwnd/Σcwnd」を超えないようにする。   However, when the advertisement window value in the ACK is smaller than the sum (Σcwnd) of the variables “cwnd” managed by all the path information management units #n, the transmission segment management unit 11 sets the variable “rsv_num” Do not exceed “advertising window value in ACK × cwnd / Σcwnd”.

送信セグメント管理部11は、かかる送信予約が完了した場合、上述の特別のヘッダにおける「rsv」フラグに「1」を設定し、送信予約を行ったパスの識別情報を上述のヘッダにおける変数「path」に設定する。   When the transmission reservation is completed, the transmission segment management unit 11 sets “rs” in the “rsv” flag in the special header described above, and sets the identification information of the path for which the transmission reservation has been made to the variable “path” in the header. To "".

ここで、パス情報管理部12は、変数「snd_nxt」に設定されている位置よりも前に位置するセグメントについて送信予約が行われた場合、変数「snd_nxt」に、送信予約を行ったセグメントの次のセグメントの開始位置を設定する。   Here, when the transmission reservation is made for the segment located before the position set in the variable “snd_nxt”, the path information management unit 12 sets the variable “snd_nxt” next to the segment for which the transmission reservation has been made. Set the start position of the segment.

パス情報管理部12は、変数「rcv_nxt」が変数「snd_nxt」を下回った場合、同様に、変数「rcv_nxt」に「snd_nxt」に設定されている値を設定する。   When the variable “rcv_nxt” falls below the variable “snd_nxt”, the path information management unit 12 similarly sets the value set to “snd_nxt” to the variable “rcv_nxt”.

ステップS104において、セグメント送信部13は、複数のパス#1乃至#3を同時に用いて、送信予約が行われているセグメントを、順次、受信端末30に送信する。   In step S <b> 104, the segment transmission unit 13 sequentially transmits the segments for which transmission reservation is performed to the receiving terminal 30 using the plurality of paths # 1 to # 3 simultaneously.

なお、セグメント送信部13は、「cwnd」−「snd_num」>0の場合は、変数「snd_nxt」によって示されるセグメントから順に送信を行う。   If “cwnd” − “snd_num”> 0, the segment transmission unit 13 performs transmission in order from the segment indicated by the variable “snd_nxt”.

ここで、変数「snd_num」は、該当パスにおいて送信済みでACKを受け取っていないセグメント数である。   Here, the variable “snd_num” is the number of segments that have been transmitted in the corresponding path and have not received ACK.

また、セグメント送信部13が、特定のパスを介してセグメントを送信した場合、パス情報管理部12は、当該特定のパスに係るTCP-CBにおける変数「rsv_num」から送信したセグメントのデータ量を減じて、当該特定のパスに係るTCP-CBにおける変数「snd_num」へ送信したセグメントのデータ量を追加する。   When the segment transmission unit 13 transmits a segment via a specific path, the path information management unit 12 subtracts the data amount of the segment transmitted from the variable “rsv_num” in the TCP-CB related to the specific path. Then, the data amount of the segment transmitted to the variable “snd_num” in the TCP-CB related to the specific path is added.

セグメント送信部13が、セグメントを送信する毎に、パス情報管理部12は、変数「next」を辿り、次のセグメントの開始位置を、変数「snd_nxt」に設定する。   Each time the segment transmission unit 13 transmits a segment, the path information management unit 12 follows the variable “next” and sets the start position of the next segment to the variable “snd_nxt”.

なお、セグメント送信部13が、セグメントを送信する際に、変数「t_timer」が設定されていない場合には、パス情報管理部12は、変数「t_timer」に、変数「rtt」等から計算される新たタイムアウト値を設定し、変数「t_seq」に、送信されたセグメントのシーケンス番号(seq)を設定する。   When the segment transmission unit 13 transmits a segment and the variable “t_timer” is not set, the path information management unit 12 calculates the variable “t_timer” from the variable “rtt” or the like. A new timeout value is set, and the sequence number (seq) of the transmitted segment is set in the variable “t_seq”.

図9に、送信端末10が、パス#1を介してセグメント#4を送信した場合における上述の特別のヘッダ及びTCP-CBの一例を示す。   FIG. 9 shows an example of the above-described special header and TCP-CB when the transmission terminal 10 transmits the segment # 4 via the path # 1.

かかる場合、送信セグメント管理部11においてセグメント#4に付与されている特別のヘッダでは、変数「path」=1、変数「sack」=0、「rsv」フラグ=0、変数「next」=0と設定されている。   In this case, in the special header assigned to segment # 4 in the transmission segment management unit 11, the variable “path” = 1, the variable “sack” = 0, the “rsv” flag = 0, and the variable “next” = 0. Is set.

また、パス#1に係るTCP-CB(1)では、変数「rcv_nxt」=1、変数「snd_nxt」=4、変数「rsv_num」=1、変数「snd_num」=1と設定されている。   In TCP-CB (1) related to path # 1, the variable “rcv_nxt” = 1, the variable “snd_nxt” = 4, the variable “rsv_num” = 1, and the variable “snd_num” = 1 are set.

第2に、図10及び図11を参照して、本実施形態に係る送信端末10が、ACKを受信する動作について説明する。   Secondly, with reference to FIGS. 10 and 11, an operation in which the transmission terminal 10 according to the present embodiment receives an ACK will be described.

図10に示すように、ステップS301において、送信端末10のセグメント受信部14は、受信端末30から送信されたACKを受信して、当該ACKを受信したパスの[(送信者のIPアドレス,ポート番号),(受信者のIPアドレス,ポート番号)]の4つのアドレスに基づいて、当該ACKを適切なパス情報管理部#nに転送する。   As shown in FIG. 10, in step S301, the segment receiving unit 14 of the transmitting terminal 10 receives the ACK transmitted from the receiving terminal 30, and [(sender's IP address, port Number) and (recipient's IP address, port number)], the ACK is transferred to an appropriate path information management unit #n.

図11の例では、送信端末10のセグメント受信部14は、受信端末30から受信したACK(A)又は(B)を、当該ACK(A)又は(B)を受信したパス#1を管理するパス情報管理部#1に転送する。   In the example of FIG. 11, the segment receiver 14 of the transmission terminal 10 manages the ACK (A) or (B) received from the reception terminal 30 and the path # 1 that has received the ACK (A) or (B). Transfer to path information management unit # 1.

ここで、図11に示すACK(A)は、未だ受信していないセグメントのうち最もシーケンス番号が小さいセグメントは「セグメント#1」であることを通知するものである。   Here, ACK (A) shown in FIG. 11 notifies that the segment with the smallest sequence number among the segments that have not yet been received is “segment # 1”.

また、図11に示すACK(B)は、未だ受信していないセグメントのうち最もシーケンス番号が小さいセグメントは「セグメント#2」であることを通知し、また、SACKオプションによって、セグメント#7の受信に成功したことを通知するものである。   In addition, the ACK (B) shown in FIG. 11 notifies that the segment with the smallest sequence number among the segments that have not been received is “segment # 2”, and the segment # 7 is received by the SACK option. Is a notification of success.

なお、ACKは、1つのSACKオプションによって、複数のセグメントの受信に成功したことを通知するように構成されていてもよい。   Note that the ACK may be configured to notify successful reception of a plurality of segments by one SACK option.

ステップS302において,パス情報管理部#nは、受信したACK及びSACKオプションによって受信側への到着が報告されたセグメントについては、特別のヘッダにおける変数「sack」に、当該パス情報管理部#nによって管理されているパスの識別情報を設定するように、送信セグメント管理部11に指示する。   In step S302, the path information management unit #n sets the variable “sack” in the special header for the segment whose arrival to the receiving side is reported by the received ACK and SACK option by the path information management unit #n. The transmission segment management unit 11 is instructed to set the identification information of the managed path.

なお、変数「sack」に設定されているパスの識別情報と変数「path」に設定されているパスの識別情報とが一致した場合、他のACKを受信した際に、変数「sack」を上書きしない。   If the path identification information set in the variable “sack” matches the path identification information set in the variable “path”, the variable “sack” is overwritten when another ACK is received. do not do.

図11の例では、パス情報管理部#1は、ACK(A)によって受信が成功したことを通知されたセグメント#1に付与されている特別のヘッダにおける変数「sack」に、パス#1の識別情報を設定するように、送信セグメント管理部11に指示する。   In the example of FIG. 11, the path information management unit # 1 sets the variable “sack” in the special header assigned to the segment # 1 notified of successful reception by ACK (A) to the variable “sack”. The transmission segment management unit 11 is instructed to set the identification information.

また、図11の例では、パス情報管理部#1は、ACK(B)のSACKオプションによって受信が成功したことを通知されたセグメント#7に付与されている特別のヘッダにおける変数「sack」に、パス#1の識別情報を設定するように、送信セグメント管理部11に指示する。   In the example of FIG. 11, the path information management unit # 1 sets the variable “sack” in the special header attached to the segment # 7 that is notified of the successful reception by the SACK option of ACK (B). The transmission segment management unit 11 is instructed to set the identification information of the path # 1.

ステップS303において、パス情報管理部#nは、当該TCP-CB(n)における変数「rcv_nxt」と、ACK又はSACKオプションによって通知されているセグメントのシーケンス番号(seq)とを比較する。   In step S303, the path information management unit #n compares the variable “rcv_nxt” in the TCP-CB (n) with the sequence number (seq) of the segment notified by the ACK or SACK option.

変数「rcv_nxt」が、当該seq(ACK)よりも小さい場合、或いは、 SACKブロックによって、変数「rcv_nxt」に該当するセグメントの受信が通知されなかった場合、本動作はステップS304に進む。それ以外の場合は、本動作はステップS305に進む。   When the variable “rcv_nxt” is smaller than the seq (ACK), or when the reception of the segment corresponding to the variable “rcv_nxt” is not notified by the SACK block, the operation proceeds to step S304. In other cases, the operation proceeds to step S305.

図11の例では、TCP-CB(n)における変数「rcv_nxt」には、「セグメント#1のシーケンス番号」が設定されているので、パス情報管理部#1が、ACK(A)を受信した場合、本動作はステップS305に進む。   In the example of FIG. 11, since the “sequence number of segment # 1” is set in the variable “rcv_nxt” in TCP-CB (n), the path information management unit # 1 has received ACK (A). In this case, the operation proceeds to step S305.

ステップS305において、パス情報管理部#nは、当該TCP-CB(n)における変数「rcv_nxt」によって指定されるセグメントに係る特別のヘッダ内の変数「sack」が変数「path」と一致するか否かの判断を行う。   In step S305, the path information management unit #n determines whether or not the variable “sack” in the special header related to the segment specified by the variable “rcv_nxt” in the TCP-CB (n) matches the variable “path”. Judgment is made.

ステップS305において、当該TCP-CB(n)における変数「rcv_nxt」によって指定されるセグメントに係る特別のヘッダ内の変数「sack」が変数「path」と一致する場合、ステップS306において、変数「rcv_nxt」に設定するセグメントを、当該TCP-CB(n)における変数「next」に従って次に移動する。   In step S305, when the variable “sack” in the special header relating to the segment specified by the variable “rcv_nxt” in the TCP-CB (n) matches the variable “path”, in step S306, the variable “rcv_nxt”. Next, the segment to be set is moved according to the variable “next” in the TCP-CB (n).

図11の場合、ACK(A)の受信によって、変数「rcv_nxt」には、セグメント#4が設定される(セグメント#1に付与された特別のヘッダ内の変数「next」は、パス#1で次に送信されるセグメントを指すため)。この処理は、変数「sack」が、変数「path」に一致しないセグメントが見つけられるまで続けられる。   In the case of FIG. 11, the segment “# 4” is set in the variable “rcv_nxt” by receiving the ACK (A) (the variable “next” in the special header given to the segment # 1 is the path # 1). To point to the next segment to be transmitted). This process continues until a segment is found in which the variable “sack” does not match the variable “path”.

一方、ステップS305で、変数「sack」が、変数「path」に一致しないセグメントが見つかった場合、ステップS307において、変数「rcv_nxt」が更新されたか否かの判断を行う。   On the other hand, if a segment in which the variable “sack” does not match the variable “path” is found in step S305, it is determined whether or not the variable “rcv_nxt” has been updated in step S307.

変数「rcv_nxt」が更新されていた場合、ステップS308において、変数「t_timer」をキャンセルし、ステップS309において、全てのパス情報管理部において、最小の変数「rcv_nxt」までのセグメントを送信セグメント管理部11から削除する。   If the variable “rcv_nxt” has been updated, the variable “t_timer” is canceled in step S308. In step S309, the segment up to the minimum variable “rcv_nxt” is transmitted to all the path information management units. Delete from.

ステップS308は、ステップS307の次に、ステップS308aで、変数「rcv_nxt」に相当するセグメントの変数「p_seq」がパス情報管理部12が管理する変数「t_seq」に相当するセグメントの変数「p_seq」を上回っていた場合キャンセルされる。   In step S308, after step S307, in step S308a, the segment variable “p_seq” corresponding to the variable “rcv_nxt” is changed to the segment variable “p_seq” corresponding to the variable “t_seq” managed by the path information management unit 12. If it exceeds, it will be cancelled.

一方、ステップS309は、ステップS308の有無に関わらず、ステップS308の後に必ず実行される。   On the other hand, step S309 is always executed after step S308 regardless of the presence or absence of step S308.

一方、ACK(B)を受信した場合、図11の例では、TCP−CB(n)における変数「rcv_nxt」は、セグメント#4(ACK(A)の受信によって、変数「rcv_nxt」は更新されている。SACKオプションの1stブロックは、セグメント#7を通知しているが、変数「rcv_nxt」に設定されているセグメント#4を含んでいないため、本動作はステップS304へ移動する。)であり、ACK又はSACKオプションによって受信側への到着が報告されていないため、本動作はステップS304へ移動する。   On the other hand, when ACK (B) is received, the variable “rcv_nxt” in TCP-CB (n) is updated in segment # 4 (variable “rcv_nxt” is updated by receiving ACK (A) in the example of FIG. 11. The 1st block of the SACK option notifies the segment # 7, but does not include the segment # 4 set in the variable “rcv_nxt”, so this operation moves to step S304). Since arrival at the receiving side is not reported by the ACK or SACK option, the operation moves to step S304.

ステップS304では、当該パスで送信したセグメントについて、変数「sack」に設定されているパスの識別情報と変数「path」に設定されているパスの識別情報とが一致するセグメントの最大のシーケンス番号を、当該TCP-CB(n)における変数「max_sack」に設定する。   In step S304, the maximum sequence number of the segment in which the path identification information set in the variable “sack” matches the path identification information set in the variable “path” for the segment transmitted in the path. , The variable “max_sack” in the TCP-CB (n) is set.

図11の例では、ACK(B)を受け取った場合、当該TCP-CB(n)における変数「max_sack」には、セグメント#7が設定される。   In the example of FIG. 11, when ACK (B) is received, segment # 7 is set to the variable “max_sack” in the TCP-CB (n).

次に、ステップS310において、変数「max_sack」と変数「rcv_nxt」との間に、変数「sack」が設定されていないセグメントが、いくつあるか数える。かかる計算は、変数「rcv_nxt」と変数「max_sack」と変数「p_seq」を参照することで容易に行うことができる。   Next, in step S310, the number of segments in which the variable “sack” is not set is counted between the variable “max_sack” and the variable “rcv_nxt”. Such calculation can be easily performed by referring to the variable “rcv_nxt”, the variable “max_sack”, and the variable “p_seq”.

かかるセグメントが3つ以上あった場合は、ステップS311において、変数「max_sack」以下で、当該パスから送信したセグメントのうち、変数「sack」が設定されていないセグメント、及び、変数「snd_nxt」以上で、当該パスに予約されているセグメントの「rsv」フラグを消去して、再送モードへ移行する(変数「snd_nxt」以上で予約済みのセグメントとは、送信予約が行われているが未だ送信されていないセグメントのことである。)
図11の例の場合、セグメント#4、#5、#6のセグメントの「rsv」フラグが消去される。
If there are three or more such segments, in step S311, the segment transmitted from the path below the variable “max_sack” and the variable “sack” is not set, and the variable “snd_nxt” or more. Deletes the “rsv” flag of the segment reserved for the path, and shifts to the retransmission mode (the segment reserved for the variable “snd_nxt” or more is reserved for transmission but not yet transmitted) (There are no segments.)
In the case of the example of FIG. 11, the “rsv” flags of the segments # 4, # 5, and # 6 are deleted.

同時に、ステップS312において、当該初期化結果に基づいて、TCP-CB(n)において、変数「rsv_num」、変数「snd_num」、変数「snd_nxt」を更新する。   At the same time, in step S312, based on the initialization result, the variable “rsv_num”, variable “snd_num”, and variable “snd_nxt” are updated in TCP-CB (n).

なお、ACK受信によってではなく、変数「t_timer」の満了によっても再送モードに移行する。この場合の動作は、ステップS311から始まる。但し、ステップS311では、変数「max_sack」以下であったところが、変数「t_timer」の満了は、変数「snd_nxt」以下となる。   Note that the mode changes to the retransmission mode not only by ACK reception but also by expiration of the variable “t_timer”. The operation in this case starts from step S311. However, in step S311, the variable “t_timer” expires below the variable “snd_nxt”, although the variable “max_sack” is equal to or less than the variable “max_sack”.

第3に、図11及び図12を参照して、本実施形態に係る送信端末10の「再送モード」における動作について説明する。   Thirdly, with reference to FIG. 11 and FIG. 12, an operation in the “retransmission mode” of the transmission terminal 10 according to the present embodiment will be described.

図12に示すように、ステップS401において、送信端末10において、「再送モード」が起動される。この際、パス情報管理部#nは、TCP-CB(n)において、変数「cwnd」の半分の値を、変数「ssthresh」に設定するとともに、変数「cwnd」に「1」を設定する。   As shown in FIG. 12, in step S <b> 401, the “retransmission mode” is activated in the transmission terminal 10. At this time, the path information management unit #n sets half of the variable “cwnd” in the variable “ssthresh” and “1” in the variable “cwnd” in TCP-CB (n).

なお、パス情報管理部#nは、無線種別を考慮して、当該変数「cwnd」及び当該変数「ssthresh」を設定するように構成されていてもよい。   The path information management unit #n may be configured to set the variable “cwnd” and the variable “ssthresh” in consideration of the wireless type.

ステップS403において、送信セグメント管理部11は、各パス情報管理部#nによって管理されているTCP-CB(TCP制御情報)に基づいて、再度、当該セグメントに対する送信予約を行う。   In step S403, the transmission segment management unit 11 makes a transmission reservation for the segment again based on TCP-CB (TCP control information) managed by each path information management unit #n.

ここで、複数のパスを利用している場合は、変数「path」に示されているパスの識別情報と異なるパスで送信予約を行う(変数「path」で示されているパスによってセグメントがロストしているので、再度そのパスを利用すると、再度ロストする可能性が高いので、セグメントの再送時には新たなパスを利用する)。   Here, when a plurality of paths are used, transmission reservation is performed using a path different from the path identification information indicated by the variable “path” (the segment is lost by the path indicated by the variable “path”). Therefore, if the path is used again, there is a high possibility that it will be lost again. Therefore, a new path is used when the segment is retransmitted).

ここで、送信セグメント管理部11は、送信予約を行ったセグメントに付与されている特別のヘッダにおいて、変数「path」及び「rsv」フラグを設定し、パス情報管理部#n、TCP-CB(n)における変数「rsv_num」を更新する。   Here, the transmission segment management unit 11 sets the variables “path” and “rsv” in the special header given to the segment for which transmission reservation has been made, and sets the path information management unit #n, TCP-CB ( Update the variable “rsv_num” in n).

ステップS404において、セグメント送信部13は、上述のステップS104の動作と同様に、複数のパス#1乃至#3を同時に用いて、送信予約が行われているセグメントを、順次、受信端末30に送信する。   In step S404, the segment transmitting unit 13 transmits the segments for which transmission reservations are made sequentially to the receiving terminal 30 by using a plurality of paths # 1 to # 3 at the same time as in the operation of step S104 described above. To do.

ここで、セグメント送信部13が、特定のパスを介してセグメントを送信した場合、送信セグメント管理部11は、当該セグメントに係る特別のヘッダにおける「snd」フラグに「1」を設定し、パス情報管理部12は、当該特定のパスに係るTCP-CBにおける変数「rsv_num」から送信したセグメントのデータ量を減じて、当該特定のパスに係るTCP-CBにおける変数「snd_num」へ送信したセグメントのデータ量を追加する。   Here, when the segment transmission unit 13 transmits a segment via a specific path, the transmission segment management unit 11 sets “1” in the “snd” flag in the special header related to the segment, and the path information The management unit 12 subtracts the amount of segment data transmitted from the variable “rsv_num” in the TCP-CB related to the specific path, and transmits the data of the segment transmitted to the variable “snd_num” in the TCP-CB related to the specific path. Add quantity.

セグメント送信部13が、セグメントを送信する毎に、パス情報管理部12は、当該セグメントより後ろに位置するセグメントの中から選択された「rsv」フラグに「1」が設定されている特別のヘッダを有するセグメントの開始位置を、変数「snd_nxt」に設定する。   Each time the segment transmission unit 13 transmits a segment, the path information management unit 12 sets a special header in which “1” is set in the “rsv” flag selected from the segments located behind the segment. Is set to the variable “snd_nxt”.

なお、セグメント送信部13が、セグメントを送信する際に、変数「t_timer」が設定されていない場合には、パス情報管理部12は、変数「t_timer」に、変数「rtt」等から計算される新たタイムアウト値を設定し、変数「t_seq」に、送信されたセグメントのシーケンス番号(seq)を設定する。   When the segment transmission unit 13 transmits a segment and the variable “t_timer” is not set, the path information management unit 12 calculates the variable “t_timer” from the variable “rtt” or the like. A new timeout value is set, and the sequence number (seq) of the transmitted segment is set in the variable “t_seq”.

第4に、図13乃至図15を参照して、本実施形態に係る受信端末30が、送信端末10によって送信されたセグメントを受信する動作について説明する。   Fourthly, with reference to FIG. 13 to FIG. 15, an operation in which the receiving terminal 30 according to this embodiment receives a segment transmitted by the transmitting terminal 10 will be described.

図13に示すように、ステップS501において、受信端末30のセグメント受信部31は、受信したセグメントを、当該セグメントを受信したパスの[(送信者のIPアドレス,ポート番号),(受信者のIPアドレス,ポート番号)]の4つのアドレスに基づいて、適切なパス情報管理部#nに転送する。   As shown in FIG. 13, in step S501, the segment receiving unit 31 of the receiving terminal 30 selects the received segment [(sender's IP address, port number), (receiver's IP Address, port number)]] is transferred to an appropriate path information management unit #n.

ここで、受信セグメント管理部33は、パス情報管理部#nから転送されたセグメントに特別のヘッダを付与して管理する。なお、受信セグメント管理部33は、受信したセグメントのシーケンス番号順に、当該セグメントを管理するように構成されていてもよい。   Here, the reception segment management unit 33 manages the segment transferred from the path information management unit #n by adding a special header. Note that the reception segment management unit 33 may be configured to manage the segments in the order of the sequence numbers of the received segments.

ここで、受信セグメント管理部33は、当該セグメントに付与された特別のヘッダにおいて、当該パスで、当該セグメントの一つ前に受信されたセグメントの特別のヘッダの変数「next」に当該セグメントを設定する。   Here, the reception segment management unit 33 sets the segment in the variable “next” of the special header of the segment received immediately before the segment in the path in the special header given to the segment. To do.

セグメント送信部34は、ステップS502において、受信セグメント管理部33によって受信されたセグメントに対するACKを生成し、ステップS503において、かかるACKに付与するために、SACKオプションを生成する。   In step S502, the segment transmission unit 34 generates an ACK for the segment received by the reception segment management unit 33. In step S503, the segment transmission unit 34 generates a SACK option for adding to the ACK.

ここで、SACKオプションにおける1stブロックは、今回受信したセグメントを含むブロックを示し、SACKオプションにおける2ndブロックは、今回受信したセグメントと同一のパスを介して前回受信したセグメントを示し、SACKオプションにおける3rdブロックは、今回受信したセグメントと同一のパスを介して前々回受信したセグメントを示す。   Here, the 1st block in the SACK option indicates a block including a segment received this time, the 2nd block in the SACK option indicates a segment received last time through the same path as the segment received this time, and the 3rd block in the SACK option Indicates a segment received two times in advance through the same path as the segment received this time.

図14の例では、パス#1を介してセグメント#10が受信された場合に生成されるACK(A)に付与されるSACKオプションでは、1stブロックに「セグメント#10の識別情報」が設定され、2ndブロックに「セグメント#8の識別情報」が設定され、3rdブロックに「セグメント#3、#4の識別情報(3-4)」が設定される。   In the example of FIG. 14, in the SACK option given to ACK (A) generated when segment # 10 is received via path # 1, “identification information of segment # 10” is set in the 1st block. “Identification information of segment # 8” is set in the 2nd block, and “identification information (3-4) of segment # 3, # 4” is set in the 3rd block.

なお、かかる場合、従来のSACKオプションでは、3rdブロックに「セグメント#6の識別情報」が設定される。   In this case, in the conventional SACK option, “identification information of segment # 6” is set in the 3rd block.

また、図14の例では、パス#nを介してセグメント#11が受信された場合に生成されるACK(B)に付与されるSACKオプションでは、1stブロックに「セグメント#10、#11の識別情報(10-11)」が設定され、2ndブロックに「セグメント#6の識別情報」が設定され、3rdブロックに「セグメント#3、#4の識別情報(3-4)」が設定される。   In the example of FIG. 14, in the SACK option given to the ACK (B) generated when the segment # 11 is received via the path #n, “identification of the segments # 10 and # 11 is included in the 1st block. "Information (10-11)" is set, "Identification information of segment # 6" is set in the 2nd block, and "Identification information (3-4) of segment # 3, # 4" is set in the 3rd block.

なお、かかる場合、従来のSACKオプションでは、2ndブロックに「セグメント#8の識別情報」が設定され、3rdブロックに「セグメント#6の識別情報」が設定される。   In this case, in the conventional SACK option, “identification information of segment # 8” is set in the 2nd block, and “identification information of segment # 6” is set in the 3rd block.

ステップS504において、パス情報管理部#nは、変数「rcv_nxt」を参照することで、同じパスを介したセグメントの受信が連続しているか否かについて判定する。   In step S504, the path information management unit #n refers to the variable “rcv_nxt” to determine whether or not the segment reception via the same path is continuous.

連続している場合、本動作はステップS505に進み、連続していない場合、本動作はステップS506に進む。   If the operation is continuous, the operation proceeds to step S505. If the operation is not continuous, the operation proceeds to step S506.

ステップS505において、パス情報管理部#nは、TCP-CB(n)において、変数「rcv_nxt」に、受信した当該セグメントの次のセグメントの識別情報を設定し、変数「del_ack」に、ステップS502で生成したACKによって通知されるセグメント(未だ受信していないセグメントのうち最もシーケンス番号が小さいセグメント)の識別情報を設定し、変数「p_sack1〜3」に、ステップS503で生成したSACKオプションの各ブロックによって通知されるセグメントの識別情報を設定する。   In step S505, the path information management unit #n sets the identification information of the next segment of the received segment to the variable “rcv_nxt” in TCP-CB (n), and sets the variable “del_ack” in step S502. The identification information of the segment notified by the generated ACK (the segment with the smallest sequence number among the segments not yet received) is set, and the variable “p_sack 1 to 3” is set by each block of the SACK option generated in step S503. Set the segment identification information to be notified.

また、パス情報管理部#nは、TCP-CB(n)において、変数「del_timer」を起動する。   Further, the path information management unit #n activates the variable “del_timer” in TCP-CB (n).

変数「del_timer」が満了する間に、新たなセグメントを受信しなかった場合、変数「del_ack」の値が返される(新たなセグメントを受信した場合、変数「del_timer」は、キャンセルされる)。   If a new segment is not received while the variable “del_timer” expires, the value of the variable “del_ack” is returned (if a new segment is received, the variable “del_timer” is canceled).

ステップS505に入る前に、ステップS505aで、ACKが記憶されているか否かを判断し、記憶されている場合は、ステップS506に移動し、記憶されていない場合は、ステップS505に移動する。   Before entering step S505, it is determined whether or not ACK is stored in step S505a. If stored, the process proceeds to step S506, and if not stored, the process proceeds to step S505.

ステップS506において、セグメント送信部34は、TCP-CB(n)における変数「p_sack1〜3」に基づいて、ACKを生成して送信する。かかる場合、パス情報管理部#nは、必要に応じて、TCP-CB(n)における変数「rcv_nxt」を更新する。   In step S506, the segment transmission unit 34 generates and transmits an ACK based on the variables “p_sack1 to 3” in TCP-CB (n). In such a case, the path information management unit #n updates the variable “rcv_nxt” in TCP-CB (n) as necessary.

図15の例では、セグメント送信部34は、セグメント#6、#7について、同一のパス#2を介して連続して受信しているので、セグメント#6、#7の受信成功について、2つのACKによって通知するのではなく、1つのACKによって通知するように構成されている。   In the example of FIG. 15, the segment transmission unit 34 continuously receives the segments # 6 and # 7 via the same path # 2, so that two segments # 6 and # 7 are received successfully. Instead of notifying by ACK, it is configured to notify by one ACK.

(本発明の第1の実施形態に係る通信端末の作用・効果)
本実施形態に係る通信端末によれば、セグメントの送信が、通常のTCPヘッダのみを用いて行われるように構成されているため、本発明に係る技術を適用していない受信端末30がとの間であっても通信を行うことができる。
(Operations and effects of the communication terminal according to the first embodiment of the present invention)
According to the communication terminal according to the present embodiment, since the segment is transmitted using only a normal TCP header, the receiving terminal 30 to which the technology according to the present invention is not applied Communication can be performed even between the two.

本実施形態に係る通信端末によれば、複数のパスを介してACKを送信するように構成されているため、RTTを正確に計測することができ、各パスに対して通常のTCP制御と同等の制御を行うことができる。   The communication terminal according to the present embodiment is configured to transmit ACK through a plurality of paths, so that RTT can be accurately measured and is equivalent to normal TCP control for each path. Can be controlled.

本実施形態に係る通信端末によれば、複数のACK(送達確認信号)をまとめて送信することができるので(例えば、C-ACKをサポートすることができるので)、送信するACKの数を削減することができる。   According to the communication terminal according to the present embodiment, since a plurality of ACKs (acknowledgment confirmation signals) can be transmitted together (for example, C-ACK can be supported), the number of ACKs to be transmitted is reduced. can do.

(変更例1)
図16及び図17を参照して、本発明の変更例1について説明する。
(Modification 1)
With reference to FIG.16 and FIG.17, the example 1 of a change of this invention is demonstrated.

図16に示すように、変更例1に係る送信端末Aのセグメント受信部13は、近隣通信端末B乃至Eとの間でアドホックネットワークを形成し、当該アドホックネットワーク内のパス#1乃至#3を介してセグメントを送信するように構成されている。   As shown in FIG. 16, the segment receiving unit 13 of the transmitting terminal A according to the first modification forms an ad hoc network with the neighboring communication terminals B to E, and sets the paths # 1 to # 3 in the ad hoc network. Is configured to transmit the segment over the network.

なお、送信端末Aは、論文「A hybrid Approach to Internet Connectivity for Mobile Ad Hoc Networks(P.Ratanchandani and R.Kravets著、Proceedings of IEEE WCNC、2003年)」や、論文「Internet Connectivity for Ad Hoc Networks(Y.Sun、E.Belding-Royer、C.Perkins著、International Journal of Wireless Information Networks、special issue on Mobile Ad Hoc Networks(MANETs):Standards、Research、Applications、9(2)、2002年4月)」等に記載された技術を用いて、固定ネットワークとのゲートウェイとなる端末C乃至Eについて予め知っておく必要がある。   Note that the transmitting terminal A is a paper “A hybrid Approach to Internet Connectivity for Mobile Ad Hoc Networks” (P. Ratchandani and R. Cratons, Proceedings of IEc W, and Proceedings of IEt. Y. Sun, E. Belding-Royer, C. Perkins, International Journal of Wireless Information Networks, special issue on Mobile Ad Hoc Networks, MANETs: MANETs. ch, Applications, 9 (2), using the techniques described in April 2002) "and the like, it is necessary to know in advance for the gateway and comprising terminals C to E of the fixed network.

図17に示すように、送信端末Aが、パス#1を介して、宛先アドレスとして「送信端末Fのアドレス」を設定し、送信元アドレスとして「受信端末Aのアドレス」を設定した第1のヘッダを含む第1のパケットを用いて、受信端末F宛てのセグメントを送信する場合を想定する。   As shown in FIG. 17, the transmission terminal A sets the “address of the transmission terminal F” as the destination address and the “address of the reception terminal A” as the transmission source address via the path # 1. Assume that a segment addressed to the receiving terminal F is transmitted using the first packet including the header.

第1に、送信端末Aは、宛先アドレスとして「送信端末Eのアドレス」を設定し、送信元アドレスとして「受信端末Aのアドレス」を設定した第2のヘッダによって第1のパケットをカプセル化した第2のパケットを、端末Eに対して送信する。   First, the transmitting terminal A encapsulates the first packet by the second header in which “the address of the transmitting terminal E” is set as the destination address and “the address of the receiving terminal A” is set as the source address. The second packet is transmitted to terminal E.

第2に、端末Eは、受信した第2のパケットに内包された第1のパケットを、宛先アドレスとして「送信端末Fのアドレス」を設定し、送信元アドレスとして「受信端末Eのアドレス」を設定した第3のヘッダによって再度カプセル化した第3のパケットを、受信端末Fに対して送信する。   Second, the terminal E sets the “address of the transmission terminal F” as the destination address and the “address of the reception terminal E” as the transmission source address of the first packet included in the received second packet. The third packet encapsulated again by the set third header is transmitted to the receiving terminal F.

第3に、受信端末Fは、第3のパケットのヘッダに基づいて、当該セグメントが送信されたパスを判別する。図17の例では、受信端末Fは、第1のヘッダ及び第3のヘッダを参照することで、パスF→E→Aを判別することができる。   Thirdly, the receiving terminal F determines the path through which the segment is transmitted based on the header of the third packet. In the example of FIG. 17, the receiving terminal F can determine the path F → E → A by referring to the first header and the third header.

なお、変更例1に係る受信端末Fのセグメント送信部34も、変更例1に係る送信端末Aのセグメント送信部13と同様に、近隣通信端末との間でアドホックネットワークを形成し、該アドホックネットワーク内の前記パスを介して前記セグメントを受信するように構成されていてもよい。   Similarly to the segment transmission unit 13 of the transmission terminal A according to the modification example 1, the segment transmission unit 34 of the reception terminal F according to the modification example 1 forms an ad hoc network with neighboring communication terminals, and the ad hoc network It may be configured to receive the segment via the path within.

本実施形態に係る通信端末によれば、近隣通信端末との間で形成されたアドホックネットワーク内のパスを利用することによって、複数のインターフェースを持たない通信端末においても、送信端末と受信端末との間に存在する複数のパスを同時に利用して通信を行うこと(すなわち、マルチホーム接続)を実現することができる。   According to the communication terminal according to the present embodiment, by using a path in the ad hoc network formed between neighboring communication terminals, even in a communication terminal having no plurality of interfaces, the transmission terminal and the reception terminal It is possible to realize communication (that is, multihome connection) by simultaneously using a plurality of paths existing in between.

また、受信端末が、上述のような変更例1に対応する機能を具備していない場合であっても、RFC3775に規定されている「Mobile IP」機能を備えている場合、送信端末が、パケットを用いてセグメントを送信する際に、当該パケットを送信したインターフェースに該当するアドレスに対するBU(Binding Update)を付加することで、ACKが返ってくるインターフェースを操作し、さらに、SACKオプションの1stブロックを参照することにより、セグメント受信部14が、適切なパス情報管理部#nに、受信したACKを送信することが可能となり、受信端末が上述のような変更例1に対応する機能を具備した場合と同様のメリットを享受することが可能となる。   Even if the receiving terminal does not have the function corresponding to the first modification example as described above, if the receiving terminal has the “Mobile IP” function defined in RFC3775, the transmitting terminal When a segment is transmitted using, a BU (Binding Update) for the address corresponding to the interface that transmitted the packet is added to operate the interface that returns ACK, and the 1st block of the SACK option is By referring, it becomes possible for the segment receiving unit 14 to transmit the received ACK to the appropriate path information managing unit #n, and the receiving terminal has a function corresponding to the first modified example as described above It is possible to enjoy the same merits.

本発明の第1の実施形態に係る通信端末を含む通信システムの全体構成図である。1 is an overall configuration diagram of a communication system including a communication terminal according to a first embodiment of the present invention. 本発明の第1の実施形態に係る通信端末(送信端末)の機能ブロック図である。It is a functional block diagram of the communication terminal (transmission terminal) which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る通信端末(送信端末)の送信セグメント管理部の管理内容の一例を示す図である。It is a figure which shows an example of the management content of the transmission segment management part of the communication terminal (transmission terminal) which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る通信端末(送信端末)のパス情報管理部の管理内容の一例を示す図である。It is a figure which shows an example of the management content of the path information management part of the communication terminal (transmission terminal) which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る通信端末(受信端末)の機能ブロック図である。It is a functional block diagram of the communication terminal (receiving terminal) which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る通信端末(受信端末)のパス情報管理部の管理内容の一例を示す図である。It is a figure which shows an example of the management content of the path information management part of the communication terminal (receiving terminal) which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る通信端末(受信端末)の受信セグメント管理部の管理内容の一例を示す図である。It is a figure which shows an example of the management content of the receiving segment management part of the communication terminal (receiving terminal) which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る通信端末(送信端末)がセグメントを送信する動作を示すフローチャートである。It is a flowchart which shows the operation | movement which the communication terminal (transmission terminal) which concerns on the 1st Embodiment of this invention transmits a segment. 本発明の第1の実施形態に係る通信端末(送信端末)がセグメントを送信する動作を説明するための図である。It is a figure for demonstrating the operation | movement which the communication terminal (transmission terminal) which concerns on the 1st Embodiment of this invention transmits a segment. 本発明の第1の実施形態に係る通信端末(送信端末)がACKを受信する動作を示すフローチャートである。It is a flowchart which shows the operation | movement which the communication terminal (transmission terminal) which concerns on the 1st Embodiment of this invention receives ACK. 本発明の第1の実施形態に係る通信端末(送信端末)がACKを受信する動作を説明するための図である。It is a figure for demonstrating the operation | movement which the communication terminal (transmission terminal) which concerns on the 1st Embodiment of this invention receives ACK. 本発明の第1の実施形態に係る通信端末(送信端末)における再送モードの動作を示すフローチャートである。It is a flowchart which shows the operation | movement of the resending mode in the communication terminal (transmission terminal) which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る通信端末(受信端末)における受信動作を示すフローチャートである。It is a flowchart which shows the receiving operation in the communication terminal (receiving terminal) which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る通信端末(受信端末)における受信動作を説明するための図である。It is a figure for demonstrating the reception operation | movement in the communication terminal (receiving terminal) which concerns on the 1st Embodiment of this invention. 本発明の第1の実施形態に係る通信端末(受信端末)における受信動作を説明するための図である。It is a figure for demonstrating the reception operation | movement in the communication terminal (receiving terminal) which concerns on the 1st Embodiment of this invention. 本発明の変更例1に係る通信端末を説明するための図である。It is a figure for demonstrating the communication terminal which concerns on the example 1 of a change of this invention. 本発明の変更例1に係る通信端末を説明するための図である。It is a figure for demonstrating the communication terminal which concerns on the example 1 of a change of this invention.

符号の説明Explanation of symbols

10…送信端末
10a、30a…アプリケーション機能部
11…送信セグメント管理部
12、32…パス情報管理部
13、34…セグメント送信部
14、31…セグメント受信部
30…受信端末
33…受信セグメント管理部
DESCRIPTION OF SYMBOLS 10 ... Transmission terminal 10a, 30a ... Application function part 11 ... Transmission segment management part 12, 32 ... Path information management part 13, 34 ... Segment transmission part 14, 31 ... Segment reception part 30 ... Reception terminal 33 ... Reception segment management part

Claims (11)

複数のパスを同時に用いて、データを受信端末に送信可能な通信端末であって、
前記複数のパスの各々に係るTCP制御情報を管理するように構成されているパス情報管理部と、
受信端末に対して送信すべきデータを分割して生成したセグメントを記憶するように構成されている送信セグメント管理部と、
前記送信セグメント管理部から前記セグメントを抽出して前記受信端末に対して送信するように構成されているセグメント送信部とを具備し、
前記送信セグメント管理部は、前記TCP制御情報に基づいて、前記セグメントと該セグメントの送信に用いられるパスとを関連付けて記憶することによって、該セグメントに対する送信予約を行うように構成されており、
前記セグメント送信部は、前記送信セグメント管理部から前記セグメントのみを抽出して、該セグメントに関連付けられているパスを介して該セグメントを前記受信端末に送信するように構成されていることを特徴とする通信端末。
A communication terminal capable of simultaneously transmitting data to a receiving terminal using a plurality of paths,
A path information management unit configured to manage TCP control information related to each of the plurality of paths;
A transmission segment manager configured to store a segment generated by dividing data to be transmitted to a receiving terminal;
A segment transmission unit configured to extract the segment from the transmission segment management unit and transmit the segment to the reception terminal;
The transmission segment management unit is configured to make a transmission reservation for the segment by associating and storing the segment and a path used for transmission of the segment based on the TCP control information,
The segment transmission unit is configured to extract only the segment from the transmission segment management unit and transmit the segment to the receiving terminal via a path associated with the segment. Communication terminal.
前記セグメントに係る送達確認信号が、該セグメントの送信に用いられたパスと同一のパスを介して受信された場合、全ての送信セグメント管理部の中で、送達確認信号を受信していないセグメントの最小のシーケンス番号より小さいシーケンス番号を有するセグメントを前記送信セグメント管理部から削除するように構成されているセグメント受信部を具備することを特徴とする請求項1に記載の通信端末。   When the delivery confirmation signal related to the segment is received via the same path as the path used for transmission of the segment, among all the transmission segment management units, the segment that has not received the delivery confirmation signal The communication terminal according to claim 1, further comprising: a segment receiving unit configured to delete a segment having a sequence number smaller than a minimum sequence number from the transmission segment management unit. 前記送信セグメント管理部は、タイムアウトを検出した場合、送達確認信号を受信していない全てのセグメントに対する送信予約を取り消し、再度、前記TCP制御情報に基づいて、該セグメントに対する送信予約を行うように構成されている請求項1又は2に記載の通信端末。   The transmission segment management unit is configured to cancel transmission reservations for all segments that have not received a delivery confirmation signal when a timeout is detected, and perform transmission reservations for the segments again based on the TCP control information The communication terminal according to claim 1 or 2. 前記送信セグメント管理部は、選択送達確認信号を受信した最大のセグメントと、次に送達確認信号を受信すべきセグメントとの間に、送達確認信号を受信していないセグメントが所定数以上ある場合、選択送達確認信号を受信した最大のセグメントのシーケンス番号以下のシーケンス番号で送達確認信号を受信していないセグメント、及び、未送信のセグメントに対する送信予約を取り消し、再度、前記TCP制御情報に基づいて、該セグメントに対する送信予約を行うように構成されている請求項1又は2に記載の通信端末。   The transmission segment management unit, when there is a predetermined number or more of segments that have not received the delivery confirmation signal between the largest segment that has received the selective delivery confirmation signal and the segment that should receive the next delivery confirmation signal, Cancel a transmission reservation for a segment that has not received a delivery confirmation signal with a sequence number equal to or less than the sequence number of the largest segment that has received the selective acknowledgment signal, and an untransmitted segment, and again based on the TCP control information, The communication terminal according to claim 1, wherein the communication terminal is configured to make a transmission reservation for the segment. 前記セグメント送信部は、近隣通信端末との間でアドホックネットワークを形成し、該アドホックネットワーク内の前記パスを介して前記セグメントを送信するように構成されていることを特徴とする請求項1乃至4のいずれか一項に記載の通信端末。   5. The segment transmission unit is configured to form an ad hoc network with neighboring communication terminals and transmit the segment via the path in the ad hoc network. The communication terminal according to any one of the above. 複数のパスを同時に用いて、送信端末からデータを受信可能な通信端末であって、
前記複数のパスの各々に係るTCP制御情報を管理するように構成されているパス情報管理部と、
前記複数のパスを介して、前記データを分割して生成されたセグメントを受信するように構成されているセグメント受信部と、
受信した前記セグメントを、該セグメントが送信されたパスごとに記憶するように構成されている受信セグメント管理部と、
前記TCP制御情報に基づいて、各パスを介したセグメントの受信結果を通知するための送達確認信号を送信するように構成されているセグメント送信部とを具備することを特徴とする通信端末。
A communication terminal capable of receiving data from a transmission terminal using a plurality of paths simultaneously,
A path information management unit configured to manage TCP control information related to each of the plurality of paths;
A segment receiver configured to receive a segment generated by dividing the data via the plurality of paths;
A received segment management unit configured to store the received segment for each path through which the segment is transmitted;
A communication terminal, comprising: a segment transmission unit configured to transmit a delivery confirmation signal for notifying a reception result of a segment through each path based on the TCP control information.
前記送達確認信号は、前記パスを介して受信に成功したセグメントのシーケンス番号を通知するように構成されていることを特徴とする請求項6に記載の通信端末。   The communication terminal according to claim 6, wherein the delivery confirmation signal is configured to notify a sequence number of a segment that has been successfully received via the path. 同一のパスを介してシーケンス番号が連続する複数のセグメントが受信されている場合、前記送達確認信号は、該複数のセグメントの受信結果についてまとめて通知するように構成されていることを特徴とする請求項6に記載の通信端末。   When a plurality of segments having consecutive sequence numbers are received via the same path, the delivery confirmation signal is configured to collectively notify the reception results of the plurality of segments. The communication terminal according to claim 6. 前記セグメント受信部は、近隣通信端末との間でアドホックネットワークを形成し、該アドホックネットワーク内の前記パスを介して前記セグメントを受信するように構成されていることを特徴とする請求項6乃至8のいずれか一項に記載の通信端末。   9. The segment receiving unit is configured to form an ad hoc network with neighboring communication terminals and receive the segment via the path in the ad hoc network. The communication terminal according to any one of the above. 送信端末が、複数のパスを同時に用いて、データを受信端末に送信する通信方法であって、
前記送信端末が、前記複数のパスごとに管理されているTCP制御情報に基づいて、前記受信端末に対して送信すべきデータを分割して生成したセグメントと、該セグメントの送信に用いられるパスとを関連付けて送信セグメント管理部に記憶することによって、該セグメントに対する送信予約を行う工程と、
前記送信端末が、前記送信セグメント管理部から前記セグメントのみを抽出して、該セグメントに関連付けられているパスを介して該セグメントを前記受信端末に送信する工程と、
前記受信端末が、受信した前記セグメントを、該セグメントが送信されたパスごとに管理すると共に、前記複数のパスごとに管理されているTCP制御情報に基づいて、各パスを介したセグメントの受信結果を通知するための送達確認信号を送信する工程と、
前記送信端末が、前記セグメントに係る送達確認信号が、該セグメントの送信に用いられたパスと同一のパスを介して受信された場合、該セグメント及び該セグメントに関連付けられているパスを前記送信セグメント管理部から削除する工程とを有することを特徴とする通信方法。
A communication method in which a transmitting terminal transmits data to a receiving terminal using a plurality of paths simultaneously,
A segment generated by dividing the data to be transmitted to the receiving terminal based on TCP control information managed for each of the plurality of paths by the transmitting terminal, and a path used for transmitting the segment Storing transmission data in the transmission segment management unit in association with each other,
The transmitting terminal extracts only the segment from the transmission segment management unit, and transmits the segment to the receiving terminal via a path associated with the segment;
The receiving terminal manages the received segment for each path through which the segment is transmitted, and the segment reception result via each path based on the TCP control information managed for each of the plurality of paths. Sending a delivery confirmation signal to notify
When the transmission confirmation signal related to the segment is received through the same path as that used for transmission of the segment, the transmission terminal sets the transmission segment to the segment and the path associated with the segment. And a step of deleting from the management unit.
前記送信端末及び前記受信端末が、近隣通信端末との間でアドホックネットワークを形成する工程を有し、
前記送信端末は、生成した前記セグメントを、前記アドホックネットワーク内の前記パスを介して前記受信端末に対して送信し、
前記受信端末は、前記アドホックネットワーク内の前記パスを介して前記セグメントを受信することを特徴とする請求項10に記載の通信方法。

The transmitting terminal and the receiving terminal form an ad hoc network with neighboring communication terminals,
The transmitting terminal transmits the generated segment to the receiving terminal via the path in the ad hoc network;
The communication method according to claim 10, wherein the receiving terminal receives the segment via the path in the ad hoc network.

JP2006178755A 2005-06-29 2006-06-28 Communication terminal and communication method Pending JP2007043678A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006178755A JP2007043678A (en) 2005-06-29 2006-06-28 Communication terminal and communication method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005190613 2005-06-29
JP2006178755A JP2007043678A (en) 2005-06-29 2006-06-28 Communication terminal and communication method

Publications (1)

Publication Number Publication Date
JP2007043678A true JP2007043678A (en) 2007-02-15

Family

ID=37801195

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006178755A Pending JP2007043678A (en) 2005-06-29 2006-06-28 Communication terminal and communication method

Country Status (1)

Country Link
JP (1) JP2007043678A (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013515400A (en) * 2009-12-18 2013-05-02 クゥアルコム・インコーポレイテッド Combine / aggregate multiple interfaces at the application layer
JP2013526168A (en) * 2010-04-21 2013-06-20 トムソン ライセンシング Method for evaluating available route bit rate based on receipt confirmation route selection
JP2014192811A (en) * 2013-03-28 2014-10-06 Fujitsu Ltd Relay device and communication method
JP2014530564A (en) * 2011-09-22 2014-11-17 クゥアルコム・インコーポレイテッドQualcomm Incorporated Dynamic subflow control for multipath transport connections in wireless communication networks
US8964757B2 (en) 2009-12-18 2015-02-24 Qualcomm Incorporated HTTP optimization, multi-homing, mobility and priority
US9071457B2 (en) 2011-01-18 2015-06-30 Fujitsu Limited Provider network and provider edge apparatus
US9451415B2 (en) 2011-06-17 2016-09-20 Qualcomm Incorporated Cooperative data transport
US9455897B2 (en) 2010-04-06 2016-09-27 Qualcomm Incorporated Cooperative bandwidth aggregation using multipath transport
CN112689011A (en) * 2020-12-24 2021-04-20 北京浪潮数据技术有限公司 Service transmission method, device, equipment and medium based on NFS protocol

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013515400A (en) * 2009-12-18 2013-05-02 クゥアルコム・インコーポレイテッド Combine / aggregate multiple interfaces at the application layer
US8964757B2 (en) 2009-12-18 2015-02-24 Qualcomm Incorporated HTTP optimization, multi-homing, mobility and priority
US9455897B2 (en) 2010-04-06 2016-09-27 Qualcomm Incorporated Cooperative bandwidth aggregation using multipath transport
JP2013526168A (en) * 2010-04-21 2013-06-20 トムソン ライセンシング Method for evaluating available route bit rate based on receipt confirmation route selection
US9762472B2 (en) 2010-04-21 2017-09-12 Thomson Licensing Method for evaluating an available path bitrate based on an acknowledgement path selection
US9071457B2 (en) 2011-01-18 2015-06-30 Fujitsu Limited Provider network and provider edge apparatus
US9451415B2 (en) 2011-06-17 2016-09-20 Qualcomm Incorporated Cooperative data transport
JP2014530564A (en) * 2011-09-22 2014-11-17 クゥアルコム・インコーポレイテッドQualcomm Incorporated Dynamic subflow control for multipath transport connections in wireless communication networks
US9264353B2 (en) 2011-09-22 2016-02-16 Qualcomm Incorporated Dynamic subflow control for a multipath transport connection in a wireless communication network
JP2014192811A (en) * 2013-03-28 2014-10-06 Fujitsu Ltd Relay device and communication method
CN112689011A (en) * 2020-12-24 2021-04-20 北京浪潮数据技术有限公司 Service transmission method, device, equipment and medium based on NFS protocol

Similar Documents

Publication Publication Date Title
KR100784419B1 (en) Communication terminal device and communication method
JP2007043678A (en) Communication terminal and communication method
US10237153B2 (en) Packet retransmission method and apparatus
US8260935B2 (en) Error control terminal discovery and updating
US9231829B2 (en) Communication device
JP2016517198A (en) Improved acknowledgment and retransmission mechanism
JP2007208635A (en) Node, packet communicating method, and packet communication system
US20220225163A1 (en) Communications device, infrastructure equipment and methods
US20180331962A1 (en) System and method for reducing bandwidth usage of a network
JP2003078560A (en) Flow control system in transport layer protocol
US20060259845A1 (en) Method and apparatus for acknowledging a bitwise data chunk in wireline and wireless communication systems
JP5569452B2 (en) Wireless communication apparatus, method and program
Wang et al. Concurrent multipath transfer protocol used in ad hoc networks
Baek et al. A lightweight SCTP for partially reliable overlay video multicast service for mobile terminals
JP3929452B2 (en) Efficient data transmission / reception method using transport layer in mobile ad hoc network and network device using the method
Arianpoo et al. Network coding: A remedy for receiver buffer blocking in the concurrent multipath transfer of data over multi-hop wireless networks
Heimlicher et al. Saft: Reliable transport in mobile networks
KR101547048B1 (en) Technique for managing communications at a router
JP5339537B2 (en) Wireless terminal, proxy server, and program for improving disconnection resistance in unstable wireless link
JP4853862B2 (en) Communication device
Pereira et al. FINLAN Packet Delivery Proposal in a Next Generation Internet
Ye et al. Independent per path congestion control for reliable data transmission between multi-homed hosts
KR100648832B1 (en) Method for checking transceiving state of packet
Chowdhury et al. Mobile Ad Hoc Networks: Rapidly Deployable Emergency Communications
Minhas et al. Performance Enhancement of AODV Routing Protocol in Wireless Mesh Networks