Capítulo 6: Fundamentos del Transporte, Aplicaciones y ...itisolaris.upaep.mx/~diploma/cap...

21
UPAEP 2015 Universidad Popular Autónoma del Estado de Puebla [DIPLOMADO EN REDES] Guía de Estudios para la Certificación CCENT/CCNA ICND1

Transcript of Capítulo 6: Fundamentos del Transporte, Aplicaciones y ...itisolaris.upaep.mx/~diploma/cap...

UPAEP 2015

Universidad Popular Autónoma del Estado de Puebla

[DIPLOMADO EN REDES] Guía de Estudios para la Certificación CCENT/CCNA ICND1

UPAEP 2015 [Diplomado en Redes]

2

Capítulo 6: Fundamentos del Transporte, Aplicaciones y Seguridad de

TCP/IP

El examen CCNA se enfoca principalmente en LANs, WANs y routing. Este capítulo, sin embargo, dará los

fundamentos de algunos temas que figuran menos en el examen: la capa de transporte de TCP/IP, la

capa de aplicación de TCP/IP y la seguridad en red de TCP/IP.

UPAEP 2015 [Diplomado en Redes]

3

Temas Fundamentales

Este capítulo inicia examinando las funciones del Transmission Control Protocol (TCP), las cuales son

muchas si se comparan con las pocas que posee el User Datagram Protocol (UDP). La segunda sección

de este capítulo examina la capa de Aplicación de TCP/IP, incluyendo algunas menciones sobre cómo

trabaja la resolución de nombres DNS. Finalmente, la tercera parte del capítulo examina la importancia y

conceptos de la seguridad en redes, introduciendo algunos de los conceptos principales, terminología y

funciones importantes para la seguridad hoy en día.

Los Protocolos de la capa 4 de TCP/IP: TCP y UDP

La capa de transporte del modelo OSI (Capa 4) define varias funciones, las más importantes son error

recovery (recuperación por errores) y flow control (control de flujo). De la misma forma, los protocolos

de la capa de transporte también implementan estos mismos tipos de capacidades. Nótese que tanto el

modelo OSI como el modelo TCP/IP llaman a ésta la “capa de transporte”. Pero como es usual, al

referirse al modelo TCP/IP, el nombre de la capa y su número están basados en OSI, de manera que

cualquier protocolo de la capa de transporte de TCP/IP es considerado como protocolo de capa 4.

La diferencia clave entre TCP y UDP es que TCP provee una amplia variedad de servicios para

aplicaciones, mientras que UDP no. Por ejemplo, los routers desechan paquetes por muchas razones,

incluyendo errores de bit, congestión e instancias en que no existen routers correctos conocidos. Como

ya se ha mencionado, la mayoría de los protocolos de enlace de datos se percatan de errores (proceso

llamado detección de errores) pero también descartan frames que tienen errores. El TCP provee

retransmisión (recuperación de errores) y ayuda a evitar congestión (control de flujo), mientras UDP no

lo hace. Como resultado, muchos protocolos de aplicación eligen usar TCP.

No por esto UDP es peor que TCP. Proveyendo pocos servicios, UDP necesita menos bytes en su

encabezado a comparación de TCP, resultado en menos bytes de tráfico en la red. El software UDP no

hace lenta la transferencia de datos en casos donde el TCP sí. También, algunas aplicaciones como la voz

sobre IP (VoIP) y el video sobre IP no requieren recuperación de errores, por lo que utilizan UDP.

La siguiente tabla muestra las principales características soportadas por TCP y/o UDP.

Protocolo

que la

soporta

Función Descripción

UDP, TCP Multiplexing usando puertos Función que permite a los hosts receptores elegir la

aplicación correcta para la cual están destinados los datos,

basándose en el número de puerto.

TCP Error recovery o recuperación

de errores (reliability o

confiabilidad)

Proceso de numerar y reconocer los datos con campos de

encabezado de Secuencia y Reconocimiento.

TCP Control de flujo usando

windowing

Proceso que usa tamaños de ventana para proteger el

espacio en buffer y los dispositivos de ruteo.

UPAEP 2015 [Diplomado en Redes]

4

TCP Establecimiento de conexión

y terminación

Proceso usado para inicializar campos de números de

puerto y Secuencia y Reconocimiento

TCP Transferencia de datos

ordenados y segmentación

de datos

Corriente continua de bytes desde un proceso -llevado a

cabo en una capa más alta- que se ha segmentado para la

transmisión y entrega a procesos de una capa más alta en

el dispositivo que recibe, con los bytes en el mismo orden.

TCP (Transmission Control Protocol)

Cada aplicación TCP/IP típicamente elige usar TCP o UDP basándose en los requerimientos de la

aplicación. El TCP provee error recovery, pero para hacerlo necesita consumir más ancho de banda y

utiliza más ciclos de procesamiento. UDP no realiza error recovery pero requiere menos ancho de banda

y menos ciclos de procesamiento.

TCP cumple con las funciones enlistadas en la tabla anterior a través de mecanismos en los dispositivos

finales. TCP confía en IP para la entrega de datos punto-a-punto incluyendo ruteos. En otras palabras,

TCP realiza solamente parte de las funciones necesarias para entregar los datos entre aplicaciones. El rol

que juega también se dirige a proveer servicios para las aplicaciones que se encuentran en las

computadoras al final del recorrido. Independientemente de que las dos computadoras se encuentren

en la misma Ethernet o estén separadas por el inmenso Internet, TCP realiza sus funciones de la misma

forma.

La siguiente figura muestra los campos en el encabezado de TCP.

Puerto de origen (16)

Bit 0 Bit 15

Puerto destino (16)

Bit 16 Bit 31

Número de secuencia (32)

Número de reconocimiento (32)

Longitud del encabezado

(4)Reservado (6)

Bits de código (6)

Ventana (16)

Opciones (0 ó 32 si es que existen)

Datos (variable)

20 bytes

Checksum (16) Urgente (16)

