Resumen Redes

Anuncio
Hardware de redes:
LAN (local area network): Son redes de propiedad privada que se encuentran en un solo edificio, o en un campus
de pocos kilómetros de longitud. Están bajo una sola administración. Son utilizadas para compartir recursos e
intercambiar información. Las LANs tradicionales se ejecutan a una velocidad de 10 a 100Mbps, y comenten pocos
errores. Las LANs más nuevas llegan a velocidades de hasta 10Gbts. Las topologías más comunes son la topología
de bus, donde todas las computadoras están conectadas a un cable lineal, un segundo tipo es el de anillo, donde los
host están conectados a un cable circular.
MAN (metropolitan area network): son redes que abarcan ciudades. Un ejemplo es la red de televisión.
WAN (wide area network): abarca una gran área geográfica, con frecuencia un país o un continente. Su función
fundamental es la interconexión de redes que se encuentran a grandes distancias. Por ejemplo la interconexión de
redes LAN.
PAN (personal area network): este tipo de red se refiere a una LAN muy chica con un alcance de solo unos metros,
pensada para conectar los dispositivos utilizados por una sola persona.
SAN (storage area network): es una red dedicada específicamente a la tarea de transporte de datos para el
almacenamiento y recuperación.
GAN (global area network): son redes de empresas privadas a nivel mundial. Se utilizan satélites geoestacionarios
para los enlaces.
Interredes: Existe muchas redes en el mundo, a veces con hardware y software diferentes. Con frecuencia, las
personas conectadas a una red desean comunicarse con personas conectadas a otra red diferente. La satisfacción
de este deseo requiere que se conecten diferentes redes, con frecuencia incompatibles, a veces mediante
maquinas llamadas puertas de enlace (gateways) para hacer la conexión y proporcionar la traducción necesaria,
tanto en términos de hardware como de software. Un conjunto de redes interconectadas se llama interred.
Software en Redes:
Para reducir la complejidad de su diseño, la mayoría de las redes está organizada como una pila de capas o niveles,
cada una construida a partir de la que está debajo de ella. El número de capas, así como el nombre, contenido y
función de cada una de ellas difieren de red a red. El propósito de cada capa es ofrecer ciertos servicios a las capas
superiores, a las cuales no se les muestran los detalles reales de implementación de los servicios ofrecidos.
La capa n de una maquina mantiene una conversación con la capa n de otra máquina. Las reglas y convenciones
utilizadas en esta conversación se conocen de manera colectiva como protocolo de capa n.
Entre cada par de capas adyacentes esta una interfaz. Esta define que operaciones y servicios primitivos pone la
capa más baja a disposición de la capa superior inmediata.
Las capas pueden ofrecer dos tipos de servicios a las capas que están sobre ellas: orientados a la conexión y no
orientados a la conexión. Para el primero se hace una analogía con el sistema telefónico y para el segundo con el
sistema posta.
El servicio orientado a la conexión tiene como característica fundamental que funciona como un tubo, el emisor
empuja objetos (bits) en un extremo y el receptor los toma en el otro extremo. En la mayoría de los casos se
conserva el orden para que los bits lleguen en el orden que se enviaron. El emisor y el receptor realizan una
negociación sobre los parámetros que se van a utilizar. En el servicio no orientado a la conexión cada mensaje lleva
consigo la dirección completa de destino y cada uno de ellos se encamina, de forma independiente, a través del
sistema. No se establece conexión, cuando un host tiene información simplemente la manda. A los paquetes
independientes de un sistema sin conexión se les denomina datagramas por analogía a los telegramas.
Un servicio se especifica formalmente como un conjunto de primitivas (operaciones) que una capa proporciona a
la capa superior. Estas primitivas le indican al servicio que desempeñe alguna acción o reporte sobre una acción
que ha tomado una entidad igual. El servicio define que operaciones puede realizar la capa en beneficio de sus
usuarios, pero no dice nada de cómo se implementan tales operaciones. La capa inferior provee el servicio y la
superior lo recibe o lo usa.
Un protocolo es un conjunto de reglas que rigen el formato y el significado de los paquetes, o mensajes que se
intercambiaron las entidades iguales en una capa. Se pueden cambiar los protocolos sin que cambien los servicios
disponibles al usuario. En resumen: los servicios se relacionan con las interacciones entre capas. Los protocolos se
relacionan con los paquetes enviados entre entidades iguales de maquinas diferentes.
Modelos de referencia. OSI-ISO
El modelo OSI está basado en una propuesta desarrollada por la ISO (International Organization for
Standardization) como un primer paso hacia la estandarización de los protocolos utilizados en varias capas. El
modelo se llama OSI (Open System Interconnection) ISO.
Los datos que se van a transmitir reciben una serie de nombres y formatos específicos en función de la capa en la
que se encuentren, a medida que se va bajando en la sucesión de capas se van agregando una serie de
encabezados e información final. Este proceso que realiza cada capa se denomina encapsulamiento.
El modelo OSI cuenta con 7 capas.
1- Capa física: Se lleva a cabo la transmisión de bits puros a través de un canal de comunicación. Las preguntas que
responde esta capa son ¿Cuantos voltios representan un 1? ¿Cuantos un 0? ¿Cuántos pines tiene un conector de
red y para que se utiliza cada uno? Los aspectos de diseño tienen que ver mucho con interfaces mecánicas,
eléctricas y de temporización, además del medio físico de transmisión que está bajo la capa física.
2- Capa de enlace de datos: La tarea es transformar un medio de transmisión puro en una línea de comunicación.
Es la encargada de hacer fluir la información libre de errores entre dos máquinas conectadas directamente. Para
ello se generan tramas, pequeños bloques de información que contienen en su cabecera las direcciones MAC
(Medium Access Control address) correspondiente al emisor y receptor de la información. Estas tramas son
enviadas de manera secuencial. Si el servicio es confiable cada trama enviada es confirmada por el receptor. Otra
cuestión a evaluar en esta capa es como hacer para que un transmisor rápido no sature de datos a un receptor
lento (control de flujo).
3- Capa de red: Determina como se enrutan los paquetes desde su origen a su destino. Las rutas pueden estar
basadas en tablas estáticas, enrutamiento estático o puede haber enrutamiento dinámico. También tiene la
responsabilidad de controlar la congestión. Otro problema que debe resolver la capa de red es si las redes que se
interconectan utilizan diferentes direccionamientos, o si se utilizan diferentes protocolos. Esta capa tiene que
lograr que las redes heterogéneas se interconecten.
4- Capa de transporte: La función es aceptar los datos provenientes de las capas superiores, dividirlos en unidades
más pequeñas si es necesario, pasar estas a la capa de red y asegurarse de que todas las piezas lleguen
correctamente al otro extremo. También determina qué tipo de servicio (con o sin conexión) le va a prestar a la
capa superior. La capa de transporte es una verdadera conexión de extremo a extremo, en toda la ruta desde el
origen hasta el destino. En las capas inferiores, los protocolos operan entre cada máquina y sus vecinos inmediatos,
y no entre las maquinas de los extremos, la de origen y la de destino, las cuales podrían estar separadas por
muchos routers.
5- Capa de sesión: Permite que usuarios de maquinas diferentes establezcan sesiones entre ellos. Las sesiones
ofrecen varios servicios, como el control de dialogo, administración de token y sincronización.
6- Capa de presentación: Le corresponde la sintaxis y la semántica de la información transmitida. El objetivo es
encargarse de la representación de la información, de manera que aunque distintos equipos puedan tener
diferentes representaciones internas de caracteres (ASCII, Unicode, EBCDIC), números (little-endian tipo Intel, bigendian tipo Motorola), sonido o imágenes, los datos lleguen de manera reconocible. Es la primera capa en trabajar
el contenido de la información que como se establece la conexión. Podría decirse que es un traductor. (las
transferencias TCP/IP se realizan en big-endian).
7- Capa de aplicación: Ofrece a las aplicaciones (de usuario o no) la posibilidad de acceder a los servicios de las
demás capas y define los protocolos que utilizan las aplicaciones para intercambiar datos. Cabe aclarar que el
usuario normalmente no interactúa directamente con el nivel de aplicación. Suele interactuar con programas que a
su vez interactúan con el nivel de aplicación pero ocultando la complejidad subyacente. Algunos ejemplos de estos
protocolos son HTTP, FTP, POP, TELNET.
Las capas 1 a 3 operan entre cada máquina y sus vecinos inmediatos (routers) y no entre las maquinas de los
extremos. De la capa 4 a la 7 las operaciones se realizan entre los extremos (host to host).
Primitivas en el modelo OSI:
Como ya vimos un servicio se especifica como un conjunto de primitivas, en el modelo osi las primitivas son de
cuatro tipos:
Primitiva
Request (petición)
Indication (indicación)
Response (respuesta)
Confrim (confirmación)
Significado
Una entidad solicita el servicio
Una entidad es informada de algún evento
Una entidad quiere responder a un evento
Una entidad es informada sobre su solicitud
Los servicios pueden ser con conexión o sin conexión, en el caso de que sea con conexión se utilizaran las cuatro
primitivas, un servicio sin conexión únicamente utilizara Request e Indication.
Circuit switching and packet switching networks.


