IP Library › Granted Patent US 12,585,512
Granted Patent B2
US 12,585,512 · App. 19/171,788 · Granted Mar 24, 2026

Customized socket application programming interface functions

Inventors: Samuel Sipakko (Espoo, FI); Erkki Juhani Hietala (Espoo, FI); Kimmo Kalervo Hätönen (Espoo, FI); Jari Henry Juhani Karppinen (Espoo, FI)
Assignee: NOKIA SOLUTIONS AND NETWORKS OY
G06F9/544G06F9/44521
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 12,585,512
App. No.
19/171,788
Granted
Mar 24, 2026
Kind
B2
Abstract

Disclosed is a method comprising replacing one or more socket application programming interface functions with one or more customized socket application programming interface functions for at least one of a transmission control protocol client application or a transmission control protocol server application; and calling the one or more customized socket application programming interface functions for creating one or more shared memory channels for communication between the transmission control protocol client application and the transmission control protocol server application.

Claims (58)

1 . An apparatus comprising at least one processor, and at least one memory storing instructions that, when executed by the at least one processor, cause the apparatus at least to:

replace one or more socket application programming interface functions with one or more customized socket application programming interface functions for at least one of a transmission control protocol client application or a transmission control protocol server application,

wherein the replacing is performed without modifying any source code of the transmission control protocol client application and the transmission control protocol server application,

wherein the one or more socket application programming interface functions are configured at least to create one or more transmission control protocol sockets for communication between the transmission control protocol client application and the transmission control protocol server application,

wherein the one or more customized socket application programming interface functions are configured at least to create one or more shared memory channels for the communication between the transmission control protocol client application and the transmission control protocol server application;

call the one or more customized socket application programming interface functions for creating the one or more shared memory channels for the communication between the transmission control protocol client application and the transmission control protocol server application;

detect a failure associated with the one or more shared memory channels; and

based on detecting the failure, utilize the one or more transmission control protocol sockets for the communication between the transmission control protocol client application and the transmission control protocol server application.

2 . The apparatus of claim 1 , wherein the replacing comprises remapping one or more socket application programming interface calls from the one or more socket application programming interface functions to the one or more customized socket application programming interface functions by using a dynamic linker at a runtime of the at least one of the transmission control protocol client application or the transmission control protocol server application.

3 . The apparatus of claim 1 , caused to:

preload a shared library into the transmission control protocol client application and the transmission control protocol server application when starting the transmission control protocol client application and the transmission control protocol server application,

wherein the shared library comprises the one or more customized socket application programming interface functions.

4 . The apparatus of claim 1 , wherein the one or more customized socket application programming interface functions are comprised in a shared library integrated into the transmission control protocol client application and the transmission control protocol server application prior to starting the transmission control protocol client application and the transmission control protocol server application.

5 . The apparatus of claim 1 , wherein the one or more customized socket application programming interface functions are comprised in a kernel of an operating system of the apparatus.

6 . The apparatus of claim 5 , wherein the replacing comprises using a loadable kernel module to intercept and redirect one or more system calls from the one or more socket application programming interface functions to the one or more customized socket application programming interface functions.

7 . The apparatus of claim 5 , wherein the replacing comprises modifying the kernel of the operating system of the apparatus to direct one or more calls to the one or more customized socket application programming interface functions.

8 . The apparatus of claim 5 , caused to:

add, within the kernel of the operating system of the apparatus, a transport mechanism for utilizing the one or more shared memory channels for the communication between the transmission control protocol client application and the transmission control protocol server application,

wherein the one or more customized socket application programming interface functions are configured to support the transport mechanism added within the kernel.

9 . The apparatus of claim 1 , wherein the one or more customized socket application programming interface functions are further configured to create the one or more transmission control protocol sockets.

10 . The apparatus of claim 9 , wherein the apparatus is caused to create the one or more shared memory channels based on a type and an address of the one or more transmission control protocol sockets.

11 . The apparatus of claim 9 , wherein the one or more customized socket application programming interface functions are further configured to:

