{
  "$schema": "/api/schemas/documents.schema.json",
  "apiVersion": "1.1.0",
  "lastModified": "2026-10-16T19:31:51.809Z",
  "sourcePath": "src/main/data/docs",
  "docId": "RFC6356",
  "document": {
    "abstract": "Often endpoints are connected by multiple paths, but communications are usually restricted to a single path per connection. Resource usage within the network would be more efficient were it possible for these multiple paths to be used concurrently. Multipath TCP is a proposal to achieve multipath transport in TCP. New congestion control algorithms are needed for multipath transport protocols such as Multipath TCP, as single path algorithms have a series of issues in the multipath context. One of the prominent problems is that running existing algorithms such as standard TCP independently on each path would give the multipath flow more than its fair share at a bottleneck link traversed by more than one of its subflows. Further, it is desirable that a source with multiple paths available will transfer more traffic using the least congested of the paths, achieving a property called \"resource pooling\" where a bundle of links effectively behaves like one shared link with bigger capacity. This would increase the overall efficiency of the network and also its robustness to failure. This document presents a congestion control algorithm that couples the congestion control algorithms running on different subflows by linking their increase functions, and dynamically controls the overall aggressiveness of the multipath flow. The result is a practical algorithm that is fair to TCP at bottlenecks while moving traffic away from congested links. This document defines an Experimental Protocol 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/rfc6356/",
      "updated": "2026-10-16T18:57:16.871Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "authors": [
      {
        "name": "Costin Raiciu"
      },
      {
        "name": "Mark J. Handley"
      },
      {
        "name": "Damon Wischik"
      }
    ],
    "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/rfc6356/",
      "updated": "2026-10-16T18:57:16.871Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "docId": "RFC6356",
    "docId$meta": {
      "confidence": "high",
      "note": "Derived from RFC number or Datatracker identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6356/",
      "updated": "2026-10-16T18:57:16.871Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "docLabel": "IETF RFC 6356",
    "docLabel$meta": {
      "confidence": "high",
      "note": "Constructed from provider and document identifier",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6356/",
      "updated": "2026-10-16T18:57:16.871Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "docNumber": "6356",
    "docNumber$meta": {
      "confidence": "high",
      "note": "Parsed from RFC info page report metadata",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6356/",
      "updated": "2026-10-16T18:57:16.871Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "docTitle": "Coupled Congestion Control for Multipath Transport Protocols",
    "docTitle$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML title",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6356/",
      "updated": "2026-10-16T18:57:16.871Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "docType": "Experimental",
    "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/rfc6356/",
      "updated": "2026-10-16T18:57:16.871Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "doi": "10.17487/RFC6356",
    "doi$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML doi",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6356/",
      "updated": "2026-10-16T18:57:16.871Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "href": "https://doi.org/10.17487/RFC6356",
    "href$meta": {
      "confidence": "high",
      "note": "Derived from DOI (https://doi.org/<doi>)",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6356/",
      "updated": "2026-10-16T18:57:16.871Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "keywords": [
      "TCP",
      "Congestion Control",
      "MPTCP"
    ],
    "keywords$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML keywords",
      "originalValue": [
        "TCP",
        "Congestion Control"
      ],
      "overridden": true,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6356/",
      "updated": "2026-10-16T19:31:51.809Z",
      "version": "extractDocs.js@commit:75b379398159"
    },
    "pages": "12",
    "pages$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML page-count",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6356/",
      "updated": "2026-10-16T18:57:16.871Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "publicationDate": "2011-10-01",
    "publicationDate$meta": {
      "confidence": "high",
      "note": "Parsed from RFC index XML date",
      "originalValue": null,
      "source": "parsed",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6356/",
      "updated": "2026-10-16T18:57:16.871Z",
      "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/rfc6356/",
      "updated": "2026-10-16T18:57:16.871Z",
      "version": "extractDocs.js@commit:a6ae1efef02e"
    },
    "references": {
      "bibliographic": [
        "RFC3465",
        "RFC6181",
        "orphan/RFC6356/h:53cf3f76",
        "orphan/RFC6356/h:885a60c7",
        "orphan/RFC6356/h:efcfd58c",
        "orphan/RFC6356/h:b5f51224"
      ],
      "bibliographic$meta": {
        "confidence": "medium",
        "flag": "MIXED_REF_LAYOUT_RISK anchored=9 proseBlocks=13 skippedAnchorBlocks=10",
        "note": "Parsed from RFC HTML references/informative sections",
        "originalValue": [],
        "reviewRequired": true,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc6356/",
        "updated": "2026-10-16T18:57:16.872Z",
        "version": "extractDocs.js@commit:a6ae1efef02e"
      },
      "normative": [
        "RFC793",
        "RFC2119",
        "RFC5681"
      ],
      "normative$meta": {
        "confidence": "high",
        "note": "Parsed from RFC HTML normative references sections",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc6356/",
        "updated": "2026-10-16T18:57:16.872Z",
        "version": "extractDocs.js@commit:a6ae1efef02e"
      }
    },
    "resolvedHref": "https://www.rfc-editor.org/info/rfc6356/",
    "resolvedHref$meta": {
      "confidence": "high",
      "note": "Final URL resolved via URL redirect verification",
      "originalValue": null,
      "source": "resolved",
      "sourceUrl": "https://www.rfc-editor.org/info/rfc6356/",
      "updated": "2026-10-16T18:57:16.872Z",
      "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/rfc6356/",
        "updated": "2026-10-16T18:57:16.872Z",
        "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/rfc6356/",
        "updated": "2026-10-16T18:57:16.872Z",
        "version": "extractDocs.js@commit:a6ae1efef02e"
      },
      "errataUrl": [
        "https://www.rfc-editor.org/errata/rfc6356",
        "https://www.rfc-editor.org/errata_search.php?rfc=6356",
        "https://www.rfc-editor.org/rfc/inline-errata/rfc6356.html"
      ],
      "errataUrl$meta": {
        "confidence": "high",
        "note": "Parsed from errata links on RFC/Datatracker pages",
        "originalValue": [],
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc6356/",
        "updated": "2026-10-16T18:57:16.872Z",
        "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/rfc6356/",
        "updated": "2026-10-16T18:57:16.872Z",
        "version": "extractDocs.js@commit:a6ae1efef02e"
      },
      "statusNote": "Experimental",
      "statusNote$meta": {
        "confidence": "high",
        "note": "Mapped from Datatracker doc.json std_level",
        "originalValue": null,
        "source": "parsed",
        "sourceUrl": "https://www.rfc-editor.org/info/rfc6356/",
        "updated": "2026-10-16T18:57:16.872Z",
        "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/rfc6356/",
        "updated": "2026-10-16T18:57:16.872Z",
        "version": "extractDocs.js@commit:a6ae1efef02e"
      }
    }
  }
}