Académique Documents
Professionnel Documents
Culture Documents
Información 2009
Fuentes: Redes de computadoras (Andrew Tanenbaum) y Wikipedia.org NMs
Unidad 1: Arquitectura de Redes
Redes de Computadoras
La interconexión de las computadoras puede realizarse por distintos medios como cables de cobre, fibra
óptica, microondas, rayos infrarrojos, satélites, etc.
En una red de computadoras no existe consistencia, modelo, ni software como en los sistemas
distribuidos (middleware). Los usuarios están expuestos a las máquinas reales y el sistema no hace
ningún intento por que las máquinas se vean y actúen de manera similar. Si las máquinas tiene
hardware diferente y distintos sistemas operativos, eso es completamente trasparente para los
usuarios.
En general las redes de gran cobertura geográfica utilizan redes por enlaces punto a punto, mientras
que las redes de menor cobertura geográfica utilizan enlaces de difusión.
Las redes MAN tienen diferentes usos como ser, transmisiones VOIP para una ciudad,
interconexión entre redes LAN, como pasarela para redes WAN, etc.
o WAN (Wide Area Network): Son redes que abarcan una gran área geográfica como ser
un país o un continente con un área de cobertura de 100km a 1000km y velocidades de
transferencia de datos menores a las LAN. Normalmente las redes WAN utilizan
transmisión punto a punto, cuando se debe enviar un paquete desde un punto A de la
red a un punto B, este paquete puede pasar a través de varios routers intermedios hasta
llegar a su destino. Es común que una red WAN utilice las instalaciones de transmisión
proporcionadas por los portadores comunes, tales como compañías de teléfono.
Red Corporativa: Son todos los recursos de una organización que se encuentran interconectados
independientemente del área que ocupen y la tecnología de conmutación utilizada.
Red Corporativa
LAN
WAN
LAN LAN
VPN
MAN
Según privacidad
o Redes Privadas: Son redes cuyos terminales tienen asignados direcciones IP del espacio
de direcciones privadas, lo cual les permite comunicarse con otros terminales de la red
privada pero no salir a internet con dicha IP. Son muy utilizadas en redes LAN dado que
muchas veces en una red no es necesario que todas las maquinas estén conectadas a
internet. Las direcciones de IP privadas surgen como un método para evitar el
agotamiento de las direcciones IP (Ver.4), dado que con la implementación de estas
redes, distintas compañías pueden utilizar el mismo rango de direcciones privadas sin
correr riesgo de conflictos. Existen métodos como NAT y PAT que permiten generar una
correspondencia entre las direcciones privadas de una LAN y un conjunto de direcciones
públicas, para que los HOST de la LAN puedan hacer uso de una red pública como
internet.
o Redes Públicas: una red pública se define como una red que puede usar cualquier
persona y no como las redes que están configuradas para uso personal. Es una red de
computadoras interconectadas, capaz de compartir información y que permite
comunicar a usuarios sin importar su ubicación geográfica. Para utilizar una red pública
es necesario que los equipos posean direcciones del espacio de direcciones públicas de
IP.
Aclaración: según el profe los elementos son 4, las estaciones de trabajo, los protocolos de comunicación,
los dispositivos de comunicación y el medio físico.
Servidor: El servidor es aquel o aquellos ordenadores que van a compartir sus recursos
hardware y software con los demás equipos de la red. Sus características son potencia de
cálculo, importancia de la información que almacena y conexión con recursos que se desean
compartir.
Estación de trabajo: Los ordenadores que toman el papel de estaciones de trabajo aprovechan
o tienen a su disposición los recursos que ofrece la red así como los servicios que proporcionan
los Servidores a los cuales pueden acceder.
Encaminador: Es un dispositivo de “propósito general” diseñado para multitud de tareas,
algunas de ellas de alta complejidad y otras más sencillas. Está diseñado para segmentar la red
con la idea de limitar el tráfico de troncal y proporcionar seguridad, control y redundancia entre
dominios individuales de troncal. Los routers operan en la capa 3 del modelo OSI y tienen más
facilidades de software que un switch. Al funcionar en una capa mayor que la del switch, el
router distingue entre los diferentes protocolos de red, tales como IP, IPX, AppleTalk o DECnet,
permitiéndole decidir de forma más inteligente que el switch , al momento de reenviar
paquetes. Las dos funciones básicas del router son :
o Crear y mantener tablas de encaminamiento para cada capa de protocolo de red: estas
tablas son creadas estática ó dinámicamente.
o Seleccionar la ruta basándose sobre diversos factores más que por la dirección de
destino. Estos factores pueden ser la cuenta de saltos, velocidad de la línea, costo de
transmisión, retraso y condiciones de tráfico.
Gateways o pasarelas: Es un hardware y software que permite las comunicaciones entre la red
local y grandes ordenadores (mainframes). El gateway adapta los protocolos de comunicación
del mainframe (X25, SNA, etc.) a los de la red, y viceversa.
Bridges o puentes: Es un hardware y software que permite que se conecten dos redes locales
entre sí. Un puente interno es el que se instala en un servidor de la red, y un puente externo es
el que se hace sobre una estación de trabajo de la misma red. Los puentes también pueden ser
locales o remotos. Los puentes locales son los que conectan a redes de un mismo edificio,
usando tanto conexiones internas como externas. Los puentes remotos conectan redes distintas
entre sí, llevando a cabo la conexión a través de redes públicas, como la red telefónica, RDSI o
red de conmutación de paquetes.
Tarjeta de red: También se denominan NIC (Network Interface Card). Básicamente realiza la
función de intermediario entre el ordenador y la red de comunicación. En ella se encuentran
grabados los protocolos de comunicación de la red. La comunicación con el ordenador se realiza
normalmente a través de las ranuras de expansión que éste dispone, ya sea ISA, PCI o PCMCIA.
Aunque algunos equipos disponen de este adaptador integrado directamente en la placa base.
El medio: Constituido por el cableado y los conectores que enlazan los componentes de la red.
Los medios físicos más utilizados son el cable de par trenzado, par de cable, cable coaxial y la
fibra óptica (cada vez en más uso esta última).
Concentradores de cableado: Una LAN en bus usa solamente tarjetas de red en las estaciones y
cableado coaxial para interconectarlas, además de los conectores, sin embargo este método
complica el mantenimiento de la red ya que si falla alguna conexión toda la red deja de
funcionar. Para impedir estos problemas las redes de área local usan concentradores de
cableado para realizar las conexiones de las estaciones, en vez de distribuir las conexiones el
concentrador las centraliza en un único dispositivo manteniendo indicadores luminosos de su
estado e impidiendo que una de ellas pueda hacer fallar toda la red.
Los concentradores de cableado tienen dos tipos de conexiones: para las estaciones y para
unirse a otros concentradores y así aumentar el tamaño de la red. Los concentradores de
cableado se clasifican dependiendo de la manera en que internamente realizan las conexiones y
distribuyen los mensajes. A esta característica se le llama topología lógica.
Existen dos tipos principales:
1. Concentradores con topología lógica en bus (HUB): Estos dispositivos hacen que la red
se comporte como un bus enviando las señales que les llegan por todas las salidas
conectadas.
2. Concentradores con topología lógica en anillo (MAU): Se comportan como si la red fuera
un anillo enviando la señal que les llega por un puerto al siguiente.
Historia
ARPANET fue una red de investigaciones del departamento de defensa de los Estados Unidos, con el
tiempo esta red conecto varias universidades e instalaciones gubernamentales mediante líneas
telefónicas. Posteriormente surgieron redes satelitales y de radio y los protocolos existentes tuvieron
problemas para trabajar con ellos y la solución a ello fue crear un modelo de referencia para estas redes,
el nombre de ese modelo es TCP/IP.
EL MODELO TCP/IP
OSI TCP/IP
7. Aplicación Aplicación
6. Representación
5. Sesión
4. Transporte Transporte
3. Red Internet
2. Enlace de datos Acceso a la red
1. Física
El modelo TCP/IP consta de 4 capas que están jerarquizadas y cada una se construye sobre su
predecesora. El número, servicios y funciones de cada una de las capas varían según el tipo de red,
veamos la versión original de 4 capas.
Equivalente a la capa física (1) y capa de enlace de datos (2) del modelo OSI. Se encarga de llevar a cabo
a la transmisión de bits a través del medio y fragmentación de los datos a enviar, uso de buffers, control
de flujo y manejo de errores.
Capa de Internet
Equivalente a la capa red (3) del modelo OSI. Se encarga de encaminar los paquetes para que lleguen al
destino, uso y definición de tablas de enrutamiento (ya sea estáticas o dinámicas), mecanismos de
control de congestión y control de flujo, etc.
Capa de transporte
Equivalente a la capa de transporte (4) del modelo OSI. Se encarga de aceptar los datos provenientes de
la capa de aplicación, dividirlo en unidades más pequeñas (en caso de ser necesario), asegurarse que
todos los datos enviados lleguen correctamente de extremo a extremo, determina el tipo de conexión
(seguro orientado a conexión TCP (con control de flujo), inseguro no orientado a conexión UDP (sin
control de flujo)).
Capa de aplicación
Equivalente a las capas sesión (5), presentación (6) aplicación (7) del modelo OSI. El modelo TCP/IP
combina todos los aspectos relacionados con las aplicaciones en una sola capa, contiene todos los
protocolos de nivel más alto (TELNET, FTP, HTTP, etc.).
Conjunto de protocolos
Aplicación BGP · DHCP · DNS · FTP · GTP · HTTP · IMAP · IRC · Megaco · MGCP · NNTP · NTP ·
POP · RIP · RPC · RTP · RTSP · SDP · SIP · SMTP · SNMP · SOAP · SSH · Telnet · TLS/SSL ·
XMPP
Acceso a la red NDP · OSPF · Tunnels (L2TP) · PPP · Media Access Control (Ethernet, DSL, ISDN, FDDI)
Internet
Origen
El número de redes, maquinas y usuarios conectados a ARPANET creció exponencialmente luego de que
TCP/IP se convirtió en el protocolo oficial. A mediados de la década del 80’, las personas comenzaron a
ver el conjunto de redes como internet. Por lo que se define que una máquina está en internet si ejecuta
la pila de protocolos TCP/IP, tiene una dirección IP y puede enviar paquetes IP a otras máquinas en
internet.
Servicios Básicos
Correo electrónico, la capacidad para redactar, enviar y recibir correo electrónico ha sido
posible desde los inicios de ARPANET.
Noticias, los grupos de noticias son foros especializados en los que los usuarios con un interés
común pueden intercambiar mensajes.
Inicio remoto de sesión, mediante programas como telnet los usuarios de cualquier parte en
internet pueden iniciar sesión en cualquier otra máquina en la que tengan una cuenta.
Transferencia de archivos, con el programa FTP, los usuarios pueden copiar archivos de una
máquina en internet a otra.
Luego de 1990 una nueva aplicación cambió el uso de internet, la World Wide Web. Esta aplicación hizo
posible que un sitio estableciera páginas con información en forma de texto, imágenes, sonido y video,
junto con vínculos que integraran a otras páginas.
Estándares de redes
Los proveedores de servicios de internet son compañías que ofrecen a los usuarios la capacidad de
llamar a una de sus maquinas y conectarse a internet obteniendo así acceso a todos los servicios que
este proporciona.
Arquitectura de internet
NA NA
P P
ISPR ISP NA NA
P P
ISP NA
ISP
ISPL P
ISPR
POP ISPR
ISP
Temas del programa no abordados: Características de internet.
Cableado ISPL
Telefónico
ISPR
ISPL
PC1 LAN1
En el caso de la PC1, el cliente llama a su ISP Local haciendo uso del cableado telefónico, el modem es la
tarjeta dentro de su PC que convierte las señales digitales de la computadora en señales analógicas que
pueden viajar a través del sistema telefónico. Estas señales viajan por el cableado telefónico hasta el
POP (Point of Presence) del ISP donde se retiran del sistema telefónico y se inyectan en la red del ISP, a
partir de este punto el sistema es totalmente digital y de conmutación de paquetes. Cuando el ISP local
recibe el paquete, se fija si pertenece a alguien con el que esté directamente conectado, de no ser así
pasa el paquete a un ISP Regional, el paquete continua viajando hasta llegar a su destino.
PC1: PC conectada a un ISP Local haciendo uso del cableado telefónico, para ello convierte la
señal digital a analógica.
Cableado Telefónico: Medio por el cual viajan los datos.
POP: Es el elemento que permite filtrar del cableado telefónico aquella información que es para
el ISP y convertirla a digital para inyectarla en la red del ISP Local.
ISPL: El ISP Local es el ISP de menor cobertura. Algunos ejemplos son Ciudad Internet, Fibertel,
Tutopía.
ISPR: El ISP Regional, son aquellos que proveen el servicio de conexión a los ISP Locales. Algunos
ejemplos son Telecom y Telefónica.
ISP: Son aquellos ISP que están directamente conectados a un NAP y que brindan el servicio de
conexión a los ISPR, son proveedores internacionales. Algunos ejemplos son Prodigy y AOL.
NAP: Network Access Point, son los 5 nodos de internet y cada uno maneja un continente salvo
América que tiene 2. Los NAP tienen los enlaces más rápidos de todo internet.
Red Telefónica
Red Telefónica Conmutada también llamada Red Telefónica Básica, es una red de comunicación
diseñada primordialmente para la transmisión de voz, aunque también pueden transportarse datos (fax,
internet, etc.).
Tel3 CT CL
Int2
Int1 LATA1 LATA2
LATA (Local Access Transport Area), los usuarios se conectan a los CL (Centrales Locales) a través de lo
que denominaremos “Última Milla”, que básicamente es el cable que los conecta con la central local. En
los años 90’ se produjo la digitalización de las líneas del sistema de transmisión, manteniendo la “última
milla” de los abonados de manera analógica con un ancho de banda de 4Khz. Por lo que la señal
analógica llega a las centrales locales y debe ser codificada para digitalizarse, la codificación se realiza
con PCM (Modulación de Impulsos Codificados) a una frecuencia de muestreo de 8Khz con un ancho de
banda de 64Kbits, la modulación se realiza con TDM (Modulación por división de tiempo). En el caso de
que sea una llamada local, la petición se resuelve a través de las centrales locales. Si es una llamada a
otro proveedor, las centrales locales envían los datos multiplexados y digitalizados a las centrales de
transformación, esta se conecta al POP y envía los datos a la central de transformación del proveedor
correspondiente, esto lo hace a través de los IXC (Inter Exchange Carrier), una vez que esto ocurre los
datos son enviados a la central local y al usuario correspondiente.
En caso de ser una conexión a internet, estas son denominadas (CSU/DSU) Unidad de Servicio de Canal /
Unidad de Servicio de Datos, es una interfaz que permite conectar equipos DTE (Data Terminal
Equipment) a un circuito digital. Trabajan en la capa física (1) del modelo OSI normalmente presentan
conectores seriales RS232 (DSU) y otro RJ45 (CSU). El CSU provee una terminación de la señal digital y
asegura la integridad de la conexión a través de la corrección de errores y la supervisión de la línea.
Otras funciones del CSU son proteger el equipo del usuario y la línea de problemas eléctricos. El DSU
convierte los datos codificados del circuito digital en datos síncronos seriales para una conexión a un
dispositivo DTE y establece plazos para cada extremo.
ISDN (Red Digital de Servicios Integrados) no fue aplicado por los costos de reemplazar todas las últimas
millas, ISDN utiliza conmutación de circuitos y es una conexión WAN que en la última milla tiene un
cable UTP de 8 conductores. Los hilos “de más” son utilizados para enviar, entre otras cosas, señales de
control (se denomina “fuera de banda” porque la señal de control va por otros conductores).
Cuando ATM se lanzó iba a resolver todos los problemas de conectividad en las telecomunicaciones
fusionando voz, datos, televisión por cable, telégrafo, etc. En un solo sistema integrado que pudiera
proporcionar todos los servicios. ATM no tuvo ese éxito pero si es muy utilizada por las empresas
portadoras para el transporte de paquetes IP dentro del sistema telefónico.
Como ATM están orientadas a conexión el envío de datos requiere que primero se envíe un paquete
para establecer la conexión, conforme el paquete de establecimiento de conexión viaja por los distintos
nodos a través de la subred, todos los conmutadores que se encuentran en la ruta crean una entrada en
sus tablas internas y toman nota de la existencia de dicha conexión y de los recursos necesarios por la
conexión. A estas conexiones se las conoce como circuitos virtuales. Una vez establecida la conexión
cada lado puede comenzar a enviar datos, en ATM los datos se envían en paquetes de tamaño fijos
llamados celdas (53 bytes = 5 encabezado + 48 de carga útil). Parte del encabezado es el identificador
para que los conmutadores puedan saber a qué conexión pertenece una celda, la conmutación de celdas
se realiza a alta velocidad a nivel de hardware. Al utilizar celdas de tamaño pequeño, estas no bloquean
ninguna línea por mucho tiempo lo que facilita la garantía de la calidad de servicio. Dado que se
establece un circuito virtual, todas las celdas siguen un mismo camino en su viaje hacia el destino, por lo
que a pesar de no garantizarse la entrega de las celdas, si se garantiza el orden (la recuperación de las
celdas perdidas se realiza en los niveles más altos del protocolo). Las redes ATM pueden alcanzar
velocidades de transferencia de 155Mbps hasta 622Mbps (con 155Mbps puede enviarse televisión de
alta definición y la de 622Mbps es para enviar 4 canales de 155Mbps).
ATM tiene su propio modelo y este consta de tres capas (Física, ATM y Adaptación ATM), a diferencia de
la mayoría de los modelos, este se define en tres dimensiones:
Administración de la capa
Subcapa de convergencia
Capa de adaptación ATM
Subcapa de segmentación y reensamble
Capa ATM
Capa Física: Tiene que ver con el medio físico (voltajes, temporización de bits, etc.), ATM puede enviar
sus celdas al medio de comunicación o esas celdas pueden ser la carga útil de otro sistema de
transporte, en otras palabras ATM es independiente del medio de transmisión. La capa física se divide
en dos subcapas:
Subcapa dependiente del medio físico, esta subcapa interactúa con el cable real, mueve los bits
y maneja su temporización (esta capa varía de acuerdo al medio físico a utilizar).
Subcapa de convergencia de transmisión, es la encargada de convertir las celdas en una cadena
de bits para que sean enviados por la subcapa dependiente del medio físico y viceversa, también
genera y controla el campo de verificación de encabezados.
Capa ATM: Se encarga de las celdas y su transporte, define la disposición de una celda y genera/extrae
el encabezado de la misma, establece y libera los circuitos virtuales y realiza control de congestión.
Capa de Adaptación ATM: Esta capa fue creada dado que la mayoría de las aplicaciones no trabajan con
celdas ATM, esta capa segmenta/reensambla los paquetes a enviar al tamaño de las celdas. Esta capa se
divide en dos subcapas:
Plano de Usuario: Este plano trata el transporte de datos, control de flujo, corrección de errores y otras
funciones de usuario.
Celdas ATM
1. Cabecera, sus 5 bytes tienen tres funciones principales: identificación del canal, información
para la detección de errores y si la célula es o no utilizada. Eventualmente puede contener
también corrección de errores y un número de secuencia.
2. Carga útil, tiene 48 bytes fundamentalmente con datos del usuario y protocolos AAL que
también son considerados como datos del usuario.
Dos de los conceptos más significativos del ATM, Canales Virtuales y Rutas Virtuales, están
materializados en dos identificadores en el header de cada célula (VCI y VPI) ambos determinan el
enrutamiento entre nodos. El estándar define el protocolo orientado a conexión que las transmite y dos
tipos de formato de celda:
NNI (Network to Network Interface o interfaz red a red) El cual se refiere a la conexión de
Switches ATM en redes privadas
UNI (User to Network Interface o interfaz usuario a red) este se refiere a la conexión de un
Switch ATM de una empresa pública o privada con un terminal ATM de un usuario normal,
siendo este último el más utilizado.
Campos
GFC (Control de Flujo Genérico, Generic Flow Control, 4 bits): El estándar originariamente
reservó el campo GFC para labores de gestión de tráfico, pero en la práctica no es utilizado. Las
celdas NNI lo emplean para extender el campo VPI a 12 bits.
VPI (Identificador de Ruta Virtual, Virtual Path Identifier, 8 bits) y VCI (Identificador de Circuito
Virtual, Virtual Circuit Identifier, 16 bits): Se utilizan para indicar la ruta de destino o final de la
celula.
PT (Tipo de Información de Usuario, Payload type, 3 bits): identifica el tipo de datos de la celda
(de datos del usuario o de control).
CLP (Prioridad, Cell Loss Priority, 1 bit): Indica el nivel de prioridad de las celda, si este bit esta
activo cuando la red ATM esta congestionada la celda puede ser descartada.
HEC (Corrección de Error de Cabecera, Header Error Correction, 8 bits): contiene un código de
detección de error que sólo cubre la cabecera (no la información de usuario), y que permite
detectar un buen número de errores múltiples y corregir errores simples.
Direccionamiento IP
Protocolo IP Ver.4
El protocolo IP consiste en un protocolo no orientado a conexión usado tanto por el origen como por el
destino para la comunicación de datos a través de una red de paquetes conmutados. Los datos en una
red IP con conocidos como paquetes o datagramas y son enviados mediante un servicio no fiable
denominado “mejor esfuerzo”, IP no provee ningún mecanismo para determinar si un paquete alcanza o
no su destino y solo proporciona checksum de la cabecera IP y no de los datos (carga útil). Si se desean
enviar datos en forma confiable, esto será responsabilidad de las capas superiores como TCP en la capa
de transporte.
Un datagrama IP consiste en una parte de encabezado y una parte de texto, el encabezado tiene una
parte fija de 20 bytes y una parte opcional de longitud variable.
Versión: Es un registro de la versión del protocolo a la que pertenece el datagrama, este campo permite
que puedan convivir IP ver.4 e IP ver.6 por ejemplo.
IHL: Dado que la longitud del encabezado no es constante, se incluye este campo para indicar la
cantidad de elementos opcionales agregados.
Tipo de servicio: Distingue entre las diferentes clases de servicios y pueden variarse combinaciones de
confiabilidad y velocidad.
Longitud Total: Incluye a todo el datagrama (encabezado + datos), la longitud máxima es de 64 Kbytes.
Identificación: Este campo es necesario para que el host destino identifique a que datagrama pertenece
un fragmento llegado (todos los fragmentos de un datagrama contienen el mismo identificador).
Bit Sin Uso
Bit DF: Bit de no fragmentar, es una orden para que los routers no fragmenten el datagrama.
Bit MF: Bit de mas fragmentos, todos los fragmentos de un datagrama salvo el último tiene encendido
este bit y permite identificar cuando se ha completado un datagrama.
Desplazamiento del fragmento: Indica en que parte del datagrama actual va colocado ese fragmento.
Tiempo de vida: Es un contador que sirve para limitar la vida del paquete, va de 255~0 y disminuye con
cada salto, al alcanzar el valor 0 se descarta.
Protocolo: Una vez que se completa un datagrama, este campo indica que hacer con él (a que protocolo
de las capas superiores debe ser entregado, ejemplo TCP, UDP).
Opciones: Este campo se agregó para que las versiones siguientes a este protocolo agregasen
información no presente en la cabecera como seguridad, indicar una ruta a seguir, indicar un router por
el cual pasar, etc. (este campo debe llenarse a 32 bits).
Datos: Es la carga útil, que son datos enviados por las capas superiores.
Direcciones IP
Cada host y router de internet tiene una dirección de IP la cual se encuentra formada por dos números
el de RED y el de HOST, la combinación es única y “dos maquinas no pueden tener el mismo IP”. Todas
las direcciones IP Versión 4 son de 32 bits de longitud y se utilizan en los campos “dirección de origen” y
“dirección de destino” de los paquetes IP. Es importante aclarar que una dirección de IP no se refiere a
un HOST si no a una interfaz de red por lo que si un HOST se encuentra en dos redes, debe tener
asignadas dos direcciones de IP.
Clases de direcciones IP
Los números de las redes son manejados por una corporación no lucrativa llamada ICANN (Corporación
de Internet para la Asignación de Nombre y Números) para evitar conflictos.
Las direcciones clase A son las que mayor cantidad de Hosts pueden tener en una misma red, mientras
que las clase C son las que mayor cantidad de redes pueden tener y las clase B son un intermedio. Las
direcciones IP clase D son direcciones de multicast y no existe necesidad de asignar bits de red o de host,
las direcciones clase E están reservadas para un uso futuro.
Existen algunas direcciones IP con características particulares como la 127.X.X.X estas direcciones son
denominadas de loopback y los paquetes enviados a estas direcciones no se colocan en el cable, si no
que se procesan localmente y se tratan como paquetes de entrada. La dirección 0.0.0.0 es utilizada por
las máquinas cuando arrancan o no se les ha asignado una dirección IP. Las direcciones donde la parte
de Hosts es 0, se denominan direcciones de red y hacen referencia a una familia de direcciones IP. Las
direcciones donde la parte de host es 1 se denominan direcciones de broadcast que se utilizan como
dirección de difusión para indicar todos los hosts de una red.
Direcciones de IP Privadas
Hay ciertas direcciones en cada clase de dirección IP que no están asignadas y que se denominan
direcciones privadas. Las direcciones privadas pueden ser utilizadas por los hosts que usan traducción de
dirección de red (NAT/PAT) para conectarse a una red pública o por los hosts que no se conectan a
Internet. En una misma red no pueden existir dos direcciones iguales, pero sí se pueden repetir en dos
redes privadas que no tengan conexión entre sí o que se sea a través de NAT/PAT. Las direcciones
privadas son:
Máscara de Subred
La máscara permite distinguir los bits que identifican la red y los que identifican el host de una dirección
IP. Dada la dirección de clase A 10.2.1.2 sabemos que pertenece a la red 10.0.0.0 y el host al que se
refiere es el 2.1.2 dentro de la misma. La máscara se forma poniendo a 1 los bits que identifican la red y
a 0 los bits que identifican el host. De esta forma una dirección de clase A tendrá como máscara
255.0.0.0, una de clase B 255.255.0.0 y una de clase C 255.255.255.0. Los dispositivos de red realizan un
AND entre la dirección IP y la máscara para obtener la dirección de red a la que pertenece el host
identificado por la dirección IP dada. Por ejemplo un router necesita saber cuál es la red a la que
pertenece la dirección IP del datagrama destino para poder consultar la tabla de encaminamiento y
poder enviar el datagrama por la interfaz de salida.
Subredes
El uso de subredes permite dividir a una red en varias partes para uso interno, pero actuar como una
sola red ante el mundo exterior. Básicamente lo que se hace es eliminar algunos bits de host y usarlos
como bit de red para crear un nuevo número de subred. Pero para que la implementación de subredes
surta efecto, el router necesita conocer la máscara de subred que permita separar aquellos bits que
están siendo utilizados para red de los que se utilizan para host. Las máscaras de subredes pueden
definirse utilizando notación decimal (255.128.0.0) o notación alternativa (/9) la cual indica la cantidad
de bits que son utilizados para red. Dentro de una subred hay dos direcciones que están reservadas y
son aquella que tiene todos los bits de host en 0 (Dirección de subred) y aquella que tiene todos los bits
de host en 1 (Dirección de broadcast de la subred).
Fuera de la red, la subred no es visible por lo que no se necesita la autorización de ningún organismo
para realizar subredes.
Tabla de enrutamiento
Cuando llega un paquete IP, el router debe decidir a quién enviarlo para que este llegue a su destino, lo
que hace el router es buscar en su tabla de enrutamiento la dirección de red destino del paquete (previo
haber realizado una AND lógico entre la dirección del Host destino y la máscara de subred para obtener
la dirección de RED destino). Si la dirección se encuentra en la tabla tendrá todos los datos necesarios
para que el paquete siga su camino (Ej. Interfaz de salida, próximo salto, etc.). En caso de no tener la
dirección de red en su tabla pero si tener seteado un Gateway por defecto, enviará el paquete a este
Gateway para que decida qué hacer con él.
Originalmente, direcciones IP se separaban en dos partes: la dirección de red y la dirección de host. Esta
división se usaba para controlar la forma en que se encaminaba el tráfico entre redes IP.
A medida que la red TCP/IP experimental se expandió en los años 80 para formar Internet, el número de
ordenadores con dirección IP pública creció exponencialmente, forzando a los enrutadores a
incrementar la memoria necesaria para almacenar las tablas de rutas, y los recursos necesarios para
mantener y actualizar esas tablas. La necesidad de un esquema de direcciones más flexible se hacía cada
vez más patente.
Esta situación condujo al desarrollo sucesivo de las subredes y CIDR. Dado que se ignora la antigua
distinción entre clases de direcciones, el nuevo sistema se denominó encaminamiento sin clases
(classless routing). Esta denominación conllevó que el sistema original fuera denominado
encaminamiento con clases (classful routing).
VLSM (Variable Lenght Subnet Mask - Máscara de Subred de Longitud Variable) parte del mismo
concepto que CIDR. El término VLSM se usa generalmente cuando se habla de redes privadas, mientras
que CIDR se usa cuando se habla de Internet (red pública).
CIDR usa la técnica de Máscara de Subred de Longitud Variable, para hacer posible la asignación de
prefijos de longitud arbitraria, esto permite un uso más eficiente del cada vez más escaso espacio de
direcciones IPv4 y la agregación de múltiples prefijos contiguos en superredes, reduciendo el número de
entradas en las tablas de ruta globales.
Bloques CIDR
CIDR facilita el encaminamiento al permitir agrupar bloques de direcciones en una sola entrada de tabla
de rutas. Estos grupos, llamados comúnmente Bloques CIDR, comparten una misma secuencia inicial de
bits en la representación binaria de sus direcciones IP.
Los bloques CIDR IPv4 se identifican usando una sintaxis similar a la de las direcciones IPv4: cuatro
números decimales separados por puntos, seguidos de una barra de división y un número de 0 a 32;
A.B.C.D/N.
Los primeros cuatro números decimales se interpretan como una dirección IPv4, y el número tras la
barra es la longitud de prefijo, contando desde la izquierda, y representa el número de bits comunes a
todas las direcciones incluidas en el bloque CIDR.
Decimos que una dirección IP está incluida en un bloque CIDR, y que encaja con el prefijo CIDR, si los N
bits iniciales de la dirección y el prefijo son iguales. Nótese que los prefijos CIDR cortos (números
cercanos a 0) permiten encajar un mayor número de direcciones IP, mientras que prefijos CIDR largos
(números cercanos a 32) permiten encajar menos direcciones IP.
Una dirección IP puede encajar en varios prefijos CIDR de longitudes diferentes, es por ello que en las
tablas de enrutamiento cuando se compara la dirección de IP destino del paquete con las entradas en la
tabla, puede que existan muchas coincidencias con la misma dirección IP de red pero con distintas
máscaras, por lo que se utiliza aquella que tenga la máscara más grande.
CIDR también se usa con direcciones IPv6, en las que la longitud del prefijo varía desde 0 a 128, debido a
la mayor longitud de bit en las direcciones, con respecto a IPv4. En el caso de IPv6 se usa una sintaxis
similar a la comentada: el prefijo se escribe como una dirección IPv6, seguida de una barra y el número
de bits significativos.
CIDR usa máscaras de subred de longitud variable (VLSM) para asignar direcciones IP a subredes de
acuerdo a las necesidades de cada subred. De esta forma, la división red/host puede ocurrir en cualquier
bit de los 32 que componen la dirección IP. Este proceso puede ser recursivo, dividiendo una parte del
espacio de direcciones en porciones cada vez menores, usando máscaras que cubren un mayor número
de bits.
Las direcciones de red CIDR/VLSM se usan a lo largo y ancho de la Internet pública, y en muchas grandes
redes privadas.
Agregación de Prefijos
Esto permite una reducción significativa en el número de rutas que los enrutadores en Internet tienen
que conocer (y una reducción de memoria, recursos, etc.) y previene una explosión de tablas de
encaminamiento, que podría sobrecargar a los routers e impedir la expansión de Internet en el futuro.
IP Versión 6
Qué buscamos:
Menores tiempos de respuesta.
Mayor disponibilidad de ancho de banda.
Mayor seguridad
La seguridad es opcional IPv4 no fue diseñado para ser seguro ya que originalmente fue diseñado para
una red militar aislada. Se han definido varias herramientas de seguridad como ser: SSL, SHTTP, IPsec V4,
etc., y ninguna es un estándar.
Escalabilidad: IPv6 tiene direcciones de 128 bits frente a las direcciones de 32 bits de IPv4. Lo cual
implica un gran aumento en el número de IPs disponibles.
Aplicaciones en tiempo real: Para dar mejor soporte a tráfico en tiempo real (i.e. videoconferencia), IPv6
incluye etiquetado de flujos en sus especificaciones. Con este mecanismo los routers pueden reconocer
a qué flujo extremo a extremo pertenecen los paquetes que se transmiten.
Extensibilidad: IPv6 ha sido diseñado para ser extensible y ofrece soporte optimizado para nuevas
opciones y extensiones.
Especificaciones más claras y optimizadas: IPv6 seguirá las buenas prácticas de IPv4 y elimina las
características no utilizadas u obsoletas de IPv4, con lo que se consigue una optimización del protocolo
de Internet. La idea es quedarse con lo bueno y eliminar lo malo del protocolo actual.
Direccionamiento y encaminado: IPv6 mejora la jerarquía de direccionamiento y encaminamiento.
Extensibilidad: IPv6 ha sido diseñado para ser extensible y ofrece soporte optimizado para nuevas
opciones y extensiones.
Datagrama IP v6
Datagrama respecto a IP v4
Protocolo --> Siguiente cabecera (mext header). Esto se debe a que en lugar de usar cabeceras de
longitud variable, usa distintas cabeceras encadenadas. Por ello desaparece el campo “Opciones”
Tiempo de vida (TTL) --> Límite de Saltos (Hop limit). Tiene una longitud de 8 bits (1 byte)
Etiqueta de Flujo (Flow Label): Para permitir tráfico con requisitos de tiempo real o sensible al retardo.
Tiene una longitud de 20 bits
o La longitud de esta cabecera es de 40 bytes, el doble que en IPv4, pero tiene muchas ventajas al
eliminar campos redundantes y ser de longitud fija, lo que facilita el procesado en los routers.
o Otra ventaja es que los campos están alineados a 64 bits, lo que permite que las nuevas
generaciones de procesadores de 64 bits sean más eficaces al procesar este encabezado
o El valor del campo “siguiente cabecera”, indica cual es la siguiente cabecera. Las sucesivas
cabeceras, no son examinadas en cada nodo de la ruta, sino sólo en el o los nodo/s destino final.
Hay una excepción a esta regla: cuando el valor de este campo es cero, indica opción de examinado
y proceso “salto a salto” (hotby-hop).
A continuación se dan algunos ejemplos de uso de las “cabeceras de extensión”, definidas en el campo
“siguiente cabecera”. Este mecanismo permite encadenar una cabecera con otra.
Existe un formato abreviado para designar direcciones IP versión 6 cuando las terminaciones son todas 0
(cero) 2001:0ba0::
Es la forma abreviada de la siguiente dirección: 2001:0ba0:0000:0000:0000:0000:0000:0000
1081:0:0:0:9:800:56AB:3510 (una dirección unicast)
FF01:0:0:0:0:0:0:512 (una dirección multicast)
0:0:0:0:0:0:0:1 (la dirección de loopback)
0:0:0:0:0:0:0:0 (una dirección no especificada)
Dado que existen largas cadenas de bit 0 (cero) se permite la escritura mediante abreviación con “::”,
que representa múltiples grupos consecutivos de 16 bits 0 (cero). Este símbolo solo puede aparecer una
vez en la dirección.
Igualmente, se puede poner un solo 0, quitar los ceros a la izquierda y se pueden abreviar 4 ceros en
medio de la dirección (una sola vez en cada dirección).
2001:ba0:0:0:0:0::1234
Es la forma abreviada de la dirección:
2001:0ba0:0000:0000:0000:0000:0000:1234
0:0:0:0:0:0:13.10.68.3
0:0:0:0:0:FFFF:129.144.52.38
Pueden representarse como:
:: 13.10.68.3
::FFFF: 129.144.52.38
Para ello se utiliza una técnica que se denomina túnel. Consiste en introducir en un extremo el tráfico
IPv6 como si fueran datos del protocolo IPv4. De esta manera, el tráfico IPv6 viaja "encapsulado" dentro
del tráfico IPv4 y en el otro extremo, este tráfico es separado e interpretado como tráfico IPv6.
El mecanismo consiste en crear los paquetes IPv6 de forma normal e introducirlos en un paquete IPv4. El
proceso inverso se realiza en la maquina destino, que recibe un paquete IPv6.
Una forma alternativa muy conveniente, cuando nos hallemos en un entorno mixto de IPv4 e IPv6, es:
X:X:X:X:X:X:D.D.D.D
Donde “X” representa valores Hexadecimales de 16 bits /los 6 de mayor peso) y “D” representa valores
decimales de las 4 porciones de 8 bits de menor peso (representación estándar de IPv4).
¿Por qué es necesario migrar al nuevo protocolo IP (IPv6)?
Nuevos usuarios en países tan poblados como China o la India, nuevas tecnologías con dispositivos
conectados de forma permanente (xDSL, cable, PLC, PDAs, teléfonos móviles, UMTS, etc.) están
provocando la rápida desaparición, de forma práctica, de las direcciones IP disponibles en la versión 4.
Esto y la necesidad de mayores tasas de transferencia a nivel global hacen que la llegada de IPv6 sea
consecuencia directa de la evolución de las nuevas tecnologías. Abriendo un camino de posibilidades
totalmente nuevas.
Además de los protocolos como IP utilizados para la transferencia de datos en internet, existen una serie
de protocolos de control que se usan en la capa de redes como ICMP, ARP, RARP, BOOTP y DHCP.
Cuando ocurre algo inesperado, el Protocolo de Mensajes de Control en Internet informa de este
evento. Hay definidos alrededor de una docena de tipos de mensajes ICMP y cada mensaje va
encapsulado dentro de un paquete IP. Los más importantes se listan a continuación:
Cada mensaje ICMP es encapsulado directamente en un solo datagrama IP, y por tanto no garantiza la
entrega del ICMP.
Aunque los mensajes ICMP son contenidos dentro de datagramas estándar IP, los mensajes ICMP se
procesan como un caso especial del procesamiento normal de IP, algo así como el procesamiento de un
sub-protocolo de IP. En muchos casos es necesario inspeccionar el contenido del mensaje ICMP y
entregar el mensaje apropiado de error a la aplicación que generó el paquete IP original, aquel que
solicitó el envío del mensaje ICMP.
La utilidad del protocolo ICMP es controlar si un paquete no puede alcanzar su destino, si su vida ha
expirado, etc. Es decir, se usa para manejar mensajes de error y de control necesarios para los sistemas
de la red, informando con ellos a la fuente original para que evite o corrija el problema detectado.
Muchas de las utilidades de red comunes están basadas en los mensajes ICMP. El comando traceroute
está implementado transmitiendo datagramas UDP con campos especiales TTL IP en la cabecera, y
buscando los mensajes de "Tiempo de Vida en tránsito" y "Destino inalcanzable" generados como
respuesta. La herramienta ping está implementada utilizando los mensajes "Echo request" y "Echo
reply" de ICMP.
El protocolo de red IGMP se utiliza para intercambiar información acerca del estado de pertenencia
entre enrutadores IP que admiten la multidifusión y miembros de grupos de multidifusión. Los hosts
miembros individuales informan acerca de la pertenencia de hosts al grupo de multidifusión y los
enrutadores de multidifusión sondean periódicamente el estado de la pertenencia.
Todos los mensajes IGMP se transmiten en datagramas IP y tienen el formato mostrado en la figura
adjunta. Los campos son los siguientes:
Tipos:
Consulta de asociación: enviada por un encaminador de multidifusión. Hay dos subtipos: una
consulta general, utilizada para aprender qué grupos tienen miembros en una red conectada; y
una consulta específica de grupo, utilizada para aprender si un grupo particular tiene algún
miembro en una red conectada.
Informes de asociación: enviado por un host para declarar sus miebros asociados a un grupo.
Grupo de abandono: enviado por un hostpara declarar que abandona el grupo.
Tiempo máximo de respuesta: Solamente significativo en un mensaje de consulta de asociación,
y especifica el máximo tiempo permitido antes de enviar un infome de respuesta en unidades de
1/10 segundos.
Dirección de grupo: Cero en un mensaje de respuesta, y una dirección de grupo multidifusión IP válida
en un informe de asociación o en un mensaje de abandono.
En Ethernet, la capa de enlace trabaja con direcciones físicas. El protocolo ARP se encarga de traducir las
direcciones IP a direcciones MAC (direcciones físicas).Para realizar ésta conversión, el nivel de enlace
utiliza las tablas ARP, cada interfaz tiene tanto una dirección IP como una dirección física MAC.
Tablas ARP
La filosofía es la misma que tendríamos para localizar al señor "X" entre 150 personas: preguntar por su
nombre a todo el mundo, y el señor "X" nos responderá. Así, cuando a "A" le llegue un mensaje con
dirección origen IP y no tenga esa dirección en su tabla ARP, enviará su trama ARP a la dirección
broadcast (física), con la IP de la que quiere conocer su dirección física. Entonces, el equipo cuya
dirección IP coincida con la preguntada, responderá a "A" enviándole su dirección física. En este
momento "A" ya puede agregar la entrada de esa IP a su tabla ARP. Las entradas de la tabla se borran
cada cierto tiempo, ya que las direcciones físicas de la red pueden cambiar (Ej: si se estropea una tarjeta
de red y hay que sustituirla)
Funcionamiento I
Si A quiere enviar una trama a la dirección IP de B (misma red), mirará su tabla ARP para poner en la
trama la dirección destino física correspondiente a la IP de B. De no encontrarse la dirección de B en la
tabla ARP de A, la misma enviará un paquete ARP Request por broadcast y solo responderá mediante un
paquete ARP Reply (con su dirección física) aquel nodo cuyo IP sea el IP de la dirección lógica de destino
del paquete ARP Request.
Si A quiere enviar un mensaje a C (un nodo que no esté en la misma red), el mensaje deberá salir de la
red. Así, A envía la trama a la dirección física de salida del router. Esta dirección física la obtendrá a
partir de la IP del router, utilizando la tabla ARP. Si esta entrada no está en la tabla, mandará un mensaje
ARP a esa IP (llegará a todos), para que le conteste indicándole su dirección física.
Una vez en el router, éste consultará su tabla de encaminamiento, obteniendo el próximo nodo (salto)
para llegar al destino, y saca el mensaje por el interfaz correspondiente. Esto se repite por todos los
nodos, hasta llegar al último router, que es el que comparte el medio con el host destino. Aquí el
proceso cambia: el interfaz del router tendrá que averiguar la dirección física de la IP destino que le ha
llegado. Lo hace mirando su tabla ARP, y en caso de no existir la entrada correspondiente a la IP, la
obtiene realizando una multidifusión.
Nota: El paquete ARP tiene como dirección física de destino todas ‘F’ (todos los bits encendidos).
Paquete ARP:
Dir. Física del emisor (48 bits) Dir. Lógica del emisor
Dir. Lógica del emisor (32 bits) Dirección Física del receptor
Dirección Física del receptor (48 bits)
El tipo de dirección física y lógica está relacionado con si es Ethernet, token ring, ip, etc.
El comando ARP – a muestra la tabla ARP (con las direcciones IP y MAC conocidas). Cada vez que se
conoce una dirección MAC a través del protocolo ARP, se guarda un registro en esta tabla salvando esta
relación. La próxima vez que quieran comunicarse estos nodos, cada uno buscará en su tabla ARP (los
registros de la tabla son borrados cada 4 seg. Si no enviaron paquetes entre estos dos puntos, la
próxima vez tendrán que buscar la dirección MAC a través del protocolo ARP).
Es similar al protocolo ARP solo que el paquete enviado por broadcast estará preguntando por una IP
para una determinada dirección MAC. Esto puede ser utilizado para obtener direcciones de IP
dinámicas. También en caso de tener un terminal bobo el cual no tenga un SO por ejemplo, no podría
tener una dirección de IP, pero si tener una dirección MAC (ya que es propia de la placa de red),
entonces mediante este protocolo podría comunicarse con un servidor RARP y obtener una imagen del
SO y una dirección de IP. RARP utiliza broadcast para difundir los paquetes de peticiones, por lo que su
gran desventaja es que se necesita un servidor RARP en cada red, dado que los router no dejan pasar los
broadcast.
BOOTP son las siglas de Bootstrap Protocol. Es un protocolo de red UDP utilizado por los clientes de red
para obtener su dirección IP automáticamente. Normalmente se realiza en el proceso de arranque de
los ordenadores o del sistema operativo.
Este protocolo permite a los ordenadores sin disco obtener una dirección IP antes de cargar un sistema
operativo avanzado. Históricamente ha sido utilizado por las estaciones de trabajo sin disco basadas en
UNIX (las cuales también obtenían la localización de su imagen de arranque mediante este protocolo) y
también por empresas para introducir una instalación pre-configurada de Windows en PC recién
comprados (típicamente en un entorno de red Windows NT).
DHCP es un protocolo basado en BOOTP, más avanzado, pero más difícil de implementar. Muchos
servidores DHCP también ofrecen soporte BOOTP.
BOOTP es la solución a RARP dado que no es necesario un servidor en cada red, como desventaja las
tablas con las direcciones son cargadas manualmente en los servidores BOOTP a los que los nodos
realizarán las peticiones.
El Protocolo Configuración Dinámica de Servidor es un protocolo de red que permite a los nodos de una
red IP obtener sus parámetros de configuración automáticamente. Se trata de un protocolo de tipo
cliente/servidor en el que generalmente un servidor posee una lista de direcciones IP dinámicas y las va
asignando a los clientes conforme éstas van estando libres, sabiendo en todo momento quién ha estado
en posesión de esa IP, cuánto tiempo la ha tenido y a quién se la ha asignado después.
Este protocolo permite provee los parámetros de configuración a las computadoras conectadas a la red
informática con la pila de protocolos TCP/IP (Máscara de red, puerta de enlace y otros) y también
incluyen mecanismos de asignación de direcciones IP.
Asignación de direcciones IP
Sin DHCP, cada dirección IP debe configurarse manualmente en cada computadora y, si la computadora
se mueve a otra subred, se debe configurar otra dirección IP diferente. El DHCP le permite al
administrador supervisar y distribuir de forma centralizada las direcciones IP necesarias y,
automáticamente, asignar y enviar una nueva IP si fuera el caso en la computadora es conectada en un
lugar diferente de la red.
Asignación manual o estática: Asigna una dirección IP a una máquina determinada. Se suele
utilizar cuando se quiere controlar la asignación de dirección IP a cada cliente, y evitar, también,
que se conecten clientes no identificados.
Asignación automática: Asigna una dirección IP de forma permanente a una máquina clienta la
primera vez que hace la solicitud al servidor DHCP y hasta que el cliente la libera. Se suele
utilizar cuando el número de clientes no varía demasiado.
Asignación dinámica: el único método que permite la reutilización dinámica de las direcciones
IP. El administrador de la red determina un rango de direcciones IP y cada computadora
conectada a la red está configurada para solicitar su dirección IP al servidor cuando la tarjeta de
interfaz de red se inicializa. El procedimiento usa un concepto muy simple en un intervalo de
tiempo controlable. Esto facilita la instalación de nuevas máquinas clientes a la red.
Funcionamiento
Primero, se necesita un servidor DHCP que distribuya las direcciones IP. Este equipo será la base para
todas las solicitudes DHCP por lo cual debe tener una dirección IP fija. Por lo tanto, en una red puede
tener sólo un equipo con una dirección IP fija: el servidor DHCP.
Cuando un equipo se inicia no tiene información sobre su configuración de red y no hay nada especial
que el usuario deba hacer para obtener una dirección IP. Para esto, la técnica que se usa es la
transmisión: para encontrar y comunicarse con un servidor DHCP, el equipo simplemente enviará un
paquete especial de transmisión (Las direcciones IP origen y destino de dicho paquete serán 0.0.0.0 y
255.255.255.255 (broadcast) respectivamente, con información adicional como el tipo de solicitud, los
puertos de conexión, etc.) a través de la red local. Cuando el DHCP recibe el paquete de transmisión,
contestará con otro paquete de transmisión (no olvide que el cliente no tiene una dirección IP y, por lo
tanto, no es posible conectar directamente con él) que contiene toda la información solicitada por el
cliente.
Se podría suponer que un único paquete es suficiente para que el protocolo funcione. En realidad, hay
varios tipos de paquetes DHCP que pueden emitirse tanto desde el cliente hacia el servidor o servidores,
como desde los servidores hacia un cliente:
El primer paquete emitido por el cliente es un paquete del tipo DHCPDISCOVER. El servidor responde
con un paquete DHCPOFFER, fundamentalmente para enviarle una dirección IP al cliente. El cliente
establece su configuración y luego realiza un DHCPREQUEST para validar su dirección IP (una solicitud de
transmisión ya que DHCPOFFER no contiene la dirección IP) El servidor simplemente responde con un
DHCPACK con la dirección IP para confirmar la asignación. Normalmente, esto es suficiente para que el
cliente obtenga una configuración de red efectiva, pero puede tardar más o menos en función de que el
cliente acepte o no la dirección IP.
DHCP soluciona la gran desventaja de BOOTP y es que no es necesario tener un servidor en cada red,
para ello se debe tener en aquellas redes que no poseen un servidor, un “agente de retransmisión”, este
será el encargado de reenviar los paquetes DHCP Discover que existan en su red al servidor DHCP (para
ello necesita tener configurado la IP de un servidor DHCP).
La desventaja de la asignación dinámica de IPs es que si un HOST no hace más uso de una IP y no la
libera, esta dirección queda perdida. Con el tiempo podrían perderse muchas direcciones, para evitar
esto se utiliza una técnica llamada “arrendamiento” que consiste en colocar contadores a las IP
asignadas, si un host no solicita una “renovación” de la IP antes que el contador llegue a 0, su IP será
liberada.
Traducción de Direcciones de Red (NAT)
Las direcciones IP son escasas, un ISP podría tener una dirección clase B con máscara /16 lo cual
implicaría que podría tener (2^16)-2 = 65.534 hosts, en caso de tener más clientes que esos estaría en
problemas.
Una solución sería que mediante DHCP por ejemplo, los hosts tomaran las IP de forma dinámica, lo cual
permitiría 65.534 hosts activos, aunque este es un número que puede ser tranquilamente sobrepasado
por lo que no es la mejor solución. La solución a largo plazo sería implementar IPv6 que al trabajar con
128 bits en sus direcciones aumenta enormemente la cantidad de direcciones evitando su agotamiento.
Otra solución a este problema del agotamiento de las IP es el uso de NAT, la idea básica es asignar una
sola dirección IP a cada compañía (o un número pequeño) para el tráfico en internet. Dentro de la
compañía cada computadora tiene una dirección IP única (privada) que se utiliza para enrutar el tráfico
interno, cuando un paquete sale de la compañía y va al ISP se presenta una traducción de dirección de
esta manera simultáneamente sólo pueden salir a internet con una dirección IP tantos equipos como
direcciones públicas se hayan contratado.
Funcionamiento
El protocolo TCP/IP tiene la capacidad de generar varias conexiones simultáneas con un dispositivo
remoto. Para realizar esto, dentro de la cabecera de un paquete IP, existen campos en los que se indica
la dirección origen y destino. Esta combinación de números define una única conexión.
Una pasarela NAT cambia la dirección origen en cada paquete de salida y, dependiendo del método,
también el puerto origen para que sea único (PAT). Estas traducciones de dirección se almacenan en una
tabla, para recordar qué dirección y puerto le corresponde a cada dispositivo cliente y así saber donde
deben regresar los paquetes de respuesta. Si un paquete que intenta ingresar a la red interna no existe
en la tabla de traducciones, entonces es descartado. Debido a este comportamiento, se puede definir en
la tabla que en un determinado puerto y dirección se pueda acceder a un determinado dispositivo,
como por ejemplo un servidor web, lo que se denomina NAT inverso o DNAT (Destination NAT).
Estático (DNAT)
Es un tipo de NAT en el que una dirección IP pública se traduce a una dirección IP privada, y donde esa
dirección pública es siempre la misma. Esto le permite a un host, como un servidor Web, el tener una
dirección IP de red privada pero aún así ser visible en Internet.
Dinámico
Es un tipo de NAT en la que una dirección IP privada se mapea a una IP pública basándose en una tabla
de direcciones de IP registradas (públicas). Normalmente, el router NAT en una red mantendrá una tabla
de direcciones IP registradas, y cuando una IP privada requiera acceso a Internet, el router elegirá una
dirección IP de la tabla que no esté siendo usada por otra IP privada. Esto permite aumentar la
seguridad de una red dado que enmascara la configuración interna de una red privada, lo que dificulta a
los hosts externos de la red el poder ingresar a ésta. Para este método se requiere que todos los hosts
de la red privada que deseen conectarse a la red pública posean al menos una IP pública asociadas.
Sobrecarga (PAT)
La forma más utilizada de NAT, proviene del NAT dinámico, ya que toma múltiples direcciones IP
privadas (normalmente entregadas mediante DHCP) y las traduce a una única dirección IP pública
utilizando diferentes puertos. Esto se conoce también como PAT (Port Address Translation - Traducción
de Direcciones por Puerto), NAT de única dirección o NAT multiplexado a nivel de puerto. El uso de PAT
permite que con solo una dirección pública puedan hacerse aprox. 65 mil traducciones.
Solapamiento
Cuando las direcciones IP utilizadas en la red privada son direcciones IP públicas en uso en otra red, el
ruteador posee una tabla de traducciones en donde se especifica el reemplazo de éstas con una única
dirección IP pública. Así se evitan los conflictos de direcciones entre las distintas redes.
Unidad 3: Capa de interred – Encaminamiento y Congestión.
Encaminamiento
Encaminamiento (o enrutamiento, ruteo) es la función de buscar un camino entre todos los posibles en
una red de paquetes cuyas topologías poseen una gran conectividad. Dado que se trata de encontrar la
mejor ruta posible, lo primero será definir qué se entiende por mejor ruta y en consecuencia cuál es la
métrica que se debe utilizar para medirla.
Algoritmo de enrutamiento
Es la porción de software de la capa de red encargada de decidir la línea de salida por la que se
transmitirá un paquete de entrada. Si la subred usa datagramas de manera interna, esta decisión debe
tomarse cada vez que llega un paquete de datos, dado que la mejor ruta podría haber cambiado desde
la última vez (dependiendo de la métrica a usar). Si la subred utiliza circuitos virtuales internamente, las
decisiones de enrutamiento se toman sólo al establecerse un circuito virtual nuevo (dado que en lo
sucesivo los paquetes seguirán la ruta previamente establecida), a esto se lo denomina enrutamiento de
sesión.
Uno de ellos maneja cada paquete conforme llega, buscando en las tablas de enrutamiento la
línea de salida por la cual lo enviará (Este proceso se conoce como reenvío).
El otro proceso es el responsable de llenar y actualizar las tablas de enrutamiento con las cuales
tomará las decisiones a la hora de realizar un reenvío (Aquí se utiliza el algoritmo de
enrutamiento).
Métrica de la red
Puede ser por ejemplo el número de saltos necesarios para ir de un nodo a otro. Aunque ésta no se trata
de una métrica óptima ya que supone “1” para todos los enlaces, es sencilla y suele ofrecer buenos
resultados.
Otro tipo es la medición del retardo de tránsito entre nodos vecinos, en la que la métrica se expresa en
unidades de tiempo y sus valores no son constantes sino que dependen del tráfico de la red.
Mejor Ruta
Entendemos por mejor ruta aquella que cumple las siguientes condiciones:
La idea es armar un grafo de la subred, en el que cada nodo representa un enrutador y cada arco del
grafo una línea de comunicación. Para elegir una ruta entre un par dado de enrutadores, el algoritmo
simplemente encuentra en el grafo la ruta más corta entre ellos. Una métrica es la cantidad de saltos,
sin embargo existen muchas otras métricas como el retardo entre cada enlace al enviar un paquete de
prueba cada una hora, con lo que la métrica sería la velocidad y la ruta más corta sería la más rápida.
Inundación
Otro algoritmo estático es la inundación, en la que cada paquete de entrada se envía por cada una de las
líneas de salida, excepto por aquella en la que llego. La inundación evidentemente genera grandes
cantidades de paquetes duplicados de hecho la cantidad es infinita a menos que se tomen medidas
(como colocar un contador en el paquete que se disminuya en cada salto y al llegar a 0 se descarte, o
llevar un registro de los paquetes enviados para evitar enviarlos por segunda vez, etc.). Una variación de
la inundación es la inundación selectiva, en la que los enrutadores no envían cada paquete de entrada
por todas las líneas, si no sólo por aquellas que van aproximadamente en la dirección correcta. La
inundación no es un proceso muy utilizado y tiene aplicaciones en el campo militar (donde un conjunto
de routers podrían romperse en cualquier momento) y en bases de datos distribuidas donde deben
generarse actualizaciones concurrentes.
Los algoritmos de enrutamiento por vector distancia operan haciendo que cada enrutador mantenga
una tabla con las mejores distancias conocidas a cada destino, y la línea que se puede usar para llegar
ahí. Estas tablas se actualizan intercambiando información con los vecinos. Este algoritmo dinámico fue
utilizado en ARPANET y en internet con el nombre de RIP (Routing Information Protocol). Cada router
mantiene una tabla de enrutamiento indizada por, y conteniendo registro de, cada router de la subred.
Esta entrada comprende dos partes, la línea preferida de salida hacia ese destino y una estimación del
tiempo o distancia a ese destino.
Supongamos que el retardo se utiliza como métrica, un router envía a todos sus vecinos un paquete ECO
y mantiene una tabla con los resultados de las demoras en recibir la respuesta de sus vecinos. A su vez
recibe una lista similar de cada vecino, con lo que si el router A quiere llegar a C y tiene que pasar por B,
el router A puede estimar la demora en llegar a C con solo sumar las demoras A->B y B->C. Los paquetes
de ECO son enviados cada una cierta cantidad de mseg para mantener actualizadas las tablas.
Cuenta hasta infinito: La cuenta infinito es un problema, que ocurre en los algoritmos de vector
distancia, imaginemos 3 routes A-B-C.
A a un salto de B
B a un salto de C
Se cae A, y entonces B le dice a C que A se cayó, pero C le responde a B diciéndole que él conoce
una ruta a A que está a 2 saltos de él (sin saber que B está contenido en esa ruta), entonces B
dice “si C esta a 2 saltos de A y yo a 1 salto de C, entonces yo estoy a 3 de A” y entonces C dice lo
mismo y queda a 4 saltos de A y así se produce un conteo hasta infinito. (Recordar que en vector
distancia los routers no conocen la topología de la red y esta es la causa por la que el problema
ocurre).
Soluciones:
o Contadores que limiten la cantidad de saltos para evitar la cuenta infinita.
o El horizonte dividido es otra forma de evitar este problema, consiste en prohibir a un
router publicar una ruta por la misma interfaz por la que se aprendió en primer lugar. Ej.
A aprende la ruta hacia C a través de B, entonces A no puede mandar por su interfaz de
conexión con B esa ruta. Cualquiera diría que no hay problema porque la ruta B-C es
más corta que la ruta B-A-B-C, pero si B-C se cae se producirá un conteo infinito a través
de la ruta publicada por A (dado que B no sabe que está incluido en esa ruta).
o Envenenamiento de ruta, cuando A se cae, B publica que la ruta hacia A tiene un costo
infinito de difusión (esto se realiza durante un tiempo, y luego se borra a A de la tabla).
o Triggered Updates, son actualizaciones por eventos que obligan a un router a enviar una
difusión al momento de recibir malas noticias en vez de esperar al próximo período de
difusión.
El algoritmo de enrutamiento por estado del enlace, fue utilizado como reemplazo al vector distancia
para subsanar los problemas que este tenía como la alta demora en converger (El proceso de
convergencia es el proceso por el cual los routers van armando las tablas de enrutamiento y se van
conociendo, la convergencia termina cuando todos los routers se conocen y han armado sus respectivas
tablas).
El concepto en que se basa el enrutamiento por estado del enlace es sencillo y puede enunciarse en
cinco partes:
Descubrir a sus vecinos y conocer sus direcciones de red: Esto lo realiza cada router enviando
un paquete HELLO especial a cada línea punto a punto. Se espera que el router del otro extremo
regrese una respuesta indicando quién es.
Medir el retardo o costo para cada uno de sus vecinos: La manera más directa de determinar
este retardo es enviar un paquete ECHO especial a través de la línea y una vez que llegue al otro
extremo, éste debe ser regresado inmediatamente. Si se mide el tiempo de ida y vuelta y se
divide entre dos, el router emisor puede tener una idea razonable del retardo de esa línea.
Construir un paquete que indique todo lo que se acaba de aprender (estado de enlace): El
paquete comienza con la identidad del emisor, un número de secuencia, una edad y una lista de
vecinos junto con el retardo para cada vecino. Estos paquetes pueden ser construidos de
manera periódica o cuando ocurra algún evento significativo (como caídas o reactivaciones de
vecinos o cambios en sus propiedades).
Distribución de los paquetes de estado del enlace a los demás routers: Se utiliza inundación
para distribuir los paquetes de estado del enlace a fin de mantener controlada la inundación
cada paquete contiene un número de secuencia que se incrementa con cada paquete enviado
(cuando llega un paquete de estado de enlace se verifica contra la lista de paquetes recibidos y
se compara el ID de origen y su secuencia, con la última secuencia recibida para ese ID). Pero
esta solución tiene un problema y es que los números de secuencia podrían reiniciarse (se
terminan los números y comienza desde 0), para evitar esto, el número de secuencia es un
número de 32 bits. Otro problema podría ocurrir si el router cae y vuelve a levantarse y pierde
su número de secuencia, o si este se corrompe por alguna razón, para ellos se utiliza un número
de edad en cada paquete el cual es un contador que disminuye una vez por segundo y si la edad
llega a 0 el paquete es descartado.
Calcular la ruta más corta a todos los demás enrutadores: Una vez que el enrutador ha
acumulado un grupo completo de paquetes de estado de enlace, puede construir el grafo de la
subred completa porque todos los enlaces están representados y, ejecutar el algoritmo de
Dijkstra para construir la ruta más corta a todos los destinos posibles, estos resultados se
instalan en las tablas de enrutamiento y la operación se inicia normalmente.
Estado de Enlace vs Vector Distancia
Enrutamiento Jerárquico
A medida que crece el tamaño de las redes, también lo hacen, de manera proporcional, las tablas de
enrutamiento de los routers. Las tablas que siempre crecen no sólo consumen memoria del router, sino
que también se necesita más tiempo de CPU para examinarlas y más ancho de banda para enviar
información de estado entre routers. Cuando se utiliza enrutamiento jerárquico, los routers se dividen
en lo que llamaremos regiones, donde cada router conoce todos los detalles para enrutar paquetes a
destinos dentro de su propia región, pero no sabe nada de la estructura interna de otras regiones.
Cuando se interconectan diferentes redes, es natural considerar cada una como región independiente a
fin de liberar a los routers de una red de la necesidad de conocer la estructura topológica de las demás.
Desgraciadamente, estas ganacias de espacio no son gratuitas, se paga un precio que es una ruta de
longitud mayor. Cuando una red se vuelve muy grande surge la interesante pregunta de ¿cuántos
niveles tener en la jerarquía? Y el número óptimo de niveles para una subred de N enrutadores es de
ln(N) y se requieren un total de "𝑒 ∗ ln(𝑁)" entradas por router y el aumento de la longitud media de
las rutas causado por el enrutamiento jerárquico con este número de niveles, es tan pequeño que por lo
general es aceptable.
Difusión
El envío simultáneo de un paquete a todos los destinos de una subred se denomina difusión.
Un método de difusión que no requiere características especiales de la subred es que el
origen simplemente envía un paquete distinto a todos los destinos, pero este método no
solo desperdicia ancho de banda, sino que también requiere que el origen tenga una lista
completa de todos los destinos.
La inundación es otro candidato obvio, el problema es que genera demasiados paquetes y
consume demasiado ancho de banda.
Un tercer algoritmo es el enrutamiento multidestino, donde cada paquete contiene una lista
de destinos o un mapa de bits que indica los destinos deseados. Cuando un paquete llega al
router, éste revisa todos los destinos para determinar el grupo de líneas de salida que
necesitará y genera una nueva copia del paquete para cada línea de salida e incluye en cada
paquete solo los destinos que utilizarán esa línea. Después de una cantidad suficiente de
saltos, cada paquete llevará sólo un destino, así que puede tratarse como un paquete
normal.
Un cuarto algoritmo es el árbol de expansión, que es un subgrupo de la subred que incluye
todos los routers pero no contiene ciclos, si cada router conoce cuales de sus líneas
pertenecen al árbol de expansión, puede copiar el paquete de entrada difundido en todas
las líneas del árbol de expansión (excepto aquella por las que llegó). La gran desventaja de
este algoritmo que es los routers deben tener conocimiento sobre el árbol de expansión.
El último algoritmo es denomina reenvío por ruta invertida, cuando llega un paquete
difundido a un router, éste lo revisa para ver si llegó por la línea normalmente usada para
enviar paquetes al “origen de la difusión”. De ser así hay excelentes posibilidades de que el
paquete difundido haya seguido la mejor ruta desde el router y, por lo tanto, sea la primer
copia en llegar al router. Si este es el caso, el router reenvía copias del paquete a todas las
líneas, excepto a aquellas por las que llegó. Sin embargo, si el paquete difundido llegó por
una línea diferente de la preferida, el paquete se descarta como probable duplicado. La
ventaja principal de este algoritmo es su eficiencia y fácil implementación, ya que no
requiere que los routers conozcan arboles de expansión ni listas de destinos o mapas de bits
o mecanismos especiales para detener el proceso como la inundación.
Multidifusión
Puede existir la necesidad de enviar mensajes a grupos bien definidos de tamaño numéricamente grade
de equipos pero pequeños en comparación con el tamaño de la red. El envío de mensajes a uno de tales
grupos se denomina multidifusión y para su uso se necesita administrar grupos de multidifusión. Se
necesita una manera de crear y destruir grupos y un mecanismo para que los procesos se unan a los
grupos y salgan de ellos. La forma de realizar esta tarea no le concierne al algoritmo de multidifusión, lo
que si le concierne es que cuando un proceso se una a un grupo, informe a su host de este hecho. Es
importante que los routers sepan cuáles de sus hosts perteneces a qué grupos.
Para realizar el enrutamiento por multidifusión, cada router calcula un árbol de expansión que cubre a
todos los demás routers de la subred. Cuando un proceso envía un paquete a un grupo, el primer router
en recibirlo examina su árbol de expansión y lo recorta, eliminando todas las líneas que conduzcan a
host que no sean miembros del grupo. Luego envía los paquetes de multidifusión a través del árbol de
expansión apropiado (el recortado).
Una desventaja potencial de este algoritmo es que no escala bien en redes grandes. Supongamos que
una red tiene n grupos, cada uno con un promedio de m miembros. Por cada grupo se deben almacenar
m árboles de expansión recortados, lo que da un total de m*n árboles (uno por cada router y por cada
grupo).
Una forma de solucionar este problema es utilizar árboles de núcleo, se calcula un solo árbol por cada
grupo con la raíz (núcleo) cerca de la mitad del grupo. Para enviar un mensaje de multidifusión un host
envía el mensaje al núcleo y de ahí se hace multidifusión. Aunque este árbol no será el óptimo, la
cantidad de árboles a almacenar se reduce a solo n (un árbol por grupo).
Sistemas Autónomos
Los Sistemas Autónomos se comunican entre sí mediante routers BGP y se intercambian el tráfico de
Internet que va de una red a la otra. A su vez cada Sistema Autónomo es como una Internet en
pequeño, ya que su rol se llevaba a cabo por una sola entidad, típicamente un Proveedor de Servicio de
Internet (ISP) o una gran organización con conexiones independientes a múltiples redes, las cuales se
apegaban a una sola y clara política de definición de trayectorias definida.
Técnicamente un Sistema Autónomo se define como “un grupo de redes IP que poseen una política de
rutas propia e independiente”. Esta definición hace referencia a la característica fundamental de un
Sistema Autónomo: realiza su propia gestión del tráfico que fluye entre él y los restantes Sistemas
Autónomos que forman Internet. Aun considerando que un ISP puede soportar múltiples sistemas
autónomos, Internet solo considera la política de definición de trayectorias establecida por el ISP. Por lo
tanto, el ISP deberá contar con un ASN registrado. Un número de AS o ASN se asigna a cada AS para ser
utilizado por el esquema de encaminamiento BGP, este número identifica de manera única a cada red
dentro del Internet.
Los sistemas autónomos pueden agruparse en tres categorías, dependiendo de sus conexiones y modo
de operación.
El Protocolo de Pasarela Interno, hace referencia a los protocolos usados dentro de un sistema
autónomo. Los protocolos de pasarela internos se pueden dividir en dos categorías: Protocolo de
enrutamiento Vector Distancia y Protocolo de enrutamiento Estado de Enlace
Funcionamiento RIP
RIP V1 utiliza udp/520 para enviar sus mensajes en propagación Broadcast. RIP V2 utiliza
propagación Multicast 224.0.0.9.
RIP calcula el camino más corto hacia la red de destino usando el algoritmo del vector
de distancias. La distancia o métrica está determinada por el número de saltos de router
hasta alcanzar la red de destino.
RIP tiene una distancia administrativa de 120 (la distancia administrativa indica el grado
de confiabilidad de un protocolo de enrutamiento, por ejemplo EIGRP tiene una
distancia administrativa de 90, lo cual indica que a menor valor mejor es el protocolo
utilizado)
RIP no es capaz de detectar rutas circulares, por lo que necesita limitar el tamaño de la
red a 15 saltos. Cuando la métrica de un destino alcanza el valor de 16, se considera
como infinito y el destino es eliminado de la tabla (inalcanzable).
Las rutas tienen un tiempo de vida de 180 segundos. Si pasado este tiempo, no se han
recibido mensajes que confirmen que esa ruta está activa, se pone inactiva asignándole
una métrica de 16 (temporizador de invalidez). Estos 180 segundos, corresponden a 6
intercambios de información. Si pasan 240s de la entrada de la ruta en la tabla de
encaminamiento y no se han recibido actualizaciones para esta ruta, se elimina
(temporizador de purga).
Ventajas e Inconvenientes
Por otra parte, tiene la desventaja que, para determinar la mejor métrica, únicamente
toma en cuenta el número de saltos (por cuántos routers o equipos similares pasa la
información); no toma en cuenta otros criterios importantes, como por ejemplo ancho
de banda de los enlaces. Por ejemplo, si tenemos una métrica de 2 saltos hasta el
destino con un enlace de 64 kbps y una métrica de 3 saltos, pero con un enlace de 2
Mbps, lamentablemente RIP tomara el enlace de menor número de saltos aunque sea el
más lento.
Mensajes RIP
Los mensajes tienen una cabecera que incluye el tipo de mensaje y la versión del
protocolo RIP, y un máximo de 25 entradas RIP de 20 bytes.
OSPF es probablemente el tipo de protocolo IGP más utilizado en grandes redes. Puede
operar con seguridad usando MD5 para autentificar a sus puntos antes de realizar nuevas
rutas y antes de aceptar avisos de enlace-estado. Como sucesor natural de RIP, acepta VLSM
y CIDR desde su inicio. A lo largo del tiempo, se han ido creando nuevas versiones, como
OSPFv3 que soporta IPv6 o como las extensiones multidifusión para OSPF (MOSPF), aunque
no están demasiado extendidas. OSPF puede "etiquetar" rutas y propagar esas etiquetas por
otras rutas.
Una red OSPF se puede descomponer en regiones (áreas) más pequeñas. Hay un área
especial llamada área backbone que forma la parte central de la red y donde hay otras áreas
conectadas a ella. Las rutas entre diferentes áreas circulan siempre por el backbone, por lo
tanto todas las áreas deben conectar con el backbone. Si no es posible hacer una conexión
directa con el backbone, se puede hacer un enlace virtual entre redes.
Tráfico de enrutamiento
OSPF mantiene actualizada la capacidad de enrutamiento entre los nodos de una red
mediante la difusión de la topología de la red y la información de estado-enlace de sus
distintos nodos. Esta difusión se realiza a través de varios tipos de paquetes:
Paquetes Hello (tipo 1). Cada router envía periódicamente a sus vecinos un paquete
que contiene el listado de vecinos reconocidos por el router, indicando el tipo de
relación que mantiene con cada uno.
OSPF organiza un sistema autónomo (AS) en áreas. Estas áreas son grupos lógicos de routers
cuya información se puede resumir para el resto de la red. Un área es una unidad de
enrutamiento, es decir, todos los routers de la misma área mantienen la misma información
topológica en su base de datos de estado-enlace (Link State Database): de esta forma, los
cambios en una parte de la red no tienen por qué afectar a toda ella, y buena parte del
tráfico puede ser "parcelado" en su área.
Routers
Un paquete generado en la red será enviado, de forma jerárquica, a través del área si su
destinación es conocida por el emisor; al ABR del área correspondiente si no la destinación
no es intra-area; este lo enviará al router del área de destino, si este se encuentra en el AS;
o al ASBR si la destinación del paquete es exterior a la red (desconocida por el ABR).
Tipos de Áreas
Área Backbone
El backbone, también denominado área cero, forma el núcleo de una red OSPF. Es la
única área que debe estar presente en cualquier red OSPF, y mantiene conexión, física o
lógica, con todas las demás áreas en que esté particionada la red. La conexión entre un
área y el backbone se realiza mediante los ABR, que son responsables de la gestión de
las rutas no-internas del área (esto es, de las rutas entre el área y el resto de la red).
Área stub
Un área stub es aquella que no recibe rutas externas. Las rutas externas se definen
como rutas que fueron inyectadas en OSPF desde otro protocolo de enrutamiento. Por
lo tanto, las rutas de segmento necesitan normalmente apoyarse en las rutas
predeterminadas para poder enviar tráfico a rutas fuera del segmento.
Área not-so-stubby
También conocidas como NSSA, constituyen un tipo de área stub que puede importar
rutas externas de sistemas autónomos y enviarlas al backbone, pero no puede recibir
rutas externas de sistemas autónomos desde el backbone u otras áreas.
Mensajes
Paquete Hello
IP Header 20 bytes
OSPF Header 24 bytes
Máscara de red 4 bytes
Options Router Priority
Intervalo de Hello 2 bytes
Intervalo de Router muerto 4 bytes
Router designado 4 bytes
Router designado Backup 4 bytes
1er Nid (ID vecino) 4 bytes
Topologías Soportadas
Punto a punto (Master – Slave) (conexión serial entre dos routers, DTE y DCE)
Master slave
Router designado
Hub
El Exterior Gateway Protocol (EGP) es un protocolo estándar usado para intercambiar información de
enrutamiento entre sistemas autónomos. Los routers EGP sólo pueden retransmitir información de
accesibilidad para las redes de su AS. El router debe recoger esta información, habitualmente por medio
de un IGP, usado para intercambiar información entre routers del mismo AS.
Se basa en el sondeo periódico empleando intercambios de mensajes "Hello/I Hear You", para
monitorizar la accesibilidad de los vecinos y para sondear si hay solicitudes de actualización. Restringe
los routers exteriores al permitirles anunciar sólo las redes de destino accesibles en el AS del router. De
esta forma, un router exterior que usa EGP pasa información a sus vecinos EGP pero no anuncia la
información de accesibilidad de estos (los routers son vecinos si intercambian información de
encaminamiento) fuera del AS.
Características
Soporta un protocolo NAP ("Neighbor Acquisition Protocol”). Dos routers se pueden considerar
vecinos si están conectadas por una red que es transparente para ambas. No especifica la forma
en que un router decide inicialmente que quiere ser vecina de otra. Para convertirse en vecina,
debe enviar un mensaje "Acquisition confirm" como respuesta a un Acquisition Request. Este
paso es necesario para obtener información de encaminamiento de otro router.
Soporta un protocolo NR ("Neighbor Reachability"). El router lo usa para mantener información
en tiempo real sobre la accesibilidad de sus vecinos. El protocolo EGP proporciona dos tipos de
mensajes para ese fin: un mensaje Hello y un mensaje I Hear You (respuesta a Hello).
Soporta mensajes de actualización (o mensajes NR) que llevan información de encaminamiento.
No se requiere ningún router para enviar mensajes NR a otro router, excepto como respuesta a
una petición de sondeo ("poll request").
Tipos
Para realizar estas tres funciones básicas, EGP define 10 tipos de mensajes:
Entre los sistemas autónomos de los ISP se intercambian sus tablas de rutas a través del protocolo BGP.
Este intercambio de información de encaminamiento se hace entre los routers externos de cada sistema
autónomo. Estos routers deben soportar BGP. Se trata del protocolo más utilizado para redes con
intención de configurar un EGP (external gateway protocol)
El protocolo de gateway fronterizo (BGP) es un ejemplo de protocolo de gateway exterior (EGP). BGP
intercambia información de encaminamiento entre sistemas autónomos a la vez que garantiza una
elección de rutas libres de bucles. Es el protocolo principal de publicación de rutas utilizado por las
compañías más importantes de ISP en Internet. BGP4 es la primera versión que admite encaminamiento
entre dominios sin clase (CIDR) y agregado de rutas. A diferencia de los protocolos de Gateway internos
(IGP), como RIP, OSPF y EIGRP, no usa métricas como número de saltos, ancho de banda, o retardo. En
cambio, BGP toma decisiones de encaminamiento basándose en políticas de la red, o reglas que utilizan
varios atributos de ruta BGP. Estas políticas deben tenerse en cuenta dado que un SA podría desear no
permitir el paso de paquetes a través de él, si son ajenos a él (no ser atravesado como parte de una ruta
de un paquete en internet).
Resde Stub, solo tiene una conexión con el grafo BGP. No pueden utilizarse para transportar el
tráfico porque no existe nadie del otro lado.
Redes Multiconectadas, podrían usarse para transportar el tráfico excepto que lo rechacen.
Redes de tránsito, están dispuestas a ocuparse de paquetes de terceros, posiblemente con
algunas restricciones y normalmente por pago.
BGP utiliza conexiones TCP y opera en forma similar a los algoritmos de vector distancia, aunque son
conocidos como algoritmos de vector ruta (porque en vez de guardar la distancia, guardan la ruta
utilizada y, en lugar de pasarle a cada vecino el costo de cada destino, le pasa las rutas que utiliza para
llegar).
Luego que un router conoce todas las rutas de sus vecinos, las examina para ver cuál es la mejor para un
destino determinado, eliminado aquellas rutas que lo contengan a él o que violen cualquiera de sus
políticas. De las restantes se elije la de menor distancia.
BGP solo reconoce routers de borde, cualquier router interno a un SA no es reconocido por BGP.
Supongamos los SA con los números 100, 200 y 300. El SA 200 tiene routers de borde, uno que lo
conecta a 100 y otro en el otro extremo que lo conecta a 300, los routers de 200 estan interconectados
entre sí mediante una LAN que funciona con OSPF.
Cuando el router de borde de 100 quiera enviar algo a 300, primero enviará los datos a través del
protocolo BGP al router de 200 con el cual está directamente conectado, este router enviará datos a
través de su LAN mediante el protocolo OSPF hasta su otro router de borde, el cual mediante el
protocolo BGP enviará los datos a 300. (Tener en cuenta que los routers de borde tiene cargados 2
protocolos, el BGP y cualquiera que se use para regular el tráfico de la LAN interna, OSPF, RIP, etc.)
Temas del programa no abordados: Encaminamiento en la Internet (Supongo que se usa BGP).
Routers
Fuentes de configuración
NVRAM: La RAM no volátil almacena la copia de respaldo del archivo de configuración de inicio
del router.
Flash: ROM borrable y reprogramable que retiene la imagen y el microcódigo del sistema
operativo. Permite actualizaciones de SW.
ROM: Diagnósticos de encendido, un programa bootstrap y software mínimo del sistema
operativo.
Interfaces: Sirven como conexiones de red, en la motherboard o en módulos de interfaz
separados, a través de las cuales los paquetes entran y salen de un router.
Relación de términos
Cuando se conecta un route, la ROM ejecuta bootstrap. Este programa realiza algunas pruebas y
después carga el sw IOS en memoria.
El procesador de comandos (EXEC) recibe y ejecutacomandos.
El router utiliza la RAM para almacenar un archivo de configuración activo y las tablas de mapas
de red y las listas de direcciones de enrutamiento.
En la NVRAM se guarda una copia de manera permanente del archivo de configuración; cada vez
que se inicializa un router se accede a este archivo y se carga en la memoria principal.
El archivo de configuración contiene la información global, de proceso y de interfaz que afecta al
funcionamiento del router y sus puertos de interfaz.
Normalmente, la imagen del IOS se ejecuta desde la RAM y se carga desde una de las distintas
fuentes de entrada.
Modos de router
Nombrar al router.
Colocar una contraseña de acceso al router y habilitar el telnet si se desea.
Configurar las interfaces Ethernet.
o Asignarles una IP y una máscara de subred
o Levantarlas.
Configurar las interfaces seriales
o Asignarles una IP y una máscara de subred.
o Si es el DCE colocar el Clock rate a utilizar.
o Levantarlas.
Tablas de enrutamiento
o Estática
Agregar las rutas manualmente indicando interfaz de salida y prox. Salto para
cada IP de red.
o Dinámicamente
Habilitar el protocolo de enrutamiento (RIP).
Agregar a todas las redes directamente conectadas al router.
Congestión
Cuando hay demasiados paquetes presentes en la subred o en una parte de ella, hay una degradación
del desempeño. Esta situación se denomina congestión. Cuando la cantidad de paquetes en la subred
esta dentro de su capacidad de conducción, todos se entregan (salvo una pequeña parte por errores de
transmisión). Sin embargo a medida que aumenta el tráfico los routers ya no pueden manejarlo y
comienzan a perder paquetes, con mucho tráfico el desempeño se desploma y casi no hay entrega de
paquetes.
La congestión puede ocurrir por varias razones. Si de manera repentina comienzan a llegar cadenas de
paquetes por tres o cuatro líneas de entrada y todas necesitan la misma línea de salida, se generará una
cola y si no existe memoria suficiente para almacenarlos, muchos de ellos se perderán. Los procesadores
lentos también pueden causar congestión dado que demoran mucho en realizar sus tareas y las colas
aumentan. Las líneas de poco ancho de banda también podrían causar congestión.
Actualizar una parte del sistema (memoria, procesador, ancho de banda, etc.) simplemente mejora un
poco pero mueve el cuello de botella hacia otra parte, lo que se necesita es una mejora equilibrada del
sistema.
Cabe aclarar la diferencia entre el control de congestión y el control de flujo. El control de congestión se
ocupa de asegurar que la subred sea capaz de transportar el tráfico ofrecido, es un asunto global. En
contraste, el control de flujo se relaciona con el tráfico punto a punto entre un emisor y un receptor. Su
tarea es asegurar que un emisor rápido no pueda transmitir datos de manera continua a una velocidad
mayor que la que puede absorber el receptor.
Muchos problemas de los sistemas complejos pueden analizarse desde el punto de vista de una teoría
de control. Este método conduce a dividir a todas las soluciones en dos grupos:
de ciclo abierto: Las soluciones de ciclo abierto intentan resolver problemas mediante un buen
diseño, para asegurarse en primer lugar de que estos no ocurran. Una vez que el sistema está en
funcionamiento, no se hacen correcciones a medio camino y toman decisiones
independientemente del estado actual de la red (su objetivo es reducir al mínimo la congestión
desde el inicio, en lugar de permitir que ocurra y reaccionar después).
de ciclo cerrado: En contraste las soluciones de ciclo cerrado se basan en el concepto de un ciclo
de realimentación. Este método tiene tres partes:
o Monitorear el sistema y detectar cuándo y dónde ocurren las congestiones: Pueden
utilizarse varias métricas como ser, el % de paquetes descartados por falta de espacio en
buffers, longitud promedio de las colas, % de paquetes cuyo temporizador finaliza y se
tiene que retrasmitir, retardo promedio de paquetes, etc.
o Pasar esta información a lugares en los que puedan llevarse a cabo acciones: La
información puede debe pasarse desde el punto en que se detecta al punto en que
puede hacerse algo para solucionar el problema. Por supuesto que el envío de esta
información en forma de paquetes, aumenta aun más la carga en el momento en que la
red se encuentra saturada. Pero existen soluciones como que cada paquete de
información lleve un bit que indique si existe o no congestión (cuando un router detecta
congestión, comienza a encender el bit de todos los paquetes que salen de él).
o Ajustar la operación del sistema para corregir el problema: Para brindar una solución al
problema, existen dos métodos los cuales son, aumentar los recursos o disminuir la
cargar. Aumentar los recursos podría implicar la activación de una línea de
comunicación auxiliar en caso de falta de ancho de banda. Disminuir la carga podría
implicar que se solicite a los emisores una disminución de la velocidad en a la que
envían los paquetes, o utilizar rutas alternativas y no siempre la ruta óptima, junto con
soluciones más drásticas como negar el servicio a ciertos usuarios.
Una técnica que se utiliza es el control de admisión, una vez detectada la congestión, no se realizan
nuevos circuitos virtuales hasta que esta haya desaparecido. También podrían crearse nuevos circuitos
virtuales por puntos que no estén congestionados (aunque no sean los óptimos).
Subredes de datagramas
Cada router monitoreo el uso de sus líneas de salida y otros recursos. Si el monitoreo de alguno de estos
elementos rebaza un umbral, este elemento (por ej. La línea de salida) queda en estado de
“advertencia”, cada paquete nuevo que llega se revisa en qué estado se encuentra su línea de salida y se
realizan algunas de las siguientes acciones:
Bit de advertencia: Un bit dentro del paquete indica el estado de la línea (por ejemplo si esta
activo indica congestión), este bit puede ser modificado por cualquier router intermedio que
detecte congestión. Al llegar al destino, se revisa el estado del bit y se lo copia en el paquete de
confirmación de recepción, cuando este llega al origen, el mismo revisa el bit y en caso de estar
encendido disminuye la velocidad con la que transmite los datos.
Paquetes reguladores: El router que encuentra congestión regresa un paquete regulador al
origen para indicarle que reduzca el porcentaje de tráfico enviado. Si durante un tiempo no
llegan paquetes reguladores, esto indica que el host puede comenzar a enviar normalmente los
datos.
Paquetes reguladores salto por salto: Si las distancias entre el origen del mensaje y el nodo en
el que se detectó congestión son muy grandes, el envío de un paquete regulador al origen no
siempre es lo óptimo, dado que hasta que este llegue, se seguirán enviando datos a gran
velocidad. La alternativa es que el paquete tenga efecto en cada salto que dé en la red, esto
reduce de manera inmediata la congestión en el punto más problemático, pero genera un gran
uso de buffers por parte de los routers que deben enviar más lento los datos.
Desprendimiento de carga
Consiste en desechar paquetes cuando existe una congestión severa, el problema está en saber qué
paquetes desechar. Para poner en práctica una buena política de descarte, las aplicaciones deben
etiquetar los paquetes para marcar su importancia. La detección temprana aleatoria es una algoritmo
que ayuda a evitar la congestión, se basa en el hecho de que algunos protocolos de transporte como
TCP, reaccionan a la pérdida de paquetes disminuyendo la cantidad de paquetes que se envían en el
origen (lo hacen porque están sobre una conexión segura y la mayoría de las pérdidas de paquetes se
deben al desbordamiento de buffers). El algoritmo consiste en eliminar paquetes de forma aleatoria de
las colas que se encuentre en un nivel mayor al normal.
Control de fluctuación
Calidad de Servicio
QoS o Calidad de Servicio (Quality of Service, en inglés) son las tecnologías que garantizan la transmisión
de cierta cantidad de datos en un tiempo dado (throughput). Calidad de servicio es la capacidad de dar
un buen servicio. Es especialmente importante para ciertas aplicaciones tales como la transmisión de
video o voz.
Muchas cosas le ocurren a los paquetes desde su origen al destino, resultando los siguientes problemas
vistos desde el punto de vista del transmisor y receptor:
Paquetes sueltos: Los ruteadores pueden fallar en liberar algunos paquetes si ellos llegan
cuando los buffers ya están llenos. Algunos, ninguno o todos los paquetes pueden quedar
sueltos dependiendo del estado de la red, y es imposible determinar qué pasará de antemano.
La aplicación del receptor puede preguntar por la información que será retransmitida
posiblemente causando largos retardos a lo largo de la transmisión.
Retardos: Puede ocurrir que los paquetes tomen un largo periodo de tiempo en alcanzar su
destino, debido a que pueden permanecer en largas colas o tomen una ruta menos directa para
prevenir la congestión de la red. En algunos casos, los retardos excesivos pueden inutilizar
aplicaciones tales como VoIP o juegos en línea.
Jitter: Los paquetes del transmisor pueden llegar a su destino con diferentes retardos. Un
retardo de un paquete varía impredeciblemente con su posición en las colas de los ruteadores a
lo largo del camino entre el transmisor y el destino. Esta variación en retardo se conoce como
jitter y puede afectar seriamente la calidad del flujo de audio y/o vídeo.
Entrega de paquetes fuera de orden: Cuando un conjunto de paquetes relacionados entre sí
son encaminados a Internet, los paquetes pueden tomar diferentes rutas, resultando en
diferentes retardos. Esto ocasiona que los paquetes lleguen en diferente orden de como fueron
enviados. Este problema requiere un protocolo que pueda arreglar los paquetes fuera de orden
a un estado isócrono una vez que ellos lleguen a su destino. Esto es especialmente importante
para flujos de datos de vídeo y VoIP donde la calidad es dramáticamente afectada tanto por
latencia y perdida de sincronía.
Errores: A veces, los paquetes son mal dirigidos, combinados entre sí o corrompidos cuando se
encaminan. El receptor tiene que detectarlos y justo cuando el paquete es liberado, pregunta al
transmisor para repetirlo así mismo.
Requerimientos
Un flujo es un conjunto de paquetes que van dese un origen a un destino. En una red orientada a la
conexión, todos los paquetes que pertenezcan a un flujo siguen la misma ruta; en una red sin conexión,
pueden seguir diferentes rutas. La necesidad de cada flujo se puede caracterizar por cuatro parámetros
principales: Confiabilidad, Retardo, Fluctuación y Ancho de Banda. Estos parámetros en conjunto
determinan la QoS que el flujo requiere.
No existe una sola técnica que permita alcanzar una buena calidad de servicio, por lo que muchas veces
se combinan varias de ellas. A continuación se describen algunas técnicas que permiten mejorar la QoS.
Sobreaprovisionamiento
Una solución fácil es proporcionar la suficiente capacidad de router, espacio de buffer y ancho de banda
como para que los paquetes fluyan con facilidad. El problema con esta solución es que es costosa.
Almacenamiento en buffer
Los flujos pueden almacenar en el buffer en el lado del receptor antes de ser entregados. Almacenarlos
en el buffer no afecta la confiabilidad o el ancho de banda, e incrementa el retardo, pero atenúa la
fluctuación. Para el video o audio bajo demanda, la fluctuación es el problema principal, por lo tanto,
esta técnica es muy útil.
Modelado de tráfico
El modelado de tráfico consiste en regular la tasa promedio (y las ráfagas) de la transmisión de los datos.
Cuando se establece una conexión, el usuario y la subred (es decir, el cliente y la empresa portadora)
acuerdan cierto patrón de tráfico (es decir, forma) para este circuito. Algunas veces esto se llama
“acuerdo de nivel de servicio”. En tanto el cliente cumpla con su parte del contrato y sólo envíe los
paquetes acordados, la empresa portadora promete entregarlos de manera oportuna. Estos acuerdos
son muy importantes para transferencias en tiempo real que tienen rigurosos requerimientos de QoS. La
empresa portadora controlará que el cliente cumpla con el acuerdo.
Imagínese una cubeta con un pequeño agujero en el fondo. Sin importar la rapidez con que entra agua
en la cubeta, el flujo de salida tiene una tasa constante cuando hay agua en la cubeta y una tasa 0
cuando la cubeta está vacía. Además, una vez que se llena la cubeta, cualquier agua adicional que entra
se derrama por los costados y se pierde.
Cada host está conectado a la red mediante una interfaz que contiene una cubeta de goteo, es decir,
una cola interna finita. Si llega un paquete cuando la cola está llena, este paquete se descarta.
Cuando los paquetes son del mismo tamaño (ATM por ejemplo), el algoritmo puede utilizarse como fue
descripto, sin embargo, cuando se utilizan paquetes de tamaño variable, el algoritmo debería ser
utilizado permitiendo un número fijo de bytes, en lugar de un número fijo de paquetes por unidad de
tiempo.
En muchas aplicaciones es mejor permitir que la salida se acelere un poco cuando llegan ráfagas
grandes, por lo que se necesita un algoritmo más flexible, de preferencia uno que no pierda datos.
Este algoritmo contiene tokens generados por un reloj cada ∆𝑻 seg. Para transmitir un paquete se debe
capturar y destruir un token. Este algoritmo permite que puedan enviar ráfagas de hasta n paquetes
(tamaño máximo de la cubeta) y permitir cierta irregularidad en el flujo de salida junto con una
respuesta más rápida a las ráfagas de entrada repentinas. El algoritmo con tokens, descarta los tokens
(capacidad de transmisión) no los paquetes cuando se llena la cubeta. (En otras palabras un token es
solo un contador el cual se incrementa en 1 con cada pulso de reloj y de disminuye en 1 con cada envío
de un paquete. Si durante un tiempo no se enviaron paquetes, este contador tendrá un número
elevado, si luego de esto llega una ráfaga de n paquetes, podrán enviarse muchos paquetes juntos y
luego volver a una tasa constante).
Reservación de recursos
Para regular el tráfico se necesita obligar a todos los paquetes de un flujo a seguir una misma ruta, como
consecuencia se debe configurar algo similar a un circuito virtual del origen al destino, y todos los
paquetes que pertenecen al flujo deberán seguir esta ruta. Una vez que se tiene una ruta específica para
un flujo, es posible reservar recursos a lo largo de esa ruta para asegurar que la capacidad necesaria esté
disponible. Se pueden reservar tres tipos de recursos:
Ancho de banda, si un flujo requiere 1Mbps y la línea saliente tiene una capacidad de 2 Mbps,
tratar de dirigir tres flujos por esa línea no va a funcionar. Por lo tanto, reservar ancho de banda
significa no sobrecargar ninguna línea de salida.
Espacio en buffer, es posible reservar alguno buffers para un flujo específico de manera que éste
no tenga que competir con otros flujos para obtener espacio en buffer (si no tiene espacio se
descartan sus paquetes).
Ciclos de CPU, para procesar un paquete se necesita tiempo del CPU del router, por lo que un
router solo puede procesar una cierta cantidad de paquetes por segundo. Para asegurar el
procesamiento oportuno de cada paquete, es necesario verificar que la CPU no esté
sobrecargada.
Control de admisión
La decisión de aceptar o rechazar un flujo no se trata simplemente de comparar el ancho de banda, los
buffers o los ciclos requeridos por el flujo con la capacidad excedida del router en esas tres dimensiones.
Es más complicado que eso, dado que por más que las aplicaciones sepan sus exigencias sobre ancho de
banda, no pueden saber nada sobre su necesidad de buffer o de ciclos de CPU, además algunas
aplicaciones pueden estar dispuestas a negociar algunos parámetros, por lo que se busca una forma
diferente de describir a los flujos. Por lo que una forma de caracterizar los flujos es en base a los
parámetros que pueden negociarse (especificación de flujo). Por lo general, el emisor produce una
especificación de flujo que propone los parámetros que le gustaría utilizar. Cada router de la ruta por la
que viajarán los datos modifica los parámetros conforme sea necesario (estas modificaciones son de
reducción, no pueden incrementar el flujo). Cuando se llega al otro extremo se establecen los
parámetros, si un router no puede trabajar con los parámetros ofrecidos, puede rechazar el flujo
entrante.
Herramientas de Administración de Red
ARP
Muestra y modifica las tablas de conversión de direcciones IP en direcciones físicas que usa el protocolo
de resolución de direcciones.
PING
La utilidad ping comprueba el estado de la conexión con uno o varios equipos remotos por medio de los
paquetes de solicitud de eco y de respuesta de eco (ambos definidos en el protocolo de red ICMP) para
determinar si un sistema IP específico es accesible en una red. Es útil para diagnosticar los errores en
redes o enrutadores IP.
Muchas veces se utiliza para medir la latencia o tiempo que tardan en comunicarse dos puntos remotos,
y por ello, se utiliza el término PING para referirse al lag o latencia de la conexión en los juegos en red.
Existe otro tipo, Ping ATM, que se utiliza en las redes ATM (como puede ser una simple ADSL instalada
en casa) y, en este caso, las tramas que se transmiten son ATM (nivel 2 del modelo OSI). Este tipo de
paquetes se envían para probar si los enlaces ATM están correctamente definidos.
TRACERT (Windows) / TRACEROUTE (Linux)
Es una herramienta de diagnóstico de redes que permite seguir la pista de los paquetes que van desde
un host (punto de red) a otro. Se obtiene además una estadística del RTT o latencia de red de esos
paquetes, lo que viene a ser una estimación de la distancia a la que están los extremos de la
comunicación. Esta herramienta se llama traceroute en UNIX y GNU/linux, mientras que en Windows se
llama tracert.
IPCONFIG
ipconfig (internet protocol configuration) en Microsoft Windows es una aplicación de consola que
muestra los valores de configuración de red de TCP/IP actuales y actualiza la configuración de
configuración dinámica de host protocolo DHCP y sistema de nombres de dominio DNS. Existen
herramientas GUI similares denominados winipcfg y wntipcfg también. El ex pre-dates ipconfig. El papel
desempeñado por estas herramientas es similar de diversas implementaciones de ifconfig en UNIX y
sistemas operativos tipo UNIX.
IFCONFIG
Es un programa disponible en varias versiones del sistema operativo UNIX, que permite configurar o
desplegar numerosos parámetros de las interfaces de redes, como la dirección IP (dinámica o estática),
o la máscara de red. Si se llama sin argumentos suele mostrar la configuración vigente de las interfaces
de red activas, con detalles como la dirección MAC o el tráfico que ha circulado por las mismas hasta el
momento.
El programa ifconfig tiene muchos más parámetros que los descritos hasta ahora. Generalmente se
ejecuta en la forma: ifconfig interfaz [dirección [parámetros] ]
Los campos MTU y Metric informan sobre los valores actuales de la MTU (Unidad Máxima de
Transferencia) y de la métrica para una interfaz dada. El valor de la métrica es usado tradicionalmente
por algunos sistemas operativos para calcular el coste de una ruta. GNU/Linux no usa este valor por el
momento, pero lo define por razones de compatibilidad.
Las líneas RX y TX dan idea de los paquetes recibidos o transmitidos sin errores, del número de errores
ocurridos, de cuántos paquetes han sido descartados (seguramente por memoria insuficiente), y
cuántos han sido perdidos por desbordamiento, condición que ocurre cuando la recepción de paquetes
es demasiado rápida y el núcleo es incapaz de dar servicio al paquete anterior antes de la llegada del
nuevo paquete.
A continuación tenemos una lista de algunos parámetros reconocidos por ifconfig. Las opciones que
simplemente activan alguna característica pueden usarse para desactivarla precediéndolas de un guión
(–).
Up: Marca la interfaz como disponible para que sea usada por la capa IP.
Down: Marca la interfaz como inaccesible a la capa IP. Esto inhabilita cualquier tráfico IP a través de la
interfaz. Es importante darse cuenta que esto también borra los registros de la tabla de
encaminamiento correspondientes a esa interfaz de forma automática.
Mtu (bytes): Esto fija la unidad máxima de transferencia, o lo que es lo mismo, el máximo número de
octetos que la interfaz es capaz de manejar en una única transacción. Para Ethernets, la MTU toma el
valor 1500 por omisión (que es el tamaño máximo permitido para un paquete Ethernet).
Arp: Esta opción permite el uso de ARP, el Protocolo de Resolución de Direcciones, para detectar la
dirección física de las máquinas conectadas a la red. (-arp lo inhabilita).
ROUTE
Route es una herramienta de línea de comandos disponible tanto en Microsoft Windows como en
GNU/Linux. Nos permite manipular las tablas de enrutamiento de nuestro sistema.
NETSTAT
Netstat (network statistics) es una herramienta de línea de comandos que muestra un listado de las
conexiones activas de un ordenador, tanto entrantes como salientes. Existen versiones de este comando
en varios sistemas como Unix, GNU/Linux, Mac OS X, Windows y BeOS.
La información que resulta del uso del comando incluye el protocolo en uso, las direcciones IP tanto
locales como remotas, los puertos locales y remotos utilizados y el estado de la conexión. Existen,
además de la versión para línea de comandos, herramientas con interfaz gráfica (GUI) en casi todos los
sistemas operativos desarrollados por terceros.
NSLOOKUP
Es un programa, utilizado para saber si el DNS está resolviendo correctamente los nombres y las IP. Se
utiliza con el comando nslookup, que funciona tanto en Windows como en UNIX para obtener la
dirección IP conociendo el nombre, y viceversa.
TELNET
Para iniciar una sesión con un intérprete de comandos de otro ordenador, puede emplear el comando
telnet seguido del nombre o la dirección IP de la máquina en la que desea trabajar, por ejemplo si desea
conectarse a la máquina purpura.micolegio.edu.com deberá teclear telnet purpura.micolegio.edu.com, y
para conectarse con la dirección IP 1.2.3.4 deberá utilizar telnet 1.2.3.4.
Una vez conectado, podrá ingresar el nombre de usuario y contraseña remoto para iniciar una sesión en
modo texto a modo de consola virtual (ver Lectura Sistema de usuarios y manejo de clave). La
información que transmita (incluyendo su clave) no será protegida o cifrada y podría ser vista en otros
computadores por los que se transite la información (la captura de estos datos se realiza con un packet
sniffer.
Una alternativa más segura para telnet, pero que requiere más recursos del computador, es SSH. Este
cifra la información antes de transmitirla, autentica la máquina a la cual se conecta y puede emplear
mecanismos de autenticación de usuarios más seguros.
Unidad 4: Capa de Transporte y Aplicación
Capa de Transporte
Así como existen dos tipos de servicios (orientado a conexión y no orientado a conexión), hay dos tipos
de transporte, el servicio de trasporte orientado a conexión y el servicio de trasporte no orientado a
conexión.
Tanto en la capa de red como en la de transporte las conexiones tienen tres fases, el establecimiento, la
transferencia de datos y la liberación; el direccionamiento y control de flujo también son similares en
ambas y, el servicio de trasporte no orientado a conexión es muy similar al servicio de red no orientado
a conexión. Una pregunta muy lógica de hacerse en este punto sería, el por qué de dos capas siendo que
son tan parecidas. La respuesta es simple, la capa de red es utilizada por routers que pertenecen por
ejemplo a la empresa portadora y nada tienen que ver con el emisor y el receptor, mientras que la capa
de trasporte es pura y exclusivamente manejada por la máquina emisora y la receptora. Además esta
capa que se encuentra por encima de la capa de red, permitirá resolver problemas como perdida de
paquetes o cualquier otro que genere un mal servicio.
Esencialmente, la existencia de la capa de trasporte hace posible que el servicio de trasporte sea más
confiable que el servicio de red subyacente. La capa de transporte puede detectar y compensar
paquetes perdidos y datos alterados. Gracias a la capa de trasporte es posible escribir programas de
aplicación usando un conjunto estándar de primitivas, y que estos programas funcionen en una amplia
variedad de redes sin necesidad de preocuparse por lidiar con diferentes interfaces de subred y
transmisiones no confiables. Como podemos ver, esta capa cumple la función clave de aislar a las capas
superiores de la tecnología, el diseño y las imperfecciones de la subred.
Para permitir que los usuarios accedan al servicio de transporte, la capa de transporte debe
proporcionar algunas operaciones a los programas de aplicación, es decir, una interfaz del servicio de
transporte. Cada servicio de transporte tiene su propia interfaz.
Todas las PDU (Protocol Data Unit) de la capa de transporte también denominadas segmentos, son
colocadas como la carga útil de un datagrama IP para poder ser enviados por la red.
Socket de Berkeley
Socket designa un concepto abstracto por el cual dos programas (posiblemente situados en
computadoras distintas) pueden intercambiar cualquier flujo de datos, generalmente de manera fiable y
ordenada.
Un socket queda definido por una dirección IP, un protocolo de transporte y un número de puerto.
Las propiedades de un socket dependen de las características del protocolo en el que se implementan. El
protocolo más utilizado es TCP, aunque también es posible utilizar UDP o IPX. Gracias al protocolo TCP,
los sockets tienen las siguientes propiedades:
Orientado a conexión.
Se garantiza la transmisión de todos los octetos sin errores ni omisiones.
Se garantiza que todo octeto llegará a su destino en el mismo orden en que se ha transmitido.
Estas propiedades son muy importantes para garantizar la corrección de los programas que tratan la
información.
El protocolo UDP es un protocolo no orientado a la conexión. Sólo se garantiza que si un mensaje llega,
llegue bien. En ningún caso se garantiza que llegue o que lleguen todos los mensajes en el mismo orden
que se mandaron.
Primitiva de sockets
Primitiva Significado
SOCKET Crea un nuevo punto terminal de comunicación
BIND Adjunta una dirección local a un socket
LISTEN Anuncia la disposición a aceptar conexiones; indica el tamaño de la cola
ACCEPT Bloquea al invocador hasta la llegada de un intento de conexión
CONNECT Intenta establecer activamente una conexión
SEND Envía datos a través de la conexión
RECEIVE Recibe datos de la conexión
CLOSE Libera la conexión
Las primitivas son similares a las de la capa de transporte solo que estas brindan mayores características
y flexibilidad. Las primeras cuatro primitivas son ejecutadas en ese orden por un servidor.
Primero se utiliza la primitiva SOCKET para crear un nuevo punto de comunicación y asignarle espacio en
las tablas para la comunicación, además se selecciona un tipo de servicio y un protocolo de
comunicación a utilizar. Luego mediante BIND se asigna una dirección de red al socket para que los
clientes puedan conectarse a él. Una llamada a LISTEN, asigna el espacio necesario para poner en cola
las llamadas entrantes por si varios clientes intentan conectarse al mismo tiempo (esta no es una
llamada bloqueadora). La primitiva ACCEPT bloquea en espera de una conexión entrante, cuando una
conexión entrante llega se crea un nuevo socket con las mismas propiedades del original y se devuelve
un descriptor de archivo para él, que puede utilizarse para leer y escribir de la forma estándar, al igual
que si fuese un archivo.
Del lado del cliente, aquí también se comienza creando un socket con la primitiva SOCKET pero luego no
se usa la sentencia BIND puesto que la dirección de nuestro socket no es de importancia para el
servidor. La primitiva CONNECT bloquea al invocador y comienza activamente el proceso de conexión. Al
completarse éste (es decir cuando se recibe la PDU de transporte del servidor) el proceso cliente se
desbloquea y se establece la conexión.
Ambos lados pueden usar SEND y RECEIVE para transmitir y recibir datos sobre una conexión full-duplex,
la liberación de los sockets es simétrica y se realiza cuando ambos lados ejecutan la primitiva CLOSE.
User Datagram Protocol (UDP) es un protocolo del nivel de transporte basado en el intercambio de
datagramas. Permite el envío de datagramas a través de la red sin que se haya establecido previamente
una conexión, ya que el propio datagrama incorpora suficiente información de direccionamiento en su
cabecera. Tampoco tiene confirmación ni control de flujo, por lo que los paquetes pueden adelantarse
unos a otros; y tampoco se sabe si ha llegado correctamente, ya que no hay confirmación de entrega o
recepción. Su uso principal es para protocolos como DHCP, BOOTP, DNS y demás protocolos en los que
el intercambio de paquetes de la conexión/desconexión son mayores, o no son rentables con respecto a
la información transmitida, así como para la transmisión de audio y vídeo en tiempo real, donde no es
posible realizar retransmisiones por los estrictos requisitos de retardo que se tiene en estos casos.
En la familia de protocolos de Internet UDP proporciona una sencilla interfaz entre la capa de red y la
capa de aplicación. UDP no otorga garantías para la entrega de sus mensajes y el origen UDP no retiene
estados de los mensajes UDP que han sido enviados a la red. UDP sólo añade multiplexado de aplicación
y suma de verificación de la cabecera y la carga útil. Cualquier tipo de garantías para la transmisión de la
información deben ser implementadas en capas superiores.
El protocolo UDP se utiliza por ejemplo cuando se necesita transmitir voz o vídeo y resulta más
importante transmitir con velocidad que garantizar el hecho de que lleguen absolutamente todos los
bytes.
Puertos
UDP utiliza puertos para permitir la comunicación entre aplicaciones. El campo de puerto tiene una
longitud de 16 bits, por lo que el rango de valores válidos va de 0 a 65.535. El puerto 0 está reservado,
pero es un valor permitido como puerto origen si el proceso emisor no espera recibir mensajes como
respuesta.
Los puertos 1 a 1023 se llaman puertos "bien conocidos" y en sistemas operativos tipo Unix enlazar con
uno de estos puertos requiere acceso como superusuario.
Los puertos 49.152 a 65.535 son puertos efímeros y son utilizados como puertos temporales, sobre todo
por los clientes al comunicarse con los servidores.
TCP da soporte a muchas de las aplicaciones más populares de Internet, incluidas HTTP, SMTP, SSH y
FTP.
Funciones de TCP
Habitualmente, las aplicaciones necesitan que la comunicación sea fiable y, dado que la capa IP aporta
un servicio de datagramas no fiable (sin confirmación), TCP añade las funciones necesarias para prestar
un servicio que permita que la comunicación entre dos sistemas se efectúe libre de errores, sin pérdidas
y con seguridad.
Los servicios provistos por TCP corren en el anfitrión (host) de cualquiera de los extremos de una
conexión, no en la red. Por lo tanto, TCP es un protocolo para manejar conexiones de extremo a
extremo. Tales conexiones pueden existir a través de una serie de conexiones punto a punto, por lo que
estas conexiones extremo-extremo son llamadas circuitos virtuales.
Orientado a conexión: dos computadoras establecen una conexión para intercambiar datos. Los
sistemas de los extremos se sincronizan con el otro para manejar el flujo de paquetes y
adaptarse a la congestión de la red.
Operación Full-Duplex: una conexión TCP es un par de circuitos virtuales, cada uno en una
dirección. Sólo los dos sistemas finales sincronizados pueden usar la conexión.
Error Checking: una técnica de checksum es usada para verificar que los paquetes no estén
corrompidos.
Acknowledgements (ACK): sobre recibo de uno o más paquetes, el receptor regresa un
acknowledgement (reconocimiento) al transmisor indicando que recibió los paquetes. Si los
paquetes no son notificados, el transmisor puede reenviar los paquetes o terminar la conexión si
el transmisor cree que el receptor no está más en la conexión.
Flow Control: si el transmisor está desbordando el buffer del receptor por transmitir demasiado
rápido, el receptor descarta paquetes. Los acknowledgement fallidos que llegan al transmisor le
alertan para bajar la tasa de transferencia o dejar de transmitir.
Servicio de recuperación de Paquetes: el receptor puede pedir la retransmisión de un paquete.
Si el paquete no es notificado como recibido (ACK), el transmisor envía de nuevo el paquete.
Los servicios confiables de entrega de datos son críticos para aplicaciones tales como transferencias de
archivos (FTP por ejemplo), servicios de bases de datos, proceso de transacciones y otras aplicaciones de
misión crítica en las cuales la entrega de cada paquete debe ser garantizada.
Las aplicaciones envían flujos de bytes a la capa TCP para ser enviados a la red. TCP divide el flujo de
bytes llegado de la aplicación en segmentos de tamaño apropiado (normalmente esta limitación viene
impuesta por la unidad máxima de transferencia (MTU) del nivel de enlace de datos de la red a la que la
entidad está asociada) y le añade sus cabeceras. Entonces, TCP pasa el segmento resultante a la capa IP,
donde a través de la red, llega a la capa TCP de la entidad destino. TCP comprueba que ningún segmento
se ha perdido dando a cada uno un número de secuencia, que es también usado para asegurarse de que
los paquetes han llegado a la entidad destino en el orden correcto. TCP devuelve un asentimiento por
bytes que han sido recibidos correctamente; un temporizador en la entidad origen del envío causará un
timeout si el asentimiento no es recibido en un tiempo razonable, y el (presuntamente desaparecido)
paquete será entonces retransmitido. TCP revisa que no haya bytes dañados durante el envío usando un
checksum; es calculado por el emisor en cada paquete antes de ser enviado, y comprobado por el
receptor.
Puerto de origen (16 bits): Identifica el puerto a través del que se envía.
Puerto destino (16 bits): Identifica el puerto del receptor.
Número de secuencia (32 bits): Sirve para comprobar que ningún segmento se ha perdido, y
que llegan en el orden correcto. Su significado varía dependiendo del valor de SYN:
Si el flag SYN está activo (1), entonces este campo indica el número inicial de secuencia
(con lo cual el número de secuencia del primer byte de datos será este número de
secuencia más uno).
Si el flag SYN no está activo (0), entonces este campo indica el número de secuencia del
primer byte de datos.
Número de acuse de recibo (ACK) (32 bits): Si el flag ACK está puesto a activo, entonces en este
campo contiene el número de secuencia del siguiente paquete que el receptor espera recibir.
Longitud de la cabecera TCP (4 bits): Especifica el tamaño de la cabecera TCP en palabras de 32-
bits. El tamaño mínimo es de 5 palabras, y el máximo es de 15 palabras (lo cual equivale a un
tamaño mínimo de 20 bytes y a un máximo de 60 bytes). En inglés el campo se denomina “Data
offset”, que literalmente sería algo así como “desplazamiento hasta los datos”, ya que indica
cuántos bytes hay entre el inicio del paquete TCP y el inicio de los datos.
Reservado (4 bits): Bits reservados para uso futuro, deberían ser puestos a cero.
Bits de control (flags) (8 bits): Son 8 flags o banderas. Cada una indica “activa” con un 1 o
“inactiva” con un 0.
CWR o “Congestion Window Reduced” (1 bit): Este flag se activa (se pone a 1) por parte
del emisor para indicar que ha recibido un paquete TCP con el flag ECE activado. El flag
ECE es una extensión del protocolo que fue añadida a la cabecera en el RFC 3168. Se
utiliza para el control de la congestión en la red.
ECE o “ECN-Echo” (1 bit): Indica que el receptor puede realizar notificaciones ECN. La
activación de este flag se realiza durante la negociación en tres pasos para el
establecimiento de la conexión. Este flag también fue añadido a la cabecera en el RFC
3168.
URG o “urgent” (1 bit, ver URG): Si está activo significa que el campo “Urgente” es
significativo, si no, el valor de este campo es ignorado.
ACK o “acknowledge” (1 bit, ver ACK): Si está activo entonces el campo con el número
de acuse de recibo es válido (si no, es ignorado).
PSH o “push” (1 bit, ver PSH): Activa/desactiva la función que hace que los datos de ese
segmento y los datos que hayan sido almacenados anteriormente en el buffer del
receptor deben ser transferidos a la aplicación receptora lo antes posible.
RST o “reset” (1 bit, ver Flag RST): Si llega a 1, termina la conexión sin esperar respuesta.
SYN o “synchronize” (1 bit, ver SYN): Activa/desactiva la sincronización de los números
de secuencia.
FIN (1 bit, ver FIN): Si se activa es porque no hay más datos a enviar por parte del
emisor, esto es, el paquete que lo lleva activo es el último de una conexión.
Ventana (16 bits): Es el tamaño de la ventana de recepción, que especifica el número de bytes
que el receptor está actualmente esperando recibir.
Suma de verificación (checksum) (16 bits): Es una suma de verificación utilizada para comprobar
si hay errores tanto en la cabecera como en los datos.
Puntero urgente (16 bits): Si el flag URG está activado, entonces este campo indica el
desplazamiento respecto al número de secuencia que indica el último byte de datos marcados
como “urgentes”.
Opciones (número de bits variable): La longitud total del campo de opciones ha de ser múltiplo
de una palabra de 32 bits (si es menor, se ha de rellenar al múltiplo más cercano), y el campo
que indica la longitud de la cabecera ha de estar ajustado de forma adecuada.
Datos (número de bits variable): No forma parte de la cabecera, es la carga (payload), la parte
con los datos del paquete TCP. Pueden ser datos de cualquier protocolo de nivel superior en el
nivel de aplicación; los protocolos más comunes para los que se usan los datos de un paquete
TCP son HTTP, telnet, SSH, FTP, etcétera.
Las conexiones TCP se componen de tres etapas: establecimiento de conexión, transferencia de datos y
fin de la conexión. Para establecer la conexión se usa el procedimiento llamado negociación en tres
pasos (3-way handshake). Una negociación en cuatro pasos (4-way handshake) es usada para la
desconexión.
El host receptor, que en el caso de más común será un servidor, espera pasivamente una conexión
ejecutando las primitvas LISTEN y ACCEPT.
En primer lugar, el host que desea iniciar la conexión ejecuta una primitiva CONNECT especificando la
dirección IP y el puerto con el que se desea conectar, el tamaño máximo del segmento que está
dispuesto a aceptar y opcionalmente otros datos. Entonces la primitiva CONNCET hace una apertura
activa, enviando al otro host un paquete que tiene el bit SYN activado, indicándole también el número
de secuencia inicial "x" que usará para enviar sus mensajes.
El host receptor recibe el segmento revisa si hay algún proceso activo que haya ejecutado un LISTEN en
el puerto solicitado, es decir, preparado para recibir datos por ese puerto. Si lo hay, el proceso a la
escucha recibe el segmento TCP entrante, registra el número de secuencia "x" y, si desea abrir la
conexión, responde con un acuse de recibo "x + 1" con el bit SYN activado e incluye su propio número de
secuencia inicial "y", dejando entonces abierta la conexión por su extremo. El número de acuse de
recibo "x + 1" significa que el host ha recibido todos los octetos hasta e incluyendo "x", y espera "x + 1" a
continuación. Si no desea establecer la conexión, envía una contestación con el bit RST activado, para
que el host en el otro extremo lo sepa.
El primer host recibe el segmento y envía su confirmación con el bit ACK encendido y SYN apagado,
momento a partir del cual puede enviar datos al otro extremo, abriendo entonces la conexión por su
extremo y completando así la negociación en tres pasos (SYN, SYN/ACK y ACK) y la fase de
establecimiento de conexión.
La máquina receptora recibe la confirmación y entiende que el otro extremo ha abierto ya su conexión,
por lo que a partir de ese momento también puede ella enviar datos. Con esto, la conexión ha quedado
abierta en ambos sentidos.
Transferencia de datos
Durante la etapa de transferencia de datos, una serie de mecanismos claves determinan la fiabilidad y
robustez del protocolo. Entre ellos están incluido el uso del número de secuencia para ordenar los
segmentos TCP recibidos y detectar paquetes duplicados, checksums para detectar errores, y
asentimientos y temporizadores para detectar pérdidas y retrasos.
Durante el establecimiento de conexión TCP, los números iniciales de secuencia son intercambiados
entre las dos entidades TCP. Estos números de secuencia son usados para identificar los datos dentro
del flujo de bytes, y poder identificar (y contar) los bytes de los datos de la aplicación. Siempre hay un
par de números de secuencia incluidos en todo segmento TCP, referidos al número de secuencia y al
número de asentimiento (ACK). Un emisor TCP se refiere a su propio número de secuencia cuando habla
de número de secuencia, mientras que con el número de asentimiento se refiere al número de
secuencia del receptor. Para mantener la fiabilidad, un receptor asiente los segmentos TCP indicando
que ha recibido una parte del flujo continuo de bytes.
A través del uso de números de secuencia y asentimiento, TCP puede pasar los segmentos recibidos en
el orden correcto dentro del flujo de bytes a la aplicación receptora.
Un checksum de 16 bits de la cabecera y datos del segmento TCP, es calculado por el emisor, e incluido
en la transmisión del segmento. El receptor TCP simplemente calcula la suma en complemento a uno
con el checksum incluido, y el resultado debe ser igual a 0. Si es así, se asume que el segmento ha
llegado intacto y sin errores. Hay que fijarse en que el checksum de TCP también cubre los 96 bit de la
cabecera que contiene la dirección origen, la dirección destino, el protocolo y el tamaño TCP. Esto
proporciona protección contra paquetes mal dirigidos por errores en las direcciones.
Los asentimientos (ACK) de los datos enviados o la falta de ellos, son usados por los emisores para
interpretar las condiciones de la red entre el emisor y receptor TCP. Unido a los temporizadores, los
emisores y receptores TCP pueden alterar el comportamiento del movimiento de datos. TCP usa una
serie de mecanismos para conseguir un alto rendimiento y evitar la congestión de la red (la idea es
enviar tan rápido como el receptor pueda recibir). Estos mecanismos incluyen el uso de ventana
deslizante, que controla que el transmisor mande información dentro de los límites del buffer del
receptor, y algoritmos de control de flujo.
El tamaño de la ventana de recepción TCP es la cantidad de datos recibidos (en bytes) que pueden ser
metidos en el buffer de recepción durante la conexión. La entidad emisora puede enviar una cantidad
determinada de datos pero antes debe esperar un asentimiento con la actualización del tamaño de
ventana por parte del receptor.
Un ejemplo sería el siguiente: un receptor comienza con un tamaño de ventana x y recibe y bytes,
entonces su tamaño de ventana será (x - y) y el transmisor sólo podrá mandar paquetes con un tamaño
máximo de datos de (x - y) bytes. Los siguientes paquetes recibidos seguirán restando tamaño a la
ventana de recepción. Esta situación seguirá así hasta que la aplicación receptora recoja los datos del
buffer de recepción.
Ventana deslizante
Para una mayor eficiencia en redes de gran ancho de banda, debe ser usado un tamaño de ventana
mayor. El campo TCP de tamaño de ventana controla el movimiento de datos y está limitado a 16 bits,
es decir, a un tamaño de ventana de 65.535 bytes.
Como el campo de ventana no puede expandirse se usa un factor de escalado. La escala de ventana TCP
(TCP window scale) es una opción usada para incrementar el máximo tamaño de ventana desde 65.535
bytes, a 1 Gigabyte.
La opción de escala de ventana TCP es usada solo durante la negociación en tres pasos que constituye el
comienzo de la conexión. El valor de la escala representa el número de bits desplazados a la izquierda de
los 16 bits que forman el campo del tamaño de ventana. El valor de la escala puede ir desde 0 (sin
desplazamiento) hasta 14. Hay que recordar que un número binario desplazado un bit a la izquierda es
como multiplicarlo en base decimal por 2.
Fin de la conexión
La fase de finalización de la conexión usa una negociación en cuatro pasos (four-way handshake),
terminando la conexión desde cada lado independientemente. Cuando uno de los dos extremos de la
conexión desea parar su "mitad" de conexión transmite un paquete FIN, que el otro interlocutor
asentirá con un ACK. Por tanto, una desconexión típica requiere un par de segmentos FIN y ACK desde
cada lado de la conexión.
Una conexión puede estar "medio abierta" en el caso de que uno de los lados la finalice pero el otro no.
El lado que ha dado por finalizada la conexión no puede enviar más datos pero la otra parte si podrá.
Puertos TCP
TCP usa el concepto de número de puerto para identificar a las aplicaciones emisoras y receptoras. Cada
lado de la conexión TCP tiene asociado un número de puerto (de 16 bits sin signo, con lo que existen
65536 puertos posibles) asignado por la aplicación emisora o receptora. Los puertos son clasificados en
tres categorías: bien conocidos, registrados y dinámicos/privados. Los puertos bien conocidos son
asignados por la Internet Assigned Numbers Authority (IANA), van del 0 al 1023 y son usados
normalmente por el sistema o por procesos con privilegios. Las aplicaciones que usan este tipo de
puertos son ejecutadas como servidores y se quedan a la escucha de conexiones. Algunos ejemplos son:
FTP (21), SSH (22), Telnet (23), SMTP (25) y HTTP (80). Los puertos registrados son normalmente
empleados por las aplicaciones de usuario de forma temporal cuando conectan con los servidores, pero
también pueden representar servicios que hayan sido registrados por un tercero (rango de puertos
registrados: 1024 al 49151). Los puertos dinámicos/privados también pueden ser usados por las
aplicaciones de usuario, pero este caso es menos común. Los puertos dinámicos/privados no tienen
significado fuera de la conexión TCP en la que fueron usados (rango de puertos dinámicos/privados:
49152 al 65535, recordemos que el rango total de 2 elevado a la potencia 16, cubre 65536 números, del
0 al 65535)
TCP: es el protocolo que proporciona un transporte fiable de flujo de bits entre aplicaciones. Está
pensado para poder enviar grandes cantidades de información de forma fiable, liberando al
programador de la dificultad de gestionar la fiabilidad de la conexión (retransmisiones, pérdida
de paquetes, orden en el que llegan los paquetes, duplicados de paquetes, etc.) que gestiona el
propio protocolo. Pero la complejidad de la gestión de la fiabilidad tiene un coste en eficiencia,
ya que para llevar a cabo las gestiones anteriores se tiene que añadir bastante información a los
paquetes que enviar. Debido a que los paquetes para enviar tienen un tamaño máximo, cuanta
más información añada el protocolo para su gestión, menos información que proviene de la
aplicación podrá contener ese paquete (el segmento TCP tiene una sobrecarga de 20 bytes en
cada segmento, mientras que UDP solo añade 8 bytes). Por eso, cuando es más importante la
velocidad que la fiabilidad, se utiliza UDP. En cambio, TCP asegura la recepción en destino de la
información para transmitir. Los servicios confiables de entrega de datos son críticos para
aplicaciones tales como transferencias de archivos (FTP por ejemplo), servicios de bases de
datos, proceso de transacciones y otras aplicaciones de misión crítica en las cuales la entrega de
cada paquete debe ser garantizada.
El sistema de nombre de dominio (en inglés Domain Name System, DNS) es un sistema de nomenclatura
jerárquica para computadoras, servicios o cualquier recurso conectado al internet o a una red privada.
Este sistema asocia información variada con nombres de dominios asignados a cada uno de los
participantes. Su función más importante, es traducir (resolver) nombres inteligibles para los humanos
en identificadores binarios asociados con los equipos conectados a la red, esto con el propósito de
poder localizar y direccionar estos equipos mundialmente. Otras de sus funciones son, definir una zona
de seguridad de un dominio permitiendo administrar la seguridad y los recursos, dado que un nombre
de dominio tendrá asociado registros de recursos, usuarios y permisos.
La mayoría de usuarios domésticos utilizan como servidor DNS el proporcionado por el proveedor de
servicios de Internet. La dirección de estos servidores puede ser configurada de forma manual o
automática mediante DHCP. En otros casos, los administradores de red tienen configurados sus propios
servidores DNS.
En cualquier caso, los servidores DNS que reciben la petición, buscan en primer lugar si disponen de la
respuesta en la memoria caché. Si es así, sirven la respuesta; en caso contrario, iniciarían la búsqueda de
manera recursiva (pregunta a sus servidores). Una vez encontrada la respuesta, el servidor DNS
guardará el resultado en su memoria caché para futuros usos y devuelve el resultado. Cuando guardan
el resultado en cache lo hacen con un “tiempo de vida” corto dado que si el otro servidor modifica ese
registro, los cambios no se propagan a las cache de los otros servidores.
Conceptualmente, internet se divide en 200 dominios de nivel superior, cada uno de los cuales abarca
muchos host y otros subdominios. Los dominios de nivel superior pueden dividirse en dos categorías, los
genéricos y por país (el gráfico solo representa las genéricas).
El espacio de nombres de dominio tiene una estructura de árbol. Las hojas y los nodos del árbol se
utilizan como etiquetas de los medios. Un nombre de dominio completo de un objeto consiste en la
concatenación de todas las etiquetas de un camino. Las etiquetas son cadenas alfanuméricas (con '-'
como único símbolo permitido), deben contar con al menos un carácter y un máximo de 63 caracteres
de longitud, y deberá comenzar con una letra (y no con '-'). Las etiquetas individuales están separadas
por puntos. Un nombre de dominio termina con un punto (aunque este último punto generalmente se
omite, ya que es puramente formal). Un FQDN correcto (también llamado Fully Qualified Domain
Name), es por ejemplo este: www.example.com. (Incluyendo el punto al final)
Un nombre de dominio debe incluir todos los puntos y tiene una longitud máxima de 255 caracteres.
Los objetos de un dominio DNS (por ejemplo, el nombre del equipo) se registran en un archivo de zona,
ubicado en uno o más servidores de nombres.
Cada dominio, sea un host individual o un dominio de nivel superior, puede tener un gripo de registros
de recursos asociados a él. En un host individual, el registro de recursos más común es simplemente su
dirección de IP, pero existen muchos otros registros que pueden asociarse a él. Cuando un resolvedor
(es el elemento del navegador web o del sistema operativo que realiza las peticiones al servidor DNS) da
un nombre de dominio al DNS, lo que recibe son los registros de recursos asociados a ese nombre. Por lo
tanto la función real del DNS es relacionar dominios de nombre con los registros de recursos.
El formato es el siguiente:
FTP (sigla en inglés de File Transfer Protocol - Protocolo de Transferencia de Archivos) en informática, es
un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP
(Transmission Control Protocol), basado en la arquitectura cliente-servidor. Desde un equipo cliente se
puede conectar a un servidor para descargar archivos desde él o para enviarle archivos,
independientemente del sistema operativo utilizado en cada equipo.
El Servicio FTP es ofrecido por la capa de Aplicación del modelo de capas de red TCP/IP al usuario,
utilizando normalmente el puerto de red 20 y el 21. Un problema básico de FTP es que está pensado
para ofrecer la máxima velocidad en la conexión, pero no la máxima seguridad, ya que todo el
intercambio de información, desde el login y password del usuario en el servidor hasta la transferencia
de cualquier archivo, se realiza en texto plano sin ningún tipo de cifrado, con lo que un posible atacante
puede capturar este tráfico, acceder al servidor, o apropiarse de los archivos transferidos (para
solucionar este problema son de gran utilidad aplicaciones como scp y sftp).
Con la llegada del World Wide Web, y de los navegadores, ya no es necesario conocer los complejos
comandos de FTP, este protocolo se puede utilizar escribiendo la URL del servidor al que queramos
conectar en el navegador web, indicando con ftp:// que vamos a contactar con un servidor ftp y no con
un servidor web (que sería http:// ).
El Modelo FTP
En el modelo, el intérprete de protocolo (PI) de usuario, inicia la conexión de control en el puerto 21. Las
órdenes FTP estándar las genera el PI de usuario y se transmiten al proceso servidor a través de la
conexión de control. Las respuestas estándar se envían desde el PI del servidor al PI de usuario por la
conexión de control como respuesta a las órdenes.
Estas órdenes FTP especifican parámetros para la conexión de datos (puerto de datos, modo de
transferencia, tipo de representación y estructura) y la naturaleza de la operación sobre el sistema de
archivos (almacenar, recuperar, añadir, borrar, etc.). El proceso de transferencia de datos (DTP) de
usuario u otro proceso en su lugar, debe esperar a que el servidor inicie la conexión al puerto de datos
especificado (puerto 20 en modo activo o estándar) y transferir los datos en función de los parámetros
que se hayan especificado.
La conexión de datos es bidireccional, es decir, se puede usar simultáneamente para enviar y para
recibir, y no tiene por qué existir todo el tiempo que dura la conexión FTP.
Servidor FTP
Un servidor FTP es un programa especial que se ejecuta en un equipo servidor normalmente conectado
a Internet (aunque puede estar conectado a otros tipos de redes, LAN, MAN, etc.). Su función es
permitir el intercambio de datos entre diferentes servidores/ordenadores.
Las aplicaciones más comunes de los servidores FTP suelen ser el alojamiento web o como servidor de
backup de los archivos importantes que pueda tener una empresa (se cifran los datos con SFTP).
Cliente FTP
Un cliente FTP es un programa que se instala en el ordenador del usuario, y que emplea el protocolo FTP
para conectarse a un servidor FTP y transferir archivos, ya sea para descargarlos o para subirlos.
Para utilizar un cliente FTP, se necesita conocer el nombre del archivo, el ordenador en que reside
(servidor, en el caso de descarga de archivos), el ordenador al que se quiere transferir el archivo (en
caso de querer subirlo nosotros al servidor), y la carpeta en la que se encuentra.
Algunos clientes de FTP básicos en modo consola vienen integrados en los sistemas operativos, sin
embargo, hay disponibles clientes con opciones añadidas e interfaz gráfica, aunque muchos
navegadores tienen ya integrado FTP.
Tipos de acceso
Acceso anónimo: Los servidores FTP anónimos ofrecen sus servicios libremente a todos los
usuarios, permiten acceder a sus archivos sin necesidad de tener un 'USER ID' o una cuenta de
usuario. Es la manera más cómoda fuera del servicio web de permitir que todo el mundo tenga
acceso a cierta información, aunque con menos privilegios que un usuario normal.
Normalmente solo podrás leer y copiar los archivos existentes, pero no modificarlos ni crear
otros nuevos. Por lo general, se utiliza un servidor FTP anónimo para depositar grandes archivos
que no tienen utilidad si no son transferidos a la máquina del usuario, como por ejemplo
programas, y se reservan los servidores de páginas web (HTTP) para almacenar información
textual destinada a la lectura en línea.
Acceso de usuario: Si se desea tener privilegios de acceso a cualquier parte del sistema de
archivos del servidor FTP, de modificación de archivos existentes, y de posibilidad de subir
nuestros propios archivos, generalmente se suele realizar mediante una cuenta de usuario. En el
servidor se guarda la información de las distintas cuentas de usuario que pueden acceder a él,
de manera que para iniciar una sesión FTP debemos introducir una autentificación (login) y una
contraseña (password) que nos identifica unívocamente.
Acceso de invitado: El acceso sin restricciones al servidor que proporcionan las cuentas de
usuario implica problemas de seguridad, lo que ha dado lugar a un tercer tipo de acceso FTP
denominado invitado (guest), que se puede contemplar como una mezcla de los dos anteriores.
La idea de este mecanismo es la siguiente: se trata de permitir que cada usuario conecte a la
máquina mediante su login y su password, pero evitando que tenga acceso a partes del sistema
de archivos que no necesita para realizar su trabajo, de esta forma accederá a un entorno
restringido, algo muy similar a lo que sucede en los accesos anónimos, pero con más privilegios.
Un 'cliente FTP basado en WEB' no es más que un Cliente FTP al cual podemos acceder a través de
nuestro Navegador Web sin necesidad de tener otra aplicación para ello. El usuario accede a un servidor
web (http) que lista los contenidos de un servidor ftp. El usuario se conecta mediante http a un servidor
web, y el servidor web se conecta mediante ftp al servidor ftp. El servidor web actúa de intermediario
haciendo pasar la información desde el servidor ftp en los puertos 20 y 21 hacia el puerto 80 http que ve
el usuario.
FTP admite dos modos de conexión del cliente. Estos modos se denominan Activo (o Estándar, o PORT,
debido a que el cliente envía comandos tipo PORT al servidor por el canal de control al establecer la
conexión) y Pasivo (o PASV, porque en este caso envía comandos tipo PASV). Tanto en el modo Activo
como en el modo Pasivo, el cliente establece una conexión con el servidor mediante el puerto 21, que
establece el canal de control.
Modo Activo
En modo Activo, el servidor siempre crea el canal de datos en su puerto 20, mientras que en el lado del
cliente el canal de datos se asocia a un puerto aleatorio mayor que el 1024. Para ello, el cliente manda
un comando PORT al servidor por el canal de control indicándole ese número de puerto, de manera que
el servidor pueda abrirle una conexión de datos por donde se transferirán los archivos y los listados, en
el puerto especificado.
Lo anterior tiene un grave problema de seguridad, y es que la máquina cliente debe estar dispuesta a
aceptar cualquier conexión de entrada en un puerto superior al 1024, con los problemas que ello implica
si tenemos el equipo conectado a una red insegura como Internet. De hecho, los cortafuegos que se
instalen en el equipo para evitar ataques seguramente rechazarán esas conexiones aleatorias. Para
solucionar esto se desarrolló el modo Pasivo.
Modo Pasivo
Cuando el cliente envía un comando PASV sobre el canal de control, el servidor FTP le indica por el canal
de control, el puerto (mayor a 1023 del servidor. Ej:2040 ) al que debe conectarse el cliente. El cliente
inicia una conexión desde el puerto siguiente al puerto de control (Ej: 1036) hacia el puerto del servidor
especificado anteriormente (Ej: 2040).
Antes de cada nueva transferencia, tanto en el modo Activo como en el Pasivo, el cliente debe enviar
otra vez un comando de control (PORT o PASV, según el modo en el que haya conectado), y el servidor
recibirá esa conexión de datos en un nuevo puerto aleatorio (si está en modo pasivo) o por el puerto 20
(si está en modo activo).
Es importante conocer cómo debemos transportar un archivo a lo largo de la red. Si no utilizamos las
opciones adecuadas podemos destruir la información del archivo. Por eso, al ejecutar la aplicación FTP,
debemos acordarnos de utilizar uno de estos comandos (o poner la correspondiente opción en un
programa con interfaz gráfica):
type ascii
Adecuado para transferir archivos que sólo contengan caracteres imprimibles (archivos ASCII, no
archivos resultantes de un procesador de texto), por ejemplo páginas HTML, pero no las imágenes que
puedan contener.
type binary
Este tipo es usado cuando se trata de archivos comprimidos, ejecutables para PC, imágenes, archivos de
audio, etc.
TFTP son las siglas de Trivial file transfer Protocol (Protocolo de transferencia de archivos trivial).
Es un protocolo de transferencia muy simple semejante a una versión básica de FTP. TFTP a menudo se
utiliza para transferir pequeños archivos entre ordenadores en una red, como cuando un terminal X
Window o cualquier otro cliente ligero que arranque desde un servidor de red.
Características de TFTP:
Utiliza UDP (en el puerto 69) como protocolo de transporte (a diferencia de FTP que utiliza el
puerto 21 TCP).
No puede listar el contenido de los directorios.
No existen mecanismos de autenticación o cifrado.
Se utiliza para leer o escribir archivos de un servidor remoto.
Soporta tres modos diferentes de transferencia, "netascii", "octet" y "mail", de los que los dos
primeros corresponden a los modos "ascii" e "imagen" (binario) del protocolo FTP.
Ya que TFTP utiliza UDP, no hay una definición formal de sesión, cliente y servidor. Sin embargo, cada
archivo transferido vía TFTP constituye un intercambio independiente de paquetes, y existe una relación
cliente-servidor informal entre la máquina que inicia la comunicación y la que responde.
Componentes básicos
Comandos básicos
Los dispositivos administrados son supervisados y controlados usando cuatro comandos SNMP básicos:
lectura, escritura, notificación y operaciones transversales.
El comando de lectura es usado por un NMS para supervisar elementos de red. El NMS examina
diferentes variables que son mantenidas por los dispositivos administrados.
El comando de escritura es usado por un NMS para controlar elementos de red. El NMS cambia
los valores de las variables almacenadas dentro de los dispositivos administrados.
El comando de notificación es usado por los dispositivos administrados para reportar eventos en
forma asíncrona a un NMS. Cuando cierto tipo de evento ocurre, un dispositivo administrado
envía una notificación al NMS.
Las operaciones transversales son usadas por el NMS para determinar qué variables soporta un
dispositivo administrado y para recoger secuencialmente información en tablas de variables,
como por ejemplo, una tabla de rutas.
Base de información de administración SNMP (MIB)
Una Base de Información de Administración (MIB) es una colección de información que está organizada
jerárquicamente. Las MIB’s son accedidas usando un protocolo de administración de red, como por
ejemplo, SNMP.
Un objeto administrado (algunas veces llamado objeto MIB, objeto, o MIB) es uno de cualquier número
de características específicas de un dispositivo administrado. Los objetos administrados están
compuestos de una o más instancias de objeto, que son esencialmente variables.
Un identificador de objeto (object ID) identifica un objeto administrado en la jerarquía MIB. La jerarquía
MIB puede ser representada como un árbol con una raíz anónima y los niveles, que son asignados por
diferentes organizaciones.
Los identificadores de los objetos ubicados en la parte superior del árbol pertenecen a diferentes
organizaciones estándares, mientras los identificadores de los objetos ubicados en la parte inferior del
árbol son colocados por las organizaciones asociadas.
Los vendedores pueden definir ramas privadas que incluyen los objetos administrados para sus propios
productos. Las MIB’s que no han sido estandarizadas típicamente están localizadas en la rama
experimental.
El objeto administrado atInput podría ser identificado por el nombre de objeto iso.identified-
organization.dod.internet.private.enterprise.cisco.temporary.AppleTalk.atInput o por el descriptor de
objeto equivalente 1.3.6.1.4.1.9.3.3.1.
Mensajes SNMP
Para realizar las operaciones básicas de administración anteriormente nombradas, el protocolo SNMP
utiliza un servicio no orientado a la conexión (UDP) para enviar un pequeño grupo de mensajes (PDUs)
entre los administradores y agentes. La utilización de un mecanismo de este tipo asegura que las tareas
de administración de red no afectarán al rendimiento global de la misma, ya que se evita la utilización
de mecanismos de control y recuperación como los de un servicio orientado a la conexión, por ejemplo
TCP.
Número Descripción
161 SNMP
162 SNMP-trap
Los paquetes utilizados para enviar consultas y respuestas SNMP poseen el siguiente formato:
Versión: Número de versión de protocolo que se está utilizando (por ejemplo 1 para SNMPv1);
Comunidad: Nombre o palabra clave que se usa para la autenticación. Generalmente existe una
comunidad de lectura llamada "public" y una comunidad de escritura llamada "private";
SNMP PDU: Contenido de la unidad de datos del protocolo, el que depende de la operación que
se ejecute.
GetRequest: A través de este mensaje el NMS solicita al agente retornar el valor de un objeto de interés
mediante su nombre.
GetNextRequest: Este mensaje es usado para recorrer una tabla de objetos. Una vez que se ha usado un
mensaje GetRequest para recoger el valor de un objeto, puede ser utilizado el mensaje GetNextRequest
para repetir la operación con el siguiente objeto de la tabla.
SetRequest: Este tipo de mensaje es utilizado por el NMS para solicitar a un agente modificar valores de
objetos. Para realizar esta operación el NMS envía al agente una lista de nombres de objetos con sus
correspondientes valores.
GetResponse: Este mensaje es usado por el agente para responder un mensaje GetRequest,
GetNextRequest, o SetRequest. En el campo "Identificador de Request" lleva el mismo identificador que
el "request" al que está respondiendo.
Trap: Una trap es generado por el agente para reportar ciertas condiciones y cambios de estado a un
proceso de administración (el formato de la PDU es diferente).
GetBulkRequest: Este mensaje es usado por un NMS que utiliza la versión 2 ó 3 del protocolo SNMP
típicamente cuando es requerida una larga transmisión de datos, tal como la recuperación de largas
tablas.
InformRequest: Un NMS que utiliza la versión 2 ó 3 del protocolo SNMP transmite un mensaje de este
tipo a otro NMS con las mismas características, para notificar información sobre objetos administrados.
Detectar errores en la red o accesos inadecuados. Puede configurar las alarmas que se
desencadenarán en los dispositivos de red cuando se produzcan ciertos sucesos. Cuando se
dispara una alarma, el dispositivo envía un mensaje de suceso al sistema de administración.
Entre las causas más frecuentes de alarma se incluye un dispositivo que se cierra y se reinicia, un
error de un vínculo detectado en un enrutador y un acceso inadecuado.
Auditar el uso de la red. Puede supervisar el uso general de la red para identificar el acceso de
un grupo o usuario, y los tipos de uso de servicios y dispositivos de la red. Puede utilizar esta
información para generar una facturación directa de las cuentas o para justificar los costos
actuales de la red y los gastos planeados.
Correo Electrónico
Correo electrónico, o en inglés e-mail (electronic mail), es un servicio de red que permite a los usuarios
enviar y recibir mensajes rápidamente mediante sistemas de comunicación electrónicos. Principalmente
se usa este nombre para denominar al sistema que provee este servicio en Internet, mediante el
protocolo SMTP, aunque por extensión también puede verse aplicado a sistemas análogos que usen
otras tecnologías. Por medio de mensajes de correo electrónico se puede enviar, no solamente texto,
sino todo tipo de documentos digitales. Su eficiencia, conveniencia y bajo coste (con frecuencia nulo)
están logrando que el correo electrónico desplace al correo ordinario para muchos usos habituales.
Arquitectura y Servicios
Otros servicios que brinda el correo electrónico son, permitir crear buzones de correo para el
almacenamiento de los mensajes, tener listas de correo y al enviar un mensaje a la lista que este se
envíe a todas las direcciones que pertenecen a la lista, crear copias, correo electrónico de alta prioridad,
correo electrónico secreto (encriptado), destinatarios alternos si es que el primero no se encuentra
disponible, etc.
Una idea clave de todos los sistemas modernos de correo electrónico es la distinción entre el sobre y su
contenido.
Antiguamente los correos electrónicos eran solo mensajes ASCII en inglés. Hoy existen mensajes en
idiomas con acentos, con caracteres chinos o japoneses, y mensajes con imágenes, audio y video.
La idea básica de MIME es continuar usando el formato de los mensajes de correo electrónico, pero
agregar una estructura al cuerpo del mensaje y definir reglas de codificación para mensajes no ASCII. Al
mantener el formato de los mensajes de correo electrónico existentes, los mensajes MIME pueden ser
enviados usando los protocolos existentes (solo cambiar los programas emisores y receptores).
Encabezado Significado
MIME-Version Indica la versión de MIME utilizada
Content-Description Cadena de texto que describe el contenido
Conten-Id Identificador único del contenido
Content-Transfer-Encoding Cómo se envuelve el mensaje para su transmisión
Conten-Type Naturaleza del mensaje
Agente de Usuario
Un agente de usuario normalmente es un programa que acepta una variedad de comandos para
redactar, recibir y contestar los mensajes, así como para manipular el buzón de correo. Algunos agentes
de usuario tiene interfaz y otros trabajan por líneas de comando pero funcionalmente son iguales.
Envío de correo electrónico: Para enviar un mensaje el usuario debe proporcionar el mensaje, la
dirección de destino y, posiblemente, algunos otros parámetros. La dirección de destino debe
estar en un formato que el agente de usuario pueda maneja, mucho esperan direcciones DNS de
la forma usuario@direccion-dns.
Lectura de correo electrónico: Normalmente, cuando se inicia un agente de usuario, buscará en
el buzón del usuario el correo electrónico recibido, antes de presentar otra cosa en la pantalla.
Después de anunciará la cantidad de mensajes en el buzón y/o presentar un resumen de cada
uno y esperará algún comando. Una vez realizado esto el usuario podrá leer, eliminar mensajes,
etc.
Transferencia de Mensajes
En internet, el correo electrónico se entrega al hacer que la máquina de origen establezca una conexión
TCP con el puerto 25 de la máquina de destino. Escuchando en este puerto está un demonio de correo
electrónico que habla con el SMTP. Este demonio acepta conexiones de entrada y copia mensajes de ella
a los buzones adecuados. Si no puede entregarse un mensaje, se devuelve al remitente un informe de
error que contiene la primera parte del mensaje que no pudo entregarse.
Después de establecer la conexión TCP con el puerto 25, la máquina emisora, operando como cliente,
espera que la máquina receptora envíe una línea de texto que proporciona su identidad e indica si está
preparado o no para recibir correo. Si no lo está, el cliente libera la conexión y lo intenta después. Si está
dispuesto a aceptar correo electrónico, el cliente anuncia de quién proviene el mensaje, y a quien está
dirigido, si existe ese destinatario en el destino, el servidor da permiso al cliente de enviar su mensaje. A
continuación el cliente envía el mensaje y el servidor confirma su recepción. Una vez que todo el correo
que haya para enviar se ha intercambiado, se libera la conexión TCP.
Pero existe el siguiente problema, ¿Qué ocurre si la máquina A quiere enviarle un correo a la máquina B
y esta no está encendida? La máquina B no podrá recibir correo siendo que este servicio debería
funcionar las 24 hs. Una solución sería que el ISP de la máquina B tenga su buzón y reciba los correos por
ella y luego la máquina B consulte su buzón al ISP. Pero esta solución genera otro problema y es, ¿Cómo
obtiene la máquina B el correo electrónico del agente de transferencia de mensajes del ISP?
Es un protocolo que permite que los agentes de transferencia de usuarios en las PC de los clientes,
contacten al agente de transferencia de mensajes en la máquina del ISP y que el correo electrónico se
copie del ISP al usuario. POP3 inicia cuando el usuario arranca el lector de correo, éste llama al ISP y
establece una conexión TCP con el agente de transferencia de mensajes en el puerto 110. Una vez que
se ha establecido la conexión, el protocolo POP3 pasa por tres estados de secuencia:
Autorización, tiene que ver con el inicio de sesión por parte del usuario.
Transacciones, se relaciona con el hecho de que el usuario colecte los mensajes de correo
electrónico y los marque para eliminación del buzón.
Actualización, se encarga de que los mensajes de correo electrónico sean realimente eliminados
del ISP.
El problema de este protocolo es que descarga los mensajes en el disco duro de la PC cliente para que
sea leídos.
A diferencia de POP3, que asume que el usuario vaciará el buzón de cada contacto y trabajará sin
conexión después de eso, IMAP supone que todo el correo electrónico permanecerá en el servidor de
manera indefinida en múltiples buzones de correo. IMAP proporciona mecanismos de gran alcance para
leer mensajes o incluso partes de un mensaje y que permite grandes archivos adjuntos de audio y video;
además proporciona mencanismos para crear, destruir y manipular múltiples buzones en el servidor
(para usar uno para cada contacto). El servidor IMAP escucha el puerto 143.
Esquema de un caso típico
En este ejemplo ficticio, Ana (ana@a.org) envía un correo a Bea (bea@b.com). Cada persona está en un
servidor distinto (una en a.org, otra en b.com), pero éstos se pondrán en contacto para transferir el
mensaje. Por pasos:
Si ambas personas están en la misma red (una Intranet de una empresa, por ejemplo), entonces
no se pasa por Internet. También es posible que el servidor de correo de Ana y el de Bea sean el
mismo ordenador.
Ana podría tener instalado un servidor SMTP en su ordenador, de forma que el paso 1 se haría
en su mismo ordenador. De la misma forma, Bea podría tener su servidor de correo en el propio
ordenador.
Una persona puede no usar un programa de correo electrónico, sino un webmail. El proceso es
casi el mismo, pero se usan conexiones HTTP al webmail de cada usuario en vez de usar SMTP o
IMAP/POP3.
Normalmente existe más de un servidor de correo (MX) disponible, para que aunque uno falle,
se siga pudiendo recibir correo.
Cuando se envía un correo electrónico entre dos sitios distantes, por lo general pasará por muchas
maquinas hasta llegar a su destino. Cualquiera de estas máquinas puede leer y registrar el mensaje. En
la práctica no existe la privacidad, a diferencia de lo que muchos piensas. Un sistema seguro y
ampliamente utilizado para brindar privacidad es PGP (Privacidad Bastante Buena).
PGP encripta los datos utilizando un cifrado de bloques llamado IDEA (Algoritmo Internacional de
Encriptación de Datos), que utiliza claves de 128bits. De manera conceptual, IDEA mezcla los bits en una
serie de rondas, y para la administración de claves utiliza RSA.
PGP soporta la compresión de texto, confidencialidad y firmas digitales, además de que proporciona
características de administración extensa de claves.
En informática, la World Wide Web, cuya traducción podría ser Red Global Mundial, es un sistema de
documentos de hipertexto y/o hipermedios enlazados y accesibles a través de Internet. Con un
navegador web, un usuario visualiza sitios web compuestos de páginas web que pueden contener texto,
imágenes, videos u otros contenidos multimedia, y navega a través de ellas usando hiperenlaces.
La www comenzó en 1989 en el CERN (Centro Europeo de Investigación Nuclear) y surgió por la
necesidad de lograr que los grandes grupos de investigación dispersos internacionalmente, colaboren
usando un conjunto siempre cambiante de informes, planos, dibujos, fotos y otros documentos.
Arquitectura
Desde el punto de vista del usuario, Web consiste en un enorme conjunto de documentos a nivel
mundial, generalmente llamados páginas web. Cada página puede contener vínculos a otras páginas
relacionadas en cualquier lugar del mundo.
Las páginas se ven mediante un programa llamado navegador, el cual obtiene la página solicitada,
interpreta el texto y los comandos de formateo que contienen, y despliega la página formateada en
pantalla, las cadenas de texto que son vínculos a otras páginas son llamadas hipervínculos y con solo
hacer un click podremos solicitar al navegador que cargue esa otra página web.
Un navegador es un programa que permite desplegar una página web y atrapar distintos eventos (clicks,
tipeos, etc.) que se realicen a los elementos de las páginas.
Las páginas se nombran utilizando URLs (Localizadores Uniformes de Recursos, por ejemplo
http://www.abc.com/home.html), que sirven efectivamente como nombre mundial de la página.
Una URL tiene tres partes:
Cuando trata de visualizarse una página en el navegador, éste realiza una serie de pasos:
Aunque in navegador es básicamente un intérprete HTML, la mayoría de los navegadores tienen otras
características que facilitan y mejoran la experiencia de navegación web. No todas las páginas contiene
HTML y un servidor puede regresar información adicional del tipo MIME sobre una página. El navegador
deberá utilizar un visor de acuerdo al tipo MIME del contenido, este visor puede venir incorporado al
navegador o se incorpora mediante plug-ins o aplicaciones auxiliares (Acrobat Reader por ejemplo).
Un navegador puede soportar el uso de varios protocolos como ser:
Cuando un usuario teclea un URL o hace click en un hipervínculo, el navegador lo analiza e interpreta la
parte entre http://(DNS)/ como un nombre DNS a buscar y realiza los pasos antes mencionados para
mostrar el contenido en el navegador.
Los pasos que da el servidor son:
El problema de este diseño es que cada solicitud requiere de un acceso al disco para obtener el archivo,
por lo que una mejora sería mantener en caché los n archivos más recientemente utilizados y verificar la
caché antes de ir al disco a buscar el archivo.
Un servidor moderno hace más que solo aceptar conexiones y regresar archivos:
Cookies
Cuando un navegador solicita un página, el servidor puede proporcionar información adicional junto con
la página, está información puede ser almacenada en una cookie en disco duro (si el cliente lo permite).
Una cookie puede pesar hasta 4KB y tener el siguiente formato:
En la forma más simple, las páginas web son estáticas, es decir, son simplemente archivos que se
encuentran en algún servidor esperando a ser recuperados. En este sentido, incluso un vídeo es una
página web estática porque es sólo un archivo.
El Lenguaje de Marcado de Hipertexto permite a los usuarios producir páginas web que incluyen texto,
gráficos y apuntadores a otras páginas web. Es un leguaje que sirve para describir cómo se van a
formatear los documentos.
Al integrar todos los comandos de marcado dentro de cada archivo HTML y al estandarizarlos, se hace
posible que cualquier navegador web lea y reformatee cualquier página web. La capacidad de
reformatear las páginas web tras su recepción es crucial porque una página pudo haberse producido en
una resolución y ahora debe tener que amoldarse a la resolución del cliente en el que se ejecuta.
En la actualidad HTML permite la creación de formularios, los cuales contiene campos y botones que
permiten a los usuarios proporcionar información o tomar decisiones y después enviar dicha
información a la página.
Cada interacción entre el cliente y el servidor consiste en una solicitud ASCII por parte del cliente
seguida por una respuesta MIME del servidor.
Documentos Dinámicos
Para ver por qué es necesaria la generación de contenido en el servidor, considere el uso de formularios,
como se describió anteriormente. Cuando un usuario llena un formulario y hace click en el botón de
envío, se envía un mensaje un mensaje al servidor con el contenido del formulario, junto con los campos
que el usuario llenó. Este mensaje no es el nombre de un archivo a regresar, lo que se necesita es
proporcionar el mensaje a un programa o a una secuencia de comandos para que sean procesados.
La forma tradicional de manejar formularios y otras páginas web interactivas es un sistema llamado CGI
(Interfaz de puerta de enlace común), que permite que los servidores web hablen con los programas y
las secuencias de comandos puedan aceptar los datos de entrada y generar respuestas HTML.
Otra forma común es incrustar pequeñas secuencia de comandos dentro de páginas HTML y hacer que
el servidor mismo sea quien las ejecute para generar la página (caso del PHP – Preprocesador de
Hipertexto).
Una tercera técnica es utilizar JSP (Java Server Pages) que funciona en forma similar a PHP solo que con
la sintaxis de Java.
Una cuarta técnica es ASP (Active Server Pages), que es la versión de Microsoft de PHP y JSP. Para
generar contenido dinámico utiliza lenguaje de secuencias de comandos propietarios de Microsoft como
Visual Basic Script.
En HTML tales secuencias son posibles con el uso de la etiquete <script>. El lenguaje de secuencias de
comandos más popular para el cliente es JavaScript, el cual está inspirado en la programación Java y es
un lenguaje de alto nivel el cual permite que en una simple línea se despliegue por ejemplo un cuadro
de dialogo o la espera de una entrada del usuario para almacenar el valor en una variable.
Mejoras de desempeño
Almacenamiento en caché, Una forma muy sencilla de mejorar el desempeño es guardar las
páginas que han sido solicitadas en caso de que se utilicen nuevamente. El procedimiento
común es que algún proceso, llamado proxy, mantenga el caché. Para utilizar el
almacenamiento de caché, un navegador puede configurarse para que todas las solicitudes de
páginas se le hagan a un proxy en lugar de al servidor real de la página. Si el proxy tiene la
página, la regresa de inmediato. De lo contrario, la obtiene del servidor, la agrega al caché para
uso posterior y la envía al cliente que la solicitó.
Las PC individuales con frecuencia ejecutan proxies a para obtener un rápido acceso a páginas
anteriormente visitadas. Puede configurarse para que toda una LAN por ejemplo utilice el
mismo proxy, lo que traería como ventaja un rápido acceso para cualquier persona que visite
una página que ya fue visitada por otra persona de la LAN (muchas ISP tiene proxy).
Determinar el tiempo que deben permanecer las páginas en caché es un poco difícil dado que si
la página cambia sus datos rápidamente, el acceso a la página en caché traería información
errónea. La forma de solucionar este problema es con el uso de heurística para “adivinar”
cuánto tiempo guardar la página (por ejemplo basándose en el tiempo que hace que no se
modifica la página). La segunda forma es que cada vez que se solicita una página que está en
caché, el proxy manda un mensaje al servidor que contiene la página y le pregunta cuándo fue la
última vez que se modifico la misma, si no ha sido modificada con respecto a la que está en
caché, se devuelve la de caché, si fue modificada se guarda y se devuelve la nueva página.
Las páginas web con contenido dinámico nunca son guardadas en caché debido a que los
parámetros pueden ser diferentes la siguiente vez.
Replicación del servidor, Otro método común que los servidores utilizan para mejorar el
desempeño es replicar su contenido en múltiples ubicaciones separadas considerablemente.
Esta técnica a veces se conoce como espejo. Los sitios espejo por lo general son estáticos. La
compañía decide dónde colocar los espejos, arregla un servidor en cada región y coloca el
contenido en cada ubicación.
Redes de entrega de contenido, Las compañías CDNs (redes de entrega de contenido) hablan
con proveedores de contenido (sitios web) y ofrecen entregar su contenido a los usuarios finales
de manera eficiente a cambio de una cuota. Los CDNs están conectados a una gran cantidad de
ISPs y ofrecen pagarles bien a cambio de que les permitan colocar en sus LANs un servidor
manejado de manera remota lleno de contenido valioso. Esto permite que los clientes del ISP un
excelente tiempo de acceso para el contenido del CDN.
Voz Sobre IP
Voz sobre Protocolo de Internet, también llamado Voz sobre IP, VozIP, VoIP (por sus siglas en inglés), es
un grupo de recursos que hacen posible que la señal de voz viaje a través de Internet empleando un
protocolo IP (Internet Protocol). Esto significa que se envía la señal de voz en forma digital en paquetes
en lugar de enviarla (en forma digital o analógica) a través de circuitos utilizables sólo para telefonía
como una compañía telefónica convencional o PSTN (sigla de Public Switched Telephone Network, Red
Telefónica Pública Conmutada).
Los Protocolos que son usados para llevar las señales de voz sobre la red IP son comúnmente referidos
como protocolos de Voz sobre IP o protocolos IP. El tráfico de Voz sobre IP puede circular por cualquier
red IP, incluyendo aquellas conectadas a Internet, como por ejemplo redes de área local (LAN).
Es muy importante diferenciar entre Voz sobre IP (VoIP) y Telefonía sobre IP.
La calidad de la voz (Voice Speach Quality) es evaluada por medio de dos parámetros:
Claridad: que refleja el grado de palabras y frases entendidas.
Fidelidad: califica el grado de reconocimiento de la personal que habla.
H.323
Es una recomendación del ITU-T (International Telecommunication Union), que define los protocolos
para proveer sesiones de comunicación audiovisual sobre paquetes de red.
H.323 es utilizado comúnmente para Voz sobre IP (VoIP, Telefonía de internet o Telefonía IP) y para
videoconferencia basada en IP. Es un conjunto de normas ITU para comunicaciones multimedia que
hacen referencia a los terminales, equipos y servicios estableciendo una señalización en redes IP. No
garantiza una calidad de servicio, y en el transporte de datos puede, o no, ser fiable; en el caso de voz o
vídeo, nunca es fiable. Además, es independiente de la topología de la red y admite pasarelas,
permitiendo usar más de un canal de cada tipo (voz, vídeo, datos) al mismo tiempo.
Modelo H.323
Puerta de enlace, conecta a internet con la red telefónica. Esta puerta de enlace conoce al
protocolo H.323 para comunicarse con internet y al protocolo PSTN para comunicarse con la red
telefónica.
Terminales, son los dispositivos de comunicación.
Gatekeeper, puede estar presente en una LAN y controlar los puntos finales bajo su jurisdicción
(Zona).
Tel1
PC5
PC2
PC1
Puerta
Internet Red
de
Zona Telefónica
enlace
Gatekeeper
Tel3
PC3 PC4 Tel2
Protocolos Utilizados
Una red telefónica necesita una serie de protocolos para poder funcionar. Uno de ellos es utilizado para
la codificación y decodificación de la voz. El sistema PCM (modulación por impulsos codificados) es
utilizado y codifica un solo canal de voz muestreado a 8000 veces por segundo con una muestra de 8
bits para poder proporcionar voz comprimida a 64kbps. El sistema H.323 permite esta compresión de
voz pero también permite otros protocolos como G.732.1 que permite una tasa de salida de hasta
5.3kbps con un factor de compresión de 12 veces y poca pérdida de calidad percibida.
Debido a que están permitidos múltiples algoritmos de compresión, se necesita un protocolo para
permitir que las terminales negocien cuál van a utilizar. Este protocolo se llama H.245 y permite
negociar otros aspectos de la conexión como la tasa de bits.
RTCP (Real Time Control Protocol) es necesario para el control de los canales RTP (Real-time Transport
Protocol). También se necesita un protocolo para establecer y liberar las conexiones, proporcionar tonos
de marcado, emitir sonidos de marcado y el resto de la telefonía estándar (Q.931). Las terminales
necesitan un protocolo para hablar con el gatekeeper y crear canales RAS (Registro/Admisión/Estado)
que permita a las terminales unirse y dejar una zona, solicitar y regresar ancho de banda, proporcionar
actualizaciones de estado, etc. Por último se necesita un protocolo para la transmisión en tiempo real de
los datos (RTP) el cual será manejado por RTCP.
Funcionamiento
Supongamos que una PC de una LAN quiere llamar a un teléfono remoto. La PC primero tiene que
descubrir al gatekeeper, por lo que difunde un paquete UDP de descubrimiento de gatekeeper al puerto
1718. Cuando el gatekeeper responde, la PC aprende su dirección IP y se registra con el gatekeeper
enviándole un mensaje RAS en un paquete UDP. Una vez aceptada la petición la PC envía al gatekeeper
un mensaje de admisión RAS solicitando ancho de banda. Sólo después de que se ha proporcionado el
ancho de banda, se puede establecer la llamada (esto se realiza para poder proporcionar la calidad de
servicio necesaria). La PC ahora establece una conexión TCP con el gatekeeper para comenzar el
establecimiento de la llamada y envía un mensaje Q.931 con el número telefónico al que se está
llamando (o la dirección IP y el puerto en caso de ser una llamada a otra PC). El gatekeeper responde
con otro mensaje Q.931 indicando que la llamada está en proceso y envía un mensaje Q.931 a la puerta
de enlace solicitando la llamada. La puerta de enlace realiza una llama común al teléfono deseado y la
central telefónica a la que está conectada el teléfono hace que este suene y a su vez envía una señal
Q.931 para indicar al PC que el teléfono está sonando. Cuando la persona levanta el tubo del teléfono la
central telefónica envía una señal Q.931 para indicar a la PC que la conexión está establecida.
Una vez establecida la conexión, el gatekeeper no cumple ninguna función y todos los paquetes que
salen de la PC van directo a la puerta de enlace. Se utiliza un protocolo H.245 para negociar parámetros
de la llamada (Ej. codecs que soportan, capacidades, etc.), una vez que cada lado conoce lo que el otro
soporta se establecen dos canales de datos unidireccionales y a cada uno se le asigna un códec y otros
parámetros. Terminadas todas las negociaciones se inicia el flujo de datos utilizando RTP, el flujo se
maneja con RTCP que juega un papel de control de congestionamiento. Cuando se termina la llamada, la
PC invocadora contacta al gatekeeper con un mensaje RAS para liberar el ancho de banda que se ha
asignado.
El Protocolo de Inicio de Sesiones es un protocolo desarrollado por el IETF, con la intención de ser el
estándar para la iniciación, modificación y finalización de sesiones interactivas de usuario donde
intervienen elementos multimedia como el video, voz, mensajería instantánea, juegos en línea y
realidad virtual.
La sintaxis de sus operaciones se asemeja a las de HTTP y SMTP, los protocolos utilizados en los servicios
de páginas Web y de distribución de e-mails respectivamente. Esta similitud es natural ya que SIP fue
diseñado para que la telefonía se vuelva un servicio más en Internet.
SIP es uno de los protocolos de señalización para voz sobre IP, al igual que H.323, sólo que a diferencia
de este último que es un conjunto de protocolos, SIP está compuesto por un solo módulo. SIP define a
los números telefónicos como URLs, a fin de que las páginas web puedan contenerlos, lo cual permite
hacer un click e iniciar una llamada telefónica.
Servicio brindados
SIP puede establecer sesiones de dos partes (llamadas de teléfono ordinarias), de múltiples partes (en
donde todos pueden oír y hablar) y de multidifusión (un emisor y muchos receptores).
Las sesiones pueden contener audio, video o datos, pero SIP a diferencia de H.323, solo maneja el
establecimiento, manejo y liberación de sesiones. Para el transporte de datos se utilizan otros
protocolos como RTP/RTCP. SIP es un protocolo de capa de aplicación y puede ejecutarse sobre TCP o
UDP.
SIP permite localizar al invocado (quien tal vez no esté en la máquina de su casa), determinar las
capacidades de éste y manejar mecanismos de establecimiento y terminación de llamadas.
Funcionamiento
Los números SIP se representan como URLs que utilizan el esquema SIP “sip:carlos@frc.utn.edu.ar”. Los
URLs de SIP también pueden contener direcciones IPv4 e IPv6 o números telefónicos reales. El protocolo
SIP se basa en texto y está modelado en HTTP. Una parte envía un mensaje en texto ASCII que consiste
en un nombre del método (en la primera línea) seguido por líneas adicionales que contienen
parámetros. Muchos de estos parámetros son los utilizados por MIME para permitir que SIP interactúe
con las aplicaciones existentes en internet.
Para establecer una sesión, el invocador realiza una conexión TCP con el invocado y envía un mensaje de
invitación (también puede hacerlo enviando un paquete UDP). Este mensaje contiene entre otras cosas,
las capacidades, los tipos de medios y los formatos del invocador. Si el invocado acepta la llamada,
responde enviando un paquete con un código HTTP de aceptación e informa sus capacidades, tipos de
medios y formatos. La conexión se realiza por un acuerdo de tres vías por lo que el invocador envía un
ACK para terminar el protocolo y avisar que recibió la aceptación.
Cualquiera de las dos partes puede solicitar finalizar la sesión enviando un mensaje de finalización, al
momento en que la otra parte responde a este mensaje, la sesión queda concluida.
SIP puede llamar a un teléfono normal pero necesita de una puerta de enlace que comunique a internet
con la red telefónica.
Dentro del estándar RFC 3550 se define un protocolo adicional para el envío de datos de control y datos
de mediciones realizadas durante la transmisión. Se conoce como RTCP RTP Control Protocol. Los
paquetes RTCP se envían periódicamente dentro de la secuencia de paquetes RTP.
Características generales
Aunque RTP tiene algunas características de protocolo de nivel de transporte (Según el modelo OSI), es
transportado usando UDP. UDP no maneja sesiones ni mecanismos que garanticen la recepción de los
paquetes, pero es usado por RTP en lugar de TCP debido a que reduce el tiempo de envío de los
paquetes a través de la red. En aplicaciones de voz y video es más importante una transmisión rápida
que la pérdida de algunos paquetes durante el recorrido.
RTP implementa dos mecanismos principales para garantizar una transmisión de voz: El uso de Número
de secuencia y un Registro de tiempo. En redes IP es común que los paquetes tomen caminos diferentes
para llegar al destino. En aplicaciones de datos esto no es demasiado importante pero para voz y video
puede representar una falla detectable por el oído del usuario final. Por esto RTP usa el número de
secuencia para reorganizar los paquetes en caso de que lleguen en desorden y el Registro de tiempo es
usado para ajustar los intervalos de muestreo de acuerdo a la secuencia original.
El paquete RTP se ubica en el espacio de datos de UDP. RTP no tiene asignado un puerto UDP específico,
debido a que es posible que varias aplicaciones de un mismo usuario utilicen RTP. Existen sistemas que
no soportan el uso de un mismo puerto por aplicativos diferentes. De acuerdo a las especificaciones se
utiliza un número par elegido al azar, y RTCP utiliza el número impar consecutivo.
Número de secuencia: de 2 bytes, es un número que se incrementa por cada paquete enviado.
Es usado para determinar pérdida de paquetes y recuperar correctamente la secuencia de voz.
RTP Control Protocol (RTCP) es un protocolo de comunicación que proporciona información de control
que está asociado con un flujo de datos para una aplicación multimedia (flujo RTP). Trabaja junto con
RTP en el transporte y empaquetado de datos multimedia, pero no transporta ningún dato por sí mismo.
Se usa habitualmente para transmitir paquetes de control a los participantes de una sesión multimedia
de streaming. La función principal de RTCP es informar de la calidad de servicio proporcionada por RTP.
Este protocolo recoge estadísticas de la conexión y también información como por ejemplo bytes
enviados, paquetes enviados, paquetes perdidos o jitter entre otros. Una aplicación puede usar esta
información para incrementar la calidad de servicio (QoS), ya sea limitando el flujo o usando un códec de
compresión más baja. En resumen. RTCP se usa para informar de la QoS (Quality of Service). RTCP por sí
mismo no ofrece ninguna clase de cifrado de flujo o de autenticación.
Funciones de RTCP
Información del desarrollo de una aplicación: Esta función es muy útil para aplicaciones de
velocidad adaptativa. Un ejemplo de su utilidad seria reducir la congestión mediante el uso de
un esquema de compresión más agresivo o enviar un stream de más alta calidad cuando hay
poca congestión. También puede resultar útil para diagnosticar problemas de red.
Correlacionar y sincronizar diferentes media streams procedentes del emisor: RTCP utiliza el
concepto de nombre canónico (CNAME) que se asigna al emisor y garantiza que streams que no
tienen el mismo identificador se puedan sincronizar y ordenar correctamente (audio y video de
una misma emisión).
Transferir la identidad de un emisor: Se transmite en el paquete de descripción de la fuente
explicado más adelante en el apartado Tipo de paquetes.
Tipos de paquetes
Informes de emisor: Permiten al emisor activo en una sesión informar sobre estadísticas de
recepción y transmisión.
Informes de receptor: Los utilizan los receptores que no son emisores para enviar estadísticas
sobre la recepción.
Descripción de la fuente: Contiene los CNAMEs y otros datos que describen la información de
los emisores.
Paquetes de control específicos de la aplicación: Varios paquetes RTCP pueden ser enviados en
un mismo mensaje UDP.
Unidad 5: Seguridad
Seguridad
Con el uso de redes públicas como ser internet se han tenido que implementarse sistemas de seguridad
y sobre todo para algunos servicios como las transacciones bancarias y los pagos con tarjetas de crédito,
entre otros.
La solución a estos problemas no debería encontrarse en una sola capa de OSI, la seguridad debería
estar dispersa por las capas del modelo para que deban pasarse varios niveles de obstáculos antes de
ingresar a la información. Por ejemplo podría colocarse seguridad en el área donde se encuentran
físicamente los datos, encriptarse los datos de la capa de enlace de datos y de red, instalar firewalls en la
capa de red, bloquear puertos inseguros de la capa de transporte, mandar los datos cifrados de extremo
a extremo, control de acceso en las aplicaciones, etc.
Algunos conceptos
Seguridad: Una serie de mecanismos que minimizan las vulnerabilidades de los recursos.
Criptoanálisis: Ciencia utilizada para descifrar mensajes (Utilizada por los atacantes).
Criptosistema: Es un conjunto de Algoritmos, Texto en Claro, Texto Cifrado y Clave.
Seguridad de la red: Implica la seguridad de cada uno de los componentes de la red.
Hacker: Es un programador con los conocimientos necesarios para superar las barreras de
seguridad, su objetivo normalmente es no ser detectado y dejar algún tipo de mensaje sin hacer
daño.
Cracker: Es similar a un hacker solo que sus intenciones son el robo de información para obtener
un beneficio personal.
Ataque: Intento de sabotaje de un recurso de la empresa.
o Compromiso, se obtiene el control de algún elemento de la red.
o Modificación, se modifica algún mensaje o dato.
o Suplantación, se hace pasar por otra persona.
o Reenvío, se obtiene un mensaje que más tarde será reenviado para duplicar su efecto.
o Denegación de servicio, se impide que algún componente de la red cumpla con su
función.
Criptografía
La criptografía “es el arte de escribir y enviar mensajes mediante claves secretas, de manera que sea
imprescindible conocerla para descifrarlo”.
La encriptación puede ser por responsabilidad del usuario o por responsabilidad de la red:
Encriptado a nivel de enlace: El mensaje se cifra y descifra en cada nodo en su viaje a través de
la red.
Encriptado extremo a extremo: El mensaje se cifra en el origen y se descifra en el destino, tiene
como ventaja que los datos son protegidos durante todo su recorrido.
Tipos de algoritmos
Algoritmos simétricos
Se denomina “Algoritmo Simétrico”, a todo proceso criptográfico que utilice en su accionar, una misma
clave para encriptar y desencriptar.
Para que funcione correctamente, tanto el emisor como el receptor del mensaje, deben encontrarse en
conocimiento de la clave a utilizar, transformando ésta en su “Secreto Compartido”.
Debido a ello, la existencia de un canal seguro a través del cual se pueda realizar el intercambio de
claves, se convierte en un requisito indispensable.
Pasos para la transmisión y recepción de un mensaje:
La mayor ventaja es su velocidad y que suelen ser difíciles de romper, su mayor debilidad esta en el
hecho de que deben enviarse la clave para que ambos la conozcan.
El texto llano se encripta en bloques de 64bits, produciendo 64bits de texto cifrado. El algoritmo, que se
parametriza mediante una clave de 56bits tiene 19 etapas diferentes. La primera etapa es una
transposición del texto llano de 64bits independiente de la clave. La última etapa es el inverso de esta
transposición. La etapa previa a esta última intercambia los 32bits de la izquierda y los 32 bits de la
derecha. Las 16 etapas restantes son funcionalmente idénticas, pero se parametrizan mediante
diferentes funciones de la clave. El algoritmo se diseño para que la desencriptación se haga con la
misma clave de encriptación y con el proceso inverso.
Cifrado 3DES
Dado que la longitud de clave que utiliza DES es muy corta, esta fue incrementa utilizando cifrado triple.
Aquí se utilizan 2 claves y 3 etapas. En la primera etapa, el texto llano se encrita utilizando DES con la
clave 1. En la segunda etapa, DES se ejecuta en modo desencriptación utilizando la clave 2. La tercer
etapa consiste en volver a encriptar con DES con la clave 1.
Se utilizan 2 claves en vez de 3 dado que 168bit de clave (3x56bit) serían una sobrecarga innecesaria
para la capacidad computacional actual.
Es uno de los algoritmos simétricos más duros de romper y uno de los más utilizados.
Cifrado AES
Es el sucesor de DES, fue creado de manera pública y abierta. Se necesitaba un sistema de cifrado por
bloques diseñado para manejar longitudes de clave y bloque variables de 128 bits a 256 bits.
El resultado de estas propuesta públicas fue la creación de Rijndael, este utiliza sustitución y
permutaciones junto con múltiples rondas. El número de rondas depende del tamaño de la clave y del
bloque pero para un bloque de 128bits con clave de 128bits se utilizan 10 rondas para el cifrado.
Algoritmos Asimétricos
Los algoritmos asimétricos, o de clave pública, utilizan dos claves en su proceso de cifrado y descifrado.
Ambas claves suelen ser referidas como clave pública y clave privada.
En este tipo de esquema, el remitente utiliza la clave pública del destinatario para cifrar el mensaje, el
cual sólo puede ser descifrado por la clave privada del mismo.
Ambos extremos de la comunicación deben estar en conocimiento de la clave pública, lo cual no
representa riesgo.
La pérdida de la clave privada, abriría una brecha de seguridad en el criptosistema.
Los algoritmos de encriptación (E) y desencriptación (D) deben cumplir los siguientes requisitos:
D(E(P))=P
Es excesivamente difícil deducir D a partir del conocimiento de E.
E no puede descifrarse mediante un ataque de texto a un texto llano seleccionado.
Una de las ventajas más apreciables radica en la posibilidad por parte de quien desea recibir información
cifrada de hacer llegar a los emisores su clave pública, como desventaja estos algoritmos suelen utilizar
claves de mayor tamaño, suelen ser más lentos que los simétricos y no son utilizados para grandes
volúmenes de información dado que necesitan muchos recursos para funcionar.
RSA
El sistema criptográfico con clave pública RSA es un algoritmo asimétrico cifrador de bloques, que utiliza
una clave pública, la cual se distribuye (en forma autenticada preferentemente), y otra privada, la cual
es guardada en secreto por su propietario.
Una clave es un número de gran tamaño, que una persona puede conceptualizar como un mensaje
digital, como un archivo binario o como una cadena de bits o bytes.
Cuando se quiere enviar un mensaje, el emisor busca la clave pública de cifrado del receptor, cifra su
mensaje con esa clave, y una vez que el mensaje cifrado llega al receptor, éste se ocupa de descifrarlo
usando su clave oculta.
Los mensajes enviados usando el algoritmo RSA se representan mediante números y el funcionamiento
se basa en el producto de dos números primos grandes (mayores que 10100) elegidos al azar para
conformar la clave de descifrado.
PKI
El término PKI o en su acepción en español “Infraestructura de Clave Pública”, es el utilizado para definir
la combinación de software, tecnologías de encriptación y servicios, necesaria para dotar a un sistema
determinado de las siguientes características principales:
Integridad
Confidencialidad
Autenticación
No Repudio
Funciones de Hash
Se define como una operación que se realiza sobre un conjunto de datos de cualquier tamaño de tal
forma que se obtiene como resultado, otro conjunto de datos denominado “resumen”.
El “resumen” tiene un tamaño fijo e independiente del tamaño original, que además tiene la propiedad
de estar asociado unívocamente a los datos iniciales.
Es prácticamente imposible encontrar dos mensajes distintos que tengan un resumen hash idéntico.
Gracias a sus características, las aplicaciones principales de las Funciones de Hash, suelen ser
fundamentalmente tres:
Contraseñas
Firmas Digitales
Integridad y Autenticación
Firma Digital
La Firma Digital, es básicamente una herramienta tecnológica, que permite garantizar la autoría e
integridad de los documentos digitales.
Desde el punto de vista informático, una Firma Digital, puede ser vista como un grupo de datos
asociados a un mensaje digital.
Técnicamente hablando, el esquema de Firma Digital se basa en la utilización combinada de Criptografía
Asimétrica o de Clave Pública y de Funciones de Hash o Resumen.
Un documento digital firmado permite que el receptor pueda verificar la identidad del transmisor, que
el transmisor no pueda repudiar (negar) el contenido del mensaje y que el receptor no haya podido
elaborar el mensaje el mismo.
Firmas de clave simétrica: Existe una autoridad central que conoce todas las claves y todos
confían en él. Cada usuario escoge una clave secreta y la lleva a esta entidad. Si un usuario A
quiere enviar un mensaje a un usuario B, encripta el mensaje con su clave 𝐾𝐴 el cual contiene el
mensaje propiamente dicho, el destinatario, un número aleatorio 𝑅𝐴 y un tiempo que indica que
es un mensaje nuevo; este mensaje es enviado a la autoridad central. Esta autoridad recibe el
mensaje de A y lo desencripta (dado que conoce su clave) y envía el mensaje a B firmado con la
clave de la autoridad central, el cual contendrá el mensaje propiamente dicho, el remitente y el
tiempo que indica que es un nuevo mensaje.
Firmas de clave pública: Un problema estructural del uso de la criptografía de clave simétrica
para las firmas digitales es que todos tiene que confiar en una entidad central. La criptografía de
clave pública para firmas digitales permite que A envía un mensaje de texto plano P, al
destinatario B transmitiendo 𝐸𝐵 (𝐷𝐴 𝑃 ) como A conoce su clave privada y la clave pública de B,
puede realizar esa transmisión. Cuando B recibe el mensaje, lo transforma usando su clave
privada por lo que obtiene 𝐷𝐴 𝑃 y con el uso de 𝐸𝐴 (clave pública de A) obtiene el mensaje P.
Cualquier algoritmo de clave pública puede ser utilizado para firmas digitales, pero uno de los
más usados es RSA.
Certificado Digital
No es más que un “documento digital” otorgado por un tercero de confianza, que da fe de la vinculación
entre una clave pública y un individuo o entidad.
Puesto que los certificados digitales suelen ser expedidos por una entidad reconocida, en la que ambos
participantes de una comunicación confían, tanto emisor como receptor tienen la oportunidad,
certificados digitales de por medio, de prevenir que un tercero utilice una clave pública propia, para
suplantar su identidad.
La Autoridad de Registro (RA) es la encargada de administrar el alta y baja, de toda aquella solicitud de
emisión de certificados o revocación de los mismos.
Sobre Digital
El esquema general de funcionamiento, que suele ser referido como el esquema de sobre digital,
comprende:
Un usuario A quiere enviar un mensaje M a otro usuario, B por ejemplo.
El usuario A procede a firmar digitalmente dicho mensaje M. Este proceso comprende el cálculo
del resumen, producido por una función Hash del mensaje M, y la encripción de este resumen
utilizando la clave privada del usuario A. Para la realización de este proceso se emplea un
algoritmo de firma digital como DSA, por ejemplo.
A continuación se procede a encriptar el mensaje M utilizando un algoritmo de encripción
simétrico, como por ejemplo 3DES, AES, etc. Existen implementaciones que también encriptan
el resultado del proceso de firma digital Como se estudió anteriormente, es necesario distribuir
la clave secreta, utilizada por el algoritmo de encripción simétrico, al destinatario del mensaje,
en este caso el usuario B. Para esta tarea se utiliza un algoritmo de encripción asimétrico, como
RSA.
A los fines de poder cumplir con la etapa anterior, el usuario A necesita conocer la clave pública
del usuario B, esto es posible gracias a la intervención de una Autoridad de Certificación (CA),
quien brindará un certificado digital confiable al usuario A, para que éste pueda encriptar
asimétricamente la clave secreta empleada en la encripción del mensaje M.
Con lo realizado hasta el momento, el usuario A está en capacidad de preparar el "sobre digital"
para su envío al destinatario, en este caso el usuario B. Este "sobre digital" estará compuesto
por el mensaje M, encriptado simétricamente, la clave secreta utilizada en este proceso,
encriptada asimétricamente con la clave pública del usuario B y la firma digital del mensaje M, la
cual puede estar encriptada también, en forma simétrica, de la misma manera que el mensaje
original.
Una vez que el usuario B recibe el "sobre digital" procede a realizar la apertura de su contenido,
para lo cual desencripta la clave secreta utilizando su propia clave privada.
Con la clave secreta en su poder, el usuario B desencripta el mensaje M y la firma digital del
mismo, si es que ésta también estaba encriptada.
A continuación procede a comprobar la identidad del usuario A, desencriptando la firma digital
con la clave pública del usuario A, dado que la firma se encontraba encriptada con su clave
privada.
Posteriormente el usuario B procede a calcular el resumen de la función de Hash del mensaje M,
ya desencriptado, y a comparar dicho resumen con el que formaba parte del contenido de la
firma digital del mensaje, con la finalidad de validar la integridad del mismo.
Firewalls
Un cortafuegos (o firewall en inglés) es una parte de un sistema o una red que está diseñado para
bloquear el acceso no autorizado, permitiendo al mismo tiempo comunicaciones autorizadas. Se trata
de un dispositivo o conjunto de dispositivos configurados para permitir, limitar, cifrar, descifrar, el
tráfico entre los diferentes ámbitos sobre la base de un conjunto de normas y otros criterios.
Los cortafuegos pueden ser implementados en hardware o software, o una combinación de ambos. Los
cortafuegos se utilizan con frecuencia para evitar que los usuarios de Internet no autorizados tengan
acceso a redes privadas conectadas a Internet, especialmente intranets. Todos los mensajes que entren
o salgan de la intranet pasan a través del cortafuegos, que examina cada mensaje y bloquea aquellos
que no cumplen los criterios de seguridad especificados. También es frecuente conectar al cortafuegos a
una tercera red, llamada zona desmilitarizada o DMZ, en la que se ubican los servidores de la
organización que deben permanecer accesibles desde la red exterior. Un cortafuegos correctamente
configurado añade una protección necesaria a la red, pero que en ningún caso debe considerarse
suficiente. La seguridad informática abarca más ámbitos y más niveles de trabajo y protección.
Tipos de cortafuegos
Ventajas de un cortafuegos:
Limitaciones de un cortafuegos
Las limitaciones se desprenden de la misma definición del cortafuegos: filtro de tráfico. Cualquier tipo
de ataque informático que use tráfico aceptado por el cortafuegos (por usar puertos TCP abiertos
expresamente, por ejemplo) o que sencillamente no use la red, seguirá constituyendo una amenaza. La
siguiente lista muestra algunos de estos riesgos:
Un cortafuegos no puede proteger contra aquellos ataques cuyo tráfico no pase a través de él.
El cortafuegos no puede proteger de las amenazas a las que está sometido por ataques internos
o usuarios negligentes. El cortafuegos no puede prohibir a espías corporativos copiar datos
sensibles en medios físicos de almacenamiento (discos, memorias, etc.) y sustraerlas del edificio.
El cortafuegos no puede proteger contra los ataques posibles a la red interna por virus
informáticos a través de archivos y software. La solución real está en que la organización debe
ser consciente en instalar software antivirus en cada máquina para protegerse de los virus que
llegan por cualquier medio de almacenamiento u otra fuente.
El cortafuegos no protege de los fallos de seguridad de los servicios y protocolos cuyo tráfico
esté permitido. Hay que configurar correctamente y cuidar la seguridad de los servicios que se
publiquen en Internet.
Hay dos políticas básicas en la configuración de un cortafuegos que cambian radicalmente la filosofía
fundamental de la seguridad en la organización:
Política restrictiva: Se deniega todo el tráfico excepto el que está explícitamente permitido. El
cortafuegos obstruye todo el tráfico y hay que habilitar expresamente el tráfico de los servicios
que se necesiten.
Política permisiva: Se permite todo el tráfico excepto el que esté explícitamente denegado.
Cada servicio potencialmente peligroso necesitará ser aislado básicamente caso por caso,
mientras que el resto del tráfico no será filtrado.
La política restrictiva es la más segura, ya que es más difícil permitir por error tráfico potencialmente
peligroso, mientras que en la política permisiva es posible que no se haya contemplado algún caso de
tráfico peligroso y sea permitido por omisión.
IPSec
El objetivo principal de una VPN es el de garantizar la seguridad de los datos en su tránsito por una red
intermedia no segura. El término IPSec es una abreviatura de Internet Protocol SECurity. Y se refiere a la
suite de protocolos (AH, ESP, FIP-140-1 y otros estándares) que fueron desarrollados por el IETF
(Internet Engineering Task Force). El interés principal de este desarrollo fue el de proveer una estructura
de seguridad para la tercer capa (Capa de Red) del modelo OSI.
IPSec es un método de protección de paquetes IP. Esta protección consiste en la autenticación de los
datos originales, integridad de la conexión y confidencialidad del contenido de los datos.
IPSec provee un estándar robusto que provee seguridad a IP y a los protocolos de capas superiores (UDP
y TCP) y es transparente a los usuarios. Un aspecto sorprendente de IPSec es que a pesar de trabajar
sobre la capa de Red, es “orientado a conexión”, esta “conexión” está dada por las SA que son
asociaciones de seguridad.
Protocolos de IPSec:
El protocolo IPSec (AH y ESP) puede ser usado para proteger tanto al paquete IP completo como a los
mensajes de protocolos de Capas Superiores que constituyen la carga útil (payload) del paquete IP.
• Modo Transporte: es usado para proteger a los protocolos de capa superior. En este modo, es
insertado un encabezado IPSec entre el encabezado IP y el encabezado del protocolo de capa
superior.
• Modo Túnel: es usado para proteger todo el datagrama IP. En este modo todo el paquete IP a
ser protegido es encapsulado en otro datagrama IP y el encabezado IPSec se inserta entre el
encabezado del paquete IP externo y el interno.
A causa de los métodos de construcción, el modo transporte solo puede usarse para proteger paquetes
donde el punto final del enlace de comunicación es también el punto final criptográfico.
El modo túnel puede ser usado en lugar de modo transporte y también puede utilizarse por gateways
para proveer servicios de seguridad en nombre de otras entidades de red por ejemplo, una VPN.
En casos más recientes, los extremos de comunicación son aquellos especificados en el encabezado
interior o protegidos, y los extremos criptográficos son aquellos que llevan el encabezado IP externo.
Como se ha visto, IPSec se puede implementar en sistemas finales o en dispositivos (gateway) de
seguridad tales como routers y firewall.
ESP es el protocolo IPSec que provee confidencialidad, integridad de datos y autenticación del origen de
datos de los paquetes IP, y también provee protección contra ataques de repetición (replay). Esto se
realiza insertando un nuevo encabezado un encabezado ESP después de un encabezado IP y antes del
dato a ser protegido tanto del protocolo de capa superior o un datagrama completo y anexando una
cola o “trailer” ESP. Es un nuevo protocolo IP y un paquete ESP es identificado por el protocolo por el
campo “Protocolo” en el encabezado IPv4.
Dado que ESP provee confidencialidad y autenticación, existen múltiples algoritmos definidos en las SA
(contrato entre quienes se comunican) - uno para confidencialidad llamado “cifrador”, y el otro para
autenticación llamado el “autenticador”. Cada SA de ESP puede tener al menos un cifrador y un
autenticador. Es posible definir un cifrador NULO o un autenticador NULO y tener ESP sin encriptación o
ESP sin autenticación respectivamente, pero es ilegal tener ambos NULOS dentro de una SA ESP
individual. Es ilegal debido a que no solo no tiene sentido sobrecargar el sistema, sino que este no
provee seguridad.
En el procesamiento del paquete ESP: Primero verifica el número de secuencia, entonces verifica la
integridad de los datos, entonces desencripta los datos. Dada que la desencriptación es al último, el
número de secuencia (evita el replay) y la autenticación de datos deben estar en texto claro (para no
gastar poder de procesamiento en desencriptar elementos que serán descartados).
Como ESP, AH provee integridad de datos, autenticación de la fuente de datos y protección contra
ataques de replay. Este no provee confidencialidad. Debido a esto es mucho más simple que ESP; está
constituido de solo un header ya que no contiene un trailer. Además, todos los campos del encabezado
AH están en texto claro (sin encriptar).
El encabezado AH, análogo al ESP , contiene un SPI para ayudar a localizar al SA por medio del cual es
procesado el paquete, un número de secuencia contra el ataque de replay, y un campo de autenticación
de datos que contiene el compendio de la clave MAC usada para seguridad del paquete. Puesto que AH
no provee confidencialidad usando cifrado simétrico en modo CBC, no es necesario un relleno (ESP tenía
el tráiler para que el paquete entero fuera múltiplo de otra cosa).
La autenticación de AH difiere de ESP. AH autentica al encabezado externo del paquete IP. El campo
protocolo de un datagrama IPv4 protegido con AH es “51” indicando que siguiendo al encabezado IP le
sigue un encabezado AH.
Arquitecturas o Modos
En la práctica AH en modo túnel no es utilizado dado que protege los mismos datos que AH en modo
transporte.
Modo Transporte
El modo transporte de IPSec puede usarse solo cuando se desea seguridad entre ambos extremos finales
(end to end). Los routers miran en la mayoría de las veces la capa de red cuando tiene que tomar
decisiones de enrutamiento y no debieran cambiar nada más allá del encabezado de la capa de red.
ESP+AH
Cuando son usados AH y ESP en modo transporte, ESP debiera ser aplicado primero. La razón es obvia.
Dado que se desea el mayor nivel posible de datos con integridad si el paquete es protegido usando AH
después de que es protegido con ESP, entonces la integridad de datos se aplica a la carga útil ESP, que
contiene la carga útil de transporte como se muestra en la figura.
Modo Túnel
IPSec en modo túnel es usado normalmente cuando el destino final de los paquetes es diferente del
punto final de seguridad como se muestra en la figura. El modo túnel es también usado en casos donde
la seguridad es provista por un dispositivo que no origina paquetes como es el caso de VPN (supongo
que lo dice porque el router puede hacer la VPN y el router no origina paquetes).
En el caso de modo túnel, IPSec encapsula al paquete IP con en Header IPSec y agrega un Header IP
externo como se muestra la figura.
Un paquete IPSec en modo túnel tiene dos encabezados IP, uno interior y otro exterior. El encabezado
interior es construido por el host y el exterior es agregado por el dispositivo que provee servicio de
seguridad (ya sea un host o un router). También soporta túneles “anidados”. El
tunneling anidado es cuando el paquete de túnel es nuevamente tunelizado en otro túnel, como se
muestra en la figura.
Las SA son el contrato entre dos entidades que se comunican. Ellas determinan los protocolos IPSec
usados para asegurar los paquetes, la transformación, las claves y la duración por el cual las claves son
válidas. Cualquier implementación IPSec permite construir una base de datos SA (SADB - SA database)
que mantiene las SA que usa IPSec para proteger los paquetes. Las SA son de una vía. Si dos host, A y B,
están comunicándose seguramente usando ESP, entonces el host A debe tener una SA de salida para
procesar paquetes salientes y una SA de entrada para procesar paquetes entrantes. El host B también
crea dos SA para procesar estos paquetes. Las SA de salida de host A y la SA de entrada del host B deben
compartir los mismos parámetros de criptografía, tales como las claves. Existe una SA por cada
protocolo. Sidos host, A y B se comunican en forma segura usando AH y ESP, entonces cada host
construye una SA separada para cada protocolo.
Existe otro componente de la arquitectura IPSec llamado la base de datos de políticas de seguridad (SPD
- Security Policy Database). El SPD trabaja en conjunción con el SADB en el procesamiento de paquetes.
La política es un componente extremadamente importante de la arquitectura IPSec. La política define
las características de seguridad entre dos entidades. Esto define que protocolos para usar en qué modo
y qué transformación usar. Esto también define como los paquetes IP son tratados.
Anti-Repetición (Anti-Replay)
Ambos protocolos suministran servicio antireplay para prevenir contra ataque de denegación de servicio
(DOS - Denial Of Service) en el cual los paquetes viejos son reenviados por un atacante para causar que
la CPU del receptor consuma ciclos de procesamiento.
Los paquetes IPSec están protegidos contra ataques replay usando un número de secuencia y un
mecanismo de “ventana deslizante”. (Explicación del funcionamiento pág. 21 VPN-IPSec.pdf).
El propósito de IKE es establecer parámetros de seguridad compartida para autenticar las claves, en
otras palabras, la asociación de seguridad (SA), entre los pares IPSec.
IKE define el formato del paquete, los tiempos de retransmisión y los requisitos para la construcción de
los mensajes. IKE usa el concepto de SA (Security Association) pero la construcción física de una SA IKE
es diferente que en IPSec. La SA IKE define la vía por la cual dos extremos comunicantes, por ejemplo,
cual algoritmo usa IKE para encriptar el tráfico, cómo autenticar, etc. La SA IKE es entonces usada para
producir número de SA IPSec entre pares.
La SA IPSec establecida por IKE puede opcionalmente mejorar el envío secreto de claves.
Virtual Private Network (VPN)
La Red Privada Virtual es una tecnología de red que permite una extensión de la red local sobre una red
pública o no controlada, como por ejemplo Internet, con muchas propiedades de las redes privadas. Se
llaman virtuales porque son sólo una ilusión y son construidas normalmente sobre internet. Un diseño
común es equipar cada oficina con un firewall y crear túneles a través de internet con el uso de IPSec
con ESP, entre todos los pares de oficinas.
Si IPSec se utilizara para el proceso de enrutamiento, entonces sería posible agregar todo el tráfico entre
cualquiera de los dos pares de oficinas con una sola SA encriptada y autenticada, con lo que se
proporcionaría control de integridad, confidencialidad e incluso inmunidad considerable al análisis de
tráfico.
Cuando se inicia el sistema, cada firewall tiene que negociar los parámetros de su SA, incluyendo
servicios, modos, algoritmos y claves. Una vez establecidas las SA, el tráfico puede comenzar a fluir. Para
un router en internet, un paquete que viaja a través de un túnel VPN es sólo un paquete ordinario. Lo
único extraño es la presencia del encabezado IPSec después del encabezado IP.
Una ventaja principal de oranizar de esta forma una VPN es que es completamente transparente para
todo software de usuario. Los firewalls configuran y manejas las SA. La única persona que está
consciente de esta configuración es el administrador del sistema, quien tiene que configurar y manejar
los firewalls.
Ventajas
Tipos de conexión
Conexión de acceso remoto: Una conexión de acceso remoto es realizada por un cliente o un
usuario de una computadora que se conecta a una red privada, los paquetes enviados a través
de la conexión VPN son originados al cliente de acceso remoto, y éste se autentica al servidor de
acceso remoto, y el servidor se autentica ante el cliente.
Conexión VPN router a router: Una conexión VPN router a router es realizada por un router, y
este a su vez se conecta a una red privada. En este tipo de conexión, los paquetes enviados
desde cualquier router no se originan en los routers. El router que realiza la llamada se
autentifica ante el router que responde y este a su vez se autentica ante el router que realiza la
llamada y también sirve para la intranet.
Conexión VPN firewall a firewall: Una conexión VPN firewall a firewall es realizada por uno de
ellos, y éste a su vez se conecta a una red privada. En este tipo de conexión, los paquetes son
enviados desde cualquier usuario en Internet. El firewall que realiza la llamada se autentica ante
el que responde y éste a su vez se autentica ante el llamante.
Seguridad Inalámbrica
Se han diseñado protocolos para que la seguridad en una LAN inalámbrica sea tan buena como la de una
LAN cableada, uno de ellos es WEP (Privacidad Inalámbrica Equivalente) que trabaja a nivel de la capa de
enlace de datos. Cuando se habilita la seguridad, cada estación tiene una clave secreta que comparte
con la estación base (la forma en que se intercambian las claves no está especificada por el estándar) y
la utiliza para cifrar y descifrar la información. La encriptación WEP utiliza cifrado de flujo con base en el
algoritmo RC4 que genera un flujo de claves al cual se le aplica un XOR con el texto plano para dar lugar
al texto cifrado.
Bluetooth tiene un rango más corto que las LAN inalámbricas, pero tiene tres modos de seguridad, que
van desde ninguna seguridad, hasta la encriptación completa de datos y control de integridad. Bluetooth
proporciona seguridad en múltiples capas, pero la seguridad real inicia cuando el esclavo pide un canal
al maestro y se da por hecho que los dos dispositivos comparten una clave secreta establecida con
anticipación. Un problema de seguridad de bluetooth es que solo autentica dispositivos y no usuarios,
por lo que un robo de un dispositivo podría abrir una brecha de seguridad (aunque a nivel de aplicación
podría pedírsele un password que solucione este problema).
WAP (Wireless Application Protocol) utiliza protocolos estándares en todas las capas y como está
basado en IP, soporta el uso de IPSec en la capa de red. En la capa de transporte, las conexiones TCP
pueden protegerse con el uso de TLS y en las capas superiores utilizar autenticación de cliente HTTP por
ejemplo.
La capa de sockets seguros constituye una conexión segura entre dos sockets, incluyendo:
SSL es una nueva capa colocada entre la capa de aplicación y la de transporte, que acepta solicitudes del
navegador enviándolas a través TCP para transmitirlas al servidor. Una vez que se ha establecido la
conexión segura, el trabajo principal de SSL, se conoce como HTTPS (HTTP Seguro, aunque es el
protocolo HTTP estándar). Sin embargo, algunas veces está disponible en un nuevo puerto 443 en lugar
del estándar 80.
SSL consiste en dos subprotocolos, uno que permite establecer una conexión seguro y otro que permite
usarla.
Funcionamiento
Las conexiones seguras se establecen cuando una maquina A envía un mensaje de solicitud a la máquina
B para establecer una conexión, en este mensaje se especifica la versión de SSL que posee A y sus
preferencias con respecto a algoritmos criptográficos y compresión, junto con una marca aleatoria 𝑅𝐴 .
La máquina B responde indicando que algoritmo utilizarán de los que A ofreció, junto con su marca
aleatoria 𝑅𝐵 y un certificado con su clave pública. Una vez enviado esto, B envía un mensaje a A
indicando que es su turno. Entonces A responde a B seleccionando una clave pre-maestra aleatoria de
384bits y la envía a B encriptada con la clave publica de B. La clave de sesión utilizada para encriptar
datos se deriva de la clave pre-maestra combinada con 𝑅𝐴 y 𝑅𝐵 . Por lo que después de que B recibe la
clave pre-maestra ambos pueden calcular la clave de sesión. A envía un mensaje a B diciendo que utilice
el nuevo cifrado (la clave de sesión) y B responde este mensaje confirmando que cambia al nuevo
cifrado. A partir de aquí pueden comenzar a intercambiar datos.
Aplicaciones
SSL se ejecuta en una capa entre los protocolos de aplicación como HTTP, SMTP, NNTP y sobre el
protocolo de transporte TCP, que forma parte de la familia de protocolos TCP/IP. Aunque pueda
proporcionar seguridad a cualquier protocolo que use conexiones de confianza (tal como TCP), se usa en
la mayoría de los casos junto a HTTP para formar HTTPS. HTTPS es usado para asegurar páginas World
Wide Web para aplicaciones de comercio electrónico, utilizando certificados de clave pública para
verificar la identidad de los extremos.
Aunque un número creciente de productos clientes y servidores pueden proporcionar SSL de forma
nativa, muchos aún no lo permiten. En estos casos, un usuario podría querer usar una aplicación SSL
independiente como Stunnel para proporcionar cifrado. No obstante, el Internet Engineering Task Force
recomendó en 1997 que los protocolos de aplicación ofrecieran una forma de actualizar a TLS a partir de
una conexión sin cifrado (plaintext), en vez de usar un puerto diferente para cifrar las comunicaciones –
esto evitaría el uso de envolturas (wrappers) como Stunnel.
SSL también puede ser usado para tunelizar una red completa y crear una red privada virtual (VPN),
como en el caso de OpenVPN.
Secure Sockets Layer -Protocolo de Capa de Conexión Segura- (SSL) y Transport Layer Security -
Seguridad de la Capa de Transporte- (TLS), su sucesor, son protocolos criptográficos que proporcionan
comunicaciones seguras por una red, comúnmente Internet.
Existen pequeñas diferencias entre SSL 3.0 y TLS 1.0, pero el protocolo permanece sustancialmente
igual. La forma en que se deriva una clave de sesión a partir de la clave pre-maestra y las marcas
aleatorias se cambió para hacer que la clave fuera más fuerte. La versión de TLS también se conoce
como SSL Versión 3.1 (ya que la última versión de SSL es la 3.0). Dado que es más fuerte TLS que SSL aun
no se sabe si lo reemplazará en la práctica o no.