martes, 23 de septiembre de 2008

Ethernet Networking

Ethernet es un método de acceso al medio que permite que muchos hosts en una red puedan compartir el mismo ancho de banda de un enlace. Y entre sus características podemos contar que es fácilmente integrable a nuevas tecnologías de red, como FastEthernet, y Gigabit Ethernet; además es fácil de implementar y de resolver sus problemas si fuera el caso.
Ethernet abarca dos capas del modelo OSI para trabajar, el Data Link Layer y el Physical Layer, y entre sus definiciones describe las características necesarias del medio para poder transmitir, más no habla de configuraciones de cableado o algo similar, es importante recordar esto.

Ethernet usa un protocolo llamado Carrier Sense Multiple Access with Collision Detection (CSMA/CD) para poder compartir el medio entre los diferentes dispositivos sin que ocurra que dos hosts quieran transmitir al mismo tiempo sobre el medio de red y fue creado precisamente con este propósito, ya que es vital evitar las colisiones en el medio para asegurar que los mensajes que se intercambian entre los nodos lleguen de manera íntegra, y se logra ya que todos los hosts conectados reciben los mensajes y los examinan, ya que se encuentran en el mismo dominio de colisión, y sabemos que un switch, un bridge, un router, pueden cambiar ésto, pero hablamos de hosts conectados a un bus, que es como se desarrolló Ethernet.

La manera en la que funciona este protocolo es la siguiente:



Cuando un host quiere transmitir en el medio, primero revisa que no haya presencia de señal en el medio; en caso de que no sea así, envía su frame; pero constantemente se está revisando el medio para detectar transmisiones de otro nodo (Carrier Sense Multiple Access). Si el host detecta otra señal en el cable, enviará una señal de congestión (jam signal) que hará que todos los nodos dejen de transmitir y esperarán un tiempo aleatorio para volver a intentar enviar mensajes al medio.

Ese tiempo aleatorio se determina con un algoritmo llamado de Backoff, y si la colisión se repite 15 veces, los nodos tendrán un timeout, es decir, su oportunidad de acceder al medio se ha terminado y deben esperar nuevamente su oportunidad.

Ahora bien, ¿qué pasa cuando una colisión ocurre?



  • Se envía una jam signal a todos para informar la colisión

  • Se invoca el algoritmo de Backoff en los nodos y dejan de transmitir.

  • Todos los nodos tienen la misma prioridad para entrar al medio cuando el tiempo de Backoff termina.

  • Debido a los timers de backoff, se crea un retardo (delay)

  • Baja el throughput (capacidad del enlace o link)

  • Se ocasiona una congestión.

domingo, 21 de septiembre de 2008

Data Link Layer, el hardware.

En la capa de enlace de datos operan los switches y los bridges, y son hardware de aplicación específica ya que usan procesadores y circuitos que son diseñados únicamente para esta tarea. (application-specific integrated cirtuit), y es lo que permite que los switches alcancen velocidades de proceso de Gigabits con latencias muy bajas.

Menciono brevemente los dispositivos en una entrada previa:

http://ipref.blogspot.com/2009/04/dispositivos-de-red-capa-de-enlace-de.html

El proceso es el siguiente:

El switch recibe un frame y lee su encabezado, determina su origen y lo pone en su tabla para recordar de que puerto provino; entonces, busca el destino en esa misma tabla y envía el frame hacia el puerto asociado a esa dirección MAC; en caso de desconocer el destino, el frame es enviado a todos los puertos excepto al de origen, y cuando reciba un nuevo frame con esa dirección MAC de origen, sabrá de que puerto proviene, y la agregará a su tabla, por lo que conocerá donde está ubicado ese host. Así van formando su tabla de MAC addresses que ayuda a disminuir el tráfico en la red y a formar un mapa de la misma. Todos los dispositivos que reciben este mensaje están en un dominio de Broadcast, y si tenemos muchos mensajes de broadcast, afectarán el desempeño de la red.



Es algo similar a una tabla de ruteo, que contiene redes en un router y que las asocia a una interface, con lo que el router conoce hacia donde enviar paquetes para alcanzar una red.

En el caso de un switch o un bridge, conocemos direcciones MAC que se asocian igualmente a un puerto o interface, y básicamente, un switch es un bridge evolucionado, con más puertos y que igualmente forma un dominio de colisión en cada puerto.

Anteriormente mencioné que Ethernet funciona en un bus lógico y por tanto los hosts presentes en ese dominio deben "competir" para tener acceso al medio (cable) y que no se presenten colisiones; debido a que cada puerto de un switch es un dominio de colisión distinto, todos pueden transmitir simultáneamente siempre y cuando exista sólo un host por puerto, mientras que en un Hub, todos deberán competir por el medio.

