Communication system, receiving device, relay device, reception method, and relay method

A receiving device includes a packet receiver that is coupled to a plurality of paths, and a packet transmitter that generates reception-acknowledgement information indicating that the packet receiver receives a packet when the packet receiver receives the packet over one of the paths, and that transmits the reception-acknowledgement information to a path that is among the plurality of paths and different from the path over which the packet receiver has received the packet.

CROSS-REFERENCE TO RELATED APPLICATION

This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2011-014922, filed on Jan. 27, 2011, the entire contents of which are incorporated herein by reference.

FIELD

The embodiments discussed herein are related to a packet communication system.

BACKGROUND

In recent years, there has been an increase in the number of cases in which a wireless technique is applied to a backhaul or the like that connects a base station of a mobile phone network to a core network so that an entire network is quickly built at low cost. In general, however, a wireless network has specific problems. Specifically, the wireless network has lower reliability than a wired network and a link rate of the wireless network is not constant.

For example, the rate of a wireless link may be dynamically changed by changing a modulation scheme and/or a coding rate based on a change in a wireless environment in order to maintain a bit error rate at a level that is equal to or lower than a certain value. Especially, for example, when the wireless environment becomes worse owing to a change in the weather or the like, the modulation scheme and/or the coding rate are changed to a lower-rate modulation scheme and/or a lower coding rate. Thus, the efficiency of transmission may be reduced and the rate of the wireless link may be significantly reduced. When the link rate is reduced, a packet is easily delayed or lost owing to overflow of a buffer with packets that are not transmitted.

As described above, a failure easily occurs in a wireless network, compared with a wired network. Thus, a technique for improving the reliability of the wireless network is necessary.

As a related technique for improving the reliability of a network, a redundancy is known.

Normally, an operator guarantees a very high utilization of, for example, 99.99% in a service level agreement (SLA) for a network system in some cases. However, a utilization that is calculated from a failure rate of a network device is lower than a utilization to be guaranteed in many cases. In addition, in a trunk over which data from multiple users is multiplexed, when a failure occurs in a single part of a network system, communication of a lot of users is affected by the failure. It is necessary to improve the reliability of a network by using a redundancy technique and thereby ensuring a detour path that is used when a failure occurs in a device.

For example, as illustrated inFIG. 1, the following technique has been proposed. In the technique, packet transfer devices that are a transmitting device and a receiving device each transfer a packet. The transmitting device copies a packet so as to generate a plurality of packets that are the same as the original packet. Then, the transmitting device transmits the generated packets over a plurality of communication paths to the receiving device. The receiving device selects a single packet from among the packets.

When the aforementioned redundancy technique is used, and a packet that propagates in one of the communication paths is lost, the receiving device may receive the same packet over the other communication path. In addition, when a packet that propagates in one of the communication paths is delayed, the receiving device may receive the same packet over the other communication path without a delay. Thus, the reliability of the network is improved.

Packet transfer devices that use redundant communication paths are disclosed in Japanese Laid-open Patent Publications Nos. 2007-209040 and 2009-147579 and Japanese Patents Nos. 4074268 and 4074304. In retransmission control that is performed in order to reliably transmit and receive a packet, a device that has received the packet transmits an ACK (acknowledgement response) to a device that has transmitted the packet in general. Specifically, when the receiving device receives the packet, the receiving device generates the ACK that includes information (a sequence number and the like) specifying the packet, and the receiving device transmits the ACK to the device that has transmitted the packet.

Thus, the transmitting device may confirm whether or not the receiving device has received the packet transmitted by the transmitting device. When the ACK is not received by the transmitting device, the transmitting device determines that the packet is not received by the receiving device, and the transmitting device retransmits the packet. Thus, the packet is reliably transmitted and received between the transmitting device and the receiving device.

However, when a wireless network is redundant in a simple manner, the following problem remains.

It is assumed that a wireless environment of one of redundant paths provided in a redundant wireless network becomes worse. Specifically, it is assumed that relay devices are sufficiently separated from each other and the wireless environment of only the one of the redundant paths becomes worse owing to the weather or the like, as illustrated inFIG. 2. Based on this assumption, the rate of only one of wireless links is easily reduced, and a packet is easily delayed or lost in the one of the wireless links.

Thus, a packet that is the same as a packet that has been already received by a receiving device over the other wireless link may be significantly delayed and received from a node located on the path whose wireless environment is worse. Therefore, transmission of the packet that is the same as the packet already received by the receiving device leads to waste of a wireless resource and is not preferable.

The aforementioned problem is described below in detail with reference toFIG. 2. As illustrated inFIG. 2, the relay devices are sufficiently separated from each other, and the quality of a wireless link that connects the transmitting device to the receiving device is reduced in one of the communication paths owing to a bad weather in some cases, or the link rate is reduced in some cases. When the link rate is reduced, a delay of transfer of a packet or a delay of buffering a packet increases in the communication path in which the quality of the wireless link is reduced.

Thus, a relay device that is located on the communication path in which the quality of the wireless link is reduced may delay transfer of a packet and transfer the packet that does not need to be transferred since the same packet has been received by the receiving device over the other communication path. The transfer of the packet is waste of the wireless resource.

In addition, a packet remains in a buffer until the packet is transferred. Thus, in the relay device, the buffer overflows since a packet that does not need to be transferred or is the same as the packet received from the other path by the receiving device remains in the buffer. This may cause a loss of the packet.

The same problem occurs not only when the link rate is reduced, but also when one of the plurality of paths that connect the receiving device to the transmitting device is much longer than the other path. It is highly likely that reception of a packet that is transferred over the longer path is delayed, compared with a packet that is transferred over the shorter path. Thus, a relay device that is located on the longer path may transfer a packet that is the same as a packet received by the receiving device over the other path and does not need to be transferred. The transfer of this packet leads to waste of the wireless resource.

