IP Library › Granted Patent US 8,411,608
Granted Patent B2
US 8,411,608 · App. 12/714,360 · Granted Apr 2, 2013

Efficient and reliable multicast over a Wi-Fi network

Inventors: Ranveer Chandra (Kirkland, WA); Sandeep P. Karanth (Bangalore, IN); Thomas Moscibroda (Redmond, WA); Vishnu Navda (Bangalore, IN); Jitendra D. Padhye (Redmond, WA); Ramachandran Ramjee (Bangalore, IN); Lenin Ravindranath Sivalingam (Cambridge, MA)
Assignee: Microsoft Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,411,608
App. No.
12/714,360
Granted
Apr 2, 2013
Kind
B2
Abstract

A “Wi-Fi Multicaster” provides a practical and efficient Wi-Fi multicast system for environments having potentially large numbers of Wi-Fi clients. Significantly, the Wi-Fi Multicaster does not require any changes to the 802.11 protocol, or to the underlying Wi-Fi infrastructure. In various embodiments, the Wi-Fi Multicaster uses pseudo-broadcast, and augments it with destination control, association control and optional proactive FEC (forward error correction) to improve multicast performance. More specifically, the Wi-Fi Multicaster system converts multicast packets to targeted unicast transmissions. To minimize the amount of airtime consumed, the Wi-Fi Multicaster uses destination control in combination with various algorithms for association control. Further, in various embodiments, the Wi-Fi Multicaster includes an adaptive, proactive FEC scheme to reduce overall packet losses. Finally, to overcome the challenges posed by encryption protocols such as 802.1x, the Wi-Fi Multicaster uses a “virtual multicast interface” that allows clients to “share” a common key for each multicast.

Claims (44)

1. A computer-readable memory, having computer executable instructions stored therein for minimizing access point airtime consumed by multicast traffic in an 802.11-based Wi-Fi network, said instructions comprising causing a server computer to:

evaluate multicast subscription requests of a plurality of clients in wireless communication with one or more access points in the Wi-Fi network;

subscribe once to each unique multicast corresponding to each unique multicast subscription request on behalf of one or more multicast groups comprising one or more of the clients;

evaluate each client to perform an iterative “association control” process to assign each client to one of the access points, and sending the corresponding assignments to each client so that each client can associate with its assigned access point;

for each multicast group, performing a “destination control” process for identifying a single client having a lowest transmission rate with its assigned access point, and designating each such client as a “target client”;

converting all subscribed multicasts to unicasts; and

providing the unicasts to each access point having any clients subscribed to the corresponding multicast, and directing the access points to transmit the unicasts only to corresponding target clients;

wherein each client includes computer executable instructions for causing each client to:

receive each unicast transmissions corresponding to any multicast to which each client is subscribed;

decode the received unicasts using a shared security session key of the corresponding target client; and

convert the decoded unicasts to multicasts for local playback on each client.

2. The computer-readable memory of claim 1 wherein each client includes computer executable instructions for causing each client to generate a unique security session key for each multicast subscribed to by each client, and to transmit each generated security session key to the server via an access point associated with each client; and wherein all security session keys for each unique multicast are distributed by the server to all other clients subscribed to that unique multicast such that each corresponding client has a copy of the shared security session key of the corresponding target client.

3. The computer-readable memory of claim 1 wherein each client includes computer executable instructions for causing each client other than the target client for each multicast group to receive corresponding unicast transmissions by listening to those transmissions in promiscuous mode.

4. The computer-readable memory of claim 1 wherein the server further includes computer executable instructions for adding FEC packets to the unicasts provided to the access points for transmission to the target clients.

5. The computer-readable memory of claim 1 wherein each client further includes computer executable instructions for causing each client to periodically provide feedback information to the server, and wherein the server further includes computer executable instructions for responding to the client feedback to by periodically repeating the “association control” process and the “destination control” process.

6. A method for minimizing access point airtime consumed by multicast traffic in an 802.11-based Wi-Fi network, comprising steps for:

providing at least one server in communication with a plurality of wireless access points in an 802.11-based Wi-Fi network;

providing a plurality of clients capable of wireless communication with one or more of the access points;

on each client, intercepting each client generated multicast subscription request and sending each intercepted request to the at least one server via an initial access point associated with each client;

on the at least one server, subscribing to each unique multicast subscription request on behalf of a multicast group comprising one or more of the clients;

