You are on page 1of 42

Introduccin a TCP/IP

(1era Parte)

Fernando Gont UTN/FRH


Haedo,19 de Agosto de 2005

Conexin simple entre dos nodos

El enlace de comunicaciones se encuentra dedicado exclusivamente a la comunicacin de los dos nodos Terminologa: Nodo: Forma genrica de referirnos a cada uno de los sistemas involucrados en la comunicacin. Enlace de comunicaciones: Provee el medio para realizar la comunicacin.

Conexin entre mas de un nodo

Tener un enlace dedicado entre todos los nodos existentes es inaplicable a medianas o grandes escalas.

Red de conmutacin de circuitos

La red establece, de acuerdo a las necesidades, circuitos para que los usuarios de la misma puedan comunicarse entre s.

Creacin de un circuito

Durante la vida de una conexin, se mantinen reservados los recursos para la comunicacin en cuestin

Caractersticas de una red de conmutacin de circuitos


Previo a la transferencia de informacin, se debe establecer una conexin o camino dedicado. Deben existir circuitos disponibles en todos los nodos de conmutacin involucrados. Los recursos estarn destinados a cada una de las conexiones, durante el tiempo de duracin de las mismas. Por ello, el nivel de utilizacin usualmente es muy bajo. Hay una demora para establecer cada conexin. Sin embargo, una vez establecida la misma, la red es transparente a los usuarios.

Inconvenientes de las redes de conmutacin de circuitos


En una comunicacin de datos tpica entre dos computadoras, la mayor parte del tiempo el enlace de comunicaciones est inactivo. Esto hace que la comunicacin de datos en una red de tipo circuitswitching sea ineficiente. En una red circuit-switching, todos los nodos de la red deben utilizar la misma tasa de transferencia. Esto limita la capacidad de este tipo de red para interconectar equipos de distintas caractersticas. En las redes de conmutacin de circuitos, cuando todos los canales se encuentran utilizados, la red comienza a rechazar comunicaciones.

Tecnologa de conmutacin de paquetes

La informacin se transmite en pequeas porciones, denominadas paquetes. Cada paquete debe contener, aparte de la informacin a transferir, informacin de control (minimamente, se debe especificar el destinatario del paquete). En cada nodo intermediario, los paquetes se reciben, se almacenan brevemente, y se reenvian. Ninguno de los enlaces intervinientes queda dedicado exclusivamente.

Ventajas de las redes de conmutacin de paquetes


La eficiencia de las comunicaciones se mejora notablemente. En caso de que momentaneamente no se posean recursos de comunicacin, los paquetes se apilan, y se van transmitiendo a medida que se disponga de dichos recursos. La red puede adaptar la diferencia de velocidad de transferencia entre nodos. Cada nodo se conecta a la red a su propia velocidad. Si la red se sobrecarga, se degrada la calidad de servicio (normalmente aumenta el delay), pero se puede brindar servicio a comunicaciones nuevas.

Comparacin de caractersticas entre las dos tecnologas


Circuit-switching
Enlaces de comunicaciones dedicados Transmisin contnua de informacion La informacin no se almacena en la red Se establece el camino (circuito) para toda la comunicacion Demora en el establecimiento de conexin; demora despreciable durante la comunicacion

Packet-switching
Enlaces de comunicaciones nodedicados Transmisin de paquetes, de acuerdo a la necesidad La informacin es almacenada temporalmente en la red El camino (ruta) se establece para cada paquete Demora en la transmisin de paquetes

Comparacin de caractersticas entre las dos tecnologas (continuado)


Circuit-switching
La sobrecarga de la red impide el establecimiento de nuevas comunicaciones El ancho de banda es fijo para cada conexin Luego del establecimento de conexion, no existe overhead Los equipos de conmutacin son complejos

Packet-switching
La sobrecarga de la red aumenta el delay El ancho de banda se usa de forma dinmica Existe overhead en cada paquete (encabezamientos). Los dispositivos de conmutacin son simples

Ejemplo de tecnologa packet switching: Ethernet

Algunas posibles topologas

Formato de un paquete Ethernet

Destination address: direccin Ethernet del sistema destinatario. Source address: direccin Ethernet del sistema origen. Type: Protocolo o tipo de dato encapsulado. Data: Contiene la informacin a transmitir. Debido a consideraciones de diseo, este campo debe tener una longitud mnima de 46 bytes, y una longitud mxima de 1500 bytes. CRC (Cyclic Redundancy Code): Cdigo detector de errores.

Direcciones Ethernet

Tienen una longitud de seis bytes, y consta de dos partes:

La direccin FF-FF-FF-FF-FF-FF tiene un significado especial: es la direcin de broadcast. Los paquetes enviados a dicha direccin sern recibidos por todas las estaciones. El OUI es un nmero que se asigna en forma nivoca a cada organizacin (fabricante). De ser necesario, un fabricante puede tener asignado mas de un OUI. Los restantes 24 bits son un nmero asignado por el fabricante en cuestin a cada placa Ethernet. De este modo, se asegura que la direccin MAC de cada placa de red es nica, y se evita el problema de tener que asignar direcciones dinmicamente.

MTU: Maximum Transmission Unit


El MTU es un parmetro tpico de toda tecnologa de red de tipo packet switching. Impone un lmite en la mxima cantidad de informacin que se puede transmitir en cada paquete. Impone restricciones al usuario de la tecnologa de red en cuestin (ya sea una aplicacin, u otro protocolo de comunicaciones)

Problemas de interoperatividad entre distintas tecnologas de red


Las especificaciones elctricas pueden ser diferentes. El formato de los paquetes puede ser diferente. El esquema de direccionamiento puede ser diferente. Caractersticas tales como el MTU pueden ser diferentes. El servicio provisto (confiable, no-confiable, etc.) puede ser diferente. As y todo, se desea que distintas tecnologas de red puedan interoperar. Es decir, que sistemas que estn utilizando distintas tecnologas de red, puedan comunicarse entre s

Inconvenientes a sortear

Se debe realizar una abstraccin, que permita homogeneizar aquellos parmetros indispensables para la comunicacin. Ejemplo: el esquema de direccionamiento. Se deben salvar todas aquellas diferencias referidas a especificaciones elctricas y mecnicas. Se deben salvar aquellas diferencias que tienen que ver con caractersticas tpicas de cada tecnologa de red. Ejemplo: Diferencias en el MTU. Se debe asumir cual es el servicio brindado por las distintas tecnologas de red (confiable? no-confiable?)

Solucin: IP (Internet Protocol)


Creado entre fines de la dcada del 70 y comienzos de la dcada del 80 Se origin en el trabajo de Cerf y Kahn, titulado A Protocol for Packet Network Interconnection Ni lo que hoy es Internet, ni su antecesora (ARPANET), ni los protocolos en cuestin, fueron concebidos con la idea de ser seguros, ni de sobrevivir ataques nucleares. (Pese a lo documentado por virtualmente la totalidad de la bibliografa existente) Jams se imagin que los mismos pudieran llegar a ser de uso masivo El campo de las redes era nuevo: Haban muchsimas cosas por aprender. Todas estas consideraciones se reflejan en los actuales protocolos. Algunas, incluso en los nuevos protocolos (IPv6, etc.)

Formato de un paquete IP

Encapsulamiento de paquetes IP

Los paquetes IP se encapsularn dentro de los paquetes correspondientes a la tecnologa de red utilizada (Ethernet, TokenRing, IEEE 802.11, etc.) El campo type del encabezamiento Ethernet se har igual a 0x0800 (el cdigo correspondiente al protocolo IP) La direccin IP destino del paquete corresponder a la del receptor final del paquete IP. La direccin destino del paquete Ethernet corresponder al receptor final del paquete Ethernet (o la tecnologa que corresponda). Siempre corresponder a la direccin de algn equipo que se encuentre en la misma red. Ethernet no nos permite ir mas all del mismo segmento de red!

Esquema de direccionamiento IP

A cada placa (interfaz) de red se le asigna una direccin IP. Dicha direccin debe ser, en un principio, nica en toda la red. Toda direccin IP es un nmero de 32 bits, que se suele escribir expresando cada uno de los cuatro bytes en notacin decimal, y separando a los mismos mediante puntos. Esta notacin recibe el nombre de notacin punto. Ejemplo: 170.210.17.146 Asimismo, cada direccin IP tiene asignada una mscara La mscara indica la estructura de la direccin IP en cuestin.

Estructura de una direccin IP


Ejemplo

