US9762508B2ActiveUtilityA1

Relay optimization using software defined networking

Assignee: MICROSOFT TECHNOLOGY LICENSING LLCPriority: Oct 2, 2014Filed: Oct 2, 2014Granted: Sep 12, 2017
Est. expiryOct 2, 2034(~8.2 yrs left)· nominal 20-yr term from priority
Inventors:Matthew Kaufman
H04L 67/1074H04L 41/04H04L 45/42H04L 67/104H04L 67/42H04L 61/2589H04L 49/15H04L 61/2575H04L 45/38H04L 61/2507H04L 41/045H04L 41/40H04L 61/2503
81
PatentIndex Score
5
Cited by
47
References
25
Claims

Abstract

Various embodiments provide a system for modifying a channel binding in order to relay packets between a relay client and a peer in a peer-to-peer (P2P) communication event across a network. A relay server receives a request to bind a channel in order to relay the packets for the communication event. The relay server creates requirements for a communication path. The relay server sends the requirements to a Software Defined Networking (SDN) controller. The SDN controller in turn creates and installs flows and flow tables in SDN switches to relay the packets across the network for the communication event.

Claims

exact text as granted — not AI-modified
What is claimed is: 
     
       1. A method of relaying packets in a network for a communication event, the method comprising:
 receiving a request from a relay client to bind a channel to a peer for the communication event; 
 creating requirements for the channel to relay the packets for a software defined networking (SDN) controller, based on the received channel bind request; 
 sending the created requirements to the SDN controller, effective to enable the SDN controller to configure one or more SDN switches to relay the packets in the communication event without requiring participation of a relay server to relay the packets; and 
 sending a response to the relay client indicating the result of the channel bind request. 
 
     
     
       2. The method of  claim 1 , wherein the channel bind request comprises a channel number and a transport address for the peer. 
     
     
       3. The method of  claim 1 , wherein said configuring the one or more SDN switches comprises sending flows and flow tables, the flows and flow tables based on the created requirements, to the one or more SDN switches effective to configure the one or more SDN switches to relay the packets in the communication event. 
     
     
       4. The method of  claim 3 , wherein the relaying the packets includes one of the one or more SDN switches removing header fields of a channel data message. 
     
     
       5. The method of  claim 3 , wherein the relay client uses a modified relay protocol, the modified relay protocol comprising sending packets in the communication event without the header fields of a channel data message. 
     
     
       6. The method of  claim 1 , wherein the created requirements comprise one or more of a destination address, a destination port, a source address, a source port, or a differentiated service code point (DSCP) value. 
     
     
       7. The method of  claim 1 , wherein binding the channel expires after a period of time, the method further comprising:
 receiving a second request from the relay client to bind the channel to the peer; and 
 sending a message to the SDN controller, effective to enable the SDN controller to refresh the configuration of the one or more SDN switches in order to continue relaying packets in the communication event. 
 
     
     
       8. The method of  claim 1 , wherein the receiving the request or the sending the created requirements are performed using authentication. 
     
     
       9. A system for relaying packets in a network for a communication event, the system comprising:
 a relay client; and 
 one or more software defined networking (SDN) switches configured to relay the packets for the communication event such that the packets are not relayed by a relay server, the one or more SDN switches further configured to:
 receive a packet for the communication event from the relay client; 
 inspect one or more fields in the received packet; and 
 responsive to determining a match between the one or more fields in the packet and one or more flows installed in the one or more SDN switches, relay the received packet in the communication event. 
 
 
     
     
       10. The system of  claim 9 , further comprising:
 the relay server, configured to:
 receive a channel bind request from the relay client; 
 create requirements for the channel binding to relay the packets, based on the received channel bind request; 
 send the created requirements to an SDN controller; 
 send a response to the relay client indicating the result of the channel bind request; and 
 the SDN controller configured to: 
 receive the created requirements from the relay server; 
 create one or more flows, based on the received requirements; and 
 install the created flows in the one or more SDN switches, effective to enable the one or more SDN switches to relay packets in the communication event. 
 
 
     
     
       11. The system of  claim 10 , wherein a single network host includes the relay server and the SDN controller. 
     
     
       12. The system of  claim 9 , wherein the relay client uses a modified relay protocol, the modified relay protocol comprising sending packets in the communication event without the header fields of a channel data message. 
     
     
       13. The system of  claim 9 , wherein the fields comprise one or more of a destination address, a destination port, a source address, a source port, or a differentiated service code point (DSCP) value. 
     
     
       14. The system of  claim 9 , further comprising:
 a signaling server configured to:
 insert a candidate transport address for a forwarding path into a candidate list of transport addresses being sent to the relay client for use with a connectivity establishment protocol for the communication event; and 
 an SDN controller configured to: 
 define one or more flows for the forwarding path that correspond to the inserted candidate transport address for the forwarding path; and 
 install the defined flows in the one or more SDN switches, effective to enable the SDN switches to relay the packets in the communication event. 
 
 
     
     
       15. A software defined networking (SDN) switch configured to perform operations comprising:
 receiving one or more flows specifying operations to relay packets from a relay client to a peer device in a communication event without the packets being relayed by a relay server; 
 receiving a packet from the relay client; 
 executing the specified operations to determine that one or more fields in the received packet matches one of the one or more flows; and 
 responsive to the one or more fields in the received packet matching, relaying the packet to the peer device. 
 
     
     
       16. The SDN switch of  claim 15 , further configured to perform operations comprising:
 determining that the one or more fields in the received packet do not match any of the one or more flows; 
 responsive to the determining, providing an indication of the determination to an SDN controller, the indication effective to enable the SDN controller to transmit one or more additional flows to the SDN switch; 
 receiving the one or more additional flows from the SDN controller; 
 determining, using the one or more additional flows, that the one or more fields in the received packet matches one of the one or more additional flows; and 
 responsive to the one or more fields in the received packet matching, relaying the packet to the peer device. 
 
     
     
       17. The SDN switch of  claim 16 , wherein the packet with one or more fields determined not to match the one or more flows includes a channel data message. 
     
     
       18. The SDN switch of  claim 17 , wherein the SDN switch is further configured to remove header fields of the channel data message from the packet before relaying the packet. 
     
     
       19. The SDN switch of  claim 15 , wherein the one or more fields comprise one or more of a destination address, a destination port, a source address, a source port, or a differentiated service code point (DSCP) value. 
     
     
       20. The SDN switch of  claim 18  wherein the header fields of the channel data message include one or more of a channel number or a length of application data. 
     
     
       21. A computer-implemented method comprising:
 receiving one or more flows specifying operations to relay packets in a communication event without the packets being relayed by a relay server; 
 receiving a packet from a relay client; 
 inspecting one or more fields in the received packet; 
 responsive to determining a match between the one or more fields in the received packet and one of the one or more flows, relaying the packet in the communication event. 
 
     
     
       22. The method of  claim 21 , further comprising:
 determining that the one or more fields in the received packet do not match any of the one or more flows; 
 responsive to the determining, providing an indication of the determination to a software defined networking (SDN) controller; 
 receiving one or more additional flows from the SDN controller; 
 determining, using the one or more additional flows, that one or more fields in the received packet matches one of the one or more additional flows; and 
 responsive to the one or more fields in the received packet matching, relaying the packet in the communication event. 
 
     
     
       23. The method of  claim 21 , said relaying the packet comprising removing header fields of a channel data message from the packet before relaying the packet. 
     
     
       24. The method of  claim 21 , wherein the packet does not include header fields of a channel data message. 
     
     
       25. The method of  claim 21 , wherein the fields include one or more of a destination address, a destination port, a source address, a source port, or a differentiated service code point (DSCP) value.

Join the waitlist — get patent alerts

Track US9762508B2 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.