Client-Side Network Measurement via Browser Background Process

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Content providers face challenges in providing fast and reliable web services due to high latency and service interruptions, as they often lack application control over client devices to perform client-side network measurements, which can be hindered by browser extensions and security concerns when injecting executable codes.

Innovation Solution

Implementing client-side measurement of network conditions through a background process in web browsers that transmit status reports to additional servers in a CDN, allowing the CDN to infer client-side measurements without requiring application control or executable code injection, using Network Error Logging (NEL) and Report-To headers to direct status reports to various endpoints.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If executable codes are injected into delivered content to enable client-side measurements, then client-side network measurements can be obtained, but browser extensions may prevent execution and security/privacy concerns arise

Engineering Contradiction:
Improveclient-side network measurementsVSAvoidmeasurement execution reliability
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The patent introduces a background process as an intermediary component that runs independently of the web browser's JavaScript execution environment. This background process receives requests from the CDN server and performs network measurements without being subject to browser extension blocking, thereby reliably obtaining client-side network measurements while avoiding the reliability issues of code injection

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent replaces the mechanical system of JavaScript code injection and execution with a different approach using background processes that communicate through standardized protocols. This substitution eliminates the dependency on browser's JavaScript engine and its susceptibility to extension interference, achieving measurement reliability through a fundamentally different technical mechanism

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

2Measurement precision

If application control is required at client side to perform measurements, then accurate client-side network conditions can be obtained, but content providers may not have application control over client devices

Engineering Contradiction:
Improveclient-side network conditionsVSAvoiddeployment flexibility
Core Design Contradiction:
Measurement precisionVSAdaptability or versatility

Solution Approach 1:

The background process serves as an intermediary that bridges the gap between the CDN server and the client device's network conditions. It enables the server to obtain client-side measurements without requiring direct application control, as the background process independently executes measurements and reports results back to the server through standardized communication protocols

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The background process operates autonomously on the client device, performing network measurements without requiring content provider control or intervention. It self-manages the measurement execution and automatically reports results to the CDN server, enabling deployment flexibility while maintaining measurement precision

Inventive Principle:
Principle #25Self-service

3Ease of operation

If server-side measurements are used to determine network conditions, then measurements can be performed without client-side control, but server-side measurements cannot accurately reflect client-side network experience

Engineering Contradiction:
Improvemeasurement operation simplicityVSAvoidclient-side network experience accuracy
Core Design Contradiction:
Ease of operationVSMeasurement precision

Solution Approach 1:

The background process acts as an intermediary positioned at the client side that captures actual network conditions experienced by the client device. It performs measurements from the client's vantage point and reports results to the server, providing accurate client-side network experience data while maintaining operational simplicity through automated background execution

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

Instead of having the server perform measurements (server-side), the patent inverts the approach by having the client device perform measurements through the background process and report results to the server. This inversion enables accurate capture of client-side network experience while keeping the measurement operation simple and automated

Inventive Principle:
Principle #13The other way round (Inversion)

Data Source

PatentUS11546408B2Client-side measurement of computer network conditions
Publication Date: 2023.01.03 MICROSOFT TECHNOLOGY LICENSING LLC
  • US11546408B2 patent drawing
  • US11546408B2 patent drawing
  • US11546408B2 patent drawing

AI summary

Techniques of client-side measurement of computer network conditions without application control are disclosed herein. One example technique includes instructing a web browser on a client device to submit status report to a server of a computer system currently not providing content to the client device. The example technique can then include identifying multiple packets containing the status report from the web browser received at the server corresponding, determining a condition of the computer network between the server and the client device based on transmission/reception measurements of the received multiple packets at the server, and selectively directing the server of the computer system to provide the content requested by the web server based on the determined condition of the computer network.