associate the one or more transmission control protocol sockets with a context indicating a possibility for using the one or more shared memory channels as an alternative to the one or more transmission control protocol sockets, and

start the at least one of the transmission control protocol client application or the transmission control protocol server application based on the context indicating the possibility for using the one or more shared memory channels, such that the at least one of the transmission control protocol client application or the transmission control protocol server application is configured to support the one or more shared memory channels for the communication between the transmission control protocol client application and the transmission control protocol server application.

12 . The apparatus of claim 11 , caused to:

perform one or more further socket application programming interface calls associated with one or more socket file descriptors;

determine whether the one or more socket file descriptors are associated with the context indicating the possibility for using the one or more shared memory channels; and

based at least on determining that the one or more socket file descriptors are associated with the context, utilize the one or more shared memory channels for the communication between the transmission control protocol client application and the transmission control protocol server application according to the one or more further socket application programming interface calls.

13 . The apparatus of claim 12 , wherein the utilization of the one or more shared memory channels for the communication comprises at least one of:

writing, by the transmission control protocol client application or the transmission control protocol server application, one or more messages in the one or more shared memory channels, or

reading, by the transmission control protocol server application or the transmission control protocol client application, the one or more messages from the one or more shared memory channels.

14 . The apparatus of claim 1 , caused to:

determine whether the one or more shared memory channels are available for the communication; and

based at least on determining that the one or more shared memory channels are available for the communication, utilize the one or more shared memory channels for the communication between the transmission control protocol client application and the transmission control protocol server application.

15 . The apparatus of claim 1 , caused to:

determine whether the transmission control protocol client application and the transmission control protocol server application are capable of utilizing the one or more shared memory channels; and

based at least on determining that the transmission control protocol client application and the transmission control protocol server application are capable of utilizing the one or more shared memory channels, utilize the one or more shared memory channels for the communication between the transmission control protocol client application and the transmission control protocol server application.

16 . The apparatus of claim 1 , caused to:

determine whether the one or more shared memory channels are available for the communication; and

based on determining that the one or more shared memory channels are not available for the communication, utilize the one or more transmission control protocol sockets for the communication between the transmission control protocol client application and the transmission control protocol server application.

17 . The apparatus of claim 1 , wherein the transmission control protocol client application is comprised in a first container within a first host, and the transmission control protocol server application is comprised in a second container within a second host different from the first host,

wherein the apparatus comprises the first host or the second host.

18 . A method comprising:

replacing one or more socket application programming interface functions with one or more customized socket application programming interface functions for at least one of a transmission control protocol client application or a transmission control protocol server application,

wherein the replacing is performed without modifying any source code of the transmission control protocol client application and the transmission control protocol server application,

wherein the one or more socket application programming interface functions are configured at least to create one or more transmission control protocol sockets for communication between the transmission control protocol client application and the transmission control protocol server application,

wherein the one or more customized socket application programming interface functions are configured at least to create one or more shared memory channels for the communication between the transmission control protocol client application and the transmission control protocol server application;

calling the one or more customized socket application programming interface functions for creating the one or more shared memory channels for the communication between the transmission control protocol client application and the transmission control protocol server application;

detecting a failure associated with the one or more shared memory channels; and

based on detecting the failure, utilizing the one or more transmission control protocol sockets for the communication between the transmission control protocol client application and the transmission control protocol server application.

19 . A non-transitory computer readable medium comprising program instructions which, when executed by an apparatus, cause the apparatus to perform at least the following:

replacing one or more socket application programming interface functions with one or more customized socket application programming interface functions for at least one of a transmission control protocol client application or a transmission control protocol server application,

wherein the replacing is performed without modifying any source code of the transmission control protocol client application and the transmission control protocol server application,

wherein the one or more socket application programming interface functions are configured at least to create one or more transmission control protocol sockets for communication between the transmission control protocol client application and the transmission control protocol server application,

wherein the one or more customized socket application programming interface functions are configured at least to create one or more shared memory channels for the communication between the transmission control protocol client application and the transmission control protocol server application;

