Data Receiving Buffer Management for TCP/IP Performance
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional TCP/IP data receiving methods face issues such as intermittent data reception, inefficient window size notification, and increased overhead due to data copying, leading to performance degradation and power consumption problems.
Innovation Solution
A data receiving apparatus that utilizes a temporary buffer area and a destination buffer area, with a mechanism to identify and write data sequence numbers, allowing direct writing to the destination buffer area when possible, and copying data from the temporary buffer area to the destination buffer area when necessary, while managing buffer sizes to prevent overflow and retransmissions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If data is directly written from NIC to application buffer without intermediate buffering, then data copying overhead is reduced and performance is improved, but data reception becomes intermittent and reliability deteriorates
Solution Approach 1:
The patent segments the buffer management into two distinct phases: a first buffer area for initial data reception and a second buffer area for application data access. This segmentation allows the system to achieve direct writing performance while maintaining reliable continuous reception through proper buffer transition management.
Solution Approach 2:
The patent implements preliminary buffering in the first buffer area before data is made accessible to applications. This preliminary action ensures that data is continuously received and stored in advance, preventing reception intermittency while still enabling efficient direct writing to the second buffer area when applications need data.
2Reliability
If a larger window size is notified to prevent retransmission, then data transmission reliability is improved, but buffer overflow risk increases and device complexity increases
Solution Approach 1:
The patent dynamically manages buffer areas by transitioning data from the first buffer area to the second buffer area as applications consume data. This dynamic buffer management allows the system to notify a larger window size for reliable transmission while automatically preventing overflow through the buffer transition mechanism, reducing the need for complex manual buffer management.
Solution Approach 2:
The patent extracts data from the first buffer area and places it in the second buffer area as needed. This extraction mechanism allows the system to maintain a larger effective window size for reliable transmission while managing actual buffer usage efficiently, reducing the complexity of buffer overflow prevention.
3Reliability
If data is buffered in intermediate memory before application access, then data reception reliability is improved, but data copying overhead increases and power consumption increases
Solution Approach 1:
The patent merges the benefits of intermediate buffering with direct writing by implementing a two-area buffer system where data flows directly from the NIC to the second buffer area while maintaining reliability through the first buffer area. This merging reduces unnecessary data copying operations and associated power consumption while preserving reception reliability.
Solution Approach 2:
The patent strategically uses copying only when necessary - specifically when transitioning data from the first buffer area to the second buffer area - rather than continuous copying. This selective copying approach maintains data reception reliability while minimizing power consumption associated with data copying operations.
Data Source
AI summary
An apparatus includes: a receiver which receives a data sequence; a specifying unit which specifies a temporary buffer area in a data storage and specifies a destination buffer area in the data storage; a first identifying unit which identifies a destination number range depending on a size of the specified destination buffer area so that the range follows a range that was last identified; a writing unit which writes data that falls within one of the ranges in an area in the destination buffer area that corresponds to the sequence number of that data, and writes data that does not fall within it in the temporary buffer area; a copying unit which reads out data falling within the identified range from the temporary buffer area and writes the read-out data in an area in the destination buffer area that is associated with the sequence number of that data.


