3. ENRUTADORES
1. El router: funcionalidad
Realmente se trata de varios componentes en uno. Realiza las funciones de:
- Puerta de enlace (gateway), ya que proporciona salida hacia el exterior a una red local.
- Router: cuando le llega un paquete procedente de Internet, lo dirige hacia la interfaz destino por el
camino correspondiente, es decir, es capaz de encaminar paquetes IP.
- Punto de acceso wireless: algunos router ADSL permiten la comunicación vía Wireless (sin cables)
con los equipos de la red local.
- Módem ADSL: modula las señales enviadas desde la red local para que puedan transmitirse por la
línea ADSL y demodula las señales recibidas por ésta para que los equipos de la LAN puedan
interpretarlos. De hecho, existen configuraciones formadas por un módem ADSL y un router que hacen
la misma función que un router ADSL.
Como se puede ver, los avances tecnológicos han conseguido introducir la funcionalidad de cuatro equipos
en uno sólo.
Además de las características y funciones que tiene un router, las cuales ya se han mencionado, hoy por hoy
son el mejor muro tras el cual nos podemos esconder y proteger en Internet, y dependiendo de los
conocimientos propios y de cómo se haga la configuración pueden ser y son una barrera infranqueable por
sí mismos o junto con algunas aplicaciones extras que bloquean programas peligrosos, incluidos posibles virus
y troyanos.
Pero al mismo tiempo para aquellos que no saben, son la puerta de acceso para un sin fin de desconocidos
que pueden entrar y disfrutar del ancho de banda por ejemplo o tal vez incluso acceder a dispositivos o
máquinas si no están bien protegidas. Muchos usuarios dejan el router como lo reciben, otros sólo cambian
la contraseña, muchos sólo ponen cifrados inseguros para sus redes wifi y un largo etc.
Para trabajar en red, para controlar el ancho de banda, un router es fundamental, pero si hay servidores y
se pretende utilizarlos, son imprescindibles casi tanto como el propio ordenador. Así pues si el ordenador es
bueno no hay que conformarse con un periférico que no esté a su nivel.
Los routers operan en la capa 3 del Modelo OSI y, por consiguiente, distinguen y basan sus decisiones de
enrutamiento en los diferentes protocolos de la capa de red.
Los routers colocan fronteras entre los segmentos de red porque éstos envían sólo tráfico que está dirigido
hacia ellos, eliminando la posibilidad de “tormentas” de broadcasts, la transmisión de paquetes de protocolos
no soportados y la transmisión de paquetes destinados a redes desconocidas.
3
4. ENRUTADORES
Para realizar estas tareas, un router ejecuta dos funciones:
- Crear y mantener una tabla de enrutamiento de cada protocolo de la capa de red. Esta tabla puede
ser creada estática o dinámicamente mediante los protocolos de enrutamiento (RIP, OSPF, etc.)
- Identificar el protocolo contenido en cada paquete, extraer la dirección destino de la capa de red y
enviar los datos en base a la decisión de enrutamiento.
Los routers seleccionan el mejor camino para enviar los datos basados en la métrica (# de saltos, velocidad,
coste de transmisión, retardo y condiciones de tráfico) de las rutas.
Adicionalmente, tienen la capacidad de implementar políticas de seguridad y de utilización del ancho de
banda. Pero, por el contrario, el proceso que debe realizar con los paquetes se refleja en un incremento en
la latencia y reducción del rendimiento (Semeria, 1995); (3Com, 1994).
EN RESUMEN
Realiza las funciones de:
- Puerta de enlace (gateway)
- Router
- Módem ADSL
- Punto de acceso wireless
4
5. ENRUTADORES
2. Switching
Este es el tipo de switch de red de área local (LAN) más básico, el cual opera en la capa 2 del
modelo OSI. Su antecesor es el bridge, por ello, muchas veces al switch se le llama bridge
multipuerto, pero con un coste más bajo, con mayor rendimiento y mayor densidad por puerto.
El switch capa 2 hace sus decisiones de envío de datos en base a la dirección MAC destino contenida en cada
frame. Éstos, al igual que los bridges, segmentan la red en dominios de colisión, proporcionando un mayor
ancho de banda por cada estación.
Dominios de broadcasts
La configuración de los switches capa 2 y el soporte de múltiples protocolos es totalmente transparente a
las estaciones terminales. Igualmente es el soporte de las redes virtuales (VLAN´s), las cuales son una forma
de segmentación que permite crear dominios de broadcasts formando así grupos de trabajo independientes
de la ubicación física.
El uso de procesadores especializados (ASIC: Application Specific Integrated Circuit) incrementan la velocidad
de conmutación de los switches, en comparación con los bridges, porque pueden enviar los datos a todos los
puertos de forma casi simultánea.
5
6. ENRUTADORES
Estos switches siguen, principalmente, dos esquemas para envío de tráfico, los cuales son:
- Cut-trough: comienzan el proceso de envío antes de que el frame sea completamente recibido. En
estos switches la latencia es baja porque sólo basta con leer la dirección MAC destino para comenzar
a transferir el frame. La desventaja de este esquema, es que los frames corruptos (corruptos, enanos,
con errores, etc.) son también enviados.
- Store-and-forward: lee y valida el paquete completo antes de iniciar el proceso de envío. Esto
permite que el switch descarte paquetes corruptos y se puedan definir filtros de tráfico. La
desventaja de este esquema es que la latencia se incrementa con el tamaño del paquete.
Algunos switches implementan otros esquemas (Fragment free) o esquemas híbridos en base a rendimiento
y porcentaje de errores, pasando en un momento de modo Cut-trough al modo Store-and-forward y,
viceversa.
Switch capa 3
Este tipo de switches integran routing y switching para producir altas velocidades (medidas en millones de
paquetes por segundo). Ésta es una tecnología nueva (Lippis, 1997) a la cual los vendedores se refieren
muchas veces como: Netflow, tag switching (Packet, 1998), Fast IP (3Com, 1997), etc.
Este nuevo tipo de dispositivos es el resultado de un proceso de evolución natural de las redes de área local,
ya que combinan las funciones de los switches capa 2 con las capacidades de los routers (3Com, 1997).
Existen dos tipos de switches capa 3:
- Packet-by-packet (PPL3).
- Cut-trough (CTL3).
En ambos tipos de switches, se examinan todos los paquetes y se envían a sus destinos. La diferencia real
entre ellos es el rendimiento. PPL3 enruta todos los paquetes, en tanto que los switches CTL3 efectúan la
entrega de paquetes de una forma un poco distinta, estos switches investigan el destino del primer paquete
en una serie. Una vez que lo conoce, se establece una conexión y el flujo es conmutado en capa 2 (con el
consiguiente, rendimiento del switching de capa 2) (Lippis, Jun 1997).
6
7. ENRUTADORES
Funciones:
- Procesamiento de rutas: esto incluye construcción y mantenimiento de la tabla de enrutamiento
usando RIP y OSPF.
- Envío de paquetes: una vez que el camino es determinado, los paquetes son enviados a su dirección
destino. El TTL (Time-To-Live) es decrementado, las direcciones MAC son resueltas y el checksum IP
es calculado.
- Servicios especiales: traslación de paquetes, prioritización, autenticación, filtros, etc.
Switch capa 4
La información en los encabezados de los paquetes comúnmente incluyen direccionamiento de capa 2 y 3,
tales como: tipo de protocolo de capa 3, TTL y checksum. Hay también información relevante a las capas
superiores, como lo es el tipo de protocolo de capa 4 (UDP, TCP, etc.) y el número de puerto (valor numérico
que identifica la sesión abierta en el host a la cual pertenece el paquete). En el caso de los switches capa
3, éstos son switches capa 2 que utilizan la información del encabezado de capa 3. Lo mismo ocurre con los
switches capa 4, son switches capa 3 que procesan el encabezado de la capa. También son conocidos como
switches sin capa (Layerless switches). La información del encabezado de capa 4 permite clasificar de
acuerdo a secuencias de paquetes manejados por aplicación (denominados “flujos”). Ahora bien,
dependiendo del diseño del switch, éste puede priorizar servicios o garantizar ancho de banda por “flujos”.
Algunos de los diseños de capa 4 son (Torrent, 1998):
- Arquitectura basada en Crossbard: generalmente, sólo proveen prioritización por flujos porque tienen
un esquema de buffering y de planificación muy compleja.
- Switches con memoria compartida y cola de salida: son capaces de manejar múltiples niveles de
prioridades.
- Switches con colas por “flujos”: son capaces de garantizar ancho de banda y manejar bien la
congestión pudiendo hacer la clasificación por flujos porque existe una cola por cada uno.
Algunas consideraciones acerca de switching y routing
Los diseñadores y administradores de redes necesitan saber cómo y cuándo usar las tecnologías de las que
hemos hablado hasta ahora:
- Colocar los switches capa 3 en puntos de concentración de la red o como backbone colapsado para
eliminar “cuellos de botella”.
- Evitar enrutar en los switches capa 2 ubicados en los extremos o fronteras de la red.
7
8. ENRUTADORES
- Escoger switches capa 3 que tengan buffers con capacidad desde 50 hasta 100 paquetes por puerto
y enviar millones de paquetes por segundo en la capa 3.
- Evitar retardos excesivos, limitando los dominios de colisión entre 10 y 20 usuarios.
- Cuando se escogen switches capa 2 con soporte de VLAN se debe tener en cuenta que la comunicación
inter-vlan se hace usando un router y que, éste puede convertirse en un “cuello de botella” si la red
es muy grande.
Resumen de las características más relevantes de Routing y Switching
Aunque, es necesario destacar, que los routers “puros” no van a desaparecer porque son más robustos en
cuanto a soporte multiprotocolar, seguridad, administración de tráfico y conectividad a nivel de redes de área
amplia (WAN). Algunas de las tecnologías expuestas son una parte de las alternativas de diseño de redes,
aunque existen otras, tales como MPOA (Multiprotocol over ATM), Router Server, etc. (Tinsley, Lang, 1996),
las cuales son importantes y útiles en ciertos casos, y han dado origen a discusiones.
8
9. ENRUTADORES
3. Puertos
Un ordenador puede estar conectado con distintos servidores a la vez; por ejemplo, con un servidor de
noticias y un servidor de correo. Para distinguir las distintas conexiones dentro de un mismo ordenador se
utilizan los puertos.
Un puerto es un número de 16 bits, por lo que existen 65536 puertos en cada ordenador. Las
aplicaciones utilizan estos puertos para recibir y transmitir mensajes.
Los números de puerto de las aplicaciones cliente son asignados dinámicamente y generalmente son
superiores al 1024. Cuando una aplicación cliente quiere comunicarse con un servidor, busca un número de
puerto libre y lo utiliza. En cambio, las aplicaciones servidoras utilizan unos números de puerto prefijados:
son los llamados puertos well-known (bien conocidos). Los puertos tienen una memoria intermedia (buffer)
situada entre los programas de aplicación y la red. De tal forma que las aplicaciones transmiten la
información a los puertos. Aquí se va almacenando hasta que puede enviarse por la red. Una vez que puede
transmitirse, la información irá llegando al puerto destino donde se irá guardando hasta que la aplicación esté
preparada para recibirla.
Los dos protocolos principales de la capa de transporte son UDP y TCP. El primero ofrece unas transferencias
de mensajes no fiables y no orientadas a conexión y el segundo, una transferencia fiable y orientada a
conexión.
Puertos genéricos y reservados: distinción
Los puertos genéricos, al contrario de los reservados, pertenecen al rango que parte del 1024,
y permiten su utilización por cualquier navegante de la red, sin trabas ni restricciones. Son
puertos que, en principio, no vienen asignados por defecto.
Los números de puertos típicos o reservados son asignados por la Autoridad Internet de Números Asignados
(Assigned Numbers Internet Authority, IANA) y están entre 1 y 1023. Algunos ejemplos de puertos son: puerto
21 para FTP o 23 para TELNET. Las aplicaciones clientes también usan números de puerto en nuestra máquina,
son aplicaciones usando TCP también, sólo que no son puertos específicos sino que sólo necesitan ser únicos
mientras los use el cliente, por ello se denominan puertos efímeros. Igualmente, hay procesos del sistema
que usan puertos, denominados puertos reservados. Existe un rango de los puertos reservados (del 1 al 1023)
para determinados estándares de comunicación (HTTP, FTP, IRC, POP3,...).
9
10. ENRUTADORES
4. Protocolo UDP
El protocolo UDP (User Datagram Protocol, protocolo de datagrama de usuario) proporciona una comunicación
muy sencilla entre las aplicaciones de dos ordenadores. Al igual que el protocolo IP, UDP es:
- No orientado a conexión. No se establece una conexión previa con el otro extremo para transmitir
un mensaje UDP. Los mensajes se envían sin más y éstos pueden duplicarse o llegar desordenados al
destino.
- No fiable. Los mensajes UDP se pueden perder o llegar dañados.
UDP utiliza el protocolo IP para transportar sus mensajes. Como vemos, no añade ninguna mejora en la
calidad de la transferencia; aunque sí incorpora los puertos origen y destino en su formato de mensaje. Las
aplicaciones (y no el protocolo UDP) deberán programarse teniendo en cuenta que la información puede no
llegar de forma correcta.
Protocolo TCP
El protocolo TCP (Transmission Control Protocol, protocolo de control de transmisión) está basado en IP que
es no fiable y no orientado a conexión, y sin embargo es:
- Orientado a conexión. Es necesario establecer una conexión previa entre las dos máquinas antes de
poder transmitir ningún dato. A través de esta conexión los datos llegarán siempre a la aplicación
destino de forma ordenada y sin duplicados. Finalmente, es necesario cerrar la conexión.
- Fiable. La información que envía el emisor llega de forma correcta al destino.
10
11. ENRUTADORES
El protocolo TCP permite una comunicación fiable entre dos aplicaciones. De esta forma, las aplicaciones que
lo utilicen no tienen que preocuparse de la integridad de la información: dan por hecho que todo lo que
reciben es correcto.
El flujo de datos entre una aplicación y otra viaja por un circuito virtual. Sabemos que los datagramas IP
pueden seguir rutas distintas, dependiendo del estado de los encaminadores intermedios, para llegar a un
mismo sitio. Esto significa que los datagramas IP que transportan los mensajes siguen rutas diferentes aunque
el protocolo TCP logre la ilusión de que existe un único circuito por el que viajan todos los bytes uno detrás
de otro (algo así como una tubería entre el origen y el destino). Para que esta comunicación pueda ser posible
es necesario abrir previamente una conexión. Esta conexión garantiza que todos los datos lleguen
correctamente de forma ordenada y sin duplicados. La unidad de datos del protocolo es el byte, de tal forma
que la aplicación origen envía bytes y la aplicación destino recibe estos bytes.
Sin embargo, cada byte no se envía inmediatamente después de ser generado por la aplicación, sino que se
espera a que haya una cierta cantidad de bytes, se agrupan en un segmento y se envía el segmento completo.
Para ello son necesarias unas memorias intermedias o buffers. Cada uno de estos segmentos viaja en el
campo de datos de un datagrama IP. Si el segmento es muy grande será necesario fragmentar el datagrama,
con la consiguiente pérdida de rendimiento; y si es muy pequeño, se estarán enviando más cabeceras que
datos. Por consiguiente, es importante elegir el mayor tamaño de segmento posible que no provoque
fragmentación.
El protocolo TCP envía un flujo de información no estructurado. Esto significa que los datos no tienen ningún
formato, son únicamente los bytes que una aplicación envía a otra. Ambas aplicaciones deberán ponerse de
acuerdo para comprender la información que se están enviando.
Cada vez que se abre una conexión, se crea un canal de comunicación bidireccional en el que ambas
aplicaciones pueden enviar y recibir información, es decir, una conexión es full-dúplex.
Fiabilidad
Cada vez que llega un mensaje se devuelve una confirmación (acknowledgement) para que el emisor sepa
que ha llegado correctamente. Si no le llega esta confirmación pasado un tiempo, el emisor reenvía el
mensaje.
Veamos a continuación la manera más sencilla (aunque ineficiente) de proporcionar una comunicación fiable.
El emisor envía un dato, arranca su temporizador y espera su confirmación (ACK). Si recibe su ACK antes de
agotar el temporizador, envía el siguiente dato. Si se agota el temporizador antes de recibir el ACK, reenvía
el mensaje. Los siguientes esquemas representan este comportamiento:
11
12. ENRUTADORES
Este esquema es perfectamente válido aunque muy ineficiente debido a que sólo se utiliza un sentido de la
comunicación a la vez y el canal está desaprovechado la mayor parte del tiempo. Para solucionar este
problema se utiliza un protocolo de ventana deslizante, que se resume en el siguiente esquema. Los mensajes
y las confirmaciones van numerados y el emisor puede enviar más de un mensaje antes de haber recibido
todas las confirmaciones anteriores.
12
13. ENRUTADORES
Conexiones
Una conexión son dos pares de dirección IP: puerto. No puede haber dos conexiones iguales en un mismo
instante en toda la red. Aunque es posible que un mismo ordenador tenga dos conexiones distintas y
simultáneas utilizando un mismo puerto. El protocolo TCP utiliza el concepto de conexión para identificar
las transmisiones.
En el siguiente ejemplo se han creado tres conexiones. Las dos primeras son al mismo servidor Web (puerto
80) y la tercera a un servidor de FTP (puerto 21).
Para que se pueda crear una conexión, el extremo del servidor debe hacer una apertura pasiva del puerto
(escuchar su puerto y quedar a la espera de conexiones) y el cliente, una apertura activa en el puerto del
servidor (conectarse con el puerto de un determinado servidor).
El comando NetStat muestra las conexiones abiertas en un ordenador, así como estadísticas de los
distintos protocolos de Internet.
13
14. ENRUTADORES
Formato del segmento TCP
Ya hemos comentado que el flujo de bytes que produce una determinada aplicación se divide en uno o más
segmentos TCP para su transmisión. Cada uno de estos segmentos viaja en el campo de datos de un datagrama
IP. Para facilitar el control de flujo de la información los bytes de la aplicación se numeran. Las
confirmaciones o acuses de recibo (ACK) representan el siguiente byte que se espera recibir (y no el número
de segmento recibido, ya que éste no existe).
Puerto fuente (16 bits). Puerto de la máquina origen. Al igual que el puerto destino es necesario para
identificar la conexión actual.
Puerto destino (16 bits). Puerto de la máquina destino.
Número de secuencia (32 bits). Indica el número de secuencia del primer byte que trasporta el segmento.
Número de acuse de recibo (32 bits). Indica el número de secuencia del siguiente byte que se espera recibir.
Con este campo se indica al otro extremo de la conexión que los bytes anteriores se han recibido
correctamente.
HLEN (4 bits). Longitud de la cabecera medida en múltiplos de 32 bits (4 bytes). El valor mínimo de este
campo es 5, que corresponde a un segmento sin datos (20 bytes).
14
15. ENRUTADORES
Reservado (6 bits). Bits reservados para un posible uso futuro.
Bits de código o indicadores (6 bits). Los bits de código determinan el propósito y contenido del segmento.
A continuación se explica el significado de cada uno de estos bits (mostrados de izquierda a derecha) si está
a 1.
URG. El campo Puntero de urgencia contiene información válida.
ACK. El campo Número de acuse de recibo contiene información válida, es decir, el segmento actual lleva
un ACK. Observemos que un mismo segmento puede transportar los datos de un sentido y las confirmaciones
del otro sentido de la comunicación.
PSH. La aplicación ha solicitado una operación push (enviar los datos existentes en la memoria temporal sin
esperar a completar el segmento).
RST. Interrupción de la conexión actual.
SYN. Sincronización de los números de secuencia. Se utiliza al crear una conexión para indicar al otro extremo
cual va a ser el primer número de secuencia con el que va a comenzar a transmitir (veremos que no tiene
porqué ser el cero).
FIN. Indica al otro extremo que la aplicación ya no tiene más datos para enviar. Se utiliza para solicitar el
cierre de la conexión actual.
Ventana (16 bits). Número de bytes que el emisor del segmento está dispuesto a aceptar por parte del
destino.
Suma de verificación (24 bits). Suma de comprobación de errores del segmento actual. Para su cálculo se
utiliza una pseudo-cabecera que también incluye las direcciones IP origen y destino.
Puntero de urgencia (8 bits). Se utiliza cuando se están enviando datos urgentes que tienen preferencia
sobre todos los demás e indica el siguiente byte del campo Datos que sigue a los datos urgentes.
Opciones (variable). Si está presente únicamente se define una opción: el tamaño máximo de segmento que
será aceptado.
Relleno. Se utiliza para que la longitud de la cabecera sea múltiplo de 32 bits.
Datos. Información que envía la aplicación.
15
16. ENRUTADORES
Establecimiento de una conexión
Antes de transmitir cualquier información utilizando el protocolo TCP es necesario abrir una conexión. Un
extremo hace una apertura pasiva y el otro, una apertura activa. El mecanismo utilizado para establecer una
conexión consta de tres vías.
La máquina que quiere iniciar la conexión hace una apertura activa enviando al otro extremo un mensaje que
tenga el bit SYN activado. Le informa además del primer número de secuencia que utilizará para enviar sus
mensajes.
La máquina receptora (un servidor generalmente) recibe el segmento con el bit SYN activado y devuelve la
correspondiente confirmación. Si desea abrir la conexión, activa el bit SYN del segmento e informa de su
primer número de secuencia. Deja abierta la conexión por su extremo.
La primera máquina recibe el segmento y envía su confirmación. A partir de este momento puede enviar
datos al otro extremo. Abre la conexión por su extremo.
La máquina receptora recibe la confirmación y entiende que el otro extremo ha abierto ya su conexión. A
partir de este momento puede enviar ella también datos. La conexión ha quedado abierta en los dos sentidos.
Observamos que son necesarios 3 segmentos para que ambas máquinas abran sus conexiones y sepan que la
otra también está preparada.
Números de secuencia: se utilizan números de secuencia distintos para cada sentido de la comunicación.
Como hemos visto el primer número para cada sentido se acuerda al establecer la comunicación. Cada
16
17. ENRUTADORES
extremo se inventa un número aleatorio y envía éste como inicio de secuencia. Observamos que los números
de secuencia no comienzan entonces en el cero. ¿Por qué se procede así? Uno de los motivos es para evitar
conflictos: supongamos que la conexión en un ordenador se interrumpe nada más empezar y se crea una
nueva. Si ambas han empezado en el cero es posible que el receptor entienda que la segunda conexión es
una continuación de la primera (si utilizan los mismos puertos).
Cierre de una conexión
Cuando una aplicación ya no tiene más datos que transferir, el procedimiento normal es cerrar la conexión
utilizando una variación del mecanismo de 3 vías explicado anteriormente.
El mecanismo de cierre es algo más complicado que el de establecimiento de conexión debido a que las
conexiones son full-duplex y es necesario cerrar cada uno de los dos sentidos de forma independiente. La
máquina que ya no tiene más datos que transferir, envía un segmento con el bit FIN activado y cierra el
sentido de envío. Sin embargo, el sentido de recepción de la conexión sigue todavía abierto.
La máquina receptora recibe el segmento con el bit FIN activado y devuelve la correspondiente confirmación.
Pero no cierra inmediatamente el otro sentido de la conexión sino que informa a la aplicación de la petición
de cierre. Aquí se produce un lapso de tiempo hasta que la aplicación decide cerrar el otro sentido de la
conexión.
La primera máquina recibe el segmento ACK.
17
18. ENRUTADORES
Cuando la máquina receptora toma la decisión de cerrar el otro sentido de la comunicación, envía un
segmento con el bit FIN activado y cierra la conexión. La primera máquina recibe el segmento FIN y envía el
correspondiente ACK. Observemos que aunque haya cerrado su sentido de la conexión sigue devolviendo las
confirmaciones.
La máquina receptora recibe el segmento ACK.
Diferencias TCP y UDP
Cuando se habla de TCP/IP, se relaciona automáticamente como el protocolo sobre el que funciona la red
Internet. Esto, en cierta forma es cierto, ya que se le llama TCP/IP a la familia de protocolos que nos permite
,
estar conectados a la red Internet. Este nombre viene dado por los dos protocolos estrella de esta familia:
El protocolo TCP, funciona en el nivel de transporte del modelo de referencia OSI,
proporcionando un transporte fiable de datos.
El protocolo IP, funciona en el nivel de red del modelo OSI, que nos permite encaminar nuestros datos hacia
otras maquinas.
Pero un protocolo de comunicaciones debe solucionar una serie de problemas relacionados con la
comunicación entre ordenadores, además de los que proporciona los protocolos TCP e IP.
UDP: proporciona un nivel de transporte no fiable de datagramas, ya que apenas añade
información al paquete que envía al nivel inferior, sólo la necesaria para la comunicación
extremo a extremo. Lo utilizan aplicaciones como NFS y RPC, pero sobre todo se emplea en
tareas de control.
TCP (Transport Control Protocolo): 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 aplicaciones, de la dificultad de gestionar la fiabilidad de la conexión (retransmisiones,
pérdidas de paquete, orden en que llegan los paquetes, duplicados de paquetes,...) 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 a enviar. Debido a
que los paquetes a 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. 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 a transmitir.
18
19. ENRUTADORES
5. Protocolos SLIP Vs PPP
SLIP y PPP son dos protocolos de nivel 2 ampliamente utilizados; en especial para realizar conexiones caseras
entre un PC y el proveedor de acceso a Internet; donde se requiere un protocolo punto a punto de enlace
de datos. Son sencillos y pequeños; pensando tal vez en su fácil implementación; y en la baja velocidad de
los enlaces telefónicos.
SLIP
SLIP viene de Serial Line IP; es una forma muy simple de encapsulación para datagramas IP en
líneas seriales; diseñado en 1984 por Rick Adams para conectar estaciones de trabajo SUN a
Internet a travésde una línea de discado usando un Módem.
Se ha vuelto muy popular para conectar sistemas caseros a Internet a través del puerto serial RS-232 que se
encuentra en casi todos los computadores y módems.
Formato
Cada datagrama IP es terminado por el carácter especial C0. Para prevenir ruido de línea se acostumbra
mandar uno al principio también, de modo que se dé por terminada cualquier tipo de conexión errónea
anterior.
Si el carácter C0 se presenta en el contenido del datagrama, se utiliza la secuencia de dos bytes DB, DC el
carácter DB es el carácter de escape de SLIP (distinto al valor ASCII de ESC –1B—).
Si en el contenido se presenta el carácter de escape, se reemplaza por la secuencia DB, DD.
19
20. ENRUTADORES
SLIP deja a las capas superiores la detección y recuperación de marcos perdidos.
CSLIP
Teniendo en cuenta el gran tamaño del header de IP y TCP, aún para enviar muy poca información, se creó
una nueva versión de SLIP llamada CSLIP (compressed SLIP). Éste reduce el header típico de 40 bytes a 3 o
5 bytes, ayudándose del hecho de que muchos de los campos del header no varían durante una conexión.
PPP
El PPP es el producto del grupo de trabajo IETF (Internet Engineering Task Force), y es
básicamente un protocolo de enlace de datos para líneas punto a punto.
PPP provee un protocolo de encapsulación tanto sobre enlaces sincrónicos orientados a bits, como sobre
enlaces asincrónicos con 8 bits de datos sin paridad.
PPP puede operar a través de cualquier interfaz DTE/DCE. Estos enlaces deben ser Full-Duplex pero pueden
ser dedicados, o de circuitos conmutados.
Lo conforman básicamente 3 aspectos:
- Un método de encapsulado sin ambigüedades que identifica claramente el inicio de un datagrama y
el final del anterior.
- Un protocolo de control de enlace, para activar y probar líneas, negociar opciones y desactivar el
enlace ordenadamente cuando ya no es necesario.
- Una familia de NCPs (Network Control Protocols) para negociar opciones de la capa de red
con independencia del protocolo de red usado.
20
21. ENRUTADORES
El procedimiento típico de conexión es el siguiente:
- El PC llama al enrutador del proveedor a través de un módem.
- El módem del enrutador contesta y establece una conexión física.
- El PC y el enrutador intercambian una serie de paquete LCP para seleccionar los parámetros PPP por
usar.
- Se envía una serie de paquetes NCP para configurar la capa de red.
- Se asigna al PC una dirección IP a través de NCP para IP.
- El enlace continúa configurado para comunicaciones, hasta que LCP, NCP, o algún evento externo lo
tumbe.
- Se usa NCP para desmantelar la conexión en la capa de red y liberar la dirección IP.
- Se usa LCP para eliminar la conexión a nivel de enlace.
- El módem cuelga liberando la capa física.
El formato de un marco de PPP es muy similar al formato de marco de HDLC, con la diferencia que PPP es
orientado a caracteres y no a bits. Todos los marcos tienen un número entero de bytes.
21
22. ENRUTADORES
Cada marco comienza y termina con un byte “bandera” 7E, para evitar que la aparición de este byte en los
campos de información cause confusiones. Se utiliza bit stuffing si el enlace es sincrónico. Si el enlace es
asincrónico se utiliza el carácter 7D como carácter de escape. Cada vez que este carácter aparece en un
marco PPP indica que el siguiente carácter tiene su sexto bit complementado.
Si en el campo de información se presenta un byte 7E, sería transmitido como 7D 5E y el escape del carácter
de escape sería 7D 5D.
Por defecto cualquier valor que corresponda a un carácter ASCII de control es escapado, ya que en algunos
casos estos caracteres son interpretados de manera especial por los módems.
Es posible determinar por LCP cuáles de los 32 caracteres de control son escapados. Por defecto todos lo son.
Luego viene el campo de dirección que siempre vale FF, indicando a todas las estaciones que deben aceptar
el marco, de este modo se evita tener que asignar direcciones a nivel de enlace.
Viene después el campo de control, con valor predeterminado 03, que indica que es un marco no-numerado.
Por omisión PPP no proporciona transmisión confiable usando números de secuencia y acuses pero puede ser
implementada en ambientes particularmente ruidosos.
El siguiente campo es el de protocolo, que indica qué tipo de carga está en el campo de información. Se
definen valores válidos por ejemplo para LCP,NCP, IP, IPX y Appletalk.
Este byte siempre es impar, el bit menos significativo siempre es 1. Si el bit más significativo del marco es
un cero, se trata de un protocolo de nivel de red (IP, IPX, OSI CLNP, XNS). El primer bit en uno indica otros
protocolos como LCP y un NCP particular para cada protocolo de nivel 3 admitido. Los desarrolladores de
nuevos protocolos deben obtener un número válido del IANA (Internet Assigned Numbers Authority).
22
23. ENRUTADORES
La longitud de este campo (2 bytes) puede reducirse a través de LCP.
El campo de información es de longitud variable, con un máximo predeterminado de 1500 bytes pero
alterable también a través de LCP.
Luego viene el campo para CRC (suma de comprobación) que permite identificar errores a nivel de enlace.
Comparación
EN RESUMEN
PPP lo conforman básicamente 3 aspectos:
- Un método de encapsulado sin ambigüedades
- Un protocolo de control de enlace
- Una familia de NCPs (Network Control Protocols)
23
24. ENRUTADORES
6. NAT
NAT: (Network Address Translation - Traducción de Dirección de Red) es un mecanismo utilizado por routers
IP para intercambiar paquetes entre dos redes que se asignan mutuamente direcciones incompatibles.
Consiste en convertir en tiempo real las direcciones utilizadas en los paquetes transportados. También es
necesario editar los paquetes para permitir la operación de protocolos que incluyen información de
direcciones dentro de la conversación del protocolo.
Su uso más común es permitir utilizar direcciones privadas (definidas en el RFC 1918) y aún así proveer
conectividad con el resto de Internet. Existen rangos de direcciones privadas que pueden usarse libremente
y en la cantidad que se quiera dentro de una red privada. Si el número de direcciones privadas es muy grande
puede usarse sólo una parte de direcciones públicas para salir a Internet desde la red privada. 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. Esto es necesario debido a la progresiva escasez de direcciones provocada por el
agotamiento de éstas. Se espera que con el advenimiento de IPv6 no sea necesario continuar con esta
práctica.
NAT es muy utilizado en empresas y redes caseras, ya que basta tener una sola dirección IP pública para
poder conectar una multitud de dispositivos. Los ISP también pueden utilizar NAT para aliviar la escasez de
direcciones IP para los usuarios de cable y ADSL, en este caso el ISP le asigna una dirección a cada usuario,
usa direcciones no válidas de Internet. Cuando los paquetes de las máquinas de usuario salen del ISP
atraviesan una caja NAT que los traduce a la verdadera dirección de Internet del ISP En el camino de regreso,
.
los paquetes sufren la conversión inversa. En este caso, para el resto de Internet, el ISP y sus usuarios caseros
de cable y ADSL se comportan como una compañía grande.
Razones de la creación y utilización de NAT
Con el crecimiento exponencial de Internet, y debido a que las direcciones en la versión actualmente usada
de IP consisten sólo de 32 bits, empezó a haber escasez de direcciones nuevas. Ayuda a esto el hecho de que
el número de direcciones es menor al teórico, por la forma en que se distribuyen las direcciones en clases y
que otras son reservadas para multicasting, y para usos especiales. Para solucionar esto se diseñó un protocolo
que es capaz de asignar un número mayor de direcciones, llamado IPv6, pero tomará muchos años su
implantación, porque no es compatible con el anterior. Para lidiar momentáneamente con este problema se
empezó a emplear la técnica NAT, que al traducir las direcciones multiplica las posibilidades efectivas de
asignación.
24
25. ENRUTADORES
7. Proxy
Un proxy es un programa o dispositivo que realiza una tarea acceso a Internet en lugar de otro
ordenador. Un proxy es un punto intermedio entre un ordenador conectado a Internet y el
servidor que está accediendo. Cuando navegamos a través de un proxy, en realidad no estamos
accediendo directamente al servidor, sino que realizamos una solicitud sobre el proxy y es éste
quien se conecta con el servidor que queremos acceder y nos devuelve el resultado de la
solicitud.
Cuando nos conectamos con un proxy, el servidor al que accedemos en realidad recibe la solicitud del proxy,
en vez de recibirla directamente desde nuestro ordenador. Puede haber sistemas proxy que interceptan
diversos servicios de Internet. Lo más habitual es el proxy web, que sirve para interceptar las conexiones con
la web y puede ser útil para incrementar la seguridad, rapidez de navegación o anonimato.
El proxy web es un dispositivo que suele estar más cerca de nuestro ordenador que el servidor al que estamos
accediendo. Este suele tener lo que denominamos una caché, con una copia de las páginas web que se van
visitando. Entonces, si varias personas que acceden a Internet a través del mismo proxy acceden al primer
sitio web, el proxy la primera vez accede físicamente al servidor destino, solicita la página y la guarda en la
caché, además de enviarla al usuario que la ha solicitado. En sucesivos accesos a la misma información por
distintos usuarios, el proxy sólo comprueba si la página solicitada se encuentra en la caché y no ha sido
modificada desde la última solicitud. En ese caso, en lugar de solicitar de nuevo la página al servidor, envía
al usuario la copia que tiene en la caché. Esto mejora el rendimiento o velocidad de la conexión a Internet
de los equipos que están detrás del proxy.
Otro caso típico de uso de un proxy es para navegar anónimamente. Al ser el proxy el que accede al servidor
web, el proxy puede o no decir quién es el usuario que lo está utilizando. El servidor web puede entonces
tener constancia de que lo están accediendo, pero puede que piense que el usuario que lo accede es el
propio proxy, en lugar del usuario real que hay detrás del proxy. Hay proxies anónimos y los hay que sí
informan del usuario real que está conectado a través del él.
Utilizar un proxy también tiene sus desventajas, como la posibilidad de recibir contenidos que
no están actualizados, tener que gestionar muchas conexiones y resultar un cuello de botella,
o el abuso por personas que deseen navegar anónimamente. También el proxy puede ser un
limitador, por no dejar acceder a través suyo a ciertos protocolos o puertos.
25