TCP y UDP.

NIVELES DE RED

Introducción.

Capas TCP/IP
TCP y UDP Son la capa de transporte, es la primera que une dos entidades (procesos), en vez de dos hosts.
Suele ser la primera capa visible para los programadores de aplicaciones, IP se puede considerar la fronteraentre los administradores y los programadores.

UDP.

User Datagram Protocol. Sus funciones son:

Formato de una trama UDP.

Bits 0-15 Bits 16-31
0 Source Port Destination Port
32 Length Checksum
64 Data Data

Características de UDP.

Los datagramas pueden llegar en un orden diferente al enviado (si IP elige rutas distintas para ellos.) El emisor no tiene la seguridad de que los datagramas llegan al receptor. Por tanto, no tiene conexiones i es confiable. Cada datagrama se envía de forma independiente.

TCP.

Transmission Control Protocol. Asegura que la transmisión se realiza por un medio fiable. Garantiza la recepción de los mensajes en orden correcto. Garantiza al emisor que los mensajes llegan correctamente al receptor. Por tanto, es orientado a conexión y confiable.
Tamaño de datagramas

Ventana y correción de errores.

TCP necesita confirmación de cada mensaje enviado, para garantizar la confiabilidad.
Opciones:

la parada y espera es más simple, pero desaprovecha ancho de banda. Ejemplo de parada y espera: Parada y espera Ejemplo de piggybacking con ventana. Piggybacking

Sequence number y Acknowledgment number.

TCP intenta que la comunicación se asemeje a un flujo de bytes.
Todos los bytes que entran por un extemo ... deben salir por el otro lado.
En cada paquete se envía:

Estado de la conexión.

Cada extremo de la comunicación debe saber:

Además, también lleva la cuenta de su opinión acerca del sequence numbery del acknowledgment numberdel otro extremo.

Corrección de errores.

Si se recibe un sequence number posterior a nuestro acknowledgment number
Es un paquete posterior al que esperamos.

El otro lado reenviará los paquetes necesarios.
seq number y ack Si se recibe un sequence number anterior a nuestro acknowledgment number. Si llega un acknowledgment number menor que los bytes enviados. seq number lose
Si no tengo confirmación de un paquete enviado tras un timeout.

Mensajes TCP.

Establecimiento de conexión.

Estados TCP.

Los pirncipales estados son:

Todos los estados en: http://www.medianet.kent.edu/techreports/TR2005-07-22-tcp-EFSM.pdf

Puertos.

Se llama puerto a la dirección de nivel de transporte en:

La asignación de puertos se realiza según el RFC 1700 Puertos

Asignación de puertos.

Comando netstat

Informa de:

Linux Windows
Conexiones TCP -t -p tcp
Conexiones UDP -u -p udp
Proceso -p -o
No traducir direcciones -n -n
Escuchando -l
Escuchando y establecidas -a -a

Comando nc

Netstat permite realizar conexiones TCP/UDP y redirigir su entrada/salida. Usos: Simular de forma rápida un cliente para probar un servidor. Simular un servidor para probar un cliente. Comprobar si el firewall permite conexiones. Transferir información por red. Versión Windows: https://eternallybored.org/misc/netcat/ Otras versiones para Windows:
- Máquina virtual con linux.
- powercat
- Windows Subsystem for Linux.

Direcciones de escucha.

Cuando un procesos escucha en un puerto, también elige en qué dirección de red escucha. La dirección IP se puede utilizar como un firewall rudimentario.

Dirección Efecto
0.0.0.0 Escucha en tocas las direcciones IP accesibles.
127.X.X.X Escucha en una dirección local
X.X.X.X Escucha en una interfaz de red concreta
No todas las combinaciones son posibles.
Es posible escuchar en el mismo puerto en 127.X.X.X y en X.X.X.X
0.0.0.0 no es compatible con ningún otro.

Posibilidades.

El servidor está accesible a todo el mundo.
El servidor solo está disponible desde la máquina local (por ejemplo email local).
El servidor solo está disponible por una de las interfaces de red.
Diferentes servidores en diferentes interfaces de red.

¿Más de un proceso escuchando en el miso puerto?

Dependiendo de la versión de Linux/Windows, más de un proceso puede escuchar en el mismo puerto.
Se hace para repartir mejor múltiples conexiones de clientes entre las CPU del servidor.

TCP vs UDP

TCP

Es un medio de transmisión asegurado, las aplicaciones que usan TCP no envían paquetes, sino bytes. TCP decide cuando enviar un paquete (las apicaciones pueden opinar).
Consume más CPU y memoria, por la ventana de emisión y los reenvíos.

UDP

Es más eficiente, no necesita mantener conexión, ni reordenar paquetes, ni retransmitir paquetes, las aplicaciones son conscientesde que se envían paquetes, no bytes. En redes con pocos errores, puede ser adecuado.
Interesante cuando se necesita mucho ancho de banda pero no importa perder algún paquete(voz, vídeo).

Human Computing 3.0 ©