Patents by Inventor PRAVEEN BALASUBRAMANIAN
PRAVEEN BALASUBRAMANIAN has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Patent number: 11870877Abstract: A system having scalable sockets to support User Datagram Protocol (UDP) connections identifies a plurality of UDP connections, wherein a plurality of remote clients connect to corresponding ones of the plurality of UDP connections. Each one of a plurality of UDP sockets is associated with a corresponding one of the plurality of UDP connections. A network stack lookup for UDP packets in network traffic is performed using a network stack to identify the UDP socket corresponding to the remote client associated with each of the UDP packet. The UDP packets are buffered with a send buffer and a receive buffer for the UDP socket corresponding to the remote client associated with the UDP packets as determined by the network stack lookup to support communication over the plurality of UDP connections using the plurality of UDP sockets. The system thereby operates more efficiently and/or is more scalable.Type: GrantFiled: January 3, 2022Date of Patent: January 9, 2024Assignee: Microsoft Technology Licensing, LLCInventors: Praveen Balasubramanian, Matthew A. Olson, Nicholas A. Banks, Sourav Das, Nicholas J. Grifka
-
Publication number: 20220124180Abstract: A system having scalable sockets to support User Datagram Protocol (UDP) connections identifies a plurality of UDP connections, wherein a plurality of remote clients connect to corresponding ones of the plurality of UDP connections. Each one of a plurality of UDP sockets is associated with a corresponding one of the plurality of UDP connections. A network stack lookup for UDP packets in network traffic is performed using a network stack to identify the UDP socket corresponding to the remote client associated with each of the UDP packet. The UDP packets are buffered with a send buffer and a receive buffer for the UDP socket corresponding to the remote client associated with the UDP packets as determined by the network stack lookup to support communication over the plurality of UDP connections using the plurality of UDP sockets. The system thereby operates more efficiently and/or is more scalable.Type: ApplicationFiled: January 3, 2022Publication date: April 21, 2022Inventors: Praveen BALASUBRAMANIAN, Matthew A. OLSON, Nicholas A. BANKS, Sourav DAS, Nicholas J. GRIFKA
-
Publication number: 20220058046Abstract: Described herein is a system and method of connectivity migration of an executing virtual application and/or guest operating system. State associated with a first instance of an application and/or a guest operating system executing on a first virtual machine is captured. Information regarding connectivity state associated with a plurality of running connections between the first virtual machine and client device(s) is also captured (e.g., layers 2, 3 and 4). The captured state information can be provided to a second virtual machine which utilizes the captured station information to establish state for a second instance of the application, a second instance of the guest operating system, and/or connectivity of the plurality of running connections between the second virtual machine and client device(s). The state of the second instance of the application can be synchronized with the state of the second instance of the guest operating system.Type: ApplicationFiled: July 22, 2021Publication date: February 24, 2022Inventors: Deepak Bansal, Sameer Arun Verkhedkar, Sudheer Vaddi, Praveen Balasubramanian
-
Patent number: 11223708Abstract: A system having scalable sockets to support User Datagram Protocol (UDP) connections identifies a plurality of UDP connections, wherein a plurality of remote clients connect to corresponding ones of the plurality of UDP connections. Each one of a plurality of UDP sockets is associated with a corresponding one of the plurality of UDP connections. A network stack lookup for UDP packets in network traffic is performed using a network stack to identify the UDP socket corresponding to the remote client associated with each of the UDP packet. The UDP packets are buffered with a send buffer and a receive buffer for the UDP socket corresponding to the remote client associated with the UDP packets as determined by the network stack lookup to support communication over the plurality of UDP connections using the plurality of UDP sockets. The system thereby operates more efficiently and/or is more scalable.Type: GrantFiled: December 11, 2018Date of Patent: January 11, 2022Assignee: Microsoft Technology Licensing, LLCInventors: Praveen Balasubramanian, Matthew A. Olson, Nicholas A. Banks, Sourav Das, Nicholas J. Grifka
-
Patent number: 11115504Abstract: A system for batched User Datagram Protocol (UDP) processing, on a send operation, combines multiple UDP packets into a plurality of packet batches to indicate on a plurality of sockets based at least in part on a packet batch size. Each packet batch is to be indicated to a corresponding one of the plurality of sockets to convey the plurality of packet batches to a network stack. One call is performed for each indicated socket of the plurality of sockets based on the packet batch size to convey each packet batch to the network stack. The network stack performs a single look up operation and a single network security inspection operation once per packet batch. In response to performing the one call, the plurality of packet batches are then sent to a network adapter or an application. The system thereby operates more efficiently and/or is more scalable.Type: GrantFiled: December 11, 2018Date of Patent: September 7, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Praveen Balasubramanian, Matthew A. Olson, Nicholas A. Banks, Sourav Das, Nicholas J. Grifka
-
Patent number: 11106482Abstract: Described herein is a system and method of connectivity migration of an executing virtual application and/or guest operating system. State associated with a first instance of an application and/or a guest operating system executing on a first virtual machine is captured. Information regarding connectivity state associated with a plurality of running connections between the first virtual machine and client device(s) is also captured (e.g., layers 2, 3 and 4). The captured state information can be provided to a second virtual machine which utilizes the captured station information to establish state for a second instance of the application, a second instance of the guest operating system, and/or connectivity of the plurality of running connections between the second virtual machine and client device(s). The state of the second instance of the application can be synchronized with the state of the second instance of the guest operating system.Type: GrantFiled: May 31, 2019Date of Patent: August 31, 2021Assignee: Microsoft Technology Licensing, LLCInventors: Deepak Bansal, Sameer Arun Verkhedkar, Sudheer Vaddi, Praveen Balasubramanian
-
Patent number: 10862732Abstract: In a network virtualization system, metadata is passed in an encapsulation header from one network virtualization edge to another network virtualization edge or to a service connected to a network virtualization edge. The metadata may carry packet processing instructions, diagnostic information, hop-specific information, or a packet identifier. Using the metadata information in the packet header, the datacenter network may provide services such as remote segmentation offload, small packet coalescing, transparent packet compression, and end-to-end packet tracing.Type: GrantFiled: February 6, 2019Date of Patent: December 8, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Pankaj Garg, Andrew J. Ritz, Stephen E. Bensley, Praveen Balasubramanian
-
Publication number: 20200379790Abstract: Described herein is a system and method of connectivity migration of an executing virtual application and/or guest operating system. State associated with a first instance of an application and/or a guest operating system executing on a first virtual machine is captured. Information regarding connectivity state associated with a plurality of running connections between the first virtual machine and client device(s) is also captured (e.g., layers 2, 3 and 4). The captured state information can be provided to a second virtual machine which utilizes the captured station information to establish state for a second instance of the application, a second instance of the guest operating system, and/or connectivity of the plurality of running connections between the second virtual machine and client device(s). The state of the second instance of the application can be synchronized with the state of the second instance of the guest operating system.Type: ApplicationFiled: May 31, 2019Publication date: December 3, 2020Applicant: Microsoft Technology Licensing, LLCInventors: Deepak BANSAL, Sameer Arun VERKHEDKAR, Sudheer VADDI, Praveen BALASUBRAMANIAN
-
Patent number: 10785020Abstract: A system for hardware offloading programs a network interface card with a mapping between (i) a connection identification (CID) for one or more Quick User Datagram Protocol Internet Connections (QUIC) data packets and (ii) a symmetric key and a crypto algorithm. When one or more data packets are received over a network, the one or more data packets are parsed to identify the one or more data packets as QUIC data packets and then obtain the CID for the QUIC data packets. The CID is sent to the network interface card that identifies the symmetric key and the crypto algorithm based on the CID to perform a crypto decrypt operation on the QUIC data packets, and reassembles the QUIC data packets, and an encrypt and large send offload (LSO) on transmit. A software control complexity and processing burden is thereby reduced.Type: GrantFiled: January 19, 2018Date of Patent: September 22, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Praveen Balasubramanian, Nicholas A. Banks
-
Patent number: 10749763Abstract: Reliable address discovery cache techniques are described. In an implementation, a reliable communication channel is established for control messages related to address resolution in a network. The communication channel is employed for communication of messages for internet protocol (IP) address acquisition, release, and mapping staleness between clients (e.g., nodes or endpoints) in the network and a cache manager component configured to maintain and update an address map for the clients. The cache manager component may also be configured to send directed messages via the communication channel to propagate changes in the mapping to the clients. Further, clients may provide explicit notifications regarding address release and staleness to the cache manager component to facilitate updating of the address map. In this way, a reliable and up-to-date address map is maintained and the amount of broadcast discovery messages and bandwidth consumed overall for address discovery operations may be reduced.Type: GrantFiled: August 21, 2017Date of Patent: August 18, 2020Assignee: Microsoft Technology Licensing, LLCInventors: Pankaj Garg, Praveen Balasubramanian, Stephen E. Bensley, Luis I. Martinez Castillo
-
Publication number: 20190394308Abstract: A system having scalable sockets to support User Datagram Protocol (UDP) connections identifies a plurality of UDP connections, wherein a plurality of remote clients connect to corresponding ones of the plurality of UDP connections. Each one of a plurality of UDP sockets is associated with a corresponding one of the plurality of UDP connections. A network stack lookup for UDP packets in network traffic is performed using a network stack to identify the UDP socket corresponding to the remote client associated with each of the UDP packet. The UDP packets are buffered with a send buffer and a receive buffer for the UDP socket corresponding to the remote client associated with the UDP packets as determined by the network stack lookup to support communication over the plurality of UDP connections using the plurality of UDP sockets. The system thereby operates more efficiently and/or is more scalable.Type: ApplicationFiled: December 11, 2018Publication date: December 26, 2019Inventors: Praveen BALASUBRAMANIAN, Matthew A. OLSON, Nicholas A. BANKS, Sourav DAS, Nicholas J. GRIFKA
-
Publication number: 20190394307Abstract: A system for batched User Datagram Protocol (UDP) processing, on a send operation, combines multiple UDP packets into a plurality of packet batches to indicate on a plurality of sockets based at least in part on a packet batch size. Each packet batch is to be indicated to a corresponding one of the plurality of sockets to convey the plurality of packet batches to a network stack. One call is performed for each indicated socket of the plurality of sockets based on the packet batch size to convey each packet batch to the network stack. The network stack performs a single look up operation and a single network security inspection operation once per packet batch. In response to performing the one call, the plurality of packet batches are then sent to a network adapter or an application. The system thereby operates more efficiently and/or is more scalable.Type: ApplicationFiled: December 11, 2018Publication date: December 26, 2019Inventors: Praveen BALASUBRAMANIAN, Matthew A. OLSON, Nicholas A. BANKS, Sourav DAS, Nicholas J. GRIFKA
-
Publication number: 20190229903Abstract: A system for hardware offloading programs a network interface card with a mapping between (i) a connection identification (CID) for one or more Quick User Datagram Protocol Internet Connections (QUIC) data packets and (ii) a symmetric key and a crypto algorithm. When one or more data packets are received over a network, the one or more data packets are parsed to identify the one or more data packets as QUIC data packets and then obtain the CID for the QUIC data packets. The CID is sent to the network interface card that identifies the symmetric key and the crypto algorithm based on the CID to perform a crypto decrypt operation on the QUIC data packets, and reassembles the QUIC data packets, and an encrypt and large send offload (LSO) on transmit. A software control complexity and processing burden is thereby reduced.Type: ApplicationFiled: January 19, 2018Publication date: July 25, 2019Inventors: Praveen BALASUBRAMANIAN, Nicholas A. BANKS
-
Publication number: 20190190770Abstract: In a network virtualization system, metadata is passed in an encapsulation header from one network virtualization edge to another network virtualization edge or to a service connected to a network virtualization edge. The metadata may carry packet processing instructions, diagnostic information, hop-specific information, or a packet identifier. Using the metadata information in the packet header, the datacenter network may provide services such as remote segmentation offload, small packet coalescing, transparent packet compression, and end-to-end packet tracing.Type: ApplicationFiled: February 6, 2019Publication date: June 20, 2019Inventors: Pankaj GARG, Andrew J. RITZ, Stephen E. BENSLEY, Praveen BALASUBRAMANIAN
-
Patent number: 10298504Abstract: The technologies disclosed herein provide improvements to the Low Extra Delay Background Transport (LEDBAT) protocol. Some aspects of the present disclosure introduce an adaptive congestion window gain for background connections. In some configurations, a gain value for influencing the transmission rate of a background connection is dynamically adjusted based on data indicating a round trip time (RTT). The RTT includes a sum of a time in which the data is communicated to a remote device and a time in which acknowledgement is data returned from the remote device. In some configurations, the gain is decreased when the RTT is below a threshold and the gain is increased when the RTT is above the threshold. Among other features, the present disclosure also provides techniques involving a modified slow-start, multiplicative decrease and periodic slowdowns. The features disclosed herein mitigate some existing issues, such as latency drift, inter-LEDBAT fairness, and unnecessary slowdowns.Type: GrantFiled: September 27, 2016Date of Patent: May 21, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Osman N. Ertugay, Christian Huitema, Praveen Balasubramanian, Daniel Havey
-
Patent number: 10212022Abstract: In a network virtualization system, metadata is passed in an encapsulation header from one network virtualization edge to another network virtualization edge or to a service connected to a network virtualization edge. The metadata may carry packet processing instructions, diagnostic information, hop-specific information, or a packet identifier. Using the metadata information in the packet header, the datacenter network may provide services such as remote segmentation offload, small packet coalescing, transparent packet compression, and end-to-end packet tracing.Type: GrantFiled: September 13, 2013Date of Patent: February 19, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Pankaj Garg, Andrew J. Ritz, Stephen E. Bensley, Praveen Balasubramanian
-
Patent number: 10193863Abstract: A computer system enforces network security policy by pre-classifying network traffic. Unidimensional pre-classifier filters analyze network traffic to populate a pre-classifier bit array. Rather than having filter explosion with the creation of multidimensional filters, the pre-classifier bit array is used by other layers and/or filters to enforce network security policy. Further, reclassification of network traffic due to network security changes is streamlined due to the inclusion of pre-classifier layers and the pre-classifier bit array.Type: GrantFiled: January 10, 2017Date of Patent: January 29, 2019Assignee: Microsoft Technology Licensing, LLCInventors: Gerardo Diaz Cuellar, Praveen Balasubramanian, Hossam Fattah
-
Patent number: 10128987Abstract: Examples of the disclosure dynamically scale receive window auto-tuning. Tuning data is obtained, including the number of bytes in a receive buffer and the distribution of receive packets over time. Aspects of the disclosure use this tuning data to determine rates at which one or more applications on the receiving computer are consuming data and adjust or maintain the receive buffer accordingly in a dynamic manner to scale a receive window to current conditions.Type: GrantFiled: October 7, 2016Date of Patent: November 13, 2018Assignee: Microsoft Technology Licensing, LLCInventors: Christian F. Huitema, Praveen Balasubramanian
-
Patent number: 10091089Abstract: Present disclosure provides techniques for dynamically determining how to store and expire non-TCP traffic in a network environment. In some examples, aspects of the present disclosure may implement a state machine operated by the server for managing non-TCP traffic. Critically, in accordance with aspects of the present disclosure, non-TCP traffic may be combined with the use of multiple memory partitions and an expiry algorithm that supports dynamic scaling of non-TCP traffic while achieving faster connection speed, higher system performance, and lower time complexity.Type: GrantFiled: August 17, 2016Date of Patent: October 2, 2018Assignee: Microsoft Technology Licensing, LLCInventors: Hossam Fattah, Praveen Balasubramanian
-
Publication number: 20180131584Abstract: Reliable address discovery cache techniques are described. In an implementation, a reliable communication channel is established for control messages related to address resolution in a network. The communication channel is employed for communication of messages for internet protocol (IP) address acquisition, release, and mapping staleness between clients (e.g., nodes or endpoints) in the network and a cache manager component configured to maintain and update an address map for the clients. The cache manager component may also be configured to send directed messages via the communication channel to propagate changes in the mapping to the clients. Further, clients may provide explicit notifications regarding address release and staleness to the cache manager component to facilitate updating of the address map. In this way, a reliable and up-to-date address map is maintained and the amount of broadcast discovery messages and bandwidth consumed overall for address discovery operations may be reduced.Type: ApplicationFiled: August 21, 2017Publication date: May 10, 2018Applicant: Microsoft Technology Licensing, LLCInventors: Pankaj Garg, Praveen Balasubramanian, Stephen E. Bensley, Luis I. Martinez Castillo