{
  "$schema": "/api/schemas/documents.schema.json",
  "apiVersion": "1.1.0",
  "lastModified": "2026-10-21T16:58:36.503Z",
  "sourcePath": "src/main/data/docs",
  "docId": "RFC9956",
  "document": {
    "abstract": "This document specifies characteristics of a Non-Queue-Building Per-Hop Behavior (NQB PHB). The NQB PHB provides a shallow-buffered, best-effort service as a complement to a Default deep-buffered, best-effort service for Internet services. The purpose of this NQB PHB is to provide a separate queue that enables smooth (i.e., non-bursty), low-data-rate, application-limited traffic microflows, to avoid the delay, delay variation and loss that would ordinarily be caused by sharing a queue with bursty, capacity-seeking traffic. This PHB is implemented without prioritization and can be implemented without rate policing, making it suitable for environments where the use of these features is restricted. The NQB PHB has been developed primarily for use by access network segments, where queuing delay and queuing loss caused by Queue-Building (QB) protocols are manifested; however, its use is not limited to such segments. In particular, the application of NQB PHB to cable broadband links, Wi-Fi links, and mobile network radio/core segments are discussed in this document. This document recommends a specific Differentiated Services Code Point (DSCP) to identify NQB microflows and updates the guidance in RFC 8325 on mapping Differentiated Services (Diffserv or DS) to IEEE 802.11 for this codepoint.",
    "abstract$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML abstract",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9956/",
      "updated": "2026-10-21T16:58:36.503Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "authors": [
      {
        "name": "Greg White"
      },
      {
        "name": "Thomas Fossati"
      },
      {
        "name": "Ruediger Geib"
      }
    ],
    "authors$meta": {
      "confidence": "high",
      "note": "Parsed from Datatracker doc page article:author (profile full names)",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9956/",
      "updated": "2026-10-21T16:58:36.503Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "docId": "RFC9956",
    "docId$meta": {
      "confidence": "high",
      "note": "Derived from RFC number or Datatracker identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9956/",
      "updated": "2026-10-21T16:58:36.503Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "docLabel": "IETF RFC 9956",
    "docLabel$meta": {
      "confidence": "high",
      "note": "Constructed from provider and document identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9956/",
      "updated": "2026-10-21T16:58:36.503Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "docNumber": "9956",
    "docNumber$meta": {
      "confidence": "high",
      "note": "From the RFC index entry (rfc-index.xml <doc-id>)",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9956/",
      "updated": "2026-10-21T16:58:36.503Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "docTitle": "A Non-Queue-Building Per-Hop Behavior (NQB PHB) for Differentiated Services",
    "docTitle$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML title",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9956/",
      "updated": "2026-10-21T16:58:36.503Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "docType": "Standard",
    "docType$meta": {
      "confidence": "high",
      "note": "Mapped from Datatracker std_level or RFC status text",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9956/",
      "updated": "2026-10-21T16:58:36.503Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "doi": "10.17487/RFC9956",
    "doi$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML doi",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9956/",
      "updated": "2026-10-21T16:58:36.503Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "href": "https://doi.org/10.17487/RFC9956",
    "href$meta": {
      "confidence": "high",
      "note": "Derived from DOI (https://doi.org/<doi>)",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9956/",
      "updated": "2026-10-21T16:58:36.503Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "keywords": [
      "DiffServ",
      "DSCP",
      "L4S",
      "Latency",
      "Jitter",
      "Delay Variation",
      "Queuing Variation",
      "One-way Delay",
      "RTT",
      "Quality Of Service",
      "QoS",
      "Quality of Experience",
      "QoE"
    ],
    "keywords$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML keywords",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9956/",
      "updated": "2026-10-21T16:58:36.503Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "pages": "32",
    "pages$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML page-count",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9956/",
      "updated": "2026-10-21T16:58:36.503Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "publicationDate": "2026-05-01",
    "publicationDate$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML date",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9956/",
      "updated": "2026-10-21T16:58:36.503Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "publisher": "IETF",
    "publisher$meta": {
      "confidence": "high",
      "note": "Static: provider",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9956/",
      "updated": "2026-10-21T16:58:36.503Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "references": {
      "bibliographic": [
        "10.1109-ITC30.2018.00034",
        "IETF.draft-ietf-ccwg-bbr-04",
        "10.1145-3009824",
        "10.1145-2063176.2063196",
        "10.1109-IEEESTD.2025.10979691",
        "RFC2475",
        "RFC2598",
        "RFC2661",
        "RFC2914",
        "RFC2983",
        "RFC3246",
        "RFC3551",
        "RFC4301",
        "RFC4594",
        "RFC5127",
        "RFC5681",
        "RFC5865",
        "RFC7893",
        "RFC8033",
        "RFC8034",
        "RFC8083",
        "RFC8100",
        "RFC8126",
        "RFC8289",
        "RFC8290",
        "RFC8622",
        "RFC9330",
        "RFC9331",
        "RFC9332",
        "RFC9435",
        "RFC9438",
        "RFC9957",
        "3GPP.TS-23.501.202603",
        "orphan/RFC9956/h:a9933b88",
        "orphan/RFC9956/h:b8e83298",
        "orphan/RFC9956/h:b8803214",
        "orphan/RFC9956/h:0ef2c0d1",
        "orphan/RFC9956/h:626ba60f"
      ],
      "bibliographic$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML references/informative sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9956/",
        "updated": "2026-10-21T16:58:36.503Z",
        "version": "extractDocs.js@commit:2c1e5418e9d0"
      },
      "normative": [
        "RFC2119",
        "RFC2474",
        "RFC8085",
        "RFC8174",
        "RFC8325"
      ],
      "normative$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML normative references sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9956/",
        "updated": "2026-10-21T16:58:36.503Z",
        "version": "extractDocs.js@commit:2c1e5418e9d0"
      }
    },
    "resolvedHref": "https://www.rfc-editor.org/info/rfc9956/",
    "resolvedHref$meta": {
      "confidence": "high",
      "note": "Final URL resolved via URL redirect verification",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc9956/",
      "updated": "2026-10-21T16:58:36.503Z",
      "version": "extractDocs.js@commit:2c1e5418e9d0"
    },
    "status": {
      "active": true,
      "active$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9956/",
        "updated": "2026-10-21T16:58:36.503Z",
        "version": "extractDocs.js@commit:2c1e5418e9d0"
      },
      "amends": [
        "RFC8325"
      ],
      "amends$meta": {
        "confidence": "high",
        "note": "Parsed from RFC index XML",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9956/",
        "updated": "2026-10-21T16:58:36.503Z",
        "version": "extractDocs.js@commit:2c1e5418e9d0"
      },
      "errataExist": false,
      "errataExist$meta": {
        "confidence": "high",
        "note": "Derived from presence of errata links on RFC/Datatracker pages",
        "originalValue": null,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9956/",
        "updated": "2026-10-21T16:58:36.503Z",
        "version": "extractDocs.js@commit:2c1e5418e9d0"
      },
      "latestVersion": true,
      "latestVersion$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9956/",
        "updated": "2026-10-21T16:58:36.503Z",
        "version": "extractDocs.js@commit:2c1e5418e9d0"
      },
      "statusNote": "Proposed Standard",
      "statusNote$meta": {
        "confidence": "high",
        "note": "Mapped from Datatracker doc.json std_level",
        "originalValue": null,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9956/",
        "updated": "2026-10-21T16:58:36.503Z",
        "version": "extractDocs.js@commit:2c1e5418e9d0"
      },
      "superseded": false,
      "superseded$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc9956/",
        "updated": "2026-10-21T16:58:36.503Z",
        "version": "extractDocs.js@commit:2c1e5418e9d0"
      }
    }
  }
}