Puerto de origen (16)

Bit 0 Bit 15

Puerto destino (16)

Bit 16 Bit 31

Número de secuencia (32)

Número de reconocimiento (32)

Longitud del encabezado

(4)Reservado (6)

Bits de código (6)

Ventana (16)

Opciones (0 ó 32 si es que existen)

Datos (variable)

20 bytes

Checksum (16) Urgente (16)

Fig. 36 Campos de Encabezado para TCP

Multiplexing usando números de puerto TCP

TCP provee muchas funciones útiles para las aplicaciones y es por ello que requiere un poco más de

procesamiento que UDP. Tanto TCP como UDP utilizan un concepto llamado multiplexing, mismo que

envuelve el proceso de cómo una computadora “piensa” mientras recibe datos. La computadora podría

estar ocupando varias aplicaciones simultáneamente y el multiplexing de TCP y UDP permite a la

computadora receptora saber a cuál de las aplicaciones debe entregar los datos. Pueden existir dentro

de la comunicación entre dos máquinas la misma MAC y misma dirección IP origen, pero la aplicación a

la que se envían los datos es diferente.

Para evitar que la computadora se “equivoque” enviando datos a una aplicación errónea, también existe

un campo en el encabezado del paquete TCP o UDP donde reside el número de puerto destino.

El multiplexing descansa en un concepto llamado socket. Un socket consiste en tres cosas:

Una dirección IP

UPAEP 2015 [Diplomado en Redes]

5

Un protocolo de transporte

Un número de puerto, número de conexión

Un ejemplo de un socket para una aplicación de servidor web sería: (10.1.1.2, TCP, puerto 80), ya que,

por defecto, los servidores web utilizan el conocido puerto 80.

Un ejemplo de un socket para una máquina cuyo buscador web se conecta al servidor web sería:

(10.1.1.1, TCP, 1030). No es que el puerto 1030 sea específicamente para la comunicación con un

servidor web pero el host realiza una evaluación de algún puerto que se encuentre disponible en ese

momento y simplemente lo usa.

Los hosts típicamente asignan números de puerto dinámicos comenzando en 1024, ya que los puertos

menores al 1024 están especialmente reservados para aplicaciones conocidas y muy utilizadas, tal como

los servicios web.

El socket en una misma computadora debe siempre ser único, de forma que una conexión entre dos

sockets debe identificar una única conexión entre dos computadoras. Es así como el multiplexing basado

en sockets asegura que la información sea entregada en la aplicación correcta.

Los números de puerto bien conocidos son usados para servidores y otros números de puerto son

usados por los clientes. Las aplicaciones que proveen un servicio, tal como FTP, Telnet y servidores web

abren un socket usando un puerto conocido y escuchan solicitudes de conexión.

Las solicitudes de conexión realizadas por clientes requieren incluir tanto el número de puerto fuente

como el destino. Una lista de los puertos conocidos se puede encontrar en

http://www.iana.org/assignments/port-numbers .

Por lo anteriormente mencionado, es posible observar que los servidores siempre utilizarán el mismo

número de puerto para todas las conexiones mientras que los clientes estarán usando un número

distinto de puerto.

Nota: En la liga http://www.isi.edu/in-notes/rfcxxxx.txt se encuentran todos los RFCs en línea (xxxx es el

número de RFC. Si no se sabe el número del RFC, es posible buscar por tema accediendo a

http://www.rfc-editor.org/rfcsearch.html .

Aplicaciones TCP/IP Populares

La WWW (World Wide Web) es una aplicación que existe a través de navegadores web accediendo al

contenido disponible en servidores web. Es posible habilitar una función de servidor web en el router o

switch y usar un navegador para acceder al router o switch.

El DNS (Domain Name System) permite a los usuarios utilizar nombres para referirse a computadoras

encontrando las direcciones IP correspondientes. Las funciones cliente de DNS son parte de casi

cualquier dispositivo que utilice TCP/IP hoy en día. El cliente simplemente solicita al servidor DNS que

provea una dirección IP que corresponda a un nombre dado.

El SNMP (Simple Network Management Protocol) es un protocolo de la capa de aplicación usado

específicamente para la administración de dispositivos de red. Por ejemplo, el software Cisco Works usa

principalmente protocolos SNMP para hacer solicitudes a dispositivos de red.

Tradicionalmente, para mover archivos hacia y desde un router o switch, Cisco usaba TFTP (Trivial File

Transfer Protocol). TFTP define un protocolo para transferencia básica de archivos, es por ello que se

UPAEP 2015 [Diplomado en Redes]

6

llama “trivial”. Alternativamente, los routers y switches pueden usar FTP (File Transfer Protocol), el cual

es un protocolo mucho más funcional para transferir archivos. Ambos trabajan bien para mover archivos

desde y hacia dispositivos Cisco. Las aplicaciones TFTP de cliente y servidor son muy simples,

haciéndolas buenas herramientas como partes embebidas de dispositivos de red.

Algunas de estas aplicaciones utilizan TCP (realiza recuperación de errores) y otras UDP (no realiza

recuperación de errores). Por ejemplo, SMTP (Simple Mail Transport Protocol) y POP3 (Post Office

Protocol version 3) que son usados para transferir correo, requieren una entrega garantizada, para lo

que utilizan TCP. Sin importar cuál protocolo de capa de transporte se utilice, las aplicaciones utilizan un

número de puerto conocido de modo que los clientes sepan a cuál puerto deben tratar de conectarse.

La siguiente tabla enlista varias aplicaciones populares y sus números de puerto conocidos.

Número de

Puerto

Protocolo Aplicación

20 TCP Datos FTP

21 TCP Control FTP

22 TCP SSH

23 TCP Telnet

25 TCP SMTP

53 UDP, TCP DNS

67, 68 UDP DHCP

69 UDP TFTP

80 TCP HTTP (WWW)

110 TCP POP3

161 UDP SNMP

443 TCP SSL

16, 384-32, 767 UDP RTP – basado en voz (VoIP) y video

Recuperación de Errores (Confiabilidad)

TCP provee transferencia de datos confiable, lo que se llama confiabilidad o recuperación de errores.

Para lograr la confiabilidad, TCP enumera los bytes de datos usando los campos de Secuencia y

Reconocimiento en el encabezado de TCP. Esta confiabilidad de TCP se logra en ambas direcciones,

usando el campo de Número de Secuencia en una dirección combinado con el campo de

Reconocimiento en la dirección opuesta.

El servidor envía datos con un encabezado TCP que incluye el número de bits. El cliente va haciendo la

suma de bits cada vez que recibe un paquete nuevo, también corroborando el número de bits que

posee del archivo con los que el servidor indica que debería tener en ese momento. Si el cliente

UPAEP 2015 [Diplomado en Redes]

7

compara que tiene un número menor de los que el servidor indica que debería tener, entonces el cliente

da aviso al servidor para que este último vuelva a realizar el envío de los paquetes faltantes.

El remitente también establece un cronómetro de retransmisión, esperando el reconocimiento o

acknowledgment, sólo en caso de que se pierda el reconocimiento o todos los segmentos transmitidos.

Si ese cronómetro expira, el remitente TCP vuelve a enviar todos los segmentos nuevamente.

Control de Flujo Usando Windowing

TCP implementa el control de flujo tomando ventaja de los campos de Secuencia y Reconocimiento en el

encabezado TCP junto con otro campo llamado Ventana (Window). Este campo Ventana implica el

número máximo de bytes no reconocidos que son autorizados a estar pendientes en cualquier

momento. La ventana comienza pequeña pero va creciendo a medida que no hay errores. Algunas veces

se le llama ventana dinámica porque cambia a través del tiempo. Adicionalmente, la ventana es llamada

en ocasiones ventana deslizante, porque los números de secuencia y reconocimiento van creciendo al

paso del tiempo y es como una analogía al deslice de los números al incremento. Cuando la ventana está

llena, el remitente ya no envía, lo cual controla el flujo de datos.

La siguiente figura muestra el windowing con un tamaño de ventana de 3000. Cada segmento de TCP

tiene 1000 bytes de datos.

Fig. 37 Windowing de TCP

ACK=1000

Window=3000

SEQ=100

0

SEQ=200

0

SEQ=300

0

ACK=4000

Window=4000

SEQ=400

0

SEQ=500

0

SEQ=600

0

SEQ=700

0

UPAEP 2015 [Diplomado en Redes]

8

Nótese que el servidor web debe esperar después de enviar el tercer segmento porque la ventana está

saturada. Cuando el reconocimiento ha sido recibido, otra ventana puede ser enviada. Ya que no han

ocurrido errores, el cliente web otorga una ventana más grande al servidor, para que ahora puedan ser

enviados 4000 bytes antes de que el servidor reciba un reconocimiento. En otras palabras, el receptor

utiliza el campo Ventana para decirle al remitente qué tantos datos puede enviar antes de que deba

detenerse para esperar al siguiente reconocimiento. El windowing es simétrico. Ambos lados envían y

también reciben, y en cada caso, el receptor otorga una ventana al remitente usando el campo Ventana.

El windowing no requiere que el remitente deje de enviar en todos los casos. Si un reconocimiento es

recibido antes de que la ventana se agote, una nueva ventana inicia y el remitente continúa enviando

datos hasta que la ventana actual se agota. El término Positive Acknowledgment and Retransmisión

(PAR) o Reconocimiento Positivo y Retransmisión es usado en ocasiones para describir la recuperación

de errores y los procesos de windowing que usa TCP.

Establecimiento de la Conexión y Terminación

El establecimiento de la conexión TCP ocurre antes de que cualquier otra de las funciones TCP inicien su

trabajo. El establecimiento de la conexión se refiere al proceso de iniciar campos de secuencia y

reconocimiento y acordar el número de puertos usados.

Fig. 38 Establecimiento de conexión TCP

Este flujo de establecimiento de conexión en tres vías debe terminar antes de que la transferencia de

datos pueda iniciar. La conexión existe entre los dos sockets, aunque el encabezado TCP no tiene un

campo de socket único. De las tres partes de un socket, las direcciones IP están implicadas basándose en

las direcciones IP origen y destino en el encabezado IP. TCP está implicado porque un encabezado TCP

se encuentra en uso, como se especifica por el campo de protocolo en el encabezado IP. Entonces, las

únicas partes del socket que necesitan ser codificadas en el encabezado TCP son los números de puerto.

El TCP señala el establecimiento de la conexión utilizando 2 bits en los campos Bandera del encabezado

TCP. Las llamadas banderas SYN y ACK, son bits que tienen un significado particularmente interesante.

SYN significa “Synchronize the sequence numbers” o “Sincroniza los números de secuencia”, el cual es

un componente necesario en la inicialización de TCP. El campo ACK significa “The Acknowledgment field

is valid in this header” o “El campo Reconocimiento es válido en este encabezado”. Hasta que los

números de secuencia son inicializados, el campo de Reconocimiento no es de mucha utilidad. También

nótese que en el segmento inicial TCP en la figura anterior, no se muestra número de reconocimiento

alguno, lo cual sucede porque ese número no es válido aún. Debido a que el campo ACK debe estar

UPAEP 2015 [Diplomado en Redes]

9

presente en todos los segmentos posteriores, el bit ACK continúa siendo establecido hasta que la

conexión está terminada.

TCP inicializa los campos de Número de Secuencia y el Número de Reconocimiento en cualquier número

que se encuentre dentro de los campos de 4 bytes; por lo que los valores mostrados en la figura anterior

son simplemente valores de ejemplo. Se considera que los flujos de inicialización tienen un solo byte de

datos, tal y como se refleja en los ejemplos de los campos de Número de Reconocimiento.

La siguiente figura muestra la terminación de una conexión TCP. Esta secuencia de terminación de

cuatro vías es sencilla y utiliza una bandera adicional llamada el bit FIN (por “finished” en inglés). Una

nota interesante: antes de que el dispositivo a la derecha envíe el tercer segmento TCP en la secuencia,

éste notifica a la aplicación que la conexión se va a detener. Entonces espera un reconocimiento o

aceptación de la aplicación antes de enviar el tercer segmento en la figura. Solamente en caso de que la

aplicación se tome demasiado tiempo para responder, la PC en la derecha envía el segundo flujo en la

figura, reconociendo que la otra PC desea terminar la conexión. De otra manera, la PC en la izquierda

podría reenviar el primer segmento repetidamente.

Fig. 39 Terminación de la conexión TCP

TCP establece y termina las conexiones entre los dos puntos, mientras que UDP no realiza esta tarea.

Muchos protocolos operan bajo estos mismos conceptos, de forma que los términos orientada-a-

conexión y sin conexión se usan para hacer una referencia a la idea general de cada uno. De manera

más formal, estos términos pueden ser definidos como sigue:

Protocolo orientado a conexión: Un protocolo que requiere un cambio de mensajes antes de

que inicie la transferencia de datos, o que tiene una correlación preestablecida requerida entre

dos puntos.

Protocolo sin conexión o connectionless: Un protocolo que no requiere un cambio de mensajes

y que no requiere una correlación preestablecida entre dos puntos.

UPAEP 2015 [Diplomado en Redes]

10

Segmentación de Datos Transferencia Ordenada de Datos

Las aplicaciones requieren enviar datos. En algunos casos el dato es pequeño como un byte. En otros

casos puede llegar a millones de bytes.

Cada tipo diferente de protocolo de enlace de datos típicamente tiene un límite de Maximum

Transmisión Unit (MTU) que puede ser enviado dentro de un frame de capa de enlace de datos. En

otras palabras, el MTU es el tamaño del paquete de capa 3 más grande que se puede ajustar al campo

de datos de un frame. Para muchos protocolos de enlace de datos, Ethernet incluido, el MTU es de 1500

bytes.

TCP maneja el hecho de que una aplicación le puede dar millones de bytes para enviar segmentando los

datos en piezas más pequeñas llamadas segmentos. Debido a que un paquete IP a menudo puede ser

menor a 1500 bytes gracias a las restricciones MTU, y debido a que los encabezados IP y TCP son de 20

bytes cada uno, TCP típicamente segmenta muchos datos en trozos de 1460 bytes.

El receptor de TCP realiza un reensamble cuando recibe los segmentos. Para reensamblar los datos, TCP

debe recuperar los segmentos perdidos. El receptor de TCP también debe reordenar los segmentos que

llegan sin secuencia alguna, lo cual ocurre porque el ruteo IP puede elegir balancear tráfico a través de

múltiples enlaces. Así que el receptor de TCP también debe realizar una transferencia ordenada de

datos reensamblando los mismos en su orden original.

El encabezado TCP y el campo de datos juntos se llaman Segmento TCP. Este término es similar. El

término L4PDU se puede usar para el mismo propósito, ya que TCP es un protocolo de capa 4.

Protocolo de Datagrama del Usuario

UDP provee un servicio para que las aplicaciones intercambien mensajes. A diferencia de TCP, UDP es

connectionless y no provee confiabilidad, ni windowing, ni reordenamiento de los datos recibidos ni

segmentación de grandes trozos de datos en un tamaño adecuado para su transmisión. De cualquier

modo, UDP provee algunas funciones de TCP tales como transferencias de datos y multiplexing usando

números de puertos, y lo hace con un menor número de bytes de overhead y requiriendo menos

procesamiento que TCP.

Las aplicaciones que utilizan UDP son tolerantes a la pérdida de datos, o tienen algún mecanismo de

aplicación para recuperar los datos perdidos. Por ejemplo, VoIP utiliza UDP porque si pierde datos y

vuelve a solicitarlos, para cuando estos sean retransmitidos, el mensaje ya no será comprensible.

También las solicitudes DNS usan UDP porque el usuario tratará nuevamente una operación si la

resolución de DNS falla. El Network File System (NFS), que es una aplicación de sistema de archivos

remotos, realiza recuperación con código de la capa de aplicación, así que las habilidades de UDP son

suficientes para NFS.

La siguiente figura muestra formatos de encabezado de TCP y de UDP. Nótese la ausencia de los campos

Número de Secuencia y Número de Reconocimiento en el encabezado UDP. UDP no necesita estos

campos porque no intenta numerar los datos para ordenarlos o para saber si llegaron correctamente.

La ventaja más evidente de UDP sobre TCP es que hay menos datos de overhead, no necesita esperar a

saber si los datos llegaron correctamente ni retiene datos en memoria hasta tener respuesta del otro

punto, por lo que las aplicaciones que usan UDP fluyen más rápidamente y liberan memoria más pronto.

UPAEP 2015 [Diplomado en Redes]

11

Fig. 40 Encabezados TCP y UDP

Aplicaciones TCP/IP

La principal meta de construir una red para una empresa o conectar una pequeña oficina a la Internet es

usar aplicaciones como navegación en red, mensajes en texto, correo electrónico, descargas de

archivos, voz y video. En esta sección se examinarán algunas situaciones relacionadas con el diseño de

red a la luz de las aplicaciones esperadas en una internetwork. Esto estará seguido por una profunda

explicación de una aplicación en particular: la navegación web utilizando HTTP (Hypertext Transfer

Protocol).

Las Necesidades de QoS y el Impacto de las Aplicaciones TCP/IP

El término calidad de servicio o Quality of Service (QoS) se refiere al tema entero de lo que necesita una

aplicación del servicio de red. Cada tipo de aplicación puede ser analizada en términos de sus

requerimientos de QoS, de modo que si la red reúne todos los requerimientos, la aplicación trabajará

correctamente.

Las necesidades de QoS han cambiado a través de los años. Hoy en día se requiere que las aplicaciones

gocen de un mayor ancho de banda y menor retraso de entrega de información. Desde los primeros días

de las redes al presente, he aquí algunos tipos de aplicaciones de datos que han impactado la red:

Terminales e impresoras capaces de procesar gráficos, para lo cual se requirió transferir más

bytes.

Transferencias de archivos, lo cual introdujo mayores volúmenes de datos pero aún con

retrasos.

Servidores de archivos, lo que permite a usuarios almacenar archivos en un servidor, lo cual

requiere transferir grandes volúmenes de datos, pero con menor tiempo de respuesta.

UPAEP 2015 [Diplomado en Redes]

12

La maduración de la tecnología de base de datos, haciendo cantidades vastas de datos

disponibles para usuarios casuales, incrementando bastamente el número de usuarios que

desean acceder a la información.

La migración de aplicaciones comunes a navegadores web, lo cual atrae a más usuarios a

acceder a la información.

La aceptación general del correo electrónico tanto para uso personal como para propósitos

laborales.

La rápida comercialización del Internet, permitiendo a las compañías ofrecer datos

directamente a sus clientes vía red de datos en lugar de realizar llamadas telefónicas.

Voz y video en una tecnología que converge y presiona a los datos a entregar una mejor calidad

de servicio.

Muchas empresas hoy en día están implementando su migración de líneas telefónicas hacia

transferencia de datos (VoIP). Una sola llamada IP que pasa por una WAN típicamente toma menos de

30 kbps de ancho de banda, lo que no se compara con muchas aplicaciones de datos de hoy en día. De

hecho, las aplicaciones básicamente utilizan tanto ancho de banda como puedan tomar.

El tráfico VoIP tiene otras demandas de QoS en la red antes de que el tráfico VoIP suene bien:

Poco retraso: VoIP requiere poco retraso entre el teléfono que envía y el teléfono que recibe

(típicamente menos de 0.2 segundos). Este retraso es mucho más bajo de lo que se requiere

para una aplicación típica de datos.

Inquietud baja: la inquietud o jitter es la variación en retraso. Por ejemplo, la inquietud para

paquetes consecutivos de VoIP no debe exceder 0.03 segundos, o la calidad se degrada.

Pérdida: si un paquete de VoIP se pierde en tránsito debido a errores o porque el ruteador no

tiene espacio para almacenar el paquete mientras espera a enviarlo, el paquete de VoIP no es

entregado a través de la red. Debido a situaciones de retraso e inquietud, no hay necesidad de

tratar de recuperar el paquete perdido porque será inútil para cuando se haya recuperado.

El video sobre IP tiene los mismos problemas de desempeño, sólo que necesita aún más ancho de banda

(de 300 a 400 kbps) o mucho más ancho de banda (3 a 10 Mbps por video).

Para la perspectiva, a continuación se muestra una tabla que resume las necesidades de varios tipos de

aplicaciones para los cuatro principales requerimientos de QoS (ancho de banda, retraso, inquietud y

pérdida de paquetes).

Tipo de Aplicación Ancho de

Banda

Retraso Inquietud Pérdida

VoIP bajo bajo bajo bajo

Video sobre IP de dos direcciones (ej.

Videoconferencia)

Mediano/alto bajo bajo bajo

UPAEP 2015 [Diplomado en Redes]

13

Video sobre IP unidireccional (ej.

Cámaras de seguridad)

mediano mediano mediano bajo

Datos misión-crítica interactivos (ej.

Nómina de sueldos basada en web)

mediano mediano alto alto

Datos interactivos de negocio Bajo/mediano mediano alto alto

Transferencia de archivos (ej. Respaldo

de discos duros)

alto alto alto alto

Fuera de negocio (ej. Checar marcadores

de partidos recientes)

mediano alto alto alto

Para soportar los requerimientos de QoS de varias aplicaciones, los routers y switches pueden ser

configurados con una amplia variedad de herramientas de QoS. Estas herramientas deben usarse en una

red moderna para poder soportar alta calidad de VoIP y de video sobre IP.

La World Wide Web, HTTP y SSL

La World Wide Web consiste en todos los servidores web en el mundo conectados por Internet junto

con todos los hosts conectados por Internet que tienen navegadores web. Los servidores web (que

consisten en software de servidor web corriendo en una computadora), almacenan información en la

forma de páginas web, misma que puede ser de utilidad para diferentes personas. Los navegadores

web, que son software instalado en una computadora de usuario final, proveen el medio para

conectarse a un servidor web y desplegar las páginas web almacenadas en el servidor web.

Nota: A pesar de que la mayoría de las personas utilizan el término navegador web, o simplemente

navegador, los navegadores web también son llamados clientes web, porque obtienen un servicio de un

servidor web.

Para que este proceso funcione, deben ocurrir varias funciones específicas de la capa de aplicación. El

usuario debe identificar de alguna manera al servidor, la página web específica y el protocolo utilizado

para obtener los datos del servidor. El cliente debe encontrar la dirección IP del servidor, basándose en

el nombre del servidor, típicamente usando DNS. El cliente debe solicitar la página web, la cual consiste

de múltiples archivos separados, y el servidor debe enviar los archivos al navegador web. Finalmente,

para aplicaciones de comercio electrónico (e-commerce), la transferencia de los datos, particularmente

datos financieros muy sensibles, necesita ser muy segura, nuevamente utilizando características de la

capa de aplicación. Las siguientes secciones tratan de cada una de estas funciones.

Localizadores de Recursos Universales

Para que un navegador despliegue una página web, el buscador debe identificar al servidor que tiene la

página web, además de otra información que identifica la página web en particular. La mayoría de los

servidores web tiene muchas páginas web. Cuando se navega en una página web, cada acción de clic en

un vínculo o link nos lleva a otra página web específica y con muchos detalles que no alcanzamos a

visualizar.

UPAEP 2015 [Diplomado en Redes]

14

El usuario del navegador puede identificar una página web cuando hace clic en algún elemento de la

