WO2024088173A1 - Procédé de communication multidiffusion et appareil associé - Google Patents
Procédé de communication multidiffusion et appareil associé Download PDFInfo
- Publication number
- WO2024088173A1 WO2024088173A1 PCT/CN2023/125653 CN2023125653W WO2024088173A1 WO 2024088173 A1 WO2024088173 A1 WO 2024088173A1 CN 2023125653 W CN2023125653 W CN 2023125653W WO 2024088173 A1 WO2024088173 A1 WO 2024088173A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- multicast
- client
- source
- frame
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/06—Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/04—Key management, e.g. using generic bootstrapping architecture [GBA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/80—Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Definitions
- the present application relates to the field of communication technology, and in particular to a multicast communication method and related devices.
- users can share the same file, such as a large file containing audio, video, documents, or games, with multiple other users' devices through terminal devices (such as mobile phones, tablets, and computers). Users can also share the display screen containing videos, documents, or games to multiple other users' devices through one-to-many screen projection. For example, in a conference screen projection scenario, the display screen of the speaker's device can be projected to the devices of multiple participants and the conference room display.
- the existing technical solutions are often implemented through a multicast-to-unicast mechanism, that is, multicast frames are converted into unicast frames and then sent to each user device via WiFi unicast.
- multicast frames are converted into unicast frames and then sent to each user device via WiFi unicast.
- a large number of duplicate messages cause a huge waste of air interface resources.
- the present application provides a multicast communication method and related devices, which can quickly establish a multicast group and realize large-scale multicast transmission without WiFi connection.
- the present application provides a multicast communication method, which is applied to a multicast communication system, wherein the multicast communication system includes a multicast source and at least one client, wherein the at least one client includes a first client; the method includes: the multicast source determines the multicast address and a first multicast key of the multicast group; the multicast source sends a first Bluetooth message to the first client, wherein the first Bluetooth message is used to invite the first client to join the multicast group, and the first Bluetooth message includes the multicast address and the first multicast key; the first client sends a second Bluetooth message to the multicast source based on the first Bluetooth message; the second Bluetooth message is used to indicate that the first client confirms to join the multicast group; the first client configures the source address corresponding to the first multicast key is the Media Access Control (MAC) address of the multicast source; the multicast source multicasts a first multicast message encrypted by a first multicast key through wireless fidelity (WiFi) communication technology, the source address in a first client;
- the multicast source determines the relevant information for establishing a multicast group (such as a multicast address and a multicast key), it informs the client of the above relevant information through Bluetooth interaction with the client to invite the client to join the multicast group; in this way, no other third-party devices are required to participate, and the multicast group can be quickly established through Bluetooth assistance.
- a multicast group such as a multicast address and a multicast key
- the multicast source and each client do not need to establish a Wifi connection, and the multicast source can also send multicast messages through WiFi communication technology, and each client joining the multicast group can also directly monitor the multicast messages sent by the multicast source through WiFi communication technology; in this way, large-scale multicast transmission without WiFi connection can be achieved without being limited by the number of associated WiFi unicast links, and other devices are not required to transfer messages, thereby improving the efficiency of multicast transmission.
- the method before the multicast source sends the first Bluetooth message to the first client, the method further includes: the multicast source turns on a first virtual access point (VAP); the multicast source multicasts and sends a first multicast message encrypted by a first multicast key through WiFi communication technology, including: the first VAP of the multicast source multicasts and sends the first multicast message encrypted by the first multicast key through WiFi communication technology.
- VAP virtual access point
- the user's terminal device can also be used as a multicast source, and by turning on the VAP (such as a WiFi hotspot), the multicast message can be sent through WiFi communication technology.
- the method further includes: a multicast source receives a first operation, the first operation is used to create a multicast group; the multicast source determines a multicast address and a first multicast key of the multicast group, including: in response to the first operation, the multicast source determines the multicast address and the first multicast key of the multicast group.
- a user can trigger the multicast source to establish a multicast group through the first operation.
- the multicast source is provided with a user interface (UI) entry for the multicast service, and the user can trigger the establishment of a multicast group through the first operation acting on the UI entry.
- UI user interface
- the method before the multicast source sends the first Bluetooth message to the first client, the method further includes: the multicast source Bluetooth scans nearby Bluetooth devices that support multicast communication; the multicast source displays at least one scanned Bluetooth device, the at least one Bluetooth device including the first The multicast source receives a second operation, and the second operation is used to invite the first client to join the multicast group; in response to the second operation, the multicast source establishes a Bluetooth connection with the first client.
- the Bluetooth discovery service can be started to scan nearby Bluetooth devices that support multicast; after scanning the Bluetooth device, the multicast source can establish a Bluetooth connection with the Bluetooth device selected by the user. In this way, through the Bluetooth connection, the multicast source can directly invite the device to join the multicast group, and no other device is required between the multicast source and the client for message distribution, thereby improving the management efficiency of the multicast group.
- the method before the multicast source displays at least one scanned Bluetooth device, the method further includes: the first client receives a third operation; in response to the third operation, the first client broadcasts a first discovery signal via Bluetooth, the first discovery signal indicating that the first client supports multicast communication; the multicast source scans the first client based on the first discovery signal.
- the user can trigger the client to start the Bluetooth discovery service through the third operation, broadcast the Bluetooth discovery signal, and carry the multicast capability identifier in the discovery signal so that it can be discovered by the multicast source, and then establish a Bluetooth connection with the multicast source.
- the method before the multicast source sends the first Bluetooth message to the first client, the method further includes: in response to the first operation, the multicast source broadcasts a second discovery signal via Bluetooth; based on the second discovery signal monitored via Bluetooth, the first client establishes a Bluetooth connection with the multicast source; the first client sends a third Bluetooth message to the multicast source, and the third Bluetooth message is used to request to join the multicast group; the multicast source sends the first Bluetooth message to the first client, including: in response to the third Bluetooth message, the multicast source sends the first Bluetooth message to the first client.
- the user can trigger the multicast source to start the Bluetooth discovery service through the first operation, and the Bluetooth broadcast discovery signal is used to facilitate being discovered by the client, thereby establishing a Bluetooth connection with the client.
- the client can actively request to join the multicast group through the Bluetooth connection.
- the method further includes: disconnecting the Bluetooth connection between the multicast source and the first client.
- the Bluetooth connection between the multicast source and the client can be disconnected, and the relevant information of the Bluetooth connection can be deleted, so as to save Bluetooth resources and reduce the device load.
- the multicast source before the multicast source sends the first Bluetooth message to the first client, the multicast source further includes: the multicast source allocates a first IP address to the first VAP of the multicast source and allocates a second IP address to the second VAP of the client; the first Bluetooth message also includes the first IP address and the second IP address; the first IP address and the second IP address are used to encapsulate the multicast message, the source IP address in the multicast message sent by the multicast source is the first IP address, and the source IP address in the multicast message sent by the first client is the second IP address.
- the multicast source can allocate IP addresses for multicast to the device and the client.
- the method further includes: based on the second Bluetooth message, the first multicast source adds the multicast user information of the first client to the multicast device list; the multicast device list is used to store the multicast user information of each client in the multicast group, and the multicast user information of the first client includes the MAC address and the second IP address of the first client.
- the multicast user information of each client is stored to facilitate the management of the clients in the multicast group.
- the multicast source before the multicast source sends the first Bluetooth message to the first client, the multicast source also includes: the multicast source generates a virtual multicast source address; the multicast source configures the source address corresponding to the first multicast key as the virtual multicast source address; the first Bluetooth message also includes a virtual anchor source address, and the source address in the MAC header of the multicast message sent by the client in the multicast group is the virtual multicast source address.
- each client uses the same virtual multicast source address so that the multicast source can parse the multicast messages of all clients through the multicast key corresponding to the virtual multicast source address.
- the method further includes: the first client multicasts and sends a second multicast message encrypted by a first multicast key through WiFi communication technology, the source address in the second MAC header of the second multicast message is a virtual multicast source address, and the destination address in the second MAC header is a multicast address; based on the multicast address, the multicast source monitors the second multicast message; the multicast source determines that the key corresponding to the source address in the second MAC header is the first multicast key, and uses the first multicast key to parse the data unit of the second multicast message.
- each client uses the same virtual multicast source address, so that the multicast source can parse the multicast messages of all clients through the multicast key corresponding to the virtual multicast source address.
- the method further includes: the first client activates the second VAP based on the first Bluetooth message; the first client multicasts the second multicast message encrypted by the first multicast key through WiFi communication technology, including: the second VAP of the first client multicasts the second multicast message encrypted by the first multicast key through WiFi communication technology.
- the multicast message can be sent by the client in the multicast group without other third-party devices, and the multicast source monitors the multicast message, thereby achieving efficient multicast transmission.
- the data unit of the multicast message is a MAC service data unit MSDU.
- the types of multicast messages include signaling frames and data frames, and the multicast types of signaling frames include control signaling frames and signaling confirmation frames; the first multicast message includes a first control signaling frame, and the second multicast message includes a first signaling confirmation frame, the first signaling confirmation frame is generated by the first client based on the first control signaling frame, and the first signaling confirmation frame is used to indicate the reception status of the control signaling frame sent by the multicast source.
- a feedback mechanism is provided for signaling frame transmission; the multicast source can send control signaling to any client in the multicast group. The client can provide feedback on the reception of control signaling frames, so that the multicast source can make further decisions based on the reception status, thereby improving the reliability of signal transmission.
- the types of multicast messages include signaling frames and data frames, and the multicast types of signaling frames include control signaling frames and signaling confirmation frames;
- the second multicast message includes a first control signaling frame, and the first multicast message includes a first signaling confirmation frame, which is generated by the multicast source based on the first control signaling frame, and the first signaling confirmation frame is used to indicate the reception status of the control signaling frame sent by the first client.
- a feedback mechanism is provided for signaling frame transmission; any client in the multicast group can send a control signaling frame to the multicast source, and the multicast source can feedback the reception status of the control signaling frame, so that the client can make further decisions based on the reception status, thereby improving the reliability of multicast transmission.
- the data unit in the signaling frame includes the actual destination address corresponding to the receiving end of the signaling frame and the actual source address corresponding to the sending end of the signaling frame;
- the data unit of the control signaling frame also includes a control identifier and a data payload, the data payload is used to transmit valid control signaling, and the control identifier is used to indicate the number of the control signaling frame;
- the data unit of the signaling confirmation frame also includes confirmation information, and the confirmation information is used to indicate the reception status of the control signaling frame sent by the receiving end of the signaling confirmation frame.
- the signaling frame can carry the actual destination address corresponding to the receiving end and the actual source address corresponding to the sending end, so that the receiving end can determine whether the signaling frame is sent to this device and whether the sending end belongs to the multicast group; in this way, one-to-one unicast between the multicast source and the client can be indirectly realized through multicast transmission.
- the first client sets a receiving window for the multicast source, which is used to maintain the receiving information of the control signaling frame from the multicast source;
- the multicast source sets a sending window for the first client, which is used to maintain the sending information of the control signaling frame sent to the first client;
- the above method also includes: the first client updates the receiving window corresponding to the multicast source based on the first control signaling frame, and determines the first signaling confirmation frame based on the updated receiving window; the first signaling confirmation frame indicates that the second control signaling frame maintained by the sending window has not been received;
- the multicast source updates the sending window corresponding to the first client based on the first signaling confirmation frame, and determines whether to retransmit the second control signaling frame.
- a feedback mechanism and a retransmission mechanism are provided for the transmission of signaling frames; based on the reception situation fed back by the client, the multicast source can determine whether to retransmit the control signaling frame that has not been received by the client, thereby improving the reliability of multicast transmission.
- the signaling frame further includes a multicast type; when the multicast type of the signaling frame is a control signaling frame, the signaling frame further includes a subtype of the control signaling frame, and the subtype of the control signaling frame includes a first subtype and a second subtype, and the processing modules corresponding to the first subtype and the second subtype are different; the above method further includes: the first client submits the first control signaling frame to the processing module corresponding to the first subtype for processing according to the first subtype in the first control signaling frame.
- the control signaling frame can be classified and processed according to its subtype.
- the receiving window includes M small windows, where M is a positive integer; the small windows in the receiving window maintain the receiving information of the control signaling frame in sequence according to the control identifier of the control signaling frame received from the multicast source; the receiving information maintained by a small window in the receiving window includes the control identifier and the receiving identifier of the control signaling frame; the receiving identifier is used to indicate whether the control signaling frame has been received; the first upper edge UE of the receiving window refers to the maximum value of the control identifier of the received control signaling frame maintained by the receiving window, and the first lower edge LE of the receiving window refers to the minimum value of the control identifier of the unreceived control signaling frame maintained by the receiving window; the sending window includes M small windows; the small windows in the sending window maintain the sending information of the control signaling frame in sequence according to the control identifier of the control signaling frame sent to the first client; the sending information maintained by a small window includes the control identifier of the control signaling frame; the second
- each client can use the sending window and the receiving window to maintain the control signaling frames it sends and receives for the multicast source; the multicast source can also use the sending window and the receiving window to maintain the control signaling frames it sends and receives for each client in the multicast group; and then feedback can be provided based on the receiving window, and retransmission can be performed based on the sending window to improve the reliability of multicast transmission.
- the confirmation information in the first signaling confirmation frame includes the first UE and the first LE of the receiving window, and a bitmap, which sequentially indicates the reception status of the control signaling frame maintained by the small window pointed to by the first LE in the receiving window to the small window pointed to by the first UE.
- the client can use the UE, LE and bitmap of the receiving window to feedback the reception status of the control signaling frame, so that the multicast source can make further decisions based on the reception status, thereby improving the reliability of multicast transmission.
- the first client updates the receiving window corresponding to the multicast source based on the first control signaling frame, including: determining that it is a multicast frame sent to the device according to the actual destination address in the first control signaling frame, and determining that the sender of the first control signaling frame belongs to the multicast group according to the actual source address in the first control signaling frame, obtaining the receiving window corresponding to the multicast source based on the actual source address in the first control signaling frame, and the first client updates the receiving window corresponding to the multicast source based on the first control signaling frame.
- the signaling frame can carry the actual destination address corresponding to the receiving end and the actual source address corresponding to the sending end, so that the receiving end can determine whether the signaling frame is sent to the device and whether the sending end belongs to the multicast group; in this way, one-to-one unicast between the multicast source and the client can be indirectly realized through multicast transmission.
- the first client updates the receiving window corresponding to the multicast source based on the first control signaling frame, including: determining a first index of the small window for maintaining the first control signaling frame according to the control identifier of the first control signaling frame, the first index being equal to the first control signaling frame.
- the control identifier of the control signaling frame is the remainder after being divided by M; when it is determined that the receiving window is full according to the first LE and the first UE, the small window pointed to by the first LE to the small window corresponding to the first index is cleared; when it is determined that the receiving window is not full, if the receiving identifier of the small window corresponding to the first index is the first value, the first control signaling frame is discarded, and if the receiving identifier of the small window corresponding to the first index is the second value, the receiving identifier of the small window corresponding to the first index is updated to the first value; the receiving identifier is the first value, indicating that the control signaling frame has been received; the receiving identifier is the second value, indicating that the control signaling frame has not been received; when the control identifier of the first control signaling frame is greater than the first UE, the value of the first UE is updated to the control identifier of the first control signaling frame; determine the first small window with the second value of the receiving
- the multicast source updates the sending window corresponding to the first client described in the UE based on the first signaling confirmation frame, including: determining that it is a multicast frame sent to this device according to the actual destination address in the first signaling confirmation frame, and determining whether the sender of the first control signaling frame belongs to the multicast group according to the actual source address in the first signaling confirmation frame, obtaining the sending window corresponding to the first client according to the actual source address in the first signaling confirmation frame, and the multicast source updates the sending window corresponding to the first client based on the first signaling confirmation frame.
- the signaling frame can carry the actual destination address corresponding to the receiving end and the actual source address corresponding to the sending end, so that the receiving end can determine whether the signaling frame is sent to this device and whether the sending end belongs to the multicast group; in this way, one-to-one unicast between the multicast source and the client can be indirectly realized through multicast transmission.
- the multicast source updates the sending window corresponding to the first client based on the first signaling confirmation frame, including: based on the confirmation information in the first signaling confirmation frame, when it is determined that the first LE is greater than or equal to the second LE of the sending window, and the first UE is less than or equal to the second UE, the multicast source updates the sending window corresponding to the first client based on the first signaling confirmation frame.
- the multicast source can filter out outdated or erroneous signaling confirmation frames according to the LE and UE in the signaling confirmation frame.
- the sending information maintained by a small window in the sending window also includes a sending status and a storage address, the sending status is used to indicate whether the control signaling frame has been received, and the storage address is used to indicate the cache address of the control signaling frame;
- the above-mentioned multicast source updates the sending window corresponding to the first client based on the first signaling confirmation frame, including: when the first LE is greater than the second LE, clear the small window pointed to by the second LE in the sending window to the previous small window of the small window pointed to by the first LE, and update the value of the second LE to the value of the first LE; when the first LE is equal to the second LE, traverse the small window pointed to by the first LE in the sending window to the small window pointed to by the first UE, and the second small window where the control signaling frame indicated by the bitmap has been received, and release the control signaling frame cached at the storage address of the second small window.
- the multicast source can update the sending window corresponding to the client
- the sending information maintained by a small window of the sending window also includes a retransmission flag and a retransmission count, the retransmission flag is used to indicate whether it has been retransmitted in the current retransmission cycle, and the retransmission count is used to indicate the number of times the control signaling frame has been retransmitted; the above determination of whether to retransmit the second control signaling frame includes: when the first LE is equal to the second LE, traverse the small window pointed to by the first LE in the sending window to the small window pointed to by the first UE, and the third small window indicated by the bitmap has not been received.
- the above-mentioned retransmission conditions include: the retransmission flag of the third small window is the second value, and the number of retransmissions is less than the first preset value; the retransmission flag is the second value, indicating that the control signaling frame has not been retransmitted in this retransmission cycle.
- the method further includes: the first client periodically times out the receiving window corresponding to the multicast source it maintains.
- each receiving window can be timed out periodically to avoid the receiving window being full and unable to continue processing the receiving information of new control signaling frames.
- the receiving information maintained by a small window of the receiving window also includes the number of polling times, and the first client periodically times out the receiving window corresponding to the multicast source it maintains, including: determining the fourth small window with a receiving identifier of the second value from the small window pointed to by the first LE to the small window pointed to by the first UE in the receiving window, and adding 1 to the number of polling times of the fourth small window; when the number of polling times of the fourth small window is greater than the second preset value, clearing the small window pointed to by the first LE to the fourth small window; determining the fifth small window with the first receiving identifier of the second value after the fourth small window in the receiving window; and updating the first LE of the receiving window to the control identifier of the fifth small window.
- each receiving window can be timed out regularly to avoid the receiving window being full and unable to continue processing the receiving information of the new control signaling frame.
- the method further includes: the multicast source periodically times out the sending window corresponding to the first client it maintains.
- the multicast source periodically times out the sending window corresponding to the first client it maintains.
- the multicast source periodically performs timeout processing on the sending window corresponding to the first client maintained by it, including: traversing the small window pointed to by the second LE in the sending window to the small window pointed to by the second UE, and the sixth small window with a sending state of the second value; the sending state takes the second value, indicating that the control signaling frame has not been received; the polling number corresponding to the sixth small window is increased by 1; when the polling number of the sixth small window is greater than or equal to the third preset value, it is determined whether the sixth small window meets the retransmission condition; when the retransmission condition is met, it is determined to retransmit the control signaling frame maintained by the sixth small window, and the polling number of the sixth small window is set to 0, the retransmission flag is set to the first value, and the retransmission number is increased by 1; when the retransmission condition is not met and the retransmission number exceeds the fifth preset value, the sixth small window is cleared, and the control signaling frame cache
- the first client establishes a Bluetooth connection with the multicast source, and sends a fourth Bluetooth message to the multicast source, the fourth Bluetooth message is used to request to exit the multicast group;
- the multicast source sends a fifth Bluetooth message to the first client, and deletes the multicast user information of the first client, the fifth Bluetooth message is used to indicate confirmation that the first client has exited the multicast group;
- the first client monitors the fifth Bluetooth message via Bluetooth, and deletes the second multicast group information on the client side based on the fifth Bluetooth message;
- the second multicast group information includes the multicast address and the first multicast key; the first client disconnects the Bluetooth connection with the multicast source.
- the members in the multicast group are dynamic, and any client can actively exit the multicast group and notify the multicast source through the Bluetooth connection, so that the multicast source can manage the clients in the multicast group.
- the first client and the multicast source establish a Bluetooth connection, and send a fourth Bluetooth message to the multicast source, including: the first client receives a fourth operation; in response to the fourth operation, the first client and the multicast source establish a Bluetooth connection, and send a fourth Bluetooth message to the multicast source; the method further includes: in response to the fourth operation, the first client closes the multicast application.
- the user can trigger the client to actively exit the multicast group and close the multicast application through the fourth operation.
- the multicast source broadcasts a sixth Bluetooth message via Bluetooth and deletes the first multicast group information on the multicast source side; the sixth Bluetooth message is used to indicate the deletion of the multicast group, and the first multicast group information includes a multicast device list, a first multicast key, and a multicast address; the first client monitors the sixth Bluetooth message via Bluetooth and deletes the second multicast group information on the client side based on the sixth Bluetooth message; the second multicast group information includes a multicast address and a first multicast key.
- the members in the multicast group are dynamic, and the multicast source can delete the multicast group and notify the clients in the multicast group via Bluetooth broadcast so that the clients can delete the relevant information of the multicast group.
- the multicast source Bluetooth broadcasting the sixth Bluetooth message includes: the multicast source receiving the fifth operation; in response to the fifth operation, the multicast source Bluetooth broadcasting the sixth Bluetooth message; the method further includes: in response to the fifth operation, closing the multicast application.
- the user can trigger the client to actively exit the multicast group and close the multicast application through the fifth operation.
- the present application provides a multicast communication method, which includes: a multicast source determines a multicast address and a first multicast key of a multicast group; the multicast source sends a first Bluetooth message to a first client, the first Bluetooth message is used to invite the first client to join the multicast group, the first Bluetooth message includes a multicast address and a first multicast key; the multicast source receives a second Bluetooth message sent by the first client; the second Bluetooth message is used to indicate that the first client confirms joining the multicast group, and the source address corresponding to the first multicast key on the first client side is the MAC address of the multicast source; the multicast source sends a first multicast message encrypted by the first multicast key through WiFi communication technology, the source address in the first MAC header of the first multicast message is the MAC address of the multicast source, and the destination address in the first MAC header is the multicast address.
- the multicast source determines the relevant information for establishing a multicast group (such as a multicast address and a multicast key), it informs the client of the above relevant information through Bluetooth interaction with the client to invite the client to join the multicast group; in this way, no other third-party devices are required to participate, and the multicast group can be quickly established through Bluetooth assistance.
- a multicast group such as a multicast address and a multicast key
- the multicast source and each client do not need to establish a Wifi connection, and the multicast source can also send multicast messages through WiFi communication technology, and each client joining the multicast group can also directly monitor the multicast messages sent by the multicast source through WiFi communication technology; in this way, large-scale multicast transmission without WiFi connection can be achieved without being limited by the number of associated WiFi unicast links, and other devices are not required to transfer messages, thereby improving the efficiency of multicast transmission.
- the method before the multicast source sends the first Bluetooth message to the first client, the method further includes: the multicast source turns on a first virtual access point VAP; the multicast source sends a first multicast message encrypted by a first multicast key through multicast using WiFi communication technology, including: the first VAP of the multicast source sends the first multicast message encrypted by the first multicast key through multicast using WiFi communication technology.
- the method further includes: the multicast source receives a first operation, the first operation is used to create a multicast group; the multicast source determines the multicast address and the first multicast key of the multicast group, including: in response to the first operation, the multicast source determines the multicast address and the first multicast key of the multicast group.
- the method before the multicast source sends the first Bluetooth message to the first client, the method further includes: the multicast source Bluetooth scans nearby Bluetooth devices that support multicast communication; the multicast source displays at least one scanned Bluetooth device, and the at least one Bluetooth device includes the first client; the multicast source receives a second operation, and the second operation is used to invite the first client to join the multicast group; in response to the second operation, the multicast source establishes a Bluetooth connection with the first client.
- the method further includes: disconnecting the multicast source from the First client's Bluetooth connection.
- the multicast source before the multicast source sends the first Bluetooth message to the first client, it also includes: the multicast source allocates a first IP address to the first VAP of the multicast source and allocates a second IP address to the second VAP of the client; the first Bluetooth message also includes the first IP address and the second IP address; the first IP address and the second IP address are used to encapsulate the multicast message, the source IP address in the multicast message sent by the multicast source is the first IP address, and the source IP address in the multicast message sent by the first client is the second IP address.
- the above method also includes: based on the second Bluetooth message, the first multicast source adds the multicast user information of the first client in the multicast device list; the multicast device list is used to store the multicast user information of each client in the multicast group, and the multicast user information of the first client includes the MAC address and the second IP address of the first client.
- the multicast source before the multicast source sends the first Bluetooth message to the first client, it also includes: the multicast source generates a virtual multicast source address; the multicast source configures the source address corresponding to the first multicast key as the virtual multicast source address; the first Bluetooth message also includes a virtual anchor source address, and the source address in the MAC header of the multicast message sent by the client in the multicast group is the virtual multicast source address.
- the method further includes: based on the multicast address, the multicast source monitors the second multicast message from the first client through WiFi communication technology; the source address in the second MAC header of the second multicast message is the virtual multicast source address, and the destination address in the second MAC header is the multicast address; the multicast source determines that the key corresponding to the source address in the second MAC header is the first multicast key, and uses the first multicast key to parse the data unit of the second multicast message.
- the data unit of the multicast message is a MAC service data unit MSDU.
- the types of multicast messages include signaling frames and data frames, and the multicast types of signaling frames include control signaling frames and signaling confirmation frames;
- the first multicast message includes a first control signaling frame, and the second multicast message includes a first signaling confirmation frame, which is generated by the first client based on the first control signaling frame, and the first signaling confirmation frame is used to indicate the reception status of the control signaling frame sent by the multicast source.
- the types of multicast messages include signaling frames and data frames, and the multicast types of signaling frames include control signaling frames and signaling confirmation frames;
- the second multicast message includes a first control signaling frame, and the first multicast message includes a first signaling confirmation frame, which is generated by the multicast source based on the first control signaling frame, and the first signaling confirmation frame is used to indicate the reception status of the control signaling frame sent by the first client.
- the first client sets a receiving window for the multicast source, which is used to maintain the receiving information of the control signaling frame from the multicast source;
- the multicast source sets a sending window for the first client, which is used to maintain the sending information of the control signaling frame sent to the first client;
- the first control signaling frame is used by the first client to update the receiving window corresponding to the multicast source, and determine the first signaling confirmation frame based on the updated receiving window;
- the first signaling confirmation frame indicates that the second control signaling frame maintained by the sending window has not been received;
- the above method also includes: the multicast source updates the sending window corresponding to the first client based on the first signaling confirmation frame, and determines whether to retransmit the second control signaling frame.
- the data unit in the signaling frame includes the actual destination address corresponding to the receiving end of the signaling frame and the actual source address corresponding to the sending end of the signaling frame;
- the data unit of the control signaling frame also includes a control identifier and a data payload, the data payload is used to transmit valid control signaling, and the control identifier is used to indicate the number of the control signaling frame;
- the data unit of the signaling confirmation frame also includes confirmation information, and the confirmation information is used to indicate the reception status of the control signaling frame sent by the receiving end of the signaling confirmation frame.
- the signaling frame also includes a multicast type; when the multicast type of the signaling frame is a control signaling frame, the signaling frame also includes a subtype of the control signaling frame, the subtype of the control signaling frame includes a first subtype and a second subtype, and the processing modules corresponding to the first subtype and the second subtype are different.
- the receiving window includes M small windows, where M is a positive integer; the small windows in the receiving window maintain the receiving information of the control signaling frame in sequence according to the control identifier of the control signaling frame received from the multicast source; the receiving information maintained by a small window in the receiving window includes the control identifier and the receiving identifier of the control signaling frame; the receiving identifier is used to indicate whether the control signaling frame has been received; the first upper edge UE of the receiving window refers to the maximum value of the control identifier of the received control signaling frame maintained by the receiving window, and the first lower edge LE of the receiving window refers to the minimum value of the control identifier of the unreceived control signaling frame maintained by the receiving window; the sending window includes M small windows; the small windows in the sending window maintain the sending information of the control signaling frame in sequence according to the control identifier of the control signaling frame sent to the first client; the sending information maintained by a small window includes the control identifier of the control signaling frame; the second
- the confirmation information in the first signaling confirmation frame includes the first UE and the first LE in the receiving window, and a bitmap, which sequentially indicates the reception status of the control signaling frames maintained from the small window pointed to by the first LE in the receiving window to the small window pointed to by the first UE.
- the multicast source updates the sending window corresponding to the first client described in the UE based on the first signaling confirmation frame, including: determining that it is a multicast frame sent to this device according to the actual destination address in the first signaling confirmation frame, and determining whether the sender of the first control signaling frame belongs to the multicast group according to the actual source address in the first signaling confirmation frame, obtaining the sending window corresponding to the first client according to the actual source address in the first signaling confirmation frame, and the multicast source updates the sending window corresponding to the first client based on the first signaling confirmation frame.
- the multicast source updates the sending window corresponding to the first client based on the first signaling confirmation frame, including: When the confirmation information in the confirmation frame determines that the first LE is greater than or equal to the second LE of the sending window and the first UE is less than or equal to the second UE, the multicast source updates the sending window corresponding to the first client based on the first signaling confirmation frame.
- the sending information maintained by a small window in the sending window also includes a sending status and a storage address, the sending status is used to indicate whether the control signaling frame has been received, and the storage address is used to indicate the cache address of the control signaling frame;
- the multicast source updates the sending window corresponding to the first client based on the first signaling confirmation frame, including: when the first LE is greater than the second LE, clearing the small window pointed to by the second LE in the sending window to the previous small window of the small window pointed to by the first LE, and updating the value of the second LE to the value of the first LE; when the first LE is equal to the second LE, traversing the small window pointed to by the first LE in the sending window to the small window pointed to by the first UE, the second small window where the control signaling frame indicated by the bitmap has been received, and releasing the control signaling frame cached at the storage address of the second small window.
- the sending information maintained by a small window of the sending window also includes a retransmission flag and a retransmission count, the retransmission flag is used to indicate whether it has been retransmitted within the current retransmission cycle, and the retransmission count is used to indicate the number of times the control signaling frame has been retransmitted;
- the above-mentioned determination of whether to retransmit the second control signaling frame includes: when the first LE is equal to the second LE, traversing the small window pointed to by the first LE in the sending window to the small window pointed to by the first UE, the third small window in which the control signaling frame indicated by the bitmap has not been received, and when the second control signaling frame maintained by the third small window meets the retransmission condition, determining to retransmit the second control signaling frame to the first client, updating the retransmission flag corresponding to the third small window to the first value, and increasing the retransmission count by 1; the retransmission flag takes the first value, indicating that
- the retransmission conditions include: the retransmission flag of the third small window is the second value, and the number of retransmissions is less than the first preset value; the retransmission flag is the second value, indicating that the control signaling frame has not been retransmitted in this retransmission cycle.
- the method further includes: the multicast source periodically performs timeout processing on the sending window corresponding to the first client maintained by the multicast source.
- the multicast source performs periodic timeout processing on the sending window corresponding to the first client it maintains, including: traversing the small window pointed to by the second LE in the sending window to the small window pointed to by the second UE, and the sixth small window with a sending status of the second value; the sending status takes the second value, indicating that the control signaling frame has not been received; the polling number corresponding to the sixth small window is increased by 1; when the polling number of the sixth small window is greater than or equal to the third preset value, determining whether the sixth small window meets the retransmission condition; when the retransmission condition is met, determining to retransmit the control signaling frame maintained by the sixth small window, and setting the polling number of the sixth small window to 0, the retransmission flag to the first value, and the retransmission number is increased by 1; when the retransmission condition is not met and the retransmission number exceeds the fifth preset value, clearing the sixth small window, and releasing the control signaling frame cached at the storage
- it also includes: the multicast source and the first client establish a Bluetooth connection; the multicast source receives a fourth Bluetooth message sent by the first client, the fourth Bluetooth message is used to request to exit the multicast group; the multicast source sends a fifth Bluetooth message to the first client and deletes the multicast user information of the first client, the fifth Bluetooth message is used to indicate confirmation of the first client's exit from the multicast group; the multicast source and the first client disconnect the Bluetooth connection.
- the method further includes: the multicast source broadcasts a sixth Bluetooth message via Bluetooth and deletes the first multicast group information on the multicast source side; the sixth Bluetooth message is used to indicate deletion of the multicast group, and the first multicast group information includes a multicast device list, a first multicast key and a multicast address.
- the multicast source Bluetooth broadcasts the fifth Bluetooth message, including: the multicast source receives a fifth operation; in response to the fifth operation, the multicast source Bluetooth broadcasts a sixth Bluetooth message; the method further includes: in response to the fifth operation, closing the multicast application.
- the present application provides a multicast communication method, which includes: a first client receives a first Bluetooth message sent by a multicast source, the first Bluetooth message is used to invite the first client to join the multicast group, and the first Bluetooth message includes a multicast address and a first multicast key of the multicast group; the first client sends a second Bluetooth message to the multicast source based on the first Bluetooth message; the second Bluetooth message is used to instruct the first client to confirm joining the multicast group; the first client configures the source address corresponding to the first multicast key as the MAC address of the multicast source; based on the multicast address, the first client monitors the first multicast message sent by the multicast source through WiFi communication technology, the source address in the first MAC header of the first multicast message is the MAC address of the multicast source, and the destination address in the first MAC header is the multicast address; the first client determines that the key corresponding to the source address in the first MAC header is the first multicast key, and uses the first multicast key
- the multicast source informs the client of the relevant information of the multicast group (such as the multicast address and the multicast key) through Bluetooth interaction with the client to invite the client to join the multicast group; in this way, no other third-party devices are required to participate, and the multicast group can be quickly established through Bluetooth assistance.
- the relevant information of the multicast group such as the multicast address and the multicast key
- the multicast source and each client do not need to establish a Wifi connection, and the multicast source can also send multicast messages through WiFi communication technology, and each client joining the multicast group can also directly monitor the multicast messages sent by the multicast source through WiFi communication technology; in this way, there is no need to be limited by the number of associated WiFi unicast links, and there is no need for other devices to transfer messages, so large-scale multicast transmission without WiFi connection can be achieved, which improves the efficiency of multicast transmission.
- the first client opens the second VAP based on the first Bluetooth message; the first client monitors the first multicast message sent by the multicast source through WiFi communication technology, including: the second VAP of the first client monitors the first multicast message sent by the multicast source through WiFi communication technology.
- the method before the first client receives the first Bluetooth message sent by the multicast source, the method further includes: the first client receives a third operation; in response to the third operation, the first client broadcasts a first discovery signal via Bluetooth, the first discovery signal indicating that the first client supports multicast communication, and the first discovery signal is used to establish a Bluetooth connection with the multicast source; the first client establishes a Bluetooth connection with the multicast source.
- the above method before the first client receives the first Bluetooth message sent by the multicast source, the above method also includes: the first client monitors the second discovery signal from the multicast source via Bluetooth; based on the second discovery signal, the first client establishes a Bluetooth connection with the multicast source; the first client sends a third Bluetooth message to the multicast source, the third Bluetooth message is used to request to join the multicast group, and the first Bluetooth message is sent by the multicast source based on the third Bluetooth message.
- the method further includes: disconnecting the Bluetooth connection between the multicast source and the first client.
- the first Bluetooth message also includes a virtual anchor source address
- the source address in the MAC header of the multicast message sent by the first client is the virtual multicast source address
- the source address corresponding to the first multicast key on the multicast source side is the virtual multicast source address
- the method further includes: the first client sends a second multicast message encrypted by a first multicast key via multicast through WiFi communication technology, the source address in the second MAC header of the second multicast message is a virtual multicast source address, and the destination address in the second MAC header is a multicast address.
- the above method also includes: the first client turns on the second VAP based on the first Bluetooth message; the above first client sends the second multicast message encrypted by the first multicast key through WiFi communication technology multicast, including: the second VAP of the first client sends the second multicast message encrypted by the first multicast key through WiFi communication technology multicast.
- the data unit of the multicast message is a MAC service data unit MSDU.
- the types of multicast messages include signaling frames and data frames, and the multicast types of signaling frames include control signaling frames and signaling confirmation frames;
- the first multicast message includes a first control signaling frame, and the second multicast message includes a first signaling confirmation frame, which is generated by the first client based on the first control signaling frame, and the first signaling confirmation frame is used to indicate the reception status of the control signaling frame sent by the multicast source.
- the types of multicast messages include signaling frames and data frames, and the multicast types of signaling frames include control signaling frames and signaling confirmation frames;
- the second multicast message includes a first control signaling frame, and the first multicast message includes a first signaling confirmation frame, which is generated by the multicast source based on the first control signaling frame, and the first signaling confirmation frame is used to indicate the reception status of the control signaling frame sent by the first client.
- the first client sets a receiving window for the multicast source, which is used to maintain the receiving information of the control signaling frame from the multicast source;
- the multicast source sets a sending window for the first client, which is used to maintain the sending information of the control signaling frame sent to the first client;
- the above method also includes: the first client updates the receiving window corresponding to the multicast source based on the first control signaling frame, and determines the first signaling confirmation frame based on the updated receiving window;
- the first signaling confirmation frame indicates that the second control signaling frame maintained by the sending window has not been received;
- the first signaling confirmation frame is used to update the sending window corresponding to the first client, and determine whether to retransmit the second control signaling frame.
- the data unit in the signaling frame includes the actual destination address corresponding to the receiving end of the signaling frame and the actual source address corresponding to the sending end of the signaling frame;
- the data unit of the control signaling frame also includes a control identifier and a data payload, the data payload is used to transmit valid control signaling, and the control identifier is used to indicate the number of the control signaling frame;
- the data unit of the signaling confirmation frame also includes confirmation information, and the confirmation information is used to indicate the reception status of the control signaling frame sent by the receiving end of the signaling confirmation frame.
- the signaling frame also includes a multicast type; when the multicast type of the signaling frame is a control signaling frame, the signaling frame also includes a subtype of the control signaling frame, the subtype of the control signaling frame includes a first subtype and a second subtype, and the processing modules corresponding to the first subtype and the second subtype are different; the above method also includes: the first client submits the first control signaling frame to the processing module corresponding to the first subtype for processing according to the first subtype in the first control signaling frame.
- the receiving window includes M small windows, where M is a positive integer; the small windows in the receiving window maintain the receiving information of the control signaling frame in sequence according to the control identifier of the control signaling frame received from the multicast source; the receiving information maintained by a small window in the receiving window includes the control identifier and the receiving identifier of the control signaling frame; the receiving identifier is used to indicate whether the control signaling frame has been received; the first upper edge UE of the receiving window refers to the maximum value of the control identifier of the received control signaling frame maintained by the receiving window, and the first lower edge LE of the receiving window refers to the minimum value of the control identifier of the unreceived control signaling frame maintained by the receiving window; the sending window includes M small windows; the small windows in the sending window maintain the sending information of the control signaling frame in sequence according to the control identifier of the control signaling frame sent to the first client; the sending information maintained by a small window includes the control identifier of the control signaling frame; the second
- the confirmation information in the first signaling confirmation frame includes the first UE and the first LE in the receiving window, and a bitmap, which sequentially indicates the reception status of the control signaling frames maintained from the small window pointed to by the first LE in the receiving window to the small window pointed to by the first UE.
- the first client updates the receiving window corresponding to the multicast source based on the first control signaling frame, including: determining that it is a multicast frame sent to the device according to the actual destination address in the first control signaling frame, and according to the actual source address in the first control signaling frame, When it is determined that the sender of the first control signaling frame belongs to the multicast group, the receiving window corresponding to the multicast source is obtained based on the actual source address in the first control signaling frame, and the first client updates the receiving window corresponding to the multicast source based on the first control signaling frame.
- the first client updates the receiving window corresponding to the multicast source based on the first control signaling frame, including: determining a first index of the small window for maintaining the first control signaling frame according to the control identifier of the first control signaling frame, the first index being equal to the remainder after the control identifier of the first control signaling frame is divided by M; when it is determined that the receiving window is full according to the first LE and the first UE, clearing the small window from the small window pointed to by the first LE to the small window corresponding to the first index; when it is determined that the receiving window is not full, if the receiving identifier of the small window corresponding to the first index is a first value, discarding the first control signaling frame, if the receiving identifier of the small window corresponding to the first index is a second value, updating the value of the receiving identifier of the small window corresponding to the first index to the first value; the receiving identifier is the first value, indicating that the control signaling frame has been received; the receiving identifier is the
- the method further includes: the first client periodically performing timeout processing on the receiving window corresponding to the multicast source maintained by the first client.
- the receiving information maintained by a small window of the receiving window also includes the polling number.
- the above-mentioned first client performs periodic timeout processing on the receiving window corresponding to the multicast source it maintains, including: determining the fourth small window with a receiving identifier of the second value from the small window pointed to by the first LE in the receiving window to the small window pointed to by the first UE, and increasing the polling number of the fourth small window by 1; when the polling number of the fourth small window is greater than the second preset value, clearing the small window pointed to by the first LE to the fourth small window; determining the fifth small window with the first receiving identifier of the second value after the fourth small window in the receiving window; and updating the first LE of the receiving window to the control identifier of the fifth small window.
- the first client establishes a Bluetooth connection with the multicast source and sends a fourth Bluetooth message to the multicast source, the fourth Bluetooth message is used to request to exit the multicast group; the first client receives a fifth Bluetooth message sent by the multicast source, the fifth Bluetooth message is used to indicate confirmation of the first client's exit from the multicast group; the first client deletes the second multicast group information on the client side based on the fifth Bluetooth message; the second multicast group information includes a multicast address and a first multicast key; the first client and the multicast source disconnect the Bluetooth connection.
- the first client and the multicast source establish a Bluetooth connection and send a fourth Bluetooth message to the multicast source, including: the first client receives a fourth operation; in response to the fourth operation, the first client and the multicast source establish a Bluetooth connection and send a fourth Bluetooth message to the multicast source; the method also includes: in response to the fourth operation, the first client closes the multicast application.
- the first client Bluetooth monitors a sixth Bluetooth message from a multicast source; the sixth message is used to indicate deletion of the multicast group; the first client deletes the second multicast group information on the client side based on the sixth Bluetooth message; the second multicast group information includes a multicast address and a first multicast key.
- the present application provides a communication device, comprising: one or more processors and one or more memories.
- the one or more memories are coupled to the one or more processors, and the one or more memories are used to store computer program codes, and the computer program codes include computer instructions.
- the communication device executes the multicast communication method in any possible implementation of the second aspect.
- the present application provides a communication device, comprising one or more processors and one or more memories.
- the one or more memories are coupled to the one or more processors, and the one or more memories are used to store computer program codes, and the computer program codes include computer instructions.
- the communication device executes the multicast communication method in any possible implementation of the third aspect.
- an embodiment of the present application provides a computer storage medium, including computer instructions, which, when executed on an electronic device, enables a communication device to execute a multicast communication method in any possible implementation of any of the above aspects.
- an embodiment of the present application provides a computer program product, which, when executed on a computer, enables the computer to execute the multicast communication method in any possible implementation of any of the above aspects.
- FIG1 is a schematic diagram of a multicast system provided in an embodiment of the present application.
- FIG2A is a schematic diagram of another multicast system provided in an embodiment of the present application.
- FIG2B is a schematic diagram of a multicast transmission method provided in an embodiment of the present application.
- FIG2C is a schematic diagram of a process for establishing a WiFi connection provided in an embodiment of the present application.
- FIG2D is a schematic diagram of another multicast system provided in an embodiment of the present application.
- FIG2E is a software architecture diagram provided in an embodiment of the present application.
- 3A to 3G are related user interfaces for establishing a multicast group provided in an embodiment of the present application.
- 4A to 4I are related interfaces of a client actively joining a multicast group provided in an embodiment of the present application;
- 5A to 5D are user interfaces related to multicast group deletion provided in an embodiment of the present application.
- FIG6A is a schematic diagram of the stages of a multicast communication method provided in an embodiment of the present application.
- FIG6B is a schematic diagram of another multicast transmission method provided in an embodiment of the present application.
- FIG7A is a flow chart of a method for a multicast startup phase provided in an embodiment of the present application.
- FIG. 7B is a flow chart of a method for a multicast source invitation phase provided in an embodiment of the present application.
- FIG7C is a flow chart of a method for a client actively joining the stage provided in an embodiment of the present application.
- FIG8 is a flow chart of a method for multicast transmission phase provided in an embodiment of the present application.
- FIG9A is a schematic diagram of a frame format of a control signaling frame provided in an embodiment of the present application.
- FIG9B is a schematic diagram of a frame format of a signaling confirmation frame provided in an embodiment of the present application.
- FIG9C is a flow chart of a method for signaling frame transmission phase provided in an embodiment of the present application.
- FIGS. 10A and 10B are schematic diagrams of a receiving window provided in an embodiment of the present application.
- FIG10C is a flow chart of a method for updating a receiving window provided in an embodiment of the present application.
- FIG10D is a flow chart of a method for updating a receiving window provided in an embodiment of the present application.
- FIG10E is a schematic diagram of a receiving window provided in an embodiment of the present application.
- FIG10F is a schematic diagram of a flow chart of a timeout process of a sending window provided in an embodiment of the present application.
- FIG10G is a schematic diagram of a receiving window provided in an embodiment of the present application.
- FIG11A is a schematic diagram of a sending window provided in an embodiment of the present application.
- FIG11B is a flow chart of a method for updating a sending window provided in an embodiment of the present application.
- FIG11C is a flow chart of a method for updating a sending window provided in an embodiment of the present application.
- FIG11D is a schematic diagram of a sending window provided in an embodiment of the present application.
- FIG11E is a schematic diagram of a flow chart of a timeout process of a sending window provided in an embodiment of the present application.
- FIG12A is a flow chart of a method for a client actively exiting a phase provided by an embodiment of the present application
- 12B is a flow chart of a method for multicast source deletion phase provided in an embodiment of the present application.
- FIG. 13 is a schematic diagram of the structure of a multicast source provided in an embodiment of the present application.
- first and second are used for descriptive purposes only and are not to be understood as suggesting or implying relative importance or implicitly indicating the number of the indicated technical features.
- a feature defined as “first” or “second” may explicitly or implicitly include one or more of the features, and in the description of the embodiments of the present application, unless otherwise specified, "plurality” means two or more.
- GUI graphical user interface
- Unicast refers to a point-to-point network connection between the source host and the target host.
- the unicast data packet sent by the source host includes the address of the target host.
- the unicast method will occupy a large amount of network bandwidth, causing heavy load on the source host and network congestion.
- Multicast refers to the transmission of a data packet to a set of hosts in a multicast group according to the principle of maximum delivery.
- a source host needs to send the same data to multiple hosts, it does not need to send the data to the multiple hosts separately. It only needs to send a copy of the data to a specific multicast address, which identifies a multicast group. All hosts that join the multicast group can receive a copy of the data sent by the source host, while hosts outside the multicast group will not receive it.
- multicast saves network bandwidth and reduces the network load and the load of the source host.
- the source host In the multicast mode, the source host can be called the multicast source.
- FIG. 1 shows a conventional multicast system 10 .
- clients in the multicast group can establish WiFi connections with wireless access points (APs) respectively, and then access the wireless local area network (WLAN) through the APs.
- the multicast data is copied and forwarded by the transit equipment (such as switches, routers, etc.) in the network according to the distribution of the clients (Clients) joining the multicast group, and the multicast data is accurately sent to the wireless access point accessed by each client; then the AP sends the multicast data to the clients in the multicast group through the WiFi connection with the client.
- the communication network involved in Figure 1 may include WLAN and/or wide area network (such as the Internet).
- the multicast data sent by the multicast source needs to be processed and distributed by multiple intermediate devices (such as relay devices and APs) before being sent to the clients in the multicast group.
- intermediate devices such as relay devices and APs
- the multicast source of the multicast group and the clients that intend to join the multicast group are close to each other and are within the WLAN communication range; for the above multicast source and each client, a multicast group is quickly established to improve the management efficiency and multicast transmission efficiency of the multicast group, and to achieve large-scale reliable multicast.
- the multicast system 10 there are many intermediate devices involved between the multicast source and the client, and the processing flow of multicast management and multicast transmission is very complicated; and each client needs to establish a WiFi connection with the AP, which is not suitable for an environment without an AP; therefore, the multicast system 10 is not suitable for this scenario requirement.
- FIG2A shows a multicast system 20 provided by an embodiment of the present application.
- the multicast source 100 creates a virtual access point (VAP), establishes a WiFi connection with each client in the multicast group as an AP, and then sends a multicast message to each client in the multicast group based on the WiFi connection with each client.
- VAP virtual access point
- FIG. 2B shows a timing diagram of the multicast transmission method.
- the AP determines the MAC address of each client in the multicast group that accesses the AP; based on the MAC address of each client, the AP converts a multicast IP frame into a unicast frame for each client; then, based on the WiFi protocol, the unicast frame corresponding to the multicast IP frame is sent to each of the above clients in turn, and the feedback mechanism of unicast transmission is adopted.
- this transmission method can adopt a high-order transmission rate. That is, after sending a unicast frame to a client, an acknowledgment character (ACK) fed back by the client can be received.
- ACK acknowledgment character
- the above unicast frame and ACK are separated by an inter-frame spacing (IFS), and the above ACK and the next unicast frame sent are separated by a distributed inter-frame spacing (DIFS) and a random backoff value (Backoff).
- IFS inter-frame spacing
- DIFS distributed inter-frame spacing
- Backoff a random backoff value
- this multicast-to-unicast multicast transmission mode loses the meaning of multicast itself, and when the number of clients joining the multicast group is large, it will cause a waste of air interface resources.
- the multicast source 100 needs to establish a WiFi connection with each client, that is, a WiFi unicast link is maintained between each client.
- WiFi connection means that two devices establish a WiFi unicast link through part or all of the five stages of service discovery, link authentication (Auth Req/Resp), association process (Asso Req/Resp), key negotiation (i.e., four steps) and IP allocation, and maintain corresponding link information for the WiFi unicast link on the two devices, such as various link parameters and various link optimization algorithms (such as rate selection algorithm, aggregation algorithm, etc.).
- link authentication Auth Req/Resp
- Auso Req/Resp association process
- key negotiation i.e., four steps
- IP allocation i.e., IP allocation
- 32 or even 64 devices' WiFi unicast links can be associated at the same time; however, when user's terminal devices (such as mobile phones, tablets, etc.) are used as multicast sources, they can generally only be associated with 4 to 8 devices' WiFi unicast links due to hardware resource constraints, which greatly limits the number of clients in the multicast group.
- user's terminal devices such as mobile phones, tablets, etc.
- the multicast system 30 can include a multicast source 100 of a multicast group, and multiple clients joining the multicast group, such as client 200, client 300, etc. The following description is made by taking client 200 as an example.
- the multicast source 100 and the client 200 are terminal devices with a short-distance communication module, and the short-distance communication module includes a WiFi communication module and a Bluetooth (BLE) communication module.
- the multicast source 100 starts the VAP for multicast through the WiFi communication module (for example, turning on a WiFi hotspot); the multicast source 100 and the client 200 establish a Bluetooth connection through the Bluetooth communication module; based on the Bluetooth connection, the client 200 can join the multicast group and start the VAP for multicast, and the multicast source 100 can obtain the multicast user information of the client 200 (for example, IP address and MAC address, etc.).
- the above-mentioned VAP can be understood as a driver network card, that is, a kernel-mode network card that can be operated in user mode.
- the multicast source 100 and each client do not need to establish a Wifi connection, and the VAP of the multicast source 100 can also send multicast messages through the WiFi communication module based on the multicast user information of each client, and the VAP of each client can also monitor the multicast messages sent by the multicast source 100 through the WiFi communication module.
- the number of WiFi multicast packets can be increased to achieve large-scale WiFi multicast transmission without WiFi connection.
- no WiFi connection between the multicast source 100 and each client in the multicast group means that the multicast source 100 and each client do not have the WiFi connection process shown in FIG. 2C, and thus there is no need to maintain the link information corresponding to each client (i.e., various link parameters and various link optimization algorithms).
- the multicast source 100 only needs to virtualize all clients in the multicast group as a multicast user, and only maintain the link information corresponding to the multicast user, including the multicast address of the multicast group, the multicast key, the virtual multicast source address of the client, and the multicast user information of each client.
- the multicast source 100 may have a display screen, and the user may trigger the creation/deletion of a multicast group through a user interface displayed on the display screen.
- the client 200 may also have a display screen, and the user may trigger the client 200 to join/exit a multicast group through a user interface displayed on the display screen.
- the multicast source 100 and each client 200 may be a user's terminal device.
- the multicast source 100 and the client 200 may be a mobile phone, a tablet computer, a desktop computer, a laptop computer, a handheld computer, a notebook computer, an ultra-mobile personal computer (UMPC), a netbook, a cellular phone, a personal digital assistant (PDA), an augmented reality (AR) device, a virtual reality (VR) device, an artificial intelligence (AI) device, a wearable device, a vehicle-mounted device, a smart home device and/or a smart city device, etc.
- PDA personal digital assistant
- AR augmented reality
- VR virtual reality
- AI artificial intelligence
- the multicast source 100 and the client 200 may be equipped with iOS, Android, Microsoft or other operating systems, which are not specifically limited here.
- the software system of the multicast source 100 may adopt a layered architecture, an event-driven architecture, a micro-kernel architecture, a micro-service architecture, or a cloud architecture.
- the Android system of the layered architecture is taken as an example to exemplify the software structure of the multicast source 100.
- FIG. 2E is a software architecture diagram of the multicast source 100 according to an embodiment of the present invention.
- the layered architecture divides the software into several layers, each with clear roles and division of labor.
- the layers communicate with each other through software interfaces.
- the software architecture of the multicast source 100 includes but is not limited to an application layer (Application), an application framework layer (Freamwork), and a kernel layer (kernel).
- the application (APP) layer may include a series of application packages. As shown in FIG2E , the application package may include a user interface (UI) and a multicast application (such as a screen projection application), and may also include WLAN applications, Bluetooth applications, video applications, and other applications.
- UI user interface
- multicast application such as a screen projection application
- the application framework layer provides application programming interface (API) and programming framework for the applications in the application layer.
- API application programming interface
- the application framework layer includes some predefined functions.
- the system services in the application framework layer may include Bluetooth services and WLAN services.
- Bluetooth applications may call Bluetooth services to establish wireless communication connections with nearby clients and perform data transmission;
- WLAN applications may call WLAN services to start VAPs, which may multicast and send multicast messages through the WiFi communication protocol, and monitor multicast messages sent by clients in the multicast group.
- the application framework layer may also include a window manager, a content provider, a view system, a phone manager, a resource manager, a notification manager, etc. (not shown in the drawings).
- the kernel layer is an abstraction layer between hardware and software. Android core system services rely on the kernel layer (i.e., the Linux kernel), such as security, memory management, process management, network protocol stack, and driver model.
- the kernel layer (kernel) can respond to the functions called by the application framework layer and perform corresponding operations.
- the kernel layer can include TCP/IP protocol stack (TCP/IP Multicast Stack), HML multicast stack (HML Multicast Stack) and hardware driver layer (Driver).
- TCP/IP Multicast Stack TCP/IP Multicast Stack
- HML Multicast Stack HML multicast stack
- Driver hardware driver layer
- the TCP/IP protocol stack includes a transport layer and a network layer from high to low.
- the TCP/IP protocol stack is used for message segmentation and reassembly, message encapsulation, message checking, congestion control, slow start, out-of-order reordering, timeout reordering, etc.
- the TCP/IP stack When sending data, the TCP/IP stack encapsulates the data to be sent in a high-to-low order using the corresponding layered protocol.
- the network layer will be used to add an IP header to the message transmitted from the upper layer to generate an IP message, and send it to the data link layer in the WiFi driver.
- the IP header includes the IP address of the multicast source 100 and the destination IP address (such as the multicast IP address or the IP address of the client).
- the data link layer adds a MAC header to the message transmitted from the upper layer to generate a MAC frame, and sends it to the physical layer.
- the MAC header includes the MAC address of the multicast source 100 and the destination MAC address (such as the multicast MAC address or the MAC address of the client).
- the embodiment of the present application does not specifically limit the method for obtaining the multicast IP address.
- the TCP/IP stack uses the corresponding layered protocol to parse the received data in order from low to high.
- the data link layer is used to perform MAC frame check on the message transmitted from the lower layer, such as parsing the MAC header, based on the source address in the MAC header.
- the network layer queries the multicast key from the address and uses the multicast key to parse the message to obtain the parsed data unit (such as MAC service data unit (MSDU)).
- MSDU MAC service data unit
- the network layer is used to perform IP message verification on the message transmitted from the lower layer, such as decapsulating the IP header and determining whether it is the IP address of the local device based on the destination IP address in the IP message. If so, the decapsulated message is uploaded to the upper layer.
- the HML multicast stack includes a multicast management module and a multicast transmission module.
- the multicast management module is used to manage the multicast group information on the multicast source 100 side and allocate IP addresses to the multicast source 100 and the clients joining the multicast group.
- the multicast group information may include multicast user information, multicast address, virtual multicast source address, multicast key, etc.
- the multicast transmission module is used to determine the multicast message to be sent and the sending time, and is also used to process the multicast message fed back by the client.
- the hardware driver layer includes at least a display driver, a Bluetooth driver, and a WiFi driver.
- the display driver can drive the display screen to display a user interface, and the user interface can be provided with controls for triggering the establishment and deletion of a multicast group.
- the Bluetooth service can send instructions to the Bluetooth driver, instructing the Bluetooth driver to send a detection signal through the Bluetooth communication module to scan nearby Bluetooth devices, interact with other Bluetooth devices to establish a Bluetooth connection, and send and receive signals through the above-mentioned Bluetooth connection.
- the multicast source 100 can invite the client to join the multicast group or receive a request to join the multicast group from the client through the above-mentioned Bluetooth connection, and can also notify the client to delete the multicast group or receive a request from the client to exit the multicast group.
- the WiFi service can send instructions to the WiFi driver, instructing the WiFi driver to start the VAP through the WiFi communication module, and to send multicast messages to the multicast address through the VAP, and to monitor the multicast messages fed back by the VAP of
- the software architecture of the client may refer to the relevant description of the multicast source 100 in FIG. 2E , and may include more or fewer modules than the software architecture shown in FIG. 2E , which will not be described in detail here.
- the embodiment of the present application provides a multicast communication method, which can achieve large-scale reliable multicast transmission.
- the application scenario of the multicast communication method is exemplarily introduced below.
- the application scenarios involved in the embodiments of the present application include one-to-many information sharing, which may be file sharing, such as the multicast source 100 sending a file to multiple clients at the same time; or screen sharing, such as projecting the screen of the multicast source 100 onto the screens of multiple clients at the same time.
- file sharing such as the multicast source 100 sending a file to multiple clients at the same time
- screen sharing such as projecting the screen of the multicast source 100 onto the screens of multiple clients at the same time.
- Figures 3A to 3F show the relevant interfaces in which the user triggers the establishment of a multicast group through the UI in a screen projection sharing scenario and invites the client 200 to join the multicast group.
- the multicast source 100 displays the user interface 11 of the video application, it detects the user's operation of calling out the control interface 12 (e.g., a downward sliding operation starting from the status bar); in response to the operation, the multicast source 100 displays the control interface 12 shown in FIG3B .
- the control interface 12 may include switch icons for controlling various shortcut functions of the multicast source 100, such as a switch icon 201 for wireless screen projection, a switch icon for WiFi, and a switch icon for Bluetooth, etc., wherein the switch icon for WiFi and the switch icon for Bluetooth are both in the on state.
- the embodiment of the present application does not specifically limit the manner in which the user calls out the control interface.
- the user can turn on/off wireless screen projection through the switch icon 201 of wireless screen projection.
- the switch icon has two display states, namely, the on state and the off state; the switch icon 201 shown in Figure 3B is currently in the off state, indicating that the wireless screen projection is not currently turned on.
- the multicast source 100 switches the switch icon 201 to the on state, turns on the wireless screen projection, and executes the process of establishing the screen projection multicast group.
- the multicast source 100 after wireless screen projection is turned on, performs the process of establishing a screen projection multicast group, including: detecting nearby devices that can perform wireless screen projection (for example, nearby devices with wireless sharing turned on), and displaying the selection box 202 shown in Figure 3D.
- the selection box 202 includes device options of the detected nearby devices, such as the device option 203 of the client 200, and may also include a confirmation control 204.
- the above-mentioned device options may include some or all of the device icon, device name, and device model.
- the terminal device with wireless sharing enabled periodically broadcasts a discovery signal via Bluetooth, which can indicate the device ID of the device and indicate that the device can receive wireless sharing data from other devices, such as screen projection data.
- the multicast source 100 can monitor the discovery signal sent by the device with wireless sharing enabled through the Bluetooth driver.
- the selection box 202 is used to select the target screen projection device, and the user can select at least one device from the detected nearby devices as the target screen projection device.
- the multicast source 100 detects that the user clicks the confirmation control 204
- the multicast source 100 sends a multicast invitation message to the client 200 to invite it to join the screen projection multicast group; and after the client 200 joins the screen projection multicast group, the screen projection data is multicasted to it.
- a multicast invitation message is sent to the client 200.
- the selection box 202 can also be used to select the screen projection content.
- the screen projection content may include the following options: the screen 205 of the multicast source 100 and the application (i.e., the video application) 206 running in the foreground. If the user selects the screen 205, the screen projection data multicasted and sent by the multicast source 100 includes the current display content of the display screen of the multicast source 100; if the user selects the video application 206, the screen projection data multicasted and sent by the multicast source 100 includes the display content of the video application running on the multicast source 100.
- the client 200 accepts the invitation of the multicast source 100 and joins the screen projection multicast group before it can receive the screen projection data sent by the multicast source 100.
- the client 200 can first display a prompt box 207, and the prompt box 207 is used to prompt the user whether to accept the screen projection of the multicast source 100.
- the prompt box 207 may include a confirmation control 208 and a rejection control 209.
- the confirmation control 208 is used to accept the screen projection
- the rejection control 209 is used to reject the screen projection.
- the client 200 when it is detected that the user clicks the confirmation control 208, the client 200 accepts the invitation of the multicast source 100 and joins the screen projection multicast group; then, the client 200 displays the projection screen 13 based on the received projection data of the multicast source 100, and the projection screen 13 may include the user interface 11 currently displayed by the multicast source 100.
- the multicast source 100 actively invites the client 200 to join the screen projection multicast group. In some embodiments, the multicast source 100 does not actively invite the client 300 to join the screen projection multicast group, and the client 300 may also actively request to join the screen projection multicast group.
- FIG. 4A to FIG. 4I show relevant interfaces of the client 300 actively joining the screen projection multicast group after the multicast source 100 establishes the screen projection multicast group.
- the multicast source 100 when the multicast source 100 establishes a screen projection multicast group, it can generate a password for joining the screen projection multicast group, for example, a personal identification number (PIN). As shown in FIG4A , when the multicast source 100 projects the screen to a client that has joined the screen projection multicast group, it can display the PIN 301 for joining the screen projection multicast group, and nearby devices can use this PIN to actively join the screen projection multicast group.
- PIN personal identification number
- the client 300 displays the user interface 16 (e.g., the main interface), it detects the user's operation of calling up the control interface 14; in response to the operation, the client 300 displays the control interface 14 shown in FIG4C .
- the control interface 14 of the client 300 may include switch icons for controlling various shortcut functions of the client 300, such as a switch icon 302 for wireless sharing, a switch icon for WiFi, and a switch icon for Bluetooth, etc.
- the display state of the switch icon 302 can be switched from an unopened state to an open state, and wireless sharing can be turned on.
- wireless sharing After wireless sharing is turned on, the user can join the screen projection multicast group established by the multicast source 100 through the multi-device collaboration page 15.
- the embodiment of the present application does not specifically limit the method of calling the multi-device collaboration page 15.
- the client 300 when it is detected that the user long presses the switch icon 302 of wireless sharing, the client 300 displays the multi-device collaboration page 15.
- the multi-device collaboration page 15 includes an icon 303 of the client 300, and icons of other devices detected by the client 300 that have turned on wireless sharing and/or wireless screen projection, such as an icon 304 of the multicast source 100.
- the icon 303 of the client 300 is located in area 1, and the icons of other devices are located in area 2.
- area 1 can be a circular area with the center as the center, and area 2 can be an annular area surrounding area 1.
- the shapes and positions of the above-mentioned areas 1 and 2 are not specifically limited in the embodiments of the present application.
- the multicast source 100 with wireless screen projection turned on can broadcast Bluetooth signals regularly to indicate that the device is performing wireless screen projection; the device with wireless sharing turned on can also broadcast Bluetooth signals regularly to indicate that the device can perform wireless sharing.
- the client 300 can display the icons of each device in area 2 of the multi-device collaboration page 15 based on the Bluetooth signals of each device detected.
- the client 300 after the client 300 detects the Bluetooth signal broadcast by the multicast source 100, it can also display a prompt message 305 in the multi-device collaboration page 15 to indicate that the multicast source 100 is performing screen projection.
- the user can trigger the client 300 to join the screen projection multicast group of the multicast source 100 by dragging the icon 304 of the multicast source 100 close to the icon 303 of the client 300.
- the client 300 detects a sliding operation on the icon 304
- the client 300 moves the icon 304 toward the icon 303 along the sliding direction of the user's finger.
- the multicast source 100 displays a prompt box 306, and the prompt box 306 is used to verify the screen projection password of the multicast source 100.
- the prompt box 306 may include prompt information 307, a password input box 308, and a confirmation control 309, and the prompt information 307 is used to prompt the user to enter the screen projection PIN code of the multicast source 100.
- the client 300 detects the user's operation on the confirmation control 309 (such as a click operation); in response to the operation, the client 300 sends a screen projection request to the multicast source 100, and the screen projection request is used to request to join the screen projection multicast group of the multicast source 100, and the screen projection request carries the screen projection PIN code entered by the user.
- the multicast source 100 verifies that the PIN code in the above screen projection request is correct, it adds the client 300 to the screen projection multicast group; then, the client 300 can receive the screen projection data sent by the multicast source 100 multicast.
- the client can display the projection screen 17, and the projection screen 17 can include the user interface 11 currently displayed by the multicast source 100.
- the prompt box 306 may not be displayed, and the user does not need to enter a PIN code.
- the client 300 directly sends a screen projection request to the multicast source 100; based on the screen projection request, the multicast source 100 may display a prompt box to prompt the user whether to allow the client 300 to join the screen projection multicast group.
- the prompt box may include a confirmation control and a rejection control; when the user's operation on the confirmation control is detected, the multicast source 100 will add the client 300 to the screen projection multicast group.
- the client 300 can also be triggered to actively join the above-mentioned screen projection multicast group through other methods, which are not specifically limited here.
- multicast source 100 When multicast source 100 is projecting screens with clients in the screen projection multicast group, users of clients in the screen projection multicast group can voluntarily exit the screen projection multicast group and end the screen projection of the client; multicast source 100 can also end the screen projection and delete the entire screen projection multicast group.
- Figures 5A and 5B show the relevant interfaces of the client 300 actively exiting the screen projection multicast group.
- the client 300 can display an exit control 401 on the screen projection screen 17; when detecting the user's operation (such as a click operation) on the exit control 401, the client 300 stops displaying the screen projection screen and sends an exit request to the multicast source 100, and the exit request is used to instruct the client 300 to exit the screen projection multicast group.
- the client 300 can also turn off the wireless sharing through the aforementioned wireless sharing switch icon 302, thereby triggering the active exit from the screen casting multicast group.
- the embodiment of the present application does not specifically limit the method of triggering the client 300 to actively exit the screen casting multicast group.
- Figures 5C and 5D show the relevant interfaces of the multicast source 100 deleting the screen projection multicast group.
- the end control 402 can be displayed; when the user's operation on the end control 402 (such as a click operation) is detected, the multicast source 100 stops multicasting and sending the screen projection data, and deletes the screen projection multicast group.
- Each client in the multicast group also stops displaying the projection screen.
- a prompt message 403 is displayed to prompt the user that the screen projection has ended.
- the multicast source 100 can also turn off the wireless screen projection through the aforementioned wireless screen projection switch icon 201, thereby triggering the multicast source 100 to delete the screen projection multicast group.
- the embodiment of the present application does not specifically limit the method of triggering the multicast source 100 to delete the screen projection multicast group.
- the multicast communication method provided in the embodiment of the present application involves the following three stages: multicast group establishment, multicast transmission and multicast group deletion.
- the multicast group establishment phase may include the following three phases: multicast start, multicast source invitation, and client active joining.
- the user can trigger the multicast source 100 through the user interface of the multicast source 100 to scan nearby devices that can join the multicast group through Bluetooth, start the VAP for multicast, and determine the startup information required for the multicast group (such as multicast address, virtual multicast source address, multicast key).
- the multicast source invitation client stage after the multicast source 100 detects a nearby client that can join the multicast group, it establishes a Bluetooth connection with the client and invites the client to join the multicast group through the Bluetooth connection.
- the client active joining stage after the client detects the discovery signal of the multicast group broadcast by the Bluetooth of the multicast source 100, it establishes a Bluetooth connection with the multicast source 100 and actively joins the multicast group through the Bluetooth connection.
- the multicast source 100 can obtain the multicast user information of the client, and trigger the client to start the VAP for multicast and configure the multicast group information on the client side; in addition, after determining that the client joins the multicast group, the client or multicast source 100 can disconnect the above Bluetooth connection.
- the multicast source 100 and each client interact through the WiFi driver, but there is no need to establish a WiFi connection.
- the VAP of the multicast source 100 Based on the startup information of the multicast group and the multicast user information of the client, the VAP of the multicast source 100 sends multicast messages through the WiFi driver, and the VAP of the client can monitor the multicast messages sent by the multicast source 100 through the WiFi driver.
- the VAP of each client Based on the multicast group information on the client side, the VAP of each client can also send multicast messages through the WiFi driver, and the VAP of the multicast source 100 can also monitor the multicast messages sent by the client through the WiFi driver.
- the multicast transmission phase may include the following two phases: data frame transmission and signaling frame transmission.
- the multicast transmission of the embodiment of the present application can adopt the traditional multicast transmission mode (for example, the multicast transmission mode shown in FIG. 6B ), and the multicast source 100 fills in the multicast MAC address of the multicast group in the MAC header of the multicast frame, and then the WiFi driver sends each multicast frame in the air interface in sequence through the VAP (for example, Frame 1, Frame 2, and Frame 3 shown in FIG. 6B ).
- the traditional multicast transmission mode has the following problems: due to the lack of a feedback mechanism, the transmission reliability is low. In order to ensure the stability of transmission, the lowest order transmission rate is usually used.
- the embodiment of the present application designs a retransmission mechanism for the control signaling frame based on the above multicast transmission mode.
- the VAP of the client 200 can feedback the signaling confirmation frame through the WiFi driver, and the VAP of the multicast source 100 can monitor the signaling confirmation frame fed back by the client 200 through the WiFi driver; the multicast source 100 can retransmit the control signaling frame that the client 300 has not received according to the signaling confirmation frame. In this way, the transmission reliability and transmission rate can be effectively improved.
- the multicast deletion phase may include the following two phases: multicast source deletion and client active exit.
- the user can trigger the client to actively exit the multicast group through the user interface of the client; the client establishes a Bluetooth connection with the multicast source 100, sends a request to exit the multicast to the multicast source 100, and disconnects the Bluetooth connection after exiting.
- the multicast source deletion stage the user can trigger the multicast source 100 to delete the multicast group through the user interface of the multicast source 100, and the multicast source 100 can broadcast the message of deleting the multicast group via Bluetooth.
- the multicast group communication method provided in the embodiment of the present application does not require the participation of other third-party devices (such as routers).
- the multicast source and the client interact through Bluetooth, which can quickly establish a multicast group, improve the multicast transmission efficiency and the management efficiency of the multicast group, avoid the problem of a small number of clients that can be associated with the VAP of the multicast source 100, and realize large-scale multicast at a short distance without a WiFi connection.
- the retransmission mechanism provided in the embodiment of the present application also effectively improves the multicast reliability.
- FIG. 7A shows a method flow chart of a multicast startup phase provided in an embodiment of the present application.
- the multicast startup phase includes but is not limited to steps S101 to S113.
- the UI of the multicast source 100 detects operation 1 of the user, where operation 1 is used to trigger a multicast startup process for establishing a multicast group.
- the UI of the multicast source 100 sends a discovery instruction to the Bluetooth driver of the multicast source 100 .
- the UI of the multicast source 100 sends an instruction to the multicast stack of the multicast source 100 to instruct the multicast stack to send a discovery instruction to the Bluetooth driver.
- the Bluetooth driver of the multicast source 100 broadcasts a discovery signal 1, where the discovery signal 1 is used to detect an HML multicast device that can join the multicast group.
- the multicast source 100 is provided with a UI entry for the multicast service.
- the user can trigger the multicast start process and start the Bluetooth discovery service by operating 1 on the UI entry.
- the multicast service can be a wireless screen projection service;
- Operation 1 can be an operation for turning on wireless screen projection, such as a click operation on the switch icon 201 of wireless screen projection.
- the device supporting the multicast communication method provided in the embodiment of the present application is referred to as an HML multicast device.
- the multicast source 100 starts the Bluetooth discovery service, broadcasts a Bluetooth discovery signal 1, and enters the Bluetooth listening state to detect the surrounding HML multicast devices.
- the above-mentioned discovery signal 1 can be used to indicate that the device supports multicast communication and/or that the device is an HML multicast device; in the screen projection scenario, the discovery signal 1 can also be used to indicate that the device is initiating screen projection.
- the UI of the client 200 sends a discovery instruction to the Bluetooth driver of the client 200 .
- the Bluetooth driver of the client 200 broadcasts a discovery signal 2.
- the discovery signal 2 is used to indicate that the client 200 is an HML multicast device.
- the client 200 is provided with a preset UI entry. By operating 2 on the UI entry, the user can trigger the client 200 to start the Bluetooth discovery service, and the Bluetooth broadcast discovery signal 2.
- the discovery signal 2 can be used to indicate that the device supports multicast communication and/or that the device is an HML multicast device.
- the client 200 can set a wireless sharing function. After the client 200 turns on the wireless sharing function, it can receive data wirelessly shared by other devices; the HML multicast device can also include a device with the wireless sharing function turned on, and the above operation 2 includes the operation of turning on wireless sharing. Exemplarily, referring to the relevant description of Figures 4C to 4D, operation 2 can be a click operation on the switch icon 302 for wireless screen projection.
- the Bluetooth driver of the multicast source 100 broadcasts the discovery signal 1 periodically, for example, the broadcast frequency is 12 times in 5 seconds.
- the Bluetooth driver of the client 200 starts the Bluetooth broadcast discovery signal 2 when the discovery signal 1 sent by the multicast source 100 is detected; in this way, the power consumption and air interface resources of the client 200 can be saved.
- the multicast source 100 does not need to perform step S103.
- the Bluetooth driver of the multicast source 100 monitors the discovery signals from other devices through the Bluetooth driver, such as the discovery signal 2 broadcast by the client 200 periodically through Bluetooth; in this way, the power consumption and air interface resources of the multicast source 100 can be saved.
- the discovery signal 1 may carry the device information of the multicast source 100
- the discovery signal 2 may carry the device information of the client 200
- the device information includes some or all of the following: device identity (ID), device model, device name, hash value of the account logged in by the device, etc.
- the hash value of the account may be used to verify the legitimacy of the device
- the client 200 may verify whether the multicast source 100 and the client 200 are logged in to the same account based on the hash value of the account in the discovery signal 1; if the same account is logged in, the client 200 will agree to join the multicast group later.
- the multicast source 100 may verify whether the multicast source 100 and the client 200 are logged in to the same account based on the hash value of the account in the discovery signal 2; if the same account is logged in, the multicast source 100 will allow the client 200 to join the multicast group later.
- the Bluetooth driver of the multicast source 100 sends a device callback instruction to the UI of the multicast source 100 .
- the UI of the multicast source 100 displays the detected HML multicast devices, where the detected HML multicast devices include the client 200 .
- the UI of the multicast source 100 detects the user's operation 3, where the operation 3 is used to select at least one target device from the detected HTML multicast devices and to determine to create a multicast group including the at least one target device.
- the Bluetooth driver of the multicast source 100 monitors the discovery signal 2 from the client 200, it sends a callback instruction of the device to the UI, and the callback instruction can carry the detected HML multicast device list, and the HML multicast device list can include the device information of each HML multicast device.
- the UI of the multicast source 100 can display the device options of each HML multicast device based on the HML multicast device list for the user to select. For example, the UI of the multicast source 100 displays the device options of the client 200 based on the device information of the client 200.
- the multicast source 100 displays the device options of the detected HML multicast devices with wireless sharing turned on on the user interface 11 for the user to select the target screen projection device; when the at least one target device includes the client 200, the device option 203 of the client 200 can include the icon and device name of the client 200, and the operation 3 includes an operation (such as a click operation) acting on the device option 203.
- the UI of the multicast source 100 sends a multicast start instruction to the multicast stack of the multicast source 100 .
- the multicast stack of the multicast source 100 sends a multicast start instruction to the WiFi driver of the multicast source 100 .
- the WiFi driver of the multicast source 100 creates VAP 1 for implementing the multicast service.
- the multicast source 100 After determining to start multicast, the multicast source 100 starts a virtual local area network (VAP 1) for implementing multicast services. Not limited to multicast services, the above VAP 1 can also implement other services, which are not specifically limited here.
- VAP 1 virtual local area network
- the multicast stack of the multicast source 100 also allocates IP address 1 to VAP 1 of the multicast source 100, allocates IP addresses to the VAPs of the above at least one target device respectively, and generates the multicast MAC address, virtual multicast source address and multicast key 1 of the multicast group.
- the multicast source 100 after determining to start multicast, not only allocates an IP address to the VAP 1 of the device, but also allocates an IP address to each VAP of each target device selected by the user. For example, when the target device includes the client 200, the multicast source 100 allocates IP address 2 to the VAP 1 of the client 200; when the target device includes the client 300, the multicast source 100 allocates IP address 3 to the VAP 1 of the client 300.
- the multicast source 100 after determining to start multicast, the multicast source 100 also configures a multicast IP address for the multicast group.
- the multicast source 100 sets the destination IP address to the multicast IP address. All clients that join the multicast group indicated by the multicast IP address can receive the multicast message sent by the multicast source 100.
- the multicast IP address uses a dynamically allocated Class D address. The range of the Class D address space is 224.0.0.0 to 239.255.255.255, and all can receive the multicast source multicast group; when the multicast of the multicast group ends, the corresponding Class D address will be recycled.
- the IP layer addressing requires the IP address of the target device, and the second layer addressing in the Ethernet environment also requires the MAC address of the target device.
- the multicast source 100 determines the multicast IP address, it obtains the multicast MAC address mapped from the multicast IP address.
- the multicast MAC address can also be referred to as the multicast address.
- the WPA2/WPA3 encryption protocol is generally used.
- the sending and receiving ends of each WiFi unicast link can negotiate the unicast key and multicast key of the link.
- a single device does not support the configuration of multiple multicast keys, that is, a device can only have one multicast key; when the chip at the receiving end decrypts the multicast message, it usually obtains the source address based on the Address2 field in the MAC header of the multicast message, looks up the table to obtain the multicast key corresponding to the source address, and then uses the multicast key to decrypt the multicast message.
- multicast key 1 For a VAP that configures multicast key 1 as an HML multicast device, among the multicast messages it receives, only the multicast messages from one device can be decrypted successfully, and the MAC address of the device is the source address corresponding to multicast key 1.
- the client In the multicast transmission without WiFi connection provided in the embodiment of the present application, for the client, it will only receive multicast messages from the multicast source 100; therefore, the client only needs to configure the MAC address of the multicast source 100 as the source address of the multicast key 1.
- the client can query the multicast key 1 according to the source address in the MAC header of the multicast message (i.e., the MAC address of the multicast source 100), and use the multicast key 1 to decrypt the multicast message.
- the multicast source 100 it will receive multicast messages from all clients in the multicast group.
- the multicast source 100 can decrypt the multicast messages sent by all clients in the multicast group, all clients in the multicast group use the same virtual multicast source address; the multicast source 100 will configure the above virtual multicast source address as the source address corresponding to the multicast key 1, and all clients in the multicast group will set the source address to the above virtual multicast source address when sending multicast messages to the multicast source 100, and carry the actual source address of the client in the data unit of the multicast message (e.g., the MSDU in the MAC frame).
- the data unit of the multicast message e.g., the MSDU in the MAC frame
- the above-mentioned virtual multicast source address can be generated based on the following preset rules: the first three bytes of the virtual multicast source address are the organizationally unique identifier (OUI) of the multicast source 100, and the last 3 bytes are the last 3 bytes of the MAC address of the multicast source 100.
- OMI organizationally unique identifier
- the embodiment of the present application does not specifically limit the method for generating the multicast key 1 of the multicast group.
- the multicast source 100 generates a multicast key 1 of the multicast group using a preset key algorithm (eg, a hash algorithm).
- a preset key algorithm eg, a hash algorithm
- the multicast source 100 establishes a WiFi connection with a client (e.g., client 200) in the multicast group, performs key negotiation during the WiFi connection process, obtains the multicast key 1 corresponding to the WiFi unicast link between the multicast source 100 and the client 200, and uses the multicast key 1 as the multicast key of the entire multicast group.
- the client may be one of the earliest clients to join the multicast group.
- the multicast source 100 only needs to establish a WiFi connection and perform key negotiation with one client in the multicast group, and disconnect the WiFi connection after obtaining the multicast key; in the multicast transmission stage, the multicast source 100 does not need to establish a WiFi connection with the client.
- the multicast source 100 After the user selects at least one target device from the detected HML multicast devices, the multicast source 100 will initiate a Bluetooth connection to each target device in turn through the Bluetooth driver to invite the target device to join the multicast group.
- the following description will be made by taking the client 200 as an example.
- steps S201 to S216 may also be included but not limited to.
- the multicast stack of the multicast source 100 sends a client adding instruction to the Bluetooth driver of the multicast source 100.
- the client adding instruction is used to instruct to invite the client 200 to join the multicast group.
- the client adding instruction may include the device identification of the client 200 (eg, device ID, MAC address, etc.), and may also include the multicast MAC address, the virtual multicast source address, the IP address 1 of the multicast source 100, the IP address 2 of the client 200, and the multicast key 1.
- the Bluetooth driver of the multicast source 100 interacts with the Bluetooth driver of the client 200 to establish a Bluetooth connection.
- the client 200 after the client 200 turns on wireless sharing, it will periodically broadcast a discovery signal 2 via Bluetooth, and the discovery signal 2 includes the device identification of the client 200.
- the Bluetooth driver of the multicast source 100 can send a Bluetooth connection request to the Bluetooth driver of the client 200 to request to establish a Bluetooth connection with the client 200.
- the implementation process of establishing a Bluetooth connection between the multicast source 100 and the client 200 is not specifically limited in the embodiment of the present application, and will not be repeated here.
- the Bluetooth driver of the multicast source 100 sends a multicast invitation message to the Bluetooth driver of the client 200, the multicast invitation message is used to invite the client 200 to join the multicast group, and the multicast invitation message includes some or all of the following: multicast IP address, multicast MAC address, virtual multicast source address, IP address 1 of the multicast source 100, IP address 2 of the client 200 and multicast key 1.
- the WiFi driver of the client 200 creates VAP 2 for implementing multicast services.
- the WiFi driver of the client 200 sends a creation completion notification to the Bluetooth driver of the client 200 .
- the Bluetooth driver of the client 200 sends a multicast configuration instruction to the multicast stack.
- the multicast configuration instruction includes a multicast MAC address, a virtual multicast source address, an IP address 1 of the multicast source 100 , an IP address 2 of the client 200 , and a multicast key 1 .
- the multicast stack of the client 200 configures multicast group information for the multicast group.
- the multicast group information includes part or all of the following: multicast MAC address, virtual multicast source address, multicast key 1, IP address 1 of the multicast source 100, IP address 2 of the client 200 and MAC address of the multicast source 100.
- the multicast invitation message sent by the multicast source 100 may not include the virtual multicast source address; the client 200 may generate the above-mentioned virtual multicast source address based on the OUI of the multicast source 100, the MAC address of the multicast source 100 and the preset rules for generating the virtual multicast source address.
- the multicast stack of the client 200 sends a multicast key configuration instruction to the WiFi driver, where the multicast key configuration instruction includes the multicast key 1 and the MAC address of the multicast source 100 .
- the WiFi driver of the client 200 configures the multicast key 1 as the multicast key of the multicast group, and the source address corresponding to the multicast key 1 is the MAC address of the multicast source 100 .
- the hardware module of the client 200 maintains a multicast key query table, which is used to store the correspondence between the multicast key and the source address. Based on the above multicast key configuration instruction, the WiFi driver of the client 200 instructs the hardware module to store the correspondence between the multicast key 1 and the MAC address of the multicast source 100 in the table. In the subsequent multicast transmission stage, after the client 200 receives the multicast message from the multicast source 100, it can query the corresponding multicast key 1 in the above table according to the source address in the multicast message (i.e., the MAC address of the multicast source 100); the multicast key 1 can be used to decrypt the above multicast message.
- the source address in the multicast message i.e., the MAC address of the multicast source 100
- the MAC address of the multicast source 100 can be obtained.
- the MAC address of the multicast source 100 can be obtained through the Bluetooth driver.
- the Bluetooth driver of the client 200 can send the MAC address of the multicast source 100 to the multicast stack of the client 200 through a multicast configuration instruction.
- the client 200 may display a prompt message to prompt the user whether to join the multicast.
- the client 200 executes steps S204 to S210 only after the UI of the client 200 detects the user's confirmation to join.
- a prompt box 207 may be displayed, and the prompt box 207 may be used to prompt the user whether to join the screen projection multicast group of the multicast source 100; the prompt box 207 may include a confirmation control 208, and the user may confirm to join the screen projection multicast group by clicking the confirmation control 208.
- the multicast stack of the client 200 sends an IP address configuration instruction to the WiFi driver, where the IP address configuration instruction includes the above-mentioned IP address 2.
- the WiFi driver of the client 200 configures the IP address of VAP2 to IP address 2 .
- the embodiment of the present application does not specifically limit the execution order of the above steps S209 and S211.
- step S206 that is, after the Bluetooth driver of the client 200 receives the creation completion notification, the Bluetooth driver of the client 200 further executes step S213.
- the Bluetooth driver of the client 200 sends a confirmation message of joining the multicast group to the Bluetooth driver of the multicast source 100 .
- the confirmation message may include a device identifier of the client 200 .
- the Bluetooth driver of the multicast source 100 sends a confirmation adding notification to the multicast stack of the multicast source 100.
- the confirmation adding notification is used to instruct the client 200 to confirm joining the multicast group.
- the multicast stack of the multicast source 100 adds the multicast user information of the client 200 .
- the multicast user information may include part or all of the following: the IP address 2 of the client 200, the MAC address and the device ID of the client 200. It is understood that when the multicast source 100 interacts with the client 200, the MAC address of the client 200 may also be obtained. For example, in steps S202 and S213, the MAC address of the client 200 may be obtained through the Bluetooth driver.
- the multicast stack of the multicast source 100 is used to manage the multicast group information on the multicast source side.
- the multicast group information on the multicast source side includes a multicast device list, and the multicast device list is used to store the multicast user information of each client in the multicast group.
- the multicast stack adds the multicast user information of the client 200 to the multicast device list.
- the multicast source 100 receives a message from other devices, it can determine whether the above message comes from a client in the multicast group based on the MAC address and/or IP address of each client in the multicast user list.
- S216 The Bluetooth driver of the multicast source 100 and the Bluetooth driver of the client 200 disconnect the Bluetooth connection.
- the Bluetooth driver of the client 200 may actively disconnect the Bluetooth connection after executing step S213 or S207, or the Bluetooth driver of the multicast source 100 may actively disconnect the Bluetooth connection after step S213 or S214, which is not specifically limited here.
- the multicast source 100 after the multicast source 100 creates the multicast VAP1, it initiates a Bluetooth connection to each target device in turn to invite the target device to join the multicast group. Since there is an upper limit on the Bluetooth connection link of the terminal device (for example, the number of connection links is 7), after the multicast source 100 invites a target device to join the multicast group via the Bluetooth connection, the Bluetooth connection between the multicast source 100 and the target device is immediately disconnected, and the relevant information of the Bluetooth connection is deleted.
- the Bluetooth connection link of the terminal device for example, the number of connection links is 7
- Fig. 7C shows a method flow chart of a client active joining phase provided by an embodiment of the present application. As shown in the figure, after step S113 of the multicast startup phase, it may also include but not limited to steps S301 to S318.
- the Bluetooth driver of the client 200 interacts with the Bluetooth driver of the multicast source 100 to establish a Bluetooth connection.
- the multicast source 100 will periodically broadcast a discovery signal 1 via Bluetooth, and the discovery signal 1 includes the device identification of the multicast source 100.
- the Bluetooth driver of the client 300 receives the discovery signal 1, based on the device identification of the multicast source 100, a Bluetooth connection request can be sent to the Bluetooth driver of the multicast source 100 to request to establish a Bluetooth connection with the multicast source 100.
- the embodiment of the present application does not specifically limit the implementation process of the client 300 establishing a Bluetooth connection with the multicast source 100, and will not be repeated here.
- a prompt message is displayed, and the prompt message can be used to prompt that the multicast source 100 is performing multicast; based on the above prompt message, the user implements operation 4 for joining the multicast group; after the UI of the client 200 detects operation 4, it notifies the Bluetooth driver of the client 200 to send a Bluetooth connection request to the Bluetooth driver of the multicast source 100 to request to establish a Bluetooth connection with the multicast source 100, and then executes the subsequent method flow (i.e., steps S302 to S317).
- a prompt message 305 is displayed around the icon 304 of the multicast source 100 in the multi-device collaboration page 15, and the prompt message 305 is used to prompt that the multicast source 100 is initiating multicast screen projection; the above operation 4 may include the operation of dragging the icon 304 of the multicast source 100 close to the icon 303 of the client 300.
- the Bluetooth driver of the client 300 sends a join request message to the Bluetooth driver of the multicast source 100 .
- the join request message is used to request to join the multicast group; the join request message may include a device identifier of the client 300 .
- the Bluetooth driver of the multicast source 100 sends a join request instruction to the multicast stack of the multicast source 100 .
- the join request instruction is used to instruct the client 300 to request to join the multicast group.
- the join request instruction may include a device identifier of the client 300 .
- the multicast source 100 may also generate and display a multicast password for joining the multicast group.
- a password input box may also be displayed.
- the UI of the client 300 may send the password entered by the user to the Bluetooth driver of the client 300; after determining the password entered by the user in step S302, the client 300 sends a join request message to the multicast source 100, and the join request message carries the password entered by the user.
- step S303 is executed.
- the client 300 can display the password input box 308. After the user enters the PIN code of the projection multicast group, the client 300 sends a join request message to the multicast source 100.
- the multicast stack of the multicast source 100 allocates IP address 3 to the VAP of the client 300, and sends a client add instruction to the Bluetooth driver of the multicast source 100.
- the client add instruction is used to instruct to invite the client 300 to join the multicast group.
- the Bluetooth driver of the multicast source 100 sends a multicast invitation message to the Bluetooth driver of the client 300.
- the multicast invitation message includes the multicast MAC address, the virtual multicast source address, the IP address 1 of the multicast source 100, the IP address 3 of the client 300 and the multicast key 1.
- the client active joining stage has the following additional steps: the client 300 actively requests to join the multicast group through a join request message (i.e., step S302), and the Bluetooth driver of the multicast source 100 notifies the WiFi driver client 300 of the request to join the multicast group through a join request instruction (i.e., step S303); the specific implementation of the subsequent method flow (i.e., S305 to S317) of the client active joining stage can refer to the aforementioned multicast source invitation stage (i.e., S203 to S215).
- the WiFi driver of the client 300 creates VAP 3 for implementing multicast services.
- the WiFi driver of the client 300 sends a creation completion notification to the Bluetooth driver of the client 300 .
- the Bluetooth driver of the client 300 sends a multicast configuration instruction to the multicast stack, the multicast configuration instruction including the multicast MAC address, the virtual multicast source address, the IP address 1 of the multicast source 100 , the IP address 3 of the client 300 , and the multicast key 1 .
- the multicast stack of the client 300 configures multicast group information for the multicast group.
- the multicast group information includes a multicast MAC address, a virtual multicast source address, a multicast key 1 , an IP address 1 of the multicast source 100 , and an IP address 3 of the client 300 .
- the multicast stack of the client 300 sends a multicast key configuration instruction to the WiFi driver.
- the multicast key configuration instruction includes the multicast key 1 and the MAC address of the multicast source 100 .
- the WiFi driver of the client 300 configures the multicast key 1 as the multicast key of the multicast group, and the source address corresponding to the multicast key 1 is the MAC address of the multicast source 100 .
- the multicast stack of the client 300 sends an IP address configuration instruction to the WiFi driver, where the IP address configuration instruction includes the above-mentioned IP address 3.
- the WiFi driver of the client 300 configures the IP address of VAP3 to IP address 3 .
- step S309 that is, after the Bluetooth driver of the client 300 receives the creation completion notification, the Bluetooth driver of the client 300 further executes step S314.
- the Bluetooth driver of the client 300 sends a confirmation message of joining the multicast group to the Bluetooth driver of the multicast source 100 .
- the Bluetooth driver of the multicast source 100 sends a confirmation adding notification to the multicast stack of the multicast source 100.
- the confirmation adding notification is used to instruct the client 300 to confirm joining the multicast group.
- the multicast stack of the multicast source 100 adds the multicast user information of the client 300 .
- the multicast user information may include the IP address 3 , MAC address and device ID of the client 300 .
- the Bluetooth driver of the client 200 may actively disconnect the above-mentioned Bluetooth connection after step S315 (i.e., sending a confirmation message to the multicast source 100 to join) or step S309, or the Bluetooth driver of the multicast source 100 may actively disconnect the above-mentioned Bluetooth connection after step S315 (i.e., receiving a confirmation message to join sent by the client 200) or step S316, and no specific limitation is made here.
- Fig. 8 shows a flowchart of a method for multicast transmission provided by an embodiment of the present application. As shown in the figure, after step S216 of the multicast startup stage, steps S801 to S804 may also be included but not limited to.
- the multicast stack of the multicast source 100 sends a multicast transmission instruction to the WiFi driver of the multicast source 100.
- the multicast transmission instruction includes a multicast message 1.
- the multicast message 1 is generated based on the multicast group information on the multicast source side.
- the multicast group information on the multicast source side may include part or all of the following: Multicast device list, multicast IP address, multicast MAC address, and multicast key 1.
- data 1 to be multicasted is encapsulated by the TCP/IP protocol stack to generate a multicast message 1.
- the TCP/IP protocol stack encapsulates data 1 into a multicast message 1, including: the network layer adds an IP header to the message corresponding to the data 1 transmitted from the upper layer to generate an IP message, and sends it to the data link layer driven by the WiFi; the IP header includes the IP address of the multicast source 100 and the destination IP address (i.e., the multicast IP address).
- the data link layer adds a MAC header to the MSDU corresponding to the IP message transmitted from the upper layer, and encrypts the MSDU using the multicast key 1 to generate a multicast message 1.
- the MAC header includes the MAC address of the multicast source 100 and the destination MAC address (i.e., the multicast MAC address).
- the multicast transmission stage includes data frame transmission and signaling frame transmission, that is, the above-mentioned multicast message 1 can be a data frame or a signaling frame.
- the encapsulated multicast message 1 is a multicast data frame.
- the encapsulated multicast message 1 when data 1 is control signaling and confirmation information of multicast transmission, the encapsulated multicast message 1 is a multicast signaling frame. In some embodiments, when multicast message 1 is a signaling frame, the MSDU of multicast message 1 may also carry the actual destination address of the target client.
- the control signaling of the above multicast transmission may include: control information that needs to be transmitted by the application layer, such as video encoding and decoding parameters, screen projection control information, heartbeat packets, etc.; control information of the HML multicast protocol itself, such as adaptive rate detection feedback, encoding parameters, etc.
- the WiFI driver of the multicast source 100 multicasts and sends the multicast message 1 through VAP1 .
- S803 The WiFI driver of the client 200 monitors the multicast message 1 through VAP2 .
- the WiFI driver of the client 200 sends the multicast message 1 decrypted by the multicast key 1 to the multicast stack.
- the WiFI driver of the client 200 monitors the multicast message 1, it obtains the destination address in the MAC header of the multicast message 1 and determines whether the destination address is the multicast MAC address of the multicast group to which the device joins; if not, the multicast message is discarded; if so, the source address in the MAC header of the multicast message 1 (i.e., the MAC address of the multicast source 100) is obtained.
- the WiFI driver of the client 200 looks up the table to obtain the key corresponding to the above source address as the multicast key 1; the client 200 uses the multicast key 1 to parse the data unit (e.g., MASDU) in the multicast message 1.
- the data unit e.g., MASDU
- client 200 when multicast message 1 is a signaling frame, after parsing multicast key 1, client 200 can obtain the actual destination address carried in the data unit (e.g., MSDU) of multicast message 1; client 200 determines whether the above-mentioned actual destination address is the MAC address of this device; if so, it is determined that multicast message 1 is sent to this device; if not, the multicast message 1 is discarded.
- the data unit e.g., MSDU
- multicast message 1 may be a data frame; multicast message 1 is used to transmit screen projection data, and client 200 sends the screen projection data in multicast message 1 to the display driver, and the display driver instructs the display screen to display the projection picture based on the above-mentioned screen projection data.
- the multicast stack of client 200 can also send a multicast transmission instruction to the WiFi driver of client 200, where the multicast transmission instruction includes multicast message 2; multicast message 2 is generated based on the multicast group information on the client side; the WiFI driver of client 200 multicasts and sends multicast message 2 through VAP2; the WiFI driver of multicast source 100 monitors multicast message 2 through VAP1; the WiFI driver of multicast source 100 sends multicast message 2 decrypted by multicast key 1 to the multicast stack.
- the multicast transmission instruction includes multicast message 2
- multicast message 2 is generated based on the multicast group information on the client side
- the WiFI driver of client 200 multicasts and sends multicast message 2 through VAP2
- the WiFI driver of multicast source 100 monitors multicast message 2 through VAP1
- the WiFI driver of multicast source 100 sends multicast message 2 decrypted by multicast key 1 to the multicast stack.
- the video codec can tolerate a certain degree of packet loss, and multicast transmission can be performed through redundant coding; however, for the above-mentioned signaling frames, it is necessary to ensure that they are transmitted to the receiving end in order to ensure the stability of multicast transmission. Therefore, for the above-mentioned signaling frames, the embodiments of the present application also provide a multicast retransmission mechanism, through which the transmission reliability of the signaling frames can be greatly improved, and thus the transmission rate of the signaling frames can be improved.
- the signaling frames involved in the embodiments of the present application include the following two types: control signaling frames and signaling confirmation frames.
- the control signaling frames are used to transmit the above control signaling; the signaling confirmation frames are used to indicate the reception status of the control signaling frames.
- the multicast source 100 can determine whether to retransmit the control signaling frames based on the signaling confirmation frames fed back by the client.
- FIG. 9A shows a schematic diagram of the frame format of a control signaling frame provided in an embodiment of the present application
- FIG. 9B shows a schematic diagram of the frame format of a signaling confirmation frame provided in an embodiment of the present application.
- the signaling frame provided in an embodiment of the present application may include the following fields: MAC Header, MAC Service Data Unit (MSDU) and Frame Check Sequence (FCS).
- MAC Header is used to indicate relevant information of data transmission
- MSDU carries valid data for transmission
- FCS is used to perform integrity check on the frame.
- the MAC Header includes the following seven parts: Frame Control, Duration/ID, Address1, Address2, Address3, Sequence Control, Address4, Quality of Service Control, and High Speed Control.
- the Frame Control is used to indicate some or all of the following matters: protocol version, frame type, whether it is a frame sent from the Basic Service Set (BSS) to the Distributed System (DS), whether it is a frame sent from the DS to the BSS, whether there are remaining fragments for the segmented frame, whether it is a retransmission frame, whether to enter the power saving mode, whether the link authentication is turned on, and other matters.
- Frame types may include the following types: management frame 00 (used to perform management operations), control frame 01 (used for channel control), data frame 10 (used to transmit valid data).
- Duration/ID is used to indicate the time that the frame and its confirmation frame need to occupy the channel.
- the address field i.e., Address1, Address2, Address3, and Address4
- TA transmission address
- SA source address
- RA receiving address
- DA destination address
- Sequence control is used to reassemble frame fragments and discard duplicate frames.
- the Address2 field is used to store the source address, i.e., the MAC address of the sender.
- the MSDU of the control signaling frame may include the following fields in sequence: destination address (Des Addr), source address (Src Addr), type/length (Type/Length), actual destination address (Actual Des Addr), actual source address (Actual Src Addr), HML control identifier (HML Contron ID), and data payload (Payload).
- the meanings of the fields of the control signaling frame are as follows:
- Destination address When the receiving end is a client in a multicast group, the destination address is the multicast MAC address of the multicast group. When the receiving end is multicast source 100, the destination address is also the multicast MAC address.
- Source address When the sender is multicast source 100, the source address is the MAC address of multicast source 100; when the sender is a client in the multicast group, the source address is the aforementioned virtual multicast source address.
- Multicast Type/Length also includes the following fields: Multicast Type and Subtype.
- Multicast Type indicates the HML multicast frame type, which may include data frames, control signaling frames, and signaling confirmation frames. For example, when the multicast frame type is a control signaling frame, the value of this field is 0xFE.
- Subtype indicates the subtype corresponding to the multicast frame type. As shown in Table 1, control signaling frames mainly include the following subtypes:
- Actual destination address The actual MAC address of the receiving end.
- the receiving end is a client in a multicast group, since the control signaling frame is transmitted by multicast, the destination addresses corresponding to the Ethernet header and the MAC header are filled with the multicast MAC address, and this field is used to identify the exact address of the client.
- Actual source address The actual MAC address of the sender.
- the sender is a client in a multicast group, in order to solve the problem of the chip looking up the table to obtain the multicast key according to the source address, the client will fill in a unified virtual multicast source address in the Ethernet header and MAC header, and this field is used to identify the exact address of the client.
- HML control identifier the number of the control signaling frame (0 to 255).
- Data payload specific control signaling carried by the control signaling frame.
- the MSDU of the signaling confirmation frame may include the following fields: destination address, source address, type/length, actual destination address, actual source address, and confirmation information (Confirm Info).
- the type/length may further include: multicast type and subtype.
- the meanings of the fields of the signaling confirmation frame are as follows:
- Multicast type Indicates the HML multicast frame type. For example, when the multicast frame type is a signaling confirmation frame, the value of this field is 0xFD. Subtype: For a signaling confirmation frame, this field is useless and can be filled with a preset value, such as 0.
- the confirmation information may include the following fields: Low Edge (LE), Up Edge (UE) and Bitmap.
- L-LE is used to indicate the lower edge of the receiving window
- R-UE is used to indicate the upper edge of the receiving window
- bitmap is used to feedback the reception status of each control signaling frame in the current receiving window.
- FIG9C shows a method flow chart of a signaling frame transmission phase provided by an embodiment of the present application.
- steps S901 to S911 may also be included but not limited to.
- the multicast stack of the multicast source 100 sends a multicast transmission instruction to the WiFi driver of the multicast source 100 ; the multicast transmission instruction includes a control signaling frame 1 .
- the WiFI driver of the multicast source 100 multicasts and sends a control signaling frame 1 through VAP1 .
- the control signaling frame 1 may be a control signaling frame transmitted for the first time, or may be a retransmitted control signaling frame, which is not specifically limited here.
- the source address carried by the MAC header of the control signaling frame 1 is the MAC address of the multicast source 100; the source address in the MSDU of the control signaling frame 1 is the MAC address of the multicast source 100, the destination address is the multicast MAC address, the actual source address is the MAC address of the multicast source 100, and the actual destination address is the MAC address of the client 200.
- S903 The WiFI driver of the client 200 monitors the control signaling frame 1 through VAP2 .
- the WiFI driver of the client 200 sends the control signaling frame 1 decrypted by the multicast key 1 to the multicast stack.
- the WiFI driver of the client 200 Upon receiving the control signaling frame 1, the WiFI driver of the client 200 obtains the source address in the MAC header of the control signaling frame 1, and looks up the table to obtain the key corresponding to the above source address as multicast key 1; the WiFI driver of the client 200 uses the multicast key 1 to decrypt the MSDU in the control signaling frame 1, and sends the decrypted MSDU to the multicast stack.
- the multicast stack of the client 200 updates the receiving window corresponding to the multicast source 100 based on the control signaling frame 1, and determines the signaling confirmation frame 1 based on the updated receiving window.
- the signaling confirmation frame 1 includes confirmation information, and the confirmation information is used to indicate the reception status of the control signaling frame maintained by the receiving window corresponding to the multicast source 100.
- Each client (e.g., client 200) in the multicast group can maintain a receiving window for the multicast source 100, and the receiving window is used to maintain the receiving information of the control signaling frame received from the multicast source 100.
- the client 200 determines whether the control signaling frame is sent to the device based on the actual destination address carried by the MSDU in the control signaling frame; if so, the receiving window corresponding to the multicast source 100 is updated based on the above MSDU; and the confirmation information is determined based on the updated receiving window.
- the confirmation information includes the R-LE, R-UE and Bitmap currently corresponding to the receiving window, and the confirmation information is used to indicate the reception status of the control signaling frame maintained by the receiving window corresponding to the multicast source 100.
- the multicast source 100 wants to send control signaling to the client 200 alone, the actual destination address (i.e., the MAC address of the client 200) carried by the MSDU in the control signaling frame 1 can be used to let the client 200 know that the control signaling frame is sent to this device; in this way, the multicast source 100 does not need to establish a WiFi connection with the client 200, and sending the above-mentioned control signaling frame 1 through VAP multicast also indirectly realizes unicast transmission to the client 200.
- the actual destination address i.e., the MAC address of the client 200
- a timeout processing mechanism for the receiving window is also provided.
- the client 200 can periodically update the receiving window corresponding to the multicast source 100 based on the timeout processing mechanism; then, the confirmation information is determined based on the updated receiving window, and a signaling confirmation frame corresponding to the above confirmation information is fed back to the multicast source 100.
- the multicast stack of the client 200 sends a signaling confirmation frame 1 to the WiFI driver of the client 200 .
- the WiFI driver of the client 200 sends a signaling confirmation frame 1 through VAP2 multicast.
- the WiFI driver of the multicast source 100 monitors the signaling confirmation frame 1 through VAP1 .
- the WiFI driver of the multicast source 100 sends a signaling confirmation frame 1 decrypted by the multicast key 1 to the multicast stack.
- the source address carried by the MAC header of the signaling confirmation frame 1 is the virtual multicast source address; the source address in the MSDU of the signaling confirmation frame 1 is the virtual multicast source address, the destination address is the multicast MAC address, the actual source address is the MAC address of the client 200, and the actual destination address is the MAC address of the multicast source 100.
- the multicast stack of the multicast source 100 updates the corresponding sending window of the client 100 based on the signaling confirmation frame 1, and determines whether to retransmit the control signaling frame 2, and if so, executes S911.
- the multicast source 100 may maintain a sending window for each client in the multicast group, such as a sending window corresponding to the client 200, and the sending window is used to cache control signaling frames that have been sent but not received by the client 200 and maintain the sending information of the sent control signaling frames.
- the multicast source 100 may update the sending window corresponding to the client 200 based on the signaling confirmation frame 1 fed back by the client 200.
- the multicast source 100 may determine whether to retransmit the control signaling frame 2 based on the sending information of the control signaling frame 2 maintained in the sending window.
- a timeout processing mechanism for the sending window is also provided.
- the multicast source 100 can periodically update the sending window corresponding to each client (for example, client 200) based on the timeout processing mechanism, and determine whether to retransmit the control signaling frame cached in the sending window that has not been received based on the updated sending window corresponding to the client 200.
- the multicast stack of the multicast source 100 sends a multicast transmission instruction to the WiFI driver.
- the multicast transmission instruction is used to transmit the control signaling frame 2 .
- the client in the multicast group can also multicast and send a control signaling frame to the multicast source 100, and the multicast source 100 can also feedback a signaling confirmation frame to the client according to the received control signaling frame.
- the multicast message 2 is the control signaling frame 3 and the multicast message 1 is the signaling confirmation frame 2
- steps S1001 to S1011 may also be included but not limited to.
- the multicast stack of the client 200 sends a multicast transmission instruction to the WiFi driver of the client 200; the multicast transmission instruction includes a control signaling frame 3.
- the source address carried by the MAC header of the control signaling frame 3 is the virtual multicast source address; the source address in the MSDU of the control signaling frame 3 is the virtual multicast source address, the destination address is the multicast MAC address, the actual destination address is the MAC address of the multicast source 100, and the actual source address is the MAC address of the client 200.
- the WiFI driver of the client 200 sends a control signaling frame 3 through VAP2 multicast.
- the WiFI driver of the multicast source 100 monitors the control signaling frame 3 through VAP1 .
- the WiFI driver of the multicast source 100 sends the control signaling frame 3 decrypted by the multicast key 1 to the multicast stack.
- the multicast stack of the multicast source 100 updates the receiving window corresponding to the client 200 based on the control signaling frame 3, and determines confirmation information based on the updated receiving window, where the confirmation information is used to indicate the reception status of the control signaling frame maintained by the receiving window corresponding to the client 200.
- the multicast source 100 can maintain a receiving window for each client (e.g., client 200) in the multicast group, and the receiving window is used to maintain the receiving information of the control signaling frame received from the client 200.
- the multicast source 100 determines whether the control signaling frame is sent to the device based on the actual destination address carried by the MSDU in the control signaling frame; if so, the receiving window corresponding to the client 200 is updated based on the above MSDU; and the confirmation information is determined based on the updated receiving window.
- the confirmation information includes the R-LE, R-UE and Bitmap currently corresponding to the receiving window, and the confirmation information is used to indicate the reception status of the control signaling frame maintained by the receiving window corresponding to the client 200.
- the multicast stack of the multicast source 100 sends a signaling confirmation frame 2 to the WiFI driver of the multicast source 100.
- the signaling confirmation frame 2 includes the above confirmation information.
- the WiFI driver of the multicast source 100 multicasts and sends a signaling confirmation frame 2 through VAP1 .
- the WiFI driver of the client 200 monitors the signaling confirmation frame 2 through VAP2 .
- the WiFI driver of the client 200 sends a signaling confirmation frame 2 decrypted by the multicast key 1 to the multicast stack.
- the source address carried by the MAC header of the signaling confirmation frame 2 is the virtual multicast source address; the source address in the MSDU of the control signaling frame 1 is the virtual multicast source address, the destination address is the multicast MAC address, the actual source address is the MAC address of the client 200, and the actual destination address is the MAC address of the multicast source 100.
- the multicast stack of the client 200 updates the sending window corresponding to the multicast source 100 based on the signaling confirmation frame 2, and determines whether to retransmit the control signaling frame 4, and if so, executes S1011.
- each client in the multicast group maintains a sending window for the multicast source 100, and the sending window is used to cache control signaling frames that have been sent but not received by the multicast source 100 and to maintain the sending information of the sent control signaling frames.
- the client 200 can update the sending window corresponding to the multicast source 100 based on the signaling confirmation frame 2 fed back by the multicast source 100.
- the multicast source 100 can determine whether to retransmit the control signaling frame 4 based on the receiving information of the control signaling frame 4 maintained in the sending window.
- the multicast stack of the client 200 sends a multicast transmission instruction to the WiFI driver.
- the multicast transmission instruction is used to transmit the control signaling frame 4 .
- steps S901, S905, and S910 are introduced.
- steps S1001, S1005, and S1010 can refer to the relevant description of S901, S905, and S910 respectively.
- the multicast source 100 maintains a receiving window for each client in the multicast group, and each client in the multicast group only needs to maintain a receiving window for the multicast source 100.
- a receiving window is used to maintain the receiving information of the control signaling frame from a specified sender; the receiving window can maintain the receiving information of MAX_WINDOW_LEN control signaling frames at most. For example, the default value of MAX_WINDOW_LEN is 16.
- the client 200 maintains the receiving window corresponding to the multicast source 100 according to the control signaling frame received from the multicast source 100.
- FIG10A shows a schematic diagram of a receiving window maintained by the client 200 for the multicast source 100, and the receiving window may include MAX_WINDOW_LEN (e.g., 16) small windows, and the index (index) corresponding to each small window is 0 to (MAX_WINDOW_LEN-1), for example, 0 to 15.
- the small window can maintain the receiving information shown in Table 2.
- the receiving window can sequentially maintain the receiving information of each control signaling frame; according to the HML receiving identifier corresponding to each small window, Fig. 10A shows whether the control signaling frame corresponding to each small window in the receiving window has been received. As shown in Fig. 10A, according to the HML control identifier of the control signaling frame received by the client 200 from the multicast source 100, the receiving window can sequentially maintain the receiving information of each control signaling frame; according to the HML receiving identifier corresponding to each small window, Fig. 10A shows whether the control signaling frame corresponding to each small window in the receiving window has been received. As shown in Fig.
- the signaling frames with an HML control identifier less than or equal to 35 have been received, and the signaling frames with an HML control identifier of 36 have not been received, that is, the minimum value of the HML control identifier of the control signaling frame not received in the receiving window is 36; the control signaling frame with an HML control identifier of 41 has been received, and the control signaling frames with an HML control identifier greater than 41 have not been received, that is, the maximum value of the HML control identifier of the control signaling frame received in the receiving window is 41.
- the lower edge (R-LE) of the receiving window refers to the minimum value of the HML control identifier of the control signaling frame that has not been received in the receiving window; the upper edge (R-UE) of the receiving window refers to the maximum value of the HML control identifier of the control signaling frame that has been received in the receiving window.
- the R-LE of the receiving window is 36 and the R-UE is 41.
- the index of the small window corresponding to the R-UE of the receiving window may be smaller than the index of the small window corresponding to the R-LE.
- FIG. 10B shows a schematic diagram of another receiving window maintained by the client 200 for the multicast source 100, in which the R-UE of the receiving window is 47, the index of the small window corresponding to the R-UE is 0, the R-LE is 42, and the index of the small window corresponding to the R-LE is 10. It can be understood that when the small window with an index of 15 maintains the receiving information of the control signaling frame in sequence according to the HML control identifier, it returns to continue to maintain the receiving information of the newly received control signaling frame in sequence starting from the small window with an index of 0. It can be understood that the first small window of the receiving window can also be regarded as the next small window of the last small window.
- the client 200 can reply a signaling confirmation frame to the multicast source 100 based on the reception information of each small window in the receiving window to feedback the reception status of each control signaling frame.
- the confirmation information in the signaling confirmation frame includes the R-LE of the receiving window, the R-UE of the receiving window, and the Bitmap, and the Bitmap indicates the reception status of the control signaling frames corresponding to each small window in the small window pointed to by the R-LE to the small window pointed to by the R-UE.
- the R-LE of the receiving window is 36
- the R-UE is 41
- the Bitmap is 001101
- the lowest bit “0” of the Bitmap indicates that the control signaling frame corresponding to the small window pointed to by "36” has not been received
- the highest bit “1” indicates that the control signaling frame corresponding to the small window pointed to by "41” has been received.
- step S905 updates the receiving window of the multicast source 100 based on the received control signaling frame 1 and feeds back a signaling confirmation frame to the multicast source 100 according to the receiving window.
- FIG. 10C shows a process flow in which the client 200 updates the receiving window of the multicast source 100 and feeds back a signaling confirmation frame.
- the process flow includes steps S601 to S605.
- step S601. According to the actual destination address (actual dest addr) in the control signaling frame 1, determine whether it is a multicast frame sent to this device; if so, execute step S602; if not, directly discard it and exit.
- actual destination address actual dest addr
- step S602. Determine whether the sender of control signaling frame 1 belongs to its own multicast group according to the actual source address (actual src addr) in control signaling frame 1; if so, execute step S603; if not, discard it directly and exit.
- the multicast stack of client 200 is configured with the MAC address of the multicast source 100 of the multicast group.
- Client 200 determines whether the actual source address in control signaling frame 1 is the MAC address of multicast source 100; if so, it is determined that the sender of control signaling frame 1 belongs to its own multicast group, and client 200 executes step S603.
- multicast stack of multicast source 100 is configured with the actual MAC address of each client in the multicast group.
- step S1005 for the control signaling frame 3 sent by client 200 to multicast source 100, multicast source 100 can determine whether the sender of control signaling frame 3 is a client in the multicast group based on the actual source address field in control signaling frame 3.
- S603 According to the subtype in the control signaling frame 1, submit the control signaling frame 1 to a corresponding module for processing.
- the subtypes of the control signaling frame may include 0 (i.e., control signaling sent by the application layer), 1 (i.e., RaptorQ encoding parameter notification frame), 2 (i.e., adaptive parameter feedback frame), and others.
- different subtypes of control signaling frames may correspond to different processing modules. For example, when the subtype of control signaling frame 1 is 0, control signaling frame 1 is transmitted to the application layer for processing.
- step S605 may specifically include steps A1 to A10 .
- Index1 (HML Control ID% MAX_WINDOW_LEN).
- the small window in the receiving window maintains the receiving information of the received control signaling frame in sequence according to the HML control identifier of the received control signaling frame. Therefore, according to the HML control identifier of the control signaling frame 1, it is possible to determine the control information for maintaining the control signaling frame
- the small window of 1 is Index1.
- step A2 Determine whether the receiving window is full according to the R-LE and R-UE of the receiving window. If it is full, execute step A3; if it is not full, execute step A4.
- the index 1 of the window pointed to by R-LE is equal to the index 2 of the window pointed to by R-UE plus 1, that is, the small window pointed to by R-LE is the next small window pointed to by R-UE, it is determined that the receiving window is full and there is no idle small window.
- the small window pointed to by R-LE is not the next small window pointed to by R-UE, it is determined that the receiving window is not full and there is an idle small window.
- an idle small window refers to a small window that has not maintained a specified control signaling frame, and the received information (e.g., HML control identifier) in the idle small window is a formatted initial value.
- the received information e.g., HML control identifier
- the index of the small window pointed to by the R-UE i.e., In1
- the index of the small window pointed to by the R-LE i.e., In2
- the index 2 of the window pointed to by the R-UE is less than the index 1 of the window pointed to by the R-LE, there is an idle small window in the small window with an index greater than In2 and less than In1.
- the small window pointed to by R-LE to the small window corresponding to Index1 are all cleared.
- Clearing the small window of the receiving window includes formatting the receiving information maintained by the small window and restoring the receiving information to an initial value.
- Using the small window corresponding to Index1 to maintain control signaling frame 1 specifically includes: updating the receiving flag of the small window corresponding to Index1 to 1, and updating the HML control flag of the small window to the HML control flag of control signaling frame 1.
- Control signaling frame 1 is a duplicate frame. The control signaling frame 1 is discarded and the system exits.
- A6 Update the receiving flag of the small window to 1.
- the receiving window when the receiving window is not full, if the receiving flag of the small window corresponding to Index1 is 1, it indicates that the control signaling frame maintained by the small window corresponding to Index1 is control signaling frame 1, and control signaling frame 1 has been received; the client 200 directly discards control signaling frame 1 and exits the processing flow. If the receiving flag of the small window corresponding to Index1 is 0, the receiving flag of the small window is set from 0 to 1 based on the received control signaling frame 1.
- the client 200 can update the R-UE of the receiving window (for example, executing steps A7 and A8), and/or update the R-LE of the receiving window (for example, executing steps A7, A9 and A10).
- the client determines the first small window with a receiving identifier of 0 among the window pointed to by R-LE and the small windows thereafter, and updates R-LE to the HML control identifier of the small window, which can be called the first small window.
- the client 200 may determine the signaling confirmation frame 1 to be fed back to the multicast source 100 according to the updated receiving window of the multicast source 100 .
- each time the client 200 receives a control signaling frame from the multicast source 100 and processes the receiving window of the multicast source 100 it feeds back a signaling confirmation frame to the multicast source 100. In this way, the reception status of the control signaling frame can be fed back to the multicast source 100 in a timely manner.
- the client 200 may also feed back a signaling confirmation frame to the multicast source 100 after receiving N control signaling frames from the multicast source 100 and processing the receiving window of the multicast source 100 according to the N control signaling frames. Compared with feeding back a signaling confirmation frame after each control signaling frame is received, this can reduce signaling loss and improve signaling sending rate.
- the client 200 periodically feeds back a signaling confirmation frame to the device according to the latest status of the receiving window of the multicast source 100. Compared with feeding back a signaling confirmation frame after each control signaling frame is received, this can reduce signaling loss and increase signaling sending rate.
- the multicast source 100 and the clients in the multicast group perform a periodic check on each receiving window they maintain with a preset duration as a period.
- the receiving window corresponding to the multicast source 100 maintained by the client 200 is taken as an example to introduce the receiving window timeout processing mechanism.
- the client 200 traverses the N small windows from the small window pointed to by R-LE to the small window pointed to by R-UE, and searches for each small window with a receiving identifier of 0 in the N small windows, where N is a positive integer greater than 1.
- the number of timeout polling (Tick) corresponding to small window 1 is increased by 1. If the Tick is increased by 1 and exceeds the preset value 1 (i.e., the second preset value), the small windows pointed to by R-LE to small window 1 are forcibly cleared.
- the above preset value 1 can be called a forced submission period (FORCE_COMMIT_PERIOD), for example, the above preset value 1 is equal to 5. Then, the client 200 starts the window shifting process from small window 1, determines the first unreceived small window 2 after small window 1 (the small window can be called the fifth small window); updates the R-LE of the receiving window to the HML control identifier corresponding to small window 2, that is, points R-LE to small window 2.
- FORCE_COMMIT_PERIOD forced submission period
- 10F shows a schematic diagram of a process of client 200 performing timeout processing on the receiving window of multicast source 100.
- the initial value of j is set to 1, and the above process includes the following steps B1 to B6.
- the receiving identifier of small window 1 whose HML control identifier is 37 is determined to be 0. If the Tick of small window 1 is greater than 5 after adding 1, the small windows with HML control identifiers 36 to 37 are cleared, and the HML control identifier of the first unreceived small window after R-LE is updated to small window 1, i.e., 40.
- the multicast source 100 performs a timeout process on the receiving window of the client including: the multicast source 100 traverses the receiving window corresponding to each client of the multicast group, performs a timeout process on the receiving window corresponding to each client, and updates the receiving window corresponding to each client and the R-LE of the receiving window.
- the specific implementation of the multicast source 100 performing a timeout process on the receiving window of the client 200 can refer to the above description of the client 200 performing a timeout process on the receiving window of the multicast source 100, which will not be repeated here.
- the multicast source 100 maintains a sending window for each client in the multicast group, and each client in the multicast group only needs to maintain a sending window for the multicast source 100.
- the sending window is used to cache signaling frames that have been sent but not successfully received and maintain their corresponding sending information; the sending window can cache up to MAX_WINDOW_LEN control signaling frames. For example, the default value of MAX_WINDOW_LEN is 16.
- the multicast source 100 may send a control signaling frame to the client 200, and maintain the sending window corresponding to the client 200 based on the sent control signaling frame and the signaling confirmation frame 1 fed back by the client 200.
- the signaling confirmation frame 1 fed back by the client 200 is used to indicate that the control signaling frame has not been received.
- FIG. 11A shows a schematic diagram of the sending window maintained by the multicast source 100 for the client 200, and the sending window may include MAX_WINDOW_LEN (e.g., 16) small windows, and the index (index) corresponding to each small window is 0 to (MAX_WINDOW_LEN-1), for example, 0 to 15.
- the small window can maintain the sending information shown in Table 3.
- the sending window can sequentially maintain the sending information of each control signaling frame.
- FIG11A shows whether the control signaling frame corresponding to each small window in the sending window has received confirmation, that is, whether the confirmation has been received.
- the control signaling frame with the HML control identifier of 35 has received confirmation
- the signaling frame with the HML control identifier of 36 has not received confirmation.
- the sending window Similar to the receiving window, the sending window also has a lower edge (T-LE) and an upper edge (T-UE).
- T-LE points to the small window corresponding to the earliest control signaling frame sent but not confirmed, and T-LE is equal to the HML control identifier of the control signaling frame; while T-UE points to the small window corresponding to the latest control signaling frame sent, and T-UE is equal to the HML control identifier of the control signaling frame.
- T-LE points to the small window corresponding to the earliest control signaling frame sent but not confirmed, and T-LE is equal to the HML control identifier of the control signaling frame; while T-UE points to the small window corresponding to the latest control signaling frame sent, and T-UE is equal to the HML control identifier of the control signaling frame.
- the sending window is full, the subsequent signaling frames to be sent will be cached in a preset linked list (such as the CachedSkb linked list).
- the sending window is full, which means that the small window pointed to by T-LE is the next small window pointed to by T-UE, and there is no idle small window in the sending window.
- the sending window is not full, which means that the small window pointed to by T-LE is not the next small window pointed to by T-UE, and there is an idle small window in the sending window.
- the first small window in the sending window can be regarded as the next small window of the last small window.
- the idle small window in the sending window means that the idle small window does not cache the control signaling frame, nor maintains the sending information of the specified control signaling frame, and the sending information of the sending window is the formatted initial value.
- the multicast source 100 may be triggered to send a control signaling frame to the client 200 and update the sending window. For example, in the aforementioned step S901, the multicast source 100 sends a control signaling frame 1 to the client 200, and in the aforementioned step S911, the multicast source 100 sends a control signaling frame 2 to the client 200.
- the above-mentioned specific events may include the following events 1 to 3.
- Event 1 other modules (such as APP or adaptive parameter adjustment module in the application layer) newly construct a control signaling frame for the client 200, and the multicast source 100 sends the control signaling frame to the client 200.
- modules such as APP or adaptive parameter adjustment module in the application layer
- Event 2 The multicast source 100 receives a signaling confirmation frame from the client 200, and the signaling confirmation frame triggers the retransmission of the specified control signaling frame.
- step S910 when receiving the signaling confirmation frame 1 fed back by the client 200, the multicast source 100 can update the sending window according to the R-UE, R-LE and Bitmap in the signaling confirmation frame 1, and trigger the retransmission control signaling frame 2 when the sending window meets the retransmission condition.
- FIG. 11B shows the specific implementation process of step S910, which will not be described here.
- Event 3 The timeout processing mechanism triggers retransmission.
- the multicast source 100 or the client in the multicast group periodically times out the receiving window maintained by it with a preset duration as a period.
- a preset duration is 1s.
- FIG. 11E shows an implementation flow of the timeout processing mechanism of the sending window, which will not be repeated here.
- the confirmation information of the signaling confirmation frame 1 carries the R_LE, R_UE and Bitmap of the receiving window.
- FIG. 11B shows a processing flow of step S910 , which includes steps S701 to S706 .
- step S701. Determine whether it is a multicast frame sent to this device based on the actual destination address (actual dest addr) in the signaling confirmation frame 1; if so, execute step S702; if not, directly discard the signaling confirmation frame and exit.
- step S702 According to the actual source address (actual src addr) in the signaling confirmation frame 1, determine whether the sender of the signaling confirmation frame 1 belongs to its own multicast group; if so, execute step S703; if not, directly discard the signaling confirmation frame and exit.
- actual source address actual src addr
- the multicast stack of the multicast source 100 is configured with the actual MAC address of each client in the multicast group.
- the multicast source 100 can determine whether the sender of the signaling confirmation frame 1 is a client in the multicast group according to the actual source address in the signaling confirmation frame 1.
- the multicast source 100 obtains the sending window corresponding to the client 200.
- the current T_LE of the sending window is 36, and T_UE is 42; when R-LE is less than 36 or R-UE is greater than 42, it indicates that the signaling confirmation frame 1 is an outdated frame or an error frame, and the multicast source 100 exits the processing flow; when R-LE is greater than 36 and R-UE is less than 42, the multicast source 100 continues to execute subsequent processes.
- the small window in the sending window is cleared, including releasing the control signaling frame stored in the address cache in the PktBuf field of the small window, and clearing (eg, formatting, restoring the initial value) the sending information maintained by the small window.
- step S705 includes steps C1 to C3.
- the current T_LE of the sending window is 36, and the T_UE is 42; the R-LE of the receiving window carried by the signaling confirmation frame 1 is 38, and the R-UE is 41.
- the multicast source 100 clears the small windows with HML control identifiers 36 to 37 in the sending window, and updates the value of T-LE to 38.
- R-LE is equal to T-LE, based on Bitmap, determine the small window that has been received in the small window pointed to by R-LE to R-UE in the sending window, release the control signaling frame cached at the storage address of the small window; and determine the small window that has not been received, and determine whether to retransmit the control signaling frame 2 maintained by the small window.
- the multicast source 100 determines the small window corresponding to the control signaling frame with the above Bitmap marked as 1 in the sending window based on the signaling confirmation frame 1 carrying R-LE, R-UE and Bitmap, releases the control signaling frame cached at the storage address corresponding to the small window, and the small window can be called the second small window; determines the small window corresponding to the control signaling frame 2 with the above Bitmap marked as 0 in the sending window, and retransmits the control signaling frame 2 when it is determined that the small window meets the retransmission condition, and the small window can be called the third small window.
- releasing the control signaling frame cached at the storage address corresponding to the small window includes: deleting the control signaling frame cached at the storage address in the PktBuf field of the small window, and clearing and deleting (e.g., formatting, restoring the initial value) the storage address in the PktBuf field.
- step S706 includes C4 to C8.
- step C4 Determine whether frameid is less than R-UE; if so, execute step C5; if not, exit the processing flow.
- the small window with the HML control identifier frameid is marked as 1 in the Bitmap. Marking 1 means that the control signaling frame corresponding to the small window has been received, and marking 0 means that the control signaling frame corresponding to the small window has not been received.
- the flag bit of the small window with the HML control identifier frameid in the Bitmap is marked as 0, then based on the retransmission identifier and retransmission count of the small window, determine whether the control signaling frame cached in the small window meets the retransmission condition; if so, retransmit the above control signaling frame.
- the retransmission conditions include: the small window corresponding to the frameid has not been retransmitted in the current retransmission cycle (that is, the retransmission flag RetranFlag is 0); the number of retransmissions (RetranCnt) of the small window corresponding to the frameid is less than the preset maximum value (MAX_RETRAN_CNT), for example, the value of MAX_RETRAN_CNT is 5.
- the current T_LE of the sending window is 36, and the T_UE is 42; the R-LE of the receiving window carried by the signaling confirmation is 38, the R-UE is 41, and the Bitmap is 0101.
- the multicast source 100 clears the small windows with HML control identifiers 36 and 37, and updates the T-LE to 38.
- the four identification bits in the Bitmap respectively indicate whether the control signaling frames with HML control identifiers 38 to 41 have been received.
- the Bitmap indicates that the control signaling frames with HML control identifiers 39 and 41 have been received.
- the multicast source 100 releases the control signaling frames cached at the storage address in the small window.
- the Bitmap indicates that the control signaling frames with HML control identifiers 38 and 40 have not been received; taking the control signal frame with HML control identifier 38 as an example, the multicast source 100 determines whether the small window with HML control identifier 38 in the sending window meets the retransmission condition; if so, the control signaling frame with HML control identifier 39 cached in the small window is retransmitted.
- the multicast source 100 and the clients in the multicast group perform a periodic check on each receiving window they maintain with a preset duration. Periodically time out processing is performed. For example, the preset duration is 1 second.
- the following takes the sending window corresponding to the client 200 maintained by the multicast source 100 as an example to introduce the time out processing mechanism of the sending window.
- the timeout processing of the sending window is performed with a cycle of 1s.
- the multicast source 100 traverses the N small windows from the small window pointed to by T-LE to the small window pointed to by T-UE.
- the number of timeout polling (Tick) corresponding to small window 1 is increased by 1, and the small window can be called the sixth small window. If the Tick is greater than or equal to the preset value 2 (for example, RETRAN_PEROID) after adding 1, it is determined whether small window 1 meets the retransmission condition.
- the preset value 2 for example, RETRAN_PEROID
- the control signaling frame maintained by small window 1 is retransmitted, and the Tick of small window 1 is set to 0, the retransmission flag (RetranFlag) is set to 1, and the number of retransmissions (RetranCnt) is increased by 1; if the retransmission condition is not met and the number of retransmissions exceeds the preset value 3 (for example, MAX_RETRAN_CNT), small window 1 is cleared, and T-LE points to the first small window with a sending status of 0 after the small window.
- the multicast source 100 may also point the T-LE to the small window with a sending state of 0 and the smallest control identifier after traversing the above N small windows.
- 11E shows a process flow of multicast source 100 performing timeout processing on the sending window corresponding to client 200.
- the initial value of j is set to 1, and the above process includes the following steps D1 to D6.
- step D4 Determine whether the j-th small window meets the retransmission condition; if so, execute step D5; if not, execute step D6.
- the membership of a multicast group is dynamic, and hosts can join and leave the multicast group at any time.
- client 200 can actively exit the multicast group; when client 200 actively exits the multicast group, the multicast group information of the multicast group will be deleted, and the multicast source 100 will be notified via Bluetooth, and the multicast source 100 will remove the client 200 from the multicast device list of the multicast group.
- Figure 12A shows a method flow chart of a client active exit phase provided by an embodiment of the present application.
- the client 200 joins the multicast group (for example, after the aforementioned step S216), it may also include but not limited to steps S401 to S412.
- S401 The UI of the client 200 detects operation 5 of the user, where operation 5 is used to exit the multicast group.
- the client 200 is provided with a UI entry for exiting the multicast group.
- the user can trigger the client 200 to actively exit the multicast group and close the multicast application by operating 5 on the UI entry.
- the multicast application can be a screen projection application, and operation 5 can be used to exit the screen projection multicast group; based on the screen projection data sent by the multicast source 100, the client 200 can display the screen projection screen 17; the screen projection screen 17 is provided with an exit control 401, and operation 5 includes a click operation on the exit control 401; in response to operation 5, the client 200 can stop displaying the screen projection screen and close the screen projection application.
- the Bluetooth driver of the client 200 interacts with the Bluetooth driver of the multicast source 100 to establish a Bluetooth connection.
- step S202 For details, please refer to the relevant description of step S202, which will not be repeated here.
- the Bluetooth driver of the client 200 sends a multicast disconnection request message to the Bluetooth driver of the multicast source 100 .
- the multicast disconnection request message includes a device identifier of the client 200 .
- the Bluetooth driver of the client 200 sends a multicast cancellation instruction to the WiFi driver of the client 200 .
- the WiFi driver of the client 200 sends a multicast end notification to the multicast stack of the client 200 .
- the multicast group information on the client side includes part or all of the following information: a multicast MAC address, a virtual multicast source address, a multicast key 1, an IP address 1 of the multicast source 100 and an IP address 2 of the client 200 .
- steps S409 to S412 are also included.
- the Bluetooth driver of the multicast source 100 sends a client exit instruction to the WiFi driver of the multicast source 100, where the client exit instruction is used to instruct to delete the client 200 in the multicast group.
- the WiFi driver of the multicast source 100 sends a client deletion instruction to the multicast stack of the multicast source 100.
- the client deletion instruction is used to instruct to delete the client 200 in the multicast group.
- the multicast stack of the multicast source 100 deletes the multicast user information of the client 200 .
- the multicast group information maintained by the multicast source 100 includes a multicast device list of the multicast group, and the multicast device list stores multicast user information of each client in the multicast group.
- the multicast source 100 deletes the multicast user information of the client 200 in the multicast device list.
- S412 The Bluetooth driver of the multicast source 100 and the Bluetooth driver of the client 200 disconnect the Bluetooth connection.
- the Bluetooth driver of the multicast source 100 may actively disconnect the above-mentioned Bluetooth connection after step S405 (i.e., sending a multicast disconnect confirmation message to the client 200) or S409, or the Bluetooth driver of the client 200 may actively disconnect the above-mentioned Bluetooth connection after step S405 (i.e., receiving a multicast disconnect confirmation message sent by the multicast source 100) or S406, and no specific limitation is made here.
- the multicast source 100 when the multicast source 100 ends the multicast sharing of the multicast group, it can delete the multicast group information on the multicast source side and broadcast the multicast deletion message via Bluetooth; after each client receives the multicast deletion message, it exits the multicast application and deletes the multicast group information in the client.
- Figure 12B shows a method flow chart of a multicast source deletion phase provided by an embodiment of the present application.
- the client 200 joins the multicast group (for example, after the aforementioned step S216), it may also include but not limited to steps S501 to S511.
- S501 The UI of the multicast source 100 detects operation 6 of the user, where operation 6 is used to delete a multicast group.
- the multicast source 100 is provided with a UI entry for deleting the multicast group.
- the user can trigger the multicast source 100 to delete the multicast group and close the multicast application by operating 6 on the UI entry.
- the multicast application can be a screen projection application, and operation 6 can be used to delete the screen projection multicast group; when the multicast source 100 multicasts and projects the screen to the clients in the multicast group, the user interface displayed by the multicast source 100 is provided with an end control 402, and operation 6 includes a click operation on the end control 402; in response to operation 6, the multicast source 100 stops the multicast screen projection, deletes the screen projection multicast group, and closes the screen projection application.
- the Bluetooth driver of the multicast source 100 periodically broadcasts a multicast deletion message via Bluetooth within a preset time period after receiving a multicast end instruction, so that all clients in the multicast group can receive the message.
- the Bluetooth driver of the multicast source 100 sends a multicast cancellation instruction to the WiFi driver of the multicast source 100 .
- the WiFi driver of the multicast source 100 sends a multicast end notification to the multicast stack of the multicast source 100 .
- the multicast group information on the multicast source side includes part or all of the following information: a multicast device list, a multicast MAC address, a virtual multicast source address, a multicast key 1, and other information.
- the Bluetooth driver of the client 200 After receiving the multicast deletion message broadcast by the multicast source 100 via Bluetooth, the Bluetooth driver of the client 200 sends a multicast deletion instruction to the UI of the client 200 .
- the multicast sharing interface may include a screen projection screen 13 .
- the Bluetooth driver of the client 200 after receiving the multicast deletion message broadcast by the Bluetooth of the multicast source 100 , the Bluetooth driver of the client 200 also sends a deletion instruction to the WiFi driver of the client 200 .
- the WiFi driver of the client 200 sends a multicast end notification to the multicast stack of the client 200 .
- the multicast stack of the client 200 deletes the multicast group information.
- the embodiments of the present application provide a multicast communication method, which is applied to a multicast communication system, wherein the multicast communication system includes a multicast source and at least one client, wherein the at least one client includes a first client.
- the method includes steps S1101 to S1107.
- a multicast source determines a multicast address and a first multicast key of a multicast group.
- the first multicast key includes the aforementioned multicast key 1.
- the multicast source sends a first Bluetooth message to the first client, where the first Bluetooth message is used to invite the first client to join a multicast group, and the first Bluetooth message includes a multicast address and a first multicast key.
- the first client includes the aforementioned client 200 or client 300
- the first Bluetooth message includes the aforementioned multicast invitation message.
- the method further includes: the multicast source receives a first operation, the first operation is used to create a multicast group; the multicast source determines the multicast address and the first multicast key of the multicast group, including: in response to the first operation, the multicast source determines the multicast address and the first multicast key of the multicast group.
- operation 1 includes the aforementioned operation 1.
- operation 1 may be an operation for turning on wireless screen projection, such as a click operation on the switch icon 201 for wireless screen projection.
- the method before the multicast source sends the first Bluetooth message to the first client, the method further includes: the multicast source Bluetooth scans nearby Bluetooth devices that support multicast communication; the multicast source displays at least one scanned Bluetooth device, and the at least one Bluetooth device includes the first client; the multicast source receives a second operation, and the second operation is used to invite the first client to join the multicast group; in response to the second operation, the multicast source establishes a Bluetooth connection with the first client.
- the second operation includes the aforementioned operation 3.
- the multicast source displays the device options of the detected HML multicast devices with wireless sharing turned on on the user interface 11 for the user to select.
- operation 3 includes an operation (such as a click operation) acting on the device option 203 of the client 200.
- the above method before the multicast source displays at least one scanned Bluetooth device, the above method also includes: the first client receives a third operation; in response to the third operation, the first client broadcasts a first discovery signal via Bluetooth, and the first discovery signal indicates that the first client supports multicast communication; the multicast source scans the first client based on the first discovery signal.
- the third operation includes the aforementioned operation 2, and the first discovery signal includes the aforementioned discovery signal 2.
- the aforementioned operation 2 includes an operation of turning on wireless sharing, for example, operation 2 may be a click operation of the switch icon 302 acting on wireless screen projection.
- the above method before the multicast source sends the first Bluetooth message to the first client, the above method also includes: in response to the first operation, the multicast source Bluetooth broadcasts a second discovery signal; based on the second discovery signal monitored by Bluetooth, the first client establishes a Bluetooth connection with the multicast source; the first client sends a third Bluetooth message to the multicast source, and the third Bluetooth message is used to request to join the multicast group; the above-mentioned multicast source sends the first Bluetooth message to the first client, including: in response to the third Bluetooth message, the multicast source sends the first Bluetooth message to the first client.
- the second discovery signal includes the aforementioned discovery signal 1
- the third Bluetooth message includes the aforementioned join request message.
- the multicast source before the above-mentioned multicast source sends the first Bluetooth message to the first client, it also includes: the multicast source allocates a first IP address to the first VAP of the multicast source and allocates a second IP address to the second VAP of the client; the first Bluetooth message also includes the first IP address and the second IP address; the first IP address and the second IP address are used to encapsulate the multicast message, the source IP address in the multicast message sent by the multicast source is the first IP address, and the source IP address in the multicast message sent by the first client is the second IP address.
- the first VAP includes the aforementioned VAP1, and the first IP address includes the aforementioned IP address 1.
- the first client includes the aforementioned client 200, the second VAP includes the aforementioned VAP2, and the second IP address includes the aforementioned IP address 2; or, the first client includes the aforementioned client 300, the second VAP includes the aforementioned VAP3, and the second IP address includes the aforementioned IP address 3.
- the first client sends a second Bluetooth message to the multicast source based on the first Bluetooth message; the second Bluetooth message is used to indicate that the first client confirms to join the multicast group.
- the second Bluetooth message includes the aforementioned confirmation joining message.
- the method further includes: disconnecting the Bluetooth connection between the multicast source and the first client.
- the above method also includes: based on the second Bluetooth message, the first multicast source adds the multicast user information of the first client in the multicast device list; the multicast device list is used to store the multicast user information of each client in the multicast group, and the multicast user information of the first client includes the MAC address and the second IP address of the first client.
- the first client configures a source address corresponding to the first multicast key as a MAC address of the multicast source.
- the multicast source sends a first multicast message encrypted by a first multicast key through multicast via WiFi communication technology.
- the source address in the first MAC header of the first multicast message is the MAC address of the multicast source, and the destination address in the first MAC header is the multicast address.
- the first multicast message includes the aforementioned multicast message 1.
- S1106 Based on the multicast address, the first client monitors a first multicast message.
- the first client determines that the key corresponding to the source address in the first MAC header is a first multicast key, and uses the first multicast key to parse a data unit (eg, MSDU) of the first multicast message.
- a data unit eg, MSDU
- the method before the multicast source sends the first Bluetooth message to the first client, the method further includes: the multicast source turns on the first VAP; the multicast source sends the first multicast message encrypted by the first multicast key through WiFi communication technology multicast, including: the first VAP of the multicast source sends the first multicast message encrypted by the first multicast key through WiFi communication technology multicast.
- the multicast source before the above-mentioned multicast source sends the first Bluetooth message to the first client, it also includes: the multicast source generates a virtual multicast source address; the multicast source configures the source address corresponding to the first multicast key as the virtual multicast source address; the first Bluetooth message also includes a virtual anchor source address, and the source address in the MAC header of the multicast message sent by the client in the multicast group is the virtual multicast source address.
- the above method also includes: the first client sends a second multicast message encrypted by a first multicast key through multicast via WiFi communication technology, the source address in the second MAC header of the second multicast message is a virtual multicast source address, and the destination address in the second MAC header is a multicast address; based on the multicast address, the multicast source monitors the second multicast message; the multicast source determines that the key corresponding to the source address in the second MAC header is the first multicast key, and uses the first multicast key to parse the data unit of the second multicast message.
- the second multicast message includes the aforementioned multicast message 2.
- the above-mentioned multicast source after the above-mentioned multicast source sends the first Bluetooth message to the first client, it also includes: the first client turns on the second VAP based on the first Bluetooth message; the above-mentioned first client sends the second multicast message encrypted by the first multicast key through WiFi communication technology multicast, including: the second VAP of the first client sends the second multicast message encrypted by the first multicast key through WiFi communication technology multicast.
- the types of multicast messages include signaling frames and data frames, and the multicast types of signaling frames include control signaling frames and signaling confirmation frames;
- the first multicast message includes a first control signaling frame, and the second multicast message includes a first signaling confirmation frame, the first signaling confirmation frame is generated by the first client based on the first control signaling frame, and the first signaling confirmation frame is used to indicate the reception status of the control signaling frame sent by the multicast source.
- the first control signaling frame includes the aforementioned control signaling frame 1
- the first signaling confirmation frame includes the aforementioned signaling confirmation frame 1.
- the types of multicast messages include signaling frames and data frames, and the multicast types of signaling frames include control signaling frames and signaling confirmation frames;
- the second multicast message includes a first control signaling frame, and the first multicast message includes a first signaling confirmation frame, which is generated by the multicast source based on the first control signaling frame, and the first signaling confirmation frame is used to indicate the reception status of the control signaling frame sent by the first client.
- the first control signaling frame includes the aforementioned control signaling frame 3, and the first signaling confirmation frame includes the aforementioned signaling confirmation frame 2.
- the data unit in the signaling frame includes the actual destination address corresponding to the receiving end of the signaling frame and the actual source address corresponding to the sending end of the signaling frame;
- the data unit of the control signaling frame also includes a control identifier and a data payload, the data payload is used to transmit valid control signaling, and the control identifier is used to indicate the number of the control signaling frame;
- the data unit of the signaling confirmation frame also includes confirmation information, and the confirmation information is used to indicate the reception status of the control signaling frame sent by the receiving end of the signaling confirmation frame.
- the MSDU of the signaling frame carries the actual destination address and the actual source address
- the MSDU of the control signaling frame further includes a control identifier and a data payload
- the MSDU of the signaling confirmation frame further includes confirmation information.
- the first client sets a receiving window for the multicast source to maintain the receiving information of the control signaling frame from the multicast source; the multicast source sets a sending window for the first client to maintain the sending information of the control signaling frame sent to the first client; the above method also includes: the first client updates the receiving window corresponding to the multicast source based on the first control signaling frame, and determines the first signaling confirmation frame based on the updated receiving window; the first signaling confirmation frame indicates that the second control signaling frame maintained by the sending window has not been received; the multicast source updates the sending window corresponding to the first client based on the first signaling confirmation frame, and determines whether to retransmit the second control signaling frame.
- the second control signaling frame includes the aforementioned control signaling frame 2.
- the signaling frame also includes a multicast type; when the multicast type of the signaling frame is a control signaling frame, the signaling frame also includes a subtype of the control signaling frame, the subtype of the control signaling frame includes a first subtype and a second subtype, and the processing modules corresponding to the first subtype and the second subtype are different; the above method also includes: the first client submits the first control signaling frame to the processing module corresponding to the first subtype for processing according to the first subtype in the first control signaling frame.
- the MSDU of the signaling frame carries the multicast type and subtype
- Table 1 shows several subtypes of the control signaling frame provided in the embodiment of the present application.
- the receiving window includes M small windows, where M is a positive integer; the small windows in the receiving window maintain the receiving information of the control signaling frame in sequence according to the control identifier of the control signaling frame received from the multicast source; the receiving information maintained by a small window in the receiving window includes the control identifier and the receiving identifier of the control signaling frame; the receiving identifier is used to indicate whether the control signaling frame has been received; the first upper edge UE of the receiving window refers to the maximum value of the control identifier of the received control signaling frame maintained by the receiving window, and the first lower edge LE of the receiving window refers to the minimum value of the control identifier of the unreceived control signaling frame maintained by the receiving window; the sending window includes M small windows; the small windows in the sending window maintain the sending information of the control signaling frame in sequence according to the control identifier of the control signaling frame sent to the first client; the sending information maintained by a small window includes the control identifier of the control signaling frame; the second
- Figures 10A, 10B and 10E show several receiving windows provided in the embodiments of the present application;
- Table 2 shows the receiving information of the control signaling frame maintained by the small window in the receiving window provided in the embodiments of the present application;
- the first upper edge UE of the receiving window includes the aforementioned R-UE, and the first lower edge LE of the receiving window includes the aforementioned R-LE.
- Figure 11A shows a receiving window provided in the embodiments of the present application;
- Table 3 shows the sending information of the control signaling frame maintained by the small window in the sending window provided in the embodiments of the present application;
- the second UE of the sending window includes the aforementioned T-UE, and the second LE of the sending window includes the aforementioned T-LE.
- the confirmation information in the first signaling confirmation frame includes the first UE and the first LE of the receiving window, and a bitmap, which sequentially indicates the reception status of the control signaling frame maintained by the small window pointed to by the first LE in the receiving window to the small window pointed to by the first UE.
- the confirmation information of the signaling confirmation frame carries LE, UE and Bitmap.
- the above-mentioned first client updates the receiving window corresponding to the multicast source based on the first control signaling frame, including: determining that it is a multicast frame sent to this device according to the actual destination address in the first control signaling frame, and determining that the sender of the first control signaling frame belongs to the multicast group according to the actual source address in the first control signaling frame, obtaining the receiving window corresponding to the multicast source based on the actual source address in the first control signaling frame, and the first client updates the receiving window corresponding to the multicast source based on the first control signaling frame.
- the first client updates the receiving window corresponding to the multicast source based on the first control signaling frame, including: determining a first index of the small window for maintaining the first control signaling frame according to the control identifier of the first control signaling frame, the first index being equal to the remainder after the control identifier of the first control signaling frame is divided by M; when it is determined that the receiving window is full according to the first LE and the first UE, clearing the small window pointed to by the first LE to the small window corresponding to the first index; when it is determined that the receiving window is not full, if the receiving identifier of the small window corresponding to the first index is a first value, discard the first control signaling frame, and if the receiving identifier of the small window corresponding to the first index is a second value, update the value of the receiving identifier of the small window corresponding to the first index to the first value; the receiving identifier is the first value, indicating that the control signaling frame has been received; the receiving identifier is the second value,
- the first index includes the aforementioned Index1.
- the first value is equal to 1, and the second value is equal to 0; or, the first value is equal to 0, and the second value is equal to 1.
- the above-mentioned multicast source updates the sending window corresponding to the first client described in the UE based on the first signaling confirmation frame, including: determining that it is a multicast frame sent to this device according to the actual destination address in the first signaling confirmation frame, and determining whether the sender of the first control signaling frame belongs to the multicast group according to the actual source address in the first signaling confirmation frame, obtaining the sending window corresponding to the first client according to the actual source address in the first signaling confirmation frame, and the multicast source updates the sending window corresponding to the first client based on the first signaling confirmation frame.
- the above-mentioned multicast source updates the sending window corresponding to the first client based on the first signaling confirmation frame, including: based on the confirmation information in the first signaling confirmation frame, determining that the first LE is greater than or equal to the second LE of the sending window, and the first UE is less than or equal to the second UE, the multicast source updates the sending window corresponding to the first client based on the first signaling confirmation frame.
- the sending information maintained by a small window in the sending window also includes a sending status and a storage address, the sending status is used to indicate whether the control signaling frame has been received, and the storage address is used to indicate the cache address of the control signaling frame;
- the above-mentioned multicast source updates the sending window corresponding to the first client based on the first signaling confirmation frame, including: when the first LE is greater than the second LE, clearing the small window pointed to by the second LE in the sending window to the previous small window of the small window pointed to by the first LE, and updating the value of the second LE to the value of the first LE; when the first LE is equal to the second LE, traversing the small window pointed to by the first LE in the sending window to the small window pointed to by the first UE, the second small window where the control signaling frame indicated by the bitmap has been received, and releasing the control signaling frame cached at the storage address of the second small window.
- the sending information maintained by a small window of the sending window also includes a retransmission flag and a retransmission count, the retransmission flag is used to indicate whether it has been retransmitted within the current retransmission cycle, and the retransmission count is used to indicate the number of times the control signaling frame has been retransmitted;
- the above-mentioned determination of whether to retransmit the second control signaling frame includes: when the first LE is equal to the second LE, traversing the small window pointed to by the first LE in the sending window to the small window pointed to by the first UE, the third small window in which the control signaling frame indicated by the bitmap has not been received, and when the second control signaling frame maintained by the third small window meets the retransmission condition, it is determined to retransmit the second control signaling frame to the first client, and the retransmission flag corresponding to the third small window is updated to the first value, and the retransmission count is increased by 1; the retransmission flag takes the first
- the retransmission condition includes: the retransmission flag of the third small window is the second value, and the number of retransmissions is less than the first preset value; the retransmission flag is the second value, indicating that the control signaling frame has not been retransmitted in this retransmission cycle.
- the first preset value includes the aforementioned MAX_RETRAN_CNT, for example, the first preset value is equal to 5.
- the above method further includes: the first client periodically performing timeout processing on the receiving window corresponding to the multicast source it maintains.
- the receiving information maintained by a small window of the receiving window also includes the polling number, and the first client maintains the polling number.
- the receiving window corresponding to the multicast source is periodically timed out, including: determining the fourth small window with a receiving identifier of the second value from the small window pointed to by the first LE to the small window pointed to by the first UE in the receiving window, and adding 1 to the polling number of the fourth small window; when the polling number of the fourth small window is greater than the second preset value, clearing the small window pointed to by the first LE to the fourth small window; determining the fifth small window with the first receiving identifier of the second value after the fourth small window in the receiving window; and updating the first LE of the receiving window to the control identifier of the fifth small window.
- the second preset value includes the aforementioned preset value 1.
- the above method further includes: the multicast source periodically performs timeout processing on the sending window corresponding to the first client maintained by it.
- the multicast source periodically performs timeout processing on the sending window corresponding to the first client it maintains, including: traversing the small window pointed to by the second LE in the sending window to the small window pointed to by the second UE, and the sixth small window with a sending status of the second value; the sending status takes the second value, indicating that the control signaling frame has not been received; the polling number corresponding to the sixth small window is increased by 1; when the polling number of the sixth small window is greater than or equal to the third preset value, it is determined whether the sixth small window meets the retransmission condition; when the retransmission condition is met, it is determined to retransmit the control signaling frame maintained by the sixth small window, and the polling number of the sixth small window is set to 0, the retransmission flag is set to the first value, and the retransmission number is increased by 1; when the retransmission condition is not met and the retransmission number exceeds the fifth preset value, the sixth small window is cleared, and the control signaling frame
- the third preset value includes the aforementioned preset value 2.
- it also includes: the first client and the multicast source establish a Bluetooth connection, and send a fourth Bluetooth message to the multicast source, the fourth Bluetooth message is used to request to exit the multicast group; the multicast source sends a fifth Bluetooth message to the first client, and deletes the multicast user information of the first client, the fifth Bluetooth message is used to indicate confirmation that the first client has exited the multicast group; the first client Bluetooth monitors the fifth Bluetooth message, and deletes the second multicast group information on the client side based on the fifth Bluetooth message; the second multicast group information includes the multicast address and the first multicast key; the first client and the multicast source disconnect the Bluetooth connection.
- the fourth Bluetooth message includes the aforementioned disconnection request message
- the fifth Bluetooth message includes the aforementioned disconnection confirmation message
- the second multicast group information includes the aforementioned multicast group information on the client 200 side.
- the first client and the multicast source establish a Bluetooth connection and send a fourth Bluetooth message to the multicast source, including: the first client receives a fourth operation; in response to the fourth operation, the first client and the multicast source establish a Bluetooth connection and send a fourth Bluetooth message to the multicast source; the method also includes: in response to the fourth operation, the first client closes the multicast application.
- the fourth operation includes the aforementioned operation 5.
- operation 5 can be used to exit the screen projection multicast group.
- operation 5 includes a click operation acting on the exit control 401 .
- the multicast source Bluetooth broadcasts a sixth Bluetooth message and deletes the first multicast group information on the multicast source side; the sixth Bluetooth message is used to indicate the deletion of the multicast group, and the first multicast group information includes a multicast device list, a first multicast key and a multicast address; the first client Bluetooth monitors the sixth Bluetooth message and deletes the second multicast group information on the client side based on the sixth Bluetooth message; the second multicast group information includes the multicast address and the first multicast key.
- the sixth Bluetooth message includes the aforementioned multicast deletion message
- the first multicast group information includes the aforementioned multicast group information on the multicast source 100 side.
- the multicast source Bluetooth broadcasts the sixth Bluetooth message, including: the multicast source receives the fifth operation; in response to the fifth operation, the multicast source Bluetooth broadcasts the sixth Bluetooth message; the method further includes: in response to the fifth operation, closing the multicast application.
- the fifth operation includes the aforementioned operation 6.
- operation 6 can be used to delete the screen projection multicast group, for example, operation 6 includes a click operation acting on the end control 402 .
- the hardware structure of the receiving multicast source 100 and the client is exemplarily described below.
- the following describes a structure of a multicast source 100 provided in an embodiment of the present application.
- the structure of the client involved in the embodiment of the present application can refer to the relevant description of the multicast source 100, which will not be repeated later.
- the multicast source 100 may include a processor 110, an external memory interface 120, an internal memory 121, a universal serial bus (USB) interface 130, a charging management module 140, a power management module 141, a battery 142, an antenna 1, an antenna 2, a mobile communication module 150, a wireless communication module 160, an audio module 170, a speaker 170A, a receiver 170B, a microphone 170C, an earphone interface 170D, a sensor module 180, a button 190, a motor 191, an indicator 192, a camera 193, a display screen 194, and a subscriber identification module (SIM) card interface 195.
- SIM subscriber identification module
- the sensor module 180 may include a pressure sensor 180A, a gyroscope sensor 180B, an air pressure sensor 180C, a magnetic sensor 180D, an acceleration sensor 180E, a distance sensor 180F, a proximity light sensor 180G, a fingerprint sensor 180H, a temperature sensor 180J, a touch sensor 180K, an ambient light sensor 180L, a bone conduction sensor 180M, etc.
- the structure illustrated in the embodiment of the present invention does not constitute a specific limitation on the multicast source 100.
- the multicast source 100 may include more or fewer components than those shown in the figure, or combine some components, or split some components, or arrange the components differently.
- the components shown in the figure may be implemented in hardware, software, or a combination of software and hardware.
- the processor 110 may include one or more processing units, for example, the processor 110 may include an application processor (AP), a modem processor, a graphics processor (GPU), an image signal processor (ISP), a controller, a video codec, a digital signal processor (DSP), a baseband processor, and/or a neural-network processing unit (NPU), etc.
- AP application processor
- GPU graphics processor
- ISP image signal processor
- DSP digital signal processor
- NPU neural-network processing unit
- Different processing units may be independent devices or integrated in one or more processors.
- the controller can generate operation control signals according to the instruction operation code and timing signal to complete the control of instruction fetching and execution.
- the processor 110 may also be provided with a memory for storing instructions and data.
- the memory in the processor 110 is a cache memory.
- the memory can store instructions or data that have just been used or are used cyclically by the processor 110. If the processor 110 needs to use the instruction or data again, it can be directly called from the memory. This avoids repeated access, reduces the waiting time of the processor 110, and thus improves the efficiency of the system.
- the processor 110 may include one or more interfaces.
- the interface may include an inter-integrated circuit (I2C) interface, an inter-integrated circuit sound (I2S) interface, a pulse code modulation (PCM) interface, a universal asynchronous receiver/transmitter (UART) interface, a mobile industry processor interface (MIPI), a general-purpose input/output (GPIO) interface, a subscriber identity module (SIM) interface, and/or a universal serial bus (USB) interface, etc.
- I2C inter-integrated circuit
- I2S inter-integrated circuit sound
- PCM pulse code modulation
- UART universal asynchronous receiver/transmitter
- MIPI mobile industry processor interface
- GPIO general-purpose input/output
- SIM subscriber identity module
- USB universal serial bus
- the I2C interface is a bidirectional synchronous serial bus, including a serial data line (SDA) and a serial clock line (SCL).
- the processor 110 may include multiple groups of I2C buses.
- the processor 110 may be coupled to the touch sensor 180K, the charger, the flash, the camera 193, etc. through different I2C bus interfaces.
- the processor 110 may be coupled to the touch sensor 180K through the I2C interface, so that the processor 110 communicates with the touch sensor 180K through the I2C bus interface, thereby realizing the touch function of the multicast source 100.
- the I2S interface can be used for audio communication.
- the processor 110 can include multiple I2S buses.
- the processor 110 can be coupled to the audio module 170 via the I2S bus to achieve communication between the processor 110 and the audio module 170.
- the audio module 170 can transmit an audio signal to the wireless communication module 160 via the I2S interface to achieve the function of answering a call through a Bluetooth headset.
- the PCM interface can also be used for audio communication, sampling, quantizing and encoding analog signals.
- the audio module 170 and the wireless communication module 160 can be coupled via a PCM bus interface.
- the audio module 170 can also transmit audio signals to the wireless communication module 160 via the PCM interface to realize the function of answering calls via a Bluetooth headset. Both the I2S interface and the PCM interface can be used for audio communication.
- the UART interface is a universal serial data bus for asynchronous communication.
- the bus can be a bidirectional communication bus. It converts the data to be transmitted between serial communication and parallel communication.
- the UART interface is generally used to connect the processor 110 and the wireless communication module 160.
- the processor 110 communicates with the Bluetooth module in the wireless communication module 160 through the UART interface to implement the Bluetooth function.
- the audio module 170 can transmit an audio signal to the wireless communication module 160 through the UART interface to implement the function of playing music through a Bluetooth headset.
- the MIPI interface can be used to connect the processor 110 with peripheral devices such as the display screen 194 and the camera 193.
- the MIPI interface includes a camera serial interface (CSI), a display serial interface (DSI), etc.
- the processor 110 and the camera 193 communicate through the CSI interface to realize the shooting function of the multicast source 100.
- the processor 110 and the display screen 194 communicate through the DSI interface to realize the display function of the multicast source 100.
- the GPIO interface can be configured by software.
- the GPIO interface can be configured as a control signal or as a data signal.
- the GPIO interface can be used to connect the processor 110 with the camera 193, the display 194, the wireless communication module 160, the audio module 170, the sensor module 180, etc.
- the GPIO interface can also be configured as an I2C interface, an I2S interface, a UART interface, a MIPI interface, etc.
- the USB interface 130 is an interface that complies with the USB standard specification, and specifically can be a Mini USB interface, a Micro USB interface, a USB Type C interface, etc.
- the USB interface 130 can be used to connect a charger to charge the multicast source 100, and can also be used to transmit data between the multicast source 100 and peripheral devices. It can also be used to connect headphones to play audio through the headphones.
- the interface can also be used to connect other electronic devices, such as AR devices, etc.
- the interface connection relationship between the modules illustrated in the embodiment of the present invention is only for illustrative purposes and does not constitute a structural limitation on the multicast source 100.
- the multicast source 100 may also adopt different interface connection modes in the above embodiments, or a combination of multiple interface connection modes.
- the charging management module 140 is used to receive charging input from a charger.
- the charger may be a wireless charger or a wired charger.
- the charging management module 140 may receive charging input from a wired charger through the USB interface 130.
- the charging management module 140 may receive wireless charging input through a wireless charging coil of the multicast source 100. While the charging management module 140 is charging the battery 142, it may also power the electronic device through the power management module 141.
- the power management module 141 is used to connect the battery 142, the charging management module 140 and the processor 110.
- the power management module 141 receives input from the battery 142 and/or the charging management module 140, and supplies power to the processor 110, the internal memory 121, the display screen 194, the camera 193, and the wireless communication module 160.
- the power management module 141 can also be used to monitor parameters such as battery capacity, battery cycle number, battery health status (leakage, impedance), etc.
- the power management module 141 can also be set in the processor 110.
- the power management module 141 and the charging management module 140 can also be set in the same device.
- the wireless communication function of the multicast source 100 can be implemented through the antenna 1, the antenna 2, the mobile communication module 150, the wireless communication module 160, the modem processor and the baseband processor.
- Antenna 1 and antenna 2 are used to transmit and receive electromagnetic wave signals.
- Each antenna in multicast source 100 can be used to cover a single or multiple communication frequency bands. Different antennas can also be reused to improve the utilization of antennas.
- antenna 1 can be reused as a diversity antenna of a wireless local area network.
- the antenna can be used in combination with a tuning switch.
- the mobile communication module 150 can provide solutions for wireless communications including 2G/3G/4G/5G applied to the multicast source 100.
- the mobile communication module 150 can include at least one filter, a switch, a power amplifier, a low noise amplifier (LNA), etc.
- the mobile communication module 150 can receive electromagnetic waves from the antenna 1, and filter, amplify, and process the received electromagnetic waves, and transmit them to the modulation and demodulation processor for demodulation.
- the mobile communication module 150 can also amplify the signal modulated by the modulation and demodulation processor, and convert it into electromagnetic waves for radiation through the antenna 1.
- at least some of the functional modules of the mobile communication module 150 can be set in the processor 110.
- at least some of the functional modules of the mobile communication module 150 can be set in the same device as at least some of the modules of the processor 110.
- the modem processor may include a modulator and a demodulator.
- the modulator is used to modulate the low-frequency baseband signal to be sent into a medium-high frequency signal.
- the demodulator is used to demodulate the received electromagnetic wave signal into a low-frequency baseband signal.
- the demodulator then transmits the demodulated low-frequency baseband signal to the baseband processor for processing.
- the application processor outputs a sound signal through an audio device (not limited to a speaker 170A, a receiver 170B, etc.), or displays an image or video through a display screen 194.
- the modem processor may be an independent device.
- the modem processor may be independent of the processor 110 and be set in the same device as the mobile communication module 150 or other functional modules.
- the wireless communication module 160 can provide wireless communication solutions including wireless local area networks (WLAN) (such as WiFi network), bluetooth (BT), global navigation satellite system (GNSS), frequency modulation (FM), near field communication (NFC), infrared (IR) and the like applied to the multicast source 100.
- WLAN wireless local area networks
- BT bluetooth
- GNSS global navigation satellite system
- FM frequency modulation
- NFC near field communication
- IR infrared
- the wireless communication module 160 can be one or more devices integrating at least one communication processing module.
- the wireless communication module 160 receives electromagnetic waves via the antenna 2, demodulates and filters the electromagnetic wave signals, and sends the processed signals to the processor 110.
- the wireless communication module 160 can also receive the signal to be sent from the processor 110, modulate the frequency of the signal, amplify it, and convert it into electromagnetic waves for radiation through the antenna 2.
- antenna 1 of multicast source 100 is coupled to mobile communication module 150, and antenna 2 is coupled to wireless communication module 160, so that multicast source 100 can communicate with the network and other devices through wireless communication technology.
- the wireless communication technology may include global system for mobile communications (GSM), general packet radio service (GPRS), code division multiple access (CDMA), wideband code division multiple access (WCDMA), time-division code division multiple access (TD-SCDMA), long term evolution (LTE), BT, GNSS, WLAN, NFC, FM, and/or IR technology.
- the GNSS may include a global positioning system (GPS), a global navigation satellite system (GLONASS), a Beidou navigation satellite system (BDS), a quasi-zenith satellite system (QZSS) and/or a satellite based augmentation system (SBAS).
- GPS global positioning system
- GLONASS global navigation satellite system
- BDS Beidou navigation satellite system
- QZSS quasi-zenith satellite system
- SBAS satellite based augmentation system
- the multicast source 100 implements the display function through a GPU, a display screen 194, and an application processor.
- the GPU is a microprocessor for image processing, which connects the display screen 194 and the application processor.
- the GPU is used to perform mathematical and geometric calculations for graphics rendering.
- the processor 110 may include one or more GPUs that execute program instructions to generate or change display information.
- the display screen 194 is used to display images, videos, etc.
- the display screen 194 includes a display panel.
- the display panel can be a liquid crystal display (LCD), an organic light-emitting diode (OLED), an active-matrix organic light-emitting diode or an active-matrix organic light-emitting diode (AMOLED), a flexible light-emitting diode (FLEX), or a TFT-LCD.
- the multicast source 100 may include 1 or N display screens 194, where N is a positive integer greater than 1.
- the multicast source 100 can realize the shooting function through the ISP, the camera 193, the video codec, the GPU, the display screen 194 and the application processor.
- ISP is used to process the data fed back by camera 193. For example, when taking a photo, the shutter is opened, and the light is transmitted to the camera photosensitive element through the lens. The light signal is converted into an electrical signal, and the camera photosensitive element transmits the electrical signal to ISP for processing and converts it into an image visible to the naked eye. ISP can also perform algorithm optimization on the noise and brightness of the image. ISP can also optimize the exposure, color temperature and other parameters of the shooting scene. In some embodiments, ISP can be set in camera 193.
- the camera 193 is used to capture still images or videos.
- the object generates an optical image through the lens and projects it onto the photosensitive element.
- the photosensitive element can be a charge coupled device (CCD) or a complementary metal oxide semiconductor (CMOS) phototransistor.
- CMOS complementary metal oxide semiconductor
- the photosensitive element converts the optical signal into an electrical signal, and then transmits the electrical signal to the ISP to be converted into a digital image signal.
- the ISP outputs the digital image signal to the DSP for processing.
- the DSP converts the digital image signal into an image signal in a standard RGB, YUV or other format.
- the multicast source 100 may include 1 or N cameras 193, where N is a positive integer greater than 1.
- the digital signal processor is used to process digital signals, and can process not only digital image signals but also other digital signals. For example, when the multicast source 100 is selecting a frequency point, the digital signal processor is used to perform Fourier transform on the frequency point energy.
- the video codec is used to compress or decompress digital video.
- the multicast source 100 can support one or more video codecs. In this way, the multicast source 100 can play or record videos in multiple coding formats, such as moving picture experts group (MPEG) 1, MPEG2, MPEG3, MPEG4, etc.
- MPEG moving picture experts group
- the NPU is a neural network (NN) computing processor.
- NN neural network
- the NPU can quickly process input information and continuously self-learn.
- the NPU can realize applications such as intelligent cognition of the multicast source 100, such as image recognition, face recognition, voice recognition, and text understanding.
- the internal memory 121 may include one or more random access memories (RAM) and one or more non-volatile memories (NVM).
- RAM random access memories
- NVM non-volatile memories
- Random access memory may include static random-access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM, for example, the fifth generation DDR SDRAM is generally referred to as DDR5 SDRAM), etc.; non-volatile memory may include disk storage devices and flash memory (flash memory).
- SRAM static random-access memory
- DRAM dynamic random access memory
- SDRAM synchronous dynamic random access memory
- DDR SDRAM double data rate synchronous dynamic random access memory
- non-volatile memory may include disk storage devices and flash memory (flash memory).
- Flash memory can be divided into NOR FLASH, NAND FLASH, 3D NAND FLASH, etc. according to the operating principle; can be divided into single-level cell (SLC), multi-level cell (MLC), triple-level cell (TLC), quad-level cell (QLC), etc. according to the storage unit potential level; can be divided into universal flash storage (UFS), embedded multi media Card (eMMC), etc. according to the storage specification.
- SLC single-level cell
- MLC multi-level cell
- TLC triple-level cell
- QLC quad-level cell
- UFS universal flash storage
- eMMC embedded multi media Card
- the random access memory can be directly read and written by the processor 110, and can be used to store executable programs (such as machine instructions) of the operating system or other running programs, and can also be used to store user and application data, etc.
- the non-volatile memory may also store executable programs and user and application data, etc., and may be loaded into the random access memory in advance for direct reading and writing by the processor 110 .
- the external memory interface 120 can be used to connect to an external non-volatile memory to expand the storage capacity of the multicast source 100.
- the external non-volatile memory communicates with the processor 110 through the external memory interface 120 to implement a data storage function. For example, files such as music and videos are stored in the external non-volatile memory.
- the multicast source 100 can implement audio functions such as music playing and recording through the audio module 170, the speaker 170A, the receiver 170B, the microphone 170C, the earphone interface 170D, and the application processor.
- the audio module 170 is used to convert digital audio information into analog audio signal output, and is also used to convert analog audio input into digital audio signals.
- the audio module 170 can also be used to encode and decode audio signals.
- the audio module 170 can be arranged in the processor 110, or some functional modules of the audio module 170 can be arranged in the processor 110.
- the speaker 170A also called a "horn" is used to convert audio electrical signals into sound signals.
- the receiver 170B also called a “handset”, is used to convert audio electrical signals into sound signals.
- Microphone 170C also called “microphone” or “microphone”, is used to convert sound signals into electrical signals.
- the earphone jack 170D is used to connect a wired earphone.
- the pressure sensor 180A is used to sense the pressure signal and can convert the pressure signal into an electrical signal.
- the pressure sensor 180A can be disposed on the display screen 194.
- the gyroscope sensor 180B may be used to determine the motion posture of the multicast source 100.
- the angular velocity of the multicast source 100 around three axes ie, x, y, and z axes
- the air pressure sensor 180C is used to measure air pressure.
- the magnetic sensor 180D includes a Hall sensor.
- the acceleration sensor 180E can detect the magnitude of acceleration of the multicast source 100 in various directions (generally three axes). When the multicast source 100 is stationary, the magnitude and direction of gravity can be detected. It can also be used to identify the posture of the terminal device.
- the distance sensor 180F is used to measure the distance.
- the multicast source 100 can measure the distance by infrared or laser.
- the proximity light sensor 180G may include, for example, a light emitting diode (LED) and a light detector, such as a photodiode.
- the light emitting diode may be an infrared light emitting diode.
- the ambient light sensor 180L is used to sense the brightness of the ambient light.
- the multicast source 100 can adaptively adjust the brightness of the display screen 194 according to the sensed brightness of the ambient light.
- the fingerprint sensor 180H is used to collect fingerprints.
- the temperature sensor 180J is used to detect temperature.
- the multicast source 100 uses the temperature detected by the temperature sensor 180J to execute a temperature processing strategy.
- the touch sensor 180K is also called a "touch device”.
- the touch sensor 180K can be set on the display screen 194.
- the touch sensor 180K and the display screen 194 form a touch screen, also called a "touch screen”.
- the touch sensor 180K is used to detect touch operations acting on or near it.
- the touch sensor can pass the detected touch operation to the application processor to determine the type of touch event.
- Visual output related to the touch operation can be provided through the display screen 194.
- the touch sensor 180K can also be set on the surface of the multicast source 100, which is different from the position of the display screen 194.
- Bone conduction sensor 180M can obtain vibration signals.
- the button 190 includes a power button, a volume button, etc.
- the button 190 may be a mechanical button or a touch button.
- the multicast source 100 may receive a button input and generate a key signal input related to the user settings and function control of the multicast source 100.
- Motor 191 can generate vibration prompts. Motor 191 can be used for incoming call vibration prompts, and can also be used for touch vibration feedback.
- the indicator 192 may be an indicator light, which may be used to indicate the charging status, power changes, messages, missed calls, notifications, etc.
- the SIM card interface 195 is used to connect a SIM card.
- the computer program product includes one or more computer instructions.
- the computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device.
- the computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium.
- the computer instructions can be transmitted from one website site, computer, server or data center to another website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) means.
- the computer-readable storage medium can be any available medium that can be accessed by a computer or a data storage device such as a server or data center that includes one or more available media integrated.
- the available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid state drive (SSD)), etc.
- SSD solid state drive
- the processes can be completed by computer programs to instruct related hardware, and the programs can be stored in computer-readable storage media.
- the programs can include the processes of the above-mentioned method embodiments.
- the aforementioned storage media include: ROM or random access memory RAM, magnetic disk or optical disk and other media that can store program codes.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
La présente demande divulgue un procédé de communication multidiffusion. Le procédé de communication multidiffusion est appliqué à un système de communication multidiffusion, et le système de communication multidiffusion comprend une source de multidiffusion et au moins un client, par exemple, un premier client. Le procédé comprend les étapes suivantes : une source de multidiffusion détermine une adresse de multidiffusion et une clé de multidiffusion ; la source de multidiffusion envoie un premier message Bluetooth au premier client, le message comprenant l'adresse de multidiffusion et la clé de multidiffusion ; le premier client envoie un second message Bluetooth à la source de multidiffusion, de façon à indiquer que le premier client confirme l'assemblage d'un groupe de multidiffusion ; le premier client configure, en tant qu'adresse MAC de la source de multidiffusion, une adresse source correspondant à la clé de multidiffusion ; la source de multidiffusion envoie, au moyen du Wi-Fi et de manière multidiffusion, un premier paquet de multidiffusion qui est chiffré au moyen de la clé de multidiffusion, une adresse source dans un en-tête MAC du premier paquet de multidiffusion étant l'adresse MAC de la source de multidiffusion, et une adresse de destination étant l'adresse de multidiffusion ; sur la base de l'adresse de multidiffusion, le premier client surveille le premier paquet de multidiffusion ; et le premier client analyse le premier paquet de multidiffusion à l'aide de la clé de multidiffusion. De cette manière, une transmission de multidiffusion à grande échelle sans connexion Wi-Fi peut être réalisée.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202211304468.0A CN117939406A (zh) | 2022-10-24 | 2022-10-24 | 组播通信方法及相关装置 |
| CN202211304468.0 | 2022-10-24 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024088173A1 true WO2024088173A1 (fr) | 2024-05-02 |
Family
ID=90751205
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2023/125653 Ceased WO2024088173A1 (fr) | 2022-10-24 | 2023-10-20 | Procédé de communication multidiffusion et appareil associé |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN117939406A (fr) |
| WO (1) | WO2024088173A1 (fr) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119675918A (zh) * | 2024-11-28 | 2025-03-21 | 矩阵时光数字科技有限公司 | 一种全域量子安全组播信息传输方法 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN1929638A (zh) * | 2006-10-20 | 2007-03-14 | 中兴通讯股份有限公司 | 一种无线局域网ip组播帧传输的组播成员管理方法 |
| CN101145900A (zh) * | 2006-09-15 | 2008-03-19 | 华为技术有限公司 | 组播方法和组播系统以及组播设备 |
| US20080273700A1 (en) * | 2007-05-04 | 2008-11-06 | Conexant Systems, Inc. | Systems and Methods For Multicast Retransmission over a Secure Wireless LAN |
| CN101702672A (zh) * | 2009-11-04 | 2010-05-05 | 华为技术有限公司 | 组播数据报文转发方法和转发装置 |
| CN109067578A (zh) * | 2018-07-31 | 2018-12-21 | 杭州迪普科技股份有限公司 | 一种组播快速切换的方法和装置 |
| CN109842854A (zh) * | 2017-11-29 | 2019-06-04 | 华为技术有限公司 | 一种报文组播、报文广播方法及设备 |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2003069547A (ja) * | 2001-08-29 | 2003-03-07 | Fujitsu Ltd | マルチキャスト通信システム |
| CN108574935B (zh) * | 2017-03-09 | 2020-12-22 | 华为技术有限公司 | 一种组播业务处理方法及接入点 |
| CN114679708A (zh) * | 2020-12-25 | 2022-06-28 | 华为技术有限公司 | 通信方法、系统及电子设备 |
| CN115037607B (zh) * | 2022-07-11 | 2024-03-22 | 上海庆科信息技术有限公司 | 蓝牙网状网设备的配置方法、装置、存储介质及系统 |
-
2022
- 2022-10-24 CN CN202211304468.0A patent/CN117939406A/zh active Pending
-
2023
- 2023-10-20 WO PCT/CN2023/125653 patent/WO2024088173A1/fr not_active Ceased
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN101145900A (zh) * | 2006-09-15 | 2008-03-19 | 华为技术有限公司 | 组播方法和组播系统以及组播设备 |
| CN1929638A (zh) * | 2006-10-20 | 2007-03-14 | 中兴通讯股份有限公司 | 一种无线局域网ip组播帧传输的组播成员管理方法 |
| US20080273700A1 (en) * | 2007-05-04 | 2008-11-06 | Conexant Systems, Inc. | Systems and Methods For Multicast Retransmission over a Secure Wireless LAN |
| CN101702672A (zh) * | 2009-11-04 | 2010-05-05 | 华为技术有限公司 | 组播数据报文转发方法和转发装置 |
| CN109842854A (zh) * | 2017-11-29 | 2019-06-04 | 华为技术有限公司 | 一种报文组播、报文广播方法及设备 |
| CN109067578A (zh) * | 2018-07-31 | 2018-12-21 | 杭州迪普科技股份有限公司 | 一种组播快速切换的方法和装置 |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN119675918A (zh) * | 2024-11-28 | 2025-03-21 | 矩阵时光数字科技有限公司 | 一种全域量子安全组播信息传输方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN117939406A (zh) | 2024-04-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10693969B2 (en) | Electronic device using logical channels for communication | |
| CN115334138B (zh) | Quic数据传输方法、装置、客户端及服务端 | |
| WO2021175214A1 (fr) | Procédé de commande de connexion d'écran de projection et dispositif électronique | |
| EP4132098A1 (fr) | Procédé de mise en oeuvre d'un service wifi entre homologues, et dispositif associé | |
| WO2022135341A1 (fr) | Procédé et système de communication, et dispositif électronique | |
| JP2019533958A (ja) | プロトコル・データ・ユニット(pdu)パケットを生成するための方法およびデバイス | |
| WO2019019032A1 (fr) | Procédé et appareil pour configurer un paquet de données de liaison descendante | |
| WO2022143508A1 (fr) | Procédé de transmission de données dans un champ proche, dispositif et système | |
| WO2022188813A1 (fr) | Procédé et système de communication bluetooth, et dispositif électronique | |
| WO2021138914A1 (fr) | Procédé et appareil d'indication de transmission de données, dispositif de communication et support de stockage | |
| WO2021244456A1 (fr) | Procédé de résolution d'adresse inverse et dispositifs électroniques | |
| WO2023143300A1 (fr) | Procédé et système de sélection de tranche, et appareil associé | |
| WO2021114244A1 (fr) | Procédé et appareil de traitement de données, dispositif de communication, et support de stockage | |
| WO2024088173A1 (fr) | Procédé de communication multidiffusion et appareil associé | |
| WO2023273464A1 (fr) | Procédé de transmission de données et dispositif électronique | |
| WO2022267739A1 (fr) | Procédé de détection de connexion, client et serveur | |
| WO2024240191A1 (fr) | Procédé de balayage en champ proche et appareil associé | |
| EP4354917A1 (fr) | Procédé de traitement de données et dispositif électronique | |
| WO2023051204A1 (fr) | Procédé d'interconnexion de dispositifs, dispositif électronique et support de stockage | |
| WO2023030386A1 (fr) | Procédé de transmission de données, dispositif électronique et appareil | |
| US12543230B2 (en) | Method for implementing Wi-Fi peer-to-peer service and related device | |
| JP7119052B2 (ja) | プロトコル・データ・ユニット(pdu)パケットを生成するための方法およびデバイス | |
| US20240223786A1 (en) | Video transmission method and electronic device | |
| WO2021007791A1 (fr) | Procédé et appareil de configuration de ressources, dispositif de communication et support d'enregistrement | |
| CN113812201B (zh) | 数据传输方法、装置及通信设备 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23881751 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 23881751 Country of ref document: EP Kind code of ref document: A1 |