Content deleted Content added
→Prevention and remediation: Grammar fix |
|||
Line 32:
Active use of extension points is required if they are not to ossify.{{sfn|Thomson|Pauly|2021|loc=3. Active Use}} Reducing the number of extension points, documenting invariants that protocol participants can rely on as opposed to incidental details that must not be relied upon, and prompt detection of issues in deployed systems can assist in ensuring active use.{{sfn|Thomson|Pauly|2021|loc=4. Complementary Techniques}} However, even active use may only exercise a narrow portion of the protocol and ossification can still occur in the parts that remain invariant in practice despite theoretical variability.{{sfn|Thomson|Pauly|2021|loc=3.1. Dependency Is Better}}{{sfn|Trammell|Kuehlewind|2019|p=7}} "Greasing" an extension point, where some implementations indicate support for non-existent extensions, can ensure that actually-existent-but-unrecognised extensions are tolerated (cf. [[chaos engineering]]).{{sfn|Thomson|Pauly|2021|loc=3.3. Falsifying Active Use}} [[HTTP headers]] are an example of an extension point that has successfully avoided significant ossification, as participants will generally ignore unrecognised headers.{{sfn|Thomson|Pauly|2021|loc=3.4. Examples of Active Use}}
A new protocol may be designed to mimic the wire image of an existing ossified protocol;{{sfn|Papastergiou|Fairhurst|Ros|Brunstrom|2017|p=623}} alternatively, a new protocol may be
Besides middleboxes, other sources of ossification can also be resisted. [[User-space]] implementation of protocols can lead to more rapid evolution. If the new protocol is encapsulated in UDP, then user-space implementation is possible.{{sfn|Papastergiou|Fairhurst|Ros|Brunstrom|2017|p=630}}{{sfn|Corbet|2016}} Where support for protocols is uncertain, participants may simultaneously try alternative protocols, at the cost of increasing the amount of data sent.{{sfn|Papastergiou|Fairhurst|Ros|Brunstrom|2017|p=629}}
|