Near-End Network Optimizer Delta Compression
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current methods for reducing network resource transmission size, such as delta encoding and shared dictionary compression, have not been widely adopted due to administrative difficulties and the need for extensive storage and client support, especially for resources that frequently change.
Innovation Solution
A near-end network optimizer receives requests from clients, transmits version identifiers to a far-end network optimizer, which responds with difference files to update the stored resource versions, reducing the need for full resource transmission and administrative complexity.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of energy
If delta encoding is used to reduce transmission size, then bandwidth usage is reduced, but the origin server must store many versions of the resource
Solution Approach 1:
A proxy server is introduced as an intermediary between the client and origin server. The proxy server stores multiple versions of resources locally and serves delta-encoded updates to clients, preventing the origin server from needing to store multiple versions. This transfers the storage burden from the origin server to the proxy server, resolving the contradiction.
2Loss of energy
If shared dictionary compression is used, then transmission size is reduced, but it requires administrative effort to maintain dictionaries and client support
Solution Approach 1:
The system uses delta encoding where the proxy server automatically generates and maintains the encoding based on version comparisons between resources. No manual administrative effort is required to maintain dictionaries, and the encoding is generated dynamically based on actual resource changes. This eliminates the administrative complexity associated with shared dictionary compression.
3Productivity
If caching is used for frequently changing resources, then performance is improved, but the cached version quickly becomes stale
Solution Approach 1:
The system implements periodic validation of cached resources through ETag headers and If-None-Match requests. The proxy server periodically checks with the origin server to detect changes using version identifiers (ETags). When changes are detected, the proxy server retrieves updated resources and generates new delta encodings. This periodic validation mechanism maintains both performance (through caching) and reliability (through freshness validation).
Solution Approach 2:
The system uses feedback mechanisms where clients send If-None-Match requests with ETag headers to indicate their current resource version. The origin server or proxy server responds with 304 Not Modified if the resource hasn't changed, or with updated content if it has. This feedback loop ensures clients receive updates only when necessary, maintaining both performance and resource freshness.
Data Source
AI summary
A method and computing device for delta compression techniques for reducing network resource transmission size are described. A first request for a network resource is received. The requested network resource is retrieved. A first response including the network resource is transmitted to the near end network optimizer. The retrieved network resource is stored as a first version of the network resource regardless of a directive that a cached version of the network resource is not to be used to respond to future HTTP requests for that network resource without successful revalidation with an origin server. A second request for the network resource is received. A most current version of the network resource is retrieved. A set of differences between the first version and the most current version of the network resource are determined. The set of differences are transmitted to the near end network optimizer.


