{
  "$schema": "/api/schemas/documents.schema.json",
  "apiVersion": "1.1.0",
  "lastModified": "2026-10-16T15:46:59.523Z",
  "sourcePath": "src/main/data/docs",
  "docId": "RFC4787",
  "document": {
    "abstract": "This document defines basic terminology for describing different types of Network Address Translation (NAT) behavior when handling Unicast UDP and also defines a set of requirements that would allow many applications, such as multimedia communications or online gaming, to work consistently. Developing NATs that meet this set of requirements will greatly increase the likelihood that these applications will function properly. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.",
    "abstract$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML abstract",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc4787/",
      "updated": "2026-10-16T15:46:59.523Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "authors": [
      {
        "name": "Francois Audet"
      },
      {
        "name": "Cullen Fluffy Jennings"
      }
    ],
    "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/rfc4787/",
      "updated": "2026-10-16T15:46:59.523Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "docId": "RFC4787",
    "docId$meta": {
      "confidence": "high",
      "note": "Derived from RFC number or Datatracker identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc4787/",
      "updated": "2026-10-16T15:46:59.523Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "docLabel": "IETF RFC 4787",
    "docLabel$meta": {
      "confidence": "high",
      "note": "Constructed from provider and document identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc4787/",
      "updated": "2026-10-16T15:46:59.523Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "docNumber": "4787",
    "docNumber$meta": {
      "confidence": "high",
      "note": "Parsed from RFC info page report metadata",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc4787/",
      "updated": "2026-10-16T15:46:59.523Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "docTitle": "Network Address Translation (NAT) Behavioral Requirements for Unicast UDP",
    "docTitle$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML title",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc4787/",
      "updated": "2026-10-16T15:46:59.523Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "docType": "Best Practice",
    "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/rfc4787/",
      "updated": "2026-10-16T15:46:59.523Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "doi": "10.17487/RFC4787",
    "doi$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML doi",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc4787/",
      "updated": "2026-10-16T15:46:59.523Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "href": "https://doi.org/10.17487/RFC4787",
    "href$meta": {
      "confidence": "high",
      "note": "Derived from DOI (https://doi.org/<doi>)",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc4787/",
      "updated": "2026-10-16T15:46:59.523Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "keywords": [
      "NAT",
      "SIP",
      "UDP"
    ],
    "keywords$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML keywords",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc4787/",
      "updated": "2026-10-16T15:46:59.523Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "pages": "29",
    "pages$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML page-count",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc4787/",
      "updated": "2026-10-16T15:46:59.523Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "publicationDate": "2007-01-01",
    "publicationDate$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML date",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc4787/",
      "updated": "2026-10-16T15:46:59.523Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "publisher": "IETF",
    "publisher$meta": {
      "confidence": "high",
      "note": "Static: provider",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc4787/",
      "updated": "2026-10-16T15:46:59.523Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "references": {
      "bibliographic": [
        "RFC792",
        "RFC1191",
        "RFC1435",
        "RFC1812",
        "RFC1858",
        "RFC1918",
        "RFC2460",
        "RFC2623",
        "RFC2663",
        "RFC3022",
        "RFC3027",
        "RFC3128",
        "RFC3261",
        "RFC3424",
        "RFC3489",
        "RFC3550",
        "RFC3605",
        "RFC4380",
        "T-REC-H.323.2003",
        "orphan/RFC4787/h:7fe668ec",
        "orphan/RFC4787/h:e2393258",
        "orphan/RFC4787/h:519e4ed4"
      ],
      "bibliographic$meta": {
        "confidence": "medium",
        "flag": "MIXED_REF_LAYOUT_RISK anchored=26 proseBlocks=31 skippedAnchorBlocks=28",
        "note": "Parsed from RFC HTML references/informative sections",
        "originalValue": [],
        "reviewRequired": true,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc4787/",
        "updated": "2026-10-16T15:46:59.523Z",
        "version": "extractDocs.js@commit:e0fe4a71cd26"
      },
      "normative": [
        "RFC768",
        "RFC791",
        "RFC2119"
      ],
      "normative$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML normative references sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc4787/",
        "updated": "2026-10-16T15:46:59.523Z",
        "version": "extractDocs.js@commit:e0fe4a71cd26"
      }
    },
    "resolvedHref": "https://www.rfc-editor.org/info/rfc4787/",
    "resolvedHref$meta": {
      "confidence": "high",
      "note": "Final URL resolved via URL redirect verification",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc4787/",
      "updated": "2026-10-16T15:46:59.523Z",
      "version": "extractDocs.js@commit:e0fe4a71cd26"
    },
    "status": {
      "active": true,
      "active$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc4787/",
        "updated": "2026-10-16T15:46:59.523Z",
        "version": "extractDocs.js@commit:e0fe4a71cd26"
      },
      "amendedBy": [
        "RFC6888",
        "RFC7857"
      ],
      "amendedBy$meta": {
        "confidence": "high",
        "note": "Parsed from RFC index XML",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc4787/",
        "updated": "2026-10-16T15:46:59.523Z",
        "version": "extractDocs.js@commit:e0fe4a71cd26"
      },
      "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/rfc4787/",
        "updated": "2026-10-16T15:46:59.523Z",
        "version": "extractDocs.js@commit:e0fe4a71cd26"
      },
      "latestVersion": true,
      "latestVersion$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc4787/",
        "updated": "2026-10-16T15:46:59.523Z",
        "version": "extractDocs.js@commit:e0fe4a71cd26"
      },
      "statusNote": "Best Current Practice",
      "statusNote$meta": {
        "confidence": "high",
        "note": "Mapped from Datatracker doc.json std_level",
        "originalValue": null,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc4787/",
        "updated": "2026-10-16T15:46:59.523Z",
        "version": "extractDocs.js@commit:e0fe4a71cd26"
      },
      "superseded": false,
      "superseded$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc4787/",
        "updated": "2026-10-16T15:46:59.523Z",
        "version": "extractDocs.js@commit:e0fe4a71cd26"
      }
    }
  }
}