Multipath TCP ( MPTCP ) es un esfuerzo continuo del grupo de trabajo Multipath TCP de la Internet Engineering Task Force (IETF), que tiene como objetivo permitir que una conexión del Protocolo de Control de Transmisión (TCP) utilice múltiples rutas para maximizar el rendimiento y aumentar la redundancia. [ 1 ]
En enero de 2013, la IETF publicó la especificación Multipath como estándar experimental en el RFC 6824. Fue reemplazada en marzo de 2020 por la especificación Multipath TCP v1 en el RFC 8684 .
Beneficios
La redundancia que ofrece Multipath TCP permite la multiplexación inversa de recursos, lo que aumenta el rendimiento de TCP a la suma de todos los canales de enlace disponibles , en lugar de utilizar uno solo como requiere el TCP estándar. Multipath TCP es compatible con versiones anteriores del TCP estándar.
El TCP multipath es particularmente útil en el contexto de redes inalámbricas; [ 2 ] el uso de Wi-Fi y una red móvil es un caso de uso típico . [ 3 ] Además de las ganancias en el rendimiento de la multiplexación inversa, se pueden agregar o eliminar enlaces a medida que el usuario entra o sale de la cobertura sin interrumpir la conexión TCP de extremo a extremo. [ 4 ]
El problema de la transferencia de enlaces se resuelve mediante la abstracción en la capa de transporte , sin necesidad de mecanismos especiales en las capas de red o de enlace . De esta forma, la funcionalidad de transferencia puede implementarse en los puntos finales sin requerir funcionalidades especiales en las subredes , de acuerdo con el principio de extremo a extremo de Internet .
El TCP multipath también ofrece ventajas de rendimiento en entornos de centros de datos . [ 5 ] A diferencia de la agregación de enlaces Ethernet mediante 802.3ad , el TCP multipath puede equilibrar una única conexión TCP a través de múltiples interfaces y alcanzar un rendimiento muy alto. [ 6 ]
El TCP multipath genera una serie de nuevos problemas. Desde la perspectiva de la seguridad de la red, el enrutamiento multipath provoca la fragmentación de datos entre rutas, lo que hace que los firewalls y los escáneres de malware sean ineficientes al ver únicamente el tráfico de una ruta. Además, el descifrado SSL se vuelve ineficiente debido a los protocolos de cifrado de extremo a extremo. [ 7 ]
Interfaz de usuario
Para facilitar su implementación, Multipath TCP presenta la misma interfaz de socket que TCP. Esto implica que cualquier aplicación TCP estándar puede usarse sobre Multipath TCP, distribuyendo los datos a través de varios subflujos. [ 8 ]

