Method for retransmitting packet, data server using the same, and packet retransmitting system

A method for retransmitting packet, a data server using the same and a packet retransmitting system are provided. The packet retransmitting system includes a control server, a network switch, a plurality of upper nodes, and the data server. Terminal nodes download data packets provided by the data server through the upper nodes, respectively. The data server receives missing packet reports in which the data packets correspond to the terminal nodes via the network switch, obtains network topology information related to the terminal nodes from the control server, encodes missing packets in the data packets according to the missing packet reports and the network topology information, and transmits encoded packets encoded from the missing packets to the terminal nodes via the network switch and each of the upper nodes.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims the priority benefit of Taiwan application serial no. 104101088, filed on Jan. 13, 2015. The entirety of the above-mentioned patent application is hereby incorporated by reference herein and made a part of this specification.

BACKGROUND OF THE DISCLOSURE

Field of the Disclosure

The disclosure relates to a method for retransmitting packet, and more particularly, relates to a method for retransmitting packet based on network topology information, a data server using the same and a packet retransmitting system.

Description of Related Art

Under the existing network environment for multimedia data transmission, a network multicast method of the network communication technology is usually required to play multimedia data in real-time for multiparty. The so-called group broadcasting is to simultaneously transmit the same data to multiple receiver hosts that require said data. The hosts belong to the same group may be distributed over different networks to possibly include the same network address, and each of the hosts may join or leave one specific group freely. Accordingly, as compared to the unicast technique which only conducts transmission to one single network node each time, the network multicasting technique is capable of further reducing usage for both network bandwidth and network addresses.

On the other hand, in the wireless network environment, due to problems such as multipath fading and interference in the wireless channel, network packet loss often occurs and leads to a packet retransmission. In the existing technologies, owing to lack of consideration for the connection relation between the nodes in the wireless LAN, retransmitting missing packet by multicasting may cause a massive amount of transmissions for invalid and redundant packets. Such phenomenon not only occupies the network bandwidth and increases a number of times for conducting the packet retransmission but also results in packet loss at destination ends due to the packet collision. Accordingly, it is necessary to provide a method for retransmitting packet that is capable of improving an efficiency of the packet retransmission.

SUMMARY OF THE DISCLOSURE

The disclosure is directed to a method for retransmitting packet, a data server using the same and a packet retransmitting system, which are capable of encoding missing packets based on network topology information and transmitting encoded packets to corresponding terminal nodes by multicasting, so as to effectively improve the efficiency of the packet retransmission.

The disclosure proposes a method for retransmitting packet which is adapted for a data server, and the method includes the following steps. A plurality of data packets is transmitted. A plurality of missing packet reports in which the data packets correspond to a plurality of terminal nodes is received. Network topology information related to the terminal nodes is obtained. Missing packets in the data packets is encoded according to the missing packet reports and the network topology information. A plurality of encoded packets encoded from the missing packets is transmitted.

In an embodiment of the disclosure, the step of encoding the missing packets in the data packets according to the missing packet reports and the network topology information includes the following steps. A plurality of packet combinations of the missing packets is calculated according to the missing packet reports and the network topology information. The missing packets are encoded according to the packet combinations, so as to generate the encoded packets.

In an embodiment of the disclosure, the step of calculating the packet combinations of the missing packets according to the missing packet reports and the network topology information includes the following steps. An upper node to which each of the terminal nodes belongs is determined according to the network topology information. Each of the packet combinations is calculated according to the upper node to which each of the terminal nodes belongs and the corresponding missing packet reports.

In an embodiment of the disclosure, each of the missing packet reports includes an identification of one of the terminal nodes and an indication corresponding to the missing packets, the network topology information includes an address lookup table of the terminal nodes and the upper node to which the terminal nodes belong, and the step of determining the upper node of each of the terminal nodes according to the network topology information includes the following steps. The address lookup table is looked up according to the identification of one of the terminal nodes in each of the missing packet reports to determine the upper node of each of the terminal nodes.

