IP Library Granted Patent US 8,386,614
Granted Patent B2
US 8,386,614 · App. 11/807,130 · Granted Feb 26, 2013

Network connection manager

Inventors: Lifeng Wang (Beijing, CN); Jian Wang (Beijing, CN); Yang Li (Beijing, CN); Yunxin Liu (Beijing, CN)
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,386,614
App. No.
11/807,130
Granted
Feb 26, 2013
Kind
B2
Abstract

Described herein is technology for, among other things, facilitating network communications. It involves various techniques for facilitating network communications by creating virtual named channels which allow applications and thereby users to communicate over a wide variety of networks interfaces without requiring specific knowledge or programming corresponding to the underlying network. Thus, the technology may provide a uniform interface to handle network connections on different types of computing devices and over different types of networks.

Claims (43)

1. A method for performing network communication, the method comprising:

creating a plurality of virtual named channels on each of a plurality of network interfaces, wherein said plurality of virtual named channels allow network communication over the plurality of network interfaces using only a name of the virtual named channels and without requiring network specific information;

listening on at least one of the plurality of virtual named channels;

sending a broadcast message announcing said plurality of virtual named channels; and

accepting connections on at least one of said plurality of virtual named channels.

2. The method as recited in claim 1 further comprising:

selecting an optimal connection for communication via one of said plurality of virtual named channels when there is more than one network interface available for the virtual named channel.

3. The method as recited in claim 1 further comprising:

registering a plurality of connection modules corresponding to the plurality of network interfaces, thereby allowing a network connection manager access to functions in each of the connection modules.

4. The method as recited in claim 1

wherein each virtual named channel can be operated in a blocking mode or a non-blocking mode.

5. The method as recited in claim 1

wherein each virtual named channel can be operated using a messaged based or byte-stream based format.

6. The method as recited in claim 1 further comprising:

assigning each of said virtual named channels to one or more groups such that each virtual named channel created by a single network connection manager instance is assigned to the same group.

7. The method as recited in claim 1 further comprising:

verifying a group assignment prior to accepting a connection to a virtual named channel.

8. A method for performing network communication, comprising:

creating a virtual named channel, the virtual named channel configured to allow one or more applications to communicate over a plurality of network interfaces using only a name of the virtual named channel and without requiring network specific information;

sending a broadcast message announcing said virtual named channel;

establishing a connection between two computing devices by way of the virtual named channel; and

performing communications between the two computing devices over said virtual named channel.

9. The method of claim 8 further comprising:

reporting a status of the connection while a connection to the virtual named channel is being attempted.

10. The method of claim 8 further comprising:

sending group information over said connection, the group information comprising a group name and password used to allow connection to the virtual named channel by a group of computers.

11. The method of claim 8 further comprising:

disconnecting from said virtual named channel by making an application programming interface call when the virtual named channel is no longer needed.

12. The method of claim 8 further comprising:

releasing resources related to said virtual named channel by releasing a channel instance allocated when the connection between two computing devices by way of the virtual named channel was established.

13. The method of claim 10 further comprising:

receiving a response based on said group information, the response comprising an accept code if a computer attempting to establish a connection to the virtual named channel provides correct group information.

14. A computer storage media that is not a signal having computer-executable instructions stored thereupon which, when executed by a computer, cause the computer to:

create a plurality of virtual named channels on each of a plurality of connection interfaces, wherein said plurality of virtual named channels allow network communication over a plurality of network interfaces using only a name of the virtual named channels and without requiring network specific information;

listen on at least one of the plurality of virtual named channels;

send a broadcast message announcing said plurality of virtual named channels;

select an optimal connection for communication via said plurality of virtual named channels;

maintain a plurality of information related to the plurality of network interfaces; and

accept connections on at least one of said plurality of virtual named channels.

15. The computer storage media of claim 14 , having further computer-executable instructions stored thereupon which, when executed by the computer, cause the computer to register a plurality of connection modules corresponding to the plurality of network interfaces, thereby allowing a network connection manager access to functions in each of the connection modules.

16. The computer storage media of claim 15 , wherein each virtual named channel can be operated in a block mode or in a non-blocking mode.

17. The computer storage media of claim 16 , having further computer-executable instructions stored thereupon which, when executed by the computer, cause the computer to assign each of said virtual named channels to one or more groups such that each virtual named channel created by a single network connection manager instance has the same group information.

18. The computer storage media of claim 17 , having further computer-executable instructions stored thereupon which, when executed by the computer, cause the computer to verify a group assignment prior to accepting a connection to a virtual named channel.

Assignments (3)
MERGER AND CHANGE OF NAME Recorded May 29, 2026
From: SKYFISH CORPORATION; SKYFISH, LLC
To: SKYFISH CORPORATION
Reel/Frame 074792/0485 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2007
From: WANG, LIFENG; WANG, JIAN; LI, YANG; LIU, YUNXIN
To: MICROSOFT CORPORATION
Reel/Frame 019622/0744 →
Continuity (1)
Related Publication 20080294778A1 · Nov 27, 2008