Near-End Network Optimizer Delta Compression

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvebandwidth usageVSAvoidstorage required at origin server
Core Design Contradiction:
Loss of energyVSVolume of stationary object

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvetransmission sizeVSAvoidadministrative complexity and client requirements
Core Design Contradiction:
Loss of energyVSDevice complexity

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.

Inventive Principle:
Principle #25Self-service

3Productivity

If caching is used for frequently changing resources, then performance is improved, but the cached version quickly becomes stale

Engineering Contradiction:
ImproveperformanceVSAvoidresource freshness
Core Design Contradiction:
ProductivityVSReliability

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).

Inventive Principle:
Principle #19Periodic action

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.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10798203B2Method and apparatus for reducing network resource transmission size using delta compression
Publication Date: 2020.10.06 CLOUDFLARE INC
  • US10798203B2 patent drawing
  • US10798203B2 patent drawing
  • US10798203B2 patent drawing

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.