The disclosure proposes a data server, and the data server includes a communication unit, a storage unit and a processing unit. The communication unit is configured to transmit a plurality of data packets. The storage unit is configured to store network topology information. The processing unit is coupled to the communication unit and the storage unit. The processing unit receives a plurality of missing packet reports in which the data packets correspond to a plurality of terminal nodes through the communication unit and obtains the network topology information related to the terminal nodes through the communication unit, and the processing unit encodes a plurality of missing packets in the data packets according to the missing packet reports and the network topology information and transmits a plurality of encoded packets encoded from the missing packets through the communication unit.

In an embodiment of the disclosure, the processing unit calculates packet combinations of the missing packets according to the missing packet reports and the network topology information, and encodes the missing packets according to the packet combinations to generate the encoded packets.

In an embodiment of the disclosure, the processing unit determines an upper node to which each of the terminal nodes belongs according to the network topology information, and calculates each of the packet combinations according to the upper node to which each of the terminal nodes belongs and the corresponding missing packet reports.

In an embodiment of the disclosure, each of the missing packet reports includes an identification of one of the terminal nodes and an indication corresponding to the missing packets, the network topology information includes an address lookup table of the terminal nodes and the upper node to which the terminal nodes belong, and the processing unit looks up the address lookup table according to the identification of one of the terminal nodes in each of the missing packet reports to determine the upper node of each of the terminal nodes.

The disclosure proposes a packet retransmitting system, and the packet retransmitting system includes a control server, a network switch, a plurality of upper nodes, and the data server. The control server is configured to establish network topology information. The network switch is coupled to the control server. The upper nodes are individually coupled to the network switch, where each of the upper nodes provides a network service to a plurality of terminal nodes. The data server is coupled to the control server and the network switch. The terminal nodes download data packets provided by the data server through the upper nodes, respectively. The data server receives missing packet reports in which the data packets correspond to the terminal nodes via the network switch, obtains network topology information related to the terminal nodes from the control server, encodes missing packets in the data packets according to the missing packet reports and the network topology information, and transmits encoded packets encoded from the missing packets to the terminal nodes via the network switch and each of the upper nodes.

In an embodiment of the disclosure, the data server calculates packet combinations of the missing packets according to the missing packet reports and the network topology information, and encodes the missing packets according to the packet combinations to generate the encoded packets.

In an embodiment of the disclosure, the data server determines one of the upper nodes to which each of the terminal nodes belongs according to the network topology information, and calculates each of the packet combinations according to one of the upper nodes to which each of the terminal nodes belongs and the corresponding missing packet reports.

In an embodiment of the disclosure, each of the missing packet reports includes an identification of one of the terminal nodes and an indication corresponding to the missing packets, the network topology information includes an address lookup table of the terminal nodes and one of the upper nodes to which the terminal nodes belong, and the data server looks up the address lookup table according to the identification of one of the terminal nodes in each of the missing packet reports to determine one of the upper nodes to which each of the terminal nodes belongs.

In an embodiment of the disclosure, each of the encoded packets includes address information of one of the corresponding upper nodes, the network switch receives the encoded packets from the data server and transmits each of the encoded packets individually to one of the corresponding upper nodes according to the corresponding address information of each of the encoded packets, and each of the upper nodes multicasts one of the received encoded packets to the terminal nodes.

In an embodiment of the disclosure, the network switch includes an OpenFlow switch, and the control server includes a software-define networking (SDN) controller, the OpenFlow switch integrates the missing packet reports into a missing packet lookup table according to the address information of the corresponding upper nodes, and the software-defined network controller establishes the network topology information based on the missing packet lookup table.

Based on the above, the data server in the packet retransmitting system according to the embodiments of the disclosure is capable of encoding the missing packets required by the terminal nodes according to the network topology information related to the terminal nodes and provided by the control server, and multicasting the encoded packets to the terminal nodes through the upper node to which each of the terminal nodes belong. Accordingly, the packet retransmitting system according to the embodiments of the disclosure is capable of effectively improving the efficiency of the multicasting without increasing computation and transmission costs for wireless nodes.

DESCRIPTION OF THE EMBODIMENTS