página web o cuando ingresa en un URL (Universal Resource Locator) o dirección web.

Nota: Para conocer la dirección web a que está direccionado un enlace, hacer click derecho sobre el

elemento y seleccionar propiedades.

Cada URL define el protocolo usado para transferir datos, el nombre del servidor y la página web

particular dentro del servidor web. El URL se compone de tres partes:

El protocolo se encuentra antes de las //.

El hostname se encuentra entre las // y la /.

El nombre de la página web está después de la /.

Encontrando el Servidor Web utilizando DNS

Como ya se comentó en el capítulo 5, un host puede usar DNS para conocer la dirección IP que

corresponde a algún hostname en particular. Entonces, antes de que el navegador pueda enviar un

paquete al servidor web, el navegador típicamente necesita resolver el nombre en el URL para esa

dirección IP correspondiente.

En la siguiente figura se aclara el proceso en que el usuario ingresa el URL

(http://www.upaep.mx/index.php?option=com_content&task=view&id=1630&Itemid=1734), resuelve

el nombre www.upaep.mx en la dirección IP correcta y comienza a enviar paquetes al servidor web.

Fig. 41 Resolución DNS y Solicitud de una Página Web

Los pasos son como sigue:

1. El usuario ingresa la URL dentro del área de dirección del navegador.

UPAEP 2015 [Diplomado en Redes]

15

2. El cliente envía una solicitud de DNS al servidor DNS. Típicamente, el cliente aprende la

dirección IP del servidor DNS vía DHCP. Nótese que la solicitud DNS utiliza un encabezado UDP,

con un puerto destino del DNS bien conocido como puerto 53.

3. El servidor DNS envía una respuesta indicando cuál es la dirección IP de www.upaep.mx.

Nótese que la respuesta muestra una dirección IP destino que es la dirección IP del cliente.

También muestra un encabezado UDP con puerto origen de 53, por lo cual se entiende que la

información proviene del servidor DNS.

4. El cliente comienza el proceso de establecer una nueva conexión TCP con el servidor web. La

dirección IP es la recién aprendida. El paquete incluye un encabezado TCP porque HTTP usa

TCP. También nótese que el puerto destino es el 80, el puerto conocido de HTTP. Finalmente, el

bit SYN se muestra, como un recordatorio de que el proceso de establecimiento de conexión

TCP inicia con un segmento TCP con el bit SYN encendido (1 binario).

Hasta este punto del proceso, el navegador web casi termina de configurar una conexión TCP al

servidor.

Transfiriendo Archivos con HTTP

Después de que un cliente web (navegador) ha creado una conexión TCP con un servidor web, el cliente

puede comenzar la solicitud de la página web del servidor. Regularmente el protocolo utilizado para

transferir la página web es HTTP. El protocolo de la capa de aplicación HTTP, definido en el RFC 2616,

define cómo los archivos pueden transferirse entre dos computadoras. HTTP fue creado

específicamente por la propuesta de transferir archivos entre servidores web y clientes web.

Para recibir un archivo de un servidor web, el cliente envía una solicitud HTTP GET al servidor,

indicando el nombre del archivo. Si el servidor decide enviar el archivo, enviará una respuesta HTTP GET

con un código de regreso de 200 (que significa “OK”), junto con el archivo mismo.

Nota: Existen muchos códigos de retorno para solicitudes HTTP. Cuando el servidor no tiene el archivo

solicitado regresa un error 404 que significa “archivo no encontrado”. La mayoría de los navegadores

web no muestran una descripción del error sino simplemente un número relacionado con el mismo.

Las páginas web consisten en múltiples archivos llamados objetos (texo, imágenes, voz, video,

anuncios), cada uno de los cuales se almacena en un diferente archivo en el servidor web. Para

obtenerlo todos, el navegador web debe obtener el primer archivo, mismo que típicamente incluye

referencias de la URL, y luego el navegador realiza las solicitudes de otros objetos.

En la siguiente figura se muestra la idea general en la que el navegador obtiene el primer archivo y

posteriormente otros dos más.

En este caso, después de que el navegador obtiene el primer archivo –el llamado

“/index.php?option=com_content&task=view&id=1630&Itemid=1734” en la URL- el navegador lee e

interpreta el archivo. Además de contener partes de la página web, el archivo se refiere a otros dos

archivos, así que el navegador realiza dos solicitudes http GET adicionales.

UPAEP 2015 [Diplomado en Redes]

16

Fig. 42 Múltiples Solicitudes/Respuestas HTTP GET

Seguridad en Redes

En años pasados, las amenazas a la seguridad provenían de estudiantes genios con mucho tiempo libre.

No eran muchos y su motivación era demostrar que podrían irrumpir en otra red. Desde entonces, el

número de atacantes y la sofisticación de sus ataques ha ido incrementando exponencialmente. Antes

había que ser un genio para lograrlo, hoy se puede descargar cualquier herramienta disponible en

Internet y hasta un estudiante de la secundaria de la UPAEP puede arreglárselas con la herramienta. Así

que esencialmente cualquier persona conectada a la red es vulnerable a un ataque.

La inseguridad ha pasado de ser un pasatiempo a algo más serio como crimen organizado para robar

millones de dólares exhortando a las compañías por medio de amenazas con un ataque en los

servidores web públicos de la compañía de tipo denial of service (DoS), que han llevado a robo de

identidades y/o información de tarjetas de crédito.

Perspectivas en los Orígenes y Tipos de Amenazas

La siguiente figura muestra una topología de red común con un firewall. Probablemente los firewalls son

el mejor equipo de seguridad conocido localizado entre la indefensa red de una compañía y la oscura,

fría e insegura Internet. El trabajo de un firewall es detener los paquetes inseguros de la red. El firewall

observa los números de puerto de la capa de transporte y los encabezados de la capa de aplicación para

prevenir que ciertos puertos y aplicaciones introduzcan paquetes nocivos para la empresa.

UPAEP 2015 [Diplomado en Redes]

17

Fig. 43 Típica Conexión a Internet de una Empresa con un Firewall

La figura anterior puede hacer pensar a un empleado promedio una falsa sensación de seguridad,

creyendo que se encuentra libre de peligro en Internet. Sin embargo, el firewall no da una garantía de

seguridad. Además, un alto porcentaje de las amenazas provienen de dentro de la red de la compañía, y

se trata de paquetes que ni siquiera ve el firewall.

Tipos de ataques que pueden ocurrir:

Ataques Denial of Service (DoS): Tiene el propósito de romper cosas. Los destructores dañan

los hosts borrando sus datos y software. Los llamados crashers, provocan que la computadora

no pueda conectarse más a la red. Los flooders inundan la red con paquetes para que no se

pueda utilizar más la red, impidiendo la comunicación con los servidores.

Ataques de Reconocimiento: Pueden ser disruptivos colateralmente, su meta es recopilar

información para realizar un ataque de acceso. Ejemplo: conocer direcciones IP y tratar de

descubrir servidores que aparentemente no requieren encriptación para conectarse al servidor.

Ataques de Acceso: Un intento de robar datos, típicamente para obtener alguna ventaja

financiera, competitiva para con alguna otra empresa, o hasta para espionaje internacional.

Los virus de computadora son útiles para trasladar estos ataques. Un virus es un programa que de

alguna manera es transferido en una computadora que no se percata de la acción, generalmente a

través de un archivo adjunto al correo electrónico o una descarga en una página web. Un virus puede

causar daño en una computadora o bien robar información y ser devuelta al atacante.

Hoy en día, la mayoría de las computadoras utilizan algún software antivirus con definiciones conocidas

de virus para prevenir que la computadora sea infectada por estos. Además de otras actividades, el anti-

virus descarga una lista de características (llamadas signatures o firmas) conocidas de los virus.

Periódicamente se descargan las últimas firmas de virus. La computadora observa los paquetes

entrantes y los compara con sus firmas, así el anti-virus reconoce los virus para no abrirles paso. El

programa también realiza un escaneo periódico del sistema en busca de virus.

UPAEP 2015 [Diplomado en Redes]

18

La siguiente figura permite apreciar los riesgos de seguridad inherentes en una red de compañía que ya

cuenta con un perímetro de firewall de calidad.

Fig. 44 Problemas de Seguridad Comunes en una Empresa

Los siguientes tipos de problemas pueden ocurrir comúnmente en una empresa:

Acceso desde la LAN inalámbrica: Las LANs inalámbricas permiten a los usuarios acceder al

resto de los dispositivos en la Empresa. Las señales de radio inalámbricas pueden escaparse del

edificio, una LAN inalámbrica no asegurada permite al usuario del otro lado de la calle en una

cafetería, acceder a la red de la Empresa, permitiendo al atacante comenzar con la siguiente

fase de tratar de ganar acceso a las computadoras de la Empresa.

Computadoras portátiles infectadas: Cuando un empleado trae su propia computadora portátil

a casa, sin firewall ni seguridad, la computadora puede infectarse con un virus. Al volver el

usuario a la oficina, conecta su computadora a la red de la Empresa y entonces el virus se

esparce.

Empleados descontentos: Un usuario roba la información para llevarla a la compañía a que se

cambiará y guardará la información en un memoria USB, misma que se llevará fácilmente

escondida.

Estos son sólo algunos ejemplos de amenazas, evidentemente existen muchas más. Cisco usa el término

seguridad en profundidad para referirse al diseño de seguridad que incluye herramientas de seguridad

en toda la red, incluyendo características especiales en routers y switches. Cisco también usa el término

red que se defiende por sí misma para referirse a la automatización en la cual los dispositivos de la red

reaccionan automáticamente a los problemas en la red.

NAC (Network Admission Control) es una herramienta de seguridad para prevenir dos de los ataques

mencionados. Entre otras cosas, NAC puede monitorear cuando un dispositivo se conecta por primera

vez a una LAN, ya sea alámbrica o inalámbricamente. Permitirá entonces que el equipo se conecte a la

UPAEP 2015 [Diplomado en Redes]

19

LAN hasta que haya actualizado sus definiciones de virus y con un escaneo reciente de los mismos;

además de solicitar credenciales para que el usuario pueda ingresar en la LAN.

Además de los virus, se pueden utilizar otras herramientas para atacar. Entre las más comunes se

encuentran:

Scanner: Herramienta que envía solicitudes para conectarse a diferentes puertos TCP y UDP,

para diferentes aplicaciones, en un intento por descubrir cuáles son los hosts que corren ciertos

servicios IP, así como el sistema operativo que posiblemente utilice cada host.

Spyware: Virus que busca información privada y de importancia, rastreando lo que el usuario

hace con su computadora y regresando la información al atacante.

Gusano: Programa que se propaga por sí mismo y se replica a sí mismo por toda la red de la

Empresa y también la Internet, a menudo realiza ataques DoS, particularmente en servidores.

Keystroke logger: Virus que almacena todo lo enviado por teclado o probablemente sólo lo que

el teclado envía al tratar de acceder a sitios asegurados, reportando la información recopilada

al atacante. Son capaces de enviar la información incluso antes de que ésta deje la

computadora.

Phishing: El atacante crea una página web en aspecto idéntico a alguna página bancaria o de

tarjeta de crédito. El atacante espera que algunos caigan en la trampa e ingresen sus

verdaderas credenciales en el sitio falso, mismas que serán enviadas al atacante para su uso

posterior en el sitio verdadero del banco.

Malware: Se refiere a una amplia gama de virus maliciosos, incluyendo el spyware.

Firewalls y el ASA (Cisco Adaptive Security Appliance)

Los firewalls analizan todos los paquetes que entran y salen de una red, con el propósito de filtrar tráfico

indeseado. Los firewalls determinan el tráfico permitido contra el tráfico prohibido, basándose en varias

características de los paquetes, incluyendo sus direcciones origen y destino, así como los números de

puerto TCP y UDP. Los firewalls también examinan los encabezados de la capa de aplicación.

Los firewalls se localizan en el camino de reenvío de paquetes entre dos redes, a menudo con una

interfaz LAN conectada a la red local segura y por otra interfaz con la red no segura (usualmente la

Internet). Adicionalmente, ya que algunos hosts en la empresa necesitan ser accesibles desde la

Internet, el firewall típicamente también tiene una interfaz conectada a otra parte de la red empresarial,

llamada zona desmilitarizada (DMZ).

Para realizar este trabajo, el firewall necesita estar configurado para saber cuáles interfaces están

conectadas hacia “adentro” de la red, hacia “afuera” de la red y en la zona desmilitarizada. Luego, una

serie de reglas pueden ser configuradas y le dirán al firewall cuáles patrones de tráfico se permite y

cuáles no. Por ejemplo:

Permite a clientes web dentro de la red el enviar paquetes a servidores web.

Evita a clientes web fuera de la red el enviar paquetes a servidores web dentro de la red.

Permite a clientes web fuera de la red el conectarse a servidores web dentro de la DMZ.

UPAEP 2015 [Diplomado en Redes]

20

Anti-x

Cisco utiliza el término anti-x para referirse a todas las herramientas de seguridad que previenen

problemas originados por la falta de ésta. Anti-x incluye las siguientes herramientas:

Anti-virus: Escanea el tráfico de la red para prevenir la transmisión de virus conocidos

basándose en firmas de virus.

Anti-spyware: Escanea el tráfico de la red para prevenir la transmisión de programas de

spyware.

Anti-spam: Examina el correo electrónico antes de que alcance a los usuarios, borrando o

segregando correo basura.

Anti-phishing: Monitorea los URLs enviados en mensajes a través de la red, buscando los URLs

falsos de ataques de phishing y previniendo a los usuarios de ser atacados.

Filtrado de URL: Filtra el tráfico web basándose en URL para prevenir que los usuarios se

conecten a sitios inapropiados.

Filtrado de correo electrónico: Provee herramientas anti-spam. También filtra los correos

electrónicos que contienen materiales ofensivos, protegiendo a la empresa potencialmente de

problemas.

Detección de Intrusos y Prevención

No todas las formas de ataques son fácilmente identificables, ya que algunas son muy sofisticadas. En

ocasiones ni siquiera incluyen la transferencia de un archivo, y por ello se requieren métodos más

efectivos.

IDS (Intrusion Detection Systems) e IPS (Intrusion Prevention Systems) son herramientas útiles para

ataques sofisticados. Estas herramientas detectan estas amenazas observando tendencias, buscando

ataques que utilizan patrones de mensajes particulares. Los IDS e IPS pueden rastrear secuencias de

paquetes entre hosts para buscar un archivo que se envíe a demasiados hosts, tal y como lo haría un

gusano tratando de propagarse dentro de una red.

Los sistemas IDS e IPS se diferencian mayormente en cómo monitorean el tráfico y cómo responden a

una amenaza percibida. Las herramientas IDS típicamente reciben una copia de los paquetes por vía de

un puerto que monitorea, en lugar de ser parte de la trayectoria de los paquetes de reenvío. Los IDS

pueden entonces medir y reportar cada amenaza potencial, y solicita apoyo a otros dispositivos como

routers y firewalls para prevenir el ataque. Las herramientas IPS a menudo son parte de la trayectoria de

los paquetes de reenvío, dando al IPS la habilidad de realizar las mismas funciones que el IDS, y además

reaccionar y filtrar el tráfico. El tiempo de reacción es vital para ciertas amenazas, ya que infectan un

gran número de computadoras en poco tiempo y no sería viable esperar a que un técnico arreglara la

situación.

UPAEP 2015 [Diplomado en Redes]

21

Virtual Private Networks (VPN)

La Virtual Private Network se puede entender mejor como Virtual Private WAN. Una línea arrendada es

inherentemente segura, actuando efectivamente como un circuito eléctrico entre dos routers. Las VPNs

envían paquetes a través de la Internet, la cual es una red pública. Las VPNs hacen una comunicación

segura tal y como si fueran una línea arrendada privada.

Sin la tecnología de la VPN, los paquetes enviados entre dos dispositivos a través de la Internet serían

totalmente inseguros. Los paquetes vagando por la Internet podrían ser interceptados por algún

atacante. Los atacantes ya han aprendido a direccionar paquetes y examinar sus contenidos para

extraer información y credenciales. Además, un usuario no podría saber cuál paquete es útil y cuál es

un ataque.

Las VPNs proveen una solución para permitir el uso de Internet sin los riesgos de aceptar datos de hosts

que están atacando y sin el riesgo de que otros puedan leer los datos en tránsito. Las VPNs autentican

los extremos de las VPNs, de modo que ambos estén seguros de que el otro extremo es legítimo.

Adicionalmente, las VPNs encriptan los paquetes IP originales para que aunque un atacante tenga una

copia de ellos, no pueda leer los datos.

Dos tipos de VPN son:

VPN de acceso: soporta a un usuario en una oficina pequeña con la PC de la oficina remota,

típicamente encriptando los datos.

VPN Intranet sitio-a-sitio: típicamente conecta a dos sitios dentro de la misma Empresa,

creando efectivamente una conexión entre dos partes dentro de la misma red empresarial.

Aquí la encriptación puede ser realizada por todos los dispositivos que usan un diferente

hardware, incluyendo routers, firewalls, hardware de concentrador de VPN especialmente

hecho, o ASAs.

Las VPNs pueden utilizar encriptación punto-a-punto, en la cual los datos permanecen encriptados

mientras son reenviados a través de uno o más routers. Adicionalmente, la encriptación de enlace

puede ser utilizada para encriptar datos en la capa de enlace de datos, de modo que los datos estén

encriptados solamente si pasan por un enlace de datos.