Patents by Inventor Nicholas A. Banks

Nicholas A. Banks 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: 11870877
    Abstract: 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: Grant
    Filed: January 3, 2022
    Date of Patent: January 9, 2024
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Praveen Balasubramanian, Matthew A. Olson, Nicholas A. Banks, Sourav Das, Nicholas J. Grifka
  • Publication number: 20220124180
    Abstract: 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: Application
    Filed: January 3, 2022
    Publication date: April 21, 2022
    Inventors: Praveen BALASUBRAMANIAN, Matthew A. OLSON, Nicholas A. BANKS, Sourav DAS, Nicholas J. GRIFKA
  • Patent number: 11223708
    Abstract: 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: Grant
    Filed: December 11, 2018
    Date of Patent: January 11, 2022
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Praveen Balasubramanian, Matthew A. Olson, Nicholas A. Banks, Sourav Das, Nicholas J. Grifka
  • Patent number: 11115504
    Abstract: 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: Grant
    Filed: December 11, 2018
    Date of Patent: September 7, 2021
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Praveen Balasubramanian, Matthew A. Olson, Nicholas A. Banks, Sourav Das, Nicholas J. Grifka
  • Patent number: 10785020
    Abstract: 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: Grant
    Filed: January 19, 2018
    Date of Patent: September 22, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Praveen Balasubramanian, Nicholas A. Banks
  • Patent number: 10582550
    Abstract: Embodiments produce a set of instructions for connecting to a network through a network access point based on data crowdsourced from mobile computing devices. The crowdsourced data describes interactions between the mobile computing devices and the network access point when establishing a connection to the network. A cloud service analyzes the crowdsourced data to identify a set of instructions for association with the network access point. The mobile computing devices replay the set of instructions when subsequently attempting to connect to the network access point.
    Type: Grant
    Filed: December 7, 2016
    Date of Patent: March 3, 2020
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Nicholas A. Banks, Piyush Goyal, Shai Guday, Triptpal Singh Lamba, David Neil MacDonald, Darya Mazandarany, Christopher R. Rice, Saumaya Sharma
  • Publication number: 20190394307
    Abstract: 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: Application
    Filed: December 11, 2018
    Publication date: December 26, 2019
    Inventors: Praveen BALASUBRAMANIAN, Matthew A. OLSON, Nicholas A. BANKS, Sourav DAS, Nicholas J. GRIFKA
  • Publication number: 20190394308
    Abstract: 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: Application
    Filed: December 11, 2018
    Publication date: December 26, 2019
    Inventors: Praveen BALASUBRAMANIAN, Matthew A. OLSON, Nicholas A. BANKS, Sourav DAS, Nicholas J. GRIFKA
  • Patent number: 10506646
    Abstract: Embodiments produce a set of instructions for connecting to a network through a network access point based on data crowdsourced from mobile computing devices. The crowdsourced data describes interactions between the mobile computing devices and the network access point when establishing a connection to the network. A cloud service analyzes the crowdsourced data to identify a set of instructions for association with the network access point. The mobile computing devices replay the set of instructions when subsequently attempting to connect to the network access point.
    Type: Grant
    Filed: December 7, 2016
    Date of Patent: December 10, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Nicholas A. Banks, Piyush Goyal, Shai Guday, Triptpal Singh Lamba, David Neil MacDonald, Darya Mazandarany, Christopher R. Rice, Saumaya Sharma
  • Patent number: 10382305
    Abstract: Embodiments apply a set of sequenced instructions to connect to a network through a captive portal. A computing device detects a network access point and obtains the instruction set corresponding to the network access point. The instruction set is derived by a cloud service from crowdsourced data describing interactions between mobile computing devices and the network access point. Applying the instruction set includes performing actions such as navigating web pages to accept terms and conditions, provide user or device information, and more.
    Type: Grant
    Filed: November 15, 2013
    Date of Patent: August 13, 2019
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Mohammad Shabbir Alam, Javier Flores Assad, Nicholas A. Banks, Piyush Goyal, James Christopher Gray, Shai Guday, Thomas W. Kuehnel, Triptpal Singh Lamba, David Neil MacDonald, Darya Mazandarany, Sidharth Uday Nabar, Christopher R. Rice, Saumaya Sharma, Douglas E. Stamper
  • Publication number: 20190229903
    Abstract: 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: Application
    Filed: January 19, 2018
    Publication date: July 25, 2019
    Inventors: Praveen BALASUBRAMANIAN, Nicholas A. BANKS
  • Publication number: 20170094698
    Abstract: Embodiments produce a set of instructions for connecting to a network through a network access point based on data crowdsourced from mobile computing devices. The crowdsourced data describes interactions between the mobile computing devices and the network access point when establishing a connection to the network. A cloud service analyzes the crowdsourced data to identify a set of instructions for association with the network access point. The mobile computing devices replay the set of instructions when subsequently attempting to connect to the network access point.
    Type: Application
    Filed: December 7, 2016
    Publication date: March 30, 2017
    Inventors: Nicholas A. Banks, Piyush Goyal, Shai Guday, Triptpal Singh Lamba, David Neil MacDonald, Darya Mazandarany, Christopher R. Rice, Saumaya Sharma
  • Patent number: 9554323
    Abstract: Embodiments produce a set of instructions for connecting to a network through a network access point based on data crowdsourced from mobile computing devices. The crowdsourced data describes interactions between the mobile computing devices and the network access point when establishing a connection to the network. A cloud service analyzes the crowdsourced data to identify a set of instructions for association with the network access point. The mobile computing devices replay the set of instructions when subsequently attempting to connect to the network access point.
    Type: Grant
    Filed: November 15, 2013
    Date of Patent: January 24, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Nicholas A. Banks, Piyush Goyal, Shai Guday, Triptpal Singh Lamba, David Neil MacDonald, Darya Mazandarany, Christopher R. Rice, Saumaya Sharma
  • Publication number: 20150142946
    Abstract: Embodiments apply a set of sequenced instructions to connect to a network through a captive portal. A computing device detects a network access point and obtains the instruction set corresponding to the network access point. The instruction set is derived by a cloud service from crowdsourced data describing interactions between mobile computing devices and the network access point. Applying the instruction set includes performing actions such as navigating web pages to accept terms and conditions, provide user or device information, and more.
    Type: Application
    Filed: November 15, 2013
    Publication date: May 21, 2015
    Inventors: Mohammad Shabbir Alam, Javier Flores Assad, Nicholas A. Banks, Piyush Goyal, James Christopher Gray, Shai Guday, Thomas W. Kuehnel, Triptpal Singh Lamba, David Neil MacDonald, Darya Mazandarany, Sidharth Uday Nabar, Christopher R. Rice, Saumaya Sharma, Douglas E. Stamper
  • Publication number: 20150139082
    Abstract: Embodiments produce a set of instructions for connecting to a network through a network access point based on data crowdsourced from mobile computing devices. The crowdsourced data describes interactions between the mobile computing devices and the network access point when establishing a connection to the network. A cloud service analyzes the crowdsourced data to identify a set of instructions for association with the network access point. The mobile computing devices replay the set of instructions when subsequently attempting to connect to the network access point.
    Type: Application
    Filed: November 15, 2013
    Publication date: May 21, 2015
    Inventors: Nicholas A. Banks, Piyush Goyal, Shai Guday, Triptpal Singh Lamba, David Neil MacDonald, Darya Mazandarany, Christopher R. Rice, Saumaya Sharma
  • Patent number: 6028645
    Abstract: A digital video effects apparatus has a graphical user interface having a display upon which is produced a video image within a predetermined shape, the video Image being rotated in time and space to represent a 3-dimensional effect. Control points are set by a user together with rotation angles and x-y scaling parameters of the video image. The apparatus interpolates between the control points to provide a smooth transition from control point to control point. The video image is zoomed in and out as the video image changes orientation and/or size so that the video image substantially fills an image area of the graphical user interface display. In the invention the video image is tracked on the GUI display even when it is outside the normally visible screen area.
    Type: Grant
    Filed: April 4, 1997
    Date of Patent: February 22, 2000
    Assignee: Tektronix, Inc.
    Inventors: Paul J. Reid, Nicholas Banks
  • Patent number: 5830770
    Abstract: Novel generic antibodies are provided that are specific to groups of organophosphates, particularly to a class of organophosphate pesticides in common usage. Further provided are compounds and methods for raising these antibodies, test kits containing them and methods for their use. The antibodies targeted at low molecular weight (i.e. below MW 1000) organophosphorous pesticides methacrifos, pirimphos methyl, etrimfos, fenitrothion, chlopyrifos methyl, dichlorovos and malathion. Preferred conjugates of the invention are of the formula (RO).sub.2 --P(S)--Z--?Y!-Protein wherein R is lower alkyl and Z is as O, S or --NH--, Y is a spacer group and "Protein" indicates a protein suitable for use in hapten protein conjugates for the purpose of raising antibodies and antisera. Typical and preferred proteins are bovine serum albumin, ovalbumin from chicken egg, keyhole limpet hemocyananin and mixtures of these.
    Type: Grant
    Filed: April 26, 1996
    Date of Patent: November 3, 1998
    Assignee: The Minister of Agriculture Fisheries and Food in Her Britannic Majesty's Government of the U.K. of Gt. Britain & N. Ireland
    Inventors: Wendy Alison Matthews, John Nicholas Banks, Mohamed Qasim Chaudhry