In a system architecture of a software-define networking (SDN), a SDN controller is used to perform centralized control for network services, and decide, for example, a packet transmission path for all the network entities (e.g., a router, a switch, a terminal device such as a cell phone, a notebook computer or a tablet computer, etc.) in the system architecture, so as to improve a network capacity. In addition, with a packet retransmission mechanism using a network coding method, missing packets may be randomly combined for broadcasting to network nodes that need said missing packets, such that the missing packets may be received by multiple network nodes in one single transmission to thereby reduce an amount of transmissions required by the retransmission. Accordingly, in the embodiments of the disclosure, the network coding and the system architecture of SDN are combined, so that a data server (e.g., a multimedia data provider server) may encode the missing packets according to network topology information provided by a control server (e.g., the SDN controller) and multicast encoded packets to the terminal devices by corresponding upper nodes (e.g., an access point (AP), the switch or the router). As such, the network coding may be optimized for missing or error packets of the different terminal nodes, so as to improve efficiencies of the packet retransmission and the multicasting. Reference will now be made to the present preferred embodiments of the disclosure, and it will be apparent to those skilled in the art that adjustments and applications can be correspondingly made to the following embodiments based on demands instead of being limited by the content in the following description.

FIG. 1is a block diagram illustrating a packet retransmitting system according to an embodiment of the disclosure. Referring toFIG. 1, a packet retransmitting system10includes a control server110, a network switch130, a data server150, upper nodes1701to170i, terminal nodes1901to190jand1951to195k, where i, j and k are positive integers. It should be noted that, according to design requirements for applying the embodiments of the disclosure, amounts of the upper nodes1701to170iand the terminal nodes1901to190jand1951to195kare changeable and not particularly limited in the present embodiment of the disclosure.

The control server110may be a SDN controller or other network entities (e.g., a router, a server, a personal computer, etc.) including SDN functions (e.g., network topology and packet routing in the packet retransmitting system10). The control server110is configured to establish network topology information related to the upper nodes1701to170i, the terminal nodes1901to190jand1951to195k(e.g., address information of the upper nodes1701to170i(e.g., an Internet Protocol (IP) address, a media access control (MAC), etc.), ports for coupling the upper nodes1701to170ito the network switch130or the upper nodes1701to170irespectively coupled to the terminal nodes1901to190jand1951to195k).

The network switch130may be an OpenFlow switch, any switches or routers which support the OpenFlow protocol, or a virtual switch (e.g., the OpenFlow vSwitch) configured in an electronic device (e.g., a personal computer, a notebook computer, a smart phone, etc.), and the network switch130is coupled to the control server110and the data server150.

The data server150may be a server capable of storing and providing data including multimedia files, documents and so on, such as a multimedia server, a database server or a cloud server, but a type of the server is not limited to the above. The data server150is coupled to the control server110and the network switch130.

FIG. 2is a block diagram illustrating the data server150according to an embodiment of the disclosure. Referring toFIG. 2, the data server150includes a communication unit151, a storage unit153and a processing unit155. The communication unit151is coupled to the control server110and the network switch130in a wired manner (e.g., a cable, an optical fiber, etc.) or in a wireless manner (e.g., a radio, etc.), so that the data server150is capable of transmitting data packets (e.g., the data packets of multimedia data, document, system data, etc.).

The storage unit153may be any movable or fixed type of a random access memory (RAM), a read-only memory (ROM), a flash memory, a hard Disk drive (HDD), a solid state drive (SSD) or other similar devices, or a combination of the above-mentioned devices. The storage unit153is configured to store the network topology information provided by the control server110and aforesaid data packets, and the network topology information may refer to related description of the control server110, which is not repeated hereafter.

The processing unit155is, for example, a central processor (CPU) or other programmable devices for general purpose or special purpose such as a microprocessor and a digital signal processor (DSP), a programmable controller, an application specific integrated circuit (ASIC), a system on chip (SoC) or other similar elements or a combination of above-mentioned elements. The processing unit155is coupled to the communication unit151and the storage unit153. In the present embodiment, the processing unit155is configured to process all tasks for the data server150in the present embodiment.

The upper node1701to170imay be an access point (AP), a switch, a router, a hub supporting the Wi-Fi technology, or any type of base stations supporting mobile network technologies (e.g., wideband code division multiplex access (WCDMA), long term evolution (LTE), etc.) proposed by the third generation partnership project (3GPP), which are capable of providing the network services to the coupled (connected through the wireless or the wired method) terminal nodes1901to190jand1951to195k(e.g., the cell phone, the notebook computer or the tablet computer). The network switch130includes, for example, a plurality of ports, so that the upper nodes1701to170imay be coupled to the ports, respectively.

