{
  "$schema": "/api/schemas/documents.schema.json",
  "apiVersion": "1.1.0",
  "lastModified": "2026-10-16T18:53:43.313Z",
  "sourcePath": "src/main/data/docs",
  "docId": "RFC5128",
  "document": {
    "abstract": "This memo documents the various methods known to be in use by applications to establish direct communication in the presence of Network Address Translators (NATs) at the current time. Although this memo is intended to be mainly descriptive, the Security Considerations section makes some purely advisory recommendations about how to deal with security vulnerabilities the applications could inadvertently create when using the methods described. This memo covers NAT traversal approaches used by both TCP- and UDP-based applications. This memo is not an endorsement of the methods described, but merely an attempt to capture them in a document. This memo provides information for the Internet community.",
    "abstract$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML abstract",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5128/",
      "updated": "2026-10-16T18:53:43.313Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "authors": [
      {
        "name": "Pyda Srisuresh"
      },
      {
        "name": "Bryan Ford"
      },
      {
        "name": "Dan Kegel"
      }
    ],
    "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/rfc5128/",
      "updated": "2026-10-16T18:53:43.313Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "docId": "RFC5128",
    "docId$meta": {
      "confidence": "high",
      "note": "Derived from RFC number or Datatracker identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5128/",
      "updated": "2026-10-16T18:53:43.313Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "docLabel": "IETF RFC 5128",
    "docLabel$meta": {
      "confidence": "high",
      "note": "Constructed from provider and document identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5128/",
      "updated": "2026-10-16T18:53:43.313Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "docNumber": "5128",
    "docNumber$meta": {
      "confidence": "high",
      "note": "Parsed from RFC info page report metadata",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5128/",
      "updated": "2026-10-16T18:53:43.313Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "docTitle": "State of Peer-to-Peer (P2P) Communication across 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/rfc5128/",
      "updated": "2026-10-16T18:53:43.313Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "docType": "Informational",
    "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/rfc5128/",
      "updated": "2026-10-16T18:53:43.313Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "doi": "10.17487/RFC5128",
    "doi$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML doi",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5128/",
      "updated": "2026-10-16T18:53:43.313Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "href": "https://doi.org/10.17487/RFC5128",
    "href$meta": {
      "confidence": "high",
      "note": "Derived from DOI (https://doi.org/<doi>)",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5128/",
      "updated": "2026-10-16T18:53:43.313Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "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/rfc5128/",
      "updated": "2026-10-16T18:53:43.313Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "publicationDate": "2008-03-01",
    "publicationDate$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML date",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5128/",
      "updated": "2026-10-16T18:53:43.313Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "publisher": "IETF",
    "publisher$meta": {
      "confidence": "high",
      "note": "Static: provider",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5128/",
      "updated": "2026-10-16T18:53:43.313Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "references": {
      "bibliographic": [
        "RFC3303",
        "RFC3235",
        "RFC3027",
        "RFC2766",
        "RFC4966",
        "RFC3330",
        "RFC4941",
        "RFC3102",
        "RFC3261",
        "RFC1928",
        "RFC3489",
        "RFC793",
        "RFC4380",
        "RFC3424",
        "orphan/RFC5128/h:1f0cf62c",
        "orphan/RFC5128/h:ecbe38d7",
        "orphan/RFC5128/h:c18788c7",
        "orphan/RFC5128/h:8547f5b5",
        "orphan/RFC5128/h:15dcfda3",
        "orphan/RFC5128/h:5629bee5",
        "orphan/RFC5128/h:e980ea60",
        "orphan/RFC5128/h:266d01fd",
        "orphan/RFC5128/h:fde903b2",
        "orphan/RFC5128/h:a319783b",
        "orphan/RFC5128/h:6d8ce230",
        "orphan/RFC5128/h:939384ec",
        "orphan/RFC5128/h:fcb517e7",
        "orphan/RFC5128/h:63df9948",
        "orphan/RFC5128/h:6e8a279a",
        "orphan/RFC5128/h:b6a2095b",
        "orphan/RFC5128/h:deb730c1",
        "orphan/RFC5128/h:5cfd07f0",
        "orphan/RFC5128/h:4e902c95"
      ],
      "bibliographic$meta": {
        "confidence": "medium",
        "flag": "MIXED_REF_LAYOUT_RISK anchored=41 proseBlocks=43 skippedAnchorBlocks=40",
        "note": "Parsed from RFC HTML references/informative sections",
        "originalValue": [],
        "reviewRequired": true,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5128/",
        "updated": "2026-10-16T18:53:43.313Z",
        "version": "extractDocs.js@commit:a6ae1efef02e"
      },
      "normative": [
        "RFC2663",
        "RFC3022",
        "RFC4787"
      ],
      "normative$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML normative references sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5128/",
        "updated": "2026-10-16T18:53:43.313Z",
        "version": "extractDocs.js@commit:a6ae1efef02e"
      }
    },
    "resolvedHref": "https://www.rfc-editor.org/info/rfc5128/",
    "resolvedHref$meta": {
      "confidence": "high",
      "note": "Final URL resolved via URL redirect verification",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5128/",
      "updated": "2026-10-16T18:53:43.313Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "status": {
      "active": true,
      "active$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5128/",
        "updated": "2026-10-16T18:53:43.313Z",
        "version": "extractDocs.js@commit:a6ae1efef02e"
      },
      "errataExist": true,
      "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/rfc5128/",
        "updated": "2026-10-16T18:53:43.313Z",
        "version": "extractDocs.js@commit:a6ae1efef02e"
      },
      "errataUrl": [
        "https://www.rfc-editor.org/errata/rfc5128",
        "https://www.rfc-editor.org/errata_search.php?rfc=5128"
      ],
      "errataUrl$meta": {
        "confidence": "high",
        "note": "Parsed from errata links on RFC/Datatracker pages",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5128/",
        "updated": "2026-10-16T18:53:43.313Z",
        "version": "extractDocs.js@commit:a6ae1efef02e"
      },
      "latestVersion": true,
      "latestVersion$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5128/",
        "updated": "2026-10-16T18:53:43.313Z",
        "version": "extractDocs.js@commit:a6ae1efef02e"
      },
      "statusNote": "Informational",
      "statusNote$meta": {
        "confidence": "high",
        "note": "Mapped from Datatracker doc.json std_level",
        "originalValue": null,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5128/",
        "updated": "2026-10-16T18:53:43.313Z",
        "version": "extractDocs.js@commit:a6ae1efef02e"
      },
      "superseded": false,
      "superseded$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5128/",
        "updated": "2026-10-16T18:53:43.313Z",
        "version": "extractDocs.js@commit:a6ae1efef02e"
      }
    }
  }
}