USB Redirection Session Reliability via I/O Request Queuing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
USB device redirection in virtual desktop infrastructure (VDI) environments is unreliable over wide area networks due to frequent disconnections, leading to issues like incomplete I/O operations, device removal, and reconnection problems, which often result in user experience disruptions and prevent VDI providers from supporting USB device redirection.
Innovation Solution
Implementing a client-side proxy and server-side agent that queue I/O requests during session disconnections and wait for a specified time to allow resumed operations when the session is restored, or complete requests with error status and remove the device if the session does not reconnect within the time frame.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If USB device redirection is implemented over wide area networks, then user accessibility to USB devices is improved, but session reliability deteriorates due to frequent disconnections
Solution Approach 1:
The system performs preliminary actions by queuing I/O requests before session disconnection occurs and preparing to resume them after reconnection. The proxy and agent queue pending I/O requests during disconnection and automatically resume them after a waiting period, preventing data loss and operation failures that would otherwise occur with network disconnections.
Solution Approach 2:
The system provides beforehand cushioning by implementing a waiting period mechanism that cushions against the harmful effects of frequent disconnections. Instead of immediately removing devices or failing operations upon disconnection, the system waits for a specified period to allow session restoration, thereby protecting against premature device removal and operation failure.
2Reliability
If I/O requests are immediately failed on disconnection, then session stability is improved, but productivity deteriorates due to lost operations
Solution Approach 1:
The system performs preliminary action by queuing I/O requests during the disconnection period rather than immediately failing them. This allows operations to be preserved and automatically resumed after session restoration, maintaining productivity while still providing session stability through the structured queue management and waiting period mechanism.
3Device complexity
If USB devices are removed on disconnection, then device management is simplified, but device reconnection reliability deteriorates
Solution Approach 1:
The system performs preliminary action by maintaining device state information in queues during disconnection rather than immediately removing devices. This preserves device context and enables automatic reconnection after session restoration, improving reconnection reliability while keeping device management straightforward through the automated queue-based approach.
Solution Approach 2:
The system creates a virtual copy of the device state through queued I/O requests and device information during disconnection. This virtual representation allows the device to be effectively 'reconnected' after session restoration without requiring physical reconnection or complex device management, as the queued operations are simply resumed with the restored session.
4Reliability
If a waiting period is implemented before device removal, then session restoration is enabled, but response time increases
Solution Approach 1:
The system applies dynamics by making the waiting period configurable and adaptive rather than fixed. The specified waiting period can be adjusted based on network conditions and user requirements, allowing optimization between session restoration capability and response time. This dynamic parameter enables the system to adapt to different operational contexts and network qualities.
Data Source
AI summary
Session reliability can be improved when a USB device is redirected over a remote session. If a remote session is disconnected while a USB device is redirected over the remote session, a server-side agent and a client-side proxy will both receive a session disconnection notification. In response to this session disconnection notification, the agent and the proxy can each queue any I/O requests pertaining to a USB device that was being redirected over the now-disconnected remote session and commence waiting for a specified period of time. If the disconnected remote session is restored within the specified period of time, the agent and the proxy can send the queued I/O requests over the remote session. Otherwise, the agent and proxy can cause the queued I/O requests to be completed with the proper error status or discarded and can take appropriate steps to remove the device from the server and connect the device to the client.