It is considered that a packet is transferred only over a path that is one of redundant paths and whose link rate is higher than the other path in order to prevent such waste of a wireless resource. However, since the links are wireless, it is inevitable that a certain percentage of packets are lost. Thus, it is not realistic to transfer a packet only over the path whose link rate is higher than the other path. It is necessary to transfer the packet though the other path whose link rate is lower than the path.

Even when such a redundant configuration and general retransmission control are applied, and an ACK is transmitted in accordance with the general retransmission control, the transmitting device may only determine whether or not a packet that is transmitted by the transmitting device has been received. Thus, even when the ACK is transmitted in accordance with the general retransmission control, the aforementioned problem might not be solved.

SUMMARY

Accordingly, it is an object in one aspect of the embodiments to provide a receiving device includes a packet receiver that is coupled to a plurality of paths, and a packet transmitter that generates reception-acknowledgement information indicating that the packet receiver receives a packet when the packet receiver receives the packet over one of the paths, and that transmits the reception-acknowledgement information to a path that is among the plurality of paths and different from the path over which the packet receiver has received the packet.

DESCRIPTION OF EMBODIMENTS

Embodiments of a communication system disclosed herein, a receiving device disclosed herein, a relay device disclosed herein, a reception method disclosed herein, and a relay method disclosed herein are described below with reference to the accompanying drawings. Configurations that are illustrated in the drawings to be referenced for the embodiments are examples. The invention is not limited to the configurations. In Background, the wireless system is described above as an example. However, a system to which the invention is applied is not limited to a wireless system.

A first embodiment is described with reference toFIGS. 3 to 19.

FIG. 3is a diagram illustrating an entire network that includes a receiving device and relay devices according to the first embodiment. In the single physical network, a plurality of networks logically exist. In addition, a 2G core, a 3G core and a LTE core are logical networks and described later. Networks other than the logical networks are physical networks. The configuration of the network illustrated inFIG. 3may be achieved by a technique such as an ATM technique or a virtual local area network (VLAN) using Ethernet.

In the configuration of the network illustrated inFIG. 3, the receiving device and the relay devices according to the present embodiment may be configured in a ring topology and a mesh topology. For example, if the ring topology is used and a cell site switch2ais a transmitting device according to the present embodiment, the relay devices are a cell site switch2band a cell site switch2cand the receiving device is an aggregation switch2d.

The transmitting device, the relay devices, and the receiving device according to the present embodiment are not limited to the aforementioned example, and may be each applied to any of all cell site switches and aggregation switches.

A mesh network1is a network that is configured in a mesh form and in which each of nodes is coupled to one or more nodes. A ring network2is a network in which nodes are coupled to each other in a ring form. A star network3is a network in which a single node is coupled to nodes in a radial fashion. In the star network3, an aggregation switch or the like is centered, and individual base stations communicate with the aggregation switch, for example.

The 2G core4is, for example, a core network for a global system (GSM) for mobile communications and includes a mobile switching center (MSC) and a gateway MSC (GMSC). For example, the MSC provides network services such as management (registration of positions or the like) of movements, control of handover, transmission of a call, and reception of a call.

The 3G core5is, for example, a core network for IMT-2000 and includes a mobile switching center/visitor location register (MSC/VLR), a gateway MSC (GMSC), and a 3G serving GPRS support node/3G gateway GPRS support node (SGSN/GGSN). For example, the MSC/VLR and the GMSC are circuit switching networks, while the SGSN/GGSN is a packet switching network.

The LTE core6includes a serving gateway (S-GW), a PDN gateway (P-GW) and a mobility management entity (MME). For example, the S-GW transfers user data, the P-GW assigns an IP address, and the like. For example, the MME controls an S1-U interface and an eNodeB.

Aggregation switches7are a general term of switches arranged in the networks. Cell site switches8are a general term of switches arranged in base stations and have a role in logically multiplexing a plurality of networks.

The aggregation switches7and the cell site switches8are devices that multiplex TDM type traffic (over a T1/E1 link or the like) and packet type traffic (over GbE or the like) and switch the traffic.

Base transceiver stations (BTSs)9are wireless base stations that corresponds to the 2G core4. NodeBs10are wireless base stations that correspond to the 3G core5. Evolved NodeBs (eNodeBs)11are wireless base stations that correspond to the 4G core6. Most of functions that are included in a radio network controller (RNC) of a related technique are provided in each of the eNodeBs11.

FIG. 4is an outline diagram illustrating the receiving device and the relay devices according to the first embodiment.

As illustrated inFIG. 4, a packet transfer system20includes a transmitting device21, relay devices22aand22b, a receiving device23, communication paths26and28, and intermediate communication paths27aand27b. The transmitting device21includes a packet copier24, while the receiving device23includes a selector25.

The transmitting device21receives a packet from the communication path26and uses the packet copier24to copy the received packet. The transmitting device21transmits the copied packet to each of the intermediate communication paths27aand27b.

The receiving device23receives the packet from the transmitting device21over at least one of the relay devices22aand22b. When the receiving device23receives the packet, the receiving device23transmits an ACK message (indicating that the receiving device23has received the packet) to at least an intermediate communication path that is among the intermediate communication paths27aand27band different from the other intermediate communication path27aor27bfrom which the receiving device23has received the packet.

The ACK message indicates that the interested packet corresponding to the ACK message has been received by the receiving device23and that a packet has been received by the receiving device23before the reception of the interested packet. For example, as illustrated inFIG. 4, an ACK #4is transmitted to the intermediate communication path27b. In this case, the ACK #4indicates that packets #1to #3have already been received by the receiving device23.

When a packet that is newly received by the receiving device23is the same as a packet already received by the receiving device23, the packet that is newly received by the receiving device23is discarded by the selector25.