FIG. 3is a flowchart illustrating method for retransmitting packet of the data server150according to an embodiment of the disclosure. Referring toFIG. 3, the method of the present embodiment is adapted for the packet retransmitting system10ofFIG. 1and the data server150ofFIG. 2. Hereinafter, various components in the packet retransmitting system10ofFIG. 1and the data server150ofFIG. 2are used to describe the method for retransmitting packet according to the embodiments of the disclosure. Each step in the method may be adjusted based on actual conditions, and the disclosure is not limited thereto.

In step S310, the processing unit155transmits data packets (e.g., the data packets of multimedia data, document, system data, etc.) through the communication unit151. In other words, the terminal nodes1901to190jand1951to195kdownload the data packets provided by the data server150individually through each of the upper nodes1701to170i. For instance, when the terminal nodes1901to190jand1951to195kintend to download the same video from the data server150, according to a packet length restricted by the transmission protocol, the data server150divides a video file into a number (e.g., 3, 20, 100, etc.) of the data packets to be transmitted to the terminal nodes1901to190jand1951to195ksequentially through the network switch130and the upper nodes1701to170i. It should be noted that, the data packets transmitted at the time is not yet encoded (e.g., by the network coding).

In step S330, the processing unit155receives missing packet reports in which the terminal nodes1901to190jand1951to195kcorrespond to the data packets via the network switch130through the communication unit151.

Specifically, after downloading the data packets in step S310, the terminal nodes1901to190jand1951to195kdetermine missing packets according to the received data packets. Subsequently, each of the terminal nodes1901to190jand1951to195krecords an indication corresponding to the missing packets and an identification thereof to the missing packet reports, and transmits the missing packet reports to respective one of the upper nodes1701to170ito which the terminal nodes belong. Thereafter, the network switch130forwards the missing packet reports received from the upper nodes1701to170ito the data server150.

