{
  "$schema": "/api/schemas/documents.schema.json",
  "apiVersion": "1.1.0",
  "lastModified": "2026-10-12T20:47:59.856Z",
  "sourcePath": "src/main/data/docs",
  "docId": "RFC3489",
  "document": {
    "abstract": "Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs) (STUN) is a lightweight protocol that allows applications to discover the presence and types of NATs and firewalls between them and the public Internet. It also provides the ability for applications to determine the public Internet Protocol (IP) addresses allocated to them by the NAT. STUN works with many existing NATs, and does not require any special behavior from them. As a result, it allows a wide variety of applications to work through existing NAT infrastructure. [STANDARDS-TRACK]",
    "abstract$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML abstract",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc3489/",
      "updated": "2026-10-12T20:13:24.652Z",
      "version": "extractDocs.js@commit:00855ca34fe0"
    },
    "authors": [
      {
        "name": "Jonathan Rosenberg"
      },
      {
        "name": "Joel Weinberger"
      },
      {
        "name": "Christian Huitema"
      },
      {
        "name": "Rohan Mahy"
      }
    ],
    "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/rfc3489/",
      "updated": "2026-10-12T20:13:24.652Z",
      "version": "extractDocs.js@commit:00855ca34fe0"
    },
    "docId": "RFC3489",
    "docId$meta": {
      "confidence": "high",
      "note": "Derived from RFC number or Datatracker identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc3489/",
      "updated": "2026-10-12T20:13:24.652Z",
      "version": "extractDocs.js@commit:00855ca34fe0"
    },
    "docLabel": "IETF RFC 3489",
    "docLabel$meta": {
      "confidence": "high",
      "note": "Constructed from provider and document identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc3489/",
      "updated": "2026-10-12T20:13:24.652Z",
      "version": "extractDocs.js@commit:00855ca34fe0"
    },
    "docNumber": "3489",
    "docNumber$meta": {
      "confidence": "high",
      "note": "Parsed from RFC info page report metadata",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc3489/",
      "updated": "2026-10-12T20:13:24.652Z",
      "version": "extractDocs.js@commit:00855ca34fe0"
    },
    "docTitle": "STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)",
    "docTitle$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML title",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc3489/",
      "updated": "2026-10-12T20:13:24.652Z",
      "version": "extractDocs.js@commit:00855ca34fe0"
    },
    "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/rfc3489/",
      "updated": "2026-10-12T20:13:24.652Z",
      "version": "extractDocs.js@commit:00855ca34fe0"
    },
    "doi": "10.17487/RFC3489",
    "doi$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML doi",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc3489/",
      "updated": "2026-10-12T20:13:24.652Z",
      "version": "extractDocs.js@commit:00855ca34fe0"
    },
    "href": "https://doi.org/10.17487/RFC3489",
    "href$meta": {
      "confidence": "high",
      "note": "Derived from DOI (https://doi.org/<doi>)",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc3489/",
      "updated": "2026-10-12T20:13:24.652Z",
      "version": "extractDocs.js@commit:00855ca34fe0"
    },
    "keywords": [
      "STUN",
      "UDP",
      "NAT",
      "Application",
      "Firewalls"
    ],
    "keywords$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML keywords",
      "originalValue": [
        "STUN",
        "Simple Traversal of User Datagram Protocol",
        "UDP",
        "NATs",
        "Network Address Translators",
        "Lightweight",
        "Application",
        "Firewalls"
      ],
      "overridden": true,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc3489/",
      "updated": "2026-10-12T20:47:59.856Z",
      "version": "extractDocs.js@commit:158b95d12c23"
    },
    "pages": "47",
    "pages$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML page-count",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc3489/",
      "updated": "2026-10-12T20:13:24.652Z",
      "version": "extractDocs.js@commit:00855ca34fe0"
    },
    "publicationDate": "2003-03-01",
    "publicationDate$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML date",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc3489/",
      "updated": "2026-10-12T20:13:24.652Z",
      "version": "extractDocs.js@commit:00855ca34fe0"
    },
    "publisher": "IETF",
    "publisher$meta": {
      "confidence": "high",
      "note": "Static: provider",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc3489/",
      "updated": "2026-10-12T20:13:24.652Z",
      "version": "extractDocs.js@commit:00855ca34fe0"
    },
    "references": {
      "bibliographic": [
        "RFC3235",
        "RFC3303",
        "RFC3261",
        "RFC3027",
        "RFC1889",
        "RFC2104",
        "RFC1510",
        "RFC2616",
        "RFC3424",
        "orphan/RFC3489/h:10f5d324",
        "orphan/RFC3489/h:133831be"
      ],
      "bibliographic$meta": {
        "confidence": "medium",
        "flag": "MIXED_REF_LAYOUT_RISK anchored=18 proseBlocks=24 skippedAnchorBlocks=20",
        "note": "Parsed from RFC HTML references/informative sections",
        "originalValue": [],
        "reviewRequired": true,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc3489/",
        "updated": "2026-10-12T20:13:24.652Z",
        "version": "extractDocs.js@commit:00855ca34fe0"
      },
      "normative": [
        "RFC2119",
        "RFC2246",
        "RFC2782",
        "RFC3268",
        "RFC2818",
        "RFC791",
        "RFC2827"
      ],
      "normative$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML normative references sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc3489/",
        "updated": "2026-10-12T20:13:24.652Z",
        "version": "extractDocs.js@commit:00855ca34fe0"
      }
    },
    "resolvedHref": "https://www.rfc-editor.org/info/rfc3489/",
    "resolvedHref$meta": {
      "confidence": "high",
      "note": "Final URL resolved via URL redirect verification",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc3489/",
      "updated": "2026-10-12T20:13:24.652Z",
      "version": "extractDocs.js@commit:00855ca34fe0"
    },
    "status": {
      "active": false,
      "active$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc3489/",
        "updated": "2026-10-12T20:13:24.652Z",
        "version": "extractDocs.js@commit:00855ca34fe0"
      },
      "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/rfc3489/",
        "updated": "2026-10-12T20:13:24.652Z",
        "version": "extractDocs.js@commit:00855ca34fe0"
      },
      "latestVersion": false,
      "latestVersion$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc3489/",
        "updated": "2026-10-12T20:13:24.652Z",
        "version": "extractDocs.js@commit:00855ca34fe0"
      },
      "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/rfc3489/",
        "updated": "2026-10-12T20:13:24.652Z",
        "version": "extractDocs.js@commit:00855ca34fe0"
      },
      "superseded": true,
      "superseded$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc3489/",
        "updated": "2026-10-12T20:13:24.652Z",
        "version": "extractDocs.js@commit:00855ca34fe0"
      },
      "supersededBy": [
        "RFC5389"
      ],
      "supersededBy$meta": {
        "confidence": "high",
        "note": "Parsed from RFC index XML",
        "originalValue": [],
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc3489/",
        "updated": "2026-10-12T20:13:24.652Z",
        "version": "extractDocs.js@commit:00855ca34fe0"
      }
    }
  }
}