At least one of the relay devices22aand22breceives the ACK message from the receiving device23and discards the interested packet indicated by the ACK message and the packet that has been received before the reception of the interested packet and is indicated by the ACK message.

FIG. 5is a diagram illustrating a hardware configuration of each of the transmitting device and the receiving device according to the first embodiment.

As illustrated inFIG. 5, the transmitting device21and the receiving device23each include a central processing unit (CPU)31, a memory32, a line interface33and intermediate line interfaces34. The line interface33includes an LSI38and a connector39. The intermediate line interfaces34each include a digital signal processor (DSP)37, an amplifier36and an antenna35. In this Specification, CPU may be called as a “processor” or a computer.

The CPU31is an example of a constituent element that controls the other constituent elements. The CPU31executes an operating system (OS) stored in the memory32and application programs stored in the memory32, and thereby controls the constituent elements and reads and writes data from and in the memory32. In addition, the CPU31achieves functions (described later) of a packet receiver51, a sequence number adder52, a packet copier53and a packet transmitter54. The packet receiver51, the sequence number adder52, the packet copier53and the packet transmitter54are included in the transmitting device21. In addition, the CPU31achieves functions (described later) of a packet receiver61, a sequence number extractor62, a packet selector63, a packet transmitter64, a reception-acknowledgement information generator65and a reception-acknowledgement information transmitter66. The packet receiver61, the packet selector62, the sequence number extractor63, the packet transmitter64, the reception-acknowledgement information generator65and the reception-acknowledgement information transmitter66are included in the receiving device23.

The memory32is made up of a storage medium. For example, the memory32may be made up of a read-only memory (ROM) and a random-access memory (RAM). The ROM stores the OS, the application programs to be used for various processes, and the like. However, the OS, the application programs and the like may be stored in the RAM. The RAM includes a work area in which the OS and the application programs are loaded. In addition, the RAM stores data to be used by the receiving device23. The memory32includes a received sequence number management table67(described later), a reception-acknowledgement information management table68(described later), and an interface group table69(described later).

The LSI38is an electronic circuit formed by mounting a lot of transistors, diodes and the like on a semiconductor chip. The connector39of the transmitting device21is used to connect the transmitting device21to a wired line. The connector39of the receiving device23is used to connect the receiving device23to a wired line.

The DSP37is a processor that specializes in performing digital signal processing. For example, the DSP37modulates and demodulates a signal. The amplifier36is an electronic circuit (voltage amplifying electronic circuit, current amplifying electronic circuit, or voltage amplifying electronic circuit) that amplifies a voltage, a current or power of an input signal and outputs the signal.

The antenna35uses a radio wave as a medium to transmit the signal output from the amplifier36, for example. In addition, the antenna35receives a signal transmitted using a radio wave as a medium by the transmitting device21or the receiving device23and outputs the received signal to the amplifier36.

FIG. 6is a diagram illustrating a hardware configuration of each of the relay devices according to the first embodiment.

As illustrated inFIG. 6, the relay devices22each include a CPU41, a memory42and intermediate line interfaces34. The intermediate line interfaces34illustrated inFIG. 6are the same as the intermediate line interfaces34illustrated inFIG. 5.

The CPU41achieves functions (described later) of a packet receiver71, a packet transmitter73, a reception-acknowledgement information receiver74, a controller75and a reception-acknowledgement information transferrer76. The packet receiver71, the packet transmitter73, the reception-acknowledgement information receiver74, the controller75and the reception-acknowledgement information transferrer76are included in each of the relay devices22. The memory42includes a buffer memory72that temporarily stores a packet received by the interested relay device22.

FIG. 7is a block diagram illustrating the transmitting device according to the first embodiment.

As illustrated inFIG. 7, the transmitting device21includes the packet receiver51, the sequence number adder52, the packet copier53, the packet transmitter54, a line interface33aand the intermediate line interfaces34.

The packet receiver51receives a packet from the line interface33a. The sequence number adder52adds a sequence number to the packet received by the packet receiver51. The sequence number indicates the order of packets. The packet copier53copies the packet having the sequence number added thereto. The packet transmitter54transmits the packet copied by the packet copier53to the plurality of intermediate communication paths over the intermediate line networks34.

The configuration of a format of a packet that is processed by the transmitting device21is described with reference toFIG. 10. An IP packet81that is received by the packet receiver51includes data84and an IP header85. The sequence number adder52receives the IP packet81and adds a sequence number (SN)86to the IP packet81so as to generate a packet82. The packet82that has the sequence number86added thereto is copied by the packet copier53. After that, the packet transmitter54adds a header87and a trailer88to the packet82so as to generate a packet83. The header87includes information on the interested packet. The packet transmitter54transmits the packet83to the intermediate line interfaces34. The header87includes information of a destination of the packet and information of the length of the packet, while the trailer88includes an error detection code.

FIG. 8is a block diagram illustrating the receiving device according to the first embodiment.

As illustrated inFIG. 8, the receiving device23includes the packet receiver61, the sequence number extractor62, the packet selector63, the packet transmitter64, the reception-acknowledgement information generator65, the reception-acknowledgement information transmitter66, the received sequence number management table67, the reception-acknowledgement information management table68, the interface group table69, a line interface33band the intermediate line interfaces34.

The packet receiver61receives packets from the plurality of intermediate line interfaces34. In addition, the packet receiver61adds, to the packets, information that indicates the intermediate line interfaces from which the packet receiver61has received the packets. The sequence number extractor62references the sequence numbers from the packets output from the packet receiver61and outputs the referenced sequence numbers to the reception-acknowledgement information generator65. In addition, the sequence number extractor62outputs the packets having the sequence numbers added thereto to the packet selector63. The packet selector63extracts the sequence numbers from the packets output from the sequence number extractor62. The packet selector63selects a packet to be transferred to a downstream-side node and discards the sequence numbers. The packet transmitter64outputs the packet to the line interface33b. The reception-acknowledgement information generator65generates reception-acknowledgement information based on the sequence numbers extracted by the sequence number extractor63. The generated reception-acknowledgement information includes the sequence numbers extracted by the sequence number extractor63and flow IDs that indicate sequences of the packets. The reception-acknowledgement information transmitter66outputs the reception-acknowledgement information generated by the reception-acknowledgement information generator65to at least one of the intermediate line interfaces34aand34b. In this case, the at least one of the intermediate line interfaces, which transmits the reception-acknowledgement information, includes a path other than the intermediate line interfaces that have received the packets.