Direccin IP: 170.210.17.146 Mscara direccin: 255.255.255.0


10101010 11010010 00010001 10010010 (170.210.17.146) (255.255.255.255) 170.210.17.0

&

11111111 11111111 11111111 00000000 10101010 11010010 00010001 00000000

________________________________________________________________________________

En nuestro ejemplo, la direccin IP pertenece a la red 170.210.17.0/24. Todos aquellos sistemas pertenecientes a la red 170.210.17.0/24 estarn, en un principio, en la misma red fsica que el sistema en cuestin.

Escenario simple

Dos sistemas (A y B), pertenecen a la misma red.

A desea enviar informacin a B. Analizando la direccin IP de B, en A infiere que B se encuentra en la misma red. Sin embargo, para que A pueda enviar informacin a B, debe conocer su direccin MAC. La informacin siempre se transfiere, finalmente, mediante la tecnologa de red utilizada (Ethernet, IEEE 802.11, etc.). Despus de todo, IP es simplemente una abstraccin!

Traduccin de direcciones IP en direcciones MAC


Para solucionar el problema planteado debemos poder traducir una direccin IP, en una direccin MAC. Dicho servicio ser brindado por el protocolo ARP (Address Resolution Protocol) En un principio, cada vez que se precise enviar un paquete a un sistema que se encuentre en la misma red, se deber obtener la direccin MAC del sistema en cuestin, mediante el protocolo ARP. Por cuestiones de eficiencia, virtualmente todos los sistemas emplean lo que se conoce como ARP cache. Es decir, memorizan las respuestas obtenidas, durante un determinado tiempo, para evitar tener que realizar la misma peticin repetida e innecesariamente.

Formato de un paquete ARP

Hard type: Tipo de direccin MAC (1 para Ethernet) Prot type: Tipo de protocolo cuya direccin se desea traducir (0x0800 para IP) Op: Operacin a realizar (1 para ARP request, 2 para ARP reply) Sender Ethernet addr.: Direccin Ethernet del sistema origen Sender IP addr.: Direccin IP del sistema origen Target Ethernet addr.: Direccin Ethernet del sistema destino Target IP addr.: Direccin IP del sistema destino

Encapsulamiento de un paquete ARP


Se toma el paquete ARP, y se le agregan bytes de padding

El resultado se coloca en el campo data de un paquete Ethernet

El campo type del header Ethernet se coloca en 2

Volviendo a nuestro ejemplo.

Para poder enviar un paquete IP desde el nodo A al nodo B, se realizarn los siguientes pasos:
1. El nodo A enviar un paquete ARP request, a la direccin Ethernet de broadcast 2. El nodo B responder la peticin, informando la direccin Ethernet correspondiente a su direccin IP 3. El nodo A enviar al nodo B el paquete IP deseado Ejemplo: 23:01:40.278029 arp who-has 10.0.1.4 tell 10.0.1.1 23:01:40.278137 arp reply 10.0.0.4 is-at 00:e0:7d:77:bd:95

Conectando redes de distintas tecnologas


Deseamos conectar dos redes de distintas tecnologas (no importa cuales). Suponemos que ambas difieren en numerosos parmetros (MTU, esquema de direccionamiento, caractersticas elctricas, etc.)

Routers

Un router es simplemente un nodo con mas de una interfaz de red. Al recibir un paquete IP a travs de alguna de sus interfaces, obtendr el paquete IP, y lo reenviar por el enlace adecuado, reencapsulando el paquete IP en cuestin. La adaptacin de las caractersticas elctricas, las velocidades de transmisin, etc., sucede entonces de forma natural.

Ruteando paquetes

Todo sistema que se comunique mediante el protocolo IP, tiene una tabla de ruteo. La tabla de ruteo contiene informacin sobre como se debe hacer para llegar a los distintos destinos. Para rutear paquetes se utiliza el algortimo best match (mejor coincidencia) que consiste simplemente en utilizar aquella ruta mas precisa La ruta de mayor precisin ser aquella que indique como llegar a un sistema (host) determinado. En siguiente lugar, estarn aquellas rutas que indiquen como llegar a una red (network) determinada. La menos precisa ser una ruta por defecto (default route), que se utilizar

Ejemplos

Ejemplo 1

Ejemplo 2

Ejemplo 3

Ejemplo 4

