Abstract:
A multicast system is provided. The multicast system includes a multicast processing module and a multicast service module. The multicast processing module is for subscribing to the multicast service module. The multicast service module is for sending a subscribe response to the multicast processing module, and for transmitting data to the multicast processing module via a unicast frame. The multicast processing module is also for identifying a data initiator according to the subscribe response, and for receiving the data from the multicast service module in a multicast mode. A multicast method utilized in the multicast system is also provided.

Description:
BACKGROUND OF THE INVENTION 
       [0001]    1. Field of the Invention 
         [0002]    The invention generally relates to a multicast system and a method for utilizing the same, and particularly to a multicast system and a method used in a wireless network. 
         [0003]    2. Description of Related Art 
         [0004]    According to the Institute of Electrical and Electronics Engineers (IEEE) 802.11 protocol, when an access point transmits a multicast frame, if a receiving station is in a power saving mode, the access point must first buffer transmitted data, and then wait for a delivery traffic indication message (DTIM) to resend a transmitted frame, thus transmission speed may be lowered or the frame may be delayed. Moreover, since there is no acknowledgement (ACK) mechanism for the medium access control (MAC) layer of the multicast frame, transmission reliability is substantially decreased. 
       SUMMARY OF THE INVENTION 
       [0005]    A multicast system is provided. The multicast system includes a multicast processing module and a multicast service module. The multicast processing module is for subscribing to the multicast service module. The multicast service module is for sending a subscribe response to the multicast processing module, and for transmitting data to the multicast processing module via a unicast frame. The multicast processing module is also for identifying a data initiator according to the subscribe response, and for receiving the data from the multicast service module in a multicast mode. 
         [0006]    A multicast method is also provided. The multicast method is applicable for a multicast system including a multicast service module and a multicast processing module. The multicast method includes: the multicast processing module subscribing to the multicast service module; the multicast service module sending a subscribe response to the multicast processing; the multicast processing module identifying whether itself is a data initiator according to the subscribe response from the multicast service module; and the multicast service module sending the data to the multicast processing module via a unicast frame, and the multicast processing module receiving the data from the multicast service module in a multicast mode if the multicast processing module is the data initiator. 
         [0007]    Other advantages and novel features will become more apparent from the following detailed description when taken in conjunction with the accompanying drawings, in which: 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0008]      FIG. 1  is schematic diagram of a multicast system of an exemplary embodiment of the invention; 
           [0009]      FIG. 2  is a flowchart of a multicast method of another exemplary embodiment of the invention; 
           [0010]      FIG. 3  is a detailed flowchart of step S 202  in  FIG. 2 ; 
           [0011]      FIG. 4  is a detailed flowchart of step S 208  in  FIG. 2 ; and 
           [0012]      FIG. 5  is a detailed flowchart of step S 210  in  FIG. 2 . 
       
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       [0013]    Referring to  FIG. 1 , a schematic diagram of a multicast system  100  of an exemplary embodiment of the invention is shown. 
         [0014]    In this embodiment, the multicast system  100  is applicable to a wireless network including a server  120  and a client  140 . Each server  120  includes a multicast service module  1200 , and each client includes a multicast processing module  1400 . Although only four multicast processing modules  1400  are shown in  FIG. 1 , it should be understood that the invention is not limited to that number. 
         [0015]    The server  120  is communicated with a multimedia device  300 , and the server  120  may be an access point (AP), a wireless gateway, and so on. The multimedia device  300  may be a digital video disc (DVD) player, video camera, and so on. The client  140  is wirelessly communicated with the server  120  via the Internet  200 , and the client  140  may be a personal computer (PC), a personal digital assistance (PDA), and so on. Both the server  120  and the client  140  are capable of supporting IEEE 802.11 wireless local area network (WLAN) standard. 
         [0016]    The multicast processing module  1400  sends requests to the multicast service module  1200 . The requests include a query media request, a subscribe media request, a start media request, a keep-alive request, and an unsubscribe media request. 
         [0017]    The multicast service module  1200  sends responses to the multicast processing module  1400 . The responses include a query media response, a subscribe media response, a start media response, and an unsubscribe media response. 
         [0018]    The multicast service module  1200  further transmits data taken from the Internet  200  or the multimedia device  300 . The data may include video data and audio data, such as MPEG-format movies and MP3-format songs. In this embodiment, the multicast service module  1200  transmits the data via a unicast frame. 
         [0019]    The multicast processing module  1400  receives the data from the multicast service module  1200 . Data receiving modes include a promiscuous mode and a multicast mode. 
         [0020]    The multicast processing module  1400  further determines whether a timeout occurs. In this embodiment, the timeout indicates the multicast service module  1200  stops transmitting the data to the multicast processing module  1400 . 
         [0021]    The multicast processing module  1400  still further changes an address thereof. In this embodiment, the address is a medium access control (MAC) address. 
         [0022]    Table 1 below is an example of a multicast table pre-stored in the multicast service module  1200 . The multicast table includes four fields: a media identification (ID) field, a data initiator field, a subscriber list field, and a media description field. The media ID field lists ID codes of data. In this embodiment, the ID code is the MAC address. The data initiator field lists MAC addresses of a multicast processing module  1400  that initially subscribes and is referred to as “data initiator”. The subscriber list field lists MAC addresses of multicast processing modules  1400  that subsequently subscribe. The media description field is for listing a data source. 
         [0000]    
       
         
               
               
               
               
             
           
               
                   
               
               
                 Media ID 
                 Data initiator 
                 Subscriber list 
                 Media description 
               
               
                   
               
             
             
               
                 40 
                 400 
                 400, 700 
                 Internet 
               
               
                 50 
                 600 
                 600, 900 
                 DVD player 
               
               
                 60 
                 500 
                 500, 800 
                 Video camera 
               
               
                   
               
             
          
         
       
     
       Table 1 
       [0023]      FIG. 2  is a flowchart of a multicast method of another exemplary embodiment of the invention. The multicast service module  1200  assigns ID codes to multicast media data from data sources respectively as exemplarily listed in table 1. The ID codes are unique and different from each other. 
         [0024]    In step S 200 , the multicast processing module  1400  is communicated with the multicast service module  1200  using a native MAC address. 
         [0025]    In step S 202 , the multicast processing module  1400  subscribes to the multicast service module  1200  according to assigned ID codes. 
         [0026]    In step S 204 , the multicast service module  1200  responds to the multicast processing module  1400 . In this embodiment, the multicast service module  1200  first queries a multicast table to determine whether the multicast processing module  1400  is a data initiator, and then sends a subscribe response including a query result to the multicast processing module  1400 . 
         [0027]    In step  206 , the multicast processing module  1400  determines whether itself is the data initiator based on the response. 
         [0028]    If the multicast processing module  1400  itself is the data initiator, the process proceeds to step S 208 , where the multicast service  1200  transmits the data to the multicast processing module  1400  via a unicast frame, and the multicast processing module  1400  enters a multicast mode to receive the data. As shown in Table 1, since the multicast processing module  1400  with a MAC address of  400  is the data initiator, the multicast processing module  1400  with a MAC address of  400  enters the multicast mode to receive the data. 
         [0029]    If the multicast processing module  1400  is not the data initiator, the process proceeds to step S 210 , where the multicast service module  1200  transmits the data to the multicast processing module  1200  via the unicast frame, and the multicast processing module  1400  enters a promiscuous mode to receive the data. As shown in Table 1, since the multicast processing module  1400  with a MAC address of  700  is not the data initiator, the multicast processing module  1400  with a MAC address of  700  enters the promiscuous mode to receive the data. 
         [0030]    In the promiscuous mode, the multicast processing module  1400  first receives data from the Internet, then discards all unnecessary data, and only keeps required data. For example, the multicast processing module  1400  may receive a data  40 , data  50 , and data  60  from the Internet, then discard the data  50  and the data  60 , and only keep the data  40 . 
         [0031]      FIG. 3  is a detailed flowchart of step S 202  in  FIG. 2 . In step S 2020 , the multicast processing module  1400  sends a query request to the multicast service module  1200 . In this embodiment, the query request is a query media request. 
         [0032]    In step S 2021 , the multicast service module  1200  sends a query response to the multicast processing module  1400 . In this embodiment, the query response is a query media response, which lists all data that may be sent by the multicast service module  1200 . 
         [0033]    In step S 2022 , the multicast processing module  1400  sends a subscribe request to the multicast service module  1200 . In this embodiment, the subscribe request is a subscribe media request. 
         [0034]    In step S 2023 , the multicast service module  1200  sends a subscribe response to the multicast processing module  1400 . In this embodiment, the subscribe response is a subscribe media response. 
         [0035]      FIG. 4  is a detailed flowchart of step S 208  in  FIG. 2 . In step S 2080 , the multicast processing module  1400  changes a native MAC address. In this embodiment, the multicast processing module  1400  changes the native MAC address to an identification code of a corresponding data. For example, if the originator of the data  40  is a multicast processing module  1400  with a MAC address of  400 , the multicast processing module  1400  changes the MAC address from  400  to  40 . In other embodiments, the multicast processing module  1400  may not change the native MAC address, and the process may directly proceed to step S 2082  described below. 
         [0036]    In step S 2081 , the multicast processing module  1400  re-communicates with the multicast service module  1200  using the changed MAC address. 
         [0037]    In step S 2082 , the multicast processing module  1400  sends a start media request to the multicast service module  1200  to request the multicast service module  1200  to send data. 
         [0038]    In step S 2083 , the multicast service module  1200  sends a start media response, which informs the multicast processing module  1400  whether the multicast service module  1200  agrees to send the data to the multicast processing module  1400 . 
         [0039]    If the multicast service module  1200  agrees to send the data, the process proceeds to step S 2084 , where the multicast processing module  1400  receives the data from the multicast service module  1200 , and periodically sends a keep-alive request to the multicast service module  1200 . 
         [0040]    If the multicast service module  1200  does not agree to send the data, the process returns to step S 2082 . 
         [0041]    In step S 2085 , the multicast processing module  1400  determines whether a timeout occurs. If the timeout does not occur, the process returns to step S 2084 . If the timeout occurs, the process proceeds to step S 2086 . 
         [0042]    In step S 2086 , the multicast processing module  1400  sends an unsubscribe media request to the multicast service module  1200 . 
         [0043]    In step S 2087 , the multicast service module  1200  sends an unsubscribe media response, which informs the multicast processing module  1400  whether the multicast service module  1200  permits unsubscribing a service, to the multicast processing module  1400 . If the multicast service module  1200  does not permit unsubscribing the service, the process returns to step S 2086 . If the multicast service module  1200  permits unsubscribing the service, the process proceeds to step S 2088 . 
         [0044]    In step S 2088 , the multicast processing module  1400  changes the changed MAC address to the native MAC address. 
         [0045]      FIG. 5  is a detailed flowchart of step S 210  in  FIG. 2 . In step S 2100 , the multicast processing module  1400  enters the promiscuous mode, and periodically sends the keep-alive request to the multicast service module  1200 . 
         [0046]    In step S 2101 , the multicast processing module  1400  determines whether the timeout occurs. If the timeout does not occur, the process proceeds to step S 2102 . 
         [0047]    In step S 2102 , the multicast processing module  1400  determines whether the multicast processing module  1400  receives a new initiator request from the multicast service module  1200 . If the multicast processing module  1400  receives the new initiator request from the multicast service module  1200 , the process returns to step S 208  described above. If the multicast processing module  1400  does not receive the new initiator request from the multicast service module  1200 , the process returns to step S 2100 . 
         [0048]    In step S 2101 , If the timeout occurs, the process proceeds to step S 2103 , where the multicast processing module  1400  sends an unsubscribe media request to the multicast service module  1200 . 
         [0049]    In step S 2104 , the multicast service module  1200  sends an unsubscribe media response, which informs the multicast processing module  1400  whether the multicast service module  1200  permits unsubscribing the service, to the multicast processing module  1400 . If the multicast service module  1200  does not permit unsubscribing the service, the process returns to step S 2103 . If the multicast service module  1200  permits unsubscribing the service, the process proceeds to step S 2105 . 
         [0050]    In step S 2105 , the multicast processing module  1400  exits the promiscuous mode. 
         [0051]    It is believed that the present embodiments and their advantages will be understood from the foregoing description, and it will be apparent that various changes may be made thereto without departing from the spirit and scope of the invention or sacrificing all of its material advantages, the examples hereinbefore described merely being preferred or exemplary embodiments.