Since the receiving device23transmits an ACK (reception-acknowledgement information) to the path other than the intermediate line interfaces that have received the packets, the receiving device23may notify a relay device to which the ACK is transmitted of the fact that the receiving device23has received the packets.

The various tables that are held by the receiving device according to the first embodiment are described with reference toFIGS. 11 to 13. The tables are stored in the memory that is included in the receiving device23.

First, the received sequence number management table67is described with reference toFIG. 11.

The received sequence number management table67stores a flow ID91and a received sequence number92as illustrated inFIG. 11, while the flow ID91is associated with the received sequence number92. The flow ID91is an ID that identifies a sequence of packets having consecutive sequence numbers added thereto. For example, flow that corresponds to the flow ID91may be identified based on a combination of an address of the transmitting device and an address of the receiving device. The received sequence number92indicates the maximum sequence number of received packets of each of flows.

Next, the reception-acknowledgement information management table68is described with reference toFIG. 12.

The reception-acknowledgement information management table68stores a flow ID93and a reception acknowledgement sequence number94as illustrated inFIG. 12, while the flow ID93is associated with the reception acknowledgement sequence number94. The flow ID93is an ID that identifies a sequence of packets having consecutive sequence numbers added thereto. For example, flow that corresponds to the flow ID93may be identified based on the combination of the address of the transmitting device and the address of the receiving device. The reception acknowledgement sequence number94indicates the maximum sequence number of packets that have been received by the receiving device and acknowledged based on reception-acknowledgement information generated by the receiving device.

The received sequence number management table67and the reception-acknowledgement information management table68may be made up of a single table.

Lastly, the interface group table69is described with reference toFIG. 13.

The interface group table69stores a flow ID95and a line interface group96, while the flow ID95is associated with the line interface group96. The flow ID95is an ID that identifies a sequence of packets having consecutive sequence numbers added thereto. For example, flow that corresponds to the flow ID95may be identified by the combination of the address of the transmitting device and the address of the receiving device. The line interface group96indicates line interfaces to which the packets that correspond to the interested flow ID are copied and transmitted.

For example, it is assumed that a packet of flow #1is received by a line interface #1. Based on this assumption, when the interface group table69is referenced, line interfaces that are indicated by the interested line interface group69are the line interface #1and a line interface #2. The packet that is transmitted to a path of the line interface #2is delayed or lost. Thus, it is necessary to transmit reception-acknowledgement information to at least the line interface #2.

FIG. 9is a block diagram illustrating the relay device according to the first embodiment.

As illustrated inFIG. 9, the relay device22includes the packet receiver71, the buffer memory72, the packet transmitter73, the reception-acknowledgement information receiver74, the controller75, the reception-acknowledgement information transferrer76, a reception-acknowledgement information management table77and the intermediate line interfaces34.

The packet receiver71receives a packet from the intermediate line interface34. The controller75basically controls the packet accumulated in the buffer memory72in accordance with a first in first out (FIFO) algorithm. According to the FIFO algorithm, written data is read in order of writing the data. Specifically, the packet transmitter73reads packets accumulated in the buffer memory72in order of accumulating the packets under control of the controller75(described later). The controller75may reference header information of the packets and control priorities of the packets based on the header information. The packet transmitter73transmits the packet read from the buffer memory72to the intermediate line interface34. The reception-acknowledgement information receiver74receives reception-acknowledgement information that has been received from the receiving device23by the intermediate line interface34of the relay device22. The controller75controls writing and reading of a packet in and from the buffer memory72for each of flows. In addition, the controller75discards a packet stored in the buffer memory72based on the reception-acknowledgement information received by the reception-acknowledgement information receiver74. Furthermore, the controller75causes the reception-acknowledgement information transferrer76to transfer the reception-acknowledgement information to an upstream-side node (communication device). The reception-acknowledgement information transferrer76transfers the reception-acknowledgement information to the upstream-side node under control of the controller75. The reception-acknowledgement information management table77is the same as the reception-acknowledgement information management table described above.

When the thus-configured relay device that receives an ACK (reception-acknowledgement information) identifies, based on the ACK, that the receiving device has received a packet of an interested flow, the relay device does not transfer the same packet as the packet received by the receiving device and may discard the same packet as the packet received by the receiving device. Specifically, when the relay device according to the present embodiment receives the ACK from the receiving device, the relay device does not need to transfer the unnecessary packet.

Operations of the receiving device according to the first embodiment are described with reference toFIGS. 14 to 17.

FIG. 14illustrates a method for performing a process of extracting a sequence number, while the process is performed by the sequence number extractor62of the receiving device23.

The sequence number extractor62receives a packet from the packet receiver61(in operation101) and extracts a sequence number added to the packet (in operation102). In this case, the sequence number extractor62acquires information of an intermediate line interface from which the packet receiver61has received the packet.

The sequence number extractor62notifies the reception-acknowledgement information generator65of the extracted sequence number, a flow ID of the received packet, and the information of the intermediate line interface from which the packet receiver61has received the packet (in operation103).

The sequence number extractor62transfers, to the packet selector63, the packet having the sequence number added thereto (in operation104).

FIG. 15illustrates a method for performing a process of selecting a packet, while the process is performed by the packet selector63of the receiving device23.

