IP Library Granted Patent US 10,917,500
Granted Patent B2
US 10,917,500 · App. 16/449,468 · Granted Feb 9, 2021

Inferring client-server relations for UDP connections

Inventors: Uri Hershcovits (Herzliya, IL); Liron Schiff (Jerusalem, IL); Itamar Tal (Kadima, IL)
Assignee: GUARDICORE LTD.
H04L67/42G06F9/547H04L43/18H04L47/2483H04L69/164H04L43/04
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 10,917,500
App. No.
16/449,468
Granted
Feb 9, 2021
Kind
B2
Abstract

A method for monitoring a computing system including multiple endpoints, includes monitoring, in at least some of the endpoints, operating-system (OS) system calls relating to a transport protocol having no handshake mechanism. First and second endpoints, which exchange a flow of packets with one another using the transport protocol, are identified from among the multiple endpoints. A deduction is made, from the monitored system calls, which of the first and second endpoints acts as a server in the flow of packets, and which of the first and second endpoints acts as a client in the flow of packets.

Claims (46)

1. A method for monitoring a computing system comprising multiple endpoints, the method comprising:

monitoring, in at least some of the endpoints, operating-system (OS) system calls relating to a transport protocol having no handshake mechanism;

identifying, from among the multiple endpoints, first and second endpoints that exchange a flow of packets with one another using the transport protocol; and

deducing, from the monitored system calls, which of the first and second endpoints acts as a server in the flow of packets, and which of the first and second endpoints acts as a client in the flow of packets, by:

identifying (i) creation of a network socket for the flow of packets in the first endpoint, and (ii) an initial communication transaction occurring in the first endpoint after the creation of the network socket;

if the initial communication transaction is a write transaction, deducing that the first endpoint acts as a client; and

if the initial communication transaction is a read transaction, deducing that the first endpoint acts as a server.

2. The method according to claim 1 , wherein the transport protocol comprises a User Datagram Protocol (UDP).

3. The method according to claim 1 , further comprising identifying, based on the monitored system calls, at least one process in at least one of the first and second endpoints that is associated with the flow of packets.

4. The method according to claim 1 , wherein monitoring the OS system calls comprises monitoring in the first and second endpoints (i) system calls that create network sockets and (ii) system calls that perform initial communication transactions occurring after the creation of the respective network sockets.

5. The method according to claim 1 , wherein identifying the first and second endpoints comprises identifying a matching flow tuple in the first and second endpoints.

6. A method for monitoring a computing system comprising multiple endpoints, the method comprising:

monitoring, in at least some of the endpoints, operating-system (OS) system calls relating to a transport protocol having no handshake mechanism;

identifying, from among the multiple endpoints, first and second endpoints that exchange a flow of packets with one another using the transport protocol; and

deducing, from the monitored system calls, which of the first and second endpoints acts as a server in the flow of packets, and which of the first and second endpoints acts as a client in the flow of packets, by:

if memory addresses, which were allocated from a memory pool in the first endpoint for send operations, are closer to a base address of the memory pool than the memory addresses allocated for receive operations, deducing that the first endpoint acts as a client; and

if the memory addresses, which were allocated for the receive operations, are closer to the base address than the memory addresses allocated for the send operations, deducing that the first endpoint acts as a server.

7. A method for monitoring a computing system comprising multiple endpoints, the method comprising:

monitoring, in at least some of the endpoints, operating-system (OS) system calls relating to a transport protocol having no handshake mechanism;

identifying, from among the multiple endpoints, first and second endpoints that exchange a flow of packets with one another using the transport protocol; and

deducing, from the monitored system calls, that the first endpoint acts as a server in response to assessing that a port assigned to the flow of packets in the first endpoint is also assigned in one or more additional flows of packets.

8. A method for monitoring a computing system comprising multiple endpoints, the method comprising:

monitoring, in at least some of the endpoints, operating-system (OS) system calls relating to a transport protocol having no handshake mechanism;

identifying, from among the multiple endpoints, first and second endpoints that exchange a flow of packets with one another using the transport protocol; and

deducing, from the monitored system calls, which of the first and second endpoints acts as a server in the flow of packets, and which of the first and second endpoints acts as a client in the flow of packets, by analyzing a temporal pattern of the OS system calls.

9. An apparatus for monitoring a computing system comprising multiple endpoints, the apparatus comprising:

an interface, configured to receive, from at least some of the endpoints, monitored operating-system (OS) system calls relating to a transport protocol having no handshake mechanism; and

a processor, configured to identify, from among the multiple endpoints, first and second endpoints that exchange a flow of packets with one another using the transport protocol, and to deduce, from the monitored system calls, which of the first and second endpoints acts as a server in the flow of packets, and which of the first and second endpoints acts as a client in the flow of packets, by:

identifying (i) creation of a network socket for the flow of packets in the first endpoint, and (ii) an initial communication transaction occurring in the first endpoint after the creation of the network socket;

if the initial communication transaction is a write transaction, deducing that the first endpoint acts as a client; and

if the initial communication transaction is a read transaction, deducing that the first endpoint acts as a server.

10. The apparatus according to claim 9 , wherein the transport protocol comprises a User Datagram Protocol (UDP).

11. The apparatus according to claim 9 , wherein the processor is further configured to identify, based on the monitored system calls, at least one process in at least one of the first and second endpoints that is associated with the flow of packets.

12. The apparatus according to claim 9 , wherein the processor is configured to monitor in the first and second endpoints (i) system calls that create network sockets and (ii) system calls that perform initial communication transactions occurring after the creation of the respective network sockets.

13. The apparatus according to claim 9 , wherein the processor is configured to identify the first and second endpoints by identifying a matching flow tuple in the first and second endpoints.

14. An apparatus for monitoring a computing system comprising multiple endpoints, the apparatus comprising:

an interface, configured to receive, from at least some of the endpoints, monitored operating-system (OS) system calls relating to a transport protocol having no handshake mechanism; and

a processor, configured to identify, from among the multiple endpoints, first and second endpoints that exchange a flow of packets with one another using the transport protocol, and to deduce, from the monitored system calls, which of the first and second endpoints acts as a server in the flow of packets, and which of the first and second endpoints acts as a client in the flow of packets, by:

if memory addresses, which were allocated from a memory pool in the first endpoint for send operations, are closer to a base address of the memory pool than the memory addresses allocated for receive operations, deducing that the first endpoint acts as a client; and

if the memory addresses, which were allocated for the receive operations, are closer to the base address than the memory addresses allocated for the send operations, deducing that the first endpoint acts as a server.

15. An apparatus for monitoring a computing system comprising multiple endpoints, the apparatus comprising:

an interface, configured to receive, from at least some of the endpoints, monitored operating-system (OS) system calls relating to a transport protocol having no handshake mechanism; and

a processor, configured to identify, from among the multiple endpoints, first and second endpoints that exchange a flow of packets with one another using the transport protocol, and to deduce, from the monitored system calls, that the first endpoint acts as a server in response to assessing that a port assigned to the flow of packets in the first endpoint is also assigned in one or more additional flows of packets.

16. An apparatus for monitoring a computing system comprising multiple endpoints, the apparatus comprising:

an interface, configured to receive, from at least some of the endpoints, monitored operating-system (OS) system calls relating to a transport protocol having no handshake mechanism; and

a processor, configured to identify, from among the multiple endpoints, first and second endpoints that exchange a flow of packets with one another using the transport protocol, and to deduce, from the monitored system calls, which of the first and second endpoints acts as a server in the flow of packets, and which of the first and second endpoints acts as a client in the flow of packets, by analyzing a temporal pattern of the OS system calls.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 5, 2022
From: GUARDICORE LTD.
To: AKAMAI TECHNOLOGIES, INC.
Reel/Frame 061313/0504 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 24, 2019
From: HERSHCOVITS, URI; SCHIFF, LIRON; TAL, ITAMAR
To: GUARDICORE LTD.
Reel/Frame 049563/0581 →
Continuity (1)
Related Publication 20200404080A1 · Dec 24, 2020