Resumen Xarxes TEMA 2 (2015)

Resumen Español
Universidad Universidad Autónoma de Barcelona (UAB)
Grado Ingeniería Informática - 2º curso
Asignatura Xarxes
Año del apunte 2015
Páginas 7
Fecha de subida 09/04/2015
Descargas 134
Subido por

Vista previa del texto

RESUMEN XARXES – TEMA 2 Xavier Molina DIRECCIONAMIENTO (ADDRESSING) Las direcciones IPs nos permiten identificar cada uno de los hosts conectados a una red.
Por lo tanto, si un host está en dos redes, tendrá una dirección IP diferente para cada una de ellas.
32 bits NetID HostID NetID: Identifica la red HostID: Identifica el host Si dos direcciones comparten NetID querrá decir que son vecinas.
A la hora de escribir las IPs, las partimos en 4 grupos de 8 bits, donde en cada uno de ellos tendremos números del rango 0-255 (28): 0.
0.
0.
0 Dirección + pequeña 255.
255.
255.
255 Dirección + grande Pero, ¿cuántos bits dedicamos para la NetID y cuantos para el HostID? Para eso existe el esquema de clases.
0 1 2 3 7 8 15 16 23 24 31 NetID (1-7) HostID (8-31) A 0 1 0 NetID (2-15) HostID (16-31) B NetID(3-23) HostID (24-31) C 1 1 0 D E 1 1 1 0 1 1 1 1 Multicast Reserved La clase A permite tener muchos más hosts que las otras clases, pero en cambio nos permite menos redes.
Cuando la NetID o el HostID son todo 0s o todo 1s tienen uso concreto: (TRUCO: entender por 0 “este” y 1 como “todo”.) NetID 0 HostID 0 El propio host NetID 0 HostID 1 Broadcast en la red local NetID 1 HostID 1 Limited Broadcast (la más amplia) NetID 0 HostID X Dirección en la red local NetID X HostID 0 Identificador de red NetID X HostID 1 Directed Broadcast Broadcast todos los hosts y routers en una red.
Las direcciones o más concretamente las NetID las asigna ICANN (corporación) mientras que los HostID las asigna el administrador de la red local.
- Orden estándar de los bytes en TCP/IP  BigEndian.
Ejemplo de conexión entre A y B: 172.20.144.77 A 158.109.11.3 R ou 158.109.11.5 ter B 172.20.144.10 A y B están en distintas redes porque no comparten NetID, y el router que se encuentra en las dos tiene una distinta para cada una de las redes.
La gran demanda de nuevas IPs y la falta de NetIDs  SUBNETTING Subnetting: consiste en dividir la red en subredes más pequeñas. Estos cambios solo serán visibles a nivel local, sólo los routers locales sabrán la estructura, desde fuera el NetID no cambiará.
PARTE GLOBAL (NetID) PARTE LOCAL (HostID) ↓ ↓ PARTE GLOBAL (NetID) RED FÍSICA HOST Por ejemplo: 158.109 @Red UAB HostID Como esquema complementario existe el Supernetting, que nos permite tener en una sola red varios prefijos (NetIDs) distintos.
Máscara de red (Network Mask) Para delimitar la división exacta entre NetID y HostID usamos la máscara de red o Network Mask.
Son 32 bits donde los 1 indican la parte fija (NetID) y los 0 al identificador del host.
Ejemplo: 158.109.16.0 puede tener una netmask 255.255.255.0. (últimos 8 bits HostID) Notación CIDR Es simplemente una forma de escribir cual es el tamaño de la NetID de nuestra red. Por ejemplo: La dirección 158.109.79.4 / 24, el /24 nos dice que los primeros 24 bits son NetID, por lo tanto nuestra red es 158.109.79.0 / 24.
Xavier Molina Un ejemplo un poco más difícil donde la partición no es un múltiplo de 8: Si tenemos 141.24.32.0 / 19 (los primeros 19 bits son NetID), lo pasamos a binario: NetID_______________________ _________ 10001101. 00011000. 001 | 00000. 00000000  Primera dirección 10001101. 00011000. 001 | 11111. 11111111  Última dirección 11111111. 11111111. 11100000. 00000000  Máscara de red (Netmask) O también: 255.255.224.0 Las direcciones que tendrá este bloque serán de 141.24.32.0 a 141.24.63.255.
IPv6 Para satisfacer la demanda aparecieron también las direcciones IPv6 de 128bits (16bytes). Se expresan en hexadecimal y compresión de ceros (consideramos los 0 a la izquierda irrelevantes).
Traducción IPv4IPv6: La dirección empieza con 80 ceros y 16 unos, por ejemplo: :: ffff : 158.109.79.4 Xavier Molina ROUTING (ENCAMINAMIENTO) Y ARP Cuando queremos enviar algo, un datagrama de host a host nos encontramos con un problema, no sabemos la dirección física del destinatario, sólo sabemos la nuestra. El protocolo ARP nos permite “preguntar” por la física del destinatario (y recibir la respuesta). Nosotros conocemos la lógica (la IP) del destinatario, y será esta la que usaremos para enviarle el ARP.
Si queremos enviar un datagrama entre dos hosts que están dentro de una misma red tenemos dos casos (el caso en el que no estén en la misma red está al final del resumen): Con Broadcast: Queremos enviar un datagrama de A a B. Ponemos el datagrama en una trama, con origen Física de A y destino física de B, pero no conocemos la dirección física de B, así que enviaremos a todos (ya que hay broadcast) una trama usando el protocolo ARP.
Esta trama la recibirán todos los hosts y será leída por sus respectivos módulos ARP (cada host tiene uno). En esta trama pediremos la dirección física del host que se corresponda con la dirección lógica que tenemos, y una vez localizado, que nos responda con su dirección física en una nueva trama también con protocolo ARP.
Visualmente: Queremos enviar un datagrama, lo ponemos en una trama: Origen / Destino Física A / Física B Protocolo IP TRAMA CON EL DATAGRAMA DATAGRAMA No sabemos la Física de B, así que preguntamos: Física A / Todos Física B / Física A ARP ¿Tienes la lógica de B? Entonces dame tu física.
ARP Física de B TRAMA PREGUNTANDO TRAMA DE RESPUESTA Ahora ya tendremos la dirección física de B y podremos enviar el datagrama.
Sin Broadcast (ATM): En este tipo de red tendremos un servidor ARP (S), y todos los elementos de la red conocerán la dirección ATM de éste (ATMS).
Para enviar un datagrama de A a B tendremos el mismo problema, no sabremos la dirección ATM (física) de B. Para averiguarla, A envía una trama del tipo ARP a S y este le contesta con otra trama con la dirección física de B. Ya podremos enviar el datagrama.
Más datos importantes sobre ARP - En ambos casos, los hosts guardan las direcciones obtenidas durante unos 20 minutos en la caché ARP.
- El protocolo ARP no es muy seguro y es fácilmente atacable.
IP (INTERNET PROTOCOL) La arquitectura de Internet se basa en tres servicios independientes: Servicios Aplicación Servicios Transporte Servicios Entrega de Datagramas sin conexión El protocolo IP: - Se encarga de la entrega de datagramas.
- Define la unidad básica de transmisión de datos en una internet.
- Define la función encaminamiento (routing function), nos encamina los datos (camino a seguir).
Unidad básica de transmisión de datos en una internet  INTERNET DATAGRAM (32bits) Cabecera del Datagrama Datos del Datagrama (Datagram Header) (Datagram Data) Campos de la cabecera (20 bytes): - Version (4 bits). Indica la versión del protocolo, en nuestro caso 4 (IPv4).
- Header Length (4 bits). Indica el tamaño de la cabecera en palabras de 32 bits.
- Total Length. El tamaño del datagrama completo en bytes (cabecera + data). El tamaño máximo de un datagrama es 216 bytes.
- TOS (Tipo de Servicio, 8 bits). Indica cómo debemos tratar al datagrama.
Cada red física usa su propia tecnología (Ethernet, ATM…) por lo que el tamaño máximo del datagrama cambiará (MTU – Maximum Transfer Unit).
Por ejemplo, MTU en Ethernet es 1500 bytes y en ATM 9180 bytes.
Como podremos enviar datagramas entre redes que usen distintas tecnologías se puede dar el caso de que recibamos un datagrama de un tamaño mayor al máximo, la solución será la FRAGMENTACIÓN (FRAGMENTATION).
Este proceso consiste en dividir el datagrama en fragmentos (fragments) de tamaño múltiple de 8. Cada fragmento será un nuevo datagrama con la misma cabecera (20 bytes) que el original. El proceso de desfragmentación, de unión de los fragmentos, se realiza en el destino.
Ejemplo de fragmentación: Tenemos un datagrama con datos de tamaño 1480 bytes y tenemos que enviarlo a una red con una MTU de 576 bytes: 552 1480 552 376 Serán fragmentos de 552, porque el MTU es 576 bytes, tenemos que reservar 20 bytes de cabecera (556 bytes para datos), pero como debe ser múltiplo de 8, lo más cercano es 552.
Ahora que sabemos qué es la fragmentación: necesitaremos tres campos en la cabecera para hacer esto: - Identification. Cuando tengamos que unir los fragmentos, uniremos aquellos que tengan este campo igual. Todos los fragmentos tienen el mismo.
- Datagram Offset. Es 0 en el primer fragmento, en los otros fragmentos indica qué datos del datagrama original contiene, expresado en unidades de 8 bytes.
-Flags: - Do not fragment bit: Este bit nos dice si podemos fragmentar (0) o no (1). No es importante.
- More fragments bit: Este bit nos dice si hay más fragmentos. En el último fragmento será 0.
Ejemplo con estos campos: Id DNFB MF OFFS 0 0 0 15 15 15 15 0 0 0 1 1 0 0 16 32 Datagrama original  1r Fragmento  2º Fragmento  3r Fragmento Algunos campos más: - TTL (Time to Live). Indica cuanto tiempo en segundos puede estar un datagrama en un internet (para evitar bucles infinitos).
- Protocolo. Indica el protocolo de creación del mensaje: ICMP (0x01), UDP (0x11) o TCP (0x06).
- Header Checksum. Asegura la integridad de los campos.
- Direcciones de origen y destino.
- Opcional: Opciones IP. En este caso la cabecera será mayor a 20 bytes.
ROUTING BÁSICO (ENCAMINAMIENTO BÁSICO) Interfaces (interfaces)  guardan información sobre la red (tipo, dirección física y MTU) y cómo acceder a ella (dirección IP, máscara de red…). Cada red tiene una.
El routing consiste en la elección del camino para la entrega de nuestros datagramas, esto es llevado a cabo tanto por los Hosts como por los Routers.
Hay dos tipos de routing: - Direct Delivery. Nuestro destino está en nuestra misma red. (Explicado arriba en Routing) - Indirect Delivery. Nuestro destino no está en la misma red, el datagrama tiene que pasar por un router.
Indirect Delivery Su funcionamiento es parecido al de Direct Delivery, explicado arriba, sólo que tendremos que repetir el proceso varias veces enviando usando los routers.
En este caso nuestro destino no está en la misma red, entonces, ejemplo: Queremos enviar un datagrama de A a B (B está en otra red): 1- Buscamos la IP del router (la tendremos).
2- Conseguimos la dirección Física del Router mediante dos tramas ARP, una preguntando y otra con la respuesta, como hacíamos en Direct Delivery.
3- Ahora que tenemos la Física del Router, le enviamos el datagrama.
Ahora que el Router tiene el datagrama nos comprueba si B (el destino) está en su red: - Si lo está: Direct Delivery a B.
Si no lo está se repiten los tres pasos anteriores, enviando el datagrama a otro router.
Routing Table Todos los routers y hosts de la red tienen una tabla de Routing, donde guardan información sobre los posibles destinos y cómo podemos llegar a ellos.
Cuando vamos a enviar un datagrama el software lo primero que hace es mirar si tenemos información sobre nuestra destinación en la tabla.
Ejemplo de tabla: Destino (¿dónde?) Router (¿cómo llegar) Interfaz (usando…) 1.2.3.4 158.109.0.3 Ethernet 10.20.30.40 158.109.0.3 Ethernet 158.109.79.4/32 Direct Delivery Ethernet 158.109.0.0/16 Direct Delivery | Si queremos acceder a cualquier host de la red con NetID 158.109 ICMP IP no controla los errores que se puedan producir en el envío de datagramas, si no llegan, por ejemplo. Para eso está el ICMP: ICMP  Internet Control Message Protocol. Es una parte de la IP que permite a los routers y hosts comunicarse para intercambiar información sobre errores. Estos mensajes sólo llegan al host origen.
La cabecera de estos mensajes suele ser así: Tipo (8 bits) Código (8 bits) Checksum (16 bits) Con el comando ping podremos comprobar el estado del destino, éste envía dos mensajes: - Echo request  Tipo=8 Código=0 - Echo reply  Tipo=0 Código=0 Xavier Molina ...