Algunas aplicaciones podrían beneficiarse de una API mejorada para controlar la pila TCP Multipath subyacente. Se han propuesto dos API diferentes para exponer algunas de las características de la pila TCP Multipath a las aplicaciones: una API que extiende Netlink en Linux [ 9 ] y una API de sockets mejorada [ 10 ] .
Implementaciones
En julio de 2013, el grupo de trabajo MPTCP informó sobre cinco implementaciones independientes de Multipath TCP, [ 11 ] incluyendo la implementación de referencia inicial [ 8 ] en el kernel de Linux. [ 12 ] [ 13 ]
Las implementaciones disponibles actualmente son:
- El kernel de Linux (nueva implementación de referencia) se introdujo en el kernel principal en la versión 5.6 [ 14 ].
- Bifurcación del kernel de Linux (implementación de referencia inicial) de investigadores de la Universidad Católica de Lovaina y otros colaboradores [ 8 ]
- FreeBSD (solo IPv4) de la Universidad Tecnológica de Swinburne [ 15 ] y basado en IA/ML de la Universidad Deakin [ 16 ]
- F5 Networks BIG-IP LTM [ 17 ]
- Citrix Netscaler [ 18 ]
- Apple iOS 7 , lanzado el 18 de septiembre de 2013, es el primer despliegue comercial a gran escala de Multipath TCP. [ 19 ] Desde iOS 7 , cualquier aplicación puede usar Multipath TCP.
- Apple Mac OS X 10.10 , publicado el 16 de octubre de 2014 [ 20 ]
- Alcatel-Lucent publicó el código fuente de la versión 0.9 del proxy MPTCP el 26 de octubre de 2012 [ 21 ] [ 22 ].
En julio de 2014, Oracle informó que se estaba desarrollando una implementación en Solaris . En junio de 2015, el trabajo estaba en curso. [ 23 ] También existe un esfuerzo continuo para impulsar una nueva implementación de TCP multipath en el kernel principal de Linux. [ 24 ]
Durante la reunión del Grupo de Trabajo MPTCP en IETF 93, SungHoon Seo anunció que KT había desplegado desde mediados de junio un servicio comercial que permite a los usuarios de teléfonos inteligentes alcanzar 1 Gbit/s utilizando un servicio proxy MPTCP. [ 25 ] Wavenet utiliza la implementación del kernel de Linux (desarrollada por Tessares) para desplegar redes de acceso híbridas .
Casos de uso
El protocolo TCP multipath se diseñó para ser compatible con versiones anteriores del protocolo TCP estándar. Por lo tanto, puede admitir cualquier aplicación. Sin embargo, algunas implementaciones específicas [ 26 ] aprovechan la capacidad de usar diferentes rutas simultáneamente.
Apple utiliza TCP multipath para dar soporte a la aplicación Siri en el iPhone . Siri envía muestras de voz a través de una sesión HTTPS a los servidores de Apple. Estos servidores responden con la información solicitada por los usuarios. Según los ingenieros de Apple, los principales beneficios [ 27 ] de TCP multipath con esta aplicación son:
- Retroalimentación del usuario (tiempo hasta la primera palabra) un 20 % más rápida en el percentil 95.
- Reducción de 5 veces en los fallos de red.
Otras implementaciones utilizan TCP multipath para agregar el ancho de banda de diferentes redes. Por ejemplo, varios tipos de teléfonos inteligentes, especialmente en Corea, utilizan TCP multipath para combinar Wi-Fi y 4G a través de proxies SOCKS. [ 28 ] Otro ejemplo son las redes de acceso híbridas que implementan los operadores de red que desean combinar redes xDSL y LTE . En esta implementación, se utiliza TCP multipath para equilibrar eficientemente el tráfico en las redes xDSL y LTE. [ 29 ]
En la estandarización de redes de comunicación fijas y móviles convergentes, 3GPP y BBF están interoperando para proporcionar una función ATSSS (Selección, Conmutación y División de Tráfico de Acceso) para admitir sesiones multipath, por ejemplo, aplicando Multipath TCP tanto en el Equipo de Usuario (UE) o Puerta de Enlace Residencial (RG) como en el lado de la red. [ 30 ]
Opciones TCP de rutas múltiples
Multipath TCP utiliza opciones que se describen en detalle en RFC 8684. Todas las opciones de Multipath TCP están codificadas como opciones TCP con tipo de opción 30, tal como lo reserva IANA. [ 31 ]
La opción Multipath TCP consta de los valores estándar Option-Kind (en este caso 30) y Length, seguidos de un campo de subtipo de 4 bits, para el cual la IANA mantiene un subregistro denominado "MPTCP Option Subtypes" dentro del registro "Transmission Control Protocol (TCP) Parameters". Este campo de subtipo indica el tipo de encabezado MPTCP, y sus valores se definen de la siguiente manera:
Los valores del 0x9 al 0xe no están asignados actualmente.
Operación del protocolo
Descripción simplificada

La idea central de TCP multipath es definir una forma de establecer una conexión entre dos hosts y no entre dos interfaces (como lo hace el TCP estándar).
Por ejemplo, Alice tiene un teléfono inteligente con interfaces 3G y WiFi (con direcciones IP 10.11.12.13 y 10.11.12.14) y Bob tiene una computadora con una interfaz Ethernet (con dirección IP 20.21.22.23).
En el protocolo TCP estándar, la conexión se establece entre dos direcciones IP. Cada conexión TCP se identifica mediante una cuádrupla (direcciones de origen y destino, y puertos). Debido a esta restricción, una aplicación solo puede crear una conexión TCP a través de un único enlace. El protocolo TCP multipath permite que la conexión utilice varias rutas simultáneamente. Para ello, crea una conexión TCP, denominada subflujo, sobre cada ruta que se necesite utilizar.
El propósito de las diferentes operaciones del protocolo (definidas en RFC 6824) es:
- para gestionar cuándo y cómo agregar/eliminar rutas (por ejemplo, si se pierde la conexión o hay algún problema de control de congestión).
- para ser compatible con hardware TCP antiguo (como algunos cortafuegos que pueden rechazar automáticamente las conexiones TCP si los números de secuencia no son consecutivos)
- definir una estrategia justa de control de congestión entre los diferentes enlaces y los diferentes hosts (especialmente con aquellos que no admiten MPTCP).

TCP multipath añade nuevos mecanismos a las transmisiones TCP:
- El sistema de subflujos se utiliza para agrupar múltiples conexiones TCP estándar (las rutas de un host a otro). Los subflujos se identifican durante el protocolo de enlace TCP de tres vías. Tras el protocolo de enlace, una aplicación puede añadir o eliminar algunos subflujos (subtipos 0x3 y 0x4).
- La opción MPTCP DSS contiene un número de secuencia de datos y un número de acuse de recibo. Estos permiten recibir datos de múltiples subflujos en el orden original, sin que se produzca ninguna corrupción (subtipo de mensaje 0x2).
- Un protocolo de retransmisión modificado gestiona el control de la congestión y la fiabilidad.
Especificaciones detalladas
La especificación detallada del protocolo se proporciona en el RFC 8684. Varios artículos de revisión ofrecen una introducción al protocolo. [ 32 ] [ 33 ]
Control de congestión
Se han definido varios mecanismos de control de congestión para TCP multipath. Su principal diferencia con los esquemas clásicos de control de congestión de TCP radica en que deben reaccionar ante la congestión en las distintas rutas sin perjudicar a las fuentes TCP de ruta única que podrían competir con ellas en alguna de las rutas. [ 3 ] Actualmente, la implementación de TCP multipath en el kernel de Linux admite cuatro esquemas de control de congestión de TCP multipath.
Alternativas
QUIC de trayectorias múltiples
El IETF está desarrollando actualmente el protocolo QUIC , que integra las características que tradicionalmente se encuentran en los protocolos TCP , TLS y HTTP . Puede extenderse para admitir los mismos casos de uso que Multipath TCP. Se ha propuesto un primer diseño para Multipath QUIC, [ 36 ] implementado y evaluado. [ 37 ]
Protocolo de transmisión de control de flujo
El Protocolo de Transmisión de Control de Flujo (SCTP) es un protocolo de transporte de flujo de datagramas en orden confiable, originalmente diseñado para la señalización de telecomunicaciones. Admite el uso concurrente de múltiples enlaces de acceso y permite que la aplicación influya en la selección de interfaces de acceso a nivel de flujo de datagramas. También admite movilidad mediante la renegociación de acceso. Por lo tanto, SCTP también es una solución de capa de transporte. Ofrece granularidad de flujo de tipo 3 con concurrencia, pero con mayor control de programación de flujo que Multipath TCP. Además, admite completamente la movilidad de manera similar a Multipath TCP. [ 38 ]
IMS SIP
Dentro de la arquitectura del Subsistema Multimedia IP (IMS), el Protocolo de Iniciación de Sesión (SIP) puede admitir el uso concurrente de múltiples direcciones IP de contacto para el registro de uno o más agentes de usuario IMS. Esto permite la creación de múltiples rutas de señalización IMS. En estas rutas de señalización, los mensajes de señalización transportan mensajes del Protocolo de Descripción de Sesión (SDP) para negociar flujos multimedia. SDP permite la (re)negociación de los flujos de una sesión multimedia a través de múltiples rutas. A su vez, esto habilita el transporte multipath de la capa de aplicación. Desde este punto de vista, IMS puede, por lo tanto, ofrecer soporte multipath de la capa de aplicación con granularidad de flujo y acceso concurrente. Una extensión multipath al Protocolo de Transporte en Tiempo Real (RTP) ha sido objeto de debate dentro del IETF. [ 39 ] RTP multipath puede ofrecer granularidad de flujo con acceso concurrente y movilidad (a través de IMS, señalización SDP o el protocolo de control RTP). [ 38 ] Muy recientemente, además, se discute en el IETF una propuesta para extender también el DCCP (Protocolo de control de congestión de datagramas) con una función de rutas múltiples [ 40 ] denominada MP-DCCP .
TCP multipath basado en IA/aprendizaje automático
Un marco de aprendizaje por refuerzo profundo (DRL) para el control de congestión y la programación de paquetes conjuntos utiliza gradientes de política para aprender estrategias de control de congestión y programación a partir de la experiencia. [ 41 ] El TCP multipath basado en DRL se ha utilizado en aplicaciones de aprendizaje distribuido en el borde. [ 42 ]
Otros protocolos y experimentos
En la capa de sesión, el proyecto Mobile Access Router experimentó en 2003 con la agregación de múltiples accesos inalámbricos con tecnologías heterogéneas, equilibrando de forma transparente el tráfico entre ellos en respuesta al rendimiento percibido de cada uno de ellos. [ 43 ]
Los esquemas de acceso paralelo [ 38 ] utilizados para acelerar las transferencias aprovechando las solicitudes de rango HTTP para iniciar conexiones a múltiples servidores de un contenido replicado, no son equivalentes a Multipath TCP ya que involucran la capa de aplicación y están limitados a contenido de tamaño conocido.
RFC
- RFC 6181 - Análisis de amenazas para extensiones TCP para operación de rutas múltiples con múltiples direcciones
- RFC 6182 - Directrices arquitectónicas para el desarrollo de TCP multipath
- RFC 6356 - Control de congestión acoplado para protocolos de transporte multipath
- RFC 6824 - Extensiones TCP para operación de rutas múltiples con múltiples direcciones (v0; reemplazada por RFC 8684)
- RFC 6897 - Consideraciones sobre la interfaz de aplicación de TCP multipath (MPTCP)
- RFC 7430 - Análisis de amenazas residuales y posibles soluciones para TCP multipath (MPTCP)
- RFC 8041 - Casos de uso y experiencia operativa con TCP multipath
- RFC 8684 - Extensiones TCP para operación de rutas múltiples con múltiples direcciones (v1)
- RFC 8803 - Protocolo de conversión TCP 0-RTT
Véase también
Referencias
- ↑ Grupo de trabajo TCP multipath
- ↑ Paasch, Christoph; Detal, Gregory; Duchene, Fabien; Raiciu, Costin; Bonaventure, Olivier (2012). "Explorando la transferencia móvil/WiFi con TCP multipath" . Actas del taller ACM SIGCOMM 2012 sobre redes celulares: operaciones, desafíos y diseño futuro - Cell Net '12 . Taller ACM SIGCOMM sobre redes celulares (Cellnet'12). pág. 31. doi : 10.1145/2342468.2342476 . ISBN 9781450314756.
- 1 2 S. Pokhrel; M. Panda; H. Vu (2017-02-24). "Modelado analítico de TCP multipath sobre redes inalámbricas de última milla". IEEE/ACM Transactions on Networking . 25 (3): 1876– 1891. doi : 10.1109/TNET.2017.2663524 . S2CID 21518823 .
- ↑ S. Pokhrel; M. Mandjes (24 de marzo de 2019). "Mejora del rendimiento de TCP multipath en redes WiFi y celulares: un enfoque analítico". IEEE Transactions on Mobile Computing . 25 (3): 1876–1891 . doi : 10.1109/TMC.2018.2876366 . S2CID 69263415 .
- ↑ Raiciu; Barre; Pluntke; Greenhalgh; Wischik; Handley (2011). "Mejora del rendimiento y la robustez de los centros de datos con TCP multipath" . ACM SIGCOMM Computer Communication Review . 41 (4): 266. CiteSeerX 10.1.1.306.3863 . doi : 10.1145/2043164.2018467 . S2CID 61962047 .
- ↑ C. Paasch; G. Detal; S. Barré; F. Duchêne; O. Bonaventure. "La conexión TCP más rápida con TCP multipath" . Consultado el 20 de septiembre de 2013 .
- ↑ Afzal, Zeeshan (2020). Life of a Security Middlebox Challenges with Emerging Protocols and Technologies (PhD). ISBN 978-91-7867-103-8OCLC 1139703033 .
- 1 2 3 "El proyecto MultiPath TCP del kernel de Linux" . Recuperado el 28 de noviembre de 2014 .
- ↑ Hesmans, B.; Detal, G.; Barre, S.; Bauduin, R.; Bonaventure, O. (2015). "SMAPP". SMAPP hacia aplicaciones inteligentes habilitadas para TCP multipath . pp. 1–7 . doi : 10.1145/2716281.2836113 . ISBN 9781450334129. S2CID 9940025 .
- ↑ "Encuesta sobre implementaciones de MPTCP (Borrador de Internet, 2013)" . Consultado el 20 de septiembre de 2013 .
- ↑ Barre; Paasch; Bonaventure (2011). "MultiPath TCP: De la teoría a la práctica" . IFIP Networking .
- ↑ Raiciu; Paasch; Barre; Ford; Honda; Duchene; Bonaventure; Handley (2012). "¿Qué tan difícil puede ser? Diseño e implementación de un TCP multipath desplegable" . Usenix NSDI : 399–412 .
- ↑ "Proyecto Linux MPTCP Upstream" .
- ↑ "Multipath TCP para FreeBSD v0.1" . Consultado el 23 de septiembre de 2013 .
- ↑ Pokhrel, Shiva Raj; Kua, Jonathan; Fleming, Brenton; Ozer, Sebnem; Howe, Jeff; Walid, Anwar (2024). "Implementación de TCP multipath bajo FreeBSD-13 para modelos de aprendizaje automático conectables" . Computer Networks . 252 : 596–609 . doi : 10.1016/j.comnet.2024.110671 .
- ↑ "Nota de la versión: BIG-IP LTM y TMOS 11.5.0" . f5 Networks. 30 de mayo de 2014. Consultado el 30 de mayo de 2014 .
- ↑ John Gudmundson (28 de mayo de 2013). "Maximice la experiencia del usuario móvil con NetScaler Multipath TCP" . Citrix . Consultado el 20 de septiembre de 2013 .
- ↑ "Apple parece creer también en TCP multipath" . Consultado el 20 de septiembre de 2013 .
- ↑ "MPTCP ROAMS FREE (¡POR DEFECTO!) – OS X YOSEMITE" . 2014-10-20 . Consultado el 2015-09-16 .
- ↑ Georg Hampel (26-10-2012). "Lanzamiento de código para MPTCP Proxy" . Alcatel-Lucent . Recuperado el 28-12-2016 .
- ↑ Georg Hampel; Anil Rana (26-10-2012). "MPTCP PROXY" (PDF) . Bell Labs / Alcatel-Lucent . Recuperado el 28-12-2016 .
- ↑ Rao, Shoaib. "Algunos comentarios sobre RFC 6824" . Consultado el 25 de junio de 2015 .
- ↑ "Proyecto MPTCP Upstream" . 17 de diciembre de 2019. Consultado el 10 de enero de 2020 .
- ↑ "GiGA LTE de KT" (PDF) .
- ↑ Bonaventure, Olivier; See, SungHoon (2016). "Implementaciones TCP de rutas múltiples" . Revista IETF .
- ↑ C. Paasch, Actualizaciones de implementación de iOS y Linux, IETF-99, https://datatracker.ietf.org/meeting/99/materials/slides-99-mptcp-sessa-ios-linux-implementation-updates/
- ↑ S. Seo, KT's GiGA LTE - Mobile MPTCP Proxy Deployment, IETF-97, https://www.ietf.org/proceedings/97/slides/slides-97-banana-kt-giga-lte-mobile-mptcp-proxy-development-01.pdf
- ↑ Gregory Detal, Sebastien Barre, Bart Peirens, Olivier Bonaventure, "Aprovechando TCP multipath para crear redes de acceso híbridas", SIGCOMM'17 (Demostración industrial), http://conferences.sigcomm.org/sigcomm/2017/files/program-industrial-demos/sigcomm17industrialdemos-paper4.pdf
- ↑ 3GPP TR 23.793, "Estudio sobre la dirección, conmutación y división del tráfico de acceso en la arquitectura del sistema 5G (versión 16)", https://www.3gpp.org/ftp/Specs/latest/Rel-16/23_series/23793-g00.zip
- ↑ "Números de tipo de opción TCP del registro de protocolos IANA" . Consultado el 24 de septiembre de 2013 .
- ↑ Paasch, Christoph; Bonaventure, Olivier (abril de 2014). "Multipath TCP" . Communications of the ACM . 57 (4): 51– 57. doi : 10.1145/2578901 . hdl : 2078.1/141195 . S2CID 17581886 .
- ↑ Raiciu, Costin; Iyengar, Janardhan; Bonaventure, Olivier (2013). Haddadi, Hamed; Bonaventure, Olivier (eds.). Avances recientes en protocolos de transporte confiables . ACM SIGCOMM.
- ↑ Khalili, Ramin; Gast, Nicolas; Popovic, Miroslav; Upadhyay, Utkarsh; Le Boudec, Jean-Yves (2012). "MPTCP no es óptimo de Pareto". Actas de la 8.ª conferencia internacional sobre experimentos y tecnologías de redes emergentes . págs. 1-12 . doi : 10.1145/2413176.2413178 . ISBN 9781450317757. S2CID 14210629 .
- ↑ Peng, Qiuyu; Walid, Anwar; Hwang, Jaehyun; Low, Steven H. (2013). "Multipath TCP: Análisis, diseño e implementación". IEEE/ACM Transactions on Networking . 24 : 596–609 . arXiv : 1308.3119 . Bibcode : 2013arXiv1308.3119P . doi : 10.1109/TNET.2014.2379698 . S2CID 250322 .
- ↑ P. De Coninck; O. Buenaventura (30 de octubre de 2010). "Extensión de rutas múltiples para QUIC" . IETF .
- ↑ Q. De Coninck; O. Bonaventure (12 de diciembre de 2010). "Multipath QUIC: Diseño y evaluación" (PDF) . Actas de Conext'2017, Seúl, Corea.
- 1 2 3 P. Rodriguez; E. Biersack (1 de julio de 2002). "Acceso paralelo dinámico a contenido replicado en Internet" (PDF) . IEEE/ACM Transactions on Networking. Archivado del original (PDF) el 27 de septiembre de 2013.
- ↑ "Draft-ietf-avtcore-MPRTP-03" .
- ↑ "Draft-ietf-TSVWG-multipath-DCCP-04" .
- ↑ S. Pokhrel; A. Walid (2023-02-01). "Aprendizaje para aprovechar el ancho de banda con control de congestión y programación de rutas múltiples". IEEE Transactions on Mobile Computing . 22 (2): 996– 1009. arXiv : 2105.14271 . doi : 10.1109/TMC.2021.3085598 . S2CID 69245415 .
- ↑ S. Pokhrel; J. Choi; A. Walid (2023). "Aprendizaje de borde distribuido justo y eficiente con TCP multipath híbrido". IEEE/ACM Transactions on Networking . 31 (4): 1582– 1594. arXiv : 2211.09723 . doi : 10.1109/TNET.2022.3219924 . S2CID 98245675 .
- ↑ R. Chakravorty; I. Pratt; P. Rodriguez (1 de julio de 2003). "Enrutador de acceso móvil" . Universidad de Cambridge, Microsoft Research.
Enlaces externos
- El proyecto TCP multipath del kernel de Linux
- El proyecto Linux Kernel MultiPath TCP (antiguo sitio web)
- Un artículo claro que explica la implementación de MPTCP en Linux.
- extensiones TCP