JP5680978B2 - COMMUNICATION DEVICE, COMMUNICATION METHOD, AND COMMUNICATION PROGRAM - Google Patents
COMMUNICATION DEVICE, COMMUNICATION METHOD, AND COMMUNICATION PROGRAM Download PDFInfo
- Publication number
- JP5680978B2 JP5680978B2 JP2011005882A JP2011005882A JP5680978B2 JP 5680978 B2 JP5680978 B2 JP 5680978B2 JP 2011005882 A JP2011005882 A JP 2011005882A JP 2011005882 A JP2011005882 A JP 2011005882A JP 5680978 B2 JP5680978 B2 JP 5680978B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- time
- unit
- retransmission
- transmission
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000004891 communication Methods 0.000 title claims description 274
- 238000000034 method Methods 0.000 title claims description 27
- PWPJGUXAGUPAHP-UHFFFAOYSA-N lufenuron Chemical compound C1=C(Cl)C(OC(F)(F)C(C(F)(F)F)F)=CC(Cl)=C1NC(=O)NC(=O)C1=C(F)C=CC=C1F PWPJGUXAGUPAHP-UHFFFAOYSA-N 0.000 title 1
- 230000005540 biological transmission Effects 0.000 claims description 258
- 230000004044 response Effects 0.000 claims description 139
- 238000001514 detection method Methods 0.000 claims description 87
- 238000004364 calculation method Methods 0.000 claims description 57
- 238000005259 measurement Methods 0.000 claims description 40
- 238000012545 processing Methods 0.000 claims description 13
- 238000012790 confirmation Methods 0.000 description 45
- 238000010586 diagram Methods 0.000 description 5
- 238000012546 transfer Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 101100059544 Arabidopsis thaliana CDC5 gene Proteins 0.000 description 1
- 101150115300 MAC1 gene Proteins 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
Images
Description
本発明は、通信装置と、その通信装置により行われる通信方法にかかわる。 The present invention relates to a communication device and a communication method performed by the communication device.
通信技術の普及と発達により、インターネットを含むWide Area Network(WAN)経由でデータの送受信が行われることが増えてきている。例えば、ユーザ端末が対向装置にWAN経由でデータを送信し、対向装置が受信データに基づいて処理を行うシステムが増加してきている。このようなシステムでは、ユーザ装置から送信されたデータが対向装置で受信されないと処理が行われないため、データの送信に失敗すると、ユーザ装置は、対向装置に向けて送信データを再度送信しなおす。例えば、ユーザ端末は、送信したパケットについての確認応答メッセージを再送タイムアウト(Retransmission Time Out、RTO)が経過するまでに受信できない場合、送信したパケットを対向装置に向けて再度送信する。 With the spread and development of communication technology, data transmission / reception is increasing through a wide area network (WAN) including the Internet. For example, a system is increasing in which user terminals transmit data to opposing devices via WAN, and the opposing devices perform processing based on received data. In such a system, since processing is not performed unless the data transmitted from the user device is received by the opposite device, if the data transmission fails, the user device retransmits the transmission data to the opposite device again. . For example, when the user terminal cannot receive an acknowledgment message for a transmitted packet before the retransmission timeout (Retransmission Time Out, RTO) elapses, the user terminal transmits the transmitted packet to the opposite device again.
関連する技術として、サーバ装置へ送信する通信データを再送するまでの再送タイムアウトを算出する際に、サーバ装置と通信装置の間をデータが往復する往復時間の測定結果を用いる通信装置が提案されている。この通信装置は、再送タイムアウトの算出結果よりも大きな値となった往復時間の測定結果を、次回の再送タイムアウトの算出の際に用いない。 As a related technique, there has been proposed a communication device that uses a measurement result of a round-trip time in which data reciprocates between the server device and the communication device when calculating a retransmission timeout until the communication data to be transmitted to the server device is retransmitted. Yes. This communication apparatus does not use the round trip time measurement result, which is larger than the retransmission timeout calculation result, for the next retransmission timeout calculation.
ユーザ端末によっては、再送タイムアウトが固定値に設定されている場合がある。しかし、ユーザ装置から対向装置までの間のパケットの往復時間は、ネットワークの輻輳状態によって変化する。例えば、ネットワークを介して送受信されるパケットの数が少ない場合、往復時間は短くなる。従って、再送タイムアウトが固定値に設定されている場合、パケットが送信されてからそのパケットが再送されるまでの時間が長くなりすぎる場合がある。なお、背景技術では、ユーザ装置から送信されたデータが対向装置で処理される場合について述べたが、任意の複数の通信装置がWANを介してパケットを送受信する場合にも、同様の問題が生じる可能性がある。 Depending on the user terminal, the retransmission timeout may be set to a fixed value. However, the round-trip time of the packet between the user device and the opposite device varies depending on the congestion state of the network. For example, when the number of packets transmitted and received through the network is small, the round trip time is shortened. Therefore, when the retransmission timeout is set to a fixed value, the time from when a packet is transmitted until the packet is retransmitted may be too long. In the background art, the case where the data transmitted from the user apparatus is processed by the opposite apparatus has been described, but the same problem occurs when any of a plurality of communication apparatuses transmit and receive packets via the WAN. there is a possibility.
本発明は、再送タイムアウトが固定値に設定されている装置から送信されたパケットについて、再送が行われるまでの時間をパケットの往復時間に応じて変更することを目的とする。 An object of the present invention is to change the time until retransmission is performed according to the round trip time of a packet for a packet transmitted from a device whose retransmission timeout is set to a fixed value.
実施形態に係る通信装置は、受信部、記憶部、送信部、測定部、および、再送部を備える。受信部は、対向装置宛ての第1および第2のパケットを送信し、前記対向装置での受信が確認できないパケットを前記対向装置に再送する送信元装置から、前記第1および第2のパケットを受信する。記憶部は、前記第1および第2のパケットを記憶する。送信部は、前記第1および第2のパケットを前記対向装置に送信する。測定部は、前記送信部が前記第1のパケットを前記対向装置に送信した時刻から、前記対向装置での前記第1のパケットの受信を通知する第1の応答メッセージを前記受信部が受信した時刻までの時間である応答時間を測定する。前記送信部が前記第2のパケットを前記対向装置に送信した時刻から前記応答時間より長い時間が経過しても、前記受信部が前記対向装置での前記第2のパケットの受信を通知する第2の応答メッセージを受信せず、かつ、前記送信元装置から再送パケットも受信しない場合、再送部が動作する。ここで、再送パケットは、前記送信元装置から前記第2のパケットを再送したパケットである。再送部は、前記記憶部から前記第2のパケットを取得すると共に、前記送信部に、前記第2のパケットを前記対向装置に再度送信させる。
The communication apparatus according to the embodiment includes a reception unit, a storage unit, a transmission unit, a measurement unit, and a retransmission unit. The receiving unit transmits the first and second packets addressed to the opposite device, and sends the first and second packets from the transmission source device that retransmits the packet that cannot be confirmed by the opposite device to the opposite device. Receive. The storage unit stores the first and second packets. The transmission unit transmits the first and second packets to the opposite device. The measurement unit receives the first response message for notifying the reception of the first packet at the opposite device from the time when the transmission unit transmits the first packet to the opposite device. Measure response time, which is the time to time. Even if a time longer than the response time elapses from the time when the transmission unit transmits the second packet to the opposite device, the reception unit notifies the reception of the second packet by the opposite device. If no
再送タイムアウトが固定値に設定されている装置から送信されたパケットについても、再送が行われるまでの時間がパケットの往復時間に応じて変更される。 Also for a packet transmitted from a device whose retransmission timeout is set to a fixed value, the time until retransmission is changed according to the round trip time of the packet.
図1は、ある実施形態にかかる通信装置10の動作の例を説明する図である。通信装置10は、送信元装置2が対向装置6にむけて送信したパケットを中継する。送信元装置2が対向装置6にむけて送信したパケットについて、そのパケットが対向装置6で受信されたことが一定の時間に通知されず、さらに、送信元装置2からパケットが再送されないとき、通信装置10は、パケットを対向装置6に再送する。図1を参照しながら、送信元装置2から対向装置6にWAN4を介してパケットが送信される場合の通信装置10の動作について説明する。
FIG. 1 is a diagram illustrating an example of the operation of the
なお、以下の説明では、あるパケットが通信装置10から対向装置6に送信された時刻から、そのパケットの受信を通知する応答メッセージが通信装置10で受信される時刻までの時間を「応答時間」(Round Trip Time、RTT)と記載するものとする。さらに、送信元装置2から送信されたパケットが対向装置6に送信された後、通信装置10が同じパケットを対向装置6に再送するまで待機する時間を「待機時間」と記載することもある。
In the following description, the time from the time when a certain packet is transmitted from the
(1)まず、送信元装置2は、対向装置6に向けて第1のパケットを送信する。通信装置10は、第1のパケットを受信すると、受信したパケットを複製し、複製した第1のパケットを、送信元装置2を識別する情報と通信装置10を識別する情報との組み合わせに関連付けて記憶する。
(1) First, the
(2)通信装置10は、第1のパケットをそのパケットの宛先である対向装置6に向けて送信する。さらに、通信装置10は、第1のパケットを送信した時刻を記憶する。
(3)対向装置6は、第1のパケットを受信すると、第1のパケットを受信したことを通知する第1の応答メッセージを送信元装置2に向けて送信する。第1の応答メッセージが通信装置10に到達すると、通信装置10は、第1の応答メッセージを参照して、第1のパケットが対向装置6で受信されたことを認識する。次に、通信装置10は、第1のパケットを通信装置10から送信した時刻と、第1の応答メッセージの受信時刻の間の時間(応答時間)を求める。図1のAは応答時間を示す。
(2) The
(3) Upon receiving the first packet, the
(4)通信装置10は、第1の応答メッセージを送信元装置2に送信する。
(5)次に、送信元装置2から送信された第2のパケットについて、通信装置10は、手順(1)と同様に第2のパケットを複製して記憶する。また、第2のパケットを対向装置6に送信した時刻も記憶する。
(4) The
(5) Next, for the second packet transmitted from the
(6)さらに、通信装置10は、第2のパケットを対向装置6に転送する。ここで、第2のパケットについて、WAN4でパケットロストが発生したとする。この場合、対向装置6は、第2のパケットを受信しないため、対向装置6は、第2のパケットの受信を通知する第2の応答メッセージを送信しない。
(6) Furthermore, the
(7)通信装置10は、手順(3)で求めた応答時間を用いて待機時間を計算する。ここで、待機時間は、図1のBに示すように、応答時間よりも長い時間である。待機時間の計算方法については後述する。通信装置10は、第2のパケットを対向装置6に送信した時刻から待機時間が経過するまで待機する。待機時間が経過しても、通信装置10が第2の応答メッセージを受信せず、さらに、送信元装置2から対向装置6に向けて再送された第2のパケットも受信しない場合、通信装置10は、記憶している第2のパケットを、対向装置6に送信する。
(7) The
(8)手順(7)で再送された第2のパケットを対向装置6が受信すると、対向装置6は、第2の応答メッセージを送信元装置2に送信する。通信装置10は、第2の応答メッセージを確認することにより、第2のパケットが対向装置6によって受信されたことを認識する。
(8) When the
(9)通信装置10は、第2の応答メッセージを送信元装置2に送信する。
このように、パケットの送信時刻から待機時間が経過するまでの間に対向装置6でのパケットの受信が確認できず、さらに、送信元装置2からパケットの再送も行われていない場合に、通信装置10は、対向装置6にパケットを再送する。ここで、待機時間は、応答時間を基にして計算されているので、応答時間の変動に応じて待機時間の長さも変動する。従って、通信装置10は、送信元装置2から送信されたパケットの再送のタイミングを応答時間に応じて変動させることができる。例えば、送信元装置2において、再送タイムアウトが固定値に設定されている場合でも、通信装置10は、応答時間に応じて計算されたタイミングでパケットの再送を行うことができる。すなわち、応答時間が短い場合は、通信装置10が動作することにより、パケットの送信時刻からそのパケットの再送時刻までの間隔が短くなる。このため、例えば、対向装置6で動作しているアプリケーションが送信元装置2から送信されたデータを処理している場合、パケットの送信に失敗しても、アプリケーションでの処理に間に合うようにパケットを再送できる確率が高くなる。
(9) The
As described above, when the reception of the packet at the
<装置構成>
図2は、通信装置10の構成の例を示す図である。通信装置10は、受信部11、送信部12、ルーチング部13、タイマ14、記憶部20、および、再送代替部30を備える。記憶部20は、直結機器テーブル21、コネクションテーブル22、通信パケットテーブル23、および、ルーティングテーブル24を備える。再送代替部30は、直結機器検出部31、コネクション検出部32、通信パケット確認部33、測定部34、算出部35、判定部36、および、再送部37を備える。
<Device configuration>
FIG. 2 is a diagram illustrating an example of the configuration of the
受信部11は、送信元装置2からパケットを受信する。さらに、受信部11は、受信したパケットを直結機器検出部31、送信部12などに出力することができる。また、受信部11は、対向装置6から、パケットの受信を通知する応答メッセージを受信する。受信部11は、受信した応答メッセージを、直結機器検出部31、送信部12などに出力する。送信部12は、送信元装置2から受信したパケットを対向装置6に向けて送信する。また、送信部12は、パケットを対向装置6に送信した時刻から待機時間が経過したときに、通信パケットテーブル23を参照して、パケットを対向装置6に再送する。なお、後述するように、通信パケットテーブル23には、送信元装置2から対向装置6に送信されたが対向装置6での受信が確認されていないパケットと、そのパケットについての情報が記録されている。さらに、送信部12は、対向装置6から受信した応答メッセージを送信元装置2に送信する。ルーチング部13は、通信装置10が受信したパケットの転送先をルーティングテーブル24に基づいて決定し、送信部12に通知する。タイマ14は、直結機器検出部31、コネクション検出部32、通信パケット確認部33、測定部34、再送部37などに時刻情報を提供する。
The receiving
直結機器検出部31は、通信装置10と同じネットワークに所属する機器を検出し、検出した機器に関する情報を直結機器テーブル21に記録する。以下の説明では、通信装置10と同じネットワークに所属する通信装置を「直結機器」と記載することがある。直結機器は、送信元装置2となる可能性がある。例えば、通信装置Aが直結機器であり、さらに、通信装置Aが通信装置Bに向けてパケットを送信するとする。通信装置Aから通信装置Bに送信されたパケットが、通信装置10を経由して通信装置Bに送信される場合、通信装置Aは、図1に示す送信元装置2となる。直結機器テーブル21の例を図3に示す。図3の例では、直結機器テーブル21は、直結機器のMedia Access Control(MAC)アドレス、Internet Protocol(IP)アドレス、および、通信装置10との最新の通信時刻を格納する。なお、図3は、直結機器テーブル21の例であり、直結機器テーブル21に含まれる情報は、実装に応じて、適宜、変更される場合がある。
The directly connected
コネクション検出部32は、送信元装置2と対向装置6の間でTransmission Control Protocol(TCP)を用いた通信が行われる場合、送受信されるパケット中のTCPヘッダを参照する。コネクション検出部32は、TCPヘッダに含まれている情報に基づいて、コネクションの生成と消滅を監視し、通信が行われているコネクションに関する情報を、コネクションテーブル22に格納する。コネクションの監視の方法と、コネクションテーブル22の例については、後述する。
When communication using Transmission Control Protocol (TCP) is performed between the
通信パケット確認部33は、送信元装置2から受信したパケットに基づいて、コネクションテーブル22や通信パケットテーブル23を更新する。通信パケットテーブル23には、パケットの送信時間などの情報が記録される。
The communication
測定部34は、通信パケットテーブル23に記録されているパケットについての応答メッセージが受信部11で受信された時刻と、パケットの送信時刻の差から、応答時間を求める。さらに、測定部34は、通信パケットテーブル23に記録されている情報のうち、対向装置6から応答メッセージを受信したパケットに関する情報を削除する。このため、通信パケットテーブル23は、通信装置10から対向装置6に送信されたパケットのうち、対向装置6からの応答メッセージが通信装置10で受信されていないパケットに関する情報が格納されている。
The
算出部35は、あるパケットが送信部12から対向装置6に向けて送信された時刻から、再送部37がパケットの再送を送信部12に指示する時刻までの待機時間を、応答時間に基づいて計算する。待機時間の計算方法については、後述する。
Based on the response time, the
判定部36は、通信装置10が送信元装置2の代わりに対向装置6に対する再送を行うかを判定する。例えば、判定部36は、送信元装置2がパケットを送信してから同じパケットを再送するまでの時間が、待機時間より長いかを判定する。パケットの送信に待機時間より長い時間がかかると判定された送信元装置2については、パケットの再送を通信装置10が行う。また、以下の記載では、通信装置10が送信元装置2の代わりに対向装置6に対する再送を行う場合、その送信元装置2を「対象装置」と記載することがある。
The
再送部37は、通信パケットテーブル23を参照して、対象装置から送信されたパケットのうち、パケットの送信時刻から待機時間が経過するまでに対向装置6からの応答メッセージが受信されていないパケットを特定する。また、再送部37は、通信パケットテーブル23に含まれているデータに基づいて、送信部12にパケットの再送を指示する。
The
次に、通信装置10のハードウェア構成の例について述べる。通信装置10は、例えば、Central Processing Unit(CPU)などのプロセッサ、メモリ、ネットワーク接続装置を備えることができる。この場合、ネットワーク接続装置は、通信装置10をネットワークに接続し、例えば、受信部11、送信部12として動作する。CPUは、再送代替部30、ルーチング部13、タイマ14などとして動作することができる。メモリは、記憶部20として動作する。例えば、通信装置10は、プロセッサ、メモリ、ネットワーク接続装置を備えたコンピュータであっても良い。なお、ここで述べた構成は一例であり、実装に応じて通信装置10の構成は変更される場合がある。
Next, an example of the hardware configuration of the
<第1の実施形態>
通信装置10は、直結機器の検出、応答時間の測定、コネクションの検出、直結機器から受信したパケットの保持、待機時間の算出、パケットの再送などを行う。以下、これらの動作の詳細について説明する。
<First Embodiment>
The
〔直結機器の検出〕
通信装置10が起動されると、通信装置10は、まず、送信元装置2となる可能性のある装置(直結機器)を検出する。直結機器検出部31は、直結機器の検出に、Address Resolution Protocol(ARP)要求パケットを用いる。
[Detection of directly connected devices]
When the
図4は、直結機器の検出方法の例を説明する図である。通信を開始しようとする装置は、通信先のIPアドレスを取得すると、そのIPアドレスを用いている装置のMACアドレスを取得するためにARP要求パケットを送信する。図4に、装置Aから送信されたARP要求パケットの例を示す。以下の例では、装置AのIPアドレスは「IP1」、MACアドレスは「MAC1」であるものとする。ARP要求パケットは、イーサネットヘッダとARPメッセージを含む。イーサネットヘッダには、送信先MACアドレス、送信元MACアドレス、および、Typeが記録される。ここでは、送信元MACアドレスは装置AのMACアドレス、TypeはARP要求を表す「0806」が記録される。さらに、ARP要求パケットの送信先MACアドレスはブロードキャストアドレス(MAC_B)である「ff:ff:ff:ff:ff:ff」が用いられる。このため、ARP要求パケットは、装置Aが所属するネットワークと同じネットワークに所属する全ての通信装置に送信される。 FIG. 4 is a diagram illustrating an example of a method for detecting a directly connected device. When a device that is to start communication acquires an IP address of a communication destination, the device transmits an ARP request packet to acquire the MAC address of the device that uses the IP address. FIG. 4 shows an example of the ARP request packet transmitted from the device A. In the following example, it is assumed that the IP address of device A is “IP1” and the MAC address is “MAC1”. The ARP request packet includes an Ethernet header and an ARP message. In the Ethernet header, a transmission destination MAC address, a transmission source MAC address, and Type are recorded. Here, the source MAC address is recorded as the MAC address of the device A, and the Type is recorded as “0806” indicating an ARP request. Further, “ff: ff: ff: ff: ff: ff”, which is a broadcast address (MAC_B), is used as the transmission destination MAC address of the ARP request packet. For this reason, the ARP request packet is transmitted to all communication devices belonging to the same network as the network to which the device A belongs.
ARP要求パケットのARPメッセージには、Opcode、送信元MACアドレス、送信元IPアドレス、対象MACアドレス、対象IPアドレスが含まれる。ここで、対象IPアドレスはMACアドレスを取得しようとする装置で用いられているIPアドレスである。例えば、対象IPアドレスは、装置Aが通信する対象の装置のIPアドレスである。また、対象MACアドレスは、取得しようとするMACアドレスである。ARP要求パケットが生成されるときには、装置Aは対象MACアドレスを取得していないので、MACアドレスの代わりに「0」が記録される。Opcodeは、ARPメッセージがARP要求であるかを示す情報であり、ARP要求の場合は「1」である。送信元MACアドレスと送信元IPアドレスのフィールドには、装置AのMACアドレスとIPアドレスが格納されている。 The ARP message of the ARP request packet includes Opcode, source MAC address, source IP address, target MAC address, and target IP address. Here, the target IP address is an IP address used in a device that attempts to acquire a MAC address. For example, the target IP address is an IP address of a target device with which the device A communicates. The target MAC address is the MAC address to be acquired. When the ARP request packet is generated, since device A has not acquired the target MAC address, “0” is recorded instead of the MAC address. Opcode is information indicating whether the ARP message is an ARP request, and is “1” in the case of an ARP request. The MAC address and IP address of device A are stored in the source MAC address and source IP address fields.
装置Aが図4に示すARP要求パケットをブロードキャストすると、装置Aと同じネットワークに所属する通信装置10は、ARP要求パケットを受信する。直結機器検出部31は、受信部11を介して受信されたパケットの種類を確認し、ARP要求パケットを取得する。さらに、直結機器検出部31は、取得したパケットのARPメッセージから送信元MACアドレスと送信元IPアドレスを抽出して、直結機器テーブル21(図3)に格納する。また、直結機器検出部31は、タイマ14を参照して、ARP要求パケットが受信された時刻を取得し、直結機器テーブル21に格納する。直結機器検出部31は、通信装置10がARP要求パケットを受信するたびに、ARP要求に含まれている送信元IPアドレス、送信元MACアドレス、およびARP要求パケットの受信時刻を取得し、直結機器テーブル21に格納する。
When the device A broadcasts the ARP request packet shown in FIG. 4, the
すでに直結機器テーブル21に登録されている装置から再度ARP要求パケットを受信した場合、直結機器検出部31は、ARP要求パケットを送信した装置に関する記録の最終通信時刻を変更する。例えば、図3の直結機器テーブル21の1番上の欄には、すでに、装置Aとの通信について記録されている。そこで、直結機器検出部31は、装置AからARP要求パケットを受信すると、装置Aとの最終通信時刻をARP要求パケットの受信時刻に変更する。また、直結機器検出部31は、コネクションの生成要求や、既に確立されたコネクションを介して送信されたパケットなどを受信するたびに、それらのパケットの送信元アドレスに対応付けられた最終通信時刻を更新する。
When the ARP request packet is received again from the device already registered in the directly connected device table 21, the directly connected
〔コネクションの検出〕
次に、直結機器テーブル21に記録されている装置が対向装置6との間でコネクションを生成するときに、通信装置10で行われる動作の例を説明する。以下の説明では、送信元装置2のIPアドレスはIP1であり、対向装置6のIPアドレスはIP10であるものとする。なお、以下の説明では、図1に示すように、送信元装置2と対向装置6はWAN4を介して通信するものとする。
[Detection of connection]
Next, an example of an operation performed in the
パケットを受信すると、受信部11は受信パケットを直結機器検出部31に出力する。直結機器検出部31は、ARP要求パケット以外のパケットについて、IPヘッダを確認することにより、直結装置から送信されたパケットであるかを判定する。
When receiving the packet, the receiving
図5(a)に、IPヘッダの構成例を示す。図5(a)は、IPv4で用いられるIPヘッダを示す。IPv4ヘッダには、パケットの送信元IPアドレスと宛先IPアドレスが含まれている。さらに、IPv4ヘッダには、ヘッダ長フィールドとデータ長フィールドが含まれる。ヘッダ長フィールドは、IPヘッダの長さを示す。データ長フィールドは、IPヘッダとセグメントデータを合わせた長さを示す。さらに、IPv4ヘッダには、バージョン情報、サービスタイプ、識別番号、フラグ、フラグメントオフセット、Time To Live(TTL)、プロトコル、ヘッダチェックサム、オプション、パディングなどのフィールドが含まれる。ここではIPv4ヘッダについて述べたが、IPv6ヘッダにも送信元IPアドレスと宛先IPアドレスが含まれている。また、IPv6ヘッダには、ペイロード長フィールドが含まれている。ペイロード長フィールドには、IPv6パケットの全体の長さからIPv6ヘッダの長さを差し引いたペイロードの長さが記録される。 FIG. 5A shows a configuration example of the IP header. FIG. 5A shows an IP header used in IPv4. The IPv4 header includes a packet source IP address and a destination IP address. Further, the IPv4 header includes a header length field and a data length field. The header length field indicates the length of the IP header. The data length field indicates the combined length of the IP header and segment data. Further, the IPv4 header includes fields such as version information, service type, identification number, flag, fragment offset, Time To Live (TTL), protocol, header checksum, option, and padding. Although the IPv4 header has been described here, the IPv6 header also includes a source IP address and a destination IP address. The IPv6 header includes a payload length field. In the payload length field, the length of the payload obtained by subtracting the length of the IPv6 header from the entire length of the IPv6 packet is recorded.
直結機器検出部31は、受信したパケットのIPヘッダに含まれている送信元IPアドレスを、直結機器テーブル21に含まれているIPアドレスと比較する。受信されたパケットの送信元IPアドレスが直結機器テーブル21に記録されている場合、直結機器検出部31は、そのパケットの送信元の装置は、直結装置であると判定し、コネクション検出部32にパケットを出力する。コネクション検出部32は、直結機器検出部31から入力されたパケットのTCPヘッダを参照することにより、コネクションに関する情報を取得する。コネクション検出部32は、取得した情報をコネクションテーブル22に格納する。
The directly connected
図5(b)は、TCPヘッダの構成例を示す図である。TCPヘッダには、送信元ポート番号、宛先ポート番号、シーケンス番号、確認応答番号、制御ビットが含まれる。さらに、TCPヘッダには、オプション、データオフセット、予約ビット、ウィンドウサイズ、チェックサム、緊急ポインタ、パディングも含まれる。データオフセットフィールドには、TCPヘッダの長さが記録されている。制御ビットには、URG(urgent)、ACK(acknowledge)、PSH(push)、RST(reset)、SYN(synchronize)、FIN(finis)の6ビットが含まれる。通信装置10では、ACK、RST、SYN、FINの値を用いた制御が行われる。SYNビットは、コネクションの確立が要求されているかを示す。SYN=1のパケットは、宛先の装置に対してコネクションの確立を要求するために用いられる。以下の記載では、SYN=1のパケットを「送信許可要求パケット」と記載することがある。ACKビットは、パケットが応答メッセージであるかを示す。ACK=1のパケットは、あるパケットに対する応答メッセージとして用いられる。RSTとFINは、そのパケットの送信に用いられたコネクションの切断が要求されているかを示す。RSTかFINのいずれかが1であるパケットは、そのパケットの宛先の装置に対して、そのパケットの送信に用いられたコネクションの切断を要求する。
FIG. 5B is a diagram illustrating a configuration example of the TCP header. The TCP header includes a source port number, a destination port number, a sequence number, an acknowledgment number, and a control bit. Furthermore, the TCP header includes options, data offset, reserved bits, window size, checksum, urgent pointer, and padding. In the data offset field, the length of the TCP header is recorded. The control bits include 6 bits of URG (urgent), ACK (acknowledge), PSH (push), RST (reset), SYN (synchronize), and FIN (finis). In the
コネクション検出部32は、直結機器検出部31から入力された各々のパケットについて、TCPヘッダ中の制御ビットのうちのRST、SYN、FINのそれぞれの値を確認する。ここでは、SYN=1、RST=0、FIN=0のパケットを通信装置10が受信したものとする。SYNが1の場合、コネクション検出部32は、送信元装置2から対向装置6に向けたコネクションが確立されると判断して、確立されるコネクションに関する情報をコネクションテーブル22に記録する。
The
図6は、検出されたコネクションの記録方法の例を示す図である。コネクションテーブル22は、例えば、送信元装置2のIPアドレス、送信元ポート番号、対向装置6のIPアドレス、宛先ポート番号、次に送信されるセグメントのシーケンス番号(NextSeqNo)を記録する。さらに、応答時間から算出された再送タイムアウト(RTO計算値)、再送フラグ、最終通信時刻を格納する。以下の説明では、応答時間から算出された通信装置10での再送タイムアウトのことを、「RTO計算値」と記載することがある。ここで、再送フラグは、通信装置10がパケットの再送を行う送信元装置2を識別するために用いられる。再送フラグが「ON」の場合、そのコネクションを介して送信されたパケットについて、通信装置10は、判定部36による判定を行わずに再送を行う。なお、再送フラグが「ON」の場合と「OFF」の場合で、算出部35は、待機時間の算出方法を変更することができる。以下、図6を参照しながら、コネクション検出部32の動作について説明する。
FIG. 6 is a diagram illustrating an example of a method for recording the detected connection. The connection table 22 records, for example, the IP address of the
コネクション検出部32は、送信許可要求パケットを受信すると、そのパケットのIPヘッダから送信元IPアドレスと宛先IPアドレスを取得して、コネクションテーブル22に記録する。コネクション検出部32は、TCPヘッダの送信元ポート番号を送信元装置2でのポート番号とし、TCPヘッダの宛先ポート番号を対向装置6でのポート番号として、コネクションテーブル22に記録する。コネクション検出部32は、パケットを受信した時刻もコネクションテーブル22に記録する。
When the
次に、コネクション検出部32は、次に送信されるセグメントのシーケンス番号を計算する。コネクション検出部32は、IPv4パケットのデータ長フィールドに記録されている値からヘッダ長フィールドに記録されている値を差し引いて、セグメントデータの長さを求める。次に、コネクション検出部32は、TCPヘッダのデータオフセットフィールドの値を取得し、セグメントデータの長さからTCPヘッダの長さを差し引くことにより、パケットに含まれているデータの長さを求める。すなわち、パケットに含まれているデータ長をD、IPv4パケットのデータ長フィールドの値をIPd、IPヘッダ長をIPh、TCPヘッダ長をTCPhとすると、コネクション検出部32は、以下の計算によりデータ長Dを求める。
D=IPd−IPh−TCPh
Next, the
D = IPd-IPh-TCPh
さらに、コネクション検出部32は、通信装置10が受信したパケットに含まれているシーケンス番号(Seq)にデータ長を加えることにより、次に送信されるセグメントのシーケンス番号(NextSeq)を算出する。すなわち、次に送信されるセグメントのシーケンス番号は、次式により求められる。コネクション検出部32は、算出したNextSeqをコネクションテーブル22に記録する。
NextSeq=Seq+D
Further, the
NextSeq = Seq + D
コネクション検出部32は、図6に示すように、NextSeqをコネクションテーブル22に記録する。なお、送信許可要求パケットのように、データが含まれていないパケットに基づいてNextSeqの値が計算された場合、次に同じコネクションを介して送信されるパケットに含まれているデータのシーケンス番号はNextSeqの値より大きいことがある。例えば、コネクションを確立するために送信元装置2から対向装置6に送信される送信許可要求パケットには、送信元装置2から対向装置6への送信データが含まれていないので、データ長は0バイトになる。コネクションの確立のために送信されたパケットのシーケンス番号が2000であると、コネクション検出部32は、NextSeqを2000とする。しかし、送信許可要求パケットの次に送信されるパケットに含まれるシーケンス番号は、2000よりも大きい場合がある。
As shown in FIG. 6, the
さらに、コネクション検出部32は、時刻情報をタイマ14から取得してコネクションテーブル22に記録する。コネクションを確立する要求が送信元装置2から対向装置6に送信されたときには、まだ送信元装置2から対向装置6の間の応答時間が求められていないので、RTO計算値は記録されない。コネクション検出部32は、検出したコネクションについて、再送フラグを「OFF」に設定する。
Further, the
次に、送信許可要求パケットは、通信パケットテーブル23に格納される。図7に通信パケットテーブル23の例を示す。通信パケットテーブル23は、例えば、送信元装置2のIPアドレス、送信元ポート番号、対向装置6のIPアドレス、宛先ポート番号、そのパケットのシーケンス番号、データ長、再送回数、発信時刻を格納する。さらに、これらの情報に対応付けて、受信パケットが通信パケットテーブル23に格納される。
Next, the transmission permission request packet is stored in the communication packet table 23. FIG. 7 shows an example of the communication packet table 23. The communication packet table 23 stores, for example, the IP address of the
コネクション検出部32は、送信許可要求パケットについて、送信元装置2のIPアドレス、送信元ポート番号、対向装置6のIPアドレス、宛先ポート番号、そのパケットのシーケンス番号、および、データ長を既に認識している。そこで、コネクション検出部32は、これらの情報を通信パケットテーブル23に格納し、通信パケット確認部33に送信許可要求パケットを出力する。通信パケット確認部33は、パケットを通信パケットテーブル23に登録するときは、再送回数を「0」に設定する。さらに、通信パケット確認部33は、タイマ14から時刻情報を取得し、そのパケットが送信部12から対向装置6に向けて出力される時刻も、通信パケットテーブル23に記録する。
The
〔応答時間の測定とRTO計算値の算出〕
次に、対向装置6から送信元装置2に向けてコネクションの送信を許可する応答メッセージが送信され、通信装置10が応答メッセージを受信した場合について説明する。
[Measure response time and RTO calculation value]
Next, a case where a response message permitting transmission of a connection is transmitted from the
受信部11は、対向装置6から受信したパケットを、直結機器検出部31に出力する。直結機器検出部31は、パケットのIPヘッダに含まれているIPアドレスを直結機器テーブル21に記録されているIPアドレスと比較する。宛先IPアドレスが直結機器テーブル21に記録されている場合、直結機器検出部31は、そのパケットを測定部34に出力する。従って、通信装置10を介して対向装置6に送信された送信許可要求パケットに対する応答パケットは、測定部34に出力される。
The
測定部34は、直結機器検出部31から入力されたパケットのTCPヘッダ中のACKビットを参照して、応答メッセージを受信しているかを確認する。ACKビットの値が「1」である場合、測定部34は、応答メッセージを受信したと判断し、確認応答番号を参照する。確認応答番号には、対向装置6が送信元装置2から次に受信するデータを識別するシーケンス番号が記録されている。このため、測定部34は、確認応答番号よりもシーケンス番号が小さな値のデータを含むパケットが対向装置6で受信されたと認識する。ただし、コネクションが確立される段階では、そのコネクションに関連して通信パケットテーブル23に登録されているパケットは、送信元装置2から対向装置6に送信された送信許可要求パケットだけである。そこで、測定部34は、応答メッセージは送信許可要求パケットの受信を通知していると判断し、応答メッセージの受信時刻を取得する。次に、測定部34は、通信パケットテーブル23を参照することにより、応答メッセージの受信時刻から、送信許可要求パケットの発信時刻までの時間を差し引いた値を、応答時間とする。
The
例えば、図7に示すように、送信許可要求パケットが通信装置10から対向装置6に送信された時刻は、12時0分0秒であり、応答メッセージの受信時刻が12時0分0.04秒であるとする。すると、測定部34は、
(12時0分0.04秒)−(12時0分0秒)=0.04秒
を応答時間とする。測定部34は、求めた応答時間を算出部35に出力する。さらに、測定部34は、通信パケットテーブル23から送信許可要求パケットについての記録を削除する。
For example, as shown in FIG. 7, the time when the transmission permission request packet is transmitted from the
(12: 00: 0.04 seconds) − (12: 0: 0) = 0.04 seconds is the response time. The
算出部35は、応答時間を用いて、RTO計算値と待機時間を算出する。算出部35は、コネクションについて初めて求められた応答時間を用いて(1)式に基づく計算を行い、RTO計算値(RTOcal )を求める。
RTOcal =SRTT+max(G,K×RTTVAR) ・・・(1)
ここで、
K=4
SRTT=MRTT
RTTVAR=MRTT/2
であるものとする。MRTT(Measured RTT)は、測定部34が求めた応答時間である。RTTVARは、応答時間の2分の1である。また、Gは、通信装置10が応答時間の測定に使用するクロックの粒度(分解能)である。
The
RTO cal = SRTT + max (G, K × RTTVAR) (1)
here,
K = 4
SRTT = MRTT
RTTVAR = MRTT / 2
Suppose that MRTT (Measured RTT) is a response time obtained by the
例えば、応答時間が0.04秒、クロックの分解能が0.05秒であるとすると、RTO計算値は以下のように求められる。
RTTVAR=MRTT/2=0.04/2=0.02(秒)
SRTT=MRTT=0.04(秒)
RTOcal =0.04+max(0.05,4×0.02)=0.12(秒)
算出部35は、求めたRTO計算値をコネクションテーブル22に記録する。
For example, assuming that the response time is 0.04 seconds and the clock resolution is 0.05 seconds, the RTO calculation value is obtained as follows.
RTTVAR = MRTT / 2 = 0.04 / 2 = 0.02 (seconds)
SRTT = MRTT = 0.04 (seconds)
RTO cal = 0.04 + max (0.05, 4 × 0.02) = 0.12 (seconds)
The
〔記録済みのコネクションを介して受信したパケットの保持〕
次に、コネクションテーブル22に記録されているコネクションを介して送信元装置2から対向装置6に送信されるパケットを、通信装置10が受信した場合について、通信パケット確認部33などの動作の例を説明する。受信されたパケットがARP要求パケットではない場合、コネクション検出部32は、受信されたパケットのTCPヘッダを参照し、コネクションテーブル22に登録されているコネクションを介して送信されたパケットであるかを判定する。コネクションテーブル22に登録されているコネクションを介して送信元装置2から送信されたパケットを受信した場合、コネクション検出部32は、パケットを通信パケット確認部33に出力する。例えば、送信元装置2から対向装置6に送信されたパケットを受信すると、コネクション検出部32は、IPアドレスとポート番号を用いて、コネクションテーブル22に登録されているコネクションを介して送信されているかを確認する。登録されているコネクションを介して送信されたパケットであると、コネクション検出部32は、通信パケット確認部33にパケットを出力する。
[Retention of packets received through recorded connections]
Next, an example of the operation of the communication
通信パケット確認部33は、入力されたパケットのシーケンス番号にデータ長を加えた値を、コネクションテーブル22のNextSeqNoに記録されている数値と比較する。ここで、データ長の求め方は、送信許可要求パケットの場合と同様である。通信パケット確認部33は、シーケンス番号とデータ長の和がNextSeqNoに記録されている数値よりも大きい場合、入力されたパケットは、送信元装置2から対向装置6に初めて送られるデータを含むと判定する。一方、通信パケット確認部33は、シーケンス番号とデータ長の和がNextSeqNoに記録されている数値以下の場合、入力されたパケットは再送パケットであると判定する。
The communication
図8(a)は、通信パケットテーブル23の例を示す図である。図8(a)は、パケットP1〜P3の3つのパケットが送信元装置2から対向装置6に送信された場合の通信パケットテーブル23を示す。以下の説明では、通信パケットテーブル23が図8(a)に示すように更新されたとき、パケットP1〜P3は、いずれも初めて送られるデータを含むと判定されたとする。
FIG. 8A shows an example of the communication packet table 23. FIG. 8A shows the communication packet table 23 when three packets P1 to P3 are transmitted from the
通信パケット確認部33は、コネクション検出部32から入力されたパケットのTCPヘッダに含まれているシーケンス番号とデータ長を通信パケットテーブル23に記録する。通信パケット確認部33は、送信元装置2および対向装置6のIPアドレス、送信元ポート番号、宛先ポート番号を、コネクション検出部32と同様にTCPヘッダなどを参照して取得し、通信パケットテーブル23に記録する。通信パケット確認部33は、パケットを通信パケットテーブル23に登録するときは、再送回数を「0」に設定する。さらに、通信パケット確認部33は、タイマ14から時刻情報を取得し、そのパケットが送信部12から対向装置6に向けて出力される時刻も、通信パケットテーブル23に記録する。
The communication
通信パケット確認部33は、コネクション検出部32から入力されたパケットの情報に基づいて、これまでに送信元装置2から対向装置6に送信されたデータの次のデータを示すシーケンス番号を求め、コネクションテーブル22に記録する。さらに、通信パケット確認部33は、コネクションテーブル22の最終通信時刻も更新する。
Based on the packet information input from the
図8(b)は、パケットP1〜P3が送信されたときのコネクションテーブル22の例を示す。パケットP1〜P3はいずれも送信元装置2から対向装置6に同じコネクションを用いて送信されている。従って、そのコネクションでは、シーケンス番号2001から1000バイト分、シーケンス番号3001から1000バイト分、および、シーケンス番号3001から1000バイト分のデータが対向装置6に向けて送信されている。従って、パケットP1〜P3のいずれも対向装置6で受信された場合、シーケンス番号5000までのデータが対向装置6に送信されていることになる。従って、パケットP1〜P3が対向装置6で受信された場合、次に対向装置6に送信されるパケットは、シーケンス番号5001から始まるデータを含む。そこで、NextSeqNoには、5001が記録される。
FIG. 8B shows an example of the connection table 22 when the packets P1 to P3 are transmitted. The packets P1 to P3 are all transmitted from the
通信パケット確認部33は、コネクション検出部32からパケットを受信するたびに、パケットのシーケンス番号にデータ長を加えた値を、コネクションテーブル22のNextSeqNoに記録されている数値と比較する。シーケンス番号とデータ長の合計値が、コネクションテーブル22のNextSeqNoに記録されている数値よりも大きい場合、通信パケット確認部33は、NextSeqNoを、得られた合計値に変更する。
Each time the communication
〔待機時間の算出〕
通信装置10は、通信パケットテーブル23に記録したパケットを、対向装置6に送信する。パケットP1〜P3のようにデータを含むパケットが送信されると、算出部35は、コネクションテーブル22に記録されているRTO計算値を用いて、待機時間を算出する。再送回数をMとし、パケットの送信時刻からM回目の再送までの待機時間をRMとすると、算出部35は、待機時間を(2)式に従って計算する。
RM =RTOcal ×2M-1 ×V ・・・(2)
(2)式において、Vは1以上の定数である。
[Calculation of waiting time]
The
R M = RTO cal × 2 M-1 × V (2)
In the formula (2), V is a constant of 1 or more.
算出部35は、Vの値を決定する際に、通信パケットテーブル23の再送フラグの設定を参照することができる。再送フラグが「ON」に設定されている場合、算出部35は、再送フラグが「OFF」に設定されている場合よりもVの値を小さくする。例えば、コネクションが確立されるときは、送信元装置2が対象装置であるかの判定が行われる前であるため、再送フラグが「OFF」に設定されている。そこで、送信元装置2が自律的に応答時間に応じた時間で再送を行うかを判定するために、算出部35は、Vの値を1より大きい値に設定して待機時間を計算する。例えば、算出部35は、対象装置であると判定されていない送信元装置2から送信されたパケットを再送するときの待機時間を、V=3として計算することができる。一方、再送フラグが「ON」に設定されているコネクションについては、送信元装置2から対向装置6に送信されたパケットを通信装置10が再送することが決定されているので、算出部35は、Vの値を1として待機時間を計算できる。
The
〔パケットの再送〕
通信装置10は、送信元装置2から送信されたパケットが対向装置6で受信されたかを、応答メッセージ中の確認応答番号を参照することによって確認する。確認応答番号は、応答メッセージに対応するパケットに含まれているデータの次に対向装置6が受信するデータの先頭を表すシーケンス番号である。例えば、パケットP1を受信すると、対向装置6はシーケンス番号=2001のデータから1000バイト分を受信しているので、パケットP1に対する応答メッセージA1では、確認応答番号は3001となる。
[Resend packet]
The
通信装置10に受信された応答メッセージA1は、受信部11と直結機器検出部31を介して測定部34に出力される。測定部34は、応答メッセージA1のTCPヘッダ中のACKビットの値が「1」であることを確認すると、確認応答番号を取得する。測定部34は、応答メッセージに含まれている確認応答番号よりも小さいシーケンス番号に対応付けられたパケットは、対向装置6に受信されたと判断し、確認応答番号よりも小さいシーケンス番号に対応するデータやパケットを削除する。さらに、測定部34は、受信した応答メッセージに対応するパケットと、応答メッセージに対応するパケットに関するデータを通信パケットテーブル23から削除する。図9に、応答メッセージA1に基づいてパケットP1に関する情報を削除した後の通信パケットテーブル23を示す。
The response message A1 received by the
一方、パケットが対向装置6で受信されたという通知が待機時間以内に届かない場合、パケットの再送が行われる。通信装置10から対向装置6へのパケットの再送は、通信装置10に格納されているパケットが対向装置6に再送される場合と、送信元装置2がパケットを再送する場合とがある。各々の場合について、通信装置10の動作を説明する。
On the other hand, if the notification that the packet is received by the
(A)ケース1
まず、通信装置10に格納されているパケットが対向装置6に再送される場合について説明する。判定部36は、再送フラグがOFFに設定されているコネクションの各々について、通信装置10から送信を行うかを判定する。判定部36は、タイマ14から現在時刻を取得し、通信パケットテーブル23に含まれている発信時刻との差を求める。得られた差が算出部35で求められた待機時間を超えていると判定部36は、通信装置10からパケットの再送を行うことを決定する。判定部36は、再送を行うパケットを再送部37に通知する。さらに、判定部36は、再送を行うことが決定されたパケットの送信に用いられるコネクションについて、コネクションテーブル22の再送フラグをONに設定する。
(A)
First, a case where a packet stored in the
例えば、送信元装置2(IP1)の1300番のポートから、対向装置6(IP10)の1400番のポートに向けたパケットの送信に用いられるコネクションにおいて、RTO計算値が0.12秒であるとする。また、算出部35で算出された1回目の待機時間は、0.12×(2^0)×3=0.36(秒)であるとする。判定部36が12時0分0.612秒に図9の通信パケットテーブル23を参照したとする。この場合、現在時刻と発信時刻の差は12時0分0.612秒−12時0分0.212秒=0.400秒である。そこで、判定部36は、パケットP2の再送を通信装置10で行うことを決定し、再送部37に通知する。さらに、判定部36は、コネクションテーブル22の再送フラグをONに設定する。すなわち、コネクションテーブル22は、図8(b)から図10(a)に示すように変更される。
For example, in the connection used for transmitting a packet from the
再送部37は、判定部36から通知されたパケットについて、通信パケットテーブル23の再送回数を1に変更し、再送を送信部12に指示する。さらに、再送部37は、通信パケットテーブル23の発信時刻を、パケットが再送される時刻に更新する。変更後の通信パケットテーブル23の例を図10(b)に示す。送信部12にパケットの再送を指示した後も、再送部37は、定期的に、再送フラグがONに設定されているコネクションを介して対向装置6に送信されたパケットについて、発信時刻から経過している時間を求める。再送部37は、発信時刻から経過した時間が2回目の待機時間を越えたパケットについて、送信部12に2回目の再送を指示する。その後も、発信時刻と再送部37が通信パケットテーブル23を確認する時刻の差が、待機時間を越えるたびに再送部37は、送信部12にパケットの再送を指示する。
The
次に、再送フラグがONに設定されているコネクションを介して対向装置6に送信されたパケットの再送について説明する。再送フラグがONに設定されているコネクションを介して送信されたパケットの再送については、算出部35は、V=1として待機時間を算出することができる。算出部35は、得られた待機時間を、適宜、記憶部20に記憶する。この場合、再送部37は、発信時刻から(2)式でV=1として求められた待機時間を超えても通信パケットテーブル23に記録されているパケットについて、再送を送信部12に指示する。例えば、パケットP3については、再送部37は、そのコネクションについてV=1で計算された待機時間が経過した時刻に対向装置6に向けて再送を指示する。さらに、再送部37は、通信パケットテーブル23の発信時刻を、パケットが再送される時刻に更新する。
Next, retransmission of a packet transmitted to the
なお、この例では、再送タイムアウトの3倍以上の時間が経過しても再送が行われないコネクションについて通信装置10が再送を行う場合の例を述べたが、通信装置10が再送を行うと決定するための基準は、実装に応じて任意に変更されることがある。算出部35は、通信装置10で再送が行われる基準に応じて待機時間を計算する。さらに、例えば3秒などの、予め決められた閾値よりも長い時間にわたって再送が行われないときに、判定部36は、通信装置10で再送を行うことを決定することもできる。この場合、算出部35で算出された待機時間ではなく、予め記憶している閾値の時間が経過しても再送が行われないコネクションについて、判定部36は、通信装置10で再送を行うことを決定する。
In this example, an example has been described in which the
(B)ケース2
次に、送信元装置2がパケットを再送した場合の通信装置10の動作について説明する。まず、再送フラグの設定が行われていないときの動作から説明する。通信パケット確認部33は、入力されたパケットのシーケンス番号とデータ長の合計値をNextSeqNoと比較する。合計値がNextSeqNo以下であれば、通信パケット確認部33は、送信元装置2から再送されたパケットを取得したと判断する。すると、通信パケット確認部33は、取得したパケットとコネクションおよびシーケンス番号が同一であるエントリを通信パケットテーブル23から抽出し、抽出したエントリの再送回数の値を1つインクリメントする。
(B)
Next, the operation of the
次に、通信パケット確認部33は、送信元装置2から対向装置6に再送されたパケットを送信することと、再送するパケットを特定する情報を判定部36に通知する。判定部36は、通信パケット確認部33から通知を受け取った時刻をタイマ14から取得する。また、判定部36は、再送するパケットの前回の発信時刻を通信パケットテーブル23から取得し、タイマ14から得られた時刻との差(実タイムアウト時間)を求める。判定部36は、実タイムアウト時間と待機時間を比較する。待機時間の計算方法はケース1と同様である。実タイムアウト時間が待機時間よりも長い場合、判定部36は、そのコネクションについて、通信装置10からパケットの再送を行うことを決定し、コネクションテーブル22の再送フラグをONに設定する。
Next, the communication
判定部36が実タイムアウト時間を求めた後、通信パケット確認部33は、再送するパケットの送信を送信部12に指示し、送信を指示したパケットについて、通信パケットテーブル23中の発信時刻を更新する。
After the
例えば、図9の通信パケットテーブル23が生成された後で、通信装置10がパケットP2を再送する前に、送信元装置2が対向装置6にパケットP2を送信したとする。また、ここでは再送フラグがOFFに設定されているコネクションについて、V=2として(2)式から待機時間が計算されたとする。送信元装置2から再送されたパケットP2を通信装置10が対向装置6に転送した時刻が12時0分0.5秒であるとする。すると、通信パケット確認部33は、図8(a)に示すパケットP2のエントリについて、再送回数を1回インクリメントする。判定部36は、パケットP2の送信時刻が12時0分0.212秒であるので、12時0分0.5秒−12時0分0.212秒=0.288秒より、実タイムアウト時間が0.288秒であることを認識する。次に、判定部36は、そのコネクションについて計算されている待機時間と実タイムアウト時間を比較する。ここで、RTO計算値が0.12秒であるとすると、待機時間は、V=2なので、0.12×(2^0)×2=0.24(秒)である。従って、実タイムアウト時間は、待機時間より長い。そこで、判定部36は、パケットP2の送信に用いられているコネクションについて、通信装置10からパケットの再送を行うことを決定し、そのコネクションの再送フラグをONに設定する。その後、通信パケット確認部33は、パケットP2を対向装置6に向けて再送するように送信部12に指示する。また、パケットP2について、発信時刻を12時0分0.5秒に変更する。
For example, after the communication packet table 23 in FIG. 9 is generated, the
なお、この例では、実タイムアウトがRTO計算値の2倍以上の場合に通信装置10が再送を行う場合の例を述べたが、通信装置10が再送を行うと決定するための実タイムアウトとRTO計算値の割合は、実装に応じて任意に変更されることがある。さらに、例えば3秒などの、予め決められた時間よりも実タイムアウト時間が長いときに、判定部36は、通信装置10で再送を行うことを決定することもできる。
In this example, the example in which the
次に、再送フラグがONに設定されているコネクションを介して対向装置6に送信されたパケットについては、ケース1と同様に処理される。従って、すでに再送フラグがONに設定されているコネクションについては、例えば、発信時刻から(2)式でV=1として求められた待機時間が経過したときに、通信装置10に格納されているパケットが対向装置6に再送される。
Next, the packet transmitted to the
〔RTO計算値の更新〕
次に、RTO計算値の更新について説明する。ここでは、パケットP1が対向装置6に受信され、対向装置6から送信元装置2に向けてパケットP1についての応答メッセージA1が送信された場合を例として述べる。
[Update of RTO calculation value]
Next, updating of the RTO calculation value will be described. Here, a case where the packet P1 is received by the
通信装置10に受信された応答メッセージA1は、前述のとおり、受信部11と直結機器検出部31を介して測定部34に出力される。測定部34は、確認応答番号よりもデータ長だけ小さな値のシーケンス番号を算出し、応答メッセージで受信が通知されたパケットを特定する。例えば、応答メッセージA1では確認応答番号が3001でデータ長が1000バイトであるので、測定部34は、3001−1000=2001のシーケンス番号のパケットに対する応答メッセージを受信したと認識する。すると、測定部34は、通信パケットテーブル23を参照することにより、応答メッセージを受け取ったパケットについて、送信部12から対向装置6に向けて送信した時刻(発信時刻)を求める。測定部34は、応答メッセージの受信時刻から、受信が通知されたパケットの発信時刻までの時間を差し引いた値を、応答時間とする。
The response message A1 received by the
例えば、図8(a)に示すように、パケットP1が通信装置10から対向装置6に送信された時刻は、12時0分0.21秒である。測定部34は、応答メッセージA1の受信時刻をタイマ14から取得する。例えば、応答メッセージA1の受信時刻が12時0分0.41秒であるとする。すると、測定部34は、
(12時0分0.41秒)−(12時0分0.21秒)=0.20秒
を応答時間とする。測定部34は、求めた応答時間を算出部35に出力する。算出部35は、RTO計算値を更新するときは、(3)式によって更新値を求める。なお、(3)式において、N番目に算出されるRTO計算値をRTOcal ,N とする。
RTOcal ,N =SRTTN +max(G,K×RTTVARN ) ・・・(3)
ここで、
K=4
RTTVARN =(1−β)×RTTVARN-1 +β×|SRTTN-1 −MRTTN |
SRTTN =(1−α)×SRTTN-1 +α×MRTTN
であるものとする。ここで、α=1/8、β=1/4であるものとする。Nは2以上の任意の整数である。MRTTN は、測定部34がN回目に求めた応答時間である。また、Gは、通信装置10が応答時間の測定に使用するクロックの粒度(分解能)である。更新後のRTO計算値に基づいた待機時間の求め方は前述のとおりである。算出部35により待機時間が算出されると、待機時間に基づいて再送処理が行われる。
For example, as illustrated in FIG. 8A, the time when the packet P1 is transmitted from the
(12: 00: 0.41 seconds) − (12: 0: 0.21 seconds) = 0.20 seconds is the response time. The
RTO cal , N = SRTT N + max (G, K × RTTVAR N ) (3)
here,
K = 4
RTTVAR N = (1−β) × RTTVAR N−1 + β × | SRTT N−1 −MRTT N |
SRTT N = (1−α) × SRTT N−1 + α × MRTT N
Suppose that Here, it is assumed that α = 1/8 and β = 1/4. N is an arbitrary integer of 2 or more. MRTT N is a response time obtained by the
〔通信が終了したときの処理〕
コネクション検出部32は、TCPヘッダ中のRSTかFINが1になっている場合、そのパケットが送信されてきたコネクションに対応する情報をコネクションテーブル22から消去する。従って、コネクションテーブル22には、確立されているコネクションが記録されており、消滅したコネクションや送信元装置2からの切断が要求されているコネクションは記録されていない。また、消去されるコネクションを介して送信されたパケットや、そのパケットに関する情報も、通信パケットテーブル23から消去される。さらに、前述のとおり、直結機器検出部31は、パケットを受信するたびに、受信パケットの送信元アドレスに対応付けられた最終通信時刻を更新する。そこで、直結機器検出部31は、最終通信時刻と現在の時刻の差が一定の時間以上になったエントリを直結機器テーブル21から削除する。
[Process when communication ends]
When the RST or FIN in the TCP header is 1, the
図11Aと図11Bは、通信装置10がパケットを受信したときに行う動作の例を説明するフローチャートである。以下、図11Aと図11Bを参照しながら、通信装置10の動作を説明する。なお、図11Aと図11Bに示す通信装置10の動作は一例であり、実装に応じて変更される場合がある。例えば、ステップS3とS4は順序を入れ替えることができる。また、ステップS5は、ステップS14とS15の組み合わせと順序が変更される場合がある。また、ステップS17とS18の動作の組み合わせ、ステップS19とS20の組み合わせ、および、ステップS1とS2の組み合わせは、どの組み合わせの処理が最初に行われても良い。
11A and 11B are flowcharts for explaining an example of an operation performed when the
直結機器検出部31は、一定時間以上、通信装置10を介した通信が行われていない直結機器があるかを確認し、通信が行われていない直結機器の登録を直結機器テーブル21から削除する(ステップS1、S2)。受信部11でパケットが受信されると、直結機器検出部31は、受信されたパケットはARPパケットであるかを確認する(ステップS3)。受信されたパケットがARPパケットではない場合、直結機器検出部31は、受信されたパケットがTCPパケットであるかを確認する(ステップS4)。受信されたパケットがTCPパケットである場合、直結機器検出部31は、送信元アドレスと直結機器テーブル21に記録されたアドレスを比較して、送信元の装置が直結装置であるかを確認する(ステップS5)。送信元の装置が直結装置である場合、コネクション検出部32は、送信元装置2から対向装置6に向けて設定されているコネクションがコネクションテーブル22に登録されているかを確認する(ステップS5でYes、ステップS6)。コネクションがコネクションテーブル22に登録されていない場合、コネクション検出部32は、コネクションテーブル22に送信元装置2から対向装置6にデータを送信するためのコネクションを登録する(ステップS6でNo、ステップS7)。
The directly connected
次に、通信パケット確認部33は、受信パケットのシーケンス番号とデータ長の合計値とコネクションテーブル22のNextSeqNoを比較することにより、受信したパケットが再送されたパケットであるかを確認する(ステップS8)。通信パケット確認部33は、受信パケットのシーケンス番号とデータ長の合計値がNextSeqNo以下の場合、再送であると判断して、通信パケットテーブル23を更新する(ステップS8でYes、ステップS9)。一方、受信パケットのシーケンス番号とデータ長の合計値がNextSeqNoより大きい場合、通信パケット確認部33は、処理対象のパケットは再送されたパケットではないと判断する。通信パケットテーブル23は、コネクションテーブル22のNextSeqNoを、受信パケットのシーケンス番号とデータ長の合計値に更新し、さらに、通信パケットテーブル23を更新する(ステップS8でNo、ステップS10)。
Next, the communication
再送されたパケットを受信した場合、判定部36は、再送パケットを送信する時刻と最初に同じパケットを対向装置6に送信した時刻の間の時間(実タイムアウト時間)を求める。さらに、判定部36は、実タイムアウト時間が待機時間を超過しているかを判定する(ステップS11)。実タイムアウト時間が待機時間を超過している場合、判定部36は、算出部35で計算された待機時間に合わせて対向装置6へのパケットの再送を行うことを決定し、再送フラグをONに設定する(ステップS11でYes、ステップS12)。
When the retransmitted packet is received, the
次に、通信装置10は、受信パケットが応答メッセージであるかを確認する。この処理は、受信パケットの送信元アドレスが直結機器テーブル21に登録されていない場合も行われる(ステップS5でNo、ステップS13)。直結機器検出部31は、受信パケットの宛先アドレスが直結機器テーブル21に記録されているかを確認する。さらに、測定部34は、受信パケットのTCPヘッダ中のACKビットの値が1であるかを確認する(ステップS13)。宛先アドレスが直結機器テーブル21に記録されていて、さらに、ACKが1になっている場合、測定部34は、受信パケットが応答メッセージであると判断する。さらに、測定部34は、応答メッセージにより対向装置6で受信されたことが通知されたパケットについての記録を、通信パケットテーブル23から削除する(ステップS14)。その後、コネクションテーブル22の最終通信時刻を更新する(ステップS15)。一方、受信パケットが応答メッセージではない場合も、コネクションテーブル22の最終通信時刻が更新される(ステップS13でNo、ステップS15)。
Next, the
さらに、コネクション検出部32は、コネクションテーブル22に含まれているコネクションの中で一定時間以上通信が行われていないコネクションがあるかを判定する(ステップS16)。一定時間以上通信が行われていないコネクションがあれば、そのコネクションについて、コネクション検出部32はコネクションテーブル22のエントリを削除する。また、通信パケット確認部33は、通信が行われていないコネクションを介して送信されたパケットの記録を、通信パケットテーブル23から削除する(ステップS17)。また、コネクション検出部32は、コネクションテーブル22に登録されているパケットのうちで、切断されるコネクションがあるかを確認する(ステップS18)。この確認は、受信パケットのTCPヘッダに含まれているRSTビットかFINビットの値が1になっているかを確認することにより行われる。コネクション検出部32は、切断されるコネクションのエントリをコネクションテーブル22から削除する。また、また、通信パケット確認部33は、通信が行われていないコネクションを介して送信されたパケットの記録を、通信パケットテーブル23から削除する(ステップS19)。
Further, the
一方、受信されたパケットがARPパケットである場合、直結機器検出部31は、ARPパケットの送信元の装置が直結機器テーブル21に登録されているかを確認する(ステップS20)。ARPパケットの送信元の装置が直結機器テーブル21に登録されていない場合、直結機器検出部31は、送信元の装置のIPアドレスやMACアドレスなどを直結機器テーブル21に登録する(ステップS21)。受信パケットがARPパケットである場合、ステップS21の処理の後は、ステップS15以降の処理が行われる。また、既に送信元アドレスが直結機器テーブル21に登録されている場合は、ステップS20の処理の後、ステップS15以降の処理が行われる。また、受信されたパケットの種類がTCPパケットでない場合も、ステップS15以降の処理が行われる(ステップS4でNo、ステップS15)。
On the other hand, when the received packet is an ARP packet, the directly connected
図12は、通信装置10に格納されているパケットが対向装置6に再送される場合の動作の例を説明するフローチャートである。なお、図12は、動作の例であり、例えば、ステップS34とS35をステップS31の前に行うように順序が変更されるなどの変更が加えられる場合がある。また、図12は、判定部36が定期的に起動される場合の動作を示しているが、例えば、判定部36は通信装置10が起動している間、継続的に起動しているように変形されても良い。さらに、判定部36が起動される間隔は、任意の値に設定される。
FIG. 12 is a flowchart for explaining an example of the operation when a packet stored in the
判定部36は、通信パケットテーブル23に含まれている発信時刻と現在時刻の差を求め、得られた差が待機時間を超えているパケットがあるかを確認する(ステップS31)。ここで、待機時間は、RTO計算値に基づいて、(2)式から計算される。待機時間を越えても再送が行われていないパケットがあると、再送部37は、そのパケットの再送を送信部12に指示する。さらに、再送部37は、再送を指示したパケットについて、通信パケットテーブル23の発信時刻を更新する(ステップS31でYes、ステップS32)。さらに、判定部36は、再送されたパケットの送信に用いられるコネクションについて、再送フラグをONに設定する(ステップS33)。
The
次に、再送部37は、再送フラグがONに設定されているコネクションを介して送信されたパケットについて、発信時刻からV=1として計算される待機時間を超過しても再送が行われていないパケットが通信パケットテーブル23に記録されているかを確認する(ステップS34)。該当するパケットが通信パケットテーブル23に記録されている場合、再送部37は、そのパケットの再送を送信部12に指示する。さらに、再送部37は、再送を指示したパケットについて、通信パケットテーブル23の発信時刻を更新する(ステップS34でYes、ステップS35)。
Next, the
図13は、対向装置6に送信されたパケットが送信されてから再送されるまでの時間の例を示すテーブルである。この例では、送信元装置2では、再送タイムアウトが3秒に固定されているものとする。すなわち、送信元装置2は、パケットの送信後3秒以上経過しなければパケットを再送しない。
FIG. 13 is a table showing an example of the time from when a packet transmitted to the
通信装置10からの再送を行わないと、送信元装置2からの再送は、(A)に示すように、送信から3秒後に1回目の再送が行われる。1回目の再送を行った後でも応答メッセージが得られなければ、次の再送までの待ち時間を、1回目の再送のときの2倍の長さにして、送信元装置2は、最初のパケットの送信から9秒後に、2回目の再送を行う。
If retransmission from the
一方、再送フラグがOFFのパケットについて、判定部36の判定に基づいて再送が行われる場合の待機時間を(B)に示す。ここで、コネクションの応答時間から計算されたRTO計算値は0.12秒であるとする。また、判定部36は、RTO計算値の3倍以内の時間に対向装置6での受信が確認できず、さらに、パケットの再送も行われていない場合、通信装置10がパケットの再送を行うことを決定するものとする。この場合、最初の再送は、最初にパケットを送信した後0.36秒で行われる。また、パケットを最初に送信してから1.08秒後に2回目の再送、2.52秒後に3回目の再送、5.4秒後に4回目の再送が行われる。
On the other hand, the waiting time when retransmission is performed based on the determination of the
従って、応答時間から算出されたRTO計算値に基づいて得られた待機時間に合わせて送信が行われると、(B)に示すように最初にパケットを送信してから10秒以内に4回再送が行われる。一方、通信装置10が再送を行わない場合は、(A)に示すように最初にパケットを送信してから10秒以内に2回までしか再送が行われない。
Therefore, when transmission is performed in accordance with the standby time obtained based on the RTO calculation value calculated from the response time, as shown in (B), the packet is retransmitted four times within 10 seconds from the first transmission. Is done. On the other hand, when the
さらに、再送フラグがONに設定されたコネクションについては、通信装置10は、送信元装置2の再送処理は、パケットが最初に送信されてからRTO計算値の3倍以上経過しないと行われないことを認識している。従って、算出部35は、待機時間を計算する際に(2)式などのVの値を1に設定することができ、(C)に示すようなタイミングで再送が行われる。すると、最初にパケットを送信してから10秒以内に6回再送が行われる。
Further, for a connection for which the retransmission flag is set to ON, the
このように、通信装置10が応答時間に合わせて待機時間を計算し、パケットの送信から待機時間が経過したときにパケットの再送を行うシステムでは、パケットロストが発生しても、早いタイミングで対向装置6に再送が行われる。送信元装置2から送信されたパケットに含まれているデータを対向装置6で動作しているアプリケーションで処理している場合、アプリケーションでのタイムアウトが発生する前にパケットを再送できることが望ましい。通信装置10に格納されているパケットを通信装置10から対向装置6に再送することにより、パケットの再送のタイミングを応答時間に合わせて設定することができる。そのため、応答時間が短い場合は、送信元装置2での再送タイムアウトが固定値になっていたとしても、通信装置10が再送を行うことで、アプリケーションがタイムアウトするまでのリトライ回数を増やすことができる。このような通信装置10は、例えば、クラウドコンピューティングシステムのクライアント装置が所属するネットワークに配置されると、送信元装置2で行われる再送のタイミングが固定であっても、リトライ回数を増やすことができる。
In this way, in the system in which the
さらに、送信元装置2の再送タイムアウトが固定値ではない場合でも通信装置10を用いることにより、リトライ回数を増やすことができる場合がある。例えば、通信装置10で計算される待機時間よりも長い時間待機してから送信元装置2がパケットを再送する場合、通信装置10が送信元装置2に代わってパケットを再送することにより、リトライ回数が増加する。
Further, even when the retransmission timeout of the
<第2の実施形態>
第1の実施形態では、パケットの再送を行うかをコネクションごとに通信装置10が決定する場合について説明したが、本実施形態では、通信装置10での再送を行うかがパケットごとに決定される。従って、通信装置10での再送を行うかは、送信元装置2が対向装置6に対して送信したパケットを再送するたびに判定される。
<Second Embodiment>
In the first embodiment, a case has been described in which the
図14Aと図14Bは、通信装置10がパケットを受信したときに行う動作の例を説明するフローチャートである。ステップS41〜S50の処理は、図11Aと図11Bを参照しながら説明したステップS1〜S10と同様に行われる。次に、判定部36は、送信元装置2から対向装置6に向けて送信されたパケットについて、実タイムアウト時間を求める。実タイムアウト時間は、再送される通信パケットテーブル23に記録されている送信時刻と再送するパケットの送信時刻の差である。判定部36は、実タイムアウト時間を、RTO計算値を用いて得られた待機時間と比較する。(ステップS51)。判定部36は、実タイムアウト時間が待機時間以下の場合、再送フラグを「OFF」に設定する(ステップS52)。一方、実タイムアウト時間が待機時間より長い場合、判定部36は、再送フラグを「ON」に設定する(ステップS53)。ステップS54〜S62の処理は、ステップS13〜S21と同様である。
14A and 14B are flowcharts illustrating an example of an operation performed when the
本実施形態では、通信装置10での再送を行うかは、待機時間が経過するたびに判定されるので、例えば、誤って再送フラグが「ON」に設定されたとしても、判定部36は、次のパケットについて再送を行うかを判定するときに再送フラグの設定を修正できる
なお、本発明は上記の実施形態に限られるものではなく、様々に変形可能である。例えば、直結機器検出部31は、受信パケットのMACアドレスを用いて、送信元の装置が直結装置であるかを確認することもできる。この場合、直結機器検出部31は、受信パケットのイーサネットヘッダを確認する。
In the present embodiment, whether or not to perform retransmission in the
上述の第1、第2の実施形態を含む各実施形態に対し、さらに以下の付記を開示する。
(付記1)
対向装置宛ての第1および第2のパケットを送信し、前記対向装置での受信が確認できないパケットを前記対向装置に再送する送信元装置から、前記第1および第2のパケットを受信する受信部と、
前記第1および第2のパケットを記憶する記憶部と、
前記第1および第2のパケットを前記対向装置に送信する送信部と、
前記送信部が前記第1のパケットを前記対向装置に送信した時刻から、前記対向装置での前記第1のパケットの受信を通知する第1の応答メッセージを前記受信部が受信した時刻までの時間である応答時間を測定する測定部と、
前記送信部が前記第2のパケットを前記対向装置に送信した時刻から、前記応答時間より長い時間が経過しても、前記受信部が前記対向装置での前記第2のパケットの受信を通知する第2の応答メッセージを受信せず、かつ、前記送信元装置から前記第2のパケットを再送したパケットである再送パケットも受信しない場合、前記記憶部から前記第2のパケットを取得すると共に、前記送信部に、前記第2のパケットを前記対向装置に再度送信させる再送部
を備えることを特徴とする通信装置。
(付記2)
前記送信部が前記第2のパケットを前記対向装置に送信した時刻から、前記応答時間より長い時間が経過しても、前記受信部が前記第2の応答メッセージと前記再送パケットのいずれも受信しない場合、前記第2のパケット以降に前記送信元装置から受信した前記対向装置宛のパケットは前記再送部が再送する対象であると判定するとともに、前記送信元装置を対象装置に指定する判定部と、
前記対象装置から前記第2のパケットの後に送信された第3のパケットが前記送信部から送信された時刻から前記第3のパケットの再送を前記送信部に指示する時刻までの、前記再送部が待機する時間である待機時間を算出する算出部をさらに備え、
前記第3のパケットに対する応答メッセージを、前記第3のパケットが前記送信部から送信された時刻から前記待機時間が経過しても受信しない場合、前記再送部は前記第3のパケットを前記対向装置に送信する
ことを特徴とする付記1に記載の通信装置。
(付記3)
前記第3のパケットが前記送信部から前記対向装置に向けて送信された時刻から、前記送信元装置から再送された前記第3のパケットを前記受信部が受信するまでの時間が、前記待機時間よりも短い場合、前記判定部は、前記送信元装置が前記対象装置ではなくなったと判定する
ことを特徴とする付記2に記載の通信装置。
(付記4)
前記送信元装置から前記対向装置へのデータの送信に用いられるコネクションの確立を検出すると共に、前記コネクションを介して送信されたパケットに含まれるデータの次に前記コネクションを介して送信されるデータを特定する第1の値を、前記コネクションと対応付けてコネクションテーブルに記録するコネクション検出部を備え、
前記再送部は前記コネクションを介して送信される前記対向装置宛のパケットとして、前記受信部で受信されたパケットに含まれているデータの次に前記コネクションを介して送信されるデータを特定する第2の値が前記コネクションテーブルに記録されている値以下の場合、前記第2の値で特定されるデータを含むパケットが前記送信元装置から再送されたと認識する
ことを特徴とする付記2もしくは3に記載の通信装置。
(付記5)
前記コネクション検出部は、前記コネクションテーブルに記録されている第1のコネクションを介して送受信されるパケットに含まれている制御ビットを確認することにより、前記第1のコネクションを介した通信の終了を検出すると、前記コネクションテーブルから前記第1のコネクションに関するエントリを削除する
ことを特徴とする付記4に記載の通信装置。
(付記6)
前記受信部が応答メッセージを受信すると、前記記憶部は、受信された応答メッセージに対応するパケットを削除する
ことを特徴とする付記1〜5のいずれか1項に記載の通信装置。
(付記7)
対向装置宛ての第1および第2のパケットを送信し、前記対向装置での受信が確認できないパケットを前記対向装置に再送する送信元装置から、前記第1および第2のパケットを受信し、
前記第1および第2のパケットを記憶し、
前記第1および第2のパケットを前記対向装置に送信し、
前記第1のパケットを前記対向装置に送信した時刻から、前記対向装置での前記第1のパケットの受信を通知する第1の応答メッセージを受信した時刻までの間の時間である応答時間を測定し、
前記第2のパケットを前記対向装置に送信した時刻から、前記応答時間より長い時間が経過しても、前記対向装置での前記第2のパケットの受信を通知する第2の応答メッセージを受信せず、かつ、前記送信元装置から前記第2のパケットを再送したパケットである再送パケットも受信しない場合、前記第2のパケットを前記対向装置に再度送信する
処理を、前記送信元装置から送信された前記対向装置宛のパケットを中継する通信装置が実行することを特徴とする通信方法。
(付記8)
対向装置宛ての第1および第2のパケットを送信し、前記対向装置での受信が確認できないパケットを前記対向装置に再送する送信元装置から、前記第1および第2のパケットを受信し、
前記第1および第2のパケットを記憶し、
前記第1および第2のパケットを前記対向装置に送信し、
前記第1のパケットを前記対向装置に送信した時刻から、前記対向装置での前記第1のパケットの受信を通知する第1の応答メッセージを受信した時刻までの間の時間である応答時間を測定し、
前記第2のパケットを前記対向装置に送信した時刻から、前記応答時間より長い時間が経過しても、前記対向装置での前記第2のパケットの受信を通知する第2の応答メッセージを受信せず、かつ、前記送信元装置から前記第2のパケットを再送したパケットである再送パケットも受信しない場合、前記第2のパケットを前記対向装置に再度送信する
処理をコンピュータに実行させることを特徴とする通信プログラム。
The following additional notes are further disclosed for each of the embodiments including the first and second embodiments described above.
(Appendix 1)
A receiving unit that receives the first and second packets from a transmission source device that transmits the first and second packets addressed to the opposite device and retransmits a packet that cannot be confirmed by the opposite device to the opposite device. When,
A storage unit for storing the first and second packets;
A transmitter for transmitting the first and second packets to the opposite device;
Time from the time when the transmission unit transmits the first packet to the opposite device to the time when the reception unit receives the first response message notifying the reception of the first packet at the opposite device A measurement unit for measuring the response time,
Even if a time longer than the response time elapses from the time when the transmission unit transmits the second packet to the opposite device, the reception unit notifies the reception of the second packet by the opposite device. When not receiving a second response message and not receiving a retransmission packet that is a packet obtained by retransmitting the second packet from the transmission source device, the second packet is acquired from the storage unit, and A communication apparatus comprising: a retransmission unit that causes the transmission unit to transmit the second packet to the opposite device again.
(Appendix 2)
Even if a time longer than the response time elapses from the time when the transmission unit transmits the second packet to the opposite apparatus, the reception unit receives neither the second response message nor the retransmission packet. A packet addressed to the opposite device received from the transmission source device after the second packet is determined to be a target to be retransmitted by the retransmission unit, and a determination unit that designates the transmission source device as a target device; ,
The retransmission unit from the time when the third packet transmitted after the second packet from the target device is transmitted from the transmission unit to the time when the transmission unit is instructed to retransmit the third packet. A calculation unit for calculating a waiting time that is a waiting time;
If the response message for the third packet is not received even after the waiting time has elapsed from the time when the third packet was transmitted from the transmission unit, the retransmission unit receives the third packet as the opposite device. The communication apparatus according to
(Appendix 3)
The time from when the third packet is transmitted from the transmission unit to the opposite device until the reception unit receives the third packet retransmitted from the transmission source device is the waiting time. The communication device according to
(Appendix 4)
The establishment of a connection used for data transmission from the transmission source device to the opposite device is detected, and data transmitted via the connection is next to data included in a packet transmitted via the connection. A connection detection unit that records a first value to be identified in the connection table in association with the connection;
The retransmission unit specifies data transmitted via the connection next to data included in the packet received by the reception unit as a packet addressed to the opposite device transmitted via the connection. When the value of 2 is less than or equal to the value recorded in the connection table, it is recognized that the packet including the data specified by the second value is retransmitted from the transmission source device. The communication apparatus as described in.
(Appendix 5)
The connection detection unit confirms the end of communication via the first connection by checking a control bit included in a packet transmitted / received via the first connection recorded in the connection table. If detected, the entry related to the first connection is deleted from the connection table.
(Appendix 6)
The communication device according to any one of
(Appendix 7)
Receiving the first and second packets from a transmission source device that transmits first and second packets addressed to the opposite device, and retransmits a packet that cannot be confirmed by the opposite device to the opposite device;
Storing the first and second packets;
Sending the first and second packets to the opposite device;
Measure response time, which is the time between the time when the first packet is transmitted to the opposite device and the time when the first response message for notifying the reception of the first packet at the opposite device is received. And
Even if a time longer than the response time has elapsed since the time when the second packet was transmitted to the opposite device, a second response message for notifying the reception of the second packet by the opposite device should be received. In addition, when the retransmission packet which is a packet obtained by retransmitting the second packet is not received from the transmission source device, a process of transmitting the second packet to the opposite device again is transmitted from the transmission source device. And a communication apparatus that relays the packet addressed to the opposite apparatus.
(Appendix 8)
Receiving the first and second packets from a transmission source device that transmits first and second packets addressed to the opposite device, and retransmits a packet that cannot be confirmed by the opposite device to the opposite device;
Storing the first and second packets;
Sending the first and second packets to the opposite device;
Measure response time, which is the time between the time when the first packet is transmitted to the opposite device and the time when the first response message for notifying the reception of the first packet at the opposite device is received. And
Even if a time longer than the response time has elapsed since the time when the second packet was transmitted to the opposite device, a second response message for notifying the reception of the second packet by the opposite device should be received. And, when a retransmission packet that is a packet obtained by retransmitting the second packet is not received from the transmission source device, the computer is caused to execute a process of retransmitting the second packet to the opposite device. Communication program.
2 送信元装置
4 WAN
6 対向装置
10 通信装置
11 受信部
12 送信部
13 ルーチング部
14 タイマ
20 記憶部
21 直結機器テーブル
22 コネクションテーブル
23 通信パケットテーブル
24 ルーティングテーブル
30 再送代替部
31 直結機器検出部
32 コネクション検出部
33 通信パケット確認部
34 測定部
35 算出部
36 判定部
37 再送部
2
6 Opposing
Claims (7)
前記第1および第2のパケットを記憶する記憶部と、
前記第1および第2のパケットを前記対向装置に送信する送信部と、
前記送信部が前記第1のパケットを前記対向装置に送信した時刻から、前記対向装置での前記第1のパケットの受信を通知する第1の応答メッセージを前記受信部が受信した時刻までの時間である応答時間を測定する測定部と、
前記送信部が前記第2のパケットを前記対向装置に送信した時刻から、前記応答時間より長い時間が経過しても、前記受信部が前記対向装置での前記第2のパケットの受信を通知する第2の応答メッセージを受信せず、かつ、前記送信元装置から前記第2のパケットを再送したパケットである再送パケットも受信しない場合、前記記憶部から前記第2のパケットを取得すると共に、前記送信部に、前記第2のパケットを前記対向装置に再度送信させる再送部と、
前記送信元装置から前記再送パケットを受信すると、前記再送パケットの受信時刻と前記第2のパケットを送信した時刻の差である実タイムアウト時間が、前記第2のパケットの送信から前記第2のパケットの再送を前記送信部に指示する時刻までの待機時間より長い場合、前記第2のパケット以降に前記送信元装置から受信した前記対向装置宛のパケットが再送処理の対象であると判定する判定部
を備えることを特徴とする通信装置。 A receiving unit that receives the first and second packets from a transmission source device that transmits the first and second packets addressed to the opposite device and retransmits a packet that cannot be confirmed by the opposite device to the opposite device. When,
A storage unit for storing the first and second packets;
A transmitter for transmitting the first and second packets to the opposite device;
Time from the time when the transmission unit transmits the first packet to the opposite device to the time when the reception unit receives the first response message notifying the reception of the first packet at the opposite device A measurement unit for measuring the response time,
Even if a time longer than the response time elapses from the time when the transmission unit transmits the second packet to the opposite device, the reception unit notifies the reception of the second packet by the opposite device. When not receiving a second response message and not receiving a retransmission packet that is a packet obtained by retransmitting the second packet from the transmission source device, the second packet is acquired from the storage unit, and A retransmission unit that causes the transmission unit to transmit the second packet to the opposite device again ;
When the retransmission packet is received from the transmission source device, an actual time-out time that is a difference between the reception time of the retransmission packet and the time of transmission of the second packet is determined from the transmission of the second packet to the second packet. A determination unit that determines that a packet addressed to the opposite device received from the transmission source device after the second packet is a target of a retransmission process when the retransmission time is longer than a standby time until a time instructing the transmission unit to transmit A communication apparatus comprising:
前記第1および第2のパケットを記憶する記憶部と、
前記第1および第2のパケットを前記対向装置に送信する送信部と、
前記送信部が前記第1のパケットを前記対向装置に送信した時刻から、前記対向装置での前記第1のパケットの受信を通知する第1の応答メッセージを前記受信部が受信した時刻までの時間である応答時間を測定する測定部と、
前記送信部が前記第2のパケットを前記対向装置に送信した時刻から、前記応答時間より長い時間が経過しても、前記受信部が前記対向装置での前記第2のパケットの受信を通知する第2の応答メッセージを受信せず、かつ、前記送信元装置から前記第2のパケットを再送したパケットである再送パケットも受信しない場合、前記記憶部から前記第2のパケットを取得すると共に、前記送信部に、前記第2のパケットを前記対向装置に再度送信させる再送部と、
前記送信部が前記第2のパケットを前記対向装置に送信した時刻から、前記応答時間より長い時間が経過しても、前記受信部が前記第2の応答メッセージと前記再送パケットのいずれも受信しない場合、前記第2のパケット以降に前記送信元装置から受信した前記対向装置宛のパケットが再送処理の対象であると判定するとともに、前記送信元装置を対象装置に指定する判定部と、
前記対象装置から前記第2のパケットの後に送信された第3のパケットが前記送信部から送信された時刻から前記第3のパケットの再送を前記送信部に指示する時刻までの、前記再送部が待機する時間である待機時間を算出する算出部を備え、
前記第3のパケットに対する応答メッセージを、前記第3のパケットが前記送信部から送信された時刻から前記待機時間が経過しても受信しない場合、前記再送部は前記送信部に、前記第3のパケットを前記対向装置に送信させる
ことを特徴とする通信装置。 A receiving unit that receives the first and second packets from a transmission source device that transmits the first and second packets addressed to the opposite device and retransmits a packet that cannot be confirmed by the opposite device to the opposite device. When,
A storage unit for storing the first and second packets;
A transmitter for transmitting the first and second packets to the opposite device;
Time from the time when the transmission unit transmits the first packet to the opposite device to the time when the reception unit receives the first response message notifying the reception of the first packet at the opposite device A measurement unit for measuring the response time,
Even if a time longer than the response time elapses from the time when the transmission unit transmits the second packet to the opposite device, the reception unit notifies the reception of the second packet by the opposite device. When not receiving a second response message and not receiving a retransmission packet that is a packet obtained by retransmitting the second packet from the transmission source device, the second packet is acquired from the storage unit, and A retransmission unit that causes the transmission unit to transmit the second packet to the opposite device again;
Even if a time longer than the response time elapses from the time when the transmission unit transmits the second packet to the opposite apparatus, the reception unit receives neither the second response message nor the retransmission packet. A determination unit that determines that a packet addressed to the opposite device received from the transmission source device after the second packet is a target of retransmission processing, and designates the transmission source device as a target device;
The retransmission unit from the time when the third packet transmitted after the second packet from the target device is transmitted from the transmission unit to the time when the transmission unit is instructed to retransmit the third packet. for example Bei the calculation unit for calculating the waiting time is the time to wait,
A response message to said third packet, when the third packet is not received even after the standby time from the time transmitted from the transmitting unit, the retransmission unit in the transmitting unit, the third packet you characterized in that Ru is transmitted to the counter device communication device.
ことを特徴とする請求項2に記載の通信装置。 The time from when the third packet is transmitted from the transmission unit to the opposite device until the reception unit receives the third packet retransmitted from the transmission source device is the waiting time. The communication device according to claim 2, wherein the determination unit determines that the transmission source device is no longer the target device.
前記再送部は前記コネクションを介して送信される前記対向装置宛のパケットとして、前記受信部で受信されたパケットに含まれているデータの次に前記コネクションを介して送信されるデータを特定する第2の値が前記コネクションテーブルに記録されている値以下の場合、前記第2の値で特定されるデータを含むパケットが前記送信元装置から再送されたと認識する
ことを特徴とする請求項2もしくは3に記載の通信装置。 The establishment of a connection used for data transmission from the transmission source device to the opposite device is detected, and data transmitted via the connection is next to data included in a packet transmitted via the connection. A connection detection unit that records a first value to be identified in the connection table in association with the connection;
The retransmission unit specifies data transmitted via the connection next to data included in the packet received by the reception unit as a packet addressed to the opposite device transmitted via the connection. 3. When the value of 2 is less than or equal to the value recorded in the connection table, it is recognized that a packet including data specified by the second value is retransmitted from the transmission source device. 3. The communication device according to 3.
ことを特徴とする請求項4に記載の通信装置。 The connection detection unit confirms the end of communication via the first connection by checking a control bit included in a packet transmitted / received via the first connection recorded in the connection table. The communication apparatus according to claim 4, wherein when detected, an entry related to the first connection is deleted from the connection table.
前記第1および第2のパケットを記憶し、
前記第1および第2のパケットを前記対向装置に送信し、
前記第1のパケットを前記対向装置に送信した時刻から、前記対向装置での前記第1のパケットの受信を通知する第1の応答メッセージを受信した時刻までの間の時間である応答時間を測定し、
前記第2のパケットを前記対向装置に送信した時刻から、前記応答時間より長い時間が経過しても、前記対向装置での前記第2のパケットの受信を通知する第2の応答メッセージを受信せず、かつ、前記送信元装置から前記第2のパケットを再送したパケットである再送パケットも受信しない場合、前記第2のパケットを前記対向装置に再度送信し、
前記送信元装置から前記再送パケットを受信すると、前記再送パケットの受信時刻と前記第2のパケットを送信した時刻の差である実タイムアウト時間が、前記第2のパケットの送信から前記第2のパケットを再送する時刻までの待機時間より長い場合、前記第2のパケット以降に前記送信元装置から受信した前記対向装置宛のパケットは再送処理の対象であると判定する
処理を、前記送信元装置から送信された前記対向装置宛のパケットを中継する通信装置が実行することを特徴とする通信方法。 Receiving the first and second packets from a transmission source device that transmits first and second packets addressed to the opposite device, and retransmits a packet that cannot be confirmed by the opposite device to the opposite device;
Storing the first and second packets;
Sending the first and second packets to the opposite device;
Measure response time, which is the time between the time when the first packet is transmitted to the opposite device and the time when the first response message for notifying the reception of the first packet at the opposite device is received. And
Even if a time longer than the response time has elapsed since the time when the second packet was transmitted to the opposite device, a second response message for notifying the reception of the second packet by the opposite device should be received. not, and, when said from the source device does not even receive the retransmission packet is the second packet retransmission packet, sends again the second packet to the opposite apparatus,
When the retransmission packet is received from the transmission source device, an actual time-out time that is a difference between the reception time of the retransmission packet and the time of transmission of the second packet is determined from the transmission of the second packet to the second packet. If the transmission time is longer than the waiting time until the time to retransmit the packet, a process for determining that a packet addressed to the opposite device received from the transmission source device after the second packet is a target of retransmission processing is performed from the transmission source device. A communication method executed by a communication device that relays a packet addressed to the opposite device.
前記第1および第2のパケットを記憶し、
前記第1および第2のパケットを前記対向装置に送信し、
前記第1のパケットを前記対向装置に送信した時刻から、前記対向装置での前記第1のパケットの受信を通知する第1の応答メッセージを受信した時刻までの間の時間である応答時間を測定し、
前記第2のパケットを前記対向装置に送信した時刻から、前記応答時間より長い時間が経過しても、前記対向装置での前記第2のパケットの受信を通知する第2の応答メッセージを受信せず、かつ、前記送信元装置から前記第2のパケットを再送したパケットである再送パケットも受信しない場合、前記第2のパケットを前記対向装置に再度送信し、
前記送信元装置から前記再送パケットを受信すると、前記再送パケットの受信時刻と前記第2のパケットを送信した時刻の差である実タイムアウト時間が、前記第2のパケットの送信から前記第2のパケットを再送する時刻までの待機時間より長い場合、前記第2のパケット以降に前記送信元装置から受信した前記対向装置宛のパケットは再送処理の対象であると判定する
処理をコンピュータに実行させることを特徴とする通信プログラム。 Receiving the first and second packets from a transmission source device that transmits first and second packets addressed to the opposite device, and retransmits a packet that cannot be confirmed by the opposite device to the opposite device;
Storing the first and second packets;
Sending the first and second packets to the opposite device;
Measure response time, which is the time between the time when the first packet is transmitted to the opposite device and the time when the first response message for notifying the reception of the first packet at the opposite device is received. And
Even if a time longer than the response time has elapsed since the time when the second packet was transmitted to the opposite device, a second response message for notifying the reception of the second packet by the opposite device should be received. not, and, when said from the source device does not even receive the retransmission packet is the second packet retransmission packet, sends again the second packet to the opposite apparatus,
When the retransmission packet is received from the transmission source device, an actual time-out time that is a difference between the reception time of the retransmission packet and the time of transmission of the second packet is determined from the transmission of the second packet to the second packet. If it is longer than the waiting time until the time to retransmit the packet , the computer is caused to execute processing for determining that a packet addressed to the opposite device received from the transmission source device after the second packet is a target of retransmission processing. A featured communication program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011005882A JP5680978B2 (en) | 2011-01-14 | 2011-01-14 | COMMUNICATION DEVICE, COMMUNICATION METHOD, AND COMMUNICATION PROGRAM |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011005882A JP5680978B2 (en) | 2011-01-14 | 2011-01-14 | COMMUNICATION DEVICE, COMMUNICATION METHOD, AND COMMUNICATION PROGRAM |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012147377A JP2012147377A (en) | 2012-08-02 |
JP5680978B2 true JP5680978B2 (en) | 2015-03-04 |
Family
ID=46790458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011005882A Expired - Fee Related JP5680978B2 (en) | 2011-01-14 | 2011-01-14 | COMMUNICATION DEVICE, COMMUNICATION METHOD, AND COMMUNICATION PROGRAM |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5680978B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10291365B2 (en) * | 2016-12-29 | 2019-05-14 | X Development Llc | Efficient automatic repeat request for free space optical communication |
CN111010362B (en) * | 2019-03-20 | 2021-09-21 | 新华三技术有限公司 | Monitoring method and device for abnormal host |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1146217A (en) * | 1997-07-28 | 1999-02-16 | Nippon Telegr & Teleph Corp <Ntt> | Radio packet re-transmission method |
JP2002330168A (en) * | 2001-05-07 | 2002-11-15 | Nec Corp | Method for setting retransfer timeout time in communication system |
JP4214793B2 (en) * | 2003-02-19 | 2009-01-28 | 日本電気株式会社 | Wireless communication system, server, base station, mobile terminal, and retransmission timeout time determination method used for them |
-
2011
- 2011-01-14 JP JP2011005882A patent/JP5680978B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2012147377A (en) | 2012-08-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7502860B1 (en) | Method and apparatus for client-side flow control in a transport protocol | |
US7738495B2 (en) | Method of determining a maximum transmission unit value of a network path using transport layer feedback | |
US8260935B2 (en) | Error control terminal discovery and updating | |
US8583831B2 (en) | Thin client discovery | |
US8174964B2 (en) | Detecting unavailable network connections | |
US7496038B2 (en) | Method for faster detection and retransmission of lost TCP segments | |
JP5867188B2 (en) | Information processing apparatus, congestion control method, and congestion control program | |
JP5935940B2 (en) | COMMUNICATION METHOD, COMMUNICATION DEVICE, AND COMMUNICATION PROGRAM | |
JP2005287045A (en) | Method for discovery of device connected to ip network and device to carry out the method | |
WO2014037760A1 (en) | Method and system for increasing data flow transmission | |
US11677675B2 (en) | Method and system for determining a path maximum transmission unit (MTU) between endpoints of a generic routing encapsulation (GRE) tunnel | |
CN108234087B (en) | Data transmission method and sending end | |
JP2009525708A (en) | Protocol link layer | |
EP2922241B1 (en) | Methods and apparatus to determine network delay with location independence from retransmission delay and application response time | |
US7535916B2 (en) | Method for sharing a transport connection across a multi-processor platform with limited inter-processor communications | |
JP5680978B2 (en) | COMMUNICATION DEVICE, COMMUNICATION METHOD, AND COMMUNICATION PROGRAM | |
CN108234089B (en) | Method and system for low latency communication | |
US9172654B2 (en) | Transfer device and transfer method | |
JP5662779B2 (en) | Communication system and node device | |
US20210359787A1 (en) | Communication protocol packet retransmission | |
WO2004071027A1 (en) | Methods and systems for non-disruptive physical address resolution | |
JP2016019198A (en) | Communication apparatus, control method for communication apparatus, and program | |
WO2018202282A1 (en) | Device and method for monitoring a tcp connection | |
US9172774B2 (en) | Technique for managing communications at a router | |
US20170195085A1 (en) | Transmission control protocol segment recovery |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130926 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20140718 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20140805 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20140919 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150106 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150108 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5680978 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |