stringtranslate.com

TCP de múltiples rutas

Multipath TCP ( MPTCP ) es un esfuerzo continuo del grupo de trabajo Multipath TCP del Internet Engineering Task Force (IETF), que tiene como objetivo permitir que una conexión de Protocolo de control de transmisión (TCP) utilice múltiples rutas para maximizar el rendimiento y aumentar la redundancia. [1]

En enero de 2013, el IETF publicó la especificación Multipath TCP v1 como estándar experimental en RFC  6824. Fue reemplazada en marzo de 2020 por la especificación Multipath TCP v1 en RFC 8684.

Beneficios

La redundancia que ofrece Multipath TCP permite la multiplexación inversa de recursos y, por lo tanto, aumenta el rendimiento de TCP a la suma de todos los canales de nivel de enlace disponibles en lugar de usar uno solo como lo requiere el TCP estándar. TCP multiruta es compatible con versiones anteriores de TCP estándar.

TCP multiruta es particularmente útil en el contexto de redes inalámbricas; [2] usar tanto Wi-Fi como una red móvil es un caso de uso típico . [3] Además de las ganancias en 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 del traspaso de enlaces se resuelve así mediante la abstracción en la capa de transporte , sin ningún mecanismo especial en la red o en las capas de enlace . La funcionalidad de traspaso se puede implementar en los puntos finales sin requerir una funcionalidad especial en las subredes , de acuerdo con el principio de extremo a extremo de Internet .

TCP multiruta también aporta beneficios de rendimiento en entornos de centros de datos . [5] A diferencia de la unión de canales Ethernet que utiliza la agregación de enlaces 802.3ad , Multipath TCP puede equilibrar una única conexión TCP a través de múltiples interfaces y alcanzar un rendimiento muy alto. [6]

TCP de rutas múltiples causa una serie de problemas nuevos. Desde una perspectiva de seguridad de la red, el enrutamiento de rutas múltiples provoca una fragmentación de datos entre rutas que da como resultado que los firewalls y los escáneres de malware se vuelvan ineficientes cuando solo ven el tráfico de una ruta. Además, el descifrado SSL se volverá ineficaz 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 se puede utilizar por encima de Multipath TCP y, de hecho, se distribuyen los datos entre varios subflujos. [8]

TCP de múltiples rutas en la pila de protocolos

Algunas aplicaciones podrían beneficiarse de una API mejorada para controlar la pila TCP de múltiples rutas 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 socket mejorada. [10]

Implementaciones

En julio de 2013, el grupo de trabajo MPTCP informó cinco implementaciones independientes de Multipath TCP, [11] incluida la implementación de referencia inicial [8] en el kernel de Linux. [12] [13]

Las implementaciones disponibles actualmente son:

En julio de 2014, Oracle informó que se estaba desarrollando una implementación en Solaris . En junio de 2015, el trabajo está en progreso. [22] También hay un esfuerzo continuo para impulsar una nueva implementación TCP de múltiples rutas en el kernel principal de Linux. [23]

Durante la reunión del MPTCP WG en IETF 93, SungHoon Seo anunció que KT había implementado 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. [24] Tessares utiliza la implementación del kernel de Linux para implementar redes de acceso híbridas .

Casos de uso

TCP multiruta fue diseñado para ser compatible con versiones anteriores de TCP normal. Como tal, puede admitir cualquier aplicación. Sin embargo, algunas implementaciones específicas [25] aprovechan la capacidad de utilizar simultáneamente diferentes rutas.

Apple utiliza Multipath TCP para admitir la aplicación Siri en iPhone . Siri envía muestras de voz a través de una sesión HTTPS a los servidores de Apple. Dichos servidores responden con la información solicitada por los usuarios. Según los ingenieros de Apple, los principales beneficios [26] de Multipath TCP con esta aplicación son:

Otras implementaciones utilizan TCP de ruta múltiple para agregar el ancho de banda de diferentes redes. Por ejemplo, varios tipos de teléfonos inteligentes, especialmente en Corea, utilizan TCP multiruta para vincular WiFi y 4G a través de proxies SOCKS. [27] 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, Multipath TCP se utiliza para equilibrar eficientemente el tráfico a través de la red xDSL y LTE. [28]

En la estandarización de las redes de comunicaciones 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 soportar sesiones de rutas múltiples, por ejemplo, aplicando TCP de rutas múltiples tanto en el equipo de usuario (UE) como en el equipo de usuario (UE). Gateway Residencial (RG) y del lado de la red. [29]

Opciones de TCP de múltiples rutas

TCP de rutas múltiples utiliza opciones que se describen en detalle en RFC 8684. Todas las opciones de TCP de rutas múltiples están codificadas como opciones de TCP con el tipo de opción 30, según lo reservado por IANA. [30]

La opción TCP de ruta múltiple consta de los valores estándar Tipo de opción (en este caso 30) y Longitud, seguidos de un campo de subtipo de 4 bits, para el cual la IANA mantiene un subregistro titulado "Subtipos de opciones MPTCP" en "Control de transmisión". Registro de parámetros de protocolo (TCP). Este campo de subtipo indica el tipo de encabezado MPTCP y sus valores se definen de la siguiente manera:

Los valores 0x9 a 0xe no están asignados actualmente.

Operación de protocolo

Descripción simplificada

Diferencia entre TCP y MPTCP

La idea central del TCP multiruta es definir una forma de construir 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 interfaz Ethernet (con dirección IP 20.21.22.23).

En TCP estándar, la conexión debe establecerse entre dos direcciones IP. Cada conexión TCP se identifica mediante una tupla de cuatro (direcciones y puertos de origen y destino). Dada esta restricción, una aplicación sólo puede crear una conexión TCP a través de un único enlace. TCP multiruta permite que la conexión utilice varias rutas simultáneamente. Para ello, Multipath TCP crea una conexión TCP, denominada subflujo, sobre cada ruta que debe utilizarse.

La finalidad de las diferentes operaciones del protocolo (definidas en RFC 6824) son:

Ejemplo de una sesión MPTCP completa

Multipath TCP agrega nuevos mecanismos a las transmisiones TCP:

Especificación detallada

La especificación detallada del protocolo se proporciona en RFC 8684. Varios artículos de estudio proporcionan una introducción al protocolo. [31] [32]

Control de congestión

Se han definido varios mecanismos de control de congestión para Multipath TCP. Su principal diferencia con los esquemas clásicos de control de congestión de TCP es que necesitan reaccionar a la congestión en las diferentes rutas sin ser injustos con fuentes TCP de ruta única que podrían competir con ellos en una de las rutas. [3] Actualmente, la implementación de Multipath TCP en el kernel de Linux admite cuatro esquemas de control de congestión de Multipath TCP.

Alternativas

Protocolo de transmisión de control de flujo

El Protocolo de transmisión de control de flujo (SCTP) es un protocolo confiable de transporte de flujo de datagramas en orden originalmente destinado a la señalización de telecomunicaciones. Admite el uso simultáneo de múltiples enlaces de acceso y permite que la aplicación influya en las selecciones de la interfaz de acceso en función del flujo de datagramas. También apoya la movilidad a través de la renegociación del acceso. Por tanto, SCTP también es una solución de capa de transporte. Ofrece granularidad de flujo de tipo 3 con concurrencia, pero con más control de programación de flujo que Multipath TCP. También es totalmente compatible con la movilidad de forma similar a Multipath TCP. [35]

SIP SIP

Dentro de la arquitectura del Subsistema multimedia IP (IMS), el Protocolo de inicio de sesión (SIP) puede admitir el uso simultáneo 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 de medios. SDP permite la (renegociación) de los flujos de una sesión de medios a través de múltiples rutas. A su vez, esto permite el transporte multiruta en la capa de aplicación. Desde este punto de vista, IMS puede ofrecer soporte de múltiples rutas en la capa de aplicación con granularidad de flujo y acceso concurrente. En el IETF se ha debatido una extensión de rutas múltiples al protocolo de transporte en tiempo real (RTP). [36] Multipath RTP puede ofrecer granularidad de flujo con acceso y movilidad concurrentes (a través de IMS, señalización SDP o el protocolo de control RTP). [35] Muy recientemente, además, en el IETF en el TSVWG (Grupo de Trabajo del Área de Transporte) [37] se discute una propuesta para ampliar también el DCCP (Protocolo de control de congestión de datagramas) mediante una función de rutas múltiples, denominada MP-DCCP.

QUIC de múltiples rutas

Actualmente, el IETF está desarrollando el protocolo QUIC que integra las características que tradicionalmente se encuentran en los protocolos TCP , TLS y HTTP . Se puede ampliar para admitir los mismos casos de uso que Multipath TCP. Se ha propuesto, implementado y evaluado un primer diseño para QUIC Multipath [38] . [39]

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. [40]

Los esquemas de acceso paralelo [35] 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

Ver también

Referencias

  1. ^ Grupo de trabajo TCP de rutas múltiples
  2. ^ Paasch, Christoph; Detal, Gregorio; Duchène, Fabien; Raiciu, Costín; Buenaventura, Olivier (2012). "Explorando la transferencia móvil/WiFi con TCP multiruta". 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). pag. 31.doi : 10.1145 /2342468.2342476 . ISBN 9781450314756.
  3. ^ ab S. Pokhrel; el señor Panda; H. Vu (24 de febrero de 2017). "Modelado analítico de TCP de rutas múltiples a través de tecnología inalámbrica de última milla". Transacciones IEEE/ACM en redes . 25 (3): 1876–1891. doi :10.1109/TNET.2017.2663524. S2CID  21518823.
  4. ^ S. Pokhrel; M. Mandjes (24 de marzo de 2019). "Mejora del rendimiento de TCP de rutas múltiples a través de redes móviles y WiFi: un enfoque analítico". Transacciones IEEE sobre informática móvil . 25 (3): 1876–1891. doi :10.1109/TMC.2018.2876366. S2CID  69263415.
  5. ^ Raciu; barra; Plüntke; Greenhalgh; Wischik; Handley (2011). "Mejora del rendimiento y la solidez del centro de datos con TCP multiruta". Revisión de comunicación por computadora ACM SIGCOMM . 41 (4): 266. CiteSeerX 10.1.1.306.3863 . doi :10.1145/2043164.2018467. S2CID  61962047. 
  6. ^ C. Paasch; G. Detalle; S. Barré; F. Duchene; O. Buenaventura. "La conexión TCP más rápida con Multipath TCP" . Consultado el 20 de septiembre de 2013 .
  7. ^ Afzal, Zeeshan (2020). La vida de un Middlebox de seguridad Desafíos con protocolos y tecnologías emergentes (PhD). ISBN 978-91-7867-103-8. OCLC  1139703033.
  8. ^ abc "El proyecto TCP MultiPath del kernel de Linux" . Consultado el 28 de noviembre de 2014 .
  9. ^ Hesmans, B.; Detal, G.; Barré, S.; Bauduin, R.; Buenaventura, O. (2015). "SMAPP". SMAPP hacia aplicaciones inteligentes habilitadas para TCP multiruta . págs. 1–7. doi :10.1145/2716281.2836113. ISBN 9781450334129. S2CID  9940025.
  10. ^ Hesmans, Benjamín; Buenaventura, Olivier (2016). "Una API de socket mejorada para TCP de rutas múltiples". Actas del taller de 2016 sobre taller de investigación de redes aplicadas - ANRW 16 . págs. 1–6. doi :10.1145/2959424.2959433. ISBN 9781450344432. S2CID  13799560.
  11. ^ "Encuesta de implementaciones del MPTCP (Borrador de Internet, 2013)" . Consultado el 20 de septiembre de 2013 .
  12. ^ Barra; Paasch; Buenaventura (2011). "MultiPath TCP: de la teoría a la práctica". Redes IFIP .
  13. ^ Raciu; Paasch; barra; Vado; honda; Duchène; Buenaventura; Handley (2012). "¿Qué tan difícil puede ser? Diseño e implementación de un TCP de múltiples rutas implementable". INDE Usenix : 399–412.
  14. ^ "Proyecto ascendente Linux MPTCP".
  15. ^ "TCP de rutas múltiples para FreeBSD v0.1" . Consultado el 23 de septiembre de 2013 .
  16. ^ "Nota de la versión: BIG-IP LTM y TMOS 11.5.0". Redes f5. 2014-05-30 . Consultado el 30 de mayo de 2014 .
  17. ^ 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 .
  18. ^ "Apple parece creer también en Multipath TCP" . Consultado el 20 de septiembre de 2013 .
  19. ^ "MPTCP VIAJE GRATIS (¡POR PREDETERMINADO!) - OS X YOSEMITE". 2014-10-20 . Consultado el 16 de septiembre de 2015 .
  20. ^ Georg Hampel (26 de octubre de 2012). "liberación de código para MPTCP Proxy". Alcatel-Lucent . Consultado el 28 de diciembre de 2016 .
  21. ^ Georg Hampel; Anil Rana (26 de octubre de 2012). "PROXY MPTCP" (PDF) . Laboratorios Bell / Alcatel-Lucent . Consultado el 28 de diciembre de 2016 .
  22. ^ Rao, Shoaib. «Algunos comentarios sobre RFC 6824» . Consultado el 25 de junio de 2015 .
  23. ^ "Proyecto MPTCP Upstream". 2019-12-17 . Consultado el 10 de enero de 2020 .
  24. ^ "GiGA LTE de KT" (PDF) .
  25. ^ Buenaventura, Olivier; Véase SungHoon (2016). "Implementaciones de TCP de múltiples rutas". Revista del IETF .
  26. ^ 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/
  27. ^ S. Seo, GiGA LTE de KT: implementación de proxy MPTCP móvil, IETF-97, https://www.ietf.org/proceedings/97/slides/slides-97-banana-kt-giga-lte-mobile-mptcp- desarrollo-proxy-01.pdf
  28. ^ Gregory Detal, Sebastien Barre, Bart Peirens, Olivier Bonaventure, "Aprovechamiento de TCP de múltiples rutas para crear redes de acceso híbridas", SIGCOMM'17 (demostración industrial), http://conferences.sigcomm.org/sigcomm/2017/files/program- demostraciones-industriales/sigcomm17industrialdemos-paper4.pdf
  29. ^ 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
  30. ^ "Números de tipo de opción TCP del registro de protocolo IANA" . Consultado el 24 de septiembre de 2013 .
  31. ^ Paasch, Christoph; Buenaventura, Olivier (abril de 2014). "TCP de rutas múltiples". Comunicaciones de la ACM . 57 (4): 51–57. doi :10.1145/2578901. S2CID  17581886.
  32. ^ Raiciu, Costin; Iyengar, Janardhan; Buenaventura, Olivier (2013). Haddadi, Hamed; Buenaventura, Olivier (eds.). Avances recientes en protocolos de transporte confiables. ACM SIGCOM.
  33. ^ Jalili, Ramin; Gast, Nicolás; Popovic, Miroslav; Upadhyay, Utkarsh; Le Boudec, Jean-Yves (2012). "MPTCP no es óptimo de Pareto". Actas de la octava conferencia internacional sobre tecnologías y experimentos de redes emergentes. págs. 1–12. doi :10.1145/2413176.2413178. ISBN 9781450317757. S2CID  14210629.{{cite book}}: Mantenimiento CS1: fecha y año ( enlace )
  34. ^ Peng, Qiuyu; Walid, Anwar; Hwang, Jaehyun; Bajo, Steven H. (2013). "TCP multirruta: análisis, diseño e implementación". Transacciones IEEE/ACM en redes . 24 : 596–609. arXiv : 1308.3119 . Código Bib : 2013arXiv1308.3119P. doi :10.1109/TNET.2014.2379698. S2CID  250322.
  35. ^ abc P. Rodríguez; E. Biersack (1 de julio de 2002). «Acceso paralelo dinámico a contenidos replicados en Internet» (PDF) . Transacciones IEEE/ACM sobre redes. Archivado desde el original (PDF) el 27 de septiembre de 2013.
  36. ^ "Borrador-ietf-avtcore-MPRTP-03".
  37. ^ "Borrador-ietf-TSVWG-multipath-DCCP-04".
  38. ^ P. De Coninck; O. Buenaventura (30 de octubre de 2010). "Extensión de rutas múltiples para QUIC". IETF .
  39. ^ P. De Coninck; O. Buenaventura (12 de diciembre de 2010). "QUIC de rutas múltiples: diseño y evaluación" (PDF) . Proc. Conext'2017, Seúl, Corea.
  40. ^ R. Chakravorty; I. Pratt; P. Rodríguez (1 de julio de 2003). "Enrutador de acceso móvil". Universidad de Cambridge, Investigación de Microsoft.

enlaces externos