Patents by Inventor Gregory O'Shea

Gregory O'Shea 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: 9906433
    Abstract: An application programming interface (API) supporting server and key based networking is described. In an embodiment, the API receives either a key or a server address from a service running on a server in a direct-connect topology and returns data which identifies suitable next hops for transmission of a packet of data which has a destination of the received server address or of a server address which is encoded within the received key. In another embodiment, the key also encodes information specifying alternative server addresses for use in the event that the original server is unreachable. This information may also be used to define servers for replication of the key. A further embodiment describes a method of queuing packets for transmission against multiple links, where the packet is transmitted on the first available link and at this time is removed from the queues for the other links.
    Type: Grant
    Filed: April 13, 2015
    Date of Patent: February 27, 2018
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Gregory O'Shea, Austin Donnelly, Antony Rowstron, Paolo Costa
  • Publication number: 20160072704
    Abstract: Resource control for virtual datacenters is described, for example, where a plurality of virtual datacenters are implemented in a physical datacenter to meet guarantees. In examples, each virtual datacenter specifies a plurality of different types of resources having throughput guarantees which are met by computing, for individual flows of the virtual data centers implemented in the physical datacenter, a flow allocation. For example, a flow allocation has, for each of a plurality of different types of physical resources of the datacenter used by the flow, an amount of the physical resource that the flow can use. A flow is a path between endpoints of the datacenter along which messages are sent to implement a service. In examples, the flow allocations are sent to enforcers in the datacenter, which use the flow allocations to control the rate of traffic in the flows.
    Type: Application
    Filed: September 9, 2014
    Publication date: March 10, 2016
    Inventors: Sebastian Angel, Hitesh Ballani, Thomas M. Talpey, Thomas Karagiannis, Eno Thereska, Gregory O'Shea
  • Patent number: 9244615
    Abstract: Controlling data storage input/output requests is described, for example, to apply a policy to an end-to-end flow of data input/output requests between at least one computing entity and at least one store. In various examples a plurality of queues are configured at one or more stages of the end-to-end flow and controlled to adhere to a policy. In examples, each stage has a control interface enabling it to receive and execute control instructions from a controller which may be centralized or distributed. For example, the control instructions comprise queuing rules and/or queue configurations. In various examples queues and queuing rules are dynamically created and revised according to feedback about any of: flow behavior, changes in policy, changes in infrastructure or other factors. In examples, high level identifiers of the flow endpoints are resolved, on a per stage basis, to low level identifiers suitable for use by the stage.
    Type: Grant
    Filed: September 13, 2013
    Date of Patent: January 26, 2016
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Eno Thereska, Hitesh Ballani, Gregory O'Shea, Thomas Karagiannis, Antony Ian Taylor Rowstron, Thomas M Talpey, Richard John Black
  • Publication number: 20150222523
    Abstract: An application programming interface (API) supporting server and key based networking is described. In an embodiment, the API receives either a key or a server address from a service running on a server in a direct-connect topology and returns data which identifies suitable next hops for transmission of a packet of data which has a destination of the received server address or of a server address which is encoded within the received key. In another embodiment, the key also encodes information specifying alternative server addresses for use in the event that the original server is unreachable. This information may also be used to define servers for replication of the key. A further embodiment describes a method of queuing packets for transmission against multiple links, where the packet is transmitted on the first available link and at this time is removed from the queues for the other links.
    Type: Application
    Filed: April 13, 2015
    Publication date: August 6, 2015
    Inventors: Gregory O'Shea, Austin Donnelly, Antony Rowstron, Paolo Costa
  • Patent number: 9015345
    Abstract: An application programming interface (API) supporting server and key based networking is described. In an embodiment, the API receives either a key or a server address from a service running on a server in a direct-connect topology and returns data which identifies suitable next hops for transmission of a packet of data which has a destination of the received server address or of a server address which is encoded within the received key. In another embodiment, the key also encodes information specifying alternative server addresses for use in the event that the original server is unreachable. This information may also be used to define servers for replication of the key. A further embodiment describes a method of queuing packets for transmission against multiple links, where the packet is transmitted on the first available link and at this time is removed from the queues for the other links.
    Type: Grant
    Filed: December 15, 2010
    Date of Patent: April 21, 2015
    Assignee: Microsoft Corporation
    Inventors: Gregory O'Shea, Austin Donnelly, Antony Rowstron, Paolo Costa
  • Publication number: 20150081948
    Abstract: Controlling data storage input/output requests is described, for example, to apply a policy to an end-to-end flow of data input/output requests between at least one computing entity and at least one store. In various examples a plurality of queues are configured at one or more stages of the end-to-end flow and controlled to adhere to a policy. In examples, each stage has a control interface enabling it to receive and execute control instructions from a controller which may be centralized or distributed. For example, the control instructions comprise queuing rules and/or queue configurations. In various examples queues and queuing rules are dynamically created and revised according to feedback about any of: flow behavior, changes in policy, changes in infrastructure or other factors. In examples, high level identifiers of the flow endpoints are resolved, on a per stage basis, to low level identifiers suitable for use by the stage.
    Type: Application
    Filed: September 13, 2013
    Publication date: March 19, 2015
    Applicant: Microsoft Corporation
    Inventors: Eno Thereska, Hitesh Ballani, Gregory O'Shea, Thomas Karagiannis, Antony Ian Taylor Rowstron, Thomas M Talpey, Richard John Black
  • Publication number: 20140330937
    Abstract: Methods of classifying a storage traffic stream in a shared storage network are described. In an embodiment, an identifier for the entity generating the stream is generated, where this entity may, for example, indicate a virtual machine, program, session, physical machine, user or process. The identifier is then shared with at least one processing layer along a path of the storage traffic stream between the generating entity and the storage device which stores the file to which the traffic stream relates. In various embodiments, the identifier may then be used by any processing layers which receive it, to selectively handle traffic streams based on the generating entity. The identifier may be shared when the traffic stream is created or subsequently and in various embodiments, the identifier is shared in a second exchange of messages, following the creation of the traffic stream and prior to any other traffic.
    Type: Application
    Filed: May 3, 2013
    Publication date: November 6, 2014
    Inventors: Gregory O'Shea, Thomas M. Talpey, David Matthew Kruse, Eno Thereska, Hitesh Ballani, Thomas Karagiannis, Antony Ian Taylor Rowstron, Richard John Black
  • Patent number: 8473744
    Abstract: Disclosed is an authentication mechanism that enables an information recipient to ascertain that the information comes from the sender it purports to be from. This mechanism integrates a private/public key pair with selection by the sender of a portion of its address. The sender derives its address from its public key, for example, by using a hash of the key. The recipient verifies the association between the address and the sender's private key. The recipient may retrieve the key from an insecure resource and know that it has the correct key because only that key can produce the sender's address in the message. The hash may be made larger than the sender-selectable portion of the address. The recipient may cache public key/address pairs and use the cache to detect brute force attacks and to survive denial of service attacks. The mechanism may be used to optimize security negotiation algorithms.
    Type: Grant
    Filed: November 1, 2006
    Date of Patent: June 25, 2013
    Assignee: Microsoft Corporation
    Inventors: Art Shelest, David G. Thaler, Gregory O'Shea, Michael Roe, Brian D. Zill
  • Patent number: 8340099
    Abstract: Control of background data transfers is described. In an embodiment, a background data transfer is controlled at a receiver node by measuring a time period taken to receive from a sender node a data sequence of the same size as a receive window. The time period is used to evaluate available network capacity, and the network capacity used to calculate a new window size. The new window size is applied and communicated to the sender node. In another embodiment, a background data transfer is controlled at a receiver node by measuring a quantity of data received from a sender node during a first control interval. The measured quantity is used to evaluate available network capacity, and the network capacity used to calculate a new receive window size and a second control interval duration. The new window size is applied for the second control interval, and communicated to the sender node.
    Type: Grant
    Filed: July 15, 2009
    Date of Patent: December 25, 2012
    Assignee: Microsoft Corporation
    Inventors: Richard John Black, Dinan Gunawardena, Peter Key, Gregory O'Shea
  • Publication number: 20120158998
    Abstract: An application programming interface (API) supporting server and key based networking is described. In an embodiment, the API receives either a key or a server address from a service running on a server in a direct-connect topology and returns data which identifies suitable next hops for transmission of a packet of data which has a destination of the received server address or of a server address which is encoded within the received key. In another embodiment, the key also encodes information specifying alternative server addresses for use in the event that the original server is unreachable. This information may also be used to define servers for replication of the key. A further embodiment describes a method of queuing packets for transmission against multiple links, where the packet is transmitted on the first available link and at this time is removed from the queues for the other links.
    Type: Application
    Filed: December 15, 2010
    Publication date: June 21, 2012
    Applicant: Microsoft Corporation
    Inventors: Gregory O'Shea, Austin Donnelly, Antony Rowstron, Paolo Costa
  • Publication number: 20110013516
    Abstract: Control of background data transfers is described. In an embodiment, a background data transfer is controlled at a receiver node by measuring a time period taken to receive from a sender node a data sequence of the same size as a receive window. The time period is used to evaluate available network capacity, and the network capacity used to calculate a new window size. The new window size is applied and communicated to the sender node. In another embodiment, a background data transfer is controlled at a receiver node by measuring a quantity of data received from a sender node during a first control interval. The measured quantity is used to evaluate available network capacity, and the network capacity used to calculate a new receive window size and a second control interval duration. The new window size is applied for the second control interval, and communicated to the sender node.
    Type: Application
    Filed: July 15, 2009
    Publication date: January 20, 2011
    Applicant: Microsoft Corporation
    Inventors: Richard John Black, Dinan Gunawardena, Peter Key, Gregory O'Shea
  • Publication number: 20090296685
    Abstract: Methods of enabling user-mode prototypes in kernel-mode protocol stacks are described. A protocol stack comprises a set of kernel-mode modules. The protocol stack defines a data path for packets. At least one interception point is defined in a kernel-mode module at which a packet can be intercepted and/or inserted. In an embodiment, each packet intercepted at the interception point, or a copy of said packet, is sent to a user-mode module. The user-mode module processes the packet in some way and then returns the packet to the same, or a different, interception point in the data path. In this way, a user-mode module (which is easier to program) can be used to prototype functionality of a kernel-mode module without requiring kernel-mode code to be written.
    Type: Application
    Filed: May 29, 2008
    Publication date: December 3, 2009
    Applicant: Microsoft Corporation
    Inventors: Gregory O'Shea, Dinan Gunawardena
  • Patent number: 7203837
    Abstract: A system and method for authentication verifies the address of an information sender based on the sender's address, public key, and a digital signature. A portion of the sender's address is derived from the public key, such as by incorporating a portion of a hash of the public key with or without a modifier. The sender provides information including content data, the public key, the address, and the digital signature generated using the private key corresponding to the public key. Upon reception, the recipient verifies the address by recreating it from the public key. The signature is verified using the network address and public key. The recipient accepts the content data when both the address and signature are verified. The content data may include a communications parameter of the sender, such as a care-of address where the sender is a mobile device and the recipient is the sender's home agent.
    Type: Grant
    Filed: April 12, 2001
    Date of Patent: April 10, 2007
    Assignee: Microsoft Corporation
    Inventors: Gregory O'Shea, Michael Roe
  • Publication number: 20070061574
    Abstract: Disclosed is an authentication mechanism that enables an information recipient to ascertain that the information comes from the sender it purports to be from. This mechanism integrates a private/public key pair with selection by the sender of a portion of its address. The sender derives its address from its public key, for example, by using a hash of the key. The recipient verifies the association between the address and the sender's private key. The recipient may retrieve the key from an insecure resource and know that it has the correct key because only that key can produce the sender's address in the message. The hash may be made larger than the sender-selectable portion of the address. The recipient may cache public key/address pairs and use the cache to detect brute force attacks and to survive denial of service attacks. The mechanism may be used to optimize security negotiation algorithms.
    Type: Application
    Filed: November 1, 2006
    Publication date: March 15, 2007
    Applicant: Microsoft Corporation
    Inventors: Art Shelest, David Thaler, Gregory O'Shea, Michael Roe, Brian Zill
  • Patent number: 7134019
    Abstract: Disclosed is an authentication mechanism that enables an information recipient to ascertain that the information comes from the sender it purports to be from. This mechanism integrates a private/public key pair with selection by the sender of a portion of its address. The sender derives its address from its public key, for example, by using a hash of the key. The recipient verifies the association between the address and the sender's private key. The recipient may retrieve the key from an insecure resource and know that it has the correct key because only that key can produce the sender's address in the message. The hash may be made larger than the sender-selectable portion of the address. The recipient may cache public key/address pairs and use the cache to detect brute force attacks and to survive denial of service attacks. The mechanism may be used to optimize security negotiation algorithms.
    Type: Grant
    Filed: November 13, 2001
    Date of Patent: November 7, 2006
    Assignee: Microsoft Corporation
    Inventors: Art Shelest, David G. Thaler, Gregory O'Shea, Michael Roe, Brian D. Zill
  • Publication number: 20020152384
    Abstract: Disclosed is an authentication mechanism that enables an information recipient to ascertain that the information comes from the sender it purports to be from. This mechanism integrates a private/public key pair with selection by the sender of a portion of its address. The sender derives its address from its public key, for example, by using a hash of the key. The recipient verifies the association between the address and the sender's private key. The recipient may retrieve the key from an insecure resource and know that it has the correct key because only that key can produce the sender's address in the message. The hash may be made larger than the sender-selectable portion of the address. The recipient may cache public key/address pairs and use the cache to detect brute force attacks and to survive denial of service attacks. The mechanism may be used to optimize security negotiation algorithms.
    Type: Application
    Filed: November 13, 2001
    Publication date: October 17, 2002
    Applicant: Microsoft Corporation
    Inventors: Art Shelest, David G. Thaler, Gregory O'Shea, Michael Roe, Brian D. Zill
  • Publication number: 20020152380
    Abstract: A system and method for authentication verifies the address of an information sender based on the sender's address, public key, and a digital signature. A portion of the sender's address is derived from the public key, such as by incorporating a portion of a hash of the public key with or without a modifier. The sender provides information including content data, the public key, the address, and the digital signature generated using the private key corresponding to the public key. Upon reception, the recipient verifies the address by recreating it from the public key. The signature is verified using the network address and public key. The recipient accepts the content data when both the address and signature are verified. The content data may include a communications parameter of the sender, such as a care-of address where the sender is a mobile device and the recipient is the sender's home agent.
    Type: Application
    Filed: April 12, 2001
    Publication date: October 17, 2002
    Applicant: Microsoft Corporation
    Inventors: Gregory O'Shea, Michael Roe