In an embodiment, each of missing packet report includes the identification (e.g., the IP address, the MAC address or an international mobile subscriber identity (IMSI) of one of the terminal nodes1901to190jand1951to195kand the indication (e.g., an index value or a specific identification) corresponding to the missing packets. For example, Table (1) is an example of a format of the missing packet report. The format of the missing packet report includes an index value of the missing packet and an identification of the terminal node. It should be noted that, in other examples, the missing packet report may have different formats and the identification of the terminal node may be the IP address or IMSI, which are not particularly limited in the disclosure.

In step S350, the processing unit155obtains the network topology information related to the terminal nodes1901to190jand1951to195kvia the network switch130through the communication unit151. In an embodiment, the network switch130integrates the missing packet reports into a missing packet lookup table according to the address information (e.g., the IP address, the MAC address and/or identifications of the ports for connecting the network switch130) of the corresponding upper nodes1701to170i, and the control server110establishes the network topology information based on the missing packet lookup table. Specifically, although the control server110is capable of monitoring a network state and collecting a network topology on basis of the OpenFlow protocol, related information of addresses (e.g., the IP address, the MAC address, etc.) in the Intranet may not be obtained by using the existing OpenFlow protocol. Accordingly, the present embodiment of the disclosure proposes an address lookup table (e.g., a port-device-mapping table, a routing table, etc.) so that the control server110may obtain the network topology information related to the terminal nodes1901to190jand1951to195k.

Based on the characteristics of the OpenFlow protocol, when one specific data packet reaches the network switch130for the first time, since the specific data packet cannot match to a routing path (e.g., a flow entry) in the control server110, the network switch130transmits the specific data packet to the control server110. Accordingly, in the present embodiment of the disclosure, when a specific missing packet reaches the control server110for the first time, the control server110records the specific missing packet to thereby establish the address lookup table.

In other words, the network topology information according to the present embodiment of the disclosure includes the address lookup table of the terminal nodes1901to190jand1951to195kand the upper nodes1701to170ito which the terminal nodes1901to190jand1951to195kbelong. The control server110establishes the address lookup table based on the missing packet lookup table integrated by the network switch130or the missing packet reports reported from the terminal nodes1901to190jand1951to195k, and use the address lookup table as the network topology information to be transmitted to the data server150. For instance, Table (2) is an example of a format of the missing packet lookup table. The format of the missing packet lookup table includes the index value of the missing packet, the identification of the terminal node, the identification of the port used for connecting the upper node to which the terminal node belongs to the network switch130and an identification of the upper node to which the terminal node belongs.

Further, Table (3) is an example of a format of the address lookup table. The format of the address lookup table includes the identification of the terminal node, the identification of the port used for connecting the upper node to which the terminal node belongs to the network switch130and an identification of the upper node to which the terminal node belongs. It should be noted that, in other examples, the missing packet lookup table and the address lookup table may have different formats, the identification of the terminal node may be the IP address or IMSI, and the identification of the upper node may be the MAC address or other identifications, which are not particularly limited in the disclosure.

In addition, when any new terminal device is connected to the upper nodes1701to170ior any one of the existing terminal devices1901to190jand1951to195kis disconnected from the corresponding upper nodes1701to170i, the control server110updates the network topology information (e.g., the address lookup table) and retransmits the network topology information to the data server150. On the other hand, in some other embodiments, it is possible that the upper nodes1701to170iand the terminal devices1901to190jand1951to195kare connected in the wired manner (e.g., connection made through the optical fiber or the cable). In this case, based on the OpenFlow protocol, the control server110may obtain related information of the terminal devices1901to190jand1951to195kand establishes the network topology information.

Subsequently, in step S370, the processing unit155encodes the missing packets in the data packets according to the missing packet reports and the network topology information. In an embodiment, the processing unit155calculates packet combinations of the missing packets according to the missing packet reports and the network topology information, and encodes the missing packets according to the packet combinations to generate the encoded packets. Herein, the processing unit155determines the upper nodes1701to170ito which each of the terminal nodes1901to190jand1951to195kbelongs, and calculate each of the packet combinations according to the upper nodes1701to170ito which each of the terminal nodes1901to190jand1951to195kbelongs and the corresponding missing packet reports.

Specifically, after receiving the network topology information through the communication unit151, the processing unit155may look up the address lookup table according to the identification of one of the terminal nodes1901to190jand1951to195k, so as to determine the upper nodes1701to170iof each of the terminal nodes1901to190jand1951to195k. For instance, take Table (1) and Table (3) as an example, the processing unit155compares the identification of the terminal node (e.g., 00:A0:C9:14:C8:29) in Table (1) with the identification of the terminal node in Table (3), so as to be informed of the identification of the corresponding port (e.g., a port 1) and the identification of the upper node (e.g., 140.113.1.1).

In order to optimally calculate more preferable packet combinations for the missing packets in the disclosure, in an embodiment, according to the indication of missing packet reported from the terminal nodes that belong to the same upper node (e.g., the terminal nodes1901and1902that belong to the same upper node1701or the terminal nodes1951and1952that belong to the same upper node170iand so on), the processing unit155combines all the missing packets corresponding to the indication of missing packet or the missing packet selected by a specific method or selected randomly to serve as the packet combinations for encoding. For instance, Table (4) is an example of the packet combination. Therein, a packet content includes the missing packets (e.g., X1+X3+X8+X10 (based on an assumption in which the data packets are marked by X1 to X10)) of each of the terminal nodes that belong to the same upper node.

It should be noted that, in other embodiments, the processing unit155may also determine the packet combinations (i.e., the packet content in Table (4)) by using operating function based on, for example, the random linear network code (RLNC) according to the network topology information, but the present embodiment of the disclosure is not limited thereto.

Subsequently, in step S390, the processing unit155transmits the encoded packets encoded from the missing packets to the terminal nodes1901to190jand1951to195kvia the network switch130and each of the upper nodes1701to170ithrough the communication unit151. In an embodiment, each of the encoded packets includes the address information (e.g., the IP address, the MAC address or the identification of the port) of one of the corresponding upper nodes1701to170i, the network switch130receives the encoded packets from the data server150and transmits each of the encoded packets individually to one of the corresponding upper nodes1701to170iaccording to the corresponding address information of each of the encoded packets, and each of the upper nodes1701to170imulticasts (e.g., by broadcasting, multicasting, etc.) one of the received encoded packets to the terminal nodes1901to190jand1951to195k. For example, the network switch130determines the corresponding port according to the identification of the terminal node in Table (3) or Table (4), and then transmits each of the encoded packets to the upper nodes1701to170ivia the corresponding port. Subsequently, take the upper node1701for example, the upper node1701may transmit the received encoded packets to the all of the terminal nodes1901to190j, and the rest may be deduced by analogy. Thereafter, the terminal nodes1901to190jand1951to195kmay decode the encoded packets to obtain the respective missing packets.

Therefore, in comparison with the traditional retransmission mechanism, other than reduction in the number of times for retransmitting, the method for retransmitting packet according to the embodiments of the disclosure may further improve the efficiency of the packet retransmission and save the network bandwidth. To facilitate in understanding more of the steps in the foregoing embodiments, an example is provided below to describe operation flow for applying the embodiments of the disclosure.

FIG. 4AandFIG. 4Bare examples for packet transmission. Referring toFIG. 4Afirst, a wireless network environment includes four user equipments411,413,415and417, two Wi-Fi access points421and423, an OpenFlow switch430, a SDN controller450and a cloud server470. After the Wi-Fi access points421and423broadcast the data packets, each of the user equipments411,413,415and417reports the missing packets and an user identification (step S481) to be transmitted via the OpenFlow switch430(step S482) to the cloud server470(step S483). Hereinafter, it is assumed that the cloud server470transmits the data packets X1 to X10, and Tables (5) to Table (8) are the missing packet reports of the user equipments411,413,415and417, respectively. Accordingly, the cloud server470obtains the missing packet reports similar to Tables (5) to Table (8).

TABLE 5Index value of missing packetIdentification of terminal node2, 5, 650:D8:D0:32:2:A6

TABLE 6Index value of missing packetIdentification of terminal node1, 52:A7:D0:65:11:E7

TABLE 7Index value of missing packetIdentification of terminal node3, 4, 782:4:G9:72:B2:25

TABLE 8Index value of missing packetIdentification of terminal node8, 1077:C0:2:54:A2:F4

In step S484, when the OpenFlow switch430receives the missing packet reports from the user equipments411,413,415and417, the OpenFlow switch430adds the IP addresses of the Wi-Fi access points421and423to the missing packet lookup table to serve as the new missing packet reports. Herein, it is assumed that Table (9) is the missing packet lookup table. Subsequently, the OpenFlow switch430transmits this missing packet lookup table to the SDN controller450(step S485).

Referring toFIG. 4B, in step S486, the SDN controller450establishes a port-device-mapping table according to the missing packet lookup table, and then updates the port-device-mapping table according to the new user device being added or any of the user equipments411,413,415and417being disconnected. Herein, it is assumed that Table (10) is the port-device-mapping table. Subsequently, the SDN controller450transmits the port-device-mapping table to the cloud server470(step S487).

In step S488, the cloud server470randomly encodes the missing packets according to the port-device mapping table. In this example, it is assumed that an encoding coefficient α selects GF(2), the encoding coefficient α is equal to 0 or 1. Table (11) is a lookup table in which the packet combinations correspond to each of Wi-Fi access points421and423. After encoding the missing packets by the cloud server470, the encoded packet Y1 is equal to X2+X5+X6, and the cloud server470transmits the encoded packets to the OpenFlow switch430(step S489). The OpenFlow switch430then transmits the encoded packets to the corresponding Wi-Fi access points421and423(step S491). Subsequently, the Wi-Fi access points421and423multicast the encoded packets to the user equipments411,413,415and417(step S492). Subsequently, the Wi-Fi access point421may multicast the encoded packet Y1 to the user equipments411and413by broadcasting. The user equipments411,413,415and417may decode the received encoded packets to obtain the missing packets (step S493). Herein, if the missing packets are still present after the user equipments411,413,415and417decodes the received encoded packets, the user equipments411,413,415and417may return back to execute step S481until all of the data packets are received completely.

In summary, the embodiments of the disclosure combine the network coding and the system architecture of SDN to encode the missing packets of the terminal nodes through the data server according to the network topology information provided by the control server, and perform a differential broadcasting for packet retransmission via the upper nodes to conduct an accurate transmission corresponding to the missing packets missed by the terminal nodes. Accordingly, the embodiments of the disclosure not only improve the efficiency of the packet retransmission but also improve the efficient of the multicasting without increasing computation and transmission costs for wireless nodes.