Browse Prior Art Database

Method and System to Clean Up User Space TCP Stack Library on Abnormal Exit of Application

IP.com Disclosure Number: IPCOM000237231D
Publication Date: 2014-Jun-09
Document File: 4 page(s) / 306K

Publishing Venue

The IP.com Prior Art Database

Abstract

User Space network processing is popular for various reasons (e.g. OpenOnload, DPDK etc). User Space network processing like TCP stack processing improves system performance but if the user space networking process exits (normal or abnormal), the TCP stack will be lost and will not be able to close the connections gracefully. TCP connections can have large timeouts; this will lead to hogging of network resources. This problem can be addressed by duplicating and backing up the information in kernel via some kernel module. However, this approach leads to kernel module development and subjects the internal details to be open source (GPL). Though a shared memory can be used between user space and kernel space for maintaining such shared data, there will be additional run time and development costs. The motivation is to avoid the kernel module to save the development, maintenance cost and also to save the run time sync to improve the system performance. This concept is generic; it can be used with any user space applications for cleanup.

This text was extracted from a Microsoft Word document.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 53% of the total text.

Title

Method and System to Clean Up User Space TCP Stack Library on Abnormal Exit of Application

Abstract

User Space network processing is popular for various reasons (e.g. OpenOnload, DPDK etc). User Space network processing like TCP stack processing improves system performance but if the user space networking process exits (normal or abnormal), the TCP stack will be lost and will not be able to close the connections gracefully.  TCP connections can have large timeouts; this will lead to hogging of network resources.  This problem can be addressed by duplicating and backing up the information in kernel via some kernel module.  However, this approach leads to kernel module development and subjects the internal details to be open source (GPL).  Though a shared memory can be used between user space and kernel space for maintaining such shared data, there will be additional run time and development costs. The motivation is to avoid the kernel module to save the development, maintenance cost and also to save the run time sync to improve the system performance. This concept is generic; it can be used with any user space applications for cleanup.

Problem

User space networking is required to design high-performance network solutions for Multicore systems.  However when implemented as a network library, its life-span is limited to the life-span of user applications. Any abnormal exist/crash in the application will cause the network library to lose all the state information. This problem is serious with the TCP protocol processing in user space as TCP will not be able to close the connections gracefully on abnormal exists.  This will lead to hogging of the network resources and re-establishment of the connections will also be problematic.


Solution to problem

The solution uses the following Linux concepts,

1.       If a process has shared memory in its address space and if it forks then the child will also have access to that shared memory.

2.       Even if the parent process dies, the shared memory will be alive in the child process address spa...