Pre-boot File Transfer Using Offset-Based Packet Reordering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional pre-boot file transfer systems in information handling systems, such as those using TCP in UEFI environments, face processing overhead and network throughput issues due to packet sequencing, reordering, and acknowledgement processes, leading to delayed boot times and degraded network performance.
Innovation Solution
The implementation of a payload assembling engine that uses file offset values to reorder packets in a pre-boot environment, allowing for efficient transfer of files by storing packets in the receive buffer in the order received and writing them into an application buffer based on these offsets, reducing the need for sequence numbering and retransmissions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If TCP packet sequencing and reordering is implemented to ensure reliable data transfer, then data integrity is improved, but processing overhead and boot time increase
Solution Approach 1:
The patent applies preliminary action by pre-numbering packets with sequence numbers before transmission. The receiving device uses these pre-assigned sequence numbers to directly place packets in the correct positions in the receive buffer without requiring complex reordering operations, thus maintaining data integrity while reducing processing overhead and boot time
Solution Approach 2:
The patent segments the file transfer process into individually numbered packets, each with a unique sequence number. This segmentation allows the receiving device to process packets independently and place them in the correct order using simple arithmetic operations on the sequence numbers, rather than requiring complex reordering logic
2Reliability
If TCP acknowledgements and retransmission requests are sent for each packet, then data reliability is improved, but network bandwidth is consumed and throughput decreases
Solution Approach 1:
The patent merges multiple individual packet acknowledgements into a single cumulative acknowledgement. Instead of sending separate ACK messages for each received packet, the receiving device sends one acknowledgement that confirms receipt of multiple packets up to a certain sequence number, significantly reducing network overhead and improving throughput while maintaining reliability
Solution Approach 2:
The patent uses sequence numbers as copies of position information embedded in each packet. These sequence number copies allow the receiving device to determine packet order and detect missing packets without requiring complex comparison logic, enabling efficient reliability checks with minimal network communication
3Device complexity
If the UEFI pre-boot environment uses single-threaded mode for file transfer, then system simplicity is maintained, but the TCP receive buffer creates a bottleneck and delays boot operations
Solution Approach 1:
The patent applies preliminary action by pre-calculating and storing the relationship between sequence numbers and buffer positions. This allows the single-threaded UEFI environment to quickly determine where to place each packet in the receive buffer using simple arithmetic operations, avoiding complex reordering processes and reducing boot time delays
Solution Approach 2:
The patent changes the parameter representation from complex packet metadata to simple sequence numbers. This parameter change enables the single-threaded system to efficiently manage the receive buffer using basic arithmetic operations, maintaining system simplicity while improving boot speed by eliminating bottlenecks
Data Source
AI summary
A pre-boot file transfer system includes at least one server device that creates a plurality of packets for a file and provides a respective file offset value for each of the plurality of packets in a header of that packet. The at least one server device transmits each of the plurality of packets over a network to a client device that is in a pre-boot environment. The client device receives each of the plurality of packets and stores the plurality of packets in a receive buffer in the order that the plurality of packets were received. The client device then writes the plurality of packets that were stored in the receive buffer into an application buffer in an order that is defined by the respective file offset values for the plurality of packets.


