{
  "$schema": "/api/schemas/documents.schema.json",
  "apiVersion": "1.1.0",
  "lastModified": "2026-10-13T17:51:40.271Z",
  "sourcePath": "src/main/data/docs",
  "docId": "RFC3449",
  "document": {
    "abstract": "This document describes TCP performance problems that arise because of asymmetric effects. These problems arise in several access networks, including bandwidth-asymmetric networks and packet radio subnetworks, for different underlying reasons. However, the end result on TCP performance is the same in both cases: performance often degrades significantly because of imperfection and variability in the ACK feedback from the receiver to the sender. The document details several mitigations to these effects, which have either been proposed or evaluated in the literature, or are currently deployed in networks. These solutions use a combination of local link- layer techniques, subnetwork, and end-to-end mechanisms, consisting of: (i) techniques to manage the channel used for the upstream bottleneck link carrying the ACKs, typically using header compression or reducing the frequency of TCP ACKs, (ii) techniques to handle this reduced ACK frequency to retain the TCP sender's acknowledgment-triggered self- clocking and (iii) techniques to schedule the data and ACK packets in the reverse direction to improve performance in the presence of two-way traffic. Each technique is described, together with known issues, and recommendations for use. A summary of the recommendations is provided at the end of the document. 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/rfc3449/",
      "updated": "2026-10-13T17:21:13.249Z",
      "version": "extractDocs.js@commit:996495349225"
    },
    "authors": [
      {
        "name": "Hari Balakrishnan"
      },
      {
        "name": "Venkata Padmanabhan"
      },
      {
        "name": "Gorry Fairhurst"
      },
      {
        "name": "Mahesh Sooriyabandara"
      }
    ],
    "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/rfc3449/",
      "updated": "2026-10-13T17:21:13.249Z",
      "version": "extractDocs.js@commit:996495349225"
    },
    "docId": "RFC3449",
    "docId$meta": {
      "confidence": "high",
      "note": "Derived from RFC number or Datatracker identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc3449/",
      "updated": "2026-10-13T17:21:13.249Z",
      "version": "extractDocs.js@commit:996495349225"
    },
    "docLabel": "IETF RFC 3449",
    "docLabel$meta": {
      "confidence": "high",
      "note": "Constructed from provider and document identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc3449/",
      "updated": "2026-10-13T17:21:13.249Z",
      "version": "extractDocs.js@commit:996495349225"
    },
    "docNumber": "3449",
    "docNumber$meta": {
      "confidence": "high",
      "note": "Parsed from RFC info page report metadata",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc3449/",
      "updated": "2026-10-13T17:21:13.249Z",
      "version": "extractDocs.js@commit:996495349225"
    },
    "docTitle": "TCP Performance Implications of Network Path Asymmetry",
    "docTitle$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML title",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc3449/",
      "updated": "2026-10-13T17:21:13.249Z",
      "version": "extractDocs.js@commit:996495349225"
    },
    "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/rfc3449/",
      "updated": "2026-10-13T17:21:13.249Z",
      "version": "extractDocs.js@commit:996495349225"
    },
    "doi": "10.17487/RFC3449",
    "doi$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML doi",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc3449/",
      "updated": "2026-10-13T17:21:13.249Z",
      "version": "extractDocs.js@commit:996495349225"
    },
    "href": "https://doi.org/10.17487/RFC3449",
    "href$meta": {
      "confidence": "high",
      "note": "Derived from DOI (https://doi.org/<doi>)",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc3449/",
      "updated": "2026-10-13T17:21:13.249Z",
      "version": "extractDocs.js@commit:996495349225"
    },
    "keywords": [
      "ACK"
    ],
    "keywords$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML keywords",
      "originalValue": [
        "Ack"
      ],
      "overridden": true,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc3449/",
      "updated": "2026-10-13T17:51:40.271Z",
      "version": "extractDocs.js@commit:25936397c06b"
    },
    "pages": "41",
    "pages$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML page-count",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc3449/",
      "updated": "2026-10-13T17:21:13.249Z",
      "version": "extractDocs.js@commit:996495349225"
    },
    "publicationDate": "2002-12-01",
    "publicationDate$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML date",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc3449/",
      "updated": "2026-10-13T17:21:13.249Z",
      "version": "extractDocs.js@commit:996495349225"
    },
    "publisher": "IETF",
    "publisher$meta": {
      "confidence": "high",
      "note": "Static: provider",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc3449/",
      "updated": "2026-10-13T17:21:13.249Z",
      "version": "extractDocs.js@commit:996495349225"
    },
    "references": {
      "bibliographic": [
        "T-REC-E.681.2001",
        "T-REC-G.992.1999",
        "RFC1323",
        "RFC2018",
        "RFC2402",
        "RFC2406",
        "RFC2507",
        "RFC2525",
        "RFC2686",
        "RFC2760",
        "RFC2988",
        "RFC3077",
        "RFC3095",
        "RFC3150",
        "RFC3168",
        "orphan/RFC3449/h:4f632201",
        "orphan/RFC3449/h:463da17a",
        "orphan/RFC3449/h:450b659e",
        "orphan/RFC3449/h:6c05b3c3",
        "orphan/RFC3449/h:d022a58c",
        "orphan/RFC3449/h:819d2f2e",
        "orphan/RFC3449/h:d326e53b",
        "orphan/RFC3449/h:8faa18a6",
        "orphan/RFC3449/h:e0382e78",
        "orphan/RFC3449/h:148bb50b",
        "orphan/RFC3449/h:dc1df34c",
        "orphan/RFC3449/h:a0c30ced",
        "orphan/RFC3449/h:88952091",
        "orphan/RFC3449/h:cd606a88",
        "orphan/RFC3449/h:fe21f07e",
        "orphan/RFC3449/h:cbe24191",
        "orphan/RFC3449/h:34353a93",
        "orphan/RFC3449/h:818710c4",
        "orphan/RFC3449/h:b858950d",
        "orphan/RFC3449/h:dba7d033",
        "orphan/RFC3449/h:0c55ce6b",
        "orphan/RFC3449/h:adc1fb73",
        "orphan/RFC3449/h:09de31f9",
        "orphan/RFC3449/h:2a879a9f",
        "orphan/RFC3449/h:07277800",
        "orphan/RFC3449/h:a163abca",
        "orphan/RFC3449/h:e8cd3b3d",
        "orphan/RFC3449/h:ef830205",
        "orphan/RFC3449/h:07d70722",
        "orphan/RFC3449/h:aa98a19d",
        "orphan/RFC3449/h:40100c77"
      ],
      "bibliographic$meta": {
        "confidence": "medium",
        "flag": "MIXED_REF_LAYOUT_RISK anchored=54 proseBlocks=64 skippedAnchorBlocks=57",
        "note": "Parsed from RFC HTML references/informative sections",
        "originalValue": [],
        "reviewRequired": true,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc3449/",
        "updated": "2026-10-13T17:21:13.249Z",
        "version": "extractDocs.js@commit:996495349225"
      },
      "normative": [
        "RFC793",
        "RFC1122",
        "RFC1144",
        "RFC1191",
        "RFC2581",
        "RFC2784",
        "RFC3135"
      ],
      "normative$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML normative references sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc3449/",
        "updated": "2026-10-13T17:21:13.249Z",
        "version": "extractDocs.js@commit:996495349225"
      }
    },
    "resolvedHref": "https://www.rfc-editor.org/info/rfc3449/",
    "resolvedHref$meta": {
      "confidence": "high",
      "note": "Final URL resolved via URL redirect verification",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc3449/",
      "updated": "2026-10-13T17:21:13.249Z",
      "version": "extractDocs.js@commit:996495349225"
    },
    "status": {
      "active": true,
      "active$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc3449/",
        "updated": "2026-10-13T17:21:13.249Z",
        "version": "extractDocs.js@commit:996495349225"
      },
      "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/rfc3449/",
        "updated": "2026-10-13T17:21:13.249Z",
        "version": "extractDocs.js@commit:996495349225"
      },
      "latestVersion": true,
      "latestVersion$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc3449/",
        "updated": "2026-10-13T17:21:13.249Z",
        "version": "extractDocs.js@commit:996495349225"
      },
      "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/rfc3449/",
        "updated": "2026-10-13T17:21:13.249Z",
        "version": "extractDocs.js@commit:996495349225"
      },
      "superseded": false,
      "superseded$meta": {
        "confidence": "high",
        "note": "Derived from supersession relationship fields",
        "originalValue": null,
        "source": "resolved",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc3449/",
        "updated": "2026-10-13T17:21:13.249Z",
        "version": "extractDocs.js@commit:996495349225"
      }
    }
  }
}