The packet selector63receives the packet having the sequence number added thereto from the sequence number extractor62(in operation111). The packet selector63acquires the address of the transmitting device and the address of the receiving device from the packet and obtains a flow ID that corresponds to the address of the transmitting device and the address of the receiving device. The packet selector63uses the flow ID as a key and searches the received sequence number management table67for a received sequence number92associated with the flow ID (in operation112).

The packet selector63compares the sequence number of the received packet with the received sequence number obtained in operation112(in operation113).

As a result of the comparison made in operation113, when the sequence number of the received packet is larger than the received sequence number obtained in operation112, the packet selector63causes the received packet to be stored in the memory so that the packet may be transmitted at an appropriate time (in operation114). In addition, the packet selector63replaces the received sequence number of the received sequence number management table67with the sequence number of the received packet and updates the received sequence number management table67(in operation115). The packet selector63discards the sequence number added to the packet (in operation116).

As a result of the comparison made in operation113, when the sequence number of the received packet is smaller than the received sequence number obtained in operation112, the packet selector63discards the received packet (in operation117).

FIG. 16illustrates a method for performing a process of generating reception-acknowledgement information, while the process is performed by the reception-acknowledgement information generator65of the receiving device23.

The reception-acknowledgement information generator65receives the sequence number and the information of the intermediate line interface from the sequence number extractor62(in operation121). The reception-acknowledgement information generator65references the reception-acknowledgement information management table68and searches the reception-acknowledgement information management table68for an interested reception acknowledgement sequence number (in operation122).

Next, the reception-acknowledgement information generator65compares the sequence number of the received packet with the reception acknowledgement sequence number searched in the reception-acknowledgement information management table68(in operation123).

As a result of the comparison made in operation123, when the sequence number of the received packet is larger than the reception acknowledgement sequence number, the reception-acknowledgement information generator65generates reception-acknowledgement information and notifies the reception-acknowledgement information transmitter66of the reception-acknowledgement information and the information of the intermediate line interface (in operation124). In addition, the reception-acknowledgement information generator65replaces the reception acknowledgement sequence number of the reception-acknowledgement information management table68with the sequence number of the received packet and updates the reception-acknowledgement information management table68(in operation125).

As a result of the comparison made in operation123, when the sequence number of the received packet is smaller than the reception acknowledgement sequence number, the reception-acknowledgement information generator65discards the sequence number of the received packet (in operation126).

In the present embodiment, the reception-acknowledgement information generator65receives the sequence number and the information of the intermediate line interface from the sequence number extractor62. However, when the packet selector63does not discard the packet, the reception-acknowledgement information generator65may generate the reception-acknowledgement information.

FIG. 17illustrates a method for performing a process of transmitting the reception-acknowledgement information, while the process is performed by the reception-acknowledgement information transmitter66of the receiving device23.

The reception-acknowledgement information transmitter66receives the reception-acknowledgement information and the information of the intermediate line interface from the reception-acknowledgement information generator65(in operation131). The reception-acknowledgement information transmitter66references the interface group table69and searches the interface group table69for an interface group for transmitting the reception-acknowledgement information (in operation132).

The reception-acknowledgement information transmitter66transmits the reception-acknowledgement information to at least an intermediate line interface other than the intermediate line interface that has received the packet (in operation133).

In the present embodiment, the reception-acknowledgement information transmitter66may transmit the reception-acknowledgement information to the intermediate line interface that has received the packet and an intermediate line interface other than the intermediate line interface that has received the packet. Thus, the reception-acknowledgement information transmitter66may notify an upstream-side communication device (coupled to the intermediate line interface that has received the packet) that the receiving device23has received the packet.

In addition, it is preferable that the reception-acknowledgement information be transmitted to a relay device other than a relay device that is located on a path from which the receiving device23has received the packet. In addition, it is preferable that a distance between the relay devices be sufficiently large. This reduces a possibility that wireless environments of the plurality of paths simultaneously become worse. Thus, the effectiveness of the technique disclosed herein is easily provided.

The relay device according to the first embodiment is described with reference toFIGS. 18 and 19.

FIG. 18illustrates a method for performing a process of controlling reception-acknowledgement information upon reception of the reception-acknowledgement information, while the process is performed by the controller75of the relay device22.

The controller75receives reception-acknowledgement information from the reception-acknowledgement information receiver74(in operation141) and acquires, from the reception-acknowledgement information, a sequence number of a packet completely received by the receiving device23and a flow ID of the packet (in operation142).

The controller75compares the acquired sequence number with the maximum sequence number of packets that correspond to the interested flow and are stored in the buffer memory72(in operation143).

As a result of the comparison made in operation143, when the acquired sequence number is larger than the maximum sequence number, the controller75discards a packet having a smaller sequence number than the acquired sequence number (in operation144). Then, the controller75updates a reception acknowledgement sequence number94that is associated with the flow ID of the interested flow and included in the reception-acknowledgement information management table68(in operation145). The controller75causes the reception-acknowledgement information transferrer76to transfer the reception-acknowledgement information to an upstream-side communication device (in operation146).

As a result of the comparison made in operation143, when the acquired sequence number is smaller than the maximum sequence number, the controller75compares the acquired sequence number with the packets that correspond to the interested flow and are stored in the buffer memory72(in operation147).

As a result of the comparison made in operation147, when the acquired sequence number is equal to or larger than the minimum value of sequence numbers of the packets that correspond to the interested flow and are stored in the buffer memory72and is equal to or smaller than the maximum value of the sequence numbers of the packets that correspond to the interested flow and are stored in the buffer memory72, the controller75discards a packet having a sequence number that is equal to or smaller than the acquired sequence number (in operation148), and the controller75discards the reception-acknowledgement information (in operation149).

As a result of the comparison made in operation147, when the acquired sequence number is smaller than the minimum value of the sequence numbers of the packets that correspond to the interested flow and are stored in the buffer memory72, the controller75discards the reception-acknowledgement information (in operation150).

