JP2011259007A - Packet transfer method and packet transfer device with load balance function - Google Patents
Packet transfer method and packet transfer device with load balance function Download PDFInfo
- Publication number
- JP2011259007A JP2011259007A JP2010129016A JP2010129016A JP2011259007A JP 2011259007 A JP2011259007 A JP 2011259007A JP 2010129016 A JP2010129016 A JP 2010129016A JP 2010129016 A JP2010129016 A JP 2010129016A JP 2011259007 A JP2011259007 A JP 2011259007A
- Authority
- JP
- Japan
- Prior art keywords
- transfer
- value
- packet
- destination
- transfer device
- 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.)
- Granted
Links
- 238000012546 transfer Methods 0.000 title claims abstract description 634
- 238000000034 method Methods 0.000 title description 35
- 238000004891 communication Methods 0.000 abstract description 59
- 238000012545 processing Methods 0.000 abstract description 12
- 238000000605 extraction Methods 0.000 description 38
- 238000010187 selection method Methods 0.000 description 18
- 239000000284 extract Substances 0.000 description 16
- 230000005540 biological transmission Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 7
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002620 method output Methods 0.000 description 1
Images
Abstract
Description
本発明は、ロードバランス機能を備えたパケット転送装置、特にパケットに対して適切な転送先が2つ以上ある場合に、それらの転送先の中から1つの転送先を選択することにより、ロードバランス機能を実現する転送装置に関するものである。 The present invention relates to a packet transfer apparatus having a load balance function, and particularly when there are two or more appropriate transfer destinations for a packet, by selecting one transfer destination from these transfer destinations, load balancing is achieved. The present invention relates to a transfer device that realizes a function.
IPネットワークでは、ネットワーク上の転送装置にルーティングテーブルを用意している。ルーティングテーブルは、ネットワーク上にある宛先アドレスと、そのルーティングテーブルを保持している転送装置からみて宛先アドレスがある装置へのネットワーク上の最短経路の方向を示す転送先と、の対応関係を示した表である。各転送装置は、パケットを受信すると、そのパケットの宛先アドレスをもとにルーティングテーブルを検索する。そして、各転送装置は、検索によって得られた転送先へパケットを転送する。この処理が各転送装置においておこなわれることにより、パケットは、最終的に宛先アドレスの装置へ到着する。 In an IP network, a routing table is prepared for a transfer device on the network. The routing table shows the correspondence between the destination address on the network and the forwarding destination that indicates the direction of the shortest path on the network to the device with the destination address when viewed from the forwarding device that holds the routing table. It is a table. When each transfer device receives a packet, it searches the routing table based on the destination address of the packet. Each transfer device transfers the packet to the transfer destination obtained by the search. By performing this processing in each transfer device, the packet finally arrives at the device at the destination address.
IPネットワークは、転送装置および回線が冗長に用意され適切に配置されることによって、ネットワーク上の転送装置や回線に障害が起こっても通信を維持することができように、構成されている。転送装置や回線に障害が発生した場合には、各転送装置がその障害を検出し、障害を迂回した経路の方向を示す転送先にルーティングテーブルを書き換えることによって、通信が維持される。 The IP network is configured so that communication can be maintained even if a failure occurs in a transfer device or a line on the network by providing a transfer device and a line redundantly and appropriately arranged. When a failure occurs in the transfer device or the line, each transfer device detects the failure, and the communication is maintained by rewriting the routing table to the transfer destination indicating the direction of the route that bypasses the failure.
さらに、冗長な転送装置や回線を、通常の通信経路と同等の性能および機能で通信できるように配置することにより、障害がない間には、通常の転送装置および回線と、冗長な転送装置および回線と、の両方を使って通信をすることができる。その結果、障害がない場合にも、冗長な転送装置や回線をパケット転送に活用することができる。 Furthermore, by arranging redundant transfer devices and lines so that they can communicate with the same performance and function as normal communication paths, normal transfer devices and lines, redundant transfer devices and It is possible to communicate using both lines. As a result, even when there is no failure, a redundant transfer device or line can be used for packet transfer.
通常の転送装置および回線と、冗長な転送装置および回線と、の両方を使って通信するネットワークにおいては、ネットワーク上のどこかの転送装置において、宛先アドレスに対する転送先として、通常の転送装置および回線を使用する経路(以下「通常経路」という)の転送先と、冗長な転送装置および回線を使用する経路(以下「冗長経路」という)の転送先と、の2つ以上の転送先がある。その転送装置おいて、通常経路の転送先と冗長経路の転送先とにパケットを分配することにより、ネットワークにおいて転送負荷が分散される。なお、「ルーティングテーブルの宛先アドレスに対応する転送先が2つ以上あること」、および「転送先が2つ以上ある宛先アドレスのエントリと、2つ以上の転送先と、からなる集合のこと」を「マルチパス」と呼ぶ。また、マルチパスである宛先アドレスを有するパケットを複数の転送先へ分配し、転送負荷を分散させることを、「ロードバランス」と呼ぶ。 In a network that uses both a normal transfer device and line and a redundant transfer device and line for communication, the normal transfer device and line as a transfer destination for a destination address in any transfer device on the network There are two or more transfer destinations: a transfer destination using a route (hereinafter referred to as “normal route”) and a transfer destination using a redundant transfer device and a line (hereinafter referred to as “redundant route”). In the transfer device, by distributing the packet to the transfer destination of the normal route and the transfer destination of the redundant route, the transfer load is distributed in the network. Note that “there are two or more transfer destinations corresponding to the destination address in the routing table” and “a set of two or more transfer destination entries and two or more transfer destinations” Is called “multipath”. Distributing a packet having a multipath destination address to a plurality of transfer destinations to distribute the transfer load is called “load balance”.
マルチパスに従ってロードバランスを実現する方法として、通信フローの識別に使えるフィールドの値をパケットから抽出し、その値からハッシュ関数を用いて値を求め、この値をもとにマルチパスから転送先を選択する方法が、非特許文献1に記載されている。なお、「ハッシュ関数」とは、入力値に対して、有限個の出力値の中の一つを一義的に割り当てて出力する関数であり、さまざまな入力値に対してできるかぎり有限個の出力値が均等に割り当てられるように出力値を決定する関数である。
As a method of realizing load balancing according to multipath, field values that can be used to identify communication flows are extracted from packets, values are obtained from the values using a hash function, and transfer destinations are determined from multipaths based on these values. A method of selecting is described in
非特許文献1のロードバランスの方法によれば、ハッシュ関数の無作為性により、マルチパスの各転送先へパケットが公平に分散して転送される。また、パケットのフィールドの値に基づいて転送先が決定されるため、同じ通信フローのパケットは同じ経路を通る。そして、非特許文献1のロードバランスの方法によれば、通信フローと転送先の対応を記憶する必要がないため、装置の設計が単純になる。
According to the load balancing method of
しかし、非特許文献1の方法では、通信経路上にある転送装置の2台以上がマルチパスであるネットワークにおいて、すべての転送装置が同じハッシュ関数を有する場合に、マルチパスの各転送先へ分配されるパケットが均等にならない。
However, in the method of Non-Patent
この通信の偏りを解決する方法として、特許文献1の技術がある。特許文献1の技術においては、転送装置の転送先決定方法を、ネットワーク管理者が転送装置ごとに個別に設定できる。その結果、各転送装置における転送先決定方法がいずれもハッシュ関数を使用するものであっても、ネットワークにおいて、マルチパスによるロードバランス機能が動く。
As a method for solving this communication bias, there is a technique of
しかし、この技術においては、ネットワーク管理者の負担が大きい。すなわち、ネットワーク管理者は、通信が発生するはずの全端末間の通信について、通信経路上にマルチパスとなる転送装置が2台以上あるかどうか調査し、該当する2台の組み合わせすべてについて、可能な限り異なるような転送先選択方法を各転送装置について決定しなければならない。 However, this technique places a heavy burden on the network administrator. In other words, the network administrator investigates whether there are two or more transfer devices that are multipaths on the communication path for communication between all terminals that should be able to generate communication. A transfer destination selection method that is as different as possible must be determined for each transfer device.
また、特許文献1の技術では、隣接した転送装置の間で通信し、自動的に異なる転送先決定方法を選択するように調停する方法が提案されている。この技術によれば、ネットワーク管理者が転送装置に転送先決定方法を設定しなくとも、自動的に転送装置間で転送先選択方法が調停され、異なる転送先選択方法を採用するプロトコルが用いられる。その結果、マルチパスによるロードバランスが実現される。
Further, in the technique of
しかし、上記の技術においては、転送先決定方法を選択するためのプロトコルを用意する必要があり、転送装置の構成および処理が複雑になる。 However, in the above technique, it is necessary to prepare a protocol for selecting a transfer destination determination method, which complicates the configuration and processing of the transfer apparatus.
本発明が解決しようとする課題は、マルチパスの転送先の選択において、同じ通信フローのパケットは転送先が同じになる利点を残しつつ、簡易な処理で通信の偏りをなくすことである。 The problem to be solved by the present invention is to eliminate the bias of communication by simple processing while retaining the advantage that packets of the same communication flow have the same transfer destination in selecting a multipath transfer destination.
[適用例1]
ネットワークを介して受信したパケットを、前記ネットワークに接続された他の装置に、前記ネットワークを介して転送する転送装置であって、
パケットの宛先と対応づけて転送先としての前記他の装置を1以上格納するルーティングテーブルと、
パケットのフローの識別に用いることができるパケットの第1のフィールドの値を入力値とする2以上のハッシュ関数であって、同一の入力値に対して異なる出力値を出力する2以上のハッシュ関数と、
前記受信したパケットのそれまでの転送回数または残り転送可能回数を表す第2のフィールドの値に応じて、前記2以上のハッシュ関数のうちの一つのハッシュ関数を選択するハッシュ関数選択部と、
前記ルーティングテーブルにおいて、前記受信したパケットの宛先と対応づけられた転送先が2以上ある場合に、前記受信したパケットの前記第1のフィールドの値を入力値とする、前記選択されたハッシュ関数の出力値に基づいて、前記2以上の転送先の中から前記受信したパケットの転送先を選択する転送先選択部と、を備える転送装置。
[Application Example 1]
A transfer device for transferring a packet received via a network to another device connected to the network via the network;
A routing table that stores one or more other devices as transfer destinations in association with packet destinations;
Two or more hash functions that use the value of the first field of the packet that can be used to identify the flow of the packet as input values, and that output different output values for the same input value When,
A hash function selection unit that selects one hash function of the two or more hash functions according to the value of the second field representing the number of times the received packet has been transferred so far or the remaining number of times that transfer is possible;
In the routing table, when there are two or more transfer destinations associated with the destination of the received packet, the value of the first field of the received packet is used as an input value. And a transfer destination selection unit that selects a transfer destination of the received packet from the two or more transfer destinations based on an output value.
パケットがネットワークにおいて転送される際、1回転送されるたびに、第2のフィールドの値は、変化する。このため、上記のような態様の転送装置が複数含まれるネットワークにおいて、パケットが転送される場合には、そのパケットは、複数の転送装置で順に転送される際に、毎回同じハッシュ関数を使用されて転送先を決定されるのではなく、異なるハッシュ関数を使用されて転送先を決定される。このため、上記の態様によれば、自動的に、かつ簡易な処理で、ネットワークにおける通信の偏りをなくすことができる。 When a packet is transferred in the network, the value of the second field changes each time it is transferred. For this reason, when a packet is transferred in a network including a plurality of transfer devices having the above-described mode, the same hash function is used each time the packets are sequentially transferred by the plurality of transfer devices. Instead of determining the transfer destination, a different hash function is used to determine the transfer destination. For this reason, according to said aspect, the communication bias in a network can be eliminated automatically and with a simple process.
一方で、各転送装置においては、各ハッシュ関数は、パケットのフローの識別に用いることができる第1のフィールドの値を入力値とする。このため、ある転送装置においては、同じフローの異なるパケットは、それまでに同じ経路を転送されてきたパケットである限り、どれも同じ転送先が割り当てられる。よって、同じ通信フローのパケットは転送先が同じになる。 On the other hand, in each transfer device, each hash function uses the value of the first field that can be used to identify the flow of the packet as an input value. For this reason, in a certain transfer device, as long as different packets of the same flow are packets that have been transferred through the same route, the same transfer destination is assigned to them. Therefore, the packets with the same communication flow have the same transfer destination.
なお、「第2のフィールドの値に応じて」とは、第2のフィールドの値が第1の値であるときに選択されるハッシュ関数と、第2のフィールドの値が第1の値とは異なる第2の値であるときに選択されるハッシュ関数と、が異なるような、第1の値と第2の値が存在する選択方法を意味する。 Note that “according to the value of the second field” means that the hash function selected when the value of the second field is the first value, and the value of the second field is the first value Means a selection method in which the first value and the second value exist such that the hash functions selected when they are different second values are different.
[適用例2]
適用例1の転送装置であって、
前記転送先選択部は、前記受信したパケットの宛先と対応づけられた転送先の数で前記出力値を割った場合の余りの値に応じて、前記2以上の転送先の中から前記受信したパケットの転送先を選択する、転送装置。
[Application Example 2]
A transfer device according to application example 1,
The transfer destination selection unit receives the received value from the two or more transfer destinations according to a remainder value when the output value is divided by the number of transfer destinations associated with the destination of the received packet. A transfer device that selects a packet transfer destination.
このような態様とすれば、任意の範囲の出力値を有するハッシュ関数を用いて、パケットの転送先を決定することができる。 According to such an aspect, a packet transfer destination can be determined using a hash function having an output value in an arbitrary range.
[適用例3]
ネットワークを介して受信したパケットを、前記ネットワークに接続された他の装置に、前記ネットワークを介して転送する転送装置であって、
パケットの宛先と対応づけて転送先としての前記他の装置を1以上格納するルーティングテーブルと、
前記受信したパケットの第1のフィールドであってフローの識別に用いることができる第1のフィールドの値と、前記受信したパケットの第2のフィールドであって前記受信したパケットのそれまでの転送回数または残り転送可能回数を表す第2のフィールドの値と、に応じて、ハッシュ値を出力するハッシュ関数と、
前記ルーティングテーブルにおいて、前記受信したパケットの宛先と対応づけられた転送先が2以上ある場合に、前記ハッシュ関数の出力値に基づいて、前記2以上の転送先の中から前記受信したパケットの転送先を選択する転送先選択部と、を備える転送装置。
[Application Example 3]
A transfer device for transferring a packet received via a network to another device connected to the network via the network;
A routing table that stores one or more other devices as transfer destinations in association with packet destinations;
The value of the first field of the received packet that can be used for flow identification, and the second field of the received packet and the number of times the received packet has been transferred so far Or a hash function that outputs a hash value according to the value of the second field indicating the remaining transferable number of times,
In the routing table, when there are two or more transfer destinations associated with the destination of the received packet, transfer of the received packet from the two or more transfer destinations based on the output value of the hash function And a transfer destination selection unit that selects a destination.
パケットがネットワークにおいて転送される際、1回転送されるたびに、第2のフィールドの値は、変化する。このため、上記のような態様の転送装置が複数含まれるネットワークにおいて、パケットが転送される場合には、そのパケットは、複数の転送装置で順に転送される際に、毎回同じ出力値(ハッシュ値)を使用されるのではなく、毎回異なる出力値を使用されて、転送先を決定される。このため、上記の態様によれば、自動的に、かつ簡易な処理で、ネットワークにおける通信の偏りをなくすことができる。 When a packet is transferred in the network, the value of the second field changes each time it is transferred. For this reason, when a packet is transferred in a network including a plurality of transfer apparatuses having the above-described mode, the same output value (hash value) is transmitted each time the packet is sequentially transferred by the plurality of transfer apparatuses. ), A different output value is used each time to determine the transfer destination. For this reason, according to said aspect, the communication bias in a network can be eliminated automatically and with a simple process.
一方で、各転送装置においては、ハッシュ関数の出力値は、パケットのフローの識別に用いることができる第1のフィールドの値と、パケットのそれまでの転送回数または残り転送可能回数を表す第2のフィールドの値と、に応じて、一義的に定められる。このため、ある転送装置においては、同じフローの異なるパケットは、それまでに同じ経路を転送されてきたパケットである限り、どれも同じ出力値が得られ、同じ転送先に転送される。よって、同じ通信フローのパケットは転送先が同じになる。 On the other hand, in each transfer device, the output value of the hash function includes the value of the first field that can be used to identify the flow of the packet, and the second value that represents the number of times the packet has been transferred so far or the remaining transferable number of times. It is uniquely determined according to the value of the field. For this reason, in a certain transfer device, as long as different packets of the same flow are packets that have been transferred through the same route, the same output value is obtained and transferred to the same transfer destination. Therefore, the packets with the same communication flow have the same transfer destination.
なお、「第1のフィールドの値と、〜第2のフィールドの値と、に応じて、ハッシュ値を出力する」とは、以下のような選択方法を意味する。すなわち、第1のフィールドの値が値V11であり第2のフィールドの値が値V21であるときのハッシュ値と、第1のフィールドの値がV11とは異なるV12であり第2のフィールドの値が値V21であるときのハッシュ値と、が異なるような、値V11と値V12が存在する。さらに、第1のフィールドの値が値V11であり第2のフィールドの値が値V21であるときのハッシュ値と、第1のフィールドの値がV11であり第2のフィールドの値がV21とは異なるV22であるときのハッシュ値と、が異なるような、値V21と値V22が存在する。 Note that “output the hash value according to the value of the first field and the value of the second field” means the following selection method. That is, the hash value when the value of the first field is the value V11 and the value of the second field is the value V21, and the value of the second field where the value of the first field is V12 different from V11. There are a value V11 and a value V12 that are different from the hash value when the value is the value V21. Further, the hash value when the value of the first field is the value V11 and the value of the second field is the value V21, and the value of the first field is V11 and the value of the second field is V21. There are a value V21 and a value V22 that are different from the hash values when they are different V22.
[適用例4]
適用例3の転送装置であって、
前記転送先選択部は、前記受信したパケットの宛先と対応づけられた転送先の数で前記出力値を割った場合の余りの値に応じて、前記2以上の転送先の中から前記受信したパケットの転送先を決定する、転送装置。
[Application Example 4]
A transfer device according to application example 3,
The transfer destination selection unit receives the received value from the two or more transfer destinations according to a remainder value when the output value is divided by the number of transfer destinations associated with the destination of the received packet. A transfer device that determines the transfer destination of a packet.
このような態様とすれば、任意の範囲の出力値を有するハッシュ関数を用いて、パケットの転送先を決定することができる。 According to such an aspect, a packet transfer destination can be determined using a hash function having an output value in an arbitrary range.
なお、本発明は、以下に示すような種々の態様で実現することが可能である。
(1)パケットの転送装置。
(2)パケットの転送方法。
(3)パケットの転送装置を備えるネットワークシステム。
Note that the present invention can be realized in various modes as described below.
(1) A packet transfer device.
(2) Packet transfer method.
(3) A network system including a packet transfer device.
A.実施例1:
A1.ロードバランス転送装置の構成:
図1は、マルチパス転送装置が2段になっているネットワークNTを示す図である。図1のネットワークは4台の端末111〜114を、転送装置101〜108および回線121〜134で接続したネットワークである。
A. Example 1:
A1. Configuration of load balance transfer device:
FIG. 1 is a diagram showing a network NT having two stages of multipath transfer apparatuses. The network in FIG. 1 is a network in which four
図1の上段に示すように、ネットワークNTにおいては、アドレス10.0.0.1を有する端末111と、アドレス10.0.0.2を有する端末112が、転送装置101に接続されている。また、図1の下段に示すように、アドレス20.0.0.1を有する端末113と、20.0.0.2を有する端末114が、転送装置108に接続されている。転送装置101と転送装置108とは、転送装置102〜107および回線123〜132を介して接続されている。
As shown in the upper part of FIG. 1, in the network NT, a terminal 111 having an address 10.0.0.1 and a terminal 112 having an address 10.0.0.2 are connected to the
転送装置102は、回線125、転送装置104、回線129を介して転送装置108に接続されている。また、転送装置102は、回線126、転送装置105、回線130を介して転送装置108に接続されている。すなわち、転送装置102と転送装置108とは、二つの経路で接続されている。
The
転送装置103は、回線127、転送装置106、回線131を介して転送装置108に接続されている。また、転送装置103は、回線128、転送装置107、回線132を介して転送装置108に接続されている。すなわち、転送装置103と転送装置108とは、二つの経路で接続されている。
The
転送装置101は、回線123を介して転送装置102に接続されている。また、転送装置101は、回線124を介して転送装置103に接続されている。その結果、転送装置101と転送装置108とは、四つの経路で接続されている。転送装置101から転送装置108に至る経路においては、いずれの経路においても、2台の転送装置を経由する。そして、転送装置101〜103は、端末111,112から端末113,114に向けて発信されたIPパケットを受信した場合には、そのIPパケットを転送できる転送先として、それぞれ二つの転送装置を有している。
The
図2は、TTL切替型ロードバランス転送装置701を示すブロック図である。実施例1においては、図1の転送装置101〜108は、具体的には、図2に示すTTL切替型ロードバランス転送装置701である。TTL切替型ロードバランス転送装置701は、パケット転送部710、複数のインタフェース711〜714、および転送先決定部720を備える。転送先決定部720を、後述する参考例の転送先決定部720cおよび実施例2の転送先決定部920と区別するために「TTL切替型転送先決定部」と呼ぶことがある。
FIG. 2 is a block diagram showing the TTL switching type load
インタフェース711〜714に到着したパケットは、パケット転送部710が受信する。パケット転送部710は、パケットのヘッダ部分を転送先決定部720へ通知する(図2の矢印Ah参照)。転送先決定部720は、パケットのヘッダの情報に基づいてそのパケットの転送先を決定し、パケット転送部710へ通知する(図2の矢印Atr参照)。パケット転送部710は、受信したパケットのTTLフィールドを1減算し、転送先決定部720から通知された転送先へ送信する。
Packets arriving at the
なお、「TTL(Time to live)」とは、一つのパケットが破棄される前に行われうる転送装置による転送回数の上限である。各パケットは、TTLの値を格納したフィールド(TTLフィールド)を有している。パケットを最初に送信した端末がそのパケットの目的に応じた値を、TTLフィールドに設定する。その後、そのパケットを受信した各転送装置は、パケットを転送するたびにTTLフィールドの値を1減算する。ある転送装置において、TTLフィールドが0であった場合には、そのパケットは廃棄される。その結果、ネットワーク上にルーティングループがあり、パケットがネットワーク上を巡回した場合にも、そのパケットが無限にネットワーク上を巡回する事態が防止される。本実施例のTTL切替型ロードバランス転送装置701においては、パケット転送部710がTTLフィールドの値の減算を行う。TTLフィールドが、[課題を解決するための手段]における「第2のフィールド」に相当する。
Note that “TTL (Time to live)” is an upper limit of the number of transfers by the transfer apparatus that can be performed before one packet is discarded. Each packet has a field (TTL field) that stores a TTL value. The terminal that first transmitted the packet sets a value corresponding to the purpose of the packet in the TTL field. Thereafter, each transfer device that has received the packet decrements the value of the TTL field by 1 each time the packet is transferred. In a transfer device, if the TTL field is 0, the packet is discarded. As a result, there is a routing loop on the network, and even when a packet circulates on the network, a situation where the packet circulates infinitely on the network is prevented. In the TTL switching type load
転送先決定部720は、宛先アドレス抽出部721、ルーティングテーブル検索部722、ルーティングテーブル723、フロー識別フィールド抽出部724、TTLフィールド抽出部725、ハッシュ関数選択部726、複数のハッシュ関数727a〜727d、および転送先選択部730を備える。
The transfer
ルーティングテーブル723は、宛先アドレス211に対応づけられた転送先の数と、転送先とを格納している。ルーティングテーブル723の内容は、転送装置ごとに異なる。図1の各転送装置が有するルーティングテーブル723については、後に説明する。
The routing table 723 stores the number of transfer destinations associated with the
パケット転送部710が通知したパケットのヘッダ部分は、宛先アドレス抽出部721、フロー識別フィールド抽出部724、TTLフィールド抽出部725へ通知される(図2の矢印Ah参照)。
The header portion of the packet notified by the
宛先アドレス抽出部721は、通知されたパケットのヘッダ部分から宛先アドレスを抽出し、ルーティングテーブル検索部722へ通知する(図2の矢印Aa参照)。ルーティングテーブル検索部722は、通知された宛先アドレスに基づいてルーティングテーブル723を検索し、検索結果として転送先と転送先の数とを得る。そして、ルーティングテーブル検索部722は、転送先と転送先の数とを転送先選択部730へ通知する。
The destination
フロー識別フィールド抽出部724は、通知されたパケットのヘッダ部分からフローの識別に使用されるフィールドの値を抽出し、ハッシュ関数選択部726へ通知する(図2の矢印Af参照)。本実施例では、フローの識別に、送信元アドレス、宛先アドレス、プロトコル番号の3つのフィールドを使うものとする。各パケットは、4バイトで表される送信元アドレス、4バイトで表される宛先アドレス、1バイトで表されるプロトコル番号のフィールドを含む。
The flow identification
TTLフィールド抽出部725は、通知されたパケットのヘッダ部分からTTLフィールドの値を抽出し、ハッシュ関数選択部726へ通知する(図2の矢印Att参照)。
The TTL
ハッシュ関数選択部726では、TTLフィールド抽出部725から通知されたTTLフィールドの値をもとに4個あるハッシュ関数727a〜727dからひとつのハッシュ関数を選択する。そして、フロー識別フィールド抽出部724から通知された送信元アドレス、宛先アドレス、プロトコルの3つのフィールドの値を、選択したハッシュ関数へ通知する。
The hash
より具体的には、ハッシュ関数選択部726は、TTLフィールド抽出部725から通知されたTTLフィールドの値を、ハッシュ関数の数Nh=4で割った剰余に1を加えた値Vs(Vsは、1≦Vs≦Nhを満たす整数)を計算する。値Vsが1であるときには、ハッシュ関数727aを選択する。値Vsが2であるときには、ハッシュ関数727bを選択する。値Vsが3であるときには、ハッシュ関数727cを選択する。値Vsが4であるときには、ハッシュ関数727dを選択する。
More specifically, the hash
ハッシュ関数727a〜727dは、ハッシュ関数選択部726から送信元アドレス、宛先アドレス、プロトコルを通知された場合には、通知された各値からハッシュ値を算出し、転送先選択部730へ通知する。
When the hash
ハッシュ関数727a〜727dは、送信元アドレス、宛先アドレス、プロトコルを表すフロー識別フィールドの値から、無作為なハッシュ値を生成する関数である。ハッシュ関数727a〜727dは、同じフロー識別フィールドの値から互いに異なるハッシュ値が得られるハッシュ関数である。 The hash functions 727a to 727d are functions that generate a random hash value from the value of the flow identification field indicating the transmission source address, the destination address, and the protocol. The hash functions 727a to 727d are hash functions that obtain different hash values from the same flow identification field value.
第1のハッシュ関数727aは、送信元アドレス4バイト、宛先アドレス4バイト、プロトコル番号1バイトの合計9バイトを並べたバイト列に生成多項式x8+x7+x3+x2+1を適用して得られる、8bitのCRC(巡回冗長検査:Cyclic Redundancy Check)値を、ハッシュ値とするハッシュ関数である。 The first hash function 727a is obtained by applying the generator polynomial x 8 + x 7 + x 3 + x 2 +1 to a byte string in which a total of 9 bytes including a transmission source address of 4 bytes, a destination address of 4 bytes, and a protocol number of 1 byte are arranged. , 8-bit CRC (Cyclic Redundancy Check) value is a hash function having a hash value.
第2のハッシュ関数727bは、送信元アドレス4バイト、宛先アドレス4バイト、プロトコル番号1バイトの合計9バイトを並べたバイト列に対して生成多項式x8+x7+x3+x2+1を適用して得られる8bitのCRC値を、さらに右へ2bitローテート(キャリーなし環状シフト)して得られる値を、ハッシュ値とするハッシュ関数である。
The second hash function 727b applies the generator polynomial x 8 + x 7 + x 3 + x 2 +1 to a byte sequence in which a total of 9 bytes including a source address 4 bytes, a destination address 4 bytes, and a
第3のハッシュ関数727cは、送信元アドレス4バイト、宛先アドレス4バイト、プロトコル番号1バイトの合計9バイトを並べたバイト列に対して生成多項式x8+x7+x3+x2+1を適用して得られる8bitのCRC値を、さらに右へ4bitローテートして得られる値を、ハッシュ値とするハッシュ関数である。 The third hash function 727c applies the generator polynomial x 8 + x 7 + x 3 + x 2 +1 to a byte sequence in which a total of 9 bytes including a source address of 4 bytes, a destination address of 4 bytes, and a protocol number of 1 byte are arranged. This is a hash function in which a value obtained by rotating the obtained 8-bit CRC value further 4 bits to the right is used as a hash value.
第4のハッシュ関数727dは、送信元アドレス4バイト、宛先アドレス4バイト、プロトコル番号1バイトの合計9バイトを並べたバイト列に対して生成多項式x8+x7+x3+x2+1を適用して得られる8bitのCRC値を、さらに右へ6bitローテートして得られる値を、ハッシュ値とするハッシュ関数である。
The
転送先選択部730は、ルーティングテーブル検索部722から通知された転送先が複数ある場合、ハッシュ関数727a〜727dのいずれかから通知されたハッシュ値を、さらにルーティングテーブル検索部722から通知された転送先の数Ntrで割った剰余に、1を加えて、値Vtr(Vtrは、1≦Vtr≦Ntrを満たす整数)を計算する。そして、転送先選択部730は、値Vtrが表す番号の転送先を選択する。たとえば、転送先の数Ntrが2である場合には、剰余は0または1である。剰余が0である場合には、Vtr=1となり、ルーティングテーブルのエントリにおける1番目の転送先が選択される。剰余が1である場合には、Vtr=2となり、ルーティングテーブルのエントリにおける2番目の転送先が選択される。このような処理を行うことにより、任意の出力値の範囲を有するハッシュ関数を使用して、転送先の数Ntrに応じた転送先の選択を行うことができる。
When there are a plurality of transfer destinations notified from the routing
転送先選択部730は、転送先として選択した転送装置を、パケット転送部710に通知する(図2の矢印Atr参照)。なお、転送先選択部730は、ルーティングテーブル検索部722から通知された転送先が一つしかない場合には、ルーティングテーブル検索部722から通知された転送先を、パケット転送部710に通知する。
The transfer
図3は、図1に示す転送装置101のルーティングテーブル723(図2参照)である。ルーティングテーブル723は、宛先アドレス211に対応づけられた転送先の数212、ならびに転送先213,214を格納している。転送先の数212、ならびに転送先213,214は、宛先アドレス211に対応する転送方法を定める。
FIG. 3 is a routing table 723 (see FIG. 2) of the
図3に示す転送装置101のルーティングテーブルは3個のエントリを有する。エントリ201は、宛先としてのアドレス10.0.0.1と、その宛先に対応づけられた転送先としての端末111を有する。アドレス10.0.0.1は、端末111のアドレスである(図1参照)。
The routing table of the
エントリ202は、宛先としてのアドレス10.0.0.2と、その宛先に対応づけられた転送先としての端末112を有する。アドレス10.0.0.2は、端末112のアドレスである(図1参照)。
The
エントリ203は、宛先としてのアドレス20.0.0.0/24、すなわち、アドレス20.0.0.0〜アドレス20.0.0.255と、それらの宛先に対応づけられた転送先としての転送装置102,103を有する。すなわち、エントリ203は、二つの転送先を有するマルチパスである。なお、アドレス20.0.0.0/24(アドレス20.0.0.0〜アドレス20.0.0.255)には、端末113のアドレス20.0.0.1、および端末114のアドレス20.0.0.2が含まれる(図1参照)。
The
図4は、図1に示す転送装置102のルーティングテーブル723(図2参照)である。転送装置102のルーティングテーブルは2個のエントリを有する。エントリ301は、宛先としてのアドレス10.0.0.0/24、すなわち、アドレス10.0.0.0〜アドレス20.0.0.255と、それらの宛先に対応づけられた転送先としての転送装置101を有する。なお、アドレス10.0.0.0/24(アドレス10.0.0.0〜アドレス10.0.0.255)には、端末111のアドレス10.0.0.1、および端末112のアドレス10.0.0.2が含まれる(図1参照)。
FIG. 4 is a routing table 723 (see FIG. 2) of the
図4に示すエントリ302は、宛先としてのアドレス20.0.0.0/24、すなわち、アドレス20.0.0.0〜アドレス20.0.0.255と、それらの宛先に対応づけられた転送先としての転送装置104,105を有する。すなわち、エントリ302は、二つの転送先を有するマルチパスである。なお、アドレス20.0.0.0/24(アドレス20.0.0.0〜アドレス20.0.0.255)には、端末113のアドレス20.0.0.1、および端末114のアドレス20.0.0.2が含まれる(図1参照)。
The
図5は、図1に示す転送装置103のルーティングテーブル723である(図2参照)。転送装置103のルーティングテーブルは2個のエントリを有する。エントリ401は、宛先としてのアドレス10.0.0.0/24、すなわち、アドレス10.0.0.0〜アドレス20.0.0.255と、それらの宛先に対応づけられた転送先としての転送装置101を有する。なお、アドレス10.0.0.0/24(アドレス10.0.0.0〜アドレス10.0.0.255)には、端末111のアドレス10.0.0.1、および端末112のアドレス10.0.0.2が含まれる(図1参照)。
FIG. 5 is the routing table 723 of the
図5に示すエントリ402は、宛先としてのアドレス20.0.0.0/24、すなわち、アドレス20.0.0.0〜アドレス20.0.0.255と、それらの宛先に対応づけられた転送先としての転送装置106,107を有する。すなわち、エントリ402は、二つの転送先を有するマルチパスである。なお、アドレス20.0.0.0/24(アドレス20.0.0.0〜アドレス20.0.0.255)には、端末113のアドレス20.0.0.1、および端末114のアドレス20.0.0.2が含まれる(図1参照)。
The
他の転送装置のルーティングテーブル723の内容については、技術の理解を容易にするために、説明を省略する。 Description of the contents of the routing table 723 of other transfer devices is omitted to facilitate understanding of the technology.
A2.ロードバランス転送装置における処理:
以下で、TTL切替型ロードバランス転送装置701を使用した場合のフローの分配について説明する。
A2. Processing in the load balance transfer device:
Hereinafter, flow distribution when the TTL switching type load
図6は、ネットワーク上で分配の偏りの有無を検証するためのフローを示す表Tfである。本実施例においては、各フローは、送信元アドレス、宛先アドレス、およびプロトコル番号で識別される。このため、表Tfにおいて、各フローは、送信元アドレス511と宛先アドレス512とプロトコル番号513の列の値で特定されている。各フローのパケットは、フィールドにこれらの値を格納している。送信元アドレス、宛先アドレス、およびプロトコル番号を格納したフィールドが、[課題を解決するための手段]における「第1のフィールド」に相当する。
FIG. 6 is a table Tf showing a flow for verifying the presence or absence of distribution bias on the network. In this embodiment, each flow is identified by a transmission source address, a destination address, and a protocol number. For this reason, in the table Tf, each flow is specified by the values in the columns of the
図6の表Tfには、8個のフロー501〜508が示されている。各フローの送信元のアドレスは、列511に示すように、端末111のアドレス10.0.0.1、または端末112のアドレス10.0.0.2のいずれかである。各フローの宛先のアドレスは、列512に示すように、端末113のアドレス20.0.0.1、または端末114のアドレス20.0.0.2のいずれかである。各フローのプロトコル番号は、列513に示すように、TCPのプロトコル番号である6、またはUDPのプロトコル番号である17のいずれかである。3個のフィールドがそれぞれ2つの値を取り得る結果として、表Tfには、8個のフローが示されている。
In the table Tf of FIG. 6, eight
図7は、図1のネットワークにおいて、各転送装置に図2のTTL切替型ロードバランス転送装置701を採用し、図6に示したフロー501〜508のパケットを端末111,112から流した場合の、パケット転送経路(第1ホップ、第2ホップ、第3ホップ)を示した表Tp1である。なお、端末111,112は、すべてのフローのパケットについて、TTLを64として、パケットを送信するものとする。
FIG. 7 shows a case where the TTL switching type load
図7の表Tp1は、図6の表の内容に加えて、送信元端末がパケットを送信する時のTTLを表す列814、第1ホップの転送装置に対応する列815、第2ホップの転送装置に対応する列819、第3ホップの転送装置を表す列823を有している。第1ホップの転送装置に対応する列815は、第1ホップの転送装置を表す列816、第1ホップの転送装置がパケットを受信した時点でのTTLを表す列817、第1ホップでのパケットに対応するハッシュ値を表す列818を含む。第2ホップの転送装置に対応する列819は、第2ホップの転送装置を表す列820、第2ホップの転送装置がパケットを受信した時点でのTTLを表す列821、第2ホップでのパケットに対応するハッシュ値を表す822を含む。
The table Tp1 in FIG. 7 includes, in addition to the contents of the table in FIG. 6, a
表Tp1の第1行目に示されているフロー501を例に、転送先決定部720における第1ホップ〜第3ホップの決定の処理を説明する。フロー501の送信元アドレスは10.0.0.1である。すなわち、フロー501の送信元は、端末111である(図1参照)。端末111は、フロー501のパケットを送信する際には、端末111に直接接続している唯一の転送装置101へ、そのパケットを送信する(列816参照)。また、端末111がパケットを送信した時点の端末送信TTLは64であり(列814参照)、第1ホップの受信TTLも64である(列817参照)。
The process of determining the first hop to the third hop in the transfer
第1ホップである転送装置101のハッシュ関数選択部726(図2)は、受信TTLの値64(図7の列817参照)を、ハッシュ関数の数Nh=4で割った剰余に1を加えた値Vsを計算する。ここでは、Vs=1となるので、ハッシュ関数選択部726は、Vs=1に対応するハッシュ関数727aを選択する。フロー501のパケットからフロー識別フィールド抽出部724が抽出した内容(図6の表Tfの第1行目参照)、すなわち、送信元アドレス10.0.0.1、宛先アドレス20.0.0.1、プロトコル番号6が、ハッシュ関数選択部726を経由してハッシュ関数727aへ通知される(図7の列511〜513、ならびに図2の矢印Af参照)。
The hash function selection unit 726 (FIG. 2) of the
ハッシュ関数727aは、送信元アドレス、宛先アドレス、プロトコル番号の3つの値を並べた9バイトのバイト列0A0000011400000106に生成多項式x8+x7+x3+x2+1を適用して、第1ホップのハッシュ値として90を得る(図7の列818参照)。
The hash function 727a applies the generator polynomial x 8 + x 7 + x 3 + x 2 +1 to the 9-byte byte sequence 0A00000111400106 in which three values of the source address, the destination address, and the protocol number are arranged, and the hash value of the first hop As 90 (see
一方で、転送装置101の宛先アドレス抽出部721は、フロー501のパケットから宛先アドレス20.0.0.1を抽出し、ルーティングテーブル検索部722へ通知する(図7の列512、および図2の矢印Aa参照)。
On the other hand, the destination
ルーティングテーブル検索部722(図2参照)は、通知された宛先アドレス20.0.0.1を用いてルーティングテーブル723を検索する。ルーティングテーブル検索部722は、図3に示す転送装置101のルーティングテーブル723のエントリ203から、転送先数2、ならびに転送先1としての転送装置102、転送先2としての転送装置103を得て、転送先選択部730へ通知する(図2参照)。
The routing table search unit 722 (see FIG. 2) searches the routing table 723 using the notified destination address 20.0.0.0.1. The routing
転送先選択部730は、ルーティングテーブル検索部722より通知を受けた転送先数2、転送先1としての転送装置102、転送先2としての転送装置103、ならびに、ハッシュ関数727aより通知を受けたハッシュ値90に基づいて、以下の処理を行う。すなわち、転送先選択部730は、ハッシュ値90を転送先数Ntr=2で割った剰余0に1を足した値Vtr=1を得る。そして、転送先選択部730は、番号が1の転送先、つまり転送先1である転送装置102を選択して、これをパケット転送部710へ通知する(図2の矢印Atr参照)。
The transfer
パケット転送部710はパケットのTTLを1減算して63とし、通知された転送先である転送装置102へパケットを転送する。
The
こうして、フロー501についての第2ホップの転送装置として、転送装置102が選ばれる(図7の列820参照)。また、転送装置102が受信した時点のTTLは63となる(同、列821参照)。
Thus, the
第2ホップである転送装置102のハッシュ関数選択部726(図2参照)は、受信TTLの値63(図7の列821参照)を、ハッシュ関数の数Nh=4で割った剰余に1を加えたVsを計算する。Vs=4であるので、ハッシュ関数選択部726は、対応するハッシュ関数727dを選択する。フロー501のパケットからフロー識別フィールド抽出部724が抽出した内容、すなわち、送信元アドレス10.0.0.1、宛先アドレス20.0.0.1、プロトコル番号6が、ハッシュ関数選択部726を経由してハッシュ関数727dへ通知される(図6の表Tfの第1行目、ならびに図2の矢印Af参照)。
The hash function selection unit 726 (see FIG. 2) of the
ハッシュ関数727dは、送信元アドレス、宛先アドレス、プロトコル番号の3つの値を並べた9バイトのバイト列0A0000011400000106に生成多項式x8+x7+x3+x2+1を適用してCRC値を求め、得られた値90を右へ6ビットだけローテートし、第2ホップのハッシュ値として105を得る(図7の列822参照)。
The
一方で、転送装置102の宛先アドレス抽出部721は、フロー501のパケットから宛先アドレス20.0.0.1を抽出し、ルーティングテーブル検索部722へ通知する(図7の列512、および図2の矢印Aa参照)。
On the other hand, the destination
ルーティングテーブル検索部722(図2参照)では通知された宛先アドレス20.0.0.1を用いてルーティングテーブル723を検索する。ルーティングテーブル検索部722は、図4に示す転送装置102のルーティングテーブル723のエントリ302から、転送先数2、ならびに転送先1としての転送装置104、転送先2としての転送装置105を得て、転送先選択部730へ通知する(図2参照)。
The routing table search unit 722 (see FIG. 2) searches the routing table 723 using the notified destination address 20.0.0.0.1. The routing
転送先選択部730では、ルーティングテーブル検索部722より通知を受けた転送先数2、転送先1としての転送装置104、転送先2としての転送装置105、ならびに、ハッシュ関数727dより通知を受けたハッシュ値105に基づいて、以下の処理を行う。すなわち、転送先選択部730は、ハッシュ値105を転送先数Ntr=2で割った剰余1に1を足した値Vtr=2を得る。そして、転送先選択部730は、番号が2の転送先、つまり転送先2の転送装置105を選択してパケット転送部710へ通知する(図2の矢印Atr参照)。
In the transfer
パケット転送部710はパケットのTTLを1減算し、通知された転送先である転送装置105へパケットを転送する。
The
こうして、フロー501についての第3のホップの転送装置として、転送装置105が選ばれる(図7の列823参照)。
Thus,
他のフロー502〜508についても上記と同じ方法によって第1ホップ、第2ホップ、第3ホップを求めた結果が、図7に示されている。
FIG. 7 shows the results of obtaining the first hop, the second hop, and the third hop for the
図7において、全8フローのうち半分の4フローが、第2ホップとして転送装置102を割り当てられており、残りの半分のフローが、第2ホップとして転送装置103を割り当てられている(列820参照)。すなわち、第2ホップに関しては、転送装置102,103に均等にフローが割りふられている。また、図7において、全8フローのうち1/4の2フローずつが、第3ホップとして、転送装置104、転送装置105、転送装置106、転送装置107に均等に割り当てられている(列823参照)。
In FIG. 7, half of the 8 flows are assigned the
以上より、実施例1のTTL切替型ロードバランス転送装置701を用いると、マルチパスで選ばれた転送装置(上記の例では第2ホップ)においてさらにマルチパス転送が発生した場合においても、パケットを均等に分散することができることがわかる。そして、パケットの分散のために、ネットワーク管理者が転送先選択方法を設定する必要がなく、転送先選択方法を決定するプロトコルを使う必要もない。
As described above, when the TTL switching type load
A3.ロードバランス転送装置の効果:
実施例1では、転送装置に転送先選択方法としてのハッシュ関数を複数用意する。そして、パケットからTTLフィールドの値を抽出して、その値に対応する転送先選択方法(ハッシュ関数)をパケットごとに選び、選んだ転送先選択方法に、フローを識別するフィールドの値を適用して転送先を決定している。
A3. Effect of load balance transfer device:
In the first embodiment, a plurality of hash functions as a transfer destination selection method are prepared in the transfer device. Then, the value of the TTL field is extracted from the packet, the transfer destination selection method (hash function) corresponding to the value is selected for each packet, and the value of the field identifying the flow is applied to the selected transfer destination selection method. To determine the forwarding destination.
実施例1の転送装置では、マルチパスから転送先を選択する方法にハッシュ関数を用いているので、通信フローと転送先の対応を記憶する必要がない。 In the transfer apparatus according to the first embodiment, since the hash function is used in the method of selecting the transfer destination from the multipath, it is not necessary to store the correspondence between the communication flow and the transfer destination.
TTLフィールドの値は、転送装置がパケットを転送するたびに1減る。このため、(i)あるパケットのTTLフィールドの値は、そのパケットが転送された先の各転送装置にある時点で、それぞれ異なっている。一方、同一通信フローの異なるパケットについては、端末が最初に送信する時点におけるTTLフィールドの値は同じである。このため、(ii)通信経路が同じであるかぎり、同一フローのどのパケットについても、同じ転送装置が受信した時点でのTTLフィールドの値は同じである。 The value of the TTL field is decremented by 1 every time the transfer device transfers a packet. For this reason, (i) the value of the TTL field of a packet is different at each point in time at each transfer device to which the packet is transferred. On the other hand, for different packets of the same communication flow, the value of the TTL field at the time when the terminal first transmits is the same. Therefore, (ii) as long as the communication path is the same, the value of the TTL field at the time when the same transfer apparatus receives the same packet for any packet in the same flow.
実施例1においては、TTLフィールドの後者の特性(ii)により、同一フローの異なるパケットが同じ転送先に転送される。そして、TTLフィールドの前者の特性(i)により、同一パケットであっても、異なる転送装置にあるときには、同じ選択傾向にならないように転送先が選択される。 In the first embodiment, different packets of the same flow are transferred to the same transfer destination by the latter characteristic (ii) of the TTL field. Then, due to the former characteristic (i) of the TTL field, even if the packet is the same, the transfer destination is selected so as not to have the same selection tendency when it is in a different transfer device.
上記の効果は、マルチパスである転送装置であって、転送先を選択する方法としてハッシュ関数を用いる転送装置が、2台以上あるネットワークにおいて、有効に発揮される。このため、ネットワークにおいて通信を公平に分散させるにあたり、ネットワーク管理者が転送先選択方法を設定する必要がない。また、各転送装置についてできるだけ異なる転送先選択方法を採用するためのプロトコルを設ける必要もない。なお、ここでは、各転送装置において転送先が2個ある場合を例に説明したが(図1参照)、転送装置において転送可能な転送先が3以上ある場合についても、同様に、上記の効果は得られる。 The above effect is effectively exhibited in a network having two or more transfer devices that use a hash function as a method of selecting a transfer destination, which is a multipath transfer device. For this reason, it is not necessary for the network administrator to set a transfer destination selection method in order to distribute communication fairly in the network. Further, it is not necessary to provide a protocol for adopting as different a transfer destination selection method as possible for each transfer device. Here, the case where there are two transfer destinations in each transfer device has been described as an example (see FIG. 1), but the above effect is similarly applied to the case where there are three or more transfer destinations that can be transferred in the transfer device. Is obtained.
B.参考例:
図8は、参考例のロードバランス転送装置702を示すブロック図である。参考例のロードバランス転送装置702は、TTLフィールド抽出部725、ハッシュ関数選択部726、ならびにハッシュ関数727b〜727dを備えていない(図2および図8参照)。そして、フロー識別フィールド抽出部724は、パケットのヘッダ部分からフローの識別に使用する送信元アドレス、宛先アドレス、およびプロトコル番号のフィールドの値(図6参照)を抽出し、ハッシュ関数727aへ通知する(図8の矢印Af参照)。参考例のロードバランス転送装置702の他の点は、実施例1のロードバランス転送装置701と同じである。
B. Reference example:
FIG. 8 is a block diagram illustrating a load
図9は、図1のネットワークNTの各転送装置に、図8の参考例のロードバランス転送装置702を採用し、図6に示したフロー501〜508のパケットを端末111,112から流した場合の、パケット転送経路(第1ホップ、第2ホップ、第3ホップ)を示した表Tpcである。
9 employs the load
ただし、転送装置101のルーティングテーブル723は図3に示した内容を有し、転送装置102のルーティングテーブル723は図4に示した内容を有し、転送装置103のルーティングテーブル723は図5に示した内容を有するものとする。また、端末111,112は、すべてのフローのパケットについて、TTLを64として、パケットを送信するものとする。
However, the routing table 723 of the
表Tpcの第1行目に示されているフロー501(図7の第1行目参照)を例に説明する。フロー501の送信元アドレスは10.0.0.1である。すなわち、フロー501の送信元は、端末111である(図1参照)。端末111は、フロー501のパケットを送信する際には、転送装置101へそのパケットを送信する。このため、フロー501の第1ホップは転送装置101である(図9の列615参照)。
A flow 501 (see the first row in FIG. 7) shown in the first row of the table Tpc will be described as an example. The source address of the
フロー501のパケットからフロー識別フィールド抽出部724が抽出した送信元アドレス10.0.0.1、宛先アドレス20.0.0.1、プロトコル番号6が、ハッシュ関数727aへ通知される(図9の列511〜513、ならびに図8の矢印Af参照)。
The source address 10.0.0.1, destination address 20.0.0.1, and
ハッシュ関数727aは、実施例1の場合と同様にして、送信元アドレス、宛先アドレス、プロトコル番号に基づいて、第1ホップのハッシュ値として90を得る(図9の列614参照)。
The hash function 727a obtains 90 as the hash value of the first hop based on the transmission source address, the destination address, and the protocol number as in the case of the first embodiment (see the
一方で、転送装置101の宛先アドレス抽出部721は、フロー501のパケットから宛先アドレス20.0.0.1を抽出し、ルーティングテーブル検索部722へ通知する(図2の矢印Aa参照)。
On the other hand, the destination
ルーティングテーブル検索部722は、通知された宛先アドレス20.0.0.1を用いて、実施例1と同様に、ルーティングテーブル723を検索する。そして、ルーティングテーブル検索部722は、転送先数2、ならびに転送先1としての転送装置102、転送先2としての転送装置103を得て、それらを転送先選択部730へ通知する(図3のエントリ203、および図8参照)。
The routing
転送先選択部730は、ルーティングテーブル検索部722より通知を受けた転送先数2、転送先1としての転送装置102、転送先2としての転送装置103、ならびに、ハッシュ関数727aより通知を受けたハッシュ値90に基づいて、実施例1の場合と同様に、転送先1の転送装置102を選択して、これをパケット転送部710へ通知する(図9の列616、および図8の矢印Atr参照)。
The transfer
パケット転送部710ではパケットのTTLを1減算して63とし、通知された転送先である転送装置102へパケットを転送する。
The
第2ホップである転送装置102のフロー識別フィールド抽出部724は、フロー501のパケットから、送信元アドレス10.0.0.1、宛先アドレス20.0.0.1、プロトコル番号6を抽出し、ハッシュ関数727aへ通知する(図8参照)。
The flow identification
第2ホップである転送装置102のハッシュ関数727aは、第1ホップである転送装置101のハッシュ関数727aと同様にして、送信元アドレス、宛先アドレス、プロトコル番号に基づいて、第2ホップのハッシュ値として90を得る。
The hash function 727a of the
第2ホップである転送装置102のルーティングテーブル検索部722は、宛先アドレス抽出部721から通知された宛先アドレス20.0.0.1を用いて、第1ホップである転送装置101のルーティングテーブル検索部722と同様に、ルーティングテーブル723を検索する。そして、第2ホップである転送装置102のルーティングテーブル検索部722は、転送先数2、ならびに転送先1としての転送装置104、転送先2としての転送装置105を得て、それらを転送先選択部730へ通知する(図4のエントリ302、および図8参照)。
The routing
転送先選択部730は、ルーティングテーブル検索部722より通知を受けた転送先数2、転送先1としての転送装置104、転送先2としての転送装置105、ならびに、ハッシュ関数727aより通知を受けたハッシュ値90に基づいて、以下の処理を行う。すなわち、転送先選択部730は、ハッシュ値90に基づいて値Vtr=1を得る。そして、転送先選択部730は、転送先1の転送装置104を選択してパケット転送部710へ通知する(図8の矢印Atr参照)。
The transfer
パケット転送部710ではパケットのTTLを1減算して63とし、通知された転送先である転送装置104へパケットを転送する。
The
こうして、第3のホップの転送装置として転送装置として転送装置104が選ばれる(図9の列617参照)。
Thus, the
他のフロー502〜508についても上記と同じ方法によって第1ホップ、第2ホップ、第3ホップを求めた結果が、図9に示されている。
FIG. 9 shows the result of obtaining the first hop, the second hop, and the third hop for the
図9においても、実施例1の図7と同様、全8フローのうち半分の4フローが、第2ホップとして転送装置102を割り当てられており、残りの半分のフローが、第2ホップとして転送装置103を割り当てられている(列616参照)。すなわち、第2ホップに関しては、転送装置102,103に均等にフローが割りふられている。
Also in FIG. 9, as in FIG. 7 of the first embodiment, four of the eight flows are assigned to the
しかし、図9においては、全8フローのうち半分の4フローが、第3ホップとして転送装置104を割り当てられており、残りの半分のフローが、第3ホップとして転送装置107を割り当てられている(列617参照)。すなわち、第3ホップの転送装置として、転送装置105,106は、選択されていない。言い換えれば、第2ホップとしての転送装置102,103においては、ロードバランスが機能していない。
However, in FIG. 9, half of all eight flows are assigned the
転送装置102,103において転送先の選択が偏る原因は、(i)転送先を選択する方法が、フローの識別に使えるフィールドの値を入力値とするハッシュ関数を用いるものであり、しかも、(ii)その方法がすべての転送装置で同一であることである。
The reason why the transfer destinations in the
より具体的には、転送装置101から転送装置102へ転送されるパケットは、いずれも、フローを表すフィールドの値に基づいて、転送先1が選択される(すなわち、ハッシュ関数727aのハッシュ値の2の剰余が0となる)パケットである。このため、それらのパケットに対しては、第2ホップである転送装置102においても、転送先1が選択される。その結果、それらのパケットの第3ホップは同じ転送装置となる。同様に、転送装置101から転送装置103へ転送されるパケットは、いずれも転送先2が選択される(すなわち、ハッシュ関数727aのハッシュ値の2の剰余が1となる)パケットである。このため、それらのパケットに対しては、第2ホップである転送装置103においても、転送先2が選択される。その結果、それらのパケットの第3ホップは同じ転送装置となる。
More specifically, in each of the packets transferred from the
以上で説明したように、複数のハッシュ関数727b〜727dと、ハッシュ関数選択部726と、TTLフィールド抽出部725と(図2参照)、を備えない参考例のロードバランス転送装置702は、図1のネットワークNTの転送装置として採用された場合に、ロードバランス機能を十分に発揮し得ない。
As described above, the load
一方で、同じ入力値に対して異なるハッシュ値を出力する複数のハッシュ関数727b〜727dと、それらのハッシュ関数を選択するハッシュ関数選択部726と、ハッシュ関数選択部726に対して各ホップで異なる入力値を与えるTTLフィールド抽出部725と、を備える実施例1のロードバランス転送装置702は(図2参照)、図1のネットワークNTの転送装置として採用された場合に、ロードバランス機能を十分に発揮し得る(図7参照)。
On the other hand, a plurality of hash functions 727b to 727d that output different hash values with respect to the same input value, a hash
C.実施例2:
C1.ロードバランス転送装置の構成:
図10は、実施例2のTTL混合型ロードバランス転送装置901の構造を示すブロック図である。TTL混合型ロードバランス装置901は、ハッシュ関数選択部726、ならびにハッシュ関数727b〜727dを備えていない(図2および図10参照)。そして、TTL混合型ロードバランス転送装置901は、それらに代えてTTL混合ハッシュ関数926を備えている。フロー識別フィールド抽出部724は、パケットのヘッダ部分からフローの識別に使用する送信元アドレス、宛先アドレス、およびプロトコル番号のフィールドの値(図6参照)を抽出し、TTL混合ハッシュ関数926へ通知する(図10の矢印Af参照)。TTLフィールド抽出部725は、パケットのヘッダ部分からTTLフィールドの値を抽出し、TTL混合ハッシュ関数926へ通知する(図10の矢印Att参照)。これらの構成を備える転送先決定部を、実施例1の転送先決定部720と区別するために、転送先決定部920と呼ぶ。転送先決定部920を、「TTL混合型転送先決定部」と呼ぶことがある。
C. Example 2:
C1. Configuration of load balance transfer device:
FIG. 10 is a block diagram illustrating the structure of the TTL mixed load
実施例2のTTL混合型ロードバランス転送装置901の他の点は、実施例1のTTL切替型ロードバランス転送装置701と同じである。
Other points of the TTL mixed load
TTL混合ハッシュ関数926は、フロー識別フィールド抽出部724から受け取るフローを表すフィールドの値と、TTLフィールド抽出部725から受け取るTTL値を、を使ってハッシュ値を計算し、転送先選択部730へ通知する。
The TTL
より具体的には、TTL混合ハッシュ関数926は、以下の処理を行う。すなわち、TTL混合ハッシュ関数926は、TTLを64で割った剰余の数Vrを計算する。そして、送信元アドレス4バイト、宛先アドレス4バイト、プロトコル番号1バイトの合計9バイトを並べた72ビット列を、Vrだけ右へビットローテートする。その結果として得られた72ビット列に、生成多項式x8+x7+x3+x2+1を適用して得られた8ビットのCRC値を、出力値としてのハッシュ値とする。
More specifically, the TTL
なお、実施例2では一例として上記のようなTTL混合ハッシュ関数926を採用したが、関数としては、上記とは別の内容を有する関数を採用することもできる。たとえば、TTLを割って剰余の数Vrを求める際に使用する数は、64以外の値とすることもできる。すなわち、TTL混合ハッシュ関数は、フロー識別フィールドの値とTTL値とをもとに、無作為な値を生成することができる関数であればよい。ただし、TTLを割って剰余の数Vrを求める際に使用する数は、ローテートする数の桁数より小さい値であり、かつ、できるだけ大きい値であることが好ましい。また、ローテートする数の桁数の約数ではないことが好ましい。
In the second embodiment, the TTL
転送先選択部730(図10参照)は、ルーティングテーブル検索部722から通知された転送先が複数ある場合、TTL混合ハッシュ関数926から通知されたハッシュ値を、さらにルーティングテーブル検索部722から通知された転送先数Ntrで割った剰余に1を加えて、値Vtr(Vtrは、1≦Vtr≦Ntrを満たす整数)を計算する。そして、転送先選択部730は、値Vtrが表す番号の転送先を選択する。
When there are a plurality of transfer destinations notified from the routing
C2.ロードバランス転送装置における処理:
図11は、図1のネットワークにおいて、各転送装置に図10のTTL混合型ロードバランス転送装置901を採用し、図6に示したフロー501〜508のパケットを端末111,112から流した場合の、パケット転送経路を示した表Tp2である。ただし、転送装置101のルーティングテーブル723は図3に示した内容を有し、転送装置102のルーティングテーブル723は図4に示した内容を有し、転送装置103のルーティングテーブル723は図5に示した内容を有するものとする。また、端末111,112は、すべてのフローのパケットについて、TTLを64として、パケットを送信するものとする。
C2. Processing in the load balance transfer device:
FIG. 11 shows a case where the TTL mixed load
図11の表Tp2の各欄は、実施例1の図7の表Tp1の各欄に対応する。すなわち、列1014は、送信元端末がパケットを送信する時のTTLを表す。列1015は、第1ホップの転送装置に対応する。列1019は、第2ホップの転送装置に対応する。列1023は、第3ホップの転送装置を表す。
Each column of the table Tp2 of FIG. 11 corresponds to each column of the table Tp1 of FIG. That is,
第1ホップの転送装置に対応する列1015は、第1ホップの転送装置を表す列1016、第1ホップの転送装置がパケットを受信した時点でのTTLを表す列1017、第1ホップでのパケットに対応するハッシュ値を表す列1018を含む。第2ホップの転送装置に対応する列1019は、第2ホップの転送装置を表す列1020、第2ホップの転送装置がパケットを受信した時点でのTTLを表す列1021、第2ホップでのパケットに対応するハッシュ値を表す1022を含む。
A
表Tp2の第1行目に示されているフロー501を例に、転送先決定部920における第1ホップ〜第3ホップの決定の処理を説明する。実施例1で説明したように、フロー501の送信元は、端末111(アドレス10.0.0.1)である(図11の列511参照)。そして、パケットの第1ホップの転送装置1016は、転送装置101である(図11の列1016および図1参照)。また、端末111がパケットを送信した時点の端末送信TTL1014は64であり(図11の列1014参照)、第1ホップの受信TTL1017も64である(図11の列1017参照)。
The process of determining the first hop to the third hop in the transfer
第1ホップである転送装置101において、フロー識別フィールド抽出部724が送信元アドレス10.0.0.1、宛先アドレス20.0.0.1、プロトコル番号6を抽出し、TTL混合ハッシュ関数926へ通知する(図10の矢印Af参照)。また、TTLフィールド抽出部725が受信TTL値64を抽出し、同じくTTL混合ハッシュ関数926へ通知する(図10の矢印Att参照)。
In the
TTL混合ハッシュ関数926では、TTLを64で割った剰余の数Vr=0を計算する。そして、通知された送信元アドレス、宛先アドレス、プロトコル番号を並べた9バイトのバイト列0A0000011400000106を、Vrすなわち0ビットだけ右へローテートする。その結果として得られた値0A0000011400000106に、生成多項式x8+x7+x3+x2+1を適用してCRC値90を求め、第1ホップのハッシュ値として90を得る(図11の列1018参照)。
In the TTL
一方で、転送装置101の宛先アドレス抽出部721は、フロー501のパケットから宛先アドレス20.0.0.1を抽出し、ルーティングテーブル検索部722へ通知する(図10の矢印Aa参照)。
On the other hand, the destination
ルーティングテーブル検索部722は、通知された宛先アドレス20.0.0.1を用いてルーティングテーブル723を検索する。そして、ルーティングテーブル検索部722は、転送先数2、ならびに転送先1としての転送装置102、転送先2としての転送装置103を得て(図3のエントリ203参照)、それらを転送先選択部730へ通知する(図10参照)。
The routing
転送先選択部730は、ルーティングテーブル検索部722より通知を受けた転送先数2、転送先1としての転送装置102、転送先2としての転送装置103、ならびに、TTL混合ハッシュ関数926より通知を受けたハッシュ値90に基づいて、ハッシュ値90を転送先数Ntr=2で割った剰余に1を足した値Vtr=1を得る。そして、転送先選択部730は、番号が1の転送先、つまり転送先1の転送装置102を選択してパケット転送部710へ通知する(図10参照)。
The transfer
パケット転送部710ではパケットのTTLを1減算して63とし、通知された転送先である転送装置102へパケットを転送する。
The
こうして、フロー501についての第2ホップの転送装置として転送装置102が選ばれる(図11の列1020参照)。また、転送装置102が受信した時点のTTLは63となる(図11の列1021参照)。
Thus, the
第2ホップである転送装置102においても、フロー識別フィールド抽出部724が同様に送信元アドレス、宛先アドレス、プロトコル番号を抽出し、TTL混合ハッシュ関数926へ通知する(図10の矢印Aa参照)。また、TTLフィールド抽出部725が受信TTL値63を抽出し、TTL混合ハッシュ関数926へ通知する(図10の矢印Att参照)。
Also in the
転送装置102のTTL混合ハッシュ関数926は、TTL63を64で割った剰余の数Vr=63を計算する。そして、TTL混合ハッシュ関数926は、通知された送信元アドレス、宛先アドレス、プロトコル番号を並べた9バイトのバイト列0A0000011400000106を、Vrすなわち63ビットだけ右ローテートする。その結果得られた値000002280000020C14に、生成多項式x8+x7+x3+x2+1を適用してCRC値41を求め、第2ホップのハッシュ値として41を得る(図11の列1022参照)。
The TTL
一方で、転送装置102の宛先アドレス抽出部721は、フロー501のパケットから宛先アドレス20.0.0.1を抽出し、ルーティングテーブル検索部722へ通知する(図10の矢印Aa参照)。
On the other hand, the destination
ルーティングテーブル検索部722は、通知された宛先アドレス20.0.0.1を用いてルーティングテーブル723(図4参照)を検索する。そして、ルーティングテーブル検索部722は、転送先数2、ならびに転送先1としての転送装置104、転送先2としての転送装置105を得て(図3のエントリ302参照)、転送先選択部730へ通知する。
The routing
転送先選択部730は、ルーティングテーブル検索部722より通知を受けた転送先数2、転送先1としての転送装置104、転送先2としての転送装置105、ならびに、TTL混合ハッシュ関数926より通知を受けたハッシュ値41に基づいて、以下の処理を行う。すなわち、ハッシュ値41を転送先数Ntr=2で割った剰余に1を足した値Vtr=2を得る。そして、転送先選択部730は、番号が2の転送先、つまり転送先2の転送装置105を選択してパケット転送部710へ通知する。
The transfer
パケット転送部710ではパケットのTTLを1減算し、通知された転送先である転送装置105へパケットを転送する。
The
こうして、フロー501についての第3のホップの転送装置として転送装置105が選ばれる(図11の列1023参照)。
Thus, the
他のフロー502〜508についても上記と同じ方法によって第1ホップ、第2ホップ、第3ホップを求めた結果が、図11に示されている。
FIG. 11 shows a result of obtaining the first hop, the second hop, and the third hop for the
図11において、全8フローのうち半分の4フローが、第2ホップとして転送装置102を割り当てられており、残りの半分のフローが、第2ホップとして転送装置103を割り当てられている(列1020参照)。すなわち、第2ホップに関しては、転送装置102,103に均等にフローが割りふられている。また、図11において、全8フローのうち1/4の2フローずつが、第3ホップとして、転送装置104、転送装置105、転送装置106、転送装置107に均等に割り当てられている(列1023参照)。
In FIG. 11, half of all eight flows are assigned the
以上より、実施例2のTTL混合型ロードバランス転送装置901を用いても、マルチパスで選ばれた転送装置(上記の例では第2ホップ)においてさらにマルチパス転送が発生した場合においても、パケットを均等に分散することができることがわかる。そして、パケットの分散のために、ネットワーク管理者が転送先選択方法を設定する必要がなく、転送先選択方法を決定するプロトコルを使う必要もない。
As described above, even when the TTL mixed type load
C3.ロードバランス転送装置の効果:
実施例2では、フローを識別するフィールドの値の他に、TTLフィールドの値も同時に用いる転送先選択方法(混合ハッシュ関数)を用意する。そして、パケットごとにTTLフィールドとフローを識別するフィールドの値を抽出し、その両方を転送先選択方法に適用することによって、転送先を決定する。
C3. Effect of load balance transfer device:
In the second embodiment, a transfer destination selection method (mixed hash function) that uses the value of the TTL field in addition to the value of the field that identifies the flow is prepared. Then, the TTL field and the field value for identifying the flow are extracted for each packet, and both are applied to the transfer destination selection method to determine the transfer destination.
あるパケットのTTLフィールドの値は、そのパケットが転送された先の各転送装置にある時点でそれぞれ異なっている、というTTLフィールドの特性を利用することにより、本実施例においては、同一パケットであっても、異なる転送装置にあるときには、同じ選択傾向にならないように転送先が選択される。 By using the property of the TTL field that the value of the TTL field of a packet is different at each point of time at each transfer device to which the packet is transferred, in this embodiment, the same packet is the same packet. However, when they are in different transfer apparatuses, the transfer destination is selected so as not to have the same selection tendency.
また、通信経路が同じであるかぎり、同一フローのどのパケットについても、同じ転送装置が受信した時点でのTTLフィールドの値は同じである、というTTLフィールドの特性を利用することにより、本実施例においては、同一フローの異なるパケットは、同じ転送先に転送される。 In addition, as long as the communication path is the same, the TTL field characteristic that the value of the TTL field is the same at the time when the same transfer device receives the packet in the same flow is used in this embodiment. In, different packets of the same flow are transferred to the same transfer destination.
その結果、実施例2によっても、実施例1と同様に、ネットワークにおけるパケットの転送において、参考例に比べて優れた効果を得ることができる。 As a result, also in the second embodiment, similar to the first embodiment, it is possible to obtain an effect superior to that of the reference example in packet transfer in the network.
D.変形例:
なお、本発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能である。
D. Variations:
In addition, this invention is not restricted to said Example and embodiment, In the range which does not deviate from the summary, it is possible to implement in various aspects.
D1.変形例1:
実施例1の第2〜第4のハッシュ関数727b〜dは、CRC値を、さらにそれぞれ右へ2bit、4bit、および6bitローテートして得られる値を、ハッシュ値とする。しかし、TTL切替型ロードバランス転送装置において用意される複数のハッシュ関数はこれらの態様に限られるものではなく、他の態様であってもよい。ただし、フローを特定することができるフィールドに基づいて定められる値を、互いに異なるbitだけローテートする態様とすることが好ましい。そして、ローテートするbit数は、フローを特定することができるフィールドに基づいて定められる値の桁数の整数倍ではないことが好ましい。
D1. Modification 1:
In the second to fourth hash functions 727b to 727d of the first embodiment, values obtained by further rotating the CRC value to the right by 2 bits, 4 bits, and 6 bits are used as hash values. However, the plurality of hash functions prepared in the TTL switching type load balance transfer device are not limited to these modes, and may be other modes. However, it is preferable that the value determined based on the field that can specify the flow is rotated by different bits. The number of bits to rotate is preferably not an integral multiple of the number of digits determined based on the field that can specify the flow.
D2.変形例2:
上記実施例では、フローを特定することができるフィールドから得られる数やTTLフィールドから得られる値に、生成多項式x8+x7+x3+x2+1を適用する。しかし、各フィールドから得られる数に対して適用する式は、他の式とすることもできる。ただし、ハッシュ関数は、入力値に対して、多項式と、bitローテートとの両方を適用して、ハッシュ値を得る関数であることが好ましい。このような態様とすれば、ハッシュ値をより均等なものとすることができる。
D2. Modification 2:
In the above embodiment, the generator polynomial x 8 + x 7 + x 3 + x 2 +1 is applied to the number obtained from the field that can specify the flow and the value obtained from the TTL field. However, the formula applied to the number obtained from each field may be another formula. However, the hash function is preferably a function that obtains a hash value by applying both a polynomial and a bit rotation to the input value. With such an aspect, the hash values can be made more uniform.
D3.変形例3:
上記実施例においては、パケットのTTLフィールドの値を利用して関数を切り換えることにより、またはパケットのTTLフィールドの値を関数の入力値の一つとすることにより、関数を使用して選択される転送先を変動させている。しかし、選択される転送先を変動させるために使用する情報としては、TTLフィールド以外のフィールドの値を採用することもできる。たとえば、そのパケットがそれまでに転送された回数を格納するフィールドをパケットが有している場合には、そのフィールドの値を使用することもできる。
D3. Modification 3:
In the above embodiment, the transfer is selected using the function by switching the function using the value of the TTL field of the packet or by setting the value of the TTL field of the packet as one of the input values of the function. The point is changed. However, as the information used for changing the selected transfer destination, the value of a field other than the TTL field can be adopted. For example, if the packet has a field that stores the number of times that packet has been transferred, the value of that field can be used.
すなわち、(1)同一転送装置が受信した同一通信フローのパケットであれば、そのフィールドの値が同じであり、(2)同一フローのパケットであっても、異なる転送装置で受信されたパケットにおいては、そのフィールドの値が異なる、という条件を満たすフィールドであれば、それを利用してパケットの転送先を決定することができる。 That is, (1) the same communication flow received by the same transfer device has the same field value, and (2) the same flow packet received by a different transfer device If the field satisfies the condition that the field values are different, the transfer destination of the packet can be determined using the field.
上記のようなフィールドの値に応じてパケットの転送先を選択すると、特性(1)により、一つの転送装置においては、同一通信フローのパケットは転送先が同じになる。また、特性(2)により、異なる転送装置においては、同一通信フローのパケットであっても、転送先の選択の仕方が異なることになる。その結果、同じ通信フローのパケットは転送先が同じになる利点を残しつつ、ネットワークにおける通信の偏りをなくすことができる。 When a packet transfer destination is selected according to the value of the field as described above, according to the characteristic (1), in one transfer apparatus, packets of the same communication flow have the same transfer destination. Further, due to the characteristic (2), in different transfer apparatuses, the method of selecting a transfer destination is different even for packets of the same communication flow. As a result, packets in the same communication flow can eliminate communication bias in the network while retaining the advantage that the transfer destination is the same.
D4.変形例4:
上記第1実施例においては、ハッシュ関数選択部726は、TTLフィールドの値をハッシュ関数の数Nhで割った剰余に1を加えた値Vsに応じて、Vsの値に対応づけられたハッシュ関数を選択する。しかし、ハッシュ関数の選択は、所定のフィールドの値に基づいて、他の方法で行われることもできる。ただし、その方法は、そのフィールドの値に応じて、2以上のハッシュ関数のうちの一つのハッシュ関数を選択するものであることが好ましい。
D4. Modification 4:
In the first embodiment, the hash
ここで、「フィールドの値に応じて、2以上のハッシュ関数のうちの一つのハッシュ関数を選択する」とは、そのフィールドの値が第1の値であるときに選択されるハッシュ関数と、そのフィールドの値が第1の値とは異なる第2の値であるときに選択されるハッシュ関数と、が異なるような、第1の値と第2の値が存在する選択方法を意味する。すなわち、そのフィールドの値がどのような値であっても同じハッシュ関数が選択される態様は、「フィールドの値に応じて、2以上のハッシュ関数のうちの一つのハッシュ関数を選択」する態様には含まれない。一方で、「フィールドの値に応じて、前記2以上のハッシュ関数のうちの一つのハッシュ関数を選択」する態様においては、そのフィールドの値が第3の値であるときに選択されるハッシュ関数と、そのフィールドの値が第3の値とは異なる第4の値であるときに選択されるハッシュ関数と、が同じであるような、第3の値と第4の値が存在してもよい。 Here, “select one hash function of two or more hash functions according to the value of the field” means that the hash function selected when the value of the field is the first value; It means a selection method in which the first value and the second value exist such that the hash function selected when the value of the field is a second value different from the first value is different. That is, the mode in which the same hash function is selected regardless of the value of the field is “a mode in which one hash function is selected from two or more hash functions according to the field value”. Is not included. On the other hand, in the aspect of “selecting one of the two or more hash functions according to the value of the field”, the hash function selected when the value of the field is the third value And a hash function selected when the field value is a fourth value different from the third value, even if there is a third value and a fourth value. Good.
D5.変形例5.
上記第2実施例においては、TTL混合ハッシュ関数926は、フローを特定することができるフィールドの値に基づいて得られるビット列を、TTLを64で割った剰余の数Vrだけ、右へビットローテートし、その値に生成多項式を適用してハッシュ値を得る。しかし、ハッシュ値の決定は、所定の二つのフィールドの値に基づいて、他の方法で行われることもできる。ただし、その方法は、第1のフィールドの値と、第2のフィールドの値と、に応じて、ハッシュ値を出力するものであることが好ましい。
D5. Modification 5
In the second embodiment, the TTL
ここで、「第1のフィールドの値と、〜第2のフィールドの値と、に応じて、ハッシュ値を出力する」とは、以下のような選択方法を意味する。すなわち、第1のフィールドの値が値V11であり第2のフィールドの値が値V21であるときのハッシュ値と、第1のフィールドの値がV11とは異なるV12であり第2のフィールドの値が値V21であるときのハッシュ値と、が異なるような、値V11と値V12と値V21とが存在する。さらに、第1のフィールドの値が値V11であり第2のフィールドの値が値V21であるときのハッシュ値と、第1のフィールドの値がV11であり第2のフィールドの値がV21とは異なるV22であるときのハッシュ値と、が異なるような、値V11と値V21と値V22とが存在する。 Here, “output the hash value according to the value of the first field and the value of the second field” means the following selection method. That is, the hash value when the value of the first field is the value V11 and the value of the second field is the value V21, and the value of the second field where the value of the first field is V12 different from V11. There are a value V11, a value V12, and a value V21 that are different from the hash value when the value is the value V21. Further, the hash value when the value of the first field is the value V11 and the value of the second field is the value V21, and the value of the first field is V11 and the value of the second field is V21. There are a value V11, a value V21, and a value V22 that have different hash values when they are different V22.
すなわち、第1のフィールドの値がどのような値であっても、第2のフィールドの値が同じである限り同じハッシュ値が出力される態様は、「第1のフィールドの値と、〜第2のフィールドの値と、に応じて、ハッシュ値を出力する」態様には含まれない。そして、第1のフィールドの値が同じである限り、第2のフィールドの値がどのような値をとっても同じハッシュ値が出力される態様は、「第1のフィールドの値と、〜第2のフィールドの値と、に応じて、ハッシュ値を出力する」態様には含まれない。
In other words, the same hash value is output as long as the value of the second field is the same regardless of the value of the first field. It is not included in the mode of outputting a hash value according to the value of the
一方で、「第1のフィールドの値と、〜第2のフィールドの値と、に応じて、ハッシュ値を出力する」態様においては、第1のフィールドの値が値V11であり第2のフィールドの値が値V21であるときのハッシュ値と、第1のフィールドの値がV11とは異なるV12であり第2のフィールドの値が値V21であるときのハッシュ値と、が同じである、値V11と値V12と値V21とが存在してもよい。さらに、第1のフィールドの値が値V11であり第2のフィールドの値が値V21であるときのハッシュ値と、第1のフィールドの値がV11であり第2のフィールドの値がV21とは異なるV22であるときのハッシュ値と、が同じである、値V11と値V21と値V22が存在してもよい。 On the other hand, in the aspect in which “the hash value is output according to the value of the first field and the value of the second field”, the value of the first field is the value V11 and the second field A hash value when the value of is the value V21 and a hash value when the value of the first field is V12 different from V11 and the value of the second field is the value V21 V11, value V12, and value V21 may exist. Further, the hash value when the value of the first field is the value V11 and the value of the second field is the value V21, and the value of the first field is V11 and the value of the second field is V21. There may be a value V11, a value V21, and a value V22 that have the same hash value when they are different V22.
D6.変形例6.
上記実施例における宛先アドレス抽出部721やハッシュ関数727a〜727d、TTL混合ハッシュ関数926等の機能部は、CPUがソフトウェアを実行することによって実現されてもよいし、ハードウェアによって実現されてもよい。
D6.
The functional units such as the destination
101〜108…転送装置
111〜114…端末
121〜134…回線
201〜203…転送装置101のルーティングテーブルのエントリ
211…宛先アドレスを格納する列
212…転送先数を格納する列
213…転送先1を格納する列
214…転送先2を格納する列
301〜302…転送装置102のルーティングテーブルのエントリ
401〜402…転送装置103のルーティングテーブルのエントリ
501〜508…通信フロー
511…通信フローの送信元アドレスを示す列
512…通信フローの宛先アドレスを示す列
513…通信フローのプロトコル番号を示す列
614…通信フローのパケットから求めたハッシュ値を示す列
615…通信フローの第1ホップの転送装置の符号を示す列
616…通信フローの第2ホップの転送装置の符号を示す列
617…通信フローの第3ホップの転送装置の符号を示す列
701…TTL切替型ロードバランス転送装置
710…パケット転送部
711〜714…インタフェース
720…TTL切替型転送先決定部
720c…転送先決定部
721…宛先アドレス抽出部
722…ルーティングテーブル検索部
723…ルーティングテーブル
724…フロー識別フィールド抽出部
725…TTLフィールド抽出部
726…ハッシュ関数選択部
727a〜727d…ハッシュ関数
730…転送先選択部
814…通信フローの端末がパケットを送信した時点のTTL値を示す列
815…通信フローの第1ホップの内容を示す列
816…通信フローの第1ホップの転送装置の符号を示す列
817…通信フローの第1ホップの転送装置がパケットを受信した時点のTTL値を示す列
818…通信フローの第1ホップの転送装置でのパケットから求めたハッシュ値を示す列
819…通信フローの第2ホップでの内容を示す列
820…通信フローの第2ホップの転送装置の符号を示す列
821…通信フローの第2ホップの転送装置がパケットを受信した時点のTTL値を示す列
822…通信フローの第2ホップの転送装置でのパケットから求めたハッシュ値を示す列
823…通信フローの第3ホップの転送装置の符号を示す列
901…TTL混合型ロードバランス転送装置
920…TTL混合型転送先決定部
926…TTL混合ハッシュ関数
1014…通信フローの端末がパケットを送信した時点のTTL値を示す列
1015…通信フローの第1ホップの内容を示す列
1016…通信フローの第1ホップの転送装置の符号を示す列
1017…通信フローの第1ホップの転送装置がパケットを受信した時点のTTL値を示す列
1018…通信フローの第1ホップの転送装置でのパケットから求めたハッシュ値を示す列
1019…通信フローの第2ホップでの内容を示す列
1020…通信フローの第2ホップの転送装置の符号を示す列
1021…通信フローの第2ホップの転送装置がパケットを受信した時点のTTL値を示す列
1022…通信フローの第2ホップの転送装置でのパケットから求めたハッシュ値を示す列
1023…通信フローの第3ホップの転送装置の符号を示す列
Ah…パケットのヘッダ部分の通知を示す矢印
Atr…パケットの転送先の通知を示す矢印
NT…ネットワーク
Tf…フローを示す表
Tp1…TTL切替型ロードバランス転送装置を採用した場合のパケット転送経路を示す表
Tp2…TTL混合型ロードバランス転送装置を採用した場合のパケット転送経路を示す表
Tpc…参考例のロードバランス転送装置を採用した場合のパケット転送経路を示す表
101-108 ... transfer devices 111-114 ... terminals 121-134 ... lines 201-203 ...
Claims (4)
パケットの宛先と対応づけて転送先としての前記他の装置を1以上格納するルーティングテーブルと、
パケットのフローの識別に用いることができるパケットの第1のフィールドの値を入力値とする2以上のハッシュ関数であって、同一の入力値に対して異なる出力値を出力する2以上のハッシュ関数と、
前記受信したパケットのそれまでの転送回数または残り転送可能回数を表す第2のフィールドの値に応じて、前記2以上のハッシュ関数のうちの一つのハッシュ関数を選択するハッシュ関数選択部と、
前記ルーティングテーブルにおいて、前記受信したパケットの宛先と対応づけられた転送先が2以上ある場合に、前記受信したパケットの前記第1のフィールドの値を入力値とする前記選択されたハッシュ関数の出力値に基づいて、前記2以上の転送先の中から前記受信したパケットの転送先を選択する転送先選択部と、を備える転送装置。 A transfer device for transferring a packet received via a network to another device connected to the network via the network;
A routing table that stores one or more other devices as transfer destinations in association with packet destinations;
Two or more hash functions that use the value of the first field of the packet that can be used to identify the flow of the packet as input values, and that output different output values for the same input value When,
A hash function selection unit that selects one hash function of the two or more hash functions according to the value of the second field representing the number of times the received packet has been transferred so far or the remaining number of times that transfer is possible;
In the routing table, when there are two or more transfer destinations associated with the destination of the received packet, the output of the selected hash function using the value of the first field of the received packet as an input value A transfer destination selecting unit that selects a transfer destination of the received packet from the two or more transfer destinations based on a value.
前記転送先選択部は、前記受信したパケットの宛先と対応づけられた転送先の数で前記出力値を割った場合の余りの値に応じて、前記2以上の転送先の中から前記受信したパケットの転送先を選択する、転送装置。 The transfer device according to claim 1,
The transfer destination selection unit receives the received value from the two or more transfer destinations according to a remainder value when the output value is divided by the number of transfer destinations associated with the destination of the received packet. A transfer device that selects a packet transfer destination.
パケットの宛先と対応づけて転送先としての前記他の装置を1以上格納するルーティングテーブルと、
前記受信したパケットの第1のフィールドであってフローの識別に用いることができる第1のフィールドの値と、前記受信したパケットの第2のフィールドであって前記受信したパケットのそれまでの転送回数または残り転送可能回数を表す第2のフィールドの値と、に応じて、ハッシュ値を出力するハッシュ関数と、
前記ルーティングテーブルにおいて、前記受信したパケットの宛先と対応づけられた転送先が2以上ある場合に、前記ハッシュ関数の出力値に基づいて、前記2以上の転送先の中から前記受信したパケットの転送先を選択する転送先選択部と、を備える転送装置。 A transfer device for transferring a packet received via a network to another device connected to the network via the network;
A routing table that stores one or more other devices as transfer destinations in association with packet destinations;
The value of the first field of the received packet that can be used for flow identification, and the second field of the received packet and the number of times the received packet has been transferred so far Or a hash function that outputs a hash value according to the value of the second field indicating the remaining transferable number of times,
In the routing table, when there are two or more transfer destinations associated with the destination of the received packet, transfer of the received packet from the two or more transfer destinations based on the output value of the hash function And a transfer destination selection unit that selects a destination.
前記転送先選択部は、前記受信したパケットの宛先と対応づけられた転送先の数で前記出力値を割った場合の余りの値に応じて、前記2以上の転送先の中から前記受信したパケットの転送先を決定する、転送装置。 The transfer device according to claim 3,
The transfer destination selection unit receives the received value from the two or more transfer destinations according to a remainder value when the output value is divided by the number of transfer destinations associated with the destination of the received packet. A transfer device that determines the transfer destination of a packet.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010129016A JP5204807B2 (en) | 2010-06-04 | 2010-06-04 | Packet transfer method and packet transfer apparatus having load balance function |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010129016A JP5204807B2 (en) | 2010-06-04 | 2010-06-04 | Packet transfer method and packet transfer apparatus having load balance function |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011259007A true JP2011259007A (en) | 2011-12-22 |
JP5204807B2 JP5204807B2 (en) | 2013-06-05 |
Family
ID=45474756
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010129016A Expired - Fee Related JP5204807B2 (en) | 2010-06-04 | 2010-06-04 | Packet transfer method and packet transfer apparatus having load balance function |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5204807B2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015517762A (en) * | 2012-05-11 | 2015-06-22 | オラクル・インターナショナル・コーポレイション | System and method for routing traffic between separate InfiniBand subnets based on source routing |
JP2016149757A (en) * | 2015-02-12 | 2016-08-18 | インテル コーポレイション | Technologies for modular forwarding table scalability |
US9665719B2 (en) | 2012-06-04 | 2017-05-30 | Oracle International Corporation | System and method for supporting host-based firmware upgrade of input/output (I/O) devices in a middleware machine environment |
KR20230057586A (en) * | 2021-10-22 | 2023-05-02 | 주식회사 메쥬 | System for monitoring biometric information, and method thereof |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008048010A (en) * | 2006-08-11 | 2008-02-28 | Alaxala Networks Corp | Device and method for relaying packet |
-
2010
- 2010-06-04 JP JP2010129016A patent/JP5204807B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008048010A (en) * | 2006-08-11 | 2008-02-28 | Alaxala Networks Corp | Device and method for relaying packet |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015517762A (en) * | 2012-05-11 | 2015-06-22 | オラクル・インターナショナル・コーポレイション | System and method for routing traffic between separate InfiniBand subnets based on source routing |
US9665719B2 (en) | 2012-06-04 | 2017-05-30 | Oracle International Corporation | System and method for supporting host-based firmware upgrade of input/output (I/O) devices in a middleware machine environment |
JP2016149757A (en) * | 2015-02-12 | 2016-08-18 | インテル コーポレイション | Technologies for modular forwarding table scalability |
KR20230057586A (en) * | 2021-10-22 | 2023-05-02 | 주식회사 메쥬 | System for monitoring biometric information, and method thereof |
KR102578659B1 (en) | 2021-10-22 | 2023-09-15 | 주식회사 메쥬 | System for monitoring biometric information, and method thereof |
Also Published As
Publication number | Publication date |
---|---|
JP5204807B2 (en) | 2013-06-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI554054B (en) | Load balancing in shortest-path-bridging networks | |
CN107580769B (en) | Method and apparatus for load balancing in a network switch | |
US9806994B2 (en) | Routing via multiple paths with efficient traffic distribution | |
CN103155500B (en) | For the method and system of the stateless load balance of network service flow | |
ES2711368T3 (en) | Distribution of two-tier packages with stateless first-level package distribution to a group of servers and distribution of second-level packages with status to a server within the group | |
US8908517B2 (en) | Traffic distribution across a plurality of attachment circuits of a multihome site with a computer network using hashing algorithm | |
EP3072274B1 (en) | Source routing with entropy-header | |
US8553537B2 (en) | Session-less load balancing of client traffic across servers in a server group | |
US7606161B2 (en) | Distributing information across equal-cost paths in a network | |
JP2019503153A (en) | Service traffic distribution method and apparatus | |
US20120163164A1 (en) | Method and system for remote load balancing in high-availability networks | |
US8036118B2 (en) | Inducing symmetry via multi topology routing | |
JP2018191290A (en) | Method, apparatus, and network system for implementing load balancing | |
US6611874B1 (en) | Method for improving routing distribution within an internet and system for implementing said method | |
JP5204807B2 (en) | Packet transfer method and packet transfer apparatus having load balance function | |
WO2013023989A1 (en) | Method and device for selecting next hop in a data network | |
US8948177B2 (en) | Policy based routing | |
WO2011095017A1 (en) | Method and routing device for implementing load sharing | |
CN108234269A (en) | Method for forwarding multicast message and device | |
US20110158082A1 (en) | Grid routing apparatus and method | |
KR100990769B1 (en) | Method to provide per-packet load balancing in multi protocol label switching network by assinging multi-label | |
KR100552518B1 (en) | The apparatus for implementation of ECMP in Network Processor | |
KR100507800B1 (en) | method for port selection in equal cost multipath router | |
Phung et al. | Internet acceleration with lisp traffic engineering and multipath tcp | |
Chen et al. | Unified Fast Rerouting Scheme with Service Function Chain Awareness |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120301 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130111 |
|
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: 20130122 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130215 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5204807 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160222 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |