Apuntes Carpeta (Teoría de las Comunicaciones)
NOTA IMPORTANTE:
- Sepan disculpar las faltas
- No la usen para aprender, sino para repasar los temas importantes.
- Está hasta ARP, que fue cuando se la pedí a Palla para fotocopiar. Osea: falta completar.
- Si pueden y quieren ensanchar algunos temas estaría bueno, son las notas de clase, osea: cuadros sinópticos copiados del pizarrón.
Firma: chapa.
Notas de redes
Modelo OSI
Capas
- Física: Se implementa en hard. Es la que maneja qué es un uno y que es un cero.
- Enlace
- Red: Hasta aquí se conectan incluso en los dispositivos intermedios, las capas mas altas solo de host a host.
- Transporte: Busca abstraer los problemas de la capa 3, la 2 y la 1, temas como ruteo, etc.
- Sesion: está orientada a conversaciones, permite hacer rollbacks.
- Presentacion: resuelve la interpretacion, compresion y encriptacion de la informacion. Estas funcionalidades en realidad estas estan distribuidas por todas las capas.
- Aplicación: es la que interactua con el usuario directamente.
Modelo TCP/IP
Capas
- aplicación: se corresponde con sesion, presentacion y aplicación.
- transporte
- red
- interface de red: se corresponde con las capas 1 y 2 del modelo OSI.
Tipos de conexiones que pueden establecerse
- Simplex: solo se envía o recibe.
- Half duplex: se hace solo una cosa al mismo tiempo.
- Full duplex: se hacen ambas cosas al mismo tiempo.
Tipos de servicios
- Orientado a conexión: durante la transferencia se ocupa el medio de enlace. Primero se establece la conexión, despues se transfiere y por último se libera.
- No orientado: se envían los datos sin ocupar el medio, el algún momento se reciben.
Confiabilidad
Si un protocolo es confiable se garantiza que la informacion llegue, llegue bien y llegue en orden.
Encapsulamiento de la inforrmación el modelo OSI
La capa 7 tiene un mensaje para enviar, el cual pasa por todas las capas hasta llegar a la 1 para luego ser transmitida y al ser recibida ocurre el proceso inverso. Cada capa de la 6 a la 2 agrega su header, 2 además agrega un final. Los mensajes dependiendo de la capa en la que se encuentren reciben distintos nombres:
- 1: bits
- 2: enlace o trama
- 3: paquete o datagrama
- 4: segmento o mensaje
- 5: mensaje
- PDU: packet data unit, se agrega una letra según la capa: n red, t transporte, etc.
Tipos de destinatarios de un mensaje
- Unicast: dirigido a un único destino
- Multicast: a un grupo
- Broadcast: a todos
- Anycast: a cualquiera, no requiere que llegue a todos.
Independencia
Las capas son independientes entre sí. Puede tenerse una capa orientada a conexión y una mas abajo o arriba que no lo sean.
Medios de transmision
- Wireless: radio, satelite, luz, toda clase de ondas electromagneticas.
- Wired (cableado)
Frecuencia
s(t) = A sen (wt + phi)
phi es la fase inicial
w = 2 * pi * f
f = 1/t
t es el período, se mide en Hz que es 1/seg.
Para que dos antenas se comuniquen deben tener linea de vista. Es un problema por la curvatura de la tierra. Se pueden usar satelites o antenas cercanas como repetidoras.
Los medios cableados pueden ser lineas de tension, coaxiles, pares de cobre o fibra optica.
Todos los medios deben convivir con el ruido, que lo que provoca es la perdida de energia, depende de cada medio fisico.
Tipos de ondas
- Analogica: toma infinitos valores lógicos dentro de un rango.
- Digital: toma valores discretos. Un caso particular es la digital binaria.
Es propiedad de la onda/señal. El medio puede permitir o no los distintos tipos de onda.
Tipos de señales
periodicas (deterministicas) o aperiodicas (aleatorias)
Ancho de banda
- Se mide en Hz y se calcula sobre una señal sinusoidal.
- Si se envía a través del medio con determinado ancho de banda una frecuencia fuera del rango no se obtiene salida.
- Para un amplificador > 1, si no es un atenuador.
- La amplifiacion se mide en escala logaritmica
A [db] = 20 Log (Vo/Vi) = 10 log (Po / Pi)
Relación señal a ruido
- Se mide en decibeles
- Se busca que sea lo mas alta posible para lograr una buena transmision de la informacion
Red telefonica
- Tiene un ancho de banda de 4Khz. Deforma las ondas digitales cuadradas, no sirve para digitales.
- Permite de 0,3K a 4,3K
- Se tiene una señal portadora periodica a la que se le inyecta una digital binaria, que altera la frecuencia de la portadora.
- Se coloca en realidad dos, una cerca de un borde o otra cerca del otro, para que la comunicación sea full duplex
- Para el ADSL, como la limitacion está en la central telefonica, lo que se hace es filtrar lo de este tipo de comunicación y mandarlo para otra central.
DIRECT LINKS
Tipos de codificaciones de la informacion
- NRZ: cero es 0v y 1 son 5v o como sea. Tiene el problema de muchos bits juntos seguidos.
- NRZI: cuando cambia el bit cambia la polaridad. No soluciona nada.
- 4b/5b: se desperdicia el 20% pero se gana que no haya muchos ceros o unos seguidos lo que es un problema.
- Manchester: es la que usa ethernet, el desperdicio es del 50% pero nunca se pierde sincronizacion y se puede sincronizar rápidamente.
Nivel de enlace
Se debe determinar como distinguir los frames. Una opcion son las celdas de tamaño fijo. Otra es poner un campo longitud en el header que indica el tamaño de la seccion de datos. El problema siempre es el ruido que puede generar informacion erronea. La última opcion son delimitadores entre mensajes. Si se quiere enviar el delimitador se le agrega un bit en el medio.
Distancia de hamming
Se define como cuantos bits se necesitan como mínimo para engañar a un método de verificacion. Por ejemplo para bit de paridad la distancia de hamming es 2.
Si la distancia d=n+1, permite detectar errores de hasta n bits. Si d=2m+1, permite corregir errores de m bits.
Metodo del cuadrado: se ponen 4 bits en un cuadrado y calcular las paridades por la fila/columna. Tiene d = 3. Si se agranda el cuadrado mejora el aprovechamiento. Codigo de hamming (d=3). Se usan 12 bits por byte. Se guarda la paridad en las posiciones que sean potencia de 2, para saber qué posiciones considerar para cada bit de paridad se descompone la posicion en suma de potencias de dos.
Todo esto sirve poco y no se usa.
CRC (codigo de redundancia ciclica)
Emisor y receptor acuerdan un codigo de 12 o 16 bits. Se lo interpreta como un polinomio y se usa para dividir los datos. Se envia el resto como codigo de verificacion. Los polinomios divisores son estandarizados. No permiten corregir pero sí detectan errores significativos de rafagas. Tambien pierden los bits aislados. Se usan por tener poco overhead, buen aprovechamiento. Se usan hasta 4bytes. Los codigos de verificacion van en el hard. Eso permite al emisor ir enviando la data y enviar el codigo al final y al receptor ir analizando lo que recibe antes de recibir todo.
Control de errores
Cada vez que el emisor envía datos, espera un ACK. Para eso es necesario identificarlos (se los numera). Una posibilidad es hacer stop&wait, espera el ACK del mensaje para enviar el siguiente. Pasado un timeout reenvia. Si hay error de paridad se espera el timeout y se reenvia. En stop&wait basta un único bit para el ACK. Una alternativa al stop&wait es la ventana deslizante, donde se necesitan bits para identificar de que mensaje estoy enviando el ack. Los ack son acumulativos: si te mando ACK del mensaje siete te digo que hasta el siete recibi todos bien. No hay desorden, lo garantiza el medio fisico de capa 1.
Si se pierden todos los ack, el emisor retransmite y el receptor piensa que son nuevos, se necesitan mas bits para transmitir. Se debe cumplor 2^{#bits} >= E+R donde E y R son las ventanas de emisor y receptor. Si se verifica la formula se elimina el solapamiento.
Se puede aumentar la ventana del receptor, es decir que tenga buffers para almacenar mensajes posteriores al que esperaba. Entonces, si falla S0 y llega S1, lo bufferea y avisa que no llego S0.
- SACK = selective ACK
- NACK = lo contrario, sirven los dos igual.
Los protocolos solo con ACK y no con SACK o NACK se llaman goback, porque tienen que reenviar toda la ventana en caso de error. Por mas que halla SACK o NACK se tiene que conservar la fórmula de mas arriba. Para aprovechar lo mejor posible hay que hacer que E=R, si no el otro tiene buffer de mas o de menos. Todo esto con NACK Y SACK.
LAN SWITCHING
- Hub: a nivel 1, replica a todas las maquinas los bits enviados,
- Switch: a nivel 2, envia solamente a la maquina seleccionada
- Leasing bridging: el switch detecta que MAC esta en cada puerto
- Tabla de forwarding: Tabla con la dir mac + interface. Inicialmente vacia. Cuando se hace un envio, puede saber la interfaz del origen. Si no sabe la del destino, inunda la red mandando el mensaje a todos. Se limpia cada x tiempo si una maquina no envia frames.
- Seguridad: Si aparece otra maquina con la misma MAC puede redirigirse el tráfico de la original hacia si. Se envia mensajes en cant como distintas MACS para llenar la tabla y que se comporte como un hub. Pueden fijarse MACs a ciertos puertos como los de servidores. Las MACs pueden clonarse para tenr por ejemplo routers de backup (pero uno solo tiene MAC en cada instante)
Ciclos
Se se tiene un ciclo de switches y se envia broadcast, se entra en loop infinito. Se debe armar estructura de arbol.
Spanning tree protocol 802.1d
Corre solo entre switches y busca detectar que la red sea libre de ciclos. Se envian BPDU (Bridge packet Data unit) entre los switches para armar un arbol.ç Tiene un Bridge ID, compuesto por Bridge priority + dir MAC. El menor queda como raiz, tiende a elegirse al que accede a un recurso importante como Internet o servidores. Para elegir los ejes se asigna un cost inversamente proporcional al ancho de banda, se calcula un pathcost. Cada switch setea un root port (que va a root) único y varios designated port a los hijos. Los demas se bloquean. Root nunca bloquea sus puertos. Se bloquea para datos, no para BPDUs, los cuales se mandan cada dos segundos. Si se tienen 7 switches (el máx), son 30 segundos en total (listening mas learning)
VLAN
- Virtual lans
- Definibles x MAC o puerto.
- Se agrega campo VLAN en tabla por si hay una maquina en mas de una VLAN.
- El 802.1q agrega un header que indica la VLAN.
- Enlace trunk: compartido por varias VLANs.
- Cut-Throug: apenas se tiene la MAC se empieza a forwardear. Como es menor a 512bits no se llena al medio y puede haber colision en un half duplex.
- Store and forward: se recibe, desetiqueta, analiza y luego reenvia.
- Fragment free: se espera a los 64 bytes para evitar colisiones.
Se pueden tener spanning trees por VLAN, seteando distintos Ids según VLAN.
- El 802.1q permite crear instancias de spanning trees y asignarles VLANs
- La mas sencilla es tener un único spanning tree, pero puede generar caminos poco eficientes.
Etherchannel
- Se toman varios enlaces entre dos switches y se hace que se comporten como uno solo.
- LAGP: se tienen enlaces backup para el etherchannel
- Se distribuyen los enclaces según los pares de origen-destino. Se hace un hash sobre las direcciones MAC, de esta manera se elige por que canal va cada uno de los datos.
- Las colisiones se ven por enlace, los trees y forwarding por channel.
IEEE 802.11: WIFI
Es un medio de difusión broadcast gíreles. Cuando S/N es bajo puede haber perdida de paquetes. Se recibe un ACK ante cada envio a nivel MAC, a diferencia de Ethernet, pues es más propensa a ruido. Cuando se debe retransmitir un paquete , se envia un RTS (request to send), se contesta con un CTS (clear to send), se envian los frames y luego el ACK. Las estaciones que reciben RTS son llamadas a silencio, para evitar problemas. DCF implementa la forma de acceder al medio (que es compartido) Ethernet usa como algoritmo CSMA (carrier sense multiple access), “hablar cuando nadie habla”. En wifi es igual. Ethernet tiene un mecanismo de deteccion de colisiones, al detectarla se hace un exponential backoff (por eso el min 654 bytes para llenar el medio y detectar una colision). Como en wifi no estan todos operando sobre el mismo cable, no se puede sensar el medio. Puede que haya otro emisor que el primero no llegue a sensar que esté enviando al receptor: “Terminal oculta”. Hay interferencia en el receptor. Al enviar los CTS el receptor, todos los otros emisores que puedan estar transmitiendo se silencian y se evita la colision. En un entorno con un solo access point y una pc, puede mejorarse el protocolo eliminando los RTS y CTS. La velocidad de tx de la norma g en N1 es de 54mbps. La velocidad se va reduciendo según la intensidad de la señal, a diferencia de ethernet que es constante. DCF tiene retardos según un esquema de prioridades en CSMA. El througput es bastante bajo por lo complejo del protocolo. El frame tiene un campo secuencia para el orden y para retransmitir si se pierde. Hay cuatro campos de direccion: emisor, AP del emisor, AP del receptor y receptor. Se puede transmitir en diferentes canales para tener APs (access points) superpuestos. Frecuencia dedicada: se transmite una portadora alrededor de una frecuencia con mucha potencia, Spreed spectrum: mas amplia la frecuencia y menor potencia, el ruido no afecta al reconstruir la señal. El filtro incrementa la señal y aplaca el ruido.
Formula importante
T[Bps] = BW * log ( 1 + s/n) T es transferencia de bits por Segundo. (No sé donde va)
Niveles de red
Hay muchos caminos entre emisor y receptor. Para los nodos intermedios, basta con implementar hasta la capa de red para routear mensajes. Se denominan routers. Si el protocolo es orientado a conexión se construye un camino (circuito virtual) entre emisor y receptor y se usa para enviar la data. Si es no orientado a conexión hay datagramas y multiples caminos que pueden generar desorden. Por eso se necesitan los headers apropiados para orientar el mensaje
Orientado a conexión
- Permanente: configurado previamente, switcheado: se arma el camino con paquetes de control.
- Pasos:
- se establece la conexión
- Se construye el camino virtual
- Se hace transmisión y recepcion siempre por el camino para evitar desorden
- Se libera la conexión. Enviado por quien establecio el circuito.
- Ante un problema en el circuito, se reconstruye por completo enviando los paquetes necesarios.
- Se tiene una tabla de nodos que se arma para configurar un camino permanente o se arma una vez ya hecho el switcheado.
Tabla de forwarding
IN **************************** OUT ***************************
Circuito Virtual * Interfaz * Circuito Virtual * Interfaz
100 ************** 1 ******** 100 ************** 2
100 ************** 1 ******** 200 ************** 3
100 ************** 2 ******** 300 ************** 3
Puede que el numero de circuito de salida no coincida con el de entrada.
Tabla de destinos
se arma fija o dinámicamente mediante un cierto protocolo. Se usa para hacer el switcheo. Una x nodo.
Destino * Interface * Next hop
A ****** 1 ********* D
A ****** 2 ********* B
Un protocolo orientado a conexión no necesariamente tiene que garantizar confiabilidad, si orden.
IP (Internet protocol)
datagramas sin conexión. Cada nodo tiene solamente tabla de destinos, no garantiza orden, pues no hay camino. Trabaja hop by hop. Ip define: un esquema de direccionamiento y como hacer el fw (usando tabla de destinos). Tiene un header obligatorio de 20 bytes y los opcionales deben ocupar palabras de 32 bits.
El header se arma asi
- Dw1 : Version (v4 o 46) 4 bits
Header Lenght (# de dws) TOS: 3 bits de ip precedente, mas bits sobre el camino a seguir (se setean a cero xq no se usaban, ej: reliabiliti, througput, etc) y explicit congestion notification. Length
- DW2: ID, MF, DF, fragment offset
- Dw3: ttl: time to live. Protocol: Indica protocolo superior al que pertenece la data. (tcp, udp, etc) Checksum: solo sobre el header. No se usa, se apovecha el CRC de N2. A cada hop, las Dir Mac de origen y destino en N2 se actualizan. Puede cambiar incluso el tipo de enlace.
- Dw4,5: Dir origen, destino.
Direccion IP
A.B.C.D cada uno entre 0 y 255
- Hay direcciones unicast, multicast y broadcast.
- Cada segmento entre dos nodos tiene su direccion, luego se identifican los host dentro de esa red (ej en las Pcs de las lan)
- Pueden usarse los 3 primeros bytes para identificar enlace y el ultimo para nodos.
- El primer byte vale 1-223 para unicast, 224-239 para multicast y el resto esta sin uso.
- La direccion ip se separa en direccion de red y de host. Para identificarlas se usa la mascara de red, los que estan en 1 son red. Ej: Para 3 bytes de red la mascara es 255.255.255.0.
- La dir de broadcast de una red es la direccion de red + unos en la parte de host. * * Es posible hacer broadcast a otras redes.
- La dir con ceros en la parte de host identifica la red en si. Todos los demas son para hosts.
- Direccion broadcast de 10.1.1.219 / 28: 10.1.1.208 dir de red. 10.1.1.223 dir de broadcast.
- Enviar un mensaje a 255.255.255.25 deberia enviar un mensaje a todos los hosts, pero como los routers no lo replican termina siendo un local broadcast.
- Direcciones privadas: No están asignadas en internet. Se usan privadamente con NAT (network adress trasnlation, el router al salir traduce la direccion a la que tiene para internet). Son las 10.0.0.0/8. Las 172.16.0.0/12 (hasta 172.31). Y las 192.168.0.0/16.
- Reservadas: 0.0.0.0/8, 240.0.0.0/4 (sin uso), 224.0.0.0/4 (para multicast)
(Ejemplo con muchos graficos no incluido)
Forwarding IP
Todo nodo debe tener tabla de destinos (ruteo). Forma de la tabla : Destino, Next Hop, Int. El nodo toma el mejor match de la tabla. Va a salir a internet con el 0.0.0.0 solo si no hubo otro match. Siempre toma el de máscara mas alta.
Ruteo
- Hay en internet un conjunto de sistemas autonomos (AS). Cada as esta administrado por una unica entidad.
- Los algoritmos de ruteo se dividen en internos y externos, según si actuan dentro o entre AS.
- Los algoritmos pueden ser de ruteo de sesion o de ruteo propiamente dicho. Los de sesion son los orientados a circuitos virtuales. Los comunes transmiten paquetes IP. * Normalmente pueden alterarse los caminos.
- Un router realiza routing y forwarding. Son dos procesos complementarios.
- Para los algoritmos de ruteo, se modela el AS como un grafo con nodos = routers y los enlaces (no dirigidos por simplicidad) con un peso asignado para calcular camino minimo (se puede setear en 1 para calcular x hops)
- Los algoritmos de ruteo interno son algoritmos distribuidos. Se busca que todos los routers tengan la misma vision de la red (sincronizar las tablas de ruteo)
- Un algoritmo de ruteo debe tener: simplicidad, robustez, correctitud y escalabilidad.
- Son dinamicos y distribuidos.
- Ruteo por distance vector:
- Cada router conoce la mejor distancia a destino y qué linea usar para llegar
- Esas tablas se intercambian solo entre vecinos.
- Se usa Ford Fulkenson, Bellman Ford Etc.
- Hay un tiempo de convergencia hasta que se propaga la informacion.
- Ej: RIP (routing internet protocol)
- Link state:
- El flooding es confiable (se recibe un ACK)
- Hace un flooding, propagando el estado de sus enlaces a todos los routers.
- Hay mayor uso de memoria y CPU
- Ej: OSPF
- Cada nodo ejecuta el algoritmo.
ARP
Se resuelve qué direccion fisica se corresponde con la ip destino. Necesita broadcast. Tipicamente va con ethernet. Se hace un broadcast con una ip buscada. Responde quien tiene la ip, lo hace punto a punto. El paquete ARP tiene la mac origen. Hay un cache para esto: tabla ARP Las entradas tienen un ttl de 10 o 20 minutos. El receptor del paquete actualiza su tabla con el dir de quien envio el paquete ARP. Los demas hacen update pero no insert del dato
ProxyARP
Configurado en el router. Cuando se tienen 2 redes fisicas separadas por un router pero la misma por direcciones IP, el router cuando recibe un paquete ARP destinado a la otra red, responde con su propia MAC.
RARP
Si una maquina no tiene disco, manda un paquete con si MAC preguntando su propia IP. LE contesta al broadcast un servidor RARP.