calling the one or more customized socket application programming interface functions for creating the one or more shared memory channels for the communication between the transmission control protocol client application and the transmission control protocol server application;

detecting a failure associated with the one or more shared memory channels; and

based on detecting the failure, utilizing the one or more transmission control protocol sockets for the communication between the transmission control protocol client application and the transmission control protocol server application.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 3, 2025
From: SIPAKKO, SAMUEL; JUHANI HIETALA, ERKKI; KALERVO HÄTÖNEN, KIMMO; HENRY JUHANI KARPPINEN, JARI
To: NOKIA SOLUTIONS AND NETWORKS OY
Reel/Frame 072141/0817 →
Priority Claims (1)
FI 20245434 · Apr 8, 2024 · national
Continuity (1)
Related Publication 20250315321A1 · Oct 9, 2025
References Cited (26)
US 7580915B2 · Braun · 2009 [cited by examiner]
US 8555295B2 · Karino et al. · 2013 [cited by applicant]
US 10348867B1 · Gemignani, Jr. · 2019 [cited by applicant]
US 10516623B2 · Leafe et al. · 2019 [cited by applicant]
US 20040205208A1 · Koponen · 2004 [cited by examiner]
US 20060075119A1 · Hussain et al. · 2006 [cited by applicant]
US 20140059206A1 · Venkateshwaran · 2014 [cited by examiner]
US 20140280984A1 · Raymond et al. · 2014 [cited by applicant]
US 20140304719A1 · Pope · 2014 [cited by examiner]
US 20170132173A1 · Cai et al. · 2017 [cited by applicant]
US 20190065291A1 · Macneil et al. · 2019 [cited by applicant]
US 20220019362A1 · Badiger · 2022 [cited by examiner]
US 20220114055A1 · Doshi · 2022 [cited by examiner]
US 20230156060A1 · Shribman et al. · 2023 [cited by applicant]
WO 2016011358A1 · 2016 [cited by applicant]
Silas Springer “BALSA: Bundle Abstraction Layer for Socket Applications” (Year: 2024). [cited by examiner]
Nedzelskyi et al., “Research of Efficiency of Multi-Core Computers with Shared Memory”, 7th International Conference on Future Internet of Things and Cloud Workshops (FiCloudW), Aug. 26-28, 2019, pp. 111-114. [cited by applicant]
Hobson et al., “Shared-Memory Communication for Containerized Workflows”, IEEE/ACM 21st International Symposium on Cluster, Cloud and Internet Computing (CCGrid), May 10-13, 2021, pp. 123-132. [cited by applicant]
“SHML Library Executable binary loading”, Nokia, Version 0.5, 2023, pp. 1-7. [cited by applicant]
“IEEE 802.11”, Wikipedia, Retrieved on Mar. 21, 2025, Webpage available at : https://en.wikipedia.org/wiki/IEEE_802.11. [cited by applicant]
“IEEE 802.15”, Wikipedia, Retrieved on Mar. 21, 2025, Webpage available at : https://en.wikipedia.org/wiki/IEEE_802.15. [cited by applicant]
Office action received for corresponding Finnish Patent Application No. 20245434, dated Sep. 13, 2024, 16 pages. [cited by applicant]
Khasgiwale et al., “Shimmy: Accelerating inter-container communication for the IoT Edge”, IEEE Global Communications Conference: IoT and Sensor Networks, Dec. 4-8, 2023, pp. 4461-4466. [cited by applicant]
Office action received for corresponding Finnish Patent Application No. 20245434, dated Mar. 5, 2025, 12 pages. [cited by applicant]
Li et al., “SocksDirect: Datacenter Sockets can be Fast and Compatible”, Proceedings of the ACM Special Interest Group on Data Communication, Aug. 19-23, 2019, pp. 90-103. [cited by applicant]
Extended European Search Report corresponding to EP Application No. 25167681.3, dated Sep. 29, 2025. [cited by applicant]