Sliding Window Buffer for Memory-Constrained IoT Devices
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Implementations of data buffers using the sliding window protocol on memory-constrained devices are resource intensive due to their asynchronous nature, making it difficult for devices with limited resources to efficiently transmit data without storing full content or awaiting acknowledgments.
Innovation Solution
An owner-free buffer interface is implemented on a local computing device that utilizes a local buffer to receive and transmit chunks of data from a data source, allowing for reuse of memory portions and re-transmission of unacknowledged data chunks without storing full content, using inner and logical positions for identification and retrieval.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a local buffer stores full content for transmission, then data transmission reliability is improved, but memory usage increases
Solution Approach 1:
The patent divides the buffer into multiple portions (first buffer portion, second buffer portion, etc.) that can be independently reused. Each portion stores data chunks temporarily, and when a portion is freed, it can be reallocated for new data without requiring the entire buffer to be large enough to hold all data simultaneously. This segmentation allows reliable transmission while reducing peak memory usage.
Solution Approach 2:
The patent implements a mechanism where buffer portions are discarded (freed) after their data is successfully transmitted or acknowledged, and then recovered (reallocated) for storing new data chunks. The buffer management system tracks which portions are available and reallocates them efficiently, enabling continuous transmission with minimal memory footprint by constantly recycling buffer space.
2Reliability
If the device awaits acknowledgements before replacing buffer memory, then data transmission reliability is improved, but transmission speed decreases
Solution Approach 1:
The patent implements dynamic buffer management where the allocation and reuse of buffer portions is flexible rather than static. Buffer portions can be freed and reallocated based on transmission state, allowing the system to optimize between reliability and speed by freeing buffers for acknowledged data while maintaining buffers for unacknowledged data. This dynamic approach enables continuous transmission without waiting for all acknowledgements.
Solution Approach 2:
The patent prepares buffer portions in advance for potential reuse. When a buffer portion is freed, it is immediately made available for reallocation rather than waiting idle for acknowledgements. The buffer management system proactively manages the pool of available buffer portions, ensuring that new data chunks can be loaded into freed portions without delay, thus maintaining transmission speed while preserving reliability through selective buffer retention.
3Quantity of substance
If memory portions are reused for new data chunks, then memory efficiency is improved, but data retrieval complexity increases
Solution Approach 1:
The patent implements a buffer management system that provides feedback about the state of each buffer portion (allocated, freed, available). This feedback mechanism tracks which portions are in use and which are available for reallocation, managing the complexity of reused memory portions through systematic state tracking and coordination.
Solution Approach 2:
The patent creates a universal buffer management system that handles multiple buffer portions with a single coordinated interface. The buffer management system provides a unified view and control mechanism for all buffer portions, allowing them to be reused efficiently while managing the inherent complexity through a multi-functional management layer that handles allocation, deallocation, and reallocation across all portions.
Data Source
Figure 1
Figure 2
Figure 3~5
AI summary
A sliding window buffer is implemented on a local computing device that places chunks of content from a data source into a local buffer for transmission on a per-chunk basis. A portion of memory in the local buffer can be re-used for a single data transmission operation until the content is fully transmitted to a remote computing device. Logical positions on the local buffer which correlate to inner positions on the data source are utilized to enable the sliding window buffer to retrieve and retransmit chunks of data, if necessary. An inner position indicates a byte location in the data source and a logical position indicates a corresponding byte position in the local buffer. The local computing device can utilize byte positions to retrieve and re-transmit chunks of data if, for example, the device fails to receive an acknowledgement from the remote computing device for any of the data.