FIG. 19illustrates a method for performing a process of controlling a packet upon reception of the packet, while the process is performed by the controller75of the relay device22.

When the controller75receives a packet (in operation161), the controller75compares a sequence number of the received packet with a reception acknowledgement sequence number that is included in the reception-acknowledgement information management table77and corresponds to an interested flow (in operation162).

As a result of the comparison made in operation162, when the sequence number of the received packet is equal to or smaller than the reception acknowledgement sequence number, the controller75discards the packet (in operation163).

As a result of the comparison made in operation162, when the sequence number of the received packet is larger than the reception acknowledgement sequence number, the controller75causes the packet to be stored in the buffer memory72and prepares transfer of the packet (in operation164).

In addition, when the relay device has already transmitted a part of the packet that corresponds to the reception-acknowledgement information received from the receiving device, the relay device may discard an unsent part of the packet. This prevents waste of a wireless resource.

According to the first embodiment, the same packet is transmitted over redundant communication paths, and the receiving device receives the packet over a communication path and transmits the ACK to a communication path other than the communication path over which the receiving device has received the packet. Thus, the receiving device may notify an upstream-side node that the receiving device has received the packet. The relay device discards the same packet as the packet received by the receiving device. This prevents an unnecessary packet from being transferred. Therefore, according to the first embodiment, wireless resources may be efficiently used for transfer of packets.

It is preferable that a plurality of redundant paths that are located between the transmitting device and the receiving device do not join together in the packet transfer device according to the present embodiment. In this case, since the packet transfer according to the present embodiment is performed in an environment in which a packet is easily lost or delayed, the effect is noticeable.

A second embodiment is described with reference toFIGS. 20 to 22. A receiving device and a relay device according to the second embodiment are examples of the invention. The second embodiment is different from the first embodiment in the following features: reception-acknowledgement information to be generated by the reception-acknowledgement information generator65; and the reception-acknowledgement information management table68. In description of the second embodiment, the following diagrams are the same as those described in the first embodiment with reference toFIGS. 3 to 11,13to15, and17to19. The diagrams are; an entire network, an outline diagram, a hardware configuration, a block diagram, a format of a packet, a received sequence number management table, an interface group table, a process flow to be performed by the sequence number extractor, a process flow to be performed by the packet selector, and a process flow to be performed by the reception-acknowledgement information transmitter. In the following description, parts that are the same as the parts described in the first embodiment are indicated by the same reference numerals as in the first embodiment, and a description thereof is omitted.

In the second embodiment, the reception-acknowledgement information generator65of the receiving device23transmits, at each of constant periodic time intervals, reception-acknowledgement information to at least a path other than a path from which the receiving device23has received a packet. Alternatively, in the second embodiment, every time the receiving device23receives a certain number (of two or more) of packets of the same flow, the reception-acknowledgement information generator65of the receiving device23transmits reception-acknowledgement information to at least a path other than a path from which the receiving device23has received the packets. For these cases, the reception-acknowledgement information generator65has a non-reception acknowledgement counter.

The non-reception acknowledgement counter counts the number of received packets in order to transmit reception-acknowledgement information every time the receiving device23receives the certain number of packets. For example, it is assumed that the reception-acknowledgement information generator65generates reception-acknowledgement information when the receiving device23receives 10 packets. Based on this assumption, the non-reception acknowledgement counter counts the number of the received packets when the reception-acknowledgement information generator65receives sequence numbers extracted by the sequence number extractor62.

Flows of processes to be performed by the reception-acknowledgement information generator65according to the second embodiment are described with reference toFIGS. 20 to 22.

FIG. 20illustrates a reception-acknowledgement information management table according to the second embodiment.

As illustrated inFIG. 20, the reception-acknowledgement information management table170stores a flow ID171, a consecutive reception acknowledgement sequence number172and a selection reception acknowledgement bitmap173, while the flow ID171, the consecutive reception acknowledgement sequence number172and the selection reception acknowledgement bitmap173are associated with each other.

The consecutive reception acknowledgement sequence number172indicates that packets that have sequence numbers that are equal to or smaller than the consecutive reception acknowledgement sequence number172have been received by the receiving device23.

The selection reception acknowledgement bitmap173has a most significant bit that indicates a sequence number that is larger by 1 than the consecutive reception acknowledgement sequence number172. In addition, the selection reception acknowledgement bitmap173has a least significant bit that indicates a sequence number that is larger by 16 than the consecutive reception acknowledgement sequence number172(when the bitmap has 16 bits).

When a bit of the selection reception acknowledgement bitmap173is 0, the bit indicates that a packet that has a sequence number corresponding to the bit is not received by the receiving device23. When a bit of the selection reception acknowledgement bitmap173is 1, the bit indicates that a packet that has a sequence number corresponding to the bit has been received by the receiving device23.

In an example illustrated inFIG. 20, packets that correspond to flow #1and have sequence numbers of up to 245 have been consecutively received by the receiving device23; a packet that corresponds to the flow #1and has a sequence number of246is not received by the receiving device23; a packet that corresponds to the flow #1and has a sequence number of247has been received by the receiving device23; and a packet that corresponds to the flow #1and has a sequence number of261is not received by the receiving device23.

FIG. 21illustrates a method for performing a process of generating reception-acknowledgement information upon reception of information of a sequence number, while the process is performed by the reception-acknowledgement information generator65of the receiving device23.

When the reception-acknowledgement information generator65receives information of a sequence number from the sequence number extractor62(in operation181), the reception-acknowledgement information generator65updates the reception-acknowledgement information management table170when necessary (in operation182). Then, the reception-acknowledgement information generator65increments the non-reception acknowledgement counter (in operation183).

