Dynamic Buffer Pool Management for Data Transmission
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing data transmission systems face inefficiencies when the transmission buffer size is less than the reception buffer size, leading to potential data packet loss or transmission delays, as they require matching buffer sizes for smooth data communication.
Innovation Solution
A data transmission apparatus and method that utilizes a buffer manager to dynamically allocate and manage buffers of varying sizes, allowing for efficient data packet transmission even when the transmission buffer pool has a smaller capacity than the reception buffer, by dividing data into blocks, converting them into packets, and using acknowledgement messages to update buffer status and return unused buffers.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If the transmission buffer size is made smaller than the reception buffer size, then memory resource utilization is improved, but data packet loss or transmission delays occur
Solution Approach 1:
The transmission buffer is segmented into multiple individual buffers (first buffer, second buffer, third buffer, etc.) instead of using a single large buffer. This segmentation allows the system to manage multiple small buffers collectively, achieving the goal of using smaller buffer sizes while maintaining overall transmission capability and reliability through proper buffer pool management.
Solution Approach 2:
The system changes the parameter of buffer organization from a single large buffer to multiple small buffers with different states (available, occupied, returned). By managing the buffer pool dynamically based on packet transmission status and acknowledgment receipts, the system maintains reliable data transmission while utilizing smaller individual buffer sizes, thus improving memory resource utilization.
2Reliability
If the transmission buffer size is made equal to the reception buffer size, then data packet loss is prevented, but memory resource utilization deteriorates
Solution Approach 1:
Instead of allocating one large transmission buffer equal to the reception buffer size, the system segments the buffer into multiple smaller individual buffers. These segmented buffers are managed as a pool, where each buffer can be independently allocated and returned based on packet transmission status, thereby preventing data packet loss while improving memory resource utilization.
Solution Approach 2:
The buffer pool management is dynamic rather than static. Buffers are allocated when packets need transmission and returned to the pool when acknowledgments are received or retransmission is needed. This dynamic management allows the system to maintain reliability by having buffers available when needed while freeing memory resources when buffers are not actively used, avoiding the need for a permanently allocated large buffer.
3Device complexity
If data processing is performed in maximum transmission units, then overhead increases, but buffer management complexity is reduced
Solution Approach 1:
The system segments data processing into two levels: application layer processing operates on larger data blocks (reducing overhead), while the buffer manager segments these into individual packet-sized buffers for transmission management. This dual-level segmentation allows efficient processing at the application layer while maintaining proper packet-level buffer management, balancing overhead reduction with management complexity.
Solution Approach 2:
The buffer manager acts as an intermediary between the application layer data processing and the actual transmission buffers. It receives data blocks from the application layer, segments them into appropriate packet-sized portions, and manages the buffer pool accordingly. This intermediary layer allows the application layer to process data efficiently in larger units while the buffer manager handles the detailed buffer allocation and management, reducing overall system overhead.
Data Source
AI summary
Disclosed are a data transmission apparatus and a data communication method using the same. The data transmission apparatus includes a buffer manager configured to generate a transmission buffer pool including a plurality of buffers each having a size corresponding to a size of a transmission packet and manage buffer position information and buffer use status information of the plurality of buffers; a data processor configured to divide data into data blocks each having a predetermined size, and a data transmitter configured to convert each of the data blocks received from the data processor into a plurality of transmission packets and request the buffer manager to allocate a number of buffers corresponding to the number of transmission packets.