Problemas en el ruteo

Puede fallar, Leonardo - Tu-Sam

Si los routers de la red estn bien configurados, cada paquete llegar a su destino. Si estuvieran mal configurados, o bien existieran problemas temporales con alguno de los enlaces, podra suceder que algn paquete quedara atrapado en un bucle de ruteo. Si IP no proveyera ningn mecanismo para controlar estas circunstancias, y varios paquetes quedaran atrapados en bucles de ruteo, la red podra quedar inutilizable, hasta que no se reiniciaran los equipos intervinientes. Para evitar esto, el encabezado IP contiene el campo TTL (Time To Live). El mismo se inicializa algn valor (usualmente mayor que 64). Cada vez que pasa por un router, se lo decrementa. Si al decrementarlo se hace cero, el router deber descartar el paquete en cuestin.

Salvando las diferencias de MTUs


Supongamos que hemos interconectado mediante un router dos redes de tecnologa diferente, con distinto MTU. Si el Host B enviara un paquete de 17914 bytes, el mismo, en un principio, no podra ser enviado por la red a la cual pertenece el Host A.

Fragmentacin IP

El protocolo IP brinda un mecanismo para poder fragmentar los paquetes. Cuando un sistema deba enviar un paquete IP a traves de un enlace cuyo MTU es menor que el tamao del paquete, dicho sistema fragmentar el paquete IP en cuestin. Cada fragmento tendr su propio encabezado IP. Todos los fragmentos tendrn en comn el mismo IP ID. El offset de cada uno de los fragmentos ser diferente. Todos los fragmentos, salvo el ltimo, tendrn el bit MF (More Fragments) en 1.

Fragmentacin en el propio sistema origen


La fragmentacin podr ocurrir tambin en el sistema origen, si el mismo desea enviar un paquete IP de mayor tamao que el MTU de su enlace. Ejemplo: Ejecutamos el comando # ping b 4000 170.210.17.146

en una estacin de trabajo conectada a la red mediante una placa Ethernet. Este comando generara un IP payload (en este caso, un paquete ICMP) de 4008 bytes. Obviamente, para poder ser enviado deber ser fragmentado en el propio host emisor.

Packet-trace (tcpdump) correspondiente


(1) 22:42:17.106 IP (tos 0x0, ttl 64, id 46084, offset 0, flags [+], length: 1500) 10.0.0.5 > 170.210.17.146: icmp 1480: echo request seq 0 (2) 22:42:17.106 IP (tos 0x0, ttl 64, id 46084, offset 1480, flags [+], length: 1500) 10.0.0.5 > 170.210.17.146: icmp (3) 22:42:17.106 IP (tos 0x0, ttl 64, id 46084, offset 2960, flags [none], length: 1068) 10.0.0.5 > 170.210.17.146: icmp (4) 22:42:17.115 IP (tos 0x0, ttl 254, id 49789, offset 0, flags [+], length: 1500) 170.210.17.146 > 10.0.0.5: icmp 1480: echo reply seq 0 (5) 22:42:17.115 IP (tos 0x0, ttl 254, id 49789, offset 1480, flags [+], length: 1500) 170.210.17.146 > 10.0.0.5: icmp (6) 22:42:17.115 IP (tos 0x0, ttl 254, id 49789, offset 2960, flags [none], length: 1068) 170.210.17.146 > 10.0.0.5: icmp

Formato:

Tiempo

protocolo (detalles) origen > destino: explicacin

Algunos problemas de la fragmentacin


Si se pierde un solo fragmento, se debe desechar los dems. Una vez recibido un fragmento, es dficil estimar cuanto tiempo se debe esperar a que lleguen los dems. El campo IP ID es de solamente 16 bits. Con el ancho de banda disponible actualmente, es fcil que en un instante dado existan en la red fragmentos con un mismo IP ID, pero correspondientes a distintos paquetes. Es decir, es muy probable que un mismo IP ID se deba reutilizar antes que lo esperado. Esto ltimo abre la puerta a un vector de ataque: un atacante podra falsificar fragmentos con cada uno de los distintos IP ID, para as confundir al sistema atacado. Dicho sistema no podra discernir entre los fragmentos legtimos, y de los que forman parte del ataque.

Preguntas?
Fernando Gont fernando@gont.com.ar

You might also like