on the at least one server, performing an iterative “association control” process to assign each client to one of the access points, and sending the corresponding access point assignments to each client so that each client can associate with its assigned access point, said assignments operating to minimize airtime consumed by each access point;

on the at least one server, for each multicast group performing a “destination control” process to identify a single client having a lowest transmission rate with its assigned access point, and designating each such client as a “target client”;

on the at least one server, converting each multicast to a unicast and providing each resulting unicast to each access point having assigned clients subscribed to the corresponding multicast group, and wirelessly transmitting each such unicast to each corresponding target client;

on each target client for each multicast group, directly receiving each corresponding unicast transmission;

on each other client for each multicast group, receiving packets of each corresponding unicast transmission intended for target clients by listening to those transmissions in a “promiscuous mode”; and

on all clients, decoding received unicasts, converting the decoded unicasts to multicasts and providing local playback of the multicasts.

7. The method of claim 6 wherein each client includes a “virtual multicast interface” for each multicast subscribed to by that client, and wherein each “virtual multicast interface” includes a corresponding unique security session key.

8. The method of claim 6 wherein the at least one server adds FEC packets to the unicasts intended for one or more of the target clients.

9. The method of claim 6 further comprising steps for periodically repeating the destination control process for identifying the target clients for each access point.

10. The method of claim 6 further comprising steps for periodically repeating the association control process for assigning each client to one of the access points.

11. The method of claim 6 further comprising steps for repeating the association control process for assigning each client to one of the access points whenever any client joins or leaves any multicast group.

12. The method of claim 7 wherein each client shares each security session key with the at least one server, and wherein the at least one server distributes, via each corresponding access point, a copy of each security session key to each other client subscribed to the same multicast corresponding to the security session key of any other client.

13. The method of claim 12 wherein clients receiving unicast transmissions in promiscuous mode decode those transmissions using a corresponding one of the shared security session keys.

14. A system for minimizing access point airtime consumed by multicast traffic in a wireless network, comprising:

a subscription device on a server for evaluating multicast subscription requests of a plurality of clients in wireless communication with one or more access points in the wireless network, said subscription device acting to subscribe once to each unique multicast corresponding to each unique multicast subscription request on behalf of one or more multicast groups comprising one or more of the clients;

an association control device on the server for evaluating each client to perform an iterative “association control” process to assign each client to one of the access points, and sending the corresponding access point assignments to each client so that each client can associate with its assigned access point;

a destination control device on the server for identifying a single client, for each multicast group, having a lowest transmission rate with its assigned access point, and designating each such client as a “target client”;

a multicast transmission device on the server for converting all multicasts to unicasts, providing the unicasts to one or more of the access points, and directing the access points to transmit the unicasts only to corresponding target clients; and

a decoding device on each client, for each multicast group, for receiving the corresponding unicast transmissions, decoding the received unicasts using a shared security session key of the corresponding target client, and converting the decoded unicasts to multicasts for local playback on each client.

15. The system of claim 14 wherein each client further includes a “virtual multicast interface” device for generating a unique security session key for each multicast subscribed to by each client, and wherein: each security session key generated by each client is transmitted to the server via an access point associated with each client; and wherein all security session keys for each unique multicast are distributed by the server to all other clients subscribed to that unique multicast such that each corresponding client has a copy of the shared security session key of the corresponding target client.

16. The system of claim 14 wherein all clients other than the target client for each multicast group receive corresponding unicast transmissions by listening to those transmissions in promiscuous mode.

17. The system of claim 14 wherein the server further includes a device for adding FEC packets to the unicasts intended for one or more of the target clients.

18. The system of claim 14 wherein the destination control process for identifying the target clients for each access point is periodically repeated in response to feedback information provided by one or more of the clients to the server via the access point associated with each such client.

19. The system of claim 14 wherein the association control process for assigning each client to one of the access points is periodically repeated in response to feedback information provided by one or more of the clients to the server via the access point associated with each such client.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034564/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2010
From: MOSCRIBODA, THOMAS; NAVADA, VISHNU; RAMJEE, RAMACHANDRAN; KARANTH, SANDEEP P.; SIVALINGAM, LENIN RAVINDRANATH; PADHYE, JITENDRA D.; CHANDRA, RANVEER
To: MICROSOFT CORPORATION
Reel/Frame 024040/0203 →
Continuity (1)
Related Publication 20110211517A1 · Sep 1, 2011