Conmutación de paquetes o Packet switching: The data is chopped up into small pieces called packets and
sent over the network. The packets can be routed, combined or fragmented, as required to get them to
their eventual destination. On the receiving end, the process is reversed; the data is read from the packets
and re-assembled into the form of the original data.
Circuit Switching: A connection called a circuit is set up between two devices, which is used for the whole
communication. In a circuit-switched network, before communication can occur between two devices, a
circuit is established between them. The circuit may either be a fixed one that is always present, or it may
be a circuit that is created on an as-needed basis. Even if many potential paths through intermediate
devices may exist between the two devices communicating, only one will be used for any given dialog. The
classic example of a circuit-switched network is the telephone system.
Elementos de datos de protocolo

Protocol Data Unit (PDU) and Service Data Unit (SDU): These are the formal terms used in the OSI
Reference to describe protocol messages. A PDU at layer N is a message sent between protocols at layer N.
It consists of layer N header information and an encapsulated message from layer N+1, which is called both
the layer N SDU and the layer N+1 PDU.
El modelo de referencia TCP/IP.
La capa de internet: Esta capa es la pieza clave que mantiene unida a la arquitectura de internet. Su trabajo es
permitir que los hosts inyecten paquetes dentro de cualquier red y que estos viajen a su destino de manera
independiente. Tal vez lleguen en un orden diferente al que fueron enviados en cuyo caso las capas más altas
deberán ordenarlos, si se desea una entrega ordenada. La capa de internet define un paquete de formato y
protocolo oficial llamado IP (Internet Protocol). Este es un protocolo no orientado a la conexión. El trabajo de la
capa de internet es entregar paquetes IP al destinatario aun cuando alguno de los equipos en el medio se
encuentre fuera de servicio.
La capa de transporte: Esta por arriba de la capa de Internet. Esta diseñada para permitir que dos hosts puedan
llevar a cabo una conversación, tal como lo hace la capa de transporte OSI. Hay dos protocolos de transporte:


TCP (Transfer control protocol), el cual es un protocolo orientado a la conexión, permitiendo que un flujo
de datos originado en una máquina llegue a la otra en el mismo orden y sin error alguno. TCP Fragmenta
los datos en paquetes y estos son pasados a la Capa de Internet que se encarga que llegue a destino, donde
luego estos fragmentos son re ensamblados. Es tarea de TCP también la de controlar el flujo de datos,
asegurando que un transmisor muy veloz no pueda saturar a un receptor más lento.
UDP (User Datagram Protocol), un protocolo no orientado a la conexión. Es usado cuando no se necesita el
control de secuencia o flujo que realiza TCP y se desea implementar el propio en alguna otra capa más alta.
También resulta útil para casos en los que un envío rápido resulta más importante que un envío de
paquetes seguro, como es el caso de transmisiones de vos.
La capa de aplicación: Arriba de la capa de transporte esta la capa de aplicación. Contiene todos los protocolos de
nivel más alto. Algunos ejemplos son FTP, HTTP, DNS, etc.
Modos de Transmisión:



Símplex: un cable de red o un canal de comunicaciones puede mandar únicamente información en una
dirección. Una estación siempre actúa como fuente y la otra siempre como colector. Este método permite
la transmisión de información en un único sentido. Con esta fórmula es difícil la corrección de errores
causados por deficiencias de línea. Como ejemplos de la vida diaria tenemos, la televisión y la radio.
Half-Duplex: sistemas que pueden transmitir en ambas direcciones, pero no de forma simultánea. Un
ejemplo son los equipos de radio.
Full-Duplex: permite transmitir en ambas direcciones, pero simultáneamente y por el mismo canal. Existen
dos frecuencias una para transmitir y otra para recibir. Los canales Full-duplex pueden ser construidos
usando dos pares de conexiones Simplex o usando un canal que permita transmisiones bidireccionales
simultaneas. Método ampliamente utilizado en telecomunicaciones.
ARQ (automatic repeat request).
Es un método de control de errores para transmisión de información que usa acknowledgments (acuse de recibo) y
timeouts para lograr una transmisión de datos confiable. Un ACK (acknowledgment) es un mensaje enviado por el
receptor al emisor para indicar que ha recibido correctamente una unidad. Un timeouts es el evento que se cumple
cuando el emisor espera una cantidad de tiempo razonable sin recibir el ACK, en caso de que se produzca el
timeouts se re-transmite el paquete que no fue confirmada su recepción.
Stop-and-wait.
Como el nombre lo indica, el emisor envía una unidad y luego espera una confirmación de recepción antes de
continuar enviando. El canal físico necesario en este caso es half-duplex.
Es necesario que el receptor sea capaz de distinguir entre una trama que está viendo por primera vez y una
retransmisión. La forma evidente de lograr esto es hacer que el emisor ponga un número de secuencia en el
encabezado de cada unidad que envía. El receptor ahora puede examinar el número de secuencia de cada unidad
que llega para ver si es una nueva o un duplicado que debe descartarse. Basta con un numero de secuencia de 1
bit. En cada instante, el receptor espera un número de secuencia en particular. Cualquier unidad de entrada que
contenga un número de secuencia equivocado se rechaza como duplicado. Cuando llega un elemento que tiene el
número de secuencia correcto se acepta y se pasa a la capa superior. Ahora el numero de secuencia esperado se
incrementa, si era un 0 ahora será 1 y si era 1 será 0.
Protocolos de ventana corrediza.
Los protocolos de comunicación avanzados intentan sacar el mayor provecho posible del enlace, en particular en
casos de retardos no despreciables, que son bastante frecuentes. La idea entonces es no esperar el ACK para
transmitir el próximo paquete, sino seguir transmitiendo un tiempo. Para ello, cada paquete lleva un número de
secuencia, y los ACKs también de modo de saber a qué paquete corresponden. El número de paquetes que tengo
derecho a transmitir sin haber recibido ACK se conoce como el tamaño de mi ventana.
Obviamente, si no hay errores, este protocolo es mucho más eficiente que Stop-and-Wait, puesto que utilizo lo más
que puedo el ancho de banda disponible (si logro que el tamaño de la ventana llene el cable), no teniendo que
detenerme nunca. Si hay errores, depende cómo manejemos la retransmisión, la eficiencia que podamos lograr.
El receptor también maneja una ventana. En el caso que los errores no sean demasiado frecuentes, se estila un
protocolo simple que usa una ventana de recepción de tamaño 1 (Go-BACK-N). Cuando se esperan tasas de errores
importantes, se usa una ventana de tamaño mayor (Selective Repeat), lo que permite recibir paquetes adelantados
y guardarlos dentro de la ventana hasta completar el trozo faltante.
Si la ventana del emisor y del receptor son de tamaño 1, nos encontramos con Stop and Wait.(Pero según la
profesora no es correcto hablar de ventana en stop and wait.) En el caso en que el receptor también tenga una
ventana hablamos de un Selective Repeat.
Al tener una ventana más grande en el emisor, el hecho de transmitir paquetes en secuencia, sin esperar los ACKs
secuenciales, introduce un nuevo error: paquetes en desorden. Como siempre, debemos garantizar que los
paquetes que entregamos a la aplicación mantienen el orden original.
Estos protocolos manejan timeouts por paquetes y almacenan múltiples paquetes que fueron transmitidos pero
cuyo ACK aun no llega (por si hay que retransmitirlos).
Go-BACK-N
La idea es ir transmitiendo las unidades de la ventana, hasta el tamaño máximo acordado. Al ir recibiendo los ACKs,
la ventana se va corriendo y puedo enviar el resto de las unidades, sin pasar el tamaño máximo.
El receptor simplemente descarta todas las unidades subsecuentes al error, sin enviar confirmación de recepción
para las unidades descartadas. Cuando el emisor no reciba un ACK y se cumpla el timeout, va a retransmitir en
orden todas las unidades cuyas unidades aun no han sido confirmadas, comenzando por la dañada o perdida. Esta
estrategia desperdicia bastante ancho de banda si la tasa de errores es alta.
Esto me permite tener un receptor simple, con una ventana de tamaño 1. Basta con que recuerde el número de
secuencia de la próxima unidad que debe recibir.
Si el número de errores es bajo, este protocolo es muy eficiente con ventanas grandes. Al aumentar la tasa de
errores, las ventanas deben ser más pequeñas.
Debemos manejar el número de secuencia del primer paquete cuyo ACK aun no recibimos (ExpectedACK) y el
arreglo de paquetes de nuestra ventana. En general esto se maneja como un arreglo circular y los números de
secuencia van entre 0 y WINDOW_SIZE+1. Los números de secuencia tienen que ser mayor que el número de
elementos de la ventana. (Secuencia > ventana)
Selective Repeat
La segunda opción para solucionar el problema de las retransmisiones consiste en que el receptor descarte la
unidad errónea y pida sólo la retransmisión de ésta, aceptando las unidades posteriores que hayan llegado
correctamente. Esto se conoce como repetición selectiva y corresponde a una ventana deslizante mayor que 1 en el
receptor (normalmente, es de igual tamaño que la ventana del emisor). La repetición selectiva con frecuencia se
combina con el hecho de que el receptor envíe una confirmación de recepción negativa (NAK) cuando detecta un
error, por ejemplo, cuando recibe un error de suma de verificación o una trama en desorden. Las confirmaciones
de recepción negativas estimulan la retransmisión antes de que el temporizador correspondiente expire y, por lo
tanto, mejoran el rendimiento. En otras palabras, la repetición selectiva consiste en aprovechar aquellas unidades
correctas que lleguen después de la errónea, y pedir al emisor que retransmita las que presentaron problemas. La
desventaja que presenta el método es que ahora el receptor ha de disponer de espacio en el buffer para almacenar
todas los unidades de la ventana, ya que en caso de pedirse retransmisión tendrá que intercalar en su sitio la
unidad retransmitida antes de pasar las siguientes a la capa superior, esto porque la capa superior debe recibir las
unidades estrictamente en orden. Entonces, se puede decir que su funcionamiento corresponde al de una ventana
deslizante de igual tamaño en el emisor que en el receptor, lo que esto supone tener un buffer lo suficientemente
grande para almacenar un número de unidades igual al tamaño de ventana que se esté utilizando. La posibilidad de
una recepción no secuencial de unidades plantea nuevos problemas. Por ejemplo, suponiendo que el emisor envía
las unidades 0 a 6, las que son recibidas correctamente. Entonces el receptor realiza las siguientes acciones: las
transmite a la capa superior, libera los buffers correspondientes avanza la ventana para poder recibir siete
unidades más, cuyos números de secuencia podrán ser 7,0,1,2,3,4,5 y envía un ACK para las unidades 0 a 6
recibidas. Si el ACK no llega al emisor, éste supondrá que ninguna de ellas ha llegado, por lo que reenviará las
unidades 0 a 6 de nuevo. De éstas, las unidades 0 a 5 se encuentran dentro de la ventana del receptor. En un
procesamiento secuencial, el receptor no aceptaría estas unidades si no recibe antes la unidad 7 pendiente, pero
con retransmisión selectiva se aceptarían y se pediría retransmisión de la 7. Una vez recibida, ésta se pasaría a la
capa superior seguida de las unidades 0 a 5 antes recibidas, que serían duplicados de las anteriores (esto se llama
overlapping). En este caso el receptor pasará unidades duplicadas al nivel superior. La solución a este conflicto está
en evitar que un mismo número de secuencia pueda aparecer en dos ventanas consecutivas. Por ejemplo, si el
tamaño de ventana es de 7 el número de secuencia podría ser de 4 bits y la ventana del receptor sería 0-6, 7-13,
14-4, etc. El valor máximo de la ventana para un protocolo de repetición selectiva en el caso general sería
(MAX_SEQ+1)/2. Aunque el número de secuencia se ha duplicado respecto al caso anterior, el número de unidades
que hay que mantener en el buffer no necesita ser superior al tamaño de ventana, ya que este será el número
máximo de unidades que habrá que manejar en cualquier circunstancia. La técnica de repetición selectiva da lugar
a protocolos más complejos que la de retroceso n, y requiere mayor espacio de buffers en el receptor. Sin
embargo, cuando las líneas de transmisión tienen una tasa de errores elevada da un mejor rendimiento, ya que
permite aprovechar todas las unidades correctamente transmitidas.
RESUMEN ARQ
Control de flujo.
Son algoritmos para prevenir que los datos de un emisor rápido o que se encuentra sin carga sature a un receptor
que opera en una maquina lenta o sobrecargada. El método más utilizado es el método de control de flujo basado
en retroalimentación, el receptor regresa información al emisor autorizándolo para enviar más datos o indicándole
su estado. Ejemplos de esto son los protocolos de ventana deslizante o de parada y espera (stop and wait).
Control de congestión.
Cuando hay demasiados paquetes en la subred (red formada por routers), hay una degradación del desempeño.
Esta situación se llama congestión. Cuando la cantidad de paquetes descargados en la subred por los hosts esta
dentro de su capacidad de conducción, todos se entregan y la cantidad entregada es proporcional al número
enviado. Sin embargo, a medida que aumenta el tráfico los enrutadores ya no pueden manejarlo y comienzan a
perder paquetes. El control de congestión es el encargado de asegurar que la red sea capaz de transportar el tráfico
ofrecido, es un asunto global a diferencia del control de flujo que se relaciona con el tráfico punto a punto entre un
emisor dado y un receptor dado.
En TCP el transmisor utiliza dos ventanas, una negociada con el receptor en el establecimiento de la conexión y la
otra una ventana de congestionamiento, cuyo tamaño va cambiando durante la transmisión de datos, se recalcula
en cada intercambio de segmentos.
TCP utiliza una ventana de congestión la cual se agranda o achica dependiendo del feedback que recibe de la red.
Esta ventana de congestión empieza por 1 MSS, y la misma aumenta exponencialmente si no se registran pérdidas
de paquetes. Por ejemplo si se envía un paquete y no se pierde la ventana de congestión pasa a ser de 2 MSS, se
envían estos dos segmentos, si se recibe el ACK de ambos la ventana de congestión pasa a ser de 4 MSS, y así
sucesivamente. Esta ventana sigue creciendo hasta que se produzca un timeout o hasta que se alcance el tamaño
de la ventana receptora. Este algoritmo se llama arranque lento. Siempre se utiliza la ventana mas chica, entre la
que define el receptor y la de congestión.
Arranque lento + umbral: Hay definido un umbral inicialmente de 64 KN. Al ocurrir una expiración del
temporizador este umbral se redefine a la mitad de la ventana de congestión actual, y la ventana de congestión se
restablece a 1 MSS. Luego se usa el arranque lento para determinar lo que puede manejar la red, excepto que el
crecimiento exponencial termina en el umbral y a partir de este momento el crecimiento es lineal. Si no ocurren
expiraciones del temporizador, la ventana de congestión continuara creciendo hasta el tamaño de la ventana del
receptor. En este punto dejara de crecer y permanecerá contante mientras no ocurran mas expiraciones del
temporizador y la ventana del receptor no cambie de tamaño.
En TCP estos dos problemas se resuelven con la misma implementación de ventanas.
Transfer control Protocol: TCP
Este protocolo se diseño específicamente para proporcionar un flujo de bytes confiable de extremo a extremo a
través de una capa de red no confiable. TCP debe proporcionar la confiabilidad que la mayoría de los usuarios
desean y que IP no proporciona.
El servicio TCP se obtiene al hacer que tanto el servidor como el cliente creen puntos terminales, llamados sockets.
Cada socket tiene un numero que consiste en la dirección IP del host y un numero de 16 bits, que es local a ese
host, llamado puerto. Para obtener el servicio TCP, se debe establecer de manera explícita una conexión entre un
socket en la maquina emisora y una en la receptora.
Los numero de puerto menores que 1024 se llaman puertos bien conocidos (well-know ports) y se reservan para
servicios estándar. Todas las conexiones TCP son full-dúplex y punto a punto, no se soporta broadcasting. Una
conexión TCP es un flujo de bytes, no uno de mensajes. TCP es el UNICO protocolo que no preserva las unidades.
En todo otro protocolo la unidad es la misma en la entrada y en la salida.
Una característica clave de TCP es que cada byte de una conexión TCP tiene su propio número de secuencia de 32
bits. Cuando internet comenzó las líneas entre los routers eran líneas de 56 Kbps, por lo que un host que mandaba
datos a toda velocidad tardaba una semana en recorrer los números de secuencia. A las velocidades de las redes
modernas, los números de secuencia pueden consumirse con una rapidez alarmante. Este numero de secuencia es
utilizado para las confirmaciones de recepción y para el mecanismo de de ventana corrediza.
El protocolo básico usado por las entidades TCP es el protocolo de ventana corrediza. Cuando un transmisor envía
un segmento, también inicia un temporizador. Cuando llega el segmento al destino, la entidad TCP receptora
devuelve un segmento (con datos en caso de existir), que contiene un número de confirmación de recepción igual
al siguiente número de secuencia que espera recibir. Si el temporizador del emisor expira antes de la recepción de
la confirmación, el emisor envía de nuevo el segmento.
Los protocolos de ventana corrediza utilizados por TCP no son solo para asegurar confiabilidad, sino también es el
mecanismo utilizado por TCP para controlar el flujo de datos. Esto lo logra agrandando o reduciendo el tamaño de
la ventana del receptor, en caso de que el receptor este extremadamente congestionado puede incluso reducir el
tamaño de recepción de ventana a cero, cerrándola; esto va a parar las transmisiones de datos hasta que la
ventana sea re-abierta.
TCP le informa al emisor cuanto buffer tiene libre en cada paquete que le envía, esta es la función del campo
ventana en el header TCP. Con esta información el emisor sabe cuántos paquetes puede enviar sin recibir ACK.
Encabezado del segmento TCP
 Puerto de origen y puerto de destino: identifican los puntos terminales locales de la conexión.
 Numero de secuencia y numero de ACK: Ambos tienen 32 bits de longitud y el ACK especifica el siguiente byte
esperado, no el último byte correctamente recibido.
 Longitud del encabezado TCP: indica la cantidad de palabras de 32 bits contenidas en el encabezado TCP. Esta
información es necesaria porque el campo de opciones es de longitud variable, por lo que el encabezado
también. Este campo indica el comienzo de los datos en el segmento.
 URG: en 1 si esta en uso el apuntador urgente.
 ACK: en 1 para indicar que el numero de ACK es válido.
 PSH: datos que se deben transmitir de inmediato. Indica que el receptor entregue los datos a la aplicación a su
llegada y no los almacene en el buffer hasta la recepción de un bufer completo.
 RST: el que lo envía a encontrado un problema y quiere reiniciar la conexión.
 SYN (synchronize bit): se usa para establecer conexiones. La solicitud de conexión tiene SYN=1 y ACK=0. La
respuesta de conexión si lleva una confirmación de recepción, por lo que tiene SYN = 1 y ACK =1. El bit SYN se
usa para denotar CONNECTION REQUEST y CONNECTION ACCEPTED y el bit ACK sirve para distinguir entre
ambas posibilidades. El objetivo es sincronizar numero de secuencia entre hosts.
 FIN: especifica que el emisor no tiene más datos que transmitir.
 Opciones: agrega características extra no cubiertas por el encabezado normal. La opción más importante es la
que permite que cada host especifique la carga útil TCP máxima que está dispuesto a aceptar.
 Tamaño de ventana: el control de flujo de TCP se maneja usando una ventana corrediza de tamaño variable. El
campo tamaño de ventana indica la cantidad de bytes que pueden enviarse comenzando por el byte cuya
recepción se ha confirmado. Es válido un campo de tamaño de ventana de 0, e indica que se han recibido los
bytes hasta número de confirmación de recepción -1 inclusive, pero el receptor necesita un descanso. Hay una
opción de escala de ventana que permite al emisor y al receptor negociar un factor de escala de ventana. Este
número da la posibilidad de que ambos lados desplacen el campo de tamaño de ventana hasta 14 bits a la
izquierda, permitiendo por tanto ventanas de hasta 230 bytes.
[Otra opción propuesta y ahora de uso difundido es el empleo de la repetición selectiva (selective repeat) en
lugar del protocolo de retroceso n (go-BACK-N). También se introdujeron los NAKs para permitir que el
receptor solicite un segmento específico. Tras recibirlo, puede enviar una confirmación de recepción de todos
los datos que tiene en búfer, reduciendo de esta manera la cantidad de datos retransmitidos. ] Esto anterior
maría nos dijo que no es así, y que tcp utiliza selective repeat pero sin NAKS, lo tengo anotado para
preguntarle, porque encima esta explicado en el RFC 1106.
Establecimiento de una conexión TCP
N+1
N
N
Connect
Request
SYN SEQ=300
N+1
WIN=2MSS MSS=2k
Connect
Indicator
SYN ACK=301 SEQ=99 WIN=8MSS MSS=1k
Connect
Response
Connect
Confirm
ACK=100 SEQ=301
Este protocolo se conoce como 3-Way Handshake. Y puede resumirse como “SYN, SYN-ACK, ACK”
El primer segmento de conexión puede reconocerse porque tiene el bit de SYN prendido. El segundo puede
reconocerse porque tiene tanto el bit de SYN como el de ACK prendidos, y el tercero es únicamente de
confirmación (ACK) para indicar a la otra parte que los dos lados están de acuerdo con que la conexión ha sido
establecida. Una vez establecida la conexión los datos fluyen en ambas direcciones, no hay master o slave. Este tipo
de conexión es fundamental para garantizar que ambos lados están de acuerdo con los números de secuencia a
recibir.
1. El cliente ejecuta una primitiva CONNECT especificando la dirección y el puerto IP con que se desea conectar, el
tamaño máximo de segmento TCP que está dispuesto a aceptar (MSS) y el tamaño de la ventana en múltiplos de
MSS. La primitiva CONNECT envía un segmento TCP con el bit ACK apagado, y espera una respuesta. También
envía el numero de secuencia que va a utilizar para sincronizar.
2. Si algún proceso está escuchando en el puerto, ese proceso recibe el segmento TCP entrante y puede entonces
aceptar o rechazar la conexión; si la acepta, devuelve un ACK junto con el número de secuencia propio, y el
tamaño de ventana expresado también en múltiplos de MSS. En caso de que no se deseara establecer la
conexión, envía una contestación con el bit RST activado.
3. El primer host recibe el segmento y envía su confirmación, momento a partir del cual la conexión TCP queda
establecida. Esta última unidad ya puede llevar datos.
El número de secuencia inicial de una conexión no es 0. Se usa un esquema basado en reloj, con un pulso de reloj
cada 4 microsegundos. Por seguridad adicional, al caerse un host, no podrá reiniciarse durante el tiempo máximo
de paquete (120 segundos) para asegurar que no haya paquetes de conexiones previas vagando por internet.



TCP trabaja con ventanas, durante el establecimiento de la conexión se negocian entre otros
parámetros, el MSS y el tamaño de la ventana como múltiplo del MSS. Luego el tamaño de la
ventana cambia en cada transmisión de datos y se mide en bytes.
TCP informa al emisor de cuanto buffer tiene libre en cada paquete que le envía.
El receptor envía siempre un ACK por el siguiente byte que espera recibir.
MSS: es la cantidad más grande de datos que una computadora puede manejar en una sola pieza sin fragmentar.
Para una óptima comunicación, el número de bytes en el segmento de datos y en el encabezado no debe superar la
MTU (maximum transmission unit)
MTU (maximum transmission unit): es un término de redes de computadoras que expresa el tamaño en bytes del
datagrama más grande que puede pasar por una capa de un protocolo de comunicaciones. Por ejemplo el MTU de
Ethernet es 1500 bytes.
Seleccionando el ISN (Initial Sequence Number)
Una buena pregunta a realizarse es porque no siempre que iniciamos una conexión TCP le asignamos al primer byte
de datos el número de secuencia 1. En un mundo ideal esto probablemente funcionase correctamente. El problema
es que si siempre se empieza en 1, los segmentos de diferentes conexiones podrían mezclarse. Podemos
imaginarnos el siguiente problema, iniciamos una conexión y enviamos el segmento conteniendo del byte 1 hasta
el 30. Sin embargo hay un problema con la subred causando que este segmento se retrase. Si en este momento se
pierde la conexión TCP y se vuelve a crear una, los números de secuencia volverán a empezar en 1, si luego de
establecer la conexión llega el segmento que se había retrasado, el receptor va a pensar erróneamente que ese
segmento pertenece a la nueva conexión. Este es uno de los tantos problemas que pueden ocurrir. Para evitarlos
cada dispositivo que utiliza TCP en el momento de crear una conexión elige un número de inicio de secuencia de
32 bits para la conexión.
Comúnmente cada dispositivo elige el ISN haciendo uso de un contador de tiempo. Este contador se inicializa junto
con TCP, incrementándose en 1 unidad cada 4 microsegundos, hasta el momento en que alcanza el mayor número
posible de los 32 bits, en este momento vuelve a 0 y continúa incrementándose. Cada vez que se establece una
conexión el ISN es tomado del contador. Como toma 4 horas contar desde 0 hasta 4.294.967.295 incrementando
cada 4 microsegundos, está casi asegurada que cada conexión no va a tener conflicto con las anteriores.
Liberación de una conexión TCP.
Aunque las conexiones TCP son full-Duplex, para entender la manera en que se liberan las conexiones es mejor
visualizarlas como un par de conexiones Simplex. Cada conexión Simplex se libera independientemente de su igual.
Para liberar una conexión, cualquiera de las partes puede enviar un segmento TCP con el bit FIN establecido, lo que
significa que no tiene más datos por transmitir. Al confirmarse la recepción del FIN, ese sentido se apaga (aun
puede seguir enviando ACK). Esto se conoce como Half-Close. Cuando ambos sentidos se han apagado, se libera la
conexión. Normalmente se requieren cuatro segmentos TCP para liberar una conexión, un FIN y un ACK para cada
sentido. Sin embargo es posible que el primer ACK y el segundo FIN estén contenidos en el mismo segmento,
reduciendo la cuenta total a tres.
En caso de que el ACK del segmento TCP con el bit FIN establecido no llegase, el emisor del FIN espera un máximo
de dos tiempos de vida de paquete y libera la conexión. La otra parte se dará cuenta que nadie lo está escuchando
y también expirara su temporizador.
N+1
N
N
Disconnect
Request
N+1
FIN ACK=X
Disconnect
Indicator
ACK=Y
Disconnect
Response
Disconnect
Confirm
Half Close
ACK en TCP.
En los mensajes ACK, el Acknowledgment Number es seteado en el ISN recibido del otro dispositivo más uno. Esto
representa el próximo número que se espera recibir. (El ISN realmente representa el número de secuencia del
último byte recibido). El mecanismo de ACK empelado en TCP es acumulativo, por lo tanto si se envía un ACK por el
numero de secuencia X significa que todos los octetos hasta pero no incluyendo X han sido recibidos.
Explicación Router, Switch y Hubs.
Hub: Trabaja en la capa física. Este dispositivo tiene numerosos puertos de entrada que une de manera eléctrica
permitiendo centralizar el cableado de una red. Las tramas que llegan a cualquiera de las líneas se envían a todas
las demás, excepto aquella por la que se recibió. Si dos tramas llegan al mismo tiempo, chocaran, al igual que en un
cable. Este dispositivo también es el encargado de enviar una señal de choque a todos los puertos si detecta una
colisión. Un Hub constituye un solo dominio de colisión. Un HUB añade tráfico a la red, aumentando las
posibilidades de colisión.
Switch y Bridge: Estos aparatos trabajan en la capa de enlace de datos e interconectan dos o más segmentos de
red.
Bridge: conecta dos o más LANs. Cuando llega una trama, el software del bridge extrae la dirección de destino del
encabezado y la busca en una tabla para averiguar a donde debe enviar la trama. Cada puerto de un bridge
determina diferentes dominós de colisión.
El proceso de enrutamiento para una trama entrante depende de la LAN de que proceda (la LAN de origen) y de la
LAN a la cual está destinada (la LAN de destino), como se puede ver a continuación:
1. Si las LANs de destino y origen son la misma, el bridge descarta la trama.
2. Si las LANs de destino y de origen son diferentes, el bridge reenvía la trama
3. Si se desconoce la LAN de destino, el bridge realiza un broadcast a todas las LANs.
Switch: Al igual que el Bridge transporta las tramas tomando las direcciones MAC. Son utilizados para conectar
computadoras individuales. Cada tarjeta de línea proporciona espacio de búfer para las tramas que llegan a sus
puertos. Como cada puerto constituye su propio dominio de colisión, los switch nunca pierden tramas por
colisiones. Sin embargo si las tramas llegan con mayor rapidez de la que pueden retransmitirse, el conmutador
podría quedarse sin espacio de búfer y proceder a descartar tramas.
El switch conoce los ordenadores que tiene conectados a cada uno de sus puertos. Cuando en la especificación del
un switch aparece algo como 8k MAC address table se refiere a la memoria que el switch destina a almacenar las
direcciones. Un switch cuando se enchufa no conoce las direcciones de los ordenadores de sus puertos, las aprende
a medida que circula información a través de él. Cuando un switch no conoce la dirección MAC de destino envía la
trama por todos sus puertos, al igual que un Hub Flooding (inundación). Cuando hay más de un ordenador
conectado a un puerto de un switch éste aprende sus direcciones MAC y cuando se envían información entre ellos
no la propaga al resto de la red. Esto se llama filtrado, y gracias a él, el tráfico entre A y B no llega a C. Las colisiones
que se producen entre A y B tampoco afectan a C. A cada parte de una red separada por un switch se le llama
segmento.
La principal diferencia que existe entre bridges y switchs es que los primeros son utilizados para conectar LANs, y
los switchs son utilizados para conectar computadoras individuales. Como cada puerto del switch va hacia una sola
computadora, estos deben contar con espacio para muchas más tarjetas de línea que los bridges, cuyo propósito es
conectar solamente LANs.
Router: Este dispositivo trabaja en la capa de red. Un router es un dispositivo de hardware para interconexión de
red de ordenadores. Este dispositivo permite asegurar el enrutamiento de paquetes entre redes o determinar la
ruta que debe tomar el paquete de datos.
La diferencia esencial entre el caso de conmutación (cuando se utiliza un switch) y el caso de enrutamiento
(cuando se utiliza un router) es que en el caso del switch, toda la trama se transporta con base en su dirección
MAC. Con un router, el paquete se extrae de la trama y la dirección del paquete se utiliza para decidir a donde
enviarlo. Los switchs no tienen que entender el protocolo de capa de red que se está utilizando para conmutar los
paquetes. Los routers si tienen que hacerlo.
Virtual LAN (VLAN)
Es un método para crear redes lógicamente independientes dentro de una misma red física. Varias VLANs pueden
coexistir en un único switch físico o en una única red física. Son útiles para reducir el tamaño de los dominios de
difusión y ayudan en la administración de la red separando segmentos lógicos de una red de área local que no
deberían intercambiar datos usando la red local. Si pueden intercambiar datos a través de un router.
Hay diferentes formas para que los switchs sepan a que VLAN pertenece cada host:
-
A cada puerto se le asigna una VLAN
A cada dirección MAC se le asigna una VLAN
A cada dirección IP se le asigna una VLAN
La tercera opción transgrede la regla más elemental de la conectividad, la independencia de capas. A la capa de
enlace de datos no le incumbe lo que esté en el campo de carga útil (lugar donde debe inspeccionar la dirección ip).
No le corresponde analizar la carga útil ni tomar decisiones con base en el contendido. No se deben mezclar las
capas.
Las ventajas de una VLAN son las siguientes:
-
-
Permite agrupar a los usuarios de una red para reflejar la estructura de organización de una empresa. Esto
brinda seguridad ya que la información solo viaja dentro de la red que corresponde, por ejemplo, la
información del departamento de ventas nunca pasa por la red del departamento de investigaciones.
Dividir la carga por uso de la red. Si una red es muy usada, esta no debe interferir con las otras.
Disminuye los dominios de difusión.
Protocolo ARP (address resolution protocol)
Es el protocolo de capa de enlace y red encargado de encontrar la dirección hardware (MAC) que corresponde a
una determinada dirección IP. Podriamos decir queset protocolo es el encargado de unir la capa de enlace y la de
red. Este protocolo es necesario debido a que el hardware de capa de enlace no entiende las direcciones de capa
de red. La capa de enlace trabaja con direcciones físicas a diferencia de las lógicas utilizadas por la capa de red.
Todas las interfaces conectadas a una red tienen tanto una dirección IP como una dirección física MAC.
Ejemplo 1
A
B
C
D
E
En este caso el host A desea enviar un mensaje al host E del cual no posee nada más que la dirección IP.
1- El host A realiza un AND booleano con la
máscara de subred para deshacerse del numero
de host y buscar la dirección de la red resultante
en sus tablas de ruteo. En este caso ambos host
se encuentran en la misma subred.
2- El host A envía la siguiente unidad:
IP
MAC
Destino
E
Broadcast MAC
Origen
A
A
3- Todos los host reciben la unidad y se fijan
utilizando la dirección IP si la unidad es para ellos
o no. En caso de serlo responde con la siguiente
trama.
IP
MAC
Destino
A
4- La trama anterior llega al host inicial y este
ahora ya posee toda la información necesaria
para enviar la trama a E.
Origen
E
E
A
IP
MAC
Destino
E
Origen
A
A
E
Ejemplo 2
R1
R2
R
A
B
C
D
E
F
G
H
I
J
A desea enviar un mensaje a H. R es un router que posee dos interfaces de red, R1 y R2, cada una
perteneciente a una subred diferente.
1- El host A realiza un AND booleano con la
máscara de subred para deshacerse del numero
de host y buscar la dirección de la red resultante
en sus tablas de ruteo. A se da cuenta de que H
se encuentra en otra red, por lo cual debe enviar
su mensaje al Gateway que tenga definido, en
este caso R1.
2- A envía su mensaje a R1, pero no conoce su
dirección MAC, por lo cual debe hacer un
broadcast.
IP
MAC
Destino
R1
Broadcast MAC
Origen
A
A
IP
MAC
3- R1 responde.
IP
MAC
Destino
A
A
Origen
R1
R1
4- El host A ya conoce la dirección MAC de su
Gateway por lo que ahora puede enviar el
mensaje que desea que le llegue a H.
IP
MAC
Destino
H
R1
5- El mensaje llega al router que ahora debe
definir si el host H se encuentra en su subred o
no. En caso de que no se encontrase tiene que
enviar la unidad al default Gateway para que este
a su vez pueda volver a realizar la misma
operación hasta que el host se encuentre en
alguna de las interfaces del router. En este caso el
host H se encuentra en la subred que está
conectada a la interfaz R2 del router. Tiene que
encontrar la dirección MAC de su destino por lo
cual envía:
Origen
A
A
Destino
H
Broadcast MAC
Origen
R2
R2
6- El host H contesta el mensaje anterior:
IP
MAC
Destino
R2
R2
Origen
H
H
7- Ahora el router envía el mensaje de A:
IP
MAC
Destino
H
H
Origen
A
R2
Hay varias optimizaciones para que ARP trabaje con más eficiencia. Para empezar, una vez que una maquina ha
ejecutado ARP, guarda el resultado en caso de tener que ponerse en poco tiempo de nuevo en contacto con la
misma máquina. La siguiente vez encontrara la correspondencia en su propio cache, eliminando así la necesidad de
realizar una difusión. También guarda en cache las direcciones la máquina de destino, de manera tal que si tiene
que contestar ya tenga cacheadas las direcciones. Las entradas en el cache ARP deben expirar luego de algunos
minutos para evitar que si se produce un reemplazo de placa Ethernet no se produzcan errores debido a que la
dirección MAC es diferente.
Ethernet Media Access Control (Algoritmo de control de acceso al medio)
Ethernet utiliza el protocolo CSMA/CD (Carrier Sense Multiple Access/Collision Detect). Con CSMA/CD dos o más
estaciones comparten un medio común de transmisión. Para transmitir una trama una estación debe esperar hasta
que el medio este libre, ninguna estación debe estar transmitiendo. Si alguna otra estación trata de transmitir
datos al mismo tiempo ocurre una colisión. La estación que se encontraba transmitiendo inmediatamente
transmite una “jam Sequence” (Secuencia de colisión) para asegurar que todas las estaciones estén notificadas de
que la transmisión fallo por una colisión. Después de esto el host se mantiene callado por un periodo de tiempo
aleatorio antes de tratar de transmitir de nuevo. Este proceso es repetido hasta que en algún momento la
transferencia se completa satisfactoriamente.
Las reglas básicas para la transmisión de una trama son las siguientes:
1- El medio es monitoreado en busca de una estación que este transmitiendo. Este proceso es conocido como
“carrier sense”
2- Si se encuentra una transmisión activa se posterga el envío de la nueva trama. La estación continúa
monitoreando el medio hasta que la señal cesa.
3- Si no se encuentra una transmisión activa en el medio la estación empieza a transmitir inmediatamente.
4- Mientras la estación está enviando la trama monitorea permanentemente el medio para detectar si se
produce alguna colisión.
5- Si una colisión es detectada, la estación que está transmitiendo deja de enviar la trama y envía una “jam
sequence” de 32-bit. La “jam sequence” es transmitida para asegurarse que la colisión es detectada por
todas las otras estaciones transmisoras.
6- Después de enviar la “jam sequence” la estación transmisora espera un tiempo aleatorio antes de empezar
a transmitir de nuevo empezando por el punto 1. Este proceso es llamado “Backoff”. La probabilidad de
que se vuelva a producir una colisión es reducida ya que todas las estaciones que intervinieron en la
colisión vuelven a transmitir después de haber elegido un tiempo aleatorio.
7- Si se producen colisiones reiteradas la transmisión es repetida, pero el tiempo aleatorio es aumentado en
cada intento. Esto disminuye aun más las posibilidades de otra colisión.
8- Este proceso se repite hasta que la estación trasmite la trama sin colisión. Una vez que se pudo transmitir
correctamente, el contador de colisiones, utilizado para aumentar la cantidad de números aleatorios
posibles, es reiniciado a 0.
En general tras i colisiones se elige un número aleatorio entre 0 y 2i – 1, y se salta ese número de slots. Tras
haberse alcanzado 10 colisiones, el intervalo de aleatorización se congela en un máximo de 1023 slots. Tras 16
colisiones, el controlador tira la toalla e informa de un fracaso a la computadora.
Una estación espera simplemente hasta que el medio queda en silencio y
comienza a transmitir. Si no recibe una ráfaga de ruido dentro de los primeros
64 bytes, con seguridad la trama ha sido entregada correctamente.
Ethernet y Time Slot.
En Ethernet existe una longitud mínima de bytes a enviar, estos son 64 bytes permitiendo que Ethernet pueda
distinguir con facilidad las tramas validas de la basura. Si la porción de datos es menor que esta cantidad se utiliza
un campo existente en la trama de Ethernet, llamado relleno, para rellenar la trama al tamaño mínimo. Otra razón
importante para que exista una trama de longitud mínima es evitar que una estación complete la transmisión de
una trama corta antes de que el primer bit llegue al extremo más alejado del cable, donde podría tener lugar una
colisión con otra trama.
Supongamos el siguiente caso: En el momento 0, la estación A, en un extremo de la red, envía una trama.
Llamemos τ al tiempo que tarda en llegar esta trama al otro extremo. Justo antes de que la trama llegue al otro
extremos (es decir, en el momento τ – ε) la estación más distante, b, comienza a transmitir. Cuando B detecta que
está recibiendo más potencia de la que está enviando, sabe que ha ocurrido una colisión, por lo que aborta su
transmisión y genera una ráfaga de ruido de 48 bits para avisar a las demás estaciones. En el momento 2 τ,
aproximadamente, el emisor ve la ráfaga de ruido y aborta también su transmisión; luego espera un tiempo
aleatorio antes de reintentar.
Si una estación intenta transmitir una trama muy corta, es concebible que ocurra una colisión pero que la
transmisión se complete antes de que la ráfaga de ruido llegue de regreso en el momento 2τ. En este caso el
emisor supondrá que la trama ha sido enviada con éxito pero sin embargo colisiono. Para evitar que esto ocurra
todas las tramas deberán tardar más de 2τ para enviarse, de maneara que la transmisión aun este llevándose a
cabo cuando la ráfaga de ruido regrese al emisor. Para una LAN de 10 Mbps con una longitud máxima de 2500
metros y cuatro repetidores, el tiempo de ida y vuelta (incluyendo el tiempo de propagación a través de los cuatro
repetidores) se ha determinado en aproximadamente 50 microsegundos en el peor de los casos, incluyendo el
tiempo en pasar por los repetidores. Por lo tanto la trama mínima debe tomar por lo menos este tiempo en
transmitir. Entonces al hacer el producto del tiempo por la velocidad de la red da como resultado 500 bits, que es la
trama más pequeña que garantizara que funcionara. Para agregar algún margen de seguridad, este número se
redondeo a 512 bits o 64 bytes. Al llevar los 500 bits a 512 bits, el tiempo de slot pasa a ser de 51.2 microsegundos.
Las tramas con menos de 64 bytes se rellenan hasta alcanzar los 64 bytes con el campo de relleno de la trama.
La trama Ethernet tiene un tamaño máximo de 1572 bytes. Y el tamaño utilizable para transmitir datos es de 1500
bytes.
Token Ring.
Es una arquitectura de red desarrollada por IBM en los 70. Esta tecnología se recoge en el estándar IEEE 802.5. El
método de control de acceso al medio es por el paso de un Token.
Utiliza una topología lógica en anillo, aunque por medio de un MAU (Multi-station access unit), la red puede verse
como si fuera una estrella. Tiene topología física estrella y topología lógica en anillo. A cada MAU se le pueden
conectar como máximo ocho computadoras. La velocidad desarrollada por estas redes oscila entre los 4 y los 16
Mbps.
Control de acceso al medio en Token Ring.
Token passing es el método utilizado por Token Ring para acceder al medio físico. Sirve para determinar que nodo
en el anillo puede transmitir frames en un determinado momento. Cuando un nodo tiene datos para transmitir
debe apropiarse del token, en caso de que no necesite transmitir debe dejar pasar el token a la siguiente estación.
Mientras el token está siendo usado todas las estaciones deben permanecer inactivas para evitar colisiones dentro
de la red. Una vez que se termina la transmisión, el token debe quedar libre y puede ser utilizado por otra estación.
El frame de datos enviado circula por la red hasta que llega a la estación destino, quien hace una copia del
contenido del frame para pasarlo a las capas superiores, pero no retira el frame de la red. El mismo es retirado
cuando regrese a la estación que lo transmitió. El nodo transmisor también verifica si el frame fue visto y copiado.
Mientras que no haya datos, el token puede girar libremente.
Una estación puede mantener el token por un tiempo de 8.9 ms, este tiempo es llamado THT (token holding time).
El token puede ser liberado de dos formas: inmediatamente después de transmitir el frame (early release) o
después de que el frame de toda la vuelta al anillo y se haya retirado de la red (delayed release). La early release
permite un mejor aprovechamiento del ancho de banda.
LANs inalámbricas
La IEEE estandarizo las redes inalámbricas, el estándar resultante fue publicado con el nombre 802.11. El estándar
propuesto debía poder trabajar de dos modos:
1- En presencia de una estación base. Toda la comunicación se hace a través de la estación base, que en la
terminología del 802.11 se conoce como access point.
2- En ausencia de una estación base, modo que es conocido como red ad hoc, las computadoras pueden
enviarse mensajes entre sí directamente.
Hasta el momento se presentaron 3 variantes del estándar 802.11.
 802.11 Presentada en el año 1997 que se ejecutaba a 1 o 2 Mbps. Muy lenta y fue descartada.
 802.11a Presentada en 1999 que utiliza una banda de frecuencia más ancha y se ejecuta a velocidades de
hasta 54 Mbps
 802.11b que se ejecuta a 11 Mbps que utiliza la misma banda de frecuencia que el 802.11 pero se vale de
una técnica de modulación diferente.
 802.11g Que utiliza la técnica de modulación del 802.11a pero la banda de frecuencia del 802.11b y que
desarrolla una velocidad de 54 Mbps
Existen dos grandes problemas:
Problema de la estación oculta: Puesto que no todas las estaciones están dentro del alcance de radio de cada una,
las transmisiones que van en un lado de una celda podrían no recibirse en otro lado de la misma celda.
A desea enviar a B pero no
puede oír que B está
ocupado
A
C está transmitiendo.
B
C
Problema de la estación expuesta: Acá B desea enviar a C por lo que escucha el canal. Cuando escucha una
transmisión, concluye erróneamente que no debería transmitir a C, aunque A este transmitiendo a D.
A está transmitiendo.
A
B desea enviar a C pero
piensa erróneamente que
la transmisión fallara
B
C
Por estos dos problemas es que 802.11 no utiliza CSMA/CD como lo hace Ethernet. Una estación antes de
comenzar una transmisión realmente necesita saber si hay actividad o no alrededor del receptor. El CSMA
simplemente le indica si hay o no actividad alrededor de la estación que está detectando el medio y lo importante
es conocer si hay o no actividad en el receptor.
MACA y MACAW (protocolos de acceso múltiple)
MACA (Multiple Access with Collision Avoidance o Acceso Múltiple con Prevención de Colisiones): El concepto en
que se basa es que el emisor estimule al receptor a enviar una trama corta, de manera que las estaciones cercanas
puedan detectar esta transmisión y eviten ellas mismas hacerlo durante la siguiente trama de datos (grande).
Consideremos como A envía una trama a B:
1. A comienza por enviar una trama RTS (Request To Send) a B. Esta trama corta (30 bytes) contiene la
longitud de la trama de datos que seguirá posteriormente.
2. B contesta con una trama CTS (Clear To Send). La trama CTS contiene la longitud de los datos (copiada de la
RTS).
3. A recibe la trama CTS y comienza a transmitir.
Las estaciones que escuchan una trama RTS evidentemente están cerca de A y deben permanecer en silencio
durante el tiempo suficiente para que el CTS se trasmita de regreso a A. Cualquier estación que escuche el CTS está
bastante cerca de B y debe permanecer en silencio durante la siguiente trasmisión de datos, cuya longitud puede
determinar examinando la trama CTS.
En la figura D está al alcance de B pero no de A. No escucha el RTS pero si el CTS. Al escuchar el CTS se le indica que
esta cerca de una estación que está a punto de recibir una trama, por lo que difiere el envió de cualquier cosa hasta
el momento en que se espera la terminación de esa trama. La estación E escucha ambos mensajes y debe
permanecer en silencio hasta que se haya completado la trama de datos.
En caso de que se produzca una colisión, como por ejemplo que B y C envíen tramas RTS a A al mismo tiempo. Estas
chocaran y se perderán. En el caso de una colisión, un emisor sin éxito (uno que no escucha un CTS en el intervalo
de tiempo esperado) espera un tiempo aleatorio y reintenta. El algoritmo es el retroceso exponencial binario (el
mismo de Ethernet).
MACAW (MACA wireless o MACA inalámbrico): La capa de enlace de datos no retransmitía las tramas perdidas
hasta que la capa de transporte se daba cuenta, motivo por el cual se envía un ACK tras cada trama recibida
exitosamente, resolviendo el problema anterior. También se agrego CSMA ya que puede servir para evitar que una
estación transmita un RTS al mismo tiempo y destino que otra estación cercana. Por último agregaron un
mecanismo para que las estaciones intercambiaran información sobre congestionamientos y para que el algoritmo
de retroceso reaccionara menos violentamente a problemas pasajeros, mejorando el desempeño del sistema.
Funcionamiento de 802.11:
Para evitar los problemas antes mencionados (estación oculta y estación expuesta), 802.11 soporta dos modos de
funcionamiento. El primero llamado DFC (Función de Coordinación Distribuida o Distributed Coordination
Function), donde no se utiliza ningún tipo de control central. El otro, llamado PCF (Función de Coordinación Puntual
o Point Coordination Function) que utiliza la estación base para controlar toda la actividad en su celda. Todas las
estaciones soportan DCF pero PCF es opcional. El IEEE 802.11 combina CSMA y MACAW para producir CSMA/CA.
DFC (Función de Coordinación Distribuida o Distributed Coordination Function).
Este método utiliza un protocolo llamado CSMA/CA (CSMA con evitación de colisiones). En este protocolo, se utiliza
tanto la detección del canal físico como la detección del canal virtual. Para la detección de canal físico la estación
que desea transmitir detecta el canal. Si está inactivo, comienza a transmitir. No detecta el canal mientras
transmite pero emite su trama completa, la cual podría ser destruida en el receptor debido a interferencia. Si el
canal está ocupado, el emisor espera hasta que este inactivo para comenzar a transmitir. Si ocurre una colisión, las
estaciones involucradas en ella esperan un tiempo aleatorio, mediante el algoritmo de retroceso exponencial y
vuelven a intentarlo mas tarde.
Para la detección del canal virtual la operación se basa en MACAW. El protocolo inicia cuando A desea enviar datos
a B. A inicia enviándole una trama RTS a B en la que le solicita permiso para enviarle una trama. Cuando B recibe
esta solicitud, podría decidir otorgarle el permiso, en cuyo caso le regresa una trama CTS. Al recibir la CTS, A ahora
envía su trama y comienza su temporizador de ACK. Al recibir correctamente la trama de datos, B responde con una
trama de ACK, con lo que termina el intercambio. Si el temporizador de ACK de A termina antes de que el ACK
regrese, todo el protocolo se ejecuta de nuevo.
C esta dentro del alcance de A, por lo que podría recibir la trama RTS. Si pasa esto, se da cuenta de que alguien va a
enviar datos pronto, así que por el bien de todos desiste de transmitir cualquier cosa hasta que el intercambio este
completo. A partir de la información proporcionada por la solicitud RTS, C puede estimar cuanto tardara la
secuencia, incluyendo el ACK final, por lo que impone para sí misma un tipo de canal virtual ocupado, indicado por
NAV (Vector de Asignación de Red o Network Allocation Vector). D no escucha el RTS pero si el CTS, por lo que
también impone la señal NAV para sí misma. Las señales NAV no se transmiten, son recordatorios para
mantenerse en silencio a sí mismas.
Las redes inalámbricas son muy ruidosas e inestables. La probabilidad de que una trama llegue a su destino se
decremento con la longitud de la trama. Si una trama es demasiado grande, tiene muy pocas probabilidades de
pasar sin daño y probablemente haya que retransmitirla. Para solucionar este problema 802.11 permite dividir las
tramas en fragmentos. Cada fragmento se numera de manera individual y su recepción se confirma utilizando un
protocolo de stop and wait. Una vez que se ha adquirido el canal mediante RTS y CTS, pueden enviarse múltiples
fragmentos en una fila. La secuencia de fragmentos se conoce como fragment burst o ráfaga de fragmentos. La
fragmentación incrementa la velocidad real de transporte restringiendo las retransmisiones a los fragmentos
erróneos en lugar de la trama completa.
PCF (Función de Coordinación Puntual o Point Coordination Function).
En este modo la estación base (Access Point) sondea las demás estaciones, preguntándoles si tienen tramas que
enviar. Puesto que el orden de transmisión es controlado totalmente por la estación base, no se producen
colisiones.
El mecanismo consiste en que la estación base difunda una trama de beacon (trama guía o faro) de manera
periódica. Esta trama contiene parámetros de sistema y también invita a las nuevas estaciones a suscribirse al
servicio de sondeo. Como la batería es un problema en los dispositivos inalámbricos móviles, una estación base
puede conducir a una estación móvil al estado de hibernación hasta que dicha estación base o el usuario la saquen
de este modo. La estación base tiene la responsabilidad de almacenar las tramas dirigidas a la estación que esta
hibernando hasta que salga de este estado.
PCF y DCF pueden coexistir dentro de una celda. Esto funciona definiendo cuidadosamente el intervalo de tiempo
entre tramas. Después de que se ha enviado una trama, se necesita cierta cantidad de tiempo muerto antes de que
cualquier estación pueda enviar una trama. Se definen cuatro intervalos de tiempo diferentes cada uno con un
propósito especifico:




SIFS (Espaciado Corto Entre Tramas o Short InterFrame Spacing): Es el intervalo más corto, y se utiliza para
permitir que las distintas partes de un dialogo transmitan primero. Esto incluye dejar que el emisor de una
ráfaga de fragmentos transmita el siguiente fragmento sin tener que enviar una RTS. Siempre hay una sola
estación que debe responder luego de un intervalo SIFS.
PIFS (Espaciado Entre Tramas PCF o PCF InterFrame Spacing): luego de transcurrido este tiempo la
estación base podría enviar una trama de beacon. Le da a la estación base la posibilidad de tomar el canal
cuando el emisor anterior haya terminado, sin tener que competir con usuarios ansiosos.
DIFS (Espaciado entre tramas DCF o DCF InterFrame Spacing): Si la estación base no tiene nada que decir y
transcurre este tiempo, cualquier estación podría intentar adquirir el canal para enviar una nueva trama.
EIFS (Espaciado Entre Tramas Extendido o Extended InterFrame Spacing): Solo una estación que acaba de
recibir una trama errónea o desconocida utiliza el ultimo intervalo de tiempo para reportar la trama errona.
Capa Física de las redes inalámbricas:
Infrarrojo: Se permiten dos velocidades: 1 y 2 Mbps. Las señales de infrarrojos no pueden penetrar las paredes y la
luz solar interfiere. Por estos motivos y por el bajo ancho de banda, esta no es una opción muy popular.
FHSS (Frequency Hopping Spread Spectrum): es una técnica de modulación en espectro ensanchado en el que la
señal se emite sobre una serie de radiofrecuencias aparentemente aleatorias, saltando de frecuencia en frecuencia
sincrónicamente con el transmisor. Las frecuencias son pseudoaleatorias, ya que todas las estaciones utilizan la
misma semilla para el generador de números pseudoaleatorios y permanezcan sincronizadas. Los receptores no
autorizados escucharán una señal ininteligible. Si se intentara interceptar la señal, sólo se conseguiría para unos
pocos bits. El tiempo de permanencia en cada frecuencia es un parámetro ajustable. Utiliza la frecuencia 2.4 GHz
su principal desventaja es su bajo ancho de banda.
DSSS (Direct Sequence Spread Spectrum): Tambien restringido a 1 o 2 Mbps.
OFDM (Orthogonal Frequency Division Multiplexing): Utilizada en la primera LAN inalámbrica de alta velocidad,
para enviar hasta 54Mbps en la banda ISM más ancha de 5 GHz. Utilizada en 802.11ª.
HR-DSSS (High Rate Direct Sequence Spread Spectrum): alcanza 11 Mbps en la banda de 2.4Ghz. Se llama 802.11b
pero no es la continuación de 802.11a, de hecho su estándar se aprobó primero y apareció primero en el mercado.
El estándar 802.11g utiliza el método de modulación OFDM de 802.11ª pero opera en la banda ISM más estrecha
2.4 GHz
Bluetooth
Ericsson en conjunto con otras cuatro empresas formo un SIG (Special Interest Group) con el propósito de
desarrollar un estándar inalámbrico para interconectar computadoras, dispositivos de comunicaciones y accesorios
a través de radios inalámbricos de bajo consumo de energía, corto alcance y económicos. La especificación de
Bluetooth está dirigida a un sistema completo, de la capa física a la capa de aplicación.
Piconet: unidad básica que consta de un nodo maestro y hasta siete nodos esclavos activos. Es la topología de red
utilizada por Bluetooth.
Scatternet: son un conjunto de piconets interconectadas. Varias piconets en una sala pueden conectarse mediante
un nodo puente.
Todas las comunicaciones se realizan entre el maestro y el esclavo; no existe comunicación directa de esclavo a
esclavo.
Aplicaciones de Bluetooth.
La mayoría de los protocolos de red solo proporcionan canales entre las entidades que se comunica y permiten a
los diseñadores de aplicaciones averiguar para que deseen utilizarlos. En contraste, Bluetooth designa el soporte de
13 aplicaciones en particular y proporciona diferentes pilas de protocolos para cada una. Las siguientes son las
aplicaciones que se denominan perfiles.
Nombre
Acceso genérico
Descubrimiento de servicios
Puerto serie
Intercambio genérico de objetos
Acceso a LAN
Acceso telefónico a redes
Fax
Telefonía inalámbrica
Intercom
Headset
Envió de objetos
Transferencia de archivos
Sincronización
Descripción
Procedimientos para el manejo de enlaces
Protocolo para descubrir los servicios que se ofrecen
Reemplazo para un cable de puerto serie
Define la relación cliente-servidor para el traslado de objetos
Protocolo entre una computadora móvil y una LAN fija
Permite que una computadora portátil realice una llamada por
medio de un teléfono móvil
Permite que un fax móvil se comunique con un teléfono móvil
Conecta un handset con su estación base local
Walkie-talkie digital
Posibilita la comunicación de voz sin utilizar las manos
Ofrece una manera de intercambiar objetos simples
Proporciona una característica para transferencia de archivos mas
general
Permite a una PDA sincronizarse con otra computadora
No era necesario proporcionar una pila de protocolos para cada una de las funciones que se quería lograr, esto se
debió a que los diversos grupos de trabajo que estuvieron involucradas en el desarrollo de este estándar se
enfocaron en su problema específico y cada uno género su propio perfil.
Quality of Service
En la mayoría de las redes se le da más importancia a enviar los datos de un extremo a otro de la red tan rápido
como sea posible que a preguntarse en cómo se envía la información. Por ejemplo internet basado sobre el
Internet Protocol, utilizando la tecnología packet-switching, que esta diseñada para enviar paquetes del punto A al
punto B del modo más efectivo que exista sin que el usuario sepa que ruta se va a utilizar. De hecho algunos
paquetes pueden ser enviados a lo largo de diferentes rutas.
Para la mayoría de las aplicaciones, como un file o message transfer, esto funciona perfectamente bien. Sin
embargo hay aplicaciones donde este tipo de servicio es de “poca calidad”. En estos casos, es más importante
preocuparse en como la información viaja que a velocidad viaja, por lo tanto hay una necesidad de protocolos que
ofrezcan “quality of service”. Este término puede englobar una cantidad de características diferentes,
generalmente se incluyen las siguientes:





Bandwidth Reservation: Es la posibilidad de reservar una porción de ancho de banda en una red o interfaz
por un periodo de tiempo. De esta manera se asegura que dos dispositivos van a contar durante ese
periodo de tiempo con un ancho de banda determinado para poder realizar sus operaciones. Muy usado en
aplicaciones multimedia que necesitan enviar la información en tiempo real.
Latency Management: Limita la latencia en cualquier transferencia de datos entre dos dispositivos a un
valor conocido. (Latencia es cuanto le lleva a la información viajar a lo largo de la red)
Traffic Prioritization: En redes convencionales todos los paquetes son creados “iguales”. Una característica
muy importante de QoS es la posibilidad de dar prioridad a las conexiones más importantes sobre menos
importantes.
Traffic Shaping: Uso de buffers y limites para restringir el tráfico a lo largo de una conexión con un máximo
pre determinado.
Network Congestion Avoidance: Consiste en monitorear conexiones particulares en una red y routear la
información cuando una parte de la red se está congestionando.
So, in essence, quality of service in the networking context is analogous to
quality of service in the “real world”. It is the difference between getting take-out
and sit-down service at a nice French restaurant—both cure the hunger pangs,
but they meet very different needs.
Concepto clave: El término genérico “quality of service” describe las características de cómo la información es
enviada en vez de que tan rápido es enviada. QoS es importante especialmente en aplicaciones multimedia. Las
aplicaciones multimedia requieren un flujo constante de información más que un gran ancho de banda. Ethernet
no fue creada para proveer QoS.
Estableciendo una conexión TCP:
Antes de que se pueda transferir cualquier dato, se ha de establecer una conexión entre los dos procesos. Uno de
los procesos (normalmente el servidor) lanza una llamada OPEN pasiva, el otro una llamada OPEN activa. El OPER
pasivo permanece dormido hasta que otro proceso intenta comunicarse con el a través de un OPEN activo
SAP:
The SAP is a conceptual location at which one OSI layer can request the services of another OSI layer.
Es el punto de acceso a los servicios de una capa inferior, cada SAP tiene una dirección que lo identifica.
Interface:
Es el conjunto de reglas que hace que las capas se puedan comunicar. Se usa una IDU (unidad de datos de la
interface) a través del SAP, la IDU consiste en una SDU (unidad de datos de servicio), además de alguna información
de control, necesaria para que las capas inferiores realicen su trabajo, pero no forma parte de los datos.
Descargar