For example, it is assumed that the reception-acknowledgement information generator65receives a sequence number of10from the intermediate line interface34aand receives the same sequence number of10from the intermediate line interface34bafter the reception of the sequence number of10from the intermediate line interface34a. Based on this assumption, the reception-acknowledgement information generator65updates the reception-acknowledgement information management table170based on the first reception of the sequence number of10from the intermediate line interface34a. Thus, the reception-acknowledgement information generator65does not need to update the reception-acknowledgement information management table170when the reception-acknowledgement information generator65receives the sequence number of10from the intermediate line interface34b. On the other hand, the reception-acknowledgement information generator65needs to update the reception-acknowledgement information management table170when the reception-acknowledgement information generator65receives a sequence number that is not received by the reception-acknowledgement information generator65from the intermediate line interfaces34aand34b. Specifically, the reception-acknowledgement information generator65changes an interested bit of the bitmap from 0 to 1.

FIG. 22illustrates a method for performing a process generating reception-acknowledgement information, while the process is performed by the reception-acknowledgement information generator65of the receiving device23in order to transmit reception-acknowledgement information.

The reception-acknowledgement information generator65determines whether or not it is time to transmit reception-acknowledgement information (in operation191) or whether or not a certain time period elapses after output of the previous reception-acknowledgement information. When it is time to transmit the reception-acknowledgement information, the reception-acknowledgement information generator65generates the reception-acknowledgement information based on the reception-acknowledgement information management table170and outputs the reception-acknowledgement information to the reception-acknowledgement information transmitter66(in operation192). After the reception-acknowledgement information generator65outputs the reception-acknowledgement information, the reception-acknowledgement information generator65resets the non-reception acknowledgement counter (in operation193). In this case, the reception-acknowledgement information generator65resets a timer for measuring a time to transmit reception-acknowledgement information.

Even when it is not time to transmit the reception-acknowledgement information in operation191, the reception-acknowledgement information generator65confirms whether or not a value that is indicated by the non-reception acknowledgement counter exceeds a predetermined threshold (in operation194). When the value that is indicated by the non-reception acknowledgement counter exceeds the predetermined threshold, reception-acknowledgement information generator65generates the reception-acknowledgement information based on the reception-acknowledgement information management table170and outputs the reception-acknowledgement information to the reception-acknowledgement information transmitter66(in operation192).

After the reception-acknowledgement information generator65outputs the reception-acknowledgement information, the reception-acknowledgement information generator65resets the non-reception acknowledgement counter (in operation193). In this case, the reception-acknowledgement information generator65sets the timer for measuring a time to transmit reception-acknowledgement information. In addition, when the value that is indicated by the non-reception acknowledgement counter does not exceed the predetermined threshold in operation194, the process returns to operation191so that the reception-acknowledgement information generator65determines whether or not it is time to transmit reception-acknowledgement information.

According to the second embodiment, since the receiving device transmits an ACK (reception-acknowledgement information) to an upstream-side node at each of the constant periodic time intervals or every time the receiving device23receives the certain number of packets of the same flow, unnecessary loads are not applied to the receiving device, the relay devices and the like, and it is possible to prevent an unnecessary packet from being transferred, compared with the case in which the receiving device transmits an ACK for each of packets received by the receiving device. Thus, according to the second embodiment, wireless resources may be efficiently used for transfer of packets.

A third embodiment is described with reference toFIGS. 23 to 27. A receiving device and a relay device according to the third embodiment are examples of the invention. A transmitting device and the receiving device according to the third embodiment each have a retransmission controller. This feature is different from the first embodiment.

In description of the third embodiment, the following diagrams are the same as those described in the first embodiment with reference toFIGS. 3 to 13,15to17, and19. The diagrams are; an entire network, an outline diagram, a hardware configuration, a format of a packet, a received sequence number management table, a reception-acknowledgement information management table, an interface group table, a process flow to be performed by the packet selector, a process flow to be performed by the reception-acknowledgement information generator, a process flow to be performed by the reception-acknowledgement information transmitter, and a process flow to be performed by the controller. In the following description, parts that are the same as the parts described in the first embodiment are indicated by the same reference numerals as in the first embodiment, and a description thereof is omitted.

In the third embodiment, the transmitting device21has a retransmission controller201and the constituent parts of the transmitting device21according to the first embodiment, as illustrated inFIG. 23. The retransmission controller201adds a sequence number to a packet and retransmits the packet that needs to be retransmitted. In this case, the retransmission controller201retransmits the packet using Automatic Repeat-reQuest (ARQ), for example.

In the third embodiment, the receiving device23has a retransmission controller202and the constituent parts (of the receiving device23according to the first embodiment) other than the sequence number extractor, as illustrated inFIG. 24. The retransmission controller202updates the reception-acknowledgement information management table68upon reception of a packet and acquires or discards a sequence number added to the packet. The retransmission controller202generates reception-acknowledgement information and transmits the reception-acknowledgement information to the reception-acknowledgement information transmitter66.

The configuration of the relay device22according to the third embodiment is the same as the configuration of the relay device22according to the first embodiment. However, the relay device22according to the third embodiment does not discard reception-acknowledgement information and transfers the reception-acknowledgement information to an upstream-side node. This feature is different from the first embodiment.

The flow of a process that is performed by the retransmission controller202of the receiving device23upon reception of a packet is described with reference toFIG. 25.

When the retransmission controller202receives a packet (in operation211), the retransmission controller202references a sequence number added to the packet and updates the reception-acknowledgement information management table68(in operation212). After the retransmission controller202updates the reception-acknowledgement information management table68, the retransmission controller202discards the sequence number added to the packet (in operation213) and increments the non-reception acknowledgement counter (in operation214).

The flow of a process that is performed by the retransmission controller202of the receiving device23in order to transmit an ACK (reception-acknowledgement information) is described with reference toFIG. 26.