Una vez que la tabla está completa en el switch, se enviarán frames sólo hacia la interface que se sabe que tiene conectado al segmento de destino, y en caso de que el frame vaya destinado al mismo puerto del que vino será bloqueado para que no llegue a ningún otro segmento de red. Esto se llama Transparent Bridging.

La Capa de Enlace de Datos

La capa de enlace de datos (data link layer) provee la transmisión física de los datos y se encarga de detectar errores, de la topología de la red y del control de flujo; es decir, se encarga de que los mensajes lleguen a sus destinatarios usando la dirección física (MAC address) y traduce los mensajes de la capa de red en bits que la capa física transmitirá.

Los mensajes son divididos en fragmentos que se llaman marco de datos (data frames) y yo me referiré a ellos por su nombre en inglés, ya que considero que parte de entender una materia es conocer su lenguaje técnico. Cada frame, al igual que las unidades de datos de capas superiores (PDU o packet data unit) contienen un encabezado, al que se le agrega la información del destino y el origen (en direcciones MAC, no IP), pero en este caso, tenemos un elemento de empaquetamiento al final, que sirve para detectar errores y es el Cyclic Redundancy Check (CRC revisión de redundancia cíclica) y que es un número que se calcula a través del valor de los bits contenidos dentro del mensaje; en caso de que al recibir el frame y recalcular el CRC, éste no coincida con el enviado, se notificará para que sea transmitido nuevamente.



Es importante distinguir que un router no trabaja en esta capa, ya que sólo conoce redes, no sabe donde se ubica un host en particular, y manda paquetes hacia la red que debe contener ese host, pero no sabe si el host está ahí. Es el switch quien determina en que puerto se encuentra un host particular y lo hace a través de sus tablas de MAC addresses, no usa las direcciones IP, y envía frames que contienen paquetes encapsulados.

La capa de enlace de datos es la capa 2 del modelo OSI, y contiene dos subcapas, LLC (Logical Link Control) y MAC (Media Access Control), ambas están definidas por estándares en cuanto que tareas deben efectuar para que la capa de red se sirva de ellas y la capa física entienda los mensajes.

La subcapa MAC es la que está ubicada sobre la capa física, y sobre la MAC se encuentra la LLC, en contacto directo con la capa de red.

Ahora bien, Ethernet trabaja en la capa 2, y por tanto tiene una capa MAC y una LLC. En este caso, MAC se define por el estándar IEEE 802.3, que especifica como los paquetes entran al medio; también aquí se define el direccionamiento físico (MAC addresses) así como las topologías lógicas, es decir, la manera en la que se transmite en la línea (bus lógico en el caso de Ethernet, aunque un switch presente una topología física de estrella), también la notificación de errores (no corrige), la entrega de frames, y a veces control de flujo.

La LLC se define por IEEE 802.2 y es responsable de identificar los protocolos de la capa de red y de encapsularlos. El encabezado de LLC le dice a la Data Link Layer que hacer con los paquetes una vez que recibe un frame, ya que el host recibe el frame, lee el encabezado LLC y determina el destino de ese paquete encapsulado. La LLC provee también control de flujo y bits de control para las secuencias (orden de los frames).

miércoles, 17 de septiembre de 2008

La Capa de Aplicación

Application Layer, OSI layer 7

La capa de aplicación es donde ocurre toda la interacción del usuario con la computadora, y por ejemplo, cualquier browser funciona aún sin el stack de TCP/IP instalado, sin embargo, el browser (google chrome, mozilla firefox, internet explorer, opera) no es parte de la capa de aplicación, sino que es el programa que se comunica con dicha capa.
Por ejemplo, al hacer la consulta de un documento local de html con el browser no hay comunicación hacia el exterior, sin embargo, al hacer la consulta de un documento remoto se hace uso del protocolo http (hyper text transfer protocol); o podemos transferir archivos por medio de FTP (file transfer protocol) o por medio de TFTP (trivial file transfer protocol). Cada vez que solicitamos una comunicación de ese tipo, el browser interactúa con la capa de aplicación que a su vez sirve de interfase entre las aplicaciones del usuario y el stack de protocolos que le va a proveer la comunicación con ayuda de las capas inferiores.

Las responsabilidades de la capa de aplicación son identificar y establecer la disponibilidad de comunicación del destino desado, así como determinar los recursos para que exista esa comunicación.
Esta es una tarea importante porque algunos programas requieren más que recursos del escritorio, como es el caso de una aplicación de red donde varios componentes colaboran para un objetivo común (tranferencias de archivos y correo electrónico, procesos cliente-servidor).
Es importante recordar que la Capa de Aplicación es la interface con los programas de aplicación, por ejemplo con el microsoft outlook, o el mozilla thunderbird.

Algunos de los protocolos de la capa de aplicación son:

  • FTP: File Transfer Protocol

  • HTTP: Hypertext Transfer Protocol

  • POP3: Post Office Protocol version 3

  • IMAP4: Internet Message Access Protocol rev 4

  • Finger: User Information Protocol

  • IMPPpre/IMPPmes: Instant Messaging and Presence Protocols

  • NTP: Network Time Protocol

  • Radius: Remote Authentication Dial In User Service

  • RLOGIN: Remote Login

  • RTSP: Real-time Streaming Protocol

  • SCTP: Stream Control Transmision Protocol

  • IPDC: IP Device Control

  • IRC: Internet Relay Chat Protocol

  • ISAKMP: Internet Message Access Protocol version 4rev1

  • ISP

  • S-HTTP: Secure Hypertext Transfer Protocol

  • SLP: Service Location Protocol

  • SMTP: Simple Mail Transfer Protocol

  • SNMP: Simple Network Management Protocol

  • COPS: Common Open Policy Service

  • FANP: Flow Attribute Notification Protocol

  • SOCKS: Socket Secure (Server)

  • TACACS+: Terminal Access Controller Access Control System

  • TELNET: TCP/IP Terminal Emulation Protocol

  • TFTP: Trivial File Transfer Protocol

  • WCCP: Web Cache Coordination Protocol

  • X-Window: X Window

martes, 16 de septiembre de 2008

La capa de Red (network layer)

La Capa de Red maneja el direccionamiento, da seguimiento de la ubicación de los dispositivos en la red y determina la mejor manera de mover datos; es decir, la capa de red maneja la comunicación entre dispositivos que no están conectados directamente. Los routers trabajan en la capa de red específicamente.

network layer
network layer

Interfase o interfaz (interface), es la puerta de salida de un paquete hacia una red específica.

Métrica (metric), es la distancia a una red remota y diferentes protocolos de ruteo usan diferentes métodos para calcular esta distancia; algunos cuentan los saltos, otros usan una mezcla del acho de banda, la latencia o hasta un reloj. Un salto es un router que un paquete cruza para llegar a su destino.

Dirección de Red (network address); direcciones de red específicas por protocolo. Un router debe mantener direcciones de red para protocolos individuales debido a que cada protocolo de ruteo da seguimiento a la red con un esquema de direcionamiento distinto (IP, IPv6 e IPX por ejemplo).

Los paquetes de datos (data packets) transportan datos de los usuarios a través de toda la red y se hace mediante protocolos de soporte, llamados protocolos ruteables (routed protocols); por ejemplo, IPX, IP e IPv6.

Los paquetes de actualización de rutas (route update packets) se usan para que entre routers vecinos se notifiquen entre si las redes que tienen directamente conectadas o que conocen a través de algún destino y sirven para que los routers construyan y mantengan las tablas de ruteo. Los protocolos que usan la actualización de rutas se llaman protocolos de ruteo (routing protocols) y entre los más comunes tenemos a RIP, RIPv2, EIGRP y OSPF.

Broadcast Domains in a router
Broadcast Domains in a router

Como ya sabemos, un router rompe los dominios de colisión y por tanto un mensaje de broadcast no se reenvía a través de un router, cada interface en un router es un dominio de colisión (broadcast domain), al igual que en un switch (dispositivo capa 2, data link layer). Como cada interface en un router es un dominio de broadcast diferente, cada una tiene su propia dirección única y está en una red diferente, y los hosts conectados a esa interfase deben estar en la misma red. En la ilustración lo podemos ver más claramente.

Hay algunas cosas relativas a los routers que debemos tener presentes:


  • Por deafult, un router no reenvía tráfico de broadcast o de multicast.

  • Los routers usan las direcciones lógicas de la capa de red para determinar el siguiente salto al cual reenviarán un paquete.

  • Los routers pueden usar listas de acceso (access-list) creadas por el administrador para controlar los tipos de paquetes que pasan por una interfase y tener un tipo de seguridad.

  • Los routers pueden tener funciones de capa 2 como bridging, y si es necesario, simultáneamente rutear a través de la misma interfase.

  • Los dispositivos capa 3 nos dan conexión entre LANs virtuales (VLAN).

  • Los routers proveen calidad de servicio (Quality of Service QoS) para tipos de tráfico específicos.