Visual RFC.
ALL RFCs / RFC 8586
Read the RFC ↗
RFC 8586 / Forwarding without loops

Append and preserve the field

03

A participating CDN preserves existing CDN-Loop information and adds its own entry. The list can be extended with a comma or another field line. Customer configuration cannot be allowed to remove or rewrite the loop record if the mechanism is to function. The example shows a third CDN named c.example.

RFC 8586 · § 2EXAMPLE
3 / 3
Append and preserve the fieldCDN C first receives two physical CDN-Loop field lines containing A and B with B’s quoted trace parameter. C then appends its own field line, preserving the earlier values and forming the logical three-entry list. The last state is a separate configuration example: a customer’s remove-header operation stops at CDN control. It does not depict an erased outgoing record as conforming, and adding entries remains a SHOULD recommendation.Preserve the record across a forwardCDN-Loop: a.exampleCDN-Loop: b.example; trace="one,two"CustomerCDN controlremove CDN-LoopConfiguration rewrite refusedCustomer rules cannot erase the loop record
03
Refuse the configuration rewrite

A hypothetical customer asks to remove CDN-Loop. The configuration operation stops at CDN control; the picture does not forward an erased record as a conforming action.

Source for this drawing: RFC 8586 · Read RFC section 2 ↗

Protocol participantThreat or exceptionProtocol controlSimplified drawings · precise section references
New to this? Start hereA quick picture + helpful background

A message needs an address.

Think of a packet as a small addressed envelope. Devices pass it onward; transport protocols decide what delivery promises an application gets.

Helpful first, if these ideas are unfamiliar

These pictures are analogies to help you learn. The linked RFC explains the actual rules.

Terms in this drawing
Logical list
The combined sequence represented by one or more field lines of this comma-list field.
Customer configuration
Rules an origin customer supplies to a CDN; these cannot be allowed to disable this field’s preservation.
Related RFCs and changes

“Updates” changes part of an earlier RFC. “Obsoletes” replaces it. This list shows selected related documents.

KEY POINT

Preserve earlier entries and add the next one without exposing a customer rewrite switch.

  • Conforming CDNs SHOULD add a cdn-info entry in every request they generate or forward. This is SHOULD, not an invented MUST.
  • A # list field can be extended by comma-separating values or by creating another field line with the desired value; repeated field lines represent one logical list.
  • Effectiveness relies on all intermediaries preserving the field. Sections2/3 explain why customers cannot be allowed to modify or remove it through their configuration.
  • The header field SHOULD NOT be used for other purposes. It is not a substitute for authorization or an unrestricted tracing feature.
DETAILS

Different physical field-line arrangements can carry the same logical list. Preserve quoted values and earlier entries when combining them.

Read the RFC section ↗

All chapters in RFC 8586

Drawing view

Scroll the drawing to see every part. Playback controls stay above it.

RFC 9700 / CHAPTERS

Chapters

For full details, tables, algorithms, and exceptions, read the original RFC.

RFC status and corrections ↗