Patent Publication Number: US-9887910-B2

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

Description:
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. 
     To make the above features and advantages of the disclosure more comprehensible, several embodiments accompanied with drawings are described in detail as follows. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The accompanying drawings are included to provide a further understanding of the disclosure, and are incorporated in and constitute a part of this specification. The drawings illustrate embodiments of the disclosure and, together with the description, serve to explain the principles of the disclosure. 
         FIG. 1  is a block diagram illustrating a packet retransmitting system according to an embodiment of the disclosure. 
         FIG. 2  is a block diagram illustrating the data server according to an embodiment of the disclosure. 
         FIG. 3  is a flowchart illustrating method for retransmitting packet of the data server according to an embodiment of the disclosure. 
         FIG. 4A  and  FIG. 4B  are examples for packet transmission. 
     
    
    
     DESCRIPTION OF THE EMBODIMENTS 
     Reference will now be made in detail to the present preferred embodiments of the disclosure, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers are used in the drawings and the description to refer to the same or like parts. 
     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. 1  is a block diagram illustrating a packet retransmitting system according to an embodiment of the disclosure. Referring to  FIG. 1 , a packet retransmitting system  10  includes a control server  110 , a network switch  130 , a data server  150 , upper nodes  170   1  to  170   i , terminal nodes  190   1  to  190   j  and  195   1  to  195   k , 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 nodes  170   1  to  170   i  and the terminal nodes  190   1  to  190   j  and  195   1  to  195   k  are changeable and not particularly limited in the present embodiment of the disclosure. 
     The control server  110  may 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 system  10 ). The control server  110  is configured to establish network topology information related to the upper nodes  170   1  to  170   i , the terminal nodes  190   1  to  190   j  and  195   1  to  195   k  (e.g., address information of the upper nodes  170   1  to  170   i  (e.g., an Internet Protocol (IP) address, a media access control (MAC), etc.), ports for coupling the upper nodes  170   1  to  170   i  to the network switch  130  or the upper nodes  170   1  to  170   i  respectively coupled to the terminal nodes  190   1  to  190   j  and  195   1  to  195   k ). 
     The network switch  130  may 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 switch  130  is coupled to the control server  110  and the data server  150 . 
     The data server  150  may 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 server  150  is coupled to the control server  110  and the network switch  130 . 
       FIG. 2  is a block diagram illustrating the data server  150  according to an embodiment of the disclosure. Referring to  FIG. 2 , the data server  150  includes a communication unit  151 , a storage unit  153  and a processing unit  155 . The communication unit  151  is coupled to the control server  110  and the network switch  130  in 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 server  150  is capable of transmitting data packets (e.g., the data packets of multimedia data, document, system data, etc.). 
     The storage unit  153  may 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 unit  153  is configured to store the network topology information provided by the control server  110  and aforesaid data packets, and the network topology information may refer to related description of the control server  110 , which is not repeated hereafter. 
     The processing unit  155  is, 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 unit  155  is coupled to the communication unit  151  and the storage unit  153 . In the present embodiment, the processing unit  155  is configured to process all tasks for the data server  150  in the present embodiment. 
     The upper node  170   1  to  170   i  may 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 nodes  190   1  to  190   j  and  195   1  to  195   k  (e.g., the cell phone, the notebook computer or the tablet computer). The network switch  130  includes, for example, a plurality of ports, so that the upper nodes  170   1  to  170   i  may be coupled to the ports, respectively. 
       FIG. 3  is a flowchart illustrating method for retransmitting packet of the data server  150  according to an embodiment of the disclosure. Referring to  FIG. 3 , the method of the present embodiment is adapted for the packet retransmitting system  10  of  FIG. 1  and the data server  150  of  FIG. 2 . Hereinafter, various components in the packet retransmitting system  10  of  FIG. 1  and the data server  150  of  FIG. 2  are 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 S 310 , the processing unit  155  transmits data packets (e.g., the data packets of multimedia data, document, system data, etc.) through the communication unit  151 . In other words, the terminal nodes  190   1  to  190   j  and  195   1  to  195   k  download the data packets provided by the data server  150  individually through each of the upper nodes  170   1  to  170   i . For instance, when the terminal nodes  190   1  to  190   j  and  195   1  to  195   k  intend to download the same video from the data server  150 , according to a packet length restricted by the transmission protocol, the data server  150  divides a video file into a number (e.g., 3, 20, 100, etc.) of the data packets to be transmitted to the terminal nodes  190   1  to  190   j  and  195   1  to  195   k  sequentially through the network switch  130  and the upper nodes  170   1  to  170   i . It should be noted that, the data packets transmitted at the time is not yet encoded (e.g., by the network coding). 
     In step S 330 , the processing unit  155  receives missing packet reports in which the terminal nodes  190   1  to  190   j  and  195   1  to  195   k  correspond to the data packets via the network switch  130  through the communication unit  151 . 
     Specifically, after downloading the data packets in step S 310 , the terminal nodes  190   1  to  190   j  and  195   1  to  195   k  determine missing packets according to the received data packets. Subsequently, each of the terminal nodes  190   1  to  190   j  and  195   1  to  195   k  records 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 nodes  170   1  to  170   i  to which the terminal nodes belong. Thereafter, the network switch  130  forwards the missing packet reports received from the upper nodes  170   1  to  170   i  to the data server  150 . 
     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 nodes  190   1  to  190   j  and  195   1  to  195   k  and 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. 
     
       
         
           
               
               
               
             
               
                 TABLE 1 
               
               
                   
               
               
                   
                 Index value of missing packet 
                 Identification of terminal node 
               
               
                   
               
             
            
               
                   
                 1, 3, 8, 10 
                 00:A0:C9:14:C8:29 
               
               
                   
               
            
           
         
       
     
     In step S 350 , the processing unit  155  obtains the network topology information related to the terminal nodes  190   1  to  190   j  and  195   1  to  195   k  via the network switch  130  through the communication unit  151 . In an embodiment, the network switch  130  integrates 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 switch  130 ) of the corresponding upper nodes  170   1  to  170   i , and the control server  110  establishes the network topology information based on the missing packet lookup table. Specifically, although the control server  110  is 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 server  110  may obtain the network topology information related to the terminal nodes  190   1  to  190   j  and  195   1  to  195   k . 
     Based on the characteristics of the OpenFlow protocol, when one specific data packet reaches the network switch  130  for the first time, since the specific data packet cannot match to a routing path (e.g., a flow entry) in the control server  110 , the network switch  130  transmits the specific data packet to the control server  110 . Accordingly, in the present embodiment of the disclosure, when a specific missing packet reaches the control server  110  for the first time, the control server  110  records 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 nodes  190   1  to  190   j  and  195   1  to  195   k  and the upper nodes  170   1  to  170   i  to which the terminal nodes  190   1  to  190   j  and  195   1  to  195   k  belong. The control server  110  establishes the address lookup table based on the missing packet lookup table integrated by the network switch  130  or the missing packet reports reported from the terminal nodes  190   1  to  190   j  and  195   1  to  195   k , and use the address lookup table as the network topology information to be transmitted to the data server  150 . 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 switch  130  and an identification of the upper node to which the terminal node belongs. 
     
       
         
           
               
               
               
               
             
               
                 TABLE 2 
               
               
                   
               
               
                 Index value of 
                 Identification of  
                 Identification 
                 Identification  
               
               
                 missing packet 
                 terminal node 
                 of port 
                 of upper node 
               
               
                   
               
             
            
               
                 1, 3, 8, 10 
                 00:A0:C9:14:C8:29 
                 1 
                 140.113.1.1 
               
               
                   
               
            
           
         
       
     
     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 switch  130  and 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. 
     
       
         
           
               
               
               
               
             
               
                 TABLE 3 
               
               
                   
               
               
                   
                 Identification of  
                 Identification 
                 Identification of 
               
               
                   
                 terminal node 
                 of port 
                 upper node 
               
               
                   
               
             
            
               
                   
                 00:A0:C9:14:C8:29 
                 1 
                 140.113.1.1 
               
               
                   
                 50:D8:D0:32:2:A6  
                 1 
                 140.113.1.1 
               
               
                   
                 2:A7:D0:65:11:E7  
                 2 
                 140.113.1.2 
               
               
                   
                 82:4:G9:72:B2:25  
                 2 
                 140.113.1.2 
               
               
                   
                 77:C0:2:54:A2:F4  
                 2 
                 140.113.1.2 
               
               
                   
               
            
           
         
       
     
     In addition, when any new terminal device is connected to the upper nodes  170   1  to  170   i  or any one of the existing terminal devices  190   1  to  190   j  and  195   1  to  195   k  is disconnected from the corresponding upper nodes  170   1  to  170   i , the control server  110  updates the network topology information (e.g., the address lookup table) and retransmits the network topology information to the data server  150 . On the other hand, in some other embodiments, it is possible that the upper nodes  170   1  to  170   i  and the terminal devices  190   1  to  190   j  and  195   1  to  195   k  are 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 server  110  may obtain related information of the terminal devices  190   1  to  190   j  and  195   1  to  195   k  and establishes the network topology information. 
     Subsequently, in step S 370 , the processing unit  155  encodes the missing packets in the data packets according to the missing packet reports and the network topology information. In an embodiment, the processing unit  155  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. Herein, the processing unit  155  determines the upper nodes  170   1  to  170   i  to which each of the terminal nodes  190   1  to  190   j  and  195   1  to  195   k  belongs, and calculate each of the packet combinations according to the upper nodes  170   1  to  170   i  to which each of the terminal nodes  190   1  to  190   j  and  195   1  to  195   k  belongs and the corresponding missing packet reports. 
     Specifically, after receiving the network topology information through the communication unit  151 , the processing unit  155  may look up the address lookup table according to the identification of one of the terminal nodes  190   1  to  190   j  and  195   1  to  195   k , so as to determine the upper nodes  170   1  to  170   i  of each of the terminal nodes  190   1  to  190   j  and  195   1  to  195   k . For instance, take Table (1) and Table (3) as an example, the processing unit  155  compares 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 nodes  190   1  and  190   2  that belong to the same upper node  170   1  or the terminal nodes  195   1  and  195   2  that belong to the same upper node  170   i  and so on), the processing unit  155  combines 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. 
     
       
         
           
               
               
               
             
               
                 TABLE 4 
               
               
                   
               
               
                 Index value of 
                   
                 Identification of 
               
               
                 missing packet 
                 Packet content 
                 upper node 
               
               
                   
               
             
            
               
                 1, 3, 8, 10 
                 X1 + X3 + X8 + X10 
                 140.113.1.1 
               
               
                   
               
            
           
         
       
     
     It should be noted that, in other embodiments, the processing unit  155  may 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 S 390 , the processing unit  155  transmits the encoded packets encoded from the missing packets to the terminal nodes  190   1  to  190   j  and  195   1  to  195   k  via the network switch  130  and each of the upper nodes  170   1  to  170   i  through the communication unit  151 . 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 nodes  170   1  to  170   i , the network switch  130  receives the encoded packets from the data server  150  and transmits each of the encoded packets individually to one of the corresponding upper nodes  170   1  to  170   i  according to the corresponding address information of each of the encoded packets, and each of the upper nodes  170   1  to  170   i  multicasts (e.g., by broadcasting, multicasting, etc.) one of the received encoded packets to the terminal nodes  190   1  to  190   j  and  195   1  to  195   k . For example, the network switch  130  determines 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 nodes  170   1  to  170   i  via the corresponding port. Subsequently, take the upper node  170   1  for example, the upper node  170   1  may transmit the received encoded packets to the all of the terminal nodes  190   1  to  190   j , and the rest may be deduced by analogy. Thereafter, the terminal nodes  190   1  to  190   j  and  195   1  to  195   k  may 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. 4A  and  FIG. 4B  are examples for packet transmission. Referring to  FIG. 4A  first, a wireless network environment includes four user equipments  411 ,  413 ,  415  and  417 , two Wi-Fi access points  421  and  423 , an OpenFlow switch  430 , a SDN controller  450  and a cloud server  470 . After the Wi-Fi access points  421  and  423  broadcast the data packets, each of the user equipments  411 ,  413 ,  415  and  417  reports the missing packets and an user identification (step S 481 ) to be transmitted via the OpenFlow switch  430  (step S 482 ) to the cloud server  470  (step S 483 ). Hereinafter, it is assumed that the cloud server  470  transmits the data packets X1 to X10, and Tables (5) to Table (8) are the missing packet reports of the user equipments  411 ,  413 ,  415  and  417 , respectively. Accordingly, the cloud server  470  obtains the missing packet reports similar to Tables (5) to Table (8). 
     
       
         
           
               
               
               
             
               
                 TABLE 5 
               
               
                   
               
               
                   
                 Index value of missing packet 
                 Identification of terminal node 
               
               
                   
               
             
            
               
                   
                 2, 5, 6 
                 50:D8:D0:32:2:A6 
               
               
                   
               
            
           
         
       
     
     
       
         
           
               
               
               
             
               
                 TABLE 6 
               
               
                   
               
               
                   
                 Index value of missing packet 
                 Identification of terminal node 
               
               
                   
               
             
            
               
                   
                 1, 5 
                 2:A7:D0:65:11:E7 
               
               
                   
               
            
           
         
       
     
     
       
         
           
               
               
             
               
                 TABLE 7 
               
               
                   
               
               
                 Index value of missing packet 
                 Identification of terminal node 
               
               
                   
               
             
            
               
                 3, 4, 7 
                 82:4:G9:72:B2:25 
               
               
                   
               
            
           
         
       
     
     
       
         
           
               
               
               
             
               
                 TABLE 8 
               
               
                   
               
               
                   
                 Index value of missing packet 
                 Identification of terminal node 
               
               
                   
               
             
            
               
                   
                 8, 10 
                 77:C0:2:54:A2:F4 
               
               
                   
               
            
           
         
       
     
     In step S 484 , when the OpenFlow switch  430  receives the missing packet reports from the user equipments  411 ,  413 ,  415  and  417 , the OpenFlow switch  430  adds the IP addresses of the Wi-Fi access points  421  and  423  to 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 switch  430  transmits this missing packet lookup table to the SDN controller  450  (step S 485 ). 
     
       
         
           
               
               
               
               
             
               
                 TABLE 9 
               
               
                   
               
               
                 Index value of 
                 Identification of  
                 Identification 
                 IP address of  
               
               
                 missing packet 
                 terminal node 
                 of port 
                 upper node 
               
               
                   
               
             
            
               
                 2, 5, 6 
                 50:D8:D0:32:2:A6 
                 1 
                 140.113.1.1 
               
               
                 1, 5 
                 2:A7:D0:65:11:E7 
                 1 
                 140.113.1.1 
               
               
                 3, 4, 7 
                 82:4:G9:72:B2:25 
                 2 
                 140.113.1.2 
               
               
                 8, 10 
                 77:C0:2:54:A2:F4 
                 2 
                 140.113.1.2 
               
               
                   
               
            
           
         
       
     
     Referring to  FIG. 4B , in step S 486 , the SDN controller  450  establishes 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 equipments  411 ,  413 ,  415  and  417  being disconnected. Herein, it is assumed that Table (10) is the port-device-mapping table. Subsequently, the SDN controller  450  transmits the port-device-mapping table to the cloud server  470  (step S 487 ). 
     
       
         
           
               
               
               
             
               
                 TABLE 10 
               
               
                   
               
               
                 IP address of 
                 Identification of  
                 Identification 
               
               
                 upper node 
                 terminal node 
                 of port 
               
               
                   
               
             
            
               
                 140.113.1.1 
                 50:D8:D0:32:2:A6 
                 1 
               
               
                 140.113.1.1 
                 2:A7:D0:65:11:E7 
                 1 
               
               
                 140.113.1.2 
                 82:4:G9:72:B2:25 
                 2 
               
               
                 140.113.1.2 
                 77:C0:2:54:A2:F4 
                 2 
               
               
                   
               
            
           
         
       
     
     In step S 488 , the cloud server  470  randomly 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 points  421  and  423 . After encoding the missing packets by the cloud server  470 , the encoded packet Y1 is equal to X2+X5+X6, and the cloud server  470  transmits the encoded packets to the OpenFlow switch  430  (step S 489 ). The OpenFlow switch  430  then transmits the encoded packets to the corresponding Wi-Fi access points  421  and  423  (step S 491 ). Subsequently, the Wi-Fi access points  421  and  423  multicast the encoded packets to the user equipments  411 ,  413 ,  415  and  417  (step S 492 ). Subsequently, the Wi-Fi access point  421  may multicast the encoded packet Y1 to the user equipments  411  and  413  by broadcasting. The user equipments  411 ,  413 ,  415  and  417  may decode the received encoded packets to obtain the missing packets (step S 493 ). Herein, if the missing packets are still present after the user equipments  411 ,  413 ,  415  and  417  decodes the received encoded packets, the user equipments  411 ,  413 ,  415  and  417  may return back to execute step S 481  until 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. 
     Although the present disclosure has been described with reference to the above embodiments, it will be apparent to one of ordinary skill in the art that modifications to the described embodiments may be made without departing from the spirit of the disclosure. Accordingly, the scope of the disclosure will be defined by the attached claims and not by the above detailed descriptions. 
     It will be apparent to those skilled in the art that various modifications and variations can be made to the structure of the present disclosure without departing from the scope or spirit of the disclosure. In view of the foregoing, it is intended that the present disclosure cover modifications and variations of this disclosure provided they fall within the scope of the following claims and their equivalents. 
     Moreover, the claims should not be read as limited to the described order or elements unless stated to that effect. In addition, use of the term “means” in any claim is intended to invoke 35 U.S.C. § 112, ¶6, and any claim without the word “means” is not so intended.