The retransmission controller202determines whether or not it is time to transmit an ACK (reception-acknowledgement information) (in operation221). When it is time to transmit the ACK (reception-acknowledgement information), the retransmission controller202generates the reception-acknowledgement information based on the reception-acknowledgement information management table68and transmits the reception-acknowledgement information to the reception-acknowledgement information transmitter66(in operation222). After the transmission of the reception-acknowledgement information, the retransmission controller202resets the non-reception acknowledgement counter (in operation223).

The flow of a process that is performed by the controller75of the relay device22according to the third embodiment is described with reference toFIG. 27.

The controller75receives the reception-acknowledgement information from the reception-acknowledgement information receiver74(in operation231) and acquires, from the reception-acknowledgement information, a sequence number added to the packet completely received by the receiving device23(in operation232).

The controller75compares the acquired sequence number with the maximum sequence number of packets that are stored in the buffer memory72and correspond to an interested flow (in operation233).

As a result of the comparison made in operation233, when the acquired sequence number is larger than the maximum sequence number, the controller75discards a packet that has a smaller sequence number than the acquired sequence number (in operation234). Then, the controller75updates a reception acknowledgement sequence number132that is included in the reception-acknowledgement information management table77and corresponds to the interested flow (in operation235). The controller75causes the reception-acknowledgement information transferrer76to transfer the reception-acknowledgement information to an upstream-side communication device (in operation236).

As a result of the comparison made in operation233, when the acquired sequence number is smaller than the maximum sequence number, the controller75compares the acquired sequence number with the packets that are stored in the buffer memory72and correspond to the interested flow (in operation237). As a result of the comparison made in operation237, when the acquired sequence number is equal to or larger than the minimum value of sequence numbers of the packets that are stored in the buffer memory72and correspond to the interested flow, and is equal to or smaller than the maximum value of the sequence numbers of the packets that are stored in the buffer memory72and correspond to the interested flow, the controller75discards a packet that has a sequence number that is equal to or smaller than the acquired sequence number (in operation238). Then, the controller75causes the reception-acknowledgement information transferrer76to transfer the reception-acknowledgement information to the upstream-side communication device (in operation236).

As a result of the comparison made in operation237, when the acquired sequence number is smaller than the minimum value of the sequence numbers of the packets that are stored in the buffer memory72and correspond to the interested flow, the controller75causes the reception-acknowledgement information transferrer76to transfer the reception-acknowledgement information to the upstream-side communication device (in operation236).

According to the third embodiment, the relay device uses the ACK to be transferred according to the ARQ control and discards a packet. Thus, in the third embodiment, a function that is dedicated to generate an ACK is not necessary in the receiving device provided in the redundant system. Therefore, according to the third embodiment, wireless resources may be efficiently used for transfer of packets in the simple configuration.

A fourth embodiment is described with reference toFIGS. 28 and 29. A receiving device and a relay device according to the fourth embodiment are examples of the invention. The receiving device has a modulation scheme management unit in the fourth embodiment. This feature is different from the first embodiment.

In description of the fourth embodiment, the following diagrams are the same as those described in the first embodiment with reference toFIGS. 3 to 7,9to16,18, and19. The diagrams are; an entire network, an outline diagram, a hardware configuration, a block diagram illustrating a transmitting device and a relay device, a format of a packet, a received sequence number management table, a reception-acknowledgement information management table, an interface group table, a process flow to be performed by the sequence number extractor, a process flow to be performed by the packet selector, a process flow to be performed by the reception-acknowledgement information generator, and processes flows to be performed by the controller. In the following description, parts that are the same as the parts described in the first embodiment are indicated by the same reference numerals as in the first embodiment, and a description thereof is omitted.

As illustrated inFIG. 28, the receiving device23according to the fourth embodiment has the constituent parts of the receiving device23according to the first embodiment and modulation scheme management units241that are included in the intermediate line interfaces34. The modulation scheme management units241each determine a modulation scheme based on a communication environment of the interested intermediate line interface, a link rate and the like and instructs an interested relay device to use the determined modulation scheme. In addition, the modulation scheme management units241each manage the modulation scheme used by the interested intermediate line interface and output information of the modulation scheme used by the interested intermediate line interface to the reception-acknowledgement information transmitter66.

The relay device22modulates a packet using the modulation scheme in accordance with the instruction provided by the receiving device23. When the intermediate line interface34of the relay device22receives, from the receiving device23, the instruction that specifies the modulation scheme, the DSP37modulates a signal (to be transferred) in accordance with the modulation scheme specified by the instruction.

FIG. 29illustrates a method for performing a process of transmitting reception-acknowledgement information, while the process is performed by the reception-acknowledgement information transmitter66of the receiving device23.

The reception-acknowledgement information transmitter66receives reception-acknowledgement information and information of an intermediate line interface from the reception-acknowledgement information generator65(in operation251). Then, the reception-acknowledgement information transmitter66references the interface group table69and searches the interface group table69for an interface group for transmitting the reception-acknowledgement information (in operation252).

The reception-acknowledgement information transmitter66receives, from the modulation scheme management units241of the intermediate line interfaces34, information of modulation schemes used by the intermediate line interfaces (in operation253).

The reception-acknowledgement information transmitter66transmits the reception-acknowledgement information to an interface that is not an interface (that has received a packet) and uses a multi-valued modulation scheme with a modulation valued that is smaller than a modulation valued of a modulation scheme that is used by the interface that has received the packet (in operation254).

According to the fourth embodiment, it is possible to transmit reception-acknowledgement information to an interface that is among intermediate line interfaces other than an intermediate line interface (that has received a packet) and does not receive a packet since the packet is highly likely to be lost or delayed. It is, therefore, possible to prevent waste of a wireless resource.

According to the aforementioned embodiments, the receiving device disclosed herein, the relay device disclosed herein, the reception method disclosed herein, and the relay method disclosed herein each have the effect of efficiently using a wireless resource.