esta capa usa 2 protocolos: TCP y UDP

la capa de aplicacion genera datos que deben ser intercambiados entre hosts de origen y destinatarios la capa de transporte es responsable de la comunicacion logica entre las aplicaciones corriendo en diferentes hosts y la transmision confiable de informacion para una aplicacion.

responsabilidades:

  • trackear conversaciones individuales:
    • cada conjunto de datos entre origen y destino se les conoce como conversaciones
    • los hosts pueden tener distintas “conversaciones” simultaneas
  • segmentacion de datos y reensamblaje de segmentos:
    • es responsabilidad de esta capa dividir los datos en bloques de datos de tamano acorde
  • incluir informacion de header:
    • permite a los diferentes protocolos de capa de transporte a realizar distintas funciones para manejar los datos de la comunicacion
  • identificar las aplicaciones
    • para distinguir cuales son las “conversaciones” usa el numero de puerto
  • multiplexor de conversaciones
    • se usa segmentacion y multiplexacion para permitir diferentes conversaciones al mismo tiempo en la misma red
    • se puede hacer checkeo de error en el segmento de datos, para analizar si el segmento fue alterado durante la transmision

protocolos

Pasted image 20260703145847.png los bloques de transport layer tienen distinto nombre dependiendo del protocolo:

  • UDP: datagrams
  • TCP: segments

TCP

es confiable, con muchas features, y se asegura que todos los datos lleguen a destino incluye campos para asegurar el envio de los datos de aplicacion

hace tres operaciones basicas:

  • 1.Numerar y rastrear los segmentos de datos transmitidos a un host específico desde una aplicación específica.
  • 2.Confirmar la recepción de los datos.
  • Retransmitir cualquier dato no confirmado después de un cierto tiempo.
  • Secuenciar los datos que puedan llegar en un orden incorrecto.
  • 3.Enviar datos a una velocidad eficiente que sea aceptable para el receptor.

TCP es conocido como un protocolo orientado a la conexion

ademas TCP, provee los siguientes servicios:

  • establece conexion
    • antes de permitir ningun trafico
  • se asegura de una entrega confiable
  • provee el mismo orden de entega original
  • soporta control de flujo

RFC 793

header TCP

un segmento TCP anade 20 bytes de overhead del header Pasted image 20260703151239.png Pasted image 20260703151245.png

aplicaciones que usan TCP

  • FTP
  • SMTP
  • HTTP
  • SSH
  • otras

UDP

no provee confiabilidad y control de flujo requiere menos campos de header provee las funcionalidades basicas para enviar datagrams en las aplicaciones correspondientes

  • poco overhead
  • poco data checking

UDP -> conectionless

  • no requiere una conexion establecida

features de UDP:

  • datos son reconstruidos en el orden recibido
  • aquellos segmentos perdidos no son reenviados
  • no hay establecimiento de sesion
  • el host que envia no es informado acerca de la disponibilidad de recursos

header UDP

Pasted image 20260703151512.png Pasted image 20260703151526.png

aplicaciones que usan UDP

  • DHCP
  • DNS
  • SNMP
  • TFTP
  • VoIP
  • video conferencing
  • otras

cual protocolo elegir

cuando la perdida de datos no es relevante, se prioriza la velocidad, cuando los datos son minimos -> UDP cuando es importante convervar el estado original de los datos, bases de datos, email clients, transacciones bancarias -> TCP

DNS usa UDP

numero de puerto

comunicaciones separadas:

  • TCP y UDP usan el numero de puerto para manejar conversaciones en simultaneo
  • se usa source port y destination port

socket pairs:

  • es la combinacion de direccion IP y numero de puerto
  • ejemplo source y destination: 192.168.1.5:1099, 192.168.1.7:80

grupos de numeros de puertos: Pasted image 20260703152059.png

algunos puertos conocidos Pasted image 20260703152112.png

netstat

conexiones TCP desconocidas pueden ser consideradas una gran amenaza de seguridad en la red.

proceso de comunicacion - TCP

clientes enviando requests TCP:

  • se genera automaticamente un numero de puerto de origen
  • se envia un request a un puerto ya conocido
  • cuando se responde el request se invierte el numero de puerto source por el de origen

establecimiento de conexion TCP

  1. SYN, inicio de la comunicacion cliente-a-server Pasted image 20260703152710.png
  2. ACK y SYN, el server le devuelve un acknowledgement al cliente y le hace un request para una sesion de comunicacion servidor-a-cliente Pasted image 20260703152955.png
  3. el cliente reconoce la sesion de comunicacion servidor-a-cliente Pasted image 20260703153032.png

terminacion de una sesion: la flag (FIN) debera estar marcada en el header del segmento TCP. tanto el cliente como el servidor pueden iniciar una terminacion de sesion. 1. Pasted image 20260703153211.png 2. ACK enviado por el servidor para reconocer que recibio el segmento con flag FIN para terminar la sesion desde cliente a servidor Pasted image 20260703153328.png 3. el servidor envia un FIN al cliente para terminar la sesion servidor-a-cliente Pasted image 20260703153400.png 4. ACK, el cliente responde con el ACK para reconocer el FIN del servidor Pasted image 20260703153426.png cuando todos los segmentos son reconocidos, la sesion es cerrada.

analisis three-way handshake TCP

estas son las funciones del three-way handshake

  • establece que el dispositivo de destino esta en la red
  • verifica que el dispositivo de destino tiene un servicio activo y esta aceptando requests en el puerto de destino que el cliente intenta usar
  • informa al dispositivo de destino que el cliente origen intenta establecer una comunicacion en ese numero de puerto

campo de bits de control: Pasted image 20260703153943.png son 6 bits en el header de segmentos TCP (tambien conocido como flags) cada bit representa una flag y tiene un significado particular.

  • URG – Urgent pointer field significant
  • ACK – Acknowledgment flag used in connection establishment and session termination
  • PSH – Push function
  • RST – Reset the connection when an error or timeout occurs
  • SYN – Synchronize sequence numbers used in connection establishment
  • FIN – No more data from sender and used in session termination

TCP - confiabilidad y control de flujo

en el setup de la sesion, se asigna un numero (ISN) que representa el valor de inicio de los bytes que son transmitidos a la aplicacion receptora. Mientras los datos se van transmitiendo, el numero de secuencia se incrementa por el numero de bytes transmitidos el ISN comienza en un numero random para preevenir ataques malintencionados

luego se usa este numero para poder reordenar segmentos TCP que hayan llegado desordenados.

TCP - perdida de datos y retransmision

anteriormente, TCP solo podia reconocer el proximo byte esperado, entonces tenia que reenviar muchos segmentos lo que resultaba en muchos envios duplicados

hoy en dia, TCP usa selective acknowledgement (SACK), que se negocia en el three-way handshake. si los dos hosts soportan SACK, el receptor puede reconocer explicitamente cuales segmentos (bytes) fueron recibidos incluyendo segmentos discontinuos. entonces el host emisor solo tiene que transmitir los datos faltantes

TCP - window size and acknowledgements

el flow control es la cantidad de datos que el destinatario puede recibir y procesar confiablemente. el header TCP incluye un campo de 16 bits llamado window size para ajustar el rate del flujo de datos entre origen y destino Pasted image 20260703162356.png window size: determina el numero de bytes que el dispositivo de destino en una sesion TCP puede aceptar un procesar en un tiempo.

el maximum segment size (MSS) que un dispositivo de destino puede recibir es tipicamente 1460 bytes. el tamano de MSS no contempla el header TCP

TCP - control de congestion

cuando hay congestion

  • (determinando el rate en que los segmentos TCP son enviados pero no reconocidos, el origen asume que hay cierto nivel de congestion) la retransmision de segmentos TCP desde el origen ocurrida, y se utilizan tecnicas para que estos segmentos reenviado no congestionen aun mas la comunicacion Pasted image 20260703163651.png

comunicacion UDP

UDP no revisa la secuencia de numeros de la misma manera que TCP no reordena los datagrams

la comunicacion es practicamente igual a TCP, pero sin los controles adicionales que provee TCP.

Lab

Which action is performed by a client when establishing communication with a server via the use of UDP at the transport layer?
The client randomly selects a source port number
The client sends a synchronization segment to begin the session
The client sends an ISN to the server to start the 3-way handshake
The client sets the window size for the session