¿TCP debe usar IP?


108

¿Es cierto que TCP es la abreviatura de TCP / IP y significan lo mismo?

¿Es posible que TCP se construya sobre otro protocolo además de IP ?


31
Por qué no? Podría haber visto TCP sobre el código Morse una vez.
soandos

2
Un ejemplo sería un túnel ICMP, que utiliza TCP sobre ICMP. Pero es cierto que no es habitual construir TCP sobre cualquier cosa que no sea IP. Por lo general, la capa de acceso a la red es la que utiliza una gama más amplia de protocolos y canales (como los tambores bongo).
Señor Smith

1
@TomWijsman ¿Intentó un error? Por lo que entiendo, cualquier problema que hayan tenido que ver con abordar problemas e interoperabilidad en lugar de cualquier problema para que TCP funcione.
tylerl

2
@harper Con el código Morse normal, 200 caracteres / minuto ciertamente no son desconocidos para los operadores expertos, y la mayoría de las personas con suficiente práctica logran definitivamente 100 c / min (20 palabras por minuto). Por supuesto, a esas velocidades, realmente no escuchas a cada personaje individual, sino más bien el sonido de las palabras. (Se dice que el sello distintivo de un operador experto es que recuerdan la conversación, pero no las palabras utilizadas). Sin embargo, me imagino que los caracteres de 100 c / min espaciados a una velocidad general de 50-60 c / min serían factibles con Tasas de error de caracteres insignificantes.
un CVn

2
@harper Depende de su nivel de precisión requerido. Para charlar en gran medida (masticar trapos, hablar en radioaficionados), decir una palabra aquí y allá mal no es realmente un problema, porque el contexto importa más que las palabras exactas utilizadas. Para el tráfico de telegramas, comunicaciones de emergencia / socorro, etc., especialmente si el texto está cifrado, cada palabra y, de hecho, cada carácter debe (no solo recibirse sino también) copiarse correctamente (y legiblemente). Tenga en cuenta que dije que 200 c / min "no es inaudito"; No es un lugar común. Sin embargo, 100 c / min es bastante común en las bandas de radioaficionados.
un CVn

Respuestas:


16

TCP e IP (v4 y v6) son definitivamente separables, y uno no implica el otro, como lo demuestra el ejemplo de TCP sobre IPX ( RFC 1791 ).

Sin embargo, TCP no se puede construir sobre cualquier protocolo de red. Dos razones:

  1. No hay un campo de tamaño de segmento en el encabezado TCP (solo el Desplazamiento de datos, que proporciona el tamaño del encabezado TCP). Por lo tanto, TCP solo funcionará con un protocolo de capa inferior que incluya suficiente información para calcular el tamaño del segmento TCP (es decir, el tamaño de la carga útil del protocolo de capa inferior). Esa suposición es cierta para IPv4 ( RFC 791 ), IPv6 ( RFC 2460 ) e IPX ( RFC 1791 ). Pero no es cierto en general, por ejemplo, no para portadores de aves ( RFC 1149 ) (ver nota a).
  2. TCP solo está diseñado para funcionar en un protocolo de red sin conexión. TCP efectivamente no funciona sobre ciertos protocolos de red orientados a la conexión (por ejemplo, el servicio de velocidad de bits constante ATM), porque las dos funciones de control de velocidad de lucha conducen a un rendimiento muy pobre o impredecible. Otro ejemplo degenerado es TCP sobre un túnel TCP.

La especificación TCP, RFC 793 , no es una buena fuente para decidir esta pregunta, porque admite que deja su interfaz con la capa inferior en gran parte sin especificar.

Nota a) Para que TCP reensamble datagramas impresos en pequeñas hojas de papel (ya sean transportadas por palomas o una red córvida más inteligente), el tamaño de la carga útil debería escribirse en una ubicación estándar. Alternativamente, una capa de adaptación podría determinar heurísticamente el tamaño del segmento. El escáner óptico utilizado en la implementación de la pila de host de la especificación de portadores de aves ( RFC 1149 ) incluía una capa de adaptación heurística de este tipo, pero permanece indocumentada.


2
Técnicamente preciso (hasta donde puedo decir), exhaustivo, respaldado por referencias, claro y alegre. Le daría a este un puñado de votos a favor si pudiera.
Scott

2
¡El ejemplo aviar es lúcido e hilarante!
Juan

88

No he leído todo el RFC, pero el lenguaje en la sección 1.4 parece sugerir que se puede usar cualquier protocolo de "nivel inferior".

La interfaz entre TCP y el protocolo de nivel inferior está esencialmente sin especificar, excepto que se supone que hay un mecanismo por el cual los dos niveles pueden pasar información de forma asincrónica entre sí. Por lo general, se espera que el protocolo de nivel inferior especifique esta interfaz. TCP está diseñado para funcionar en un entorno muy general de redes interconectadas. El protocolo de nivel inferior que se supone a lo largo de este documento es el Protocolo de Internet.


101
La propia IP se ha implementado en muchas tecnologías de red, incluso en palomas mensajeras . Las aves se usaron para demostrar la entrega de paquetes Ping ICMP, con una pérdida de paquetes del 55% (aparentemente debido a un error del operador) y latencias que van de una a dos horas. Sería posible ejecutar TCP además de eso, pero la configuración de la conexión requeriría muchas aves ...
RBerteig

21
Sobre el comentario de RBerteig; considere una paloma mensajera con una tarjeta mini-SDHC. Existe la diferencia entre latencia y rendimiento. :-)
un CVn

16
@ MichaelKjörling Esto no funcionaría con RFC 1149: "El datagrama IP se imprime, en un pequeño rollo de papel".
kmkaplan

44
@kmkaplan A menos que el datagrama se haya impreso en la etiqueta de la tarjeta SDHC. Es como el cliché de varias películas: "¡Oh, en realidad está EN el disco duro!"
Jon Hanna

40
Tendría que tener algunos agujeros muy grandes en el firewall para permitir el paso de los transportistas aviares.
Squillman

76

Conjunto de protocolos de internet

TCP no es la abreviatura de TCP / IP.

TCP / IP se usa a menudo como una forma abreviada de decir " The Internet Protocol Suite " y generalmente incluye otros protocolos estándar. Cuando las personas dicen TCP / IP, generalmente incluyen UDP sobre IP (en el que se usa UDP en lugar de TCP) y muchos otros protocolos como ARP, ICMP, DNS, SNMP y otros protocolos de capa de aplicación.

Capa de aplicación

Las aplicaciones usan protocolos de capa de aplicación como SMTP (para correo electrónico). Estos se encuentran en uno de los dos protocolos de capa de transporte: TCP y UDP. Algunos protocolos de capa de aplicación utilizarán uno o ambos UDP y TCP, pero la mayoría se utilizan con un solo protocolo de capa de transporte.

Capa de transporte

TCP y UDP son dos protocolos de capa de transporte utilizados en Internet Protocol Suite. Si hay otros, no los conozco, y cualquier otro representaría un uso de especialistas muy pequeño. Se han definido otros protocolos de capa de transporte: su uso probablemente representa solo una pequeña proporción del tráfico IP global

Capa Internetwork

Si bien en teoría podría ser posible usar TCP sobre algo que no sea IP, en la práctica TCP siempre se usa sobre IP: el Protocolo de Internet. IP mueve paquetes entre redes (piense en IP como conectando múltiples LAN juntas)

Capa de interfaz de red

Ethernet es solo la familia más popular de protocolos de capa de enlace de bajo nivel en los que se transporta TCP / IP, pero TCP / IP también se usa ampliamente en ATM y otros.

Diagrama de capa IP de bootdiscs.net


Apéndice 1 - Una nota sobre los protocolos de la capa de transporte

Los únicos protocolos de capa de transporte de uso significativo en redes que usan Internet Protocol Suite son TCP y UDP.

† Solo por diversión, medí el tráfico en mi (muy) pequeña LAN, que incluye NetBIOS (sobre TCP), SSH, Rsync, correo electrónico, actualizaciones de software, DNS, charlas generales de Windows-box y algunos otros tipos de tráfico.Estadísticas de jerarquía de protocolo de Wirshark

Tenga en cuenta también esta declaración en las preguntas frecuentes de Google para su protocolo QUIC

¿Por qué no construiste un protocolo completamente nuevo, en lugar de usar UDP? Las casillas intermedias en Internet hoy en día generalmente bloquearán el tráfico a menos que sea tráfico TCP o UDP

(mi énfasis)


1
Me trajo hasta 1996 y el Modelo OSI en.wikipedia.org/wiki/OSI_model
Rudi

Hay más de 2 protocolos de capa de transporte: en.wikipedia.org/wiki/Transport_layer#Protocols
Stuart Blackler

@StuartBlackler: punto interesante, gracias. ¿Hay alguna (que no sea TCP y UDP) que no caiga en lo que llamé la categoría de "uso de un especialista muy pequeño" y que se utilizan sobre IP? Si midiera el tráfico IP en un punto de intercambio de Internet , ¿qué proporción de los protocolos de la capa de transporte sería diferente de TCP o UDP?
RedGrittyBrick

Tomemos DCCP, por ejemplo, todavía es un protocolo nuevo, pero imagino que en los próximos años verá más aplicaciones usar el protocolo. La razón por la que no creo que sea general todavía es porque no creo que haya soporte para ello en Windows. Piense en ello como UDP con control de congestión. Puede ser muy útil para muchas aplicaciones como Skype y juegos :) Echa un vistazo. Para responder a su pregunta, probablemente sea una cantidad muy pequeña en este momento
Stuart Blackler

@Rudi err, debes darte cuenta de que ese no es el modelo de referencia OSI, y si te das cuenta de eso, entonces no engañes a las personas para que piensen que sí lo es. Es el modelo / arquitectura TCP / IP ... A veces, la arquitectura TCP / IP se describe con la terminología de OSI, el modelo de referencia OSI. Pero las 4 capas que se muestran y con esos nombres son en gran medida TCP / IP, no OSI. No hay problema con la publicación de red, pero su comentario es engañoso en el mejor de los casos.
barlop

34

La razón por la cual TCP / IP es una abreviatura tan común (a diferencia de, por ejemplo, UDP / IP o SCTP / IP) es porque los dos protocolos fueron diseñados juntos, y en el documento original de Vint Cerf y Bob Kahn, los dos conceptos fueron combinados en un solo protocolo. Poco después se dividieron en IP para proporcionar enrutamiento y TCP para proporcionar control de flujo, multiplexación, detección de errores, etc. No fue sino hasta seis años después que UDP se introdujo para proporcionar una capa de multiplexación "ligera" sin el resto del gastos generales relacionados con TCP.

Aún así, TCP e IP son dos cosas separadas y completamente e intencionalmente independientes. El hecho de que TCP no requiere IP es evidente de inmediato con el hecho de que TCP puede ejecutarse sin modificaciones tanto en IPv4 como en IPv6, que son dos protocolos completamente diferentes.

Con un poco de trabajo, podría crear un protocolo de IP de la competencia que sirviera para los mismos propósitos, pero probablemente tendría que contener la mayoría, si no todas, las mismas características, y probablemente terminaría pareciéndose mucho a la IP de todos modos. Podría argumentar que las extensiones de IP (como IPSec) son protocolos de capa 3 alternativamente efectivos, así que ahí lo tiene.


1
Correcto: la primera versión de TCP incluía la funcionalidad de IP. Quizás otra razón por la cual la gente dice "TCP / IP" es que la gran mayoría de las veces cuando envía datos a través de IP, desea garantizar que todo se entregue y en el orden correcto, por lo que utiliza TCP. Por ejemplo, todo el tráfico HTTP y FTP usa TCP. Una categoría de excepciones son los datos en tiempo real; Skype, por ejemplo, usa UDP, porque prefiere obtener el último paquete en una conversación que detener todo para obtener uno que se perdió.
Nathan Long

21

Puede reemplazar la IP con otra cosa. De hecho, eso es exactamente lo que estás haciendo cuando usas TCP sobre IPv6. TCP sigue siendo TCP, pero la IP es v6 en lugar de v4.

AFAIK, nadie ha creado ningún otro protocolo de capa 3 para trabajar con TCP por encima de ellos, pero no hay razón para que no pueda hacerlo.


9

TCP e IP son como mantequilla sobre pan.

Puede emparejar cualquier otra cosa que funcione con cualquiera de los protocolos, pero estos dos son tan complementarios que es una forma deliciosa y confiable de transferir datos y llenar la barriga con datos de Internet. Engrasa el tubo para permitir que otros alimentos secos y el apretón de manos de datos por igual apoyen este emparejamiento. Pero de ninguna manera es exclusivo.

P Sin embargo, ¿no es posible que TCP se construya sobre otro protocolo además de IP?

Un sí es posible. Me gustan los ejemplos de TCP Morse Code y Pigeon sin IP.


5

Siempre he escuchado que TCP es la abreviatura de TCP / IP

En realidad significa Protocolo de Control de Transmisión sobre Protocolo de Internet

y significan lo mismo.

Eso no es correcto

Primero, Ethernet es el sistema de hardware de bajo nivel que controla cómo funcionan las partes de hardware reales.

Luego, piense en IP como un sistema telefónico o señales de tráfico. Proporciona el control básico del sistema de conexión de dos puntos juntos.

TCP, por otro lado, es más como un sistema de mensajería o un oficial de control de tráfico que dirige los mensajes / automóviles al punto correcto.

En conjunto, TCP / IP, proporciona un sistema de transferencia confiable de datos hacia y desde dos dispositivos conectados.

Con Internet, cuando desea enviar o recibir datos, la parte IP del sistema es la parte que controla la realización de las conexiones de hardware reales con los cables (u ondas inalámbricas). La parte TCP del sistema es el software que se encarga de tomar los datos y dividirlos, enviarlos, volver a ensamblar los datos recibidos y verificar los datos y volver a enviarlos si es necesario.

Hay innumerables explicaciones con analogías y detalles técnicos disponibles, especialmente en forma de video . DifferenceBetween.net tiene una particularmente buena sobre este tema exacto .

Sin embargo, ¿no es posible que TCP se construya sobre otro protocolo además de IP?

Sí, podría crear un sistema alternativo a TCP que use IP. Eche un vistazo a Internet Protocol Suite para obtener más detalles.


13
Es un poco engañoso decir que IP proporciona "conectar" dos puntos juntos. IP proporciona una forma de enviar paquetes individuales discretos de una máquina a otra; cada paquete es independiente de todos los demás. TCP proporciona la ilusión de una conexión continua , que es realmente una secuencia de paquetes enviados a través de IP.
Wyzard

44
La IP tampoco está relacionada con el hardware o la señalización física. Eso es manejado por tecnologías de nivel inferior, por ejemplo, Ethernet.
Wyzard

99
Hay mucho mal con esta respuesta, y se pierde la pregunta por completo. Primero, Ethernet es solo un protocolo de capa de enlace que se ha utilizado para transportar IP. Hay muchos otros, y IP no conoce ni se preocupa por ninguno de ellos. IP no tiene nada que ver con el hardware; Es la capa de enrutamiento entre redes, por encima del hardware utilizado para conectarlas. El punto de la pregunta era si puede usar TCP en algo que no sea IP, no si puede usar algo que no sea TCP que usa IP (consulte UDP para ver un ejemplo de eso).
psusi

3
@synetech, la pregunta no era "¿se puede usar otra cosa en IP"? Era "se puede utilizar TCP en otra cosa", es decir, sin IP.
Wyzard

2
> the fact that !TCP can go over IP does not necessarily mean TCP can go over !IP Huh?psusi está tratando de ser inteligente usando "!" como el "no operador". Su comentario debe leerse como: "el hecho de que algo que no es TCP pueda pasar por IP no necesariamente significa que TCP puede pasar por algo que no es IP". Se hace en referencia a la última oración de su respuesta, que mostró la existencia de "Sistemas alternativos a TCP". Sin embargo, mostrar que existen alternativas a TCP no implica necesariamente ni insinúa que existen alternativas a IP.
Lie Ryan

5

TCP es un protocolo de capa 4. Proporciona transporte garantizado de datos en forma de una secuencia ordenada de un proceso en una computadora a otro proceso en la misma / otra computadora.

IP es un protocolo de capa 3. Proporciona transporte de un host a otro.

Mientras haya un protocolo que pueda hacer la transferencia de datos de host a host, TCP funcionará.

Entonces, TCP se puede implementar sobre cualquier protocolo, pero, solo hemos hecho IP. IP es simple y hace el trabajo.

No hay necesidad de otro protocolo de capa 3.


1
¿Qué pasa con IPv6?
curioso

1
¿Qué pasa con IPv6? Es solo IP. La interfaz de envío y recepción de un paquete sigue siendo la misma. Entonces, TCP puede usar la misma función. El sistema operativo solo puede reemplazar el puntero de función de IPv4 e IPv6 y aún funcionaría. No estoy seguro de lo que estás diciendo aquí?
SurenNihalani

3
IPv6 e IPv4 son similares , con interfaces similares para las capas superiores, pero ciertamente no son el mismo protocolo y tampoco son estrictamente equivalentes funcionalmente.
curioso

Es lo mismo que pretender que UDP es el mismo protocolo que IP , ya que ofrecen las interfaces muy similares a las capas superiores: establecer un punto final a las direcciones locales y remotas, enviar y recibir paquetes ...
curiousguy

3

Cuando diseña una red, debe elegir un conjunto de protocolos (que son básicamente conjuntos de reglas de comunicación entre máquinas), para cada una de las diferentes "capas" (que puede imaginar como diferentes niveles de abstracción, que a los diseñadores de redes les gusta tenga en cuenta al crear y combinar protocolos).

Versión más simple: los protocolos son como cuadros en los que ponemos nuestros mensajes . Esos cuadros tienen diferentes tamaños, y usted coloca su mensaje en el cuadro más pequeño, luego el cuadro más pequeño en un cuadro que es un poco más grande, etc. Elegir un conjunto de protocolos es elegir qué tipo de cuadros usará, para cada " capa "que rodea su mensaje.

TCP e IP son protocolos para dos capas independientes, que se crearon juntas y se pueden usar juntas; pero se puede usar muy bien con otros protocolos. Eso sucede con bastante frecuencia: puede usar IP junto con un protocolo no TCP o TCP junto con un protocolo no IP .

La razón por la cual TCP / IP es una abreviatura tan común es que esos dos protocolos formaron, juntos, la base de Internet y fueron clave para su éxito .

(TCP e IP tienen algunas funcionalidades que fueron diseñadas específicamente para que funcionen juntas, que es algo de lo que los puristas a menudo se quejan, pero en realidad no impiden que los interconecte con otros protocolos)


2

Creo que es posible ejecutar TCP sobre el transporte IPX, si quieres retroceder.


1
Probablemente esté pensando cuando IPX fue tunelizado a través de TCP / IP. Lo cual, como era de esperar, no duró mucho.
andygavin


2

Sin embargo, ¿no es posible que TCP se construya sobre otro protocolo además de IP?

Además de los clásicos TCP / IPv4 y TCP / IPv6, se han diseñado algunos protocolos experimentales, por ejemplo:

Casi TCP sobre UDP (atou)

Como parte de nuestros esfuerzos Net100 y Probe para mejorar las transferencias masivas a través de redes de alta velocidad y alta latencia, hemos desarrollado una versión instrumentada y sintonizable de TCP que se ejecuta sobre UDP. El transporte UDP de tipo TCP sirve como un arnés de prueba para experimentar con controles de tipo TCP a nivel de aplicación similar a TReno.

E iproxy: ejecutar servicios TCP sobre UDP , lo cual es más divertido:

iproxy consta de un proxy del lado del cliente y un proxy del lado del servidor que permite que los servicios TCP / IP arbitrarios se ejecuten en Broadcast, Multicast o Unicast UDP. Originalmente se concibió como un método para configurar servidores que no habían recibido una dirección IP en la LAN utilizando una interfaz basada en la web.

Así que ya ves: ¡TCP en UDP de unidifusión, e incluso TCP en UDP de difusión o multidifusión !

AFAIK solo TCP / IPv4 y TCP / IPv6 disfrutan de una gran implementación.


Sí, pero eso es UDP sobre IP; Veo lo que hiciste allí ...
Tamara Wijsman

@TomWijsman Sí, es TCP / UDP / IP.
curioso


2

Ya existen implementaciones de TCP además de varios protocolos que admiten el transporte de un datagrama básico. De hecho, la necesidad ni siquiera es especificar la información de enrutamiento (TCP ni siquiera necesita IP para trabajar, solo un enlace serila con un destinatario implícito sería suficiente).

Entonces, tiene TCP implementado en la parte superior de UDP (ventaja: utiliza un solo puerto en el lado del "servidor", o puede incrustarlo en una conexión existente que transporta varios canales multiplexados). Solo el nivel de IP proporciona el enrutamiento, pero TCP no lo necesita. Lo único que importa es que el concepto de MTU lo proporciona la capa inferior.

Esto permite que el protocolo omita las limitaciones del recorrido NAT, sin necesidad de registrar un puerto de traducción UPnP para un host específico. Permite un ajuste independiente de MTU y MSS, optimizado para cada cliente en lugar de por cada enrutador compartido intermedio. Son posibles otros protocolos de enrutamiento (incluso para la entrega a través de multidifusión y redes de difusión). Y tiene la opción de los mecanismos de seguridad.

Un ejemplo de uso es Gogo6.net (que implementa su canal de transporte IPv6 a través de una sesión TCP utilizando una reimplementación de TCP sobre UDP v4 (funciona en la mayoría de los enrutadores de acceso doméstico que todavía solo tienen una dirección IPv4 y no siempre admite el método UPnP) ; sin necesidad de configurarlo por usuarios que usan un número de puerto constante específico para la aplicación, incluso cuando no se está ejecutando)

Otros ejemplos es encapsular TCP sobre HTTP (o HTTPS) versión 1.1 con su extensión nativa "transmitida". La mayoría de las VPN que permiten conectar redes a través de Internet harán lo mismo. El puente puede incluso encapsular múltiples protocolos: Ethernet, PPP, IPv4 e IPv6 (extendiendo solo el segmento local LAN o Ethernet), NetBEUI / LanMan, descubrimiento de enrutadores (dentro de la red puenteada), incluso en modo sin procesar (permitiendo DHCPv4 o DHCPv6) en La red puenteada. HTTPS se utiliza porque la encapsulación sobre HTTPS también permite el cifrado y la autenticación para establecer y proteger el puente, pero no requiere autenticación / cifrado de extremo a extremo para clientes y servidores a través de la red puenteada, y porque los enrutadores están altamente optimizados para HTTP y HTTPS.


1

Hay ejemplos de sistemas de comunicación en el ejército que usan TCP pero no IP, ya que la ruta de comunicación es una conexión de tipo serie que no se enruta a través de enrutadores, etc. Si observa un paquete TCP antes de que esté encabezado con campos IP, parece fácilmente posible no usar IP si su protocolo de "enrutamiento" es diferente.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.