Está en la página 1de 36

Facultad de Ingeniería

Ingeniería de Sistemas de Información.


Ingeniería de Software.

Redes y Telecomunicaciones I
2023-0
Contenido.

Introducción

Desarrollo

Conclusiones

Referencias
Introducción
Logro de Aprendizaje.

Al término de la sesión, el estudiante tiene un concepto claro del


funcionamiento de los protocolos TCP y UDP.
Desarrollo
UDP: User Datagram Protocol [RFC 768]

▪ Básicamente agrega puerto a ▪ ¿Por qué existe UDP?


paquete IP ▪ No requiere establecimiento de
▪ Servicio de “mejor esfuerzo”, un conexión (lo cual agregaría
segmento UDP se puede:
▪ Perder retardo)
▪ Entregar a la aplicación fuera de ▪ Simple: no se requiere mantener
orden estado en el Tx y el Rx
▪ Sin conexión: ▪ Pequeño segmento de
▪ No hay handshaking
(establecimiento de conexión) entre encabezado => menor overhead
servidor y receptor UDP ▪ No hay control de congestión:
▪ Cada segmento UDP es manejado UDP puede transmitir tan rápido
en forma independiente de los
otros como se desee

“Mejor esfuerzo”:Redes
Haréytodo lo posible
Comunicaciones por entregarlo,
de Datos I (2018-2) pero no lo garantizo.
UDP: más detalle

▪ A menudo es usado por flujos Largo, en bytes del


(streaming) multimedia en segmento UDP, incluyendo
encabezado
aplicaciones que:
▪ Toleran pérdida de datos 32 bits
▪ Son sensibles a la tasa de transmisión
▪ Otros usos de UDP # puerto origen # puerto dest.

▪ DNS largo checksum


▪ SNMP (Simple Network Management
Protocol)
▪ Es posible lograr transferencias Dat
confiables sobre UDP: se debe os
programar la confiabilidad en la de
capa aplicación la
▪ En este caso la recuperación de errores Ap
depende de la aplicación! lic
Formato segmento
aci UDP
ón
Redes y Comunicaciones de Datos I (2018-2) (m
en
saj
e)
Aplicaciones de Internet que usan UDP

Redes y Comunicaciones de Datos I (2018-2)


Checksum UDP (suma de chequeo)

▪ Transmisor:
▪ Trata el contenido de cada ▪Receptor:
segmento como una secuencia de ▪ Calcula el checksum del
enteros de 16 bits segmento recibido
▪ checksum: “suma” del contenido
del segmento y luego invierte cada
▪ Chequea si el checksum calculado
bits (se conoce como tomar el corresponde al valor de checksum
complemento 1). recibido en el campo:
▪ Transmisor pone el valor del ▪ NO corresponde => error detectado
checksum en el campo checksum ▪ SI => no hay error detectado. Pero
del datagrama UDP podrían haber errores sin embargo!
▪ Incluye algunos campos de IP (para
Objetivo: detectar “errores” (e.g., bits
los que quieren comprobarlo con
cambiados) en segmentos transmitidos
wireshark).
Redes y Comunicaciones de Datos I (2018-2)
Ejemplo Checksum en Internet

▪Notar
▪ Cuando sumamos números, la reserva del bit más
significativo debe ser sumada al resultado
▪ Tomar el complemento 1 no es más que invertir los bits
▪ Ejemplo: sumar dos enteros de 16-bits Recordar que
binariamente se
1 1 1 0 0 1 10 0 1 1 0 0 1 1 0
suma así:
1 1 0 1 0 1 01 0 1 0 1 0 1 0 1
0+0=0
1 1 0 1 1 1 0 11 1 0 1 1 1 0 1 1 0+1=1
Sumar reserva 1+0=1
1
1 + 1 = 10
“suma” 1011101 1 1 0 1 1 1 1 0 0
checksum
0 1 0 0 0 1 00 0 1 0 0 0 0 1 1

Redes y Comunicaciones de Datos I (2018-2)


Aplicaciones que utilizan UDP

Redes y Comunicaciones de Datos I (2018-2)


TCP (RFCs: 793, 1122, 1323, 2018, 2581)

▪ Protocolo de control de transmisión (en ▪ Flujo de bytes confiable y en orden:


inglés Transmission Control Protocol o ▪ Usa pipeline (optimización):
TCP), es uno de los protocolos ▪ El tamaño de la ventana TCP es definido por el
fundamentales en Internet. control de congestión y control de flujo
▪ Fue creado entre los años 1973 y 1974 ▪ Usa buffer en Tx & Rx
por Vint Cerf y Robert Kahn. ▪ Transferencia full duplex (dos sentidos):
▪ Comunicación punto-a-punto:
▪ Un Tx y un Rx
▪ Orientado a la conexión:
▪ Tiene control de flujo:
la aplicación
escribe datos
la aplicación
lee datos
▪ También tiene control de congestión
Puerta del Puerta del
socket socket
TCP TCP
envía buffer recibe buffer

Segmento
Estructura de un segmento TCP

32 bits Cuenta bytes


URG: urgent data
(generalmente no usado) # puerto origen de datos
# puerto dest.
(no segmentos)
ACK: mensaje porta Número de secuencia Sec: flujo ida
ACK válido Número de Acknowledgement Ack: flujo vuelta
PSH: push data now largo No
UA PRSF Ventana receptor (rwnd) # bytes que el
(entregar datos a aplic. head usado
Rx está
ahora – gen. no usado) checksum Puntero dato Urgente dispuesto a
aceptar
RST, SYN, FIN: Opciones (largo variable) (control de flujo)
Establecimiento de
conexión
(comandos de inicio Datos de la Usado para
y cierre) aplicación negociar MSS
o para factor
checksum (largo variable)
de escalamiento
(como en UDP) ventana
¿Cómo se determina el tamaño de un segmento
TCP?

▪ TCP no incluye campo Length (largo), como UDP.


▪ Para determinar el tamaño de un segmento, TCP requiere información del
encabezado IP, el cual incluye el campo “Total Length” de su datagrama.
▪ TCP determina el tamaño sustrayendo el tamaño del encabezado IP del largo
total del datagrama IP.
Transferencia confiable de datos en TCP

▪ TCP crea un servicio de ▪ Retransmisiones son activadas por:


transferencia confiable sobre el ▪ Eventos de timeout
servicio no confiable de IP ▪ ACKs duplicados (distinto a GBN y SR)
▪ Usa envío de segmentos en pipeline ▪ Se retransmite paquete más
▪ ACKs acumulativos como Go-Back-N antiguo sin ACK (sólo 1, como en
▪ TCP usa un timer único de selective repeat).
retransmisión, como Go-Back-N

▪ Inicialmente consideremos un Tx
TCP simplificado:
▪ Ignora ACKs duplicados
▪ Ignora control de flujo y control de
congestión
TCP eventos en transmisor:

• Dato recibido de
aplicación: Timeout:
▪crea segmento con #sec. ▪ Retransmitir segmento que causó
timeout
▪#sec. Es # del primer ▪ Reiniciar timer → ack recibido:
byte de datos del ▪ Si ack da acuse de recibo a
segmento según su # en segmento previo sin ACK
el flujo ▪ Actualizar conocimiento de segmentos
con ACK recibido
▪Iniciar timer si no está ▪ iniciar timer si hay aún segmentos sin
ACK
ya corriendo
▪ Pensar el timer como aquel
del segmento más antuguo
sin ACK
▪ Intervalo de expiración:
• TimeOutInterval
Establecimiento de conexión TCP por saludo a
tres vías
Desconexión a tres vías
Aplicaciones que utilizan TCP
Puertos bien conocidos
Trafico HTTP
Trafico FTP
Trafico SNMP
Trafico DHCP
Confiabilidad de TCP: entrega ordenada

• Se asignan números de secuencia en el


encabezado de cada paquete.
• Representan el primer byte de datos del
segmento TCP.
• Durante la configuración de la sesión, se
establece un número de secuencia
inicial (ISN), que representa el valor
inicial de los bytes.
• A medida que se transmiten los datos
durante la sesión, el número de
secuencia se incrementa según el
número de bytes que se han
transmitido.
• A partir de esto, se pueden identificar
segmentos perdidos.
Control del flujo de TCP: tamaño de la ventana y
reconocimientos

▪ En la figura, el origen transmite


1460 bytes de datos dentro de cada
segmento.

▪ El tamaño de la ventana se
establece durante la realización del
enlace de tres vía.

▪ Por lo general, la PC B no esperará a


los 10 000 bytes antes de enviar el
reconocimiento.

▪ La PC A puede ajustar la ventana de


envío a medida que recibe
reconocimientos de PC B.
Control del flujo de TCP: prevención de
congestiones

▪ La congestión causa la
retransmisión de los segmentos TCP
perdidos.

▪ La retransmisión de los segmentos


puede empeorar la congestión.

▪ Para evitar y controlar la


congestión, TCP emplea varios
mecanismos, temporizadores y
algoritmos de manejo de la
congestión.
▪ Ejemplo: reduce la cantidad de
bytes que envía antes de recibir un
reconocimiento.
Números de puerto

• Puerto de origen
• Puerto de la aplicación
de origen que es
generado
dinámicamente por el
dispositivo emisor.
• Ejemplo: el
seguimiento de cada
conversación HTTP por
separado se basa en
los puertos de origen.
• Puerto de destino
• Informa al destino el
servicio que se solicita.
• Ejemplo: se solicitan
los servicios web del
puerto 80.
Pares de sockets

▪ El puerto de origen y de destino se


incluyen en el segmento.

▪ Los Segmentos se encapsulan en el


paquete IP.

▪ IP y número de puerto = socket.

▪ Ejemplo: 192.168.1.7:80.

▪ Mediante los sockets, se pueden


distinguir múltiples procesos.

▪ El puerto de origen actúa como


dirección de retorno.
Grupos de números de puerto

▪ Puertos conocidos (números del 0 al 1023): estos números se reservan para servicios
y aplicaciones.
▪ Puertos registrados (números del 1024 al 49 151): IANA asigna estos números de
puerto a una entidad que los solicite para utilizar con procesos o aplicaciones
específicos.
▪ Puertos dinámicos o privados (números 49 152 a 65 535): en general, el sistema
operativo del cliente los asigna dinámicamente y los utiliza para identificar la
aplicación del cliente durante la comunicación.
Grupos de números de puerto (continuación)

Números de
puerto conocidos
El comando netstat

• Utilidad de red que


puede utilizarse para
verificar conexiones.
• De manera
predeterminada,
intenta resolver las
direcciones IP en
nombres de dominio y
los números de puerto
en aplicaciones
conocidas.
• La opción -n se utiliza
para mostrar
direcciones IP y
puertos en formato
numérico.
Consultas
Conclusiones
GRACIAS
Referencias.

Cisco NETACAD –CCNA v7 –Modulo 2

También podría gustarte