IP Library Granted Patent US 11,627,112
Granted Patent B2
US 11,627,112 · App. 17/400,588 · Granted Apr 11, 2023

Socket transferring for HPC networks using kernel tracing

Inventors: Sunyanan Choochotkaew (Koto, JP); Tatsuhiro Chiba (Bunkyo-ku, JP)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
H04L63/0245H04L63/0236H04L63/1441H04L63/1491H04L63/0227H04L63/14
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 11,627,112
App. No.
17/400,588
Granted
Apr 11, 2023
Kind
B2
Abstract

A computer-implemented method for building socket transferring between containers in cloud-native environments by using kernel tracing techniques is provided including probing a connection-relevant system call event by using an eBPF to collect and filter data at a router, creating a mirror call at a host namespace with a dummy server and dummy client by creating the dummy server with mirror listening parameters, sending a server host address mapping to overlay the server host address to the client coordinator in an overlay process, and creating and connecting the dummy client to return a client host address to the server coordinator. The method further includes transferring mirror connections to the overlay process via a forwarder by temporary namespaces entering and injecting socket system calls and probing a transfer call event to map an overlay socket with a transferred dummy socket to activate duplication when the overlay socket is not locked.

Claims (66)

1. A computer-implemented method for building socket transferring between containers in cloud-native environments by using kernel tracing techniques, the method comprising:

probing a connection-relevant system call event by using an extended Berkeley Packet Filter (eBPF) to collect and filter data at a router and handled by server and client coordinators;

creating a mirror call at a host namespace with a dummy server and dummy client by:

creating the dummy server with mirror listening parameters;

sending a server host address mapping to overlay the server host address to the client coordinator in an overlay process; and

creating and connecting the dummy client to return a client host address to the server coordinator;

transferring mirror connections to the overlay process via a forwarder by temporary namespaces entering and injecting socket system calls; and

probing a transfer call event to map an overlay socket with a transferred dummy socket to activate duplication when the overlay socket is not locked.

2. The computer-implemented method of claim 1 , wherein the eBPF passively polls and filters the socket system calls in the overlay process.

3. The computer-implemented method of claim 1 , wherein a file description call is injected into the overlay process.

4. The computer-implemented method of claim 3 , wherein a middle process is employed to move between child and parent namespaces to transfer a parent socket connection.

5. The computer-implemented method of claim 1 , wherein a BPF Compiler Collection (BCC) toolkit is employed for polling listen, accept, and connect system calls from a kernel in real-time to the router.

6. The computer-implemented method of claim 5 , wherein the listen system call creates the dummy server.

7. The computer-implemented method of claim 5 , wherein the accept system call accepts new connections and cooperates with accepted clients via the server and client coordinators.

8. The computer-implemented method of claim 5 , wherein the connect system call makes a connection to a host layer once it receives information from a server.

9. The computer-implemented method of claim 1 , wherein, once host connection is established between the dummy client and client server, a file descriptor is transferred to the forwarder via a Unix socket in a host namespace.

10. The computer-implemented method of claim 9 , wherein the forwarder temporarily moves a mount namespace to the overlay process by a setns system call.

11. The computer-implemented method of claim 10 , wherein a BCC toolkit for polling a recvmsg system call from the kernel in real-time is employed to confirm that the transferred file descriptor is ready at the overlay process.

12. A computer program product for building socket transferring between containers in cloud-native environments by using kernel tracing techniques, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to:

probe a connection-relevant system call event by using an extended Berkeley Packet Filter (eBPF) to collect and filter data at a router and handled by server and client coordinators;

create a mirror call at a host namespace with a dummy server and dummy client by:

creating the dummy server with mirror listening parameters;

sending a server host address mapping to overlay the server host address to the client coordinator in an overlay process; and

creating and connecting the dummy client to return a client host address to the server coordinator;

transfer mirror connections to the overlay process via a forwarder by temporary namespaces entering and injecting socket system calls; and

probe a transfer call event to map an overlay socket with a transferred dummy socket to activate duplication when the overlay socket is not locked.

13. The computer program product of claim 12 , wherein the eBPF passively polls and filters the socket system calls in the overlay process.

14. The computer program product of claim 12 , wherein a file description call is injected into the overlay process.

15. The computer program product of claim 14 , wherein a middle process is employed to move between child and parent namespaces to transfer a parent socket connection.

16. The computer program product of claim 12 , wherein a BPF Compiler Collection (BCC) toolkit is employed for polling listen, accept, and connect system calls from a kernel in real-time to the router.

17. The computer program product of claim 16 , wherein the listen system call creates the dummy server.

18. The computer program product of claim 16 , wherein the accept system call accepts new connections and cooperates with accepted clients via the server and client coordinators.

19. The computer program product of claim 16 , wherein the connect system call makes a connection to a host layer once it receives information from a server.

20. The computer program product of claim 12 , wherein, once host connection is established between the dummy client and client server, a file descriptor is transferred to the forwarder via a Unix socket in a host namespace.

21. The computer program product of claim 20 , wherein the forwarder temporarily moves a mount namespace to the overlay process by a setns system call.

22. The computer program product of claim 21 , wherein a BCC toolkit for polling a recvmsg system call from the kernel in real-time is employed to confirm that the transferred file descriptor is ready at the overlay process.

23. A system for building socket transferring between containers in cloud-native environments by using kernel tracing techniques, the system comprising:

memory;

one or more processors;

a server pod implementing a server process; and

a client pod implementing a client process, wherein system calls are transmitted from the server pod to the client pod to:

probe a connection-relevant system call event by using an extended Berkeley Packet Filter (eBPF) to collect and filter data at a router and handled by server and client coordinators;

create a mirror call at a host namespace with a dummy server and dummy client by:

creating the dummy server with mirror listening parameters;

sending a server host address mapping to overlay the server host address to the client coordinator in an overlay process; and

creating and connecting the dummy client to return a client host address to the server coordinator;

transfer mirror connections to the overlay process via a forwarder by temporary namespaces entering and injecting socket system calls; and

probe a transfer call event to map an overlay socket with a transferred dummy socket to activate duplication when the overlay socket is not locked.

24. A computer-implemented method for building socket transferring between containers in cloud-native environments by using kernel tracing techniques, the method comprising:

probing a connection-relevant system call event by employing an extended Berkeley Packet Filter (eBPF) using a BPF Compiler Collection (BCC) toolkit for polling listen, accept, and connect system calls from a kernel in real-time to a router;

creating a mirror call at a host namespace with a dummy server and a dummy client;

transferring mirror connections to an overlay process via a forwarder by:

transferring a file descriptor to the forwarder via a Unix socket in the host namespace;

temporarily moving a mount namespace, via the forwarder, to the overlay process;

injecting a recvmsg system call in place of the overlay process; and

sending the file descriptor via the Unix socket to a listening overlay process; and

probing a transfer call event to map an overlay socket with a transferred dummy socket to activate duplication when the overlay socket is not locked.

25. A computer program product for building socket transferring between containers in cloud-native environments by using kernel tracing techniques, the computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to:

probe a connection-relevant system call event by employing an extended Berkeley Packet Filter (eBPF) using a BPF Compiler Collection (BCC) toolkit for polling listen, accept, and connect system calls from a kernel in real-time to a router;

create a mirror call at a host namespace with a dummy server and a dummy client;

transfer mirror connections to an overlay process via a forwarder by:

transferring a file descriptor to the forwarder via a Unix socket in the host namespace;

temporarily moving a mount namespace, via the forwarder, to the overlay process;

injecting a recvmsg system call in place of the overlay process; and

sending the file descriptor via the Unix socket to a listening overlay process; and

probe a transfer call event to map an overlay socket with a transferred dummy socket to activate duplication when the overlay socket is not locked.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 12, 2021
From: CHOOCHOTKAEW, SUNYANAN; CHIBA, TATSUHIRO
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 057161/0968 →
Continuity (1)
Related Publication 20230052452A1 · Feb 16, 2023