{
  "$schema": "/api/schemas/documents.schema.json",
  "apiVersion": "1.1.0",
  "lastModified": "2026-10-16T18:55:49.276Z",
  "sourcePath": "src/main/data/docs",
  "docId": "RFC5682",
  "document": {
    "abstract": "The purpose of this document is to move the F-RTO (Forward RTO-Recovery) functionality for TCP in RFC 4138 from Experimental to Standards Track status. The F-RTO support for Stream Control Transmission Protocol (SCTP) in RFC 4138 remains with Experimental status. See Appendix B for the differences between this document and RFC 4138. Spurious retransmission timeouts cause suboptimal TCP performance because they often result in unnecessary retransmission of the last window of data. This document describes the F-RTO detection algorithm for detecting spurious TCP retransmission timeouts. F-RTO is a TCP sender-only algorithm that does not require any TCP options to operate. After retransmitting the first unacknowledged segment triggered by a timeout, the F-RTO algorithm of the TCP sender monitors the incoming acknowledgments to determine whether the timeout was spurious. It then decides whether to send new segments or retransmit unacknowledged segments. The algorithm effectively helps to avoid additional unnecessary retransmissions and thereby improves TCP performance in the case of a spurious timeout. [STANDARDS-TRACK]",
    "abstract$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML abstract",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5682/",
      "updated": "2026-10-16T18:55:49.276Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "authors": [
      {
        "name": "Pasi Sarolahti"
      },
      {
        "name": "Markku Kojo"
      },
      {
        "name": "Kazunori Yamamoto"
      },
      {
        "name": "Max Hata"
      }
    ],
    "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/rfc5682/",
      "updated": "2026-10-16T18:55:49.276Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "docId": "RFC5682",
    "docId$meta": {
      "confidence": "high",
      "note": "Derived from RFC number or Datatracker identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5682/",
      "updated": "2026-10-16T18:55:49.275Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "docLabel": "IETF RFC 5682",
    "docLabel$meta": {
      "confidence": "high",
      "note": "Constructed from provider and document identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5682/",
      "updated": "2026-10-16T18:55:49.276Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "docNumber": "5682",
    "docNumber$meta": {
      "confidence": "high",
      "note": "Parsed from RFC info page report metadata",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5682/",
      "updated": "2026-10-16T18:55:49.276Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "docTitle": "Forward RTO-Recovery (F-RTO): An Algorithm for Detecting Spurious Retransmission Timeouts with TCP",
    "docTitle$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML title",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5682/",
      "updated": "2026-10-16T18:55:49.276Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "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/rfc5682/",
      "updated": "2026-10-16T18:55:49.276Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "doi": "10.17487/RFC5682",
    "doi$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML doi",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5682/",
      "updated": "2026-10-16T18:55:49.276Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "href": "https://doi.org/10.17487/RFC5682",
    "href$meta": {
      "confidence": "high",
      "note": "Derived from DOI (https://doi.org/<doi>)",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5682/",
      "updated": "2026-10-16T18:55:49.276Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "keywords": [
      "SACK",
      "TCP Loss Recovery"
    ],
    "keywords$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML keywords",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5682/",
      "updated": "2026-10-16T18:55:49.276Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "pages": "19",
    "pages$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML page-count",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5682/",
      "updated": "2026-10-16T18:55:49.276Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "publicationDate": "2009-09-01",
    "publicationDate$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML date",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5682/",
      "updated": "2026-10-16T18:55:49.276Z",
      "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/rfc5682/",
      "updated": "2026-10-16T18:55:49.276Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "references": {
      "bibliographic": [
        "RFC3042",
        "RFC3708",
        "RFC1323",
        "RFC2883",
        "RFC4138",
        "RFC4015",
        "RFC3522",
        "RFC896",
        "RFC4960",
        "orphan/RFC5682/h:c199b90b",
        "orphan/RFC5682/h:19a69eed",
        "orphan/RFC5682/h:1546f3de",
        "orphan/RFC5682/h:b3eecde4",
        "orphan/RFC5682/h:af10d75a",
        "orphan/RFC5682/h:53b57afc",
        "orphan/RFC5682/h:02a89860",
        "orphan/RFC5682/h:ba2f54db",
        "orphan/RFC5682/h:abd4827c",
        "orphan/RFC5682/h:91dd5bd7"
      ],
      "bibliographic$meta": {
        "confidence": "medium",
        "flag": "MIXED_REF_LAYOUT_RISK anchored=27 proseBlocks=32 skippedAnchorBlocks=30",
        "note": "Parsed from RFC HTML references/informative sections",
        "originalValue": [],
        "reviewRequired": true,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5682/",
        "updated": "2026-10-16T18:55:49.276Z",
        "version": "extractDocs.js@commit:a6ae1efef02e"
      },
      "normative": [
        "RFC5681",
        "RFC3517",
        "RFC2119",
        "RFC3782",
        "RFC2018",
        "RFC2988",
        "RFC793"
      ],
      "normative$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML normative references sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5682/",
        "updated": "2026-10-16T18:55:49.276Z",
        "version": "extractDocs.js@commit:a6ae1efef02e"
      }
    },
    "resolvedHref": "https://www.rfc-editor.org/info/rfc5682/",
    "resolvedHref$meta": {
      "confidence": "high",
      "note": "Final URL resolved via URL redirect verification",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc5682/",
      "updated": "2026-10-16T18:55:49.276Z",
      "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/rfc5682/",
        "updated": "2026-10-16T18:55:49.276Z",
        "version": "extractDocs.js@commit:a6ae1efef02e"
      },
      "amends": [
        "RFC4138"
      ],
      "amends$meta": {
        "confidence": "high",
        "note": "Parsed from RFC index XML",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc5682/",
        "updated": "2026-10-16T18:55:49.276Z",
        "version": "extractDocs.js@commit:a6ae1efef02e"
      },
      "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/rfc5682/",
        "updated": "2026-10-16T18:55:49.276Z",
        "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/rfc5682/",
        "updated": "2026-10-16T18:55:49.276Z",
        "version": "extractDocs.js@commit:a6ae1efef02e"
      },
      "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/rfc5682/",
        "updated": "2026-10-16T18:55:49.276Z",
        "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/rfc5682/",
        "updated": "2026-10-16T18:55:49.276Z",
        "version": "extractDocs.js@commit:a6ae1efef02e"
      }
    }
  }
}