Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Protocolo TCP………………………….……………………………… 49
Conclusión ………………………………….......…………………….. 81
Bibliografía ……………………………………………….................... 82
introducción
El servicio de transporte orientado a la conexión es parecido en muchos sentidos al servicio de red orientado a la conexión. En
ambos casos, las conexiones tienen tres fases:
→establecimiento
→transferencia de datos
→liberación (o terminación)
El direccionamiento y el control de flujo también son semejantes en ambas capas. Además, el servicio de transporte no
orientado a la conexión es muy parecido al servicio de red no orientado a la conexión.
Cada servicio de transporte tiene su propia interfaz. Con el propósito de ver los aspectos básicos.
Para tener una idea de lo que podría ser el servicio de transporte, consideraremos las cinco primitivas listadas en la figura
6-2.
Esta interfaz de transporte ciertamente es sencilla, pero muestra la esencia de lo que debe hacer una interfaz de
transporte orientada a la conexión: permite que los programas de aplicación establezcan, usen y liberen conexiones, lo
cual es suficiente para muchas aplicaciones.
Para ver cómo podrían usarse estas primitivas, considere una aplicación con un servidor y cierta cantidad de clientes
remotos.
→Para comenzar, el servicio ejecuta una primitiva LISTEN, normalmente llamando a un procedimiento de biblioteca que
hace una llamada de sistema para bloquear
al servidor hasta la aparición de un cliente.
→En la carga útil de este paquete se encuentra un mensaje de capa de transporte encapsulado, dirigido a la entidad de
transporte del servidor.
Usaremos TPDU (Unidad de Datos del Protocolo de Transporte) para referirnos a los mensajes enviados de una
entidad de transporte a otra.
los paquetes están contenidos en tramas (intercambiados por la capa de enlace
de datos).
Cuando llega una trama, la capa de enlace de datos procesa el encabezado de la trama
y pasa el contenido del campo de carga útil de la trama a la entidad de red. Esta última procesa el encabezado
del paquete y pasa el contenido de la carga útil del paquete a la entidad de transporte.
Este anidamiento se ilustra en la figura 6-3.
Regresando a nuestro ejemplo de cliente-servidor, la llamada CONNECT del cliente ocasiona el envío de una TPDU
CONNECTION REQUEST (solicitud de conexión) al servidor.
Al llegar ésta, la entidad de transporte verifica que el servidor esté bloqueado en LISTEN (es decir, esté interesado en
manejar solicitudes).
A continuación desbloquea el servidor y envía una TPDU CONNECTION ACCEPTED (conexión aceptada) de regreso
al cliente. Al llegar esta TPDU, el cliente se desbloquea y se establece la conexión.
diagrama de estado del establecimiento y liberación de una conexión con estas primitivas sencillas. Cada
transición es activada por algún evento, ya sea una primitiva ejecutada por el usuario de transporte local o la
llegada de un paquete.
SOCKETS DE BERKELEY
Otro grupo de primitivas de transporte, las primitivas de socket usadas en el UNIX de Berkeley para el TCP. En
términos generales, las primitivas siguen el modelo de nuestro primer ejemplo, pero ofrecen más características
y flexibilidad.
Características generales
La primitiva SOCKET crea un nuevo punto de comunicación y le asigna espacio en las tablas de la entidad de
transporte.
Los sockets recién creados no tienen direcciones de red. Éstas se asignan mediante la primitiva BIND.
La razón para que la llamada SOCKET no cree directamente una dirección es que algunos procesos se
encargan de sus direcciones (por ejemplo, han estado usando su
misma dirección durante años y todos la conocen), mientras que otros no lo hacen.
ELEMENTOS DE LOS PROTOCOLOS DE
TRANSPORTE
El servicio de transporte se implementa mediante un protocolo de transporte entre las dos entidades de transporte.
En la capa de enlace de datos, dos enrutadores se comunican directamente mediante un canal físico mientras que, en la
capa de transporte, ese canal físico es reemplazado por la subred completa.
En la capa de enlace de datos no es necesario que un enrutador especifique el enrutador con el que quiere comunicarse;
cada línea de salida especifica de manera única un enrutador en particular. En la capa de transporte se requiere el
direccionamiento explícito de los destinos.
Una última diferencia entre las capas de enlace de datos y de transporte es de cantidad, más
que de tipo. Se requieren búferes y control de flujo en ambas capas, pero la presencia de una cantidad de conexiones grande
y dinámicamente variable en la capa de transporte puede requerir un enfoque distinto del que se usa en la capa de enlace de
datos.
Direccionamiento
Cuando un proceso (por ejemplo, un usuario) de aplicación desea establecer una conexión con un proceso de aplicación
remoto, debe especificar a cuál se conectará.
El método que normalmente se emplea es definir direcciones de transporte en las que los procesos pueden estar a la escucha
de solicitudes de conexión. En Internet, estos puntos terminales se denominan puertos.
Los puntos terminales análogos de la capa de red (es decir, direcciones de capa de red) se llaman NSAP (Punto de Acceso al
Servicio de Red).
Las direcciones IP son ejemplos de NSAPs.
Los procesos de aplicación, tanto clientes como servidores, se pueden enlazar por sí mismos a un TSAP para establecer una
conexión a un TSAP remoto.
● Un datagrama es un paquete
de datos que constituye el
mínimo bloque de información
en una red de conmutación por
datagramas, la cual es uno de
los dos tipos de protocolo de
comunicación por
conmutación de paquetes
usados para encaminar por
rutas diversas dichas unidades
de información entre nodos de
una red, por lo que se dice que
no está orientado a conexión.
Encabezado UDP
● UDP transmite segmentos que consisten en un encabezado de 8 bytes
seguido por la carga útil.
● Los dos puertos sirven para identificar los puntos terminales dentro de las
máquinas de origen y destino.
Proceso de Transporte UDP
● Cuando llega un paquete UDP, su carga útil se entrega al proceso que está
enlazado al puerto de destino. Este enlace ocurre cuando se utiliza la
primitiva BIND o algo similar. De hecho, el valor principal de contar con UDP
en lugar de simplemente utilizar el IP puro es la adición de los puertos de
origen y destino. Sin los campos de puerto, la capa de transporte no sabría
qué hacer con el paquete. Con ellos, entrega los segmentos de manera
correcta.
Proceso de Transporte UDP
● El puerto de origen se necesita principalmente cuando debe enviarse una
respuesta al origen.
● Al copiar el campo Puerto de origen del segmento que llega en el campo
Puerto de destino del segmento que sale, el proceso que envía la respuesta
puede especificar cuál proceso de la máquina emisora va a obtenerlo.
● El campo Longitud UDP incluye el encabezado de 8 bytes y los datos. El
campo Suma de verificación UDP es opcional y se almacena como 0 si no se
calcula (un 0 calculado se almacena como 1s). Su desactivación no tiene
sentido a menos que la calidad del servicio de los datos no importe (por
ejemplo, en la voz digitalizada).
¿Qué es y que no es UDP?
● No realiza control de flujo, control de errores o retransmisión cuando se
recibe un segmento erróneo. Todo lo anterior le corresponde a los procesos
de usuario. Lo que sí realiza es proporcionar una interfaz al protocolo IP con
la característica agregada de desmultiplexar varios procesos utilizando los
puertos.
● Para aplicaciones que necesitan tener control preciso sobre el flujo de
paquetes, control de errores o temporización, UDP es lo ideal.
Nota de Internet:
● “UDP tampoco proporciona ningún tipo de control de congestión, si hay
congestión en la red, se podrían perder paquetes, y, lógicamente no se va a
encargar de reenviarlos como sí ocurre con TCP. Por tanto, UDP al no disponer
de control de congestión, control de flujo ni control de errores, se podría decir
que UDP es un protocolo no fiable. Además, tampoco proporciona orden en los
datagramas enviados, ni información si un datagrama ha llegado
correctamente, ya que no hay confirmación ni de entrega ni de recepción.
Cualquier tipo de garantías para la transmisión de la información deben ser
implementadas en capas superiores.”
● Referencia:https://www.redeszone.net/tutoriales/internet/tcp-udp-
caracteristicas-uso-diferencias/
Aplicación de el protocolo UDP
● Un área en la que UDP es especialmente útil es en las situaciones cliente-
servidor. Con frecuencia, el cliente envía una solicitud corta al servidor y
espera una respuesta corta. Si se pierde la solicitud o la respuesta, el cliente
simplemente puede terminar y probar nuevamente.
● El código no sólo es simple, sino que se necesitan muy pocos mensajes (uno
en cada dirección) en comparación con un protocolo que requiere una
configuración inicial.
Usos que se le da al UDP
Llamadas a procedimientos remoto
● Birrell y Nelson (1984), quienes sugirieron que se permitiera que los
programas invocaran procedimientos localizados en hosts remotos. Cuando
un proceso en la máquina 1 llama a uno en la máquina 2, el proceso
invocador de la primera se suspende y la ejecución del procedimiento se lleva
a cabo en la 2. La información se puede transportar desde el invocador al
proceso invocado en los parámetros, y se puede regresar en el resultado del
procedimiento. El paso de mensajes es transparente para el programador.
● Esta técnica se conoce como RPC (Llamada a Procedimiento Remoto) y se
ha vuelto la base de muchas aplicaciones de redes. Tradicionalmente, el
procedimiento invocador se conoce como cliente y el proceso invocado,
como servidor, por lo que aquí utilizaremos esos nombres.
Llamada a Procedimiento Remoto
(RPC)
● El propósito esencial de RPC es hacer que una llamada a procedimiento
remoto sea lo más parecida posible a una local. En la forma más simple, para
llamar a un procedimiento remoto, el programa cliente debe enlazarse con un
pequeño procedimiento de biblioteca, llamado stub del cliente, que
representa al procedimiento servidor en el espacio de direcciones del cliente.
De forma similar, el servidor se enlaza con una llamada a procedimiento
denominada stub del servidor.
● Estos procedimientos ocultan el hecho de que la llamada a procedimiento
desde el cliente al servidor no es local.
Pasos para realizar una RPC
Desventajas del RPC
● Por lo general, pasar un apuntador a un procedimiento no es un problema. El
procedimiento invocado puede utilizar el apuntador de la misma manera que
el invocador, porque ambos procedimientos habitan el mismo espacio de
direcciones virtual. Con RPC, el paso de apuntadores es imposible porque el
cliente y el servidor están en diferentes espacios de direcciones.
Relación entre UDP y RPC
● El RPC no necesariamente utilizar paquetes UDP, pero RPC y UDP son una
buena combinación y UDP se utiliza comúnmente con RPC. No obstante,
cuando los parámetros o resultados son más grandes que el tamaño máximo
del paquete UDP o cuando la operación solicitada no tiene la misma potencia
(es decir, no se puede repetir de forma segura, como cuando se incrementa
un contador), tal vez sea necesario establecer una conexión TCP y enviar una
solicitud a través de ella en lugar de utilizar UDP.
El protocolo de transporte en tiempo real
● Es un protocolo de transporte genérico para múltiples aplicaciones.
● Se describe en el RFC 1889 y ahora se utiliza ampliamente.
● La posición del RTP en la pila de protocolos es algo extraña. Se decidió
colocarlo en el espacio de usuario y ejecutarlo (por lo general) sobre UDP.
funcionamiento del RTP
Descripción del funcionamiento del RTP
● La aplicación multimedia consiste en múltiples flujos de audio, vídeo, texto,
entre otros. Éstos se colocan en la biblioteca RTP, la cual está en el espacio
de usuario junto con la aplicación. Esta biblioteca multiplexa los flujos y los
codifica en paquetes RTP, que después coloca en un socket. En el otro
extremo del socket (en el kernel del sistema operativo), los paquetes UDP se
generan e incrustan en paquetes IP. Si la computadora está en una Ethernet,
los paquetes IP se colocan a continuación en tramas Ethernet para su
transmisión. En la figura 6-25(a) se muestra la pila de protocolos para esta
situación, y en la 6-25(b) se muestra el anidamiento de paquetes.
Nota
● Debido a que se ejecuta en el espacio de usuario y a que está enlazado al
programa de aplicación, ciertamente luce como un protocolo de aplicación.
Por otro lado, es un protocolo genérico, independiente de la aplicación que
simplemente proporciona características de transporte, por lo que se parece
a un protocolo de transporte. Probablemente la mejor descripción es que es
un protocolo de transporte que está implementado en la capa de aplicación.
Función y características del RTP
● Multiplexar varios flujos de datos en tiempo real en un solo flujo de paquetes
UDP.
● RTP sólo utiliza UDP normal, sus paquetes no son tratados de manera especial
por los enrutadores, a menos que se habiliten algunas características de calidad
de servicio IP normales.
● A cada paquete enviado en un flujo RTP se le da un número más grande que a su
predecesor.
● RTP no tiene control de flujo, control de errores, confirmaciones de recepción ni
ningún mecanismo para solicitar retransmisiones.
● Muchas de las aplicaciones en tiempo real necesitan es la marcación del tiempo
(timestamping). La idea aquí es permitir que el origen asocie una marca de
tiempo con la primera muestra de cada paquete.
Encabezado del RTP
Descripción del encabezado (1)
● Consiste de tres palabras de 32 bits y de algunas extensiones.
● La primera palabra contiene el campo Versión, que es la 2. Esperemos que
esta versión esté muy cerca de la final debido a que sólo quedó pendiente un
punto del código
● El bit P indica que el paquete se ha rellenado a un múltiplo de 4 bytes. El
último byte de relleno indica cuántos bytes se agregaron.
● El bit X indica que hay un encabezado de extensión. El formato y el
significado de este encabezado no se definen. Lo único que se define es que
la primera palabra de la extensión proporciona la longitud.
Descripción del encabezado (2)
● El campo CC indica cuántos orígenes de contribución están presentes, de 0 a
15.
● El bit M es un bit marcador específico de la aplicación. Puede utilizarse para
marcar el inicio de un cuadro de vídeo, el inicio de una palabra en un canal de
audio, o algo más que la aplicación entienda.
● El campo Tipo de carga útil indica cuál algoritmo de codificación se ha
utilizado (por ejemplo, audio de 8 bits sin compresión, MP3, etcétera).
● El Número de secuencia es simplemente un contador que se incrementa en
cada paquete RTP enviado. Se utiliza para detectar paquetes perdidos.
Descripción del encabezado (3)
● El Identificador de origen de sincronización indica a cuál flujo pertenece el
paquete. Es el método utilizado para multiplexar y desmultiplexar varios
flujos de datos en un solo flujo de paquetes UDP.
● Los Identificadores de origen de contribución, en caso de que haya, se
utilizan cuando los mezcladores están presentes en el estudio.
Protocolo de Control de Transporte en
Tiempo Real (RTCP)
● RTP tiene un hermano pequeño llamado RTCP (Protocolo de Control de
Transporte en Tiempo Real).
● Maneja la retroalimentación, sincronización y la interfaz de usuario, pero no
transporta ningún tipo de datos. La primera función se puede utilizar para
proporcionar a los orígenes retroalimentación en caso de retardo, fluctuación,
ancho de banda, congestión y otras propiedades de red. El proceso de
codificación puede utilizar esta información para incrementar la tasa de
datos (y para proporcionar mejor calidad) cuando la red está funcionando
bien y para disminuir la tasa de datos cuando hay problemas en la red.
Aplicación del RTCP
● Si el ancho de banda crece o decrece durante la transmisión, la codificación
puede cambiar de MP3 a PCM de 8 bits a codificación delta conforme se
requiera. El campo Tipo de carga útil se utiliza para indicar al destino cuál
algoritmo de codificación se emplea en el paquete actual, lo que hace posible
modificarlo a solicitud.
Comparación de encabezados TCP vs UDP
LOS PROTOCOLOS DE TRANSPORTE DE
INTERNET: TCP
● UDP es un protocolo simple y tiene algunos usos específicos, como
interacciones cliente-servidor y multimedia, pero para la mayoría de las
aplicaciones de Internet se necesita una entrega en secuencia confiable. UDP
no puede proporcionar esto, por lo que se necesita otro protocolo. Se llama
TCP y es el más utilizado en Internet. A continuación lo estudiaremos con
detalle.
Introducción a tcp
● TCP (Protocolo de Control de Transmisión) se diseño específicamente para
proporcionar
● un flujo de bytes confiable de extremo a extremo a través de una interred no
confiable. Una interred difiere de una sola red debido a que diversas partes
podrían tener diferentes topologías, anchos de banda, retardos, tamaños de
paquete y otros parámetros. TCP tiene un diseño que se adapta de manera
dinámica a las propiedades de la interred y que se sobrepone a muchos tipos
de fallas.
● TCP debe proporcionar la confiabilidad que la mayoría de los usuarios
desean.
El modelo del servicio TCP
● Una característica clave de TCP, y una que domina el diseño del protocolo, es que
cada byte de una conexión TCP tiene su propio número de secuencia de 32 bits.
● La entidad TCP emisora y la receptora intercambian datos en forma de
segmentos. Un segmento consiste en un encabezado TCP fijo de 20 bytes seguido
de cero o más bytes de datos.
● El protocolo básico usado por las entidades TCP es el protocolo de ventana
corrediza. Cuando un transmisor envía un segmento, también inicia un
temporizador. Cuando llega el segmento al destino, la entidad TCP receptora
devuelve un segmento (con datos, si existen, de otro modo sin ellos) que contiene
un número de confirmación de recepción igual al siguiente número de secuencia
que espera recibir. Si el temporizador del emisor expira antes de la recepción de la
confirmación, el emisor envía de nuevo el segmento.
ENCABEZADO DEL SEGMENTO TCP
ENCABEZADO DEL SEGMENTO TCP
● Cada segmento comienza con un encabezado de formato fijo de 20 bytes.
● Los campos de Puerto de origen y Puerto de destino identifican los puntos
terminales locales de la conexión.
● Los campos de Número de secuencia y Número de confirmación de recepción
desempeñan sus funciones normales.
● La Longitud del encabezado TCP indica la cantidad de palabras de 32 bits
contenidas en el encabezado TCP.
● Ahora vienen seis indicadores de 1 bit.
● El campo Tamaño de ventana indica la cantidad de bytes que pueden enviarse
comenzando por el byte cuya recepción se ha confirmado.
● También se proporciona una Suma de verificación para agregar confiabilidad. Es
una suma de verificación del encabezado y los datos.
● El campo Opciones ofrece una forma de agregar características extra no cubiertas
por el encabezado normal. La opción más importante es la que permite que cada
host especifique la carga útil TCP máxima que está dispuesto a aceptar.
Establecimiento de una conexión TCP
La solución de Clark es evitar que el receptor envíe una actualización de ventana para 1 byte. En
cambio, se le obliga a esperar hasta tener disponible una cantidad de espacio, y luego lo anuncia.
El algoritmo de Nagle y la solución de Clark al síndrome de ventana
tonta son complementarios.
● Cuando la carga ofrecida a cualquier red es mayor que la que puede manejar,
se genera una congestión. Internet no es ninguna excepción.
● La idea es no inyectar un paquete nuevo en la red hasta que salga uno viejo
(es decir, se entregue).
● El primer paso del manejo de la congestión es su detección.
● Hoy día, la pérdida de paquetes por errores de transmisión es
relativamente rara debido a que las troncales de larga distancia son
de fibra.
● En consecuencia, la mayoría de las expiraciones de tiempo en
Internet se deben a congestión.
● Todos los algoritmos TCP de Internet suponen que las expiraciones
de tiempo son causadas por congestión y las revisan en busca de
problemas.
● La solución de Internet es aceptar que existen dos problemas
potenciales (capacidad de la red y capacidad del receptor) y
manejarlos por separado.
● Cada emisor mantiene dos ventanas: la ventana que ha otorgado el
receptor y una segunda ventana, la ventana de congestión. Cada una
refleja la cantidad de bytes que puede enviar el emisor. La cantidad
de bytes que pueden enviarse es la cifra menor de las dos ventanas.
● Por tanto, la ventana efectiva es el mínimo de lo que el emisor
piensa que es correcto y lo que el receptor piensa que está bien. Si el
receptor dice “envía 8 KB” pero el emisor sabe que las ráfagas de
más de 4 KB saturan la red, envía 4 KB.
Algoritmo “Arranque lento”
● Si se recibe la confirmación de recepción de este segmento antes de que
expire el temporizador, el emisor agrega el equivalente en bytes de un
segmento a la ventana de congestión para hacerla de dos segmentos de
tamaño máximo, y envía dos segmentos. A medida que se confirma cada uno
de estos segmentos, se aumenta el tamaño de la ventana de congestión en
un segmento máximo
Algoritmo de congestión de internet
● Usa un tercer parámetro, el umbral,
inicialmente de 64 KB, además de las
ventanas de recepción y congestión.
Al ocurrir una expiración del
temporizador, se establece el umbral
en la mitad de la ventana de
congestión actual, y la ventana de
congestión se restablece a un
segmento máximo. Luego se usa el
arranque lento para determinar lo que
puede manejar la red, excepto que el
crecimiento exponencial termina al
alcanzar el umbral y pasa a ser un
crecimiento lineal en la ventana de
congestión.
Administración de temporizadores del tcp
TIMED WAIT
• El último temporizador es el que se usa en el estado TIMED WAIT, opera durante el
doble del tiempo máximo de vida de paquete para asegurar que, al cerrarse una
conexión, todos los paquetes creados por ella hayan desaparecido.
TCP y UDP INALÁMBRICOS
● En teoría, el TCP no debería preocuparse si el IP está operando por fibra o por radio. En
la práctica sí importa, puesto que la mayoría de las implementaciones de TCP han sido
optimizadas cuidadosamente con base en supuestos que se cumplen en las redes
alámbricas, pero no en las inalámbricas.
● Hoy día, casi todas las implementaciones de TCP suponen que las expiraciones del
temporizador ocurren por congestionamientos, no por paquetes perdidos,
desgraciadamente, los enlaces de transmisión inalámbrica son muy poco confiables.
Pierden paquetes todo el tiempo.
● Con frecuencia, la trayectoria del emisor al receptor no es homogénea. Los primeros
1000 km podrían ser a través de una red alámbrica, pero el último km podría ser
inalámbrico. Ahora es más difícil la decisión correcta en el caso de una expiración del
temporizador, ya que es importante saber dónde ocurrió el problema. Una solución
propuesta por Bakne y Badrinath (1995), el TCP indirecto, es la división de la conexión
TCP en dos conexiones distintas, como se muestra en la figura siguiente.
● La primera va del emisor a la estación base. La segunda va de la estación base al receptor. La estación base
simplemente copia paquetes entre las conexiones en ambas direcciones.
● La ventaja de este esquema es que ahora ambas conexiones son homogéneas. Las expiraciones del
temporizador en la primera conexión pueden reducir la velocidad del emisor, y las expiraciones del temporizador
en la segunda pueden acelerarla. También es posible ajustar otros parámetros por separado para cada
conexión.
● La desventaja es que se viola por completo la semántica del TCP. Dado que cada parte de la conexión es una
conexión TCP completa, la estación base confirma la recepción de cada segmento TCP de la manera normal,
sólo que ahora la recepción de una confirmación en el emisor no significa que el receptor recibió el segmento,
sino que la estación base lo recibió.
TCP para transacciones
La capa de transporte es una de las mas fácil de comprender ya que como lo dice
su nombre se encargan de transportar la información haciendo uso de los
diferentes protocolos de transporte como lo son los TPDU, TCP,UDP y atraves de
las primitivas de protocolo de transporte poder lograrse esa conexión entre 2 o mas
dispositivos para hacer diferentes tipos de cosas como enviar información, recibir
documentos, ver streaming entre otras.
bibliografía
✓ redes-de-computadoras-tanenbaum-4ta-edicion-espanol.
✓ https://sites.google.com/site/sabyrodriguezgamez/unidad2/2-2-capa-de-transporte
✓ https://www.youtube.com/watch?v=ez82JeEMYjQ&ab_channel=aulaclic