US 7,603,473 B2
Background network bandwidth sharing behind gateway devices
Anna Magdalena Hester, Redmond, Wash. (US); Barbara Harder, Kirkland, Wash. (US); Edward Francis Reus, Woodinville, Wash. (US); Kancheng Cao, Bothell, Wash. (US); Mahmood Ahmed Dhalla, Sammamish, Wash. (US); Mike Zoran, Redmond, Wash. (US); Narayana Mahankali, Bellevue, Wash. (US); and Jeffrey S. Roberts, North Bend, Wash. (US)
Assigned to Microsoft Corporation, Redmond, Wash. (US)
Filed on Jul. 15, 2005, as Appl. No. 11/182,976.
Prior Publication US 2007/0016688 A1, Jan. 18, 2007
Int. Cl. G06F 15/16 (2006.01)
U.S. Cl. 709—232  [709/226; 709/238; 370/401; 370/468] 17 Claims
OG exemplary drawing
 
1. At a computer system, the computer system including a processor and system memory, the computer system connected to a local network along with one or more other computer systems, the computer systems on the local network sharing a shared gateway situated between the local network and a remote network, the shared gateway providing a link from the local network to the remote network such that communication from the local network to any computer systems on the remote network passes through the shared gateway, the shared gateway having a total bandwidth capacity that the shared gateway can use to transfer data from the local network to the remote network, data transfers through the shared gateway consuming a portion of the total bandwidth capacity such that the available shared bandwidth through the shared gateway is reduced during a data transfer, the available shared bandwidth shared between the computer systems connected to the local network, a method for adaptively adjusting the transfer rate used for background transfer of a file through the shared gateway in response to corresponding changes in available shared bandwidth at the shared gateway so as to use leftover bandwidth, the method comprising acts of:
determining the total bandwidth capacity available at the shared gateway;
initiating background transfer of a file between the computer system and the remote network;
at each interval in a periodic rate, the periodic rate including at least a first interval and a second interval, the second interval separated by a period of time of the periodic rate from the first interval:
querying the shared gateway for statistics information;
receiving statistics information on the actual shared bandwidth consumption for data transfers over the shared gateway, the shared bandwidth consumption divided between foreground bandwidth consumption across the shared gateway and background bandwidth consumption across the shared gateway;
determining an amount of background bandwidth consumed by the background transfer of the file based on the background data transfer rate for the file;
comparing the total bandwidth capacity and actual shared bandwidth consumption for data transfers over the shared gateway to estimate leftover bandwidth that can be consumed without causing the actual shared bandwidth consumption to exceed a predetermined threshold; and
determining local network bandwidth consumption using local network interfaces for the one or more other computer systems;
comparing the determined local network bandwidth consumption and the actual shared bandwidth consumption across the shared gateway;
based upon the comparison of the total bandwidth capacity and the actual shared bandwidth consumption and upon the comparison of the determined local network bandwidth consumption and the actual shared bandwidth consumption, the processor using the determined local bandwidth or the actual shared bandwidth consumption to adjusting the background data transfer rate for the background transfer of the file to consume the leftover bandwidth while mitigating interference with other data transfers across the shared gateway.