tcp-ip

99
Módulo 4 TCP/IP

Upload: cesar-ajalla

Post on 27-Jun-2015

355 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: TCP-IP

Módulo 4

TCP/IP

Page 2: TCP-IP

INDICE

1. INTERNETa. Historiab. Internet y Protocolo TCP/IPc. Aspectos diferenciales de las redes d. Serviciose. Arquitecturaf. Interconexión a través de IP Router

2. ROUTERa. Característicasb. Clasificación

3. DIRECCIONAMIENTO IP Y DIRECCIONESa. Introducciónb. Broadcast c. Multicastd. dirección Loopback e. Notación Decimalf. Las Clasesg. Mascara de Subred h. Las Subredesi. Host y Redes Utilizables, ¿Cómo y Porque

hacer subnetting?j. Mascara de Subred k. Ejercicio

4. ENRUTAMIENTO IPa. Introducciónb. Destinos Directos e Indirectos c. Tabla de Enrutamiento IPd. Ejemplo

5. ARP (Protocolo de Resolución de Direcciones)a. Introducciónb. ARP Sustituto (Proxy ARP)c. Tabla ARPd. ARP Gratuito

6. RARPa. Introducciónb. Formato del Mensaje ARP/RARP

7. PROTOCOLO DE INTERNET (IP)a. Introducciónb. Datagrama IP c. Fragmentación d. Reensamblado

8. IP Versión 6a. Característicasb. Especificaciones Básicasc. Definición de Direcciones de Ipv6d. Formas de Conexiones Directas e. Conexión a Través de Terceros

9. ICMP (Internet Control MessageProtocol)

10. TCP/IP Y EL MODELO OSI11. PROTOCOLO DE TRANSPORTE

a. Introducciónb. Puertosc. Protocolo UDP d. Formato UDP e. Protocolo TCPf. Establecimiento y Cierre TCP

Page 3: TCP-IP

HistoriaINTERNET

La historia de Internet comenzó en 1969 cuando la agencia estadounidense ARPA (Advanced ResearchProjects Agency) conectó cuatro grandes computadoras en universidades del suroeste de los EE.UU.

La idea era diseñar una red de comunicaciones que pudiese resistir un ataque nuclear: si la ruta principal entredos puntos era destruida, unos enrutadores (routers) se encargarían de proporcionar rutas alternativas. Esta fue la gran novedad: Que haya conexiones múltiples entre dos puntos y que la red elija “inteligentemente” el camino, basándose, en primera instancia, en su disponibilidad.

Por supuesto, la Internet de esa época hoy nos resultaría poco familiar. No existía la WWW ni el e-mail. Sóloutilizada por expertos, no era nada amistosa sino un sistema muy complicado de utilizar, de hecho ni siquiera se llamaba Internet. Su nombre era ARPANET. Poco a poco se fueron conectando a este sistema más universidades y organismos científicos, hasta crecer al punto que conocemos hoy.

I nter net Y El Proto co lo Tcp/I p

La incorporación de la arquitectura de protocolos TCP/IP en los años 70 supuso un importante paso en eldesarrollo de Internet. El TCP/IP estaba universalmente adoptado para 1983.

Internet no es un tipo de red física, sino un conjunto de tecnologías que permiten interconectar redes entre sí. Es independiente de la máquina y del sistema operativo utilizado. De esta manera, podemos transmitir informaciónentre un servidor Unix y un cliente que utilice Windows 98. O entre plataformas completamente distintas como Macintosh, Alpha o Intel. Es más: entre una máquina y otra generalmente existirán redes distintas: redes Ethernet,

Page 4: TCP-IP

redes Token Ring e incluso enlaces vía satélite. Como vemos, está claro que no podemos utilizar ningún protocolo

Page 5: TCP-IP

que dependa de una arquitectura en particular. Lo que estamos buscando es un método de interconexión generalque sea válido para cualquier plataforma, sistema operativo y tipo de red. La familia de protocolos que se eligieronpara permitir que Internet sea una Red de redes es TCP/IP. Nótese aquí que hablamos de familia de protocolos ya que son muchos los protocolos que la integran, aunque en ocasiones para simplificar hablemos sencillamente del protocolo TCP/IP.

El conjunto de protocolos TCP/IP tiene las siguientes características, las cuales han contribuido a supopularización:

La independencia de la tecnología usada en la conexión a bajo nivel y la arquitectura de la computadora. La inteligencia aplicativa (capa Aplicación) de la red reside en los extremos que se comunican. Protocolos estandarizados.

As pectos Di fer encia les De La s Redes

TCP/IP surgió desde la necesidad de interconectar redes, muchas veces diferentes. Estas diferencias songeneradas por la optimización de las prestaciones de la tecnología de la red en el escenario de su aplicación. Elhecho es que tenemos que comunicar mundos muy distintos, y además tiene que ser lo más transparente posible en el nivel aplicativo. Las tecnologías de red pueden diferir en los siguientes aspectos:

Cada red ofrece una velocidad de transmisión adecuada al medio de transmisión sobre el que se soporta y de acuerdo al estado de la tecnología en el momento de su aparición. (por ejemplo: X.25 tiene gran control de errores por estar pensado para enlaces radioeléctricos)

Los esquemas de direccionamiento son diferentes para las redes LAN y para las redes WAN. (por ejemplo: IPX de Novell)

El alcance o cobertura de las redes depende intrínsecamente de la tecnología y del medio de transmisión, sea ésta, paso de testigo, resolución de colisión, conmutación de paquetes/circuitos, etc. (Por ejemplo: Token Ring, Ethernet, etc.)

Los tamaños máximos de paquete son distintos a causa de decisiones de los organismos de normalización. Para conseguir una interconexión de redes de distinta tecnología, es necesario resolver los siguientes

aspectos:

Hay que decidir cómo compatibilizar los esquemas de direccionamiento de las distintas redes. Una solución posible consistiría en definir un nuevo espacio de direccionamiento independiente de las redes a interconectar (IP) y realizar traducción de direcciones (ARP).

Hay que decidir que dispositivos permitirán la interconexión entre redes y que funcionalidad incorporarán.

Hay que decidir cómo encaminar los datos a través de un conjunto interconectado de redes, con independencia de los mecanismos internos de cada red (utilización de encaminadotes, enrutadores o routers).

Hay que resolver el problema de disparidad de tamaños máximos de campo de datos de las tramas/paquetes de cada red, de modo que los datos no queden bloqueados a la entrada de una red con un tamaño máximo de campo de datos menor que los datos que se intentan transmitir a través suyo (fragmentación y reensamblado).

Page 6: TCP-IP

Ser v i c i o s Para entender Internet hay que apreciar el servicio que otorga. Hoy en día para nosotros mandar y

recibir mail es algo muy común. Como servicio, vemos en una situación práctica lograr una comunicación o conexión con otra persona ubicada en cualquier lugar del mundo. Dicha comunicación esta centralizada en un camino o ruta estándar de comunicación llamado protocolo, cada dato a enviar sin un protocolo de comunicación estándar es imposible establecer una conexión. Hoy en día no solo enviamos y recibimos mails, existen muchos servicios como la transferencia de archivos, comercialización de productos, publicidad, informes, etc.…

A r qui t ec t u ra ¿Como están interconectadas las redes?Dos redes se conectan por una computadora, Gateway, con propiedades que logra la transferencia de

paquetes. Es posible que dicha computadora no este disponible para la conexión a internet. En este caso esnecesario un Internet Gateway o Internet Routers.

RED 1 InternetGateway

RED 2

Dos redes conectadas por un internet Gateway

Internet es una red global en la cual, cada computadora actúa como un cliente y un servidor. Consta de varios componentes conectados:

Backbones: líneas de comunicación de alta velocidad y ancho de banda que unen hosts o redes.

Redes: grupos de hardware y software de comunicación dedicados a la administración de la comunicación a otras redes. Todas las redes tienen conexiones de alta velocidad para dos o más redes.

Proveedores del Servicio de Internet (ISP): son computadoras que tienen acceso a la Internet. Varios proveedores de servicios en línea actúan como ISP proveyendo acceso a Internet a todos sus suscriptores.

Hosts: En ellos es donde los usuarios ven la interacción con la Internet. Cada dispositivo que se conecta directamente a una red es un host. Todos los hosts tienen una dirección de red y host única.

Page 7: TCP-IP

I n te r c o n cex i on A Tr a v ez De Un I p R o u t er

Lo que mostramos en la figura anterior es una básica conexión entre dos redes conectadas por enlaces através de Internet. Pero en la actualidad existen muchas redes y muchos internet gateway o router. Cada routernecesita conocer sobre la topología en la que trabaja las redes conectadas al mismo, para lograr la compatibilidad de conexión.

La tarea de un Router parece simple, pero es muy importante porque no solo conecta computadoras entre sisino que provee los caminos necesarios para el establecimiento de las conexiones.

¿Qué es necesario para conectar dos redes dentro de una internetwork?

EL ROUTER

El router es un elemento esencial para las redes TCP/IP y soluciona varios de los problemas expuestos por sus características:

Es un dispositivo de capa 3 o red. Lo que le permite decisiones inteligentes en cuanto a la conmutación de rutas. También esto le permite tener algunas características de seguridad.

Dispositivo Store and Forward. Es decir, tiene un buffer interno que le permite almacenar la información, ensamblarla y fragmentarla según la necesidad.

Se utilizan tanto con LAN como con WAN. Puede interconectar diferentes tecnologías de enlaces de datos (Ethernet, Token Ring, FDDI, ATM, etc.)

y red.

Cuando reciben un paquete por una conexión o puerto es el protocolo de red, en función de la dirección de red de destino y del correspondiente algoritmo de enrutamiento, quien decide por que puerto se retransmite. Los routers deben ser direccionados explícitamente, es decir los dispositivos de una red deben conocer la dirección de los mismos para poder acceder a nodos remotos. Además es el router debe pertenecer a la red local desde la que se lo quiere acceder.

Page 8: TCP-IP

Una gran virtud de los router radica en su capacidad para la selección de rutas redundantes basándose en enparámetros tales como la latencia de los enlaces, el estado de congestión, la distancia entre nodos, etc. Estoaumenta aún más las primeras prestaciones de aquella vieja ARPA net (caminos redundantes para sobre vivir a un ataque nuclear) dándole capacidades infinitas.

En función de cómo se establecen las rutas, los routers se pueden clasificar:

Routers estáticos: La actualización de las tablas de rutas se debe realizar de forma manual por parte del administrador de red.

Routers dinámicos: Ejecutan entre sí un protocolo de intercambio de información de estado (protocolo de enrutamiento) que les permite definir rutas óptimas y reconfigurar sus tablas automáticamente ante cambios en la red o averías. Ejemplos: Protocolos OSPF y RIP.

Un router puede enrutar un solo protocolo de red o puede ser capaz de manejar distintos protocolos (IP, IPX, etc.). En este caso, se denomina router multiprotocolo y cuenta con el software necesario para cada protocolo.

Los routers pueden ahorrar grandes recursos, ya que utilizan la red destino, y no el host de destino, cuando encaminan un paquete. La parte de llegar al host puntual se la deja a la capa de enlace de datos.

DIRECCIONES Y DIRECCIONAMIENTO IP

In tr od u cc i ón Una red empresarial se puede comparar tranquilamente con Internet, solo que internet posee mucho

mas usuarios y una estructura virtual que jamás podremos detectar cuantitativamente.

¿Como harán los diseñadores para otorgarle una identificación a cada host de internet?

Cada host tiene asignada una dirección IP que corresponde a la identificación del mismo. Dicha dirección es equivalente a 32 BIT dividido en 4 bytes o bien en 4 octetos de bits (11001100 11000000 11111100 00011101).

Lo interesante del IP es que determina a que red y host pertenece el usuario que esta en este momento utilizando internet o bien una red empresarial, dicha IP es única dentro de la red que pertenezca.

Si la red es Internet, entonces la IP es llamada publica, y es única para toda Internet. Si es una red local o privada la IP es llamada privada.

Existen dos direcciones que no son utilizables para hosts, Broadcast y Red.

IP está implementado en todas las máquinas y routers. Actúa como un transmisor para mover bloques de datos desde una máquina, a través de uno o más routers, a otra máquina. Es donde interviene la capa 3. Para una comunicación satisfactoria, cada entidad de la red debe de tener una única dirección IP.

TCP está implementado solamente en los sistemas finales. Por ser de capa 4 es transparente a los routers. Cada proceso dentro de una máquina debe tener una dirección que sea única dentro de la máquina (TCP); esto permite al protocolo TCP entregar los datos al proceso adecuado. Estas últimas direcciones se conocen como puertos.

Page 9: TCP-IP

B r oa d c a st Un mensaje broadcast es enviado a todos los hosts que contengan la misma dirección de red. Cada host

evalúa si el mensaje broadcast requiere una respuesta en particular o no.El broadcast consume recursos de red, y destacaremos que dentro de una LAN, cualquier host puede enviar

un broadcast a los host de dicha LAN.Ahora bien, ¿Puedo enviar un broadcast a todo internet? La respuesta es NO. Como dijimos anteriormente se envía dentro de una LAN o con la misma dirección de Red, los routers son filtros de broadcast.

Este mensaje se utiliza para actualizar la información de los host dentro de la red, dirección mac, ip, hostname, etc…

Mu l ti c a s t Así como Unicast envía paquetes a una sola computadora, y Broadcast envía paquetes a todas las

computadoras con la misma dirección de red. La dirección Multicast puede enviar específicamente a una subredconfigurada para ciertos hosts. Se usa para redes que tienen hardware que soporta el envió multicast, y se reserva laClase D para este tipo de direcciones.

L o o p b a ck La dirección 127.0.0.0 de la red de clase A está reservada para la operación de loopback, es decir, para

pruebas y comunicación de procesos en la misma máquina. Normalmente, la dirección 127.0.0.1 se asignará a unainterfaz especial del puesto, la interfaz loopback, que actúa como un circuito cerrado. Cualquier paquete IP enviado a esta interfaz por TCP o UDP le será devuelto a cualquiera de ellos como si simplemente hubiese llegado desde alguna red. Esto permite desarrollar y probar software de red aunque no se esté usando una red “real”. La redloopback también permite usar software de red en un puesto solitario.

N o t ac i ón B i n a r i a a D ec i m a l Para el ser humano es mas fácil entender los números en formato decimal que en formato bits, para ello se

crea una notación decimal de las direcciones IP. Un Byte equivale a 8 bits, y dijimos que una IP contiene 32 bits, o bien 4 bytes. Para que todo se entienda mas fácil cada dirección Byte de la dirección IP se convierte en un numerodecimal.

Ej.: 10000000 00001010 00000010 00011110 = 128.10.2.30Para llegar al decimal fue necesario convertir cada Byte de formato binario a formato decimal. Cada

posición del Byte tiene los siguientes valores:

1° Byte: 10000000 = 1288° 7° 6° 5° 4° 3° 2° 1° Posición

128 64 32 16 8 4 2 1 Valor1 0 0 0 0 0 0 0 Byte

Valor decimal = 128En la posición 8° vemos que el valor del BIT es 1, y ningún otro BIT tiene valor 1. Entonces el valor

decimal es el marcado.

Page 10: TCP-IP

2° Byte: 00001010 = 108° 7° 6° 5° 4° 3° 2° 1° Posición

128 64 32 16 8 4 2 1 Valor0 0 0 0 1 0 1 0 Byte

Valor decimal = 10En este caso vemos que el Byte tiene solo dos BIT con valor 1, en la posición 4° y en la posición 2°. El

valor decimal es la suma de los dos valores que contienen los bits con valor 1. 8+2=10

3° Byte: 00000010 = 28° 7° 6° 5° 4° 3° 2° 1° Posición

128 64 32 16 8 4 2 1 Valor0 0 0 0 0 0 1 0 Byte

Valor decimal = 2En el tercer Byte vemos que solamente la posición 2 contiene el BIT con valor 1, entonces el valor decimal

es el valor de la posición 2° y seria el decimal 2.

4° Byte: 00011110 = 308° 7° 6° 5° 4° 3° 2° 1° Posición

128 64 32 16 8 4 2 1 Valor0 0 0 1 1 1 1 0 Byte

Valor decimal = 30El ultimo caso nos hace trabajar un poquito mas. En la posición 2°, 3°, 4° y 5° contienen valores 1 en el

BIT. Llegamos al decimal sumando los valores correspondientes… 16+8+4+2=30

L a s C l a s es En un principio no se utilizaban las mascaras para definir una red a la que un host pertenecía. Hay otra

nomenclatura, por la cual, ciertos rangos pertenecen a ciertas redes de antemano. Estos rangos son conocidos como Clases. La redirección IP tiene una clase definida por los bits de mayor peso (los primeros de la izquierda). Cada clase tiene una mascara de red asociada por defecto:

Bit de mayorpeso

Bit disponiblespara la red

Nº de Nodos MascaraAsociada

Dirección deComienzo

Dirección Final

Red de Clase A 0 1 16.777.216 255.0.0.0 0.0.0.0 127.255.255.255Red de Clase B 10 2 65.536 255.255.0.0 128.0.0.0 191.255.255.255Red de Clase C 110 3 256 255.255.255.0 192.0.0.0 223.255.255.255Red de Clase D 1110 Para difusión múltiple 224.0.0.0 239.255.255.255Red de Clase E 11110 Reservado para futuros usos e investigación 240.0.0.0 255.255.255.255

Page 11: TCP-IP

Las primeras tres clases son llamadas primarias, y son las utilizables y asignables:

Direcciones de Clase A

Una dirección IP de la clase A consiste en una porción de la red de un Byte seguido por una porción del Host de 3 bytes. El BIT de mayor orden del Byte de la porción de red se define siempre a 0. Por lo tanto se dispondrán de un total de 126 redes de la Clase A (1 a 126) y con más de 16 millones de nodos por red.

Direcciones de Clase B

Una dirección IP de la clase B consiste en una porción de la red de dos bytes seguido por una porción del Host de 2 bytes. Los dos bits de orden superior de la porción de red se definen siempre a 10. Por lo tanto se dispondrán de aproximadamente 16.000 redes de la Clase B (desde 128.x a 191.x) y con más de 65.000 nodos por red.

Direcciones de Clase C

Una dirección IP de la clase C consiste en una porción de la red de tres bytes seguido por una porción del Host de 1 bytes. Los tres bits de orden superior de la porción de red se definen siempre a 110. Por lo tanto se dispondrán de aproximadamente 2 millones de redes de la Clase C (desde 192.x.x a 223.x.x) y con 254 nodos por red.

Mascara de S u br e d ( Subn e tti n g) Cada dirección IP de 4 bytes se divide en dos partes:

Una porción de la red, que identifica la red

Una porción del Host, que identifica el dispositivo

Page 12: TCP-IP

Todos los host de una LAN comparten la misma porción red que tiene la dirección IP; cada nodo tiene unaporción de host única.

La pregunta que inmediatamente surge a continuación es: ¿Hasta donde llega el número de red y empieza el número de host? Es acá donde entra a jugar la mascara de red. En realidad, lo que se utilizaba en un comienzo era la división por clases, pero por su uso ineficiente de los rangos de direcciones se empezó a utilizar la mascara de red.

La mascara de red tiene una apariencia similar a una dirección IP (también está formada por 32 bits), aunque con una característica particular determinando la porción de red y host.

Por ejemplo: la mascara 255.255.255.0 en binario es:

255.255.255.0 11111111.11111111.11111111.00000000

Las mascaras siempre son sucesiones de ‘unos’. Es por esto que hay también otra nomenclatura, llamadaCIDR (Classless InterDomain Routing), que indica cuantos ‘unos’ hay. En este caso es 24.

Veamos un caso completo para poder entenderlo mejor:

Dirección IP de un host 194.224.78.16

Su mascara de red: 255.255.255.0 o /24

En binario obtenemos:

red:

194.224.78.16 11000010.11100000.01001110.00010000

255.255.255.0 11111111.11111111.11111111.00000000

La máscara nos indica hasta donde hay que contar el número de red. Por lo tanto este host pertenece a esta

194.224.78.0 11000010.11100000.01001110.00000000

Esta metodología puede parecer complicada a simple vista, pero es notablemente útil y rápida para losdispositivos electrónicos. Además define una jerarquía, que permite a una red subdividirse en otras redes.

Por convenio la dirección de una red se obtiene a partir de los bits que tiene en común todas las direcciones de ella, con los demás bits puestos a cero. Dado que cada dirección IP se compone de 4 números enteros entre 0 y255, la red de nuestro ejemplo comprende todas las direcciones desde 194.224.78.1 hasta 194.224.78.254. El número 0 (el primero del rango) se reserva para el número de la red y el número 255 (el último) es la dirección de difusión (broadcast) de la red, cualquier datagrama enviado a la dirección de difusión será recibido y procesado portodos los hosts de la red.

L a s S u b re d es La división de redes por clase tenía los siguientes inconvenientes a la hora de asignar direcciones IP en una

INTERNET cada vez más grande:

Los routers requieren tablas de enrutamiento excesivamente grandes (tienen una entrada por cada dirección de red).

El direccionamiento tradicional con las clases A y B proporciona un uso ineficiente de las direcciones, ya que no es habitual conectar 224 o 216 hosts en una misma red local.

Cada vez quedan menos direcciones disponibles (tipo A y B agotadas, solo quedan algunas de tipo C)

Page 13: TCP-IP

Con el fin de aliviar estos problemas, se han propuesto la técnica de la mascara de subred. Así, estas redesde clases se pueden subdividir en subredes, pidiéndole ‘prestado’ bits al número de host. A esto lo llamaremossubnetting (RFC 950). Por ejemplo, a una red de clase C se la puede dividir dependiendo de la mascara de red con la que la acompañemos:

Dirección Red Máscara 1er Host Ultimo Host

194.224.78.0/24 255.255.255.0 194.224.78.1 194.224.78.254

194.224.78.128/25 255.255.255.128 194.224.78.129 194.224.78.254

194.224.78.240/26 255.255.255.254 194.224.78.241 194.224.78.242

Entonces la clase de una dirección IP indica su red, su máscara indica su subred y los bits restantes hacenreferencia al host. Esta división está controlada por la red local a fin de obtener una mayor flexibilidad en el funcionamiento de la red a nivel local. Por ejemplo, la dirección de subred puede contener cuatro bits de los dosbytes restantes. Veamos un último ejemplo: la IP 138.100.75.10 con mascara 255.255.255.0 nos da la siguiente información:

Red (clase B) Subred Nodo138 100 75 10

En la práctica los conceptos de Red y Subred son sumamente difusos y la división por clases está cada vez más olvidada, pero es importante conocer las bases de su creación.

Veamos algunas restricciones que tiene el subnetting:

La cantidad mínima de bits que puede pedir prestado es de 1, independientemente de si trabaja con una red Clase A, B o C. Aunque los estándares anteriores no permitían el uso de subredes obtenidas al pedir prestado 1 BIT (con sólo 1 BIT de subred, el campo de subred sólo puede tener dos valores: la subred 0 es parte de la dirección de red, y la subred 1 sería una parte de la dirección de broadcast de red) y la cantidad mínima es de 2. Si bien en la actualidad la mayoría de los dispositivos soportan subredes que se obtienen pidiendo prestado 1 BIT, todavía es común que alguien quiera evitar hacer esto para asegurar la compatibilidad con los dispositivos antiguos. Siguiendo esta última regla no se debería utilizar la subred 0 (forma parte de la dirección de red), y la subred con todos 1 (forma parte de la dirección de broadcast).

La cantidad máxima de bits que se puede pedir prestada puede ser cualquier número que deje por lo menos 2 bits restantes para el número de host. Un campo de host de1 BIT sólo acepta un host 0, que es parte de la dirección de red, y el host 1, que es parte de la dirección de broadcast, y quedan 0 direcciones de host válidas. En las conexiones punto-a-punto no se deja ningún BIT al numero de host, es decir, se utiliza una mascara /32, pero no es lo más común.

Page 14: TCP-IP

También existe el supernetting, que consiste en que la parte de host pida prestado bits a la parte de red,aumentando su rango, pero es muy poco común.

Ho s t Y Re d es Uti l iza bl e s , C ó m o Y Por q ue H a cer Subnett i ng A la hora de diseñar una red es importante medir sus capacidades en relación a la cantidad máxima de redes

y hosts que se pueden direccional.

La fórmula 2n - 2, donde n es la cantidad de bits prestados a la parte de host, proporciona la cantidad de subredes UTILIZABLES que pueden ser creadas. Se le resta 2 porque las subredes que contengan todos ceros o todos unos vimos que hay gente que no las utiliza por compatibilidad con tecnologías antiguas.

La fórmula 2m - 2, donde m es la cantidad de bits que NO han sido prestados a la parte de host, proporciona la cantidad de números de host UTILIZABLES que pueden ser creados. Se le resta 2 porque no pueden utilizarse las rangos donde el numero de host sean todos unos o todos ceros, porque se reservan para el broadcast y la red respectivamente.

Es importante saber que se pierden direcciones utilizables con el solo hecho de hacer subnetting. Veamos un ejemplo: Si pide prestados 2 bits en una red Clase C, se crean 4 subredes, cada una con 64 hosts. Sólo 2 de las subredes son utilizables y sólo 62 hosts son utilizables por subred, lo que deja 124 hosts utilizables de 254 que eran posibles antes de elegir usar subredes. Esto significa que se están perdiendo 51% de las direcciones. Supongamos esta vez que se piden prestados 3 bits. Ahora tiene 8 subredes, de las cuales sólo 6 son utilizables, con 30 hosts utilizables por subred. Esto significa que hay 180 hosts utilizables, de un total de 254, pero ahora se pierde sólo el29% de las direcciones. Siempre que se creen subredes, es necesario tener en cuenta el crecimiento futuro de la red y el porcentaje de direcciones que se perderían al crear las subredes.

En la práctica NO SE RESPETA LA REGLA 2n - 2, sino que se utiliza 2n, ya que representa un desperdicio muy grande y ya casi no existen dispositivos que no lo soporten.

Entonces ¿Por qué hacer subnetting? Las razones pueden ser muchas, numeremos algunas:

Usar varios medios. Puede ser imposible, inconveniente o demasiado caro conectar todos los nodos en un medio de la red única cuando estos nodos están demasiado lejos o conectados a un medio diferente.

Reducir la congestión. El tráfico entre nodos en una red única usa un ancho de banda de la red. Como resultado, se requieren más anchos de banda cuando el usuario tiene más nodos. La división de los nodos en varias redes reduce el número de nodos de la red. Si los nodos de una red de tamaño pequeño se comunican principalmente con otros nodos de la misma red, el nivel de congestión se reduce.

Reducir el uso del CPU. La reducción del uso de CPU los nodos conectados es similar a la reducción de la congestión. Más nodos en la red causan más difusiones generales en la red. Incluso si una difusión general no se envía a un nodo en particular, cada nodo de una red debe reaccionar ante la misma antes de decidir si debe aceptar o descartarse.

Aislar una red. La división de una red de mayor tamaño en redes más pequeñas, limita el impacto de uno de los problemas de la red sobre otra. Entre estos problemas se pueden incluir el error de hardware de la red, como una interconexión Ethernet abierta, o errores de software, como una operación de emisión confusa.

Mejorar el nivel de seguridad. En un medio de red de difusión general como es Ethernet, cada nodo de una red tiene acceso a todos los paquetes enviados a la misma. Si se permite sólo un tráfico de red sensitivo en una red, otros monitores de red pueden evitar el acceso a éste tipo de tráfico.

Page 15: TCP-IP

Hacer uso eficiente del espacio de la dirección IP. Si está asignando un número de red Clase A o B y tienevarias redes físicas pequeñas, puede dividir el espacio de dirección IP en varias subredes IP y asignarles redes físicas individuales. Con el uso de este método, no necesita conseguir más números de redes IP porcada red física.

Jerarquizar la red. Cada subred se puede dividir en varias subredes, lo que permite que se deleguen y jerarquicen los rangos. Cada subred funciona como si fuera una red independiente. Para redes remotas, sin embargo, las subredes aparecen colectivamente como redes discretas y únicas.

Ma s c ar a s d e Su br ed d e L o n g i t ud V ari able Las subredes creadas con bits prestados al número de red generaran subredes de igual tamaño, cada una con

igual cantidad de direcciones de IP posibles. Sin embargo, en el mundo real, los segmentos de red no son todos del mismo tamaño. Algunos segmentos de red requieren más direcciones de IP que otros. Por ejemplo, un segmento dered con muchos hosts requiere más direcciones de IP que un segmento de red troncal que sólo contiene unos pocosenrutadores. Y las conexiones WAN punto a punto sólo requieren dos direcciones de IP.

Si se crean subredes del mismo tamaño, se han de crear teniendo en cuenta el segmento de red que requiera el mayor número de hosts. El resto de segmentos tendrá el mismo número de direcciones de IP, algunas de las cuales no se asignarán o serán no utilizables.

Para maximizar el uso de un espacio de direcciones fijo se aplica recursivamente la técnica de creación de subredes para producir subredes de distinto tamaño derivadas del número de red original. Es lo que se conoce como creación de subredes de tamaño variable. Las distintas subredes de distinto tamaño tienen máscaras de subred distintas, o máscaras de subred de tamaño variable, VLSM (Variable-Length Subnet Masks).

Como todas las subredes derivan del mismo de la misma red, si las subredes son contiguas, los enrutadores de todas las subredes pueden agruparlas publicando el número de red original. Subredes contiguas son las subredes de la misma red que están conectadas unas con otras.

Cuando se realiza la creación de subredes de tamaño variable hay que tener cuidado de que cada subred sea única, y que junto con su máscara de subred se pueda distinguir del resto de subredes del numero de red original. La creación de subredes de tamaño variable requiere un cuidadoso análisis de los segmentos de red para determinar cuántas redes de cada tamaño se necesitan. Después se empieza con el número de red y se van realizando la creación de subredes tantas veces como sea necesario para expresar tantas subredes como se desee de los tamaños apropiados.

Page 16: TCP-IP

Vayamos a un ejemplo que también nos servirá para repasar los conceptos de subnetting ya vistos.

Tenemos la red 131.107.0.0/16. Tras crear subredes de 3 bits se dividen las direcciones restantes de forma que:

Reserva de la mitad de las direcciones de IP para futuros usos. Para reservar la mitad de las direcciones para futuros usos se seleccionan las cuatro primeras subredes (131.107.0.0/19, 131.107.32.0/19, 131.107.64.0/19, 131.107.96.0/19).

Obtención de tres subredes con hasta 8.190 direcciones de IP. Para obtener tres subredes con hasta 8.190 direcciones de IP para cada subred se eligen las siguientes tres subredes (131.107.128.0/19, 131.107.160.0/19, 131.107.192.0/19). Cada subred tiene 13 bits para el host, lo que hace un total de 8.190 direcciones de IP para cada subred.

Obtención de 31 subredes con hasta 254 direcciones de IP. Para obtener 31 subredes, cada una con hasta 254 direcciones de IP, se realiza una creación de subredes de 5 bits a partir de 131.107.224.0/19. El resultado es de 32 subredes (131.107.224.0/24,131.107.225.0/24, 131.107.226.0/24 . . . 131.107.253.0/24, 131.107.254.0/24,131.107.255.0/24). Para cumplir con los requisitos se eligen las primeras 31 subredes(131.107.224.0/24 a 131.107.254.0/24).

Obtención de 64 subredes con sólo 2 direcciones de IP. Para obtener 64 subredes con sólo 2 direcciones de IP se realiza una creación de subredes a partir de 131.107.255.0/24. El resultado es de 64 subredes (131.107.255.4/30, 131.107.255.8/30, 131.107.255.12/30... 131.107.255.244/30, 131.107.255.248/30, 131.107.255.252/30).

Nota: VLSM y su RuteoLas subredes de tamaño variable requieren que los protocolo de enrutamiento, que veremos mas tarde,publiquen las máscaras de subred junto con los números de red. El Protocolo de información de enrutamiento (RIP) versión 2, el Protocolo el primer camino más corto abierto (OSPF) y el Protocolo de pasarela exterior (BGP) versión 4 admiten entornos de subredes de tamaño variable. RIP versión 1 no losadmite. Queda el tema planteado para los módulos siguientes

Ejercicio (subnetting)

Nos dan la dirección de Red 130.175.0.0.Queremos tener 70 subredes y 500 hosts por cada subred.

¿Que máscara de subred deberemos usar?

1º- Nos fijamos en que clase de dirección es (En este caso es una dirección de clase B, por ello tenemos 16 bits que pueden ser usados para realizar subnetting.

2º- Recurrimos a formulas como:Numero de subredes = 2n-2 “Donde n es el numero bits en 1”Numero de hosts = 2y-2 “Donde y es el numero bits a 0”

Page 17: TCP-IP

3º- usando las formulas anteriores y sabiendo que una dirección de clase Bes de 11111111.11111111.00000000.00000000. El paso siguiente es pedir prestado a la parte de host cierta cantidad de bits para transformarlas en 70 subredes utilizables.

pedimos prestado 4 BIT. Vemos que nos da 24-2 = 14 redes utilizables. (no llegamos) pedimos prestado 6 BIT. Vemos que nos da 26-2 = 62 redes utilizables. (tampoco llegamos) pedimos prestado 7 BIT. Vemos que nos da 27-2 = 126 redes utilizables. (Pasamos los 70 pero nos

sirve, ahora tenemos que averiguar y con esa cantidad de BIT prestado llegamos a los 500 host)

Si nos fijamos de los anteriormente 7 bits en 1 para subredes quedarían 9 bits a 0 para hosts.

Binario de la mascara de subred: (11111111.11111111.11111110.00000000)

Numero de hosts = 29-2= 510 (y necesitábamos 500) por lo que esta máscara de subred vale perfectamente y cumple los dos requisitos.

Pasamos de binario a decimal la máscara y nos queda 255.255.254.0

ENRUTAMIENTO IP

In tr od u cc i ón Una función importante de la capa IP es el enrutamiento. Proporciona los mecanismos básicos para

interconectar distintas redes físicas.Esto significa que un host puede actuar simultáneamente como host normal y como router.Un router básico de este tipo se conoce como router con información parcial de enrutamiento, ya que sólo

contiene información acerca de cuatro tipos de destino:

Los hosts conectados directamente a una de las redes físicas a las que está conectado el router Los hosts o redes que se le han dado al router definiciones específicas Los hosts o redes las que el host ha recibido un mensaje ICMP redirect Un destino por defecto para todo lo demás

Los dos últimos casos permiten a un router básico comenzar con una cantidad muy limitada de información para irla aumentando debido a que un router más avanzado lance un mensaje ICMP redirect cuando reciba un datagrama y conozca un router mejor en la misma red al que dirigir el datagrama. Este proceso se repite cada vez que un router básico se reinicia.

Se necesitan protocolos adicionales para implementar un router completamente funcional que puedaintercambiar información con otros routers en redes remotas. Tales routers son esenciales, excepto en redes pequeñas.

TCP/IP, en especial su enrutamiento, lleva asociado una serie de conceptos a aclarar:

Page 18: TCP-IP

Hos t s : son cada uno de los dispositivos conectados a la red. Un host puede ser un servidor, un puesto de lared, una impresora, un router, etc.

D i re c c i ó n : es un código que identifica a cada dispositivo dentro de la red.

Re d : Conjunto de hosts agrupados bajo un mismo rango de direcciones.

Sub re d : conjunto de hosts dentro de una red.

De s t i n os d i r e c t os e in d i r e ct o s Si el host de destino está conectado a una red a la que también está conectado el host fuente, un datagrama

IP puede ser enviado directamente, simplemente encapsulando el datagrama IP en una trama. Es lo que se llamaEnrutamiento directo.

El Enrutamiento indirecto ocurre cuando el host de destino no está en una red conectada directamente al host fuente. La única forma de alcanzar el destino es a través de uno o más routers. La dirección del primero de ellos (el primer salto) se llama ruta indirecta. La dirección del primer salto es la única información que necesita el host fuente. El router que reciba el datagrama se responsabiliza del segundo salto, y así sucesivamente.

T a b l a de e n ru t a m i e n to IP Cada host guarda el conjunto de mapeados entre las direcciones IP de destino y las direcciones IP del

siguiente salto para ese destino en una tabla llamada tabla de enrutamiento IP.

En esta tabla se pueden encontrar tres tipos de mapeado: Rutas directas, para redes conectadas localmente Rutas indirectas, para redes accesibles a través de uno o más routers Un ruta por defecto, que contiene la ir IP de un router que todas las direcciones IP no

contempladas en las rutas directas e indirectas han de usar

E j e m plo Tenemos en redes distintas dos máquinas, A y B, que quieren comunicarse para, por ejemplo, ver una

página Web. La máquina A tiene una aplicación (Browser) que elabora una petición http. En la capa de transporte se resuelve iniciar una sesión con la máquina B con tal fin, para lo que se asigna un puerto (mayor a 1024). La capa de red nota que B no está en la misma red que A, por lo que decide mandarla a su router por defecto (Default Gateway). Este Gateway sí tiene un número que pertenece a su red, por lo que el protocolo de acceso a red lo ubica a la trama sobre el medio con éste destino.

El Gateway toma esta trama y confirma que estaba destinada a él. Pero al desempaquetarla a ese nivel reconoce que el paquete no está dirigido a él. Peor aún, no está dirigido a ninguna subred directamente conectada a alguna de sus interfaces. Decide una ruta para llegar a esa subred y lo vuelve a empaquetar con el próximo salto.

Este proceso se repite hasta que finalmente la llega a un router que sí tiene esa subred alcanzable, ya que alguna de sus interfaces tiene un número que pertenece a ella.

Page 19: TCP-IP

Entonces empaqueta la información para transformarla en una trama que llegue a la máquina B. Ésta sereconoce como destinatario de la trama. Cuando sube una capa más se da cuenta que tiene su IP. La capa transporte reconoce al puerto 80 como destinatario de esta conexión. En este puerto el proceso de servidorweb está escuchando, y es el quien entiende este pedido http para poder elaborar una respuesta.

La respuesta hace el camino inverso hacia la máquina A.

ARP (Protocolo de Resolución de Direcciones)

In tr od u cc i ón Como ya hemos visto, antes de enviar un datagrama entre dos estaciones de una LAN, debe envolverse en

una trama con una cabecera y una cola. La trama se envía a su placa de interfaz de red cuya dirección físicacoincide con la dirección física de destino en la cabecera de la trama.

Por tanto, para enviar un datagrama por una LAN, hay que descubrir cuál es la dirección física del nodo de destino.

Afortunadamente, existe un procedimiento para descubrir automáticamente la dirección física. El Protocolo de resolución de direcciones (ARP - Address Resolution Protocol) ofrece un método de difusión para traducir automáticamente entre dirección de IP y dirección física.

Page 20: TCP-IP

Los sistemas de la red local usan ARP para descubrir información sobre su propia dirección física. Cuandoun host quiere empezar a comunicarse con un socio local, busca la dirección de IP del otro en su tabla de ARP, quenormalmente se mantiene en memoria. Si no existe una entrada para esa dirección de IP, el host difunde una solicitud de ARP que contiene la dirección de IP de destino (a).

El host de destino reconoce su dirección de IP y lee la consulta. Lo primero que hace el host destino es actualizar su propia tabla de traducción de direcciones con la dirección física del origen. Es lógico ya que, probablemente, el destino pronto empezará una conversación con el origen. El host destino envía de vuelta una respuesta que contiene su propia dirección de la interfaz hardware (b).

LAN.Cuando el origen recibe la respuesta, actualiza su tabla de ARP y ya está listo para transmitir datos por la

ARP Su s t i tuto (Pr o xy ARP)

Los términos ARP sustituto (Proxy, ARP), promiscuo y ARP hack, se refieren a la segunda técnica utilizadapara transformar un solo prefijo IP de red en dos direcciones físicas. La técnica, que sólo se aplica en redes que utilizan ARP para convertir direcciones de red en direcciones físicas, se puede explicar mejor mediante un ejemplo.En la figura se ilustra la situación.

Page 21: TCP-IP
Page 22: TCP-IP

En la figura, dos redes comparten una sola dirección IP. Imagine que la etiquetada como Red Principal erala red original y la segunda, etiquetada como Red Oculta, se agregó después. R, que es el ruteador que conecta lasdos redes, sabe qué anfitriones residen en cada red física y utiliza ARP para mantener la ilusión de que solamente existe una red. Para dar esa apariencia, R mantiene totalmente oculta la localización de los anfitriones, permitiendo que las demás máquinas en la red se comuniquen como si estuvieran conectadas de manera directa. En nuestroejemplo, cuando el anfitrión H1 necesita comunicarse con el anfitrión H4, primero llama a ARP para convertir ladirección IP de H4 en una dirección física. Una vez que tiene la dirección física, H1 puede enviarle directamente el datagrama.

Debido a que el ruteador R corre software Proxy ARP, R captura la solicitud transmitida por difusión de Hi1 decide que la máquina en cuestión reside en la otra red física y responde la solicitud ARP enviando su propia dirección física. H1 recibe la respuesta ARP, instala la asociación en su tabla ARP y la utiliza para enviar a R los datagramas destinados a H4. Cuando R recibe un datagrama, busca en una tabla especial de ruteo para determinar cómo rutear el datagrama. R debe encaminar los datagramas destinados a H4 a través de la red oculta. A fin de permitir que los anfitriones en la red oculta alcancen anfitriones en la red principal, R también realiza el servicio de ARP sustituto (Proxy ARP) en dicha red.

En términos estrictos el ruteador R no es un router, sino un bridge, ya que el router debe tener redes distintas conectadas a cada placa, por ser un dispositivo de capa 3.

Los rute adores que utilizan la técnica de ARP sustituto, tornan ventaja de una característica importante del protocolo ARP, a saber, la confianza. ARP está basado en la idea de que todas las máquinas cooperan y de que cualquier respuesta es legítima. La mayor parte de los anfitriones instalan asociaciones obtenidas por medio de ARP sin verificar su validez y sin mantener una consistencia. Por lo tanto, puede suceder que la tabla ARP asocie muchas direcciones IP en la misma dirección física, sin embargo, esto no viola las especificaciones del protocolo.

Algunas implantaciones de ARP no son tan poco exigentes como otras. En particular, las implementaciones ARP diseñadas para alertar a los administradores de posibles violaciones de seguridad les informarán siempre que dos direcciones IP distintas se transformen en la misma dirección física de hardware. El propósito de alertar al administrador es avisarle sobre el spoofing, situación en la que una máquina indica ser otra para poder interceptar paquetes. Las implantaciones de ARP en hosts que alertan a los administradores del posible spoofing no se pueden utilizar en redes que tienen ruteadores sustitutos ARP, ya que el software generarla mensajes con gran frecuencia.

La principal ventaja de ARP sustituto es que se puede agregar a un solo ruteador en una red sin alterar las tablas de ruteo en otros anfitriones o ruteadores en esa red. Por lo tanto, el software ARP sustituto (Proxy ARP) oculta completamente los detalles de las conexiones físicas.

La principal desventaja de ARP sustituto es que no trabaja para las redes a menos que utilicen ARP para la definición de direcciones. Además, no se generaliza para topologías de red más complejas (por ejemplo, muchos ruteadores que interconectan dos redes físicas), ni incorpora una forma razonable para el ruteo. De hecho, la mayor parte de las implantaciones de ARP confía en los administradores para el mantenimiento manual de máquinas y direcciones, haciendo que se ocupe tiempo y se tenga propensión a los errores.

ARP Gratuito Es cuando una máquina envía una solicitud ARP preguntando sobre su propia dirección IP. Las razones

porque la que se puede hacer esto son, entre otras:

Page 23: TCP-IP

Detectar direcciones IP duplicadas Forzar a que todos actualicen la entrada de la cache correspondiente

Ta bl a ARP (Caché ARP)

Queremos enviar un mensaje desde la máquina A con dirección 194.18.133.5 a la máquina B con dirección194.18.133.1. Sin embargo la trama física, que es lo que realmente se envía por el cable, necesita conocer ladirección física del destino.

Host MAC IP

A A3.BB.05.17.29.D0 194.18.133.5

B A3.BB.05.33.12.99 194.18.133.1

El protocolo ARP funciona de la siguiente manera: “A” envía un mensaje a todas las máquinas de su red preguntando "¿Cuál es la dirección física de la máquina con dirección IP 194.18.133.1?". La máquina con dirección194.18.133.1 advierte que la pregunta está dirigida a ella y responde a “A” con su dirección física(A3.BB.05.33.12.99). Entonces, “A” envía el mensaje a “B”.

Observemos que las preguntas ARP son de multidifusión (se envían a todas las máquinas). Estas preguntas llevan además la dirección IP y dirección física de la máquina que pregunta. La respuesta se envía directamente a la máquina que formuló la pregunta.

Cada host almacena una tabla de direcciones IP y direcciones físicas. Cada vez que formula una pregunta ARP y le responden, inserta una nueva entrada a su tabla. La primera vez que A quiera enviar un mensaje a B tendrá que difundir previamente una pregunta ARP, tal como hemos visto. Sin embargo, las siguientes veces que A envíe mensajes a B ya no será necesario realizar nuevas preguntas, ya que A habrá almacenado en su tabla la dirección física de B. Sin embargo, para evitar incongruencias en la red debido a posibles cambios de direcciones IP o adaptadores de red, se asigna un tiempo de vida de cierto número de segundos a cada entrada de la tabla. Cuando se agote el tiempo de vida de una entrada, ésta será eliminada de la tabla.

Las tablas ARP reducen el tráfico de la red al evitar preguntas ARP innecesarias. Pensemos ahora en distintas maneras para mejorar el rendimiento de la red. Después de una pregunta ARP, el destino conoce las direcciones IP y física del origen. Por lo tanto, podría insertar la correspondiente entrada en su tabla. Pero no sólo eso, sino que todas las estaciones de la red escuchan la pregunta ARP: podrían insertar también las correspondientes entradas en sus tablas. Como es muy probable que otras máquinas se comuniquen en un futuro con la primera, habremos reducido así el tráfico de la red aumentando su rendimiento.

Esto que hemos explicado es para comunicar dos máquinas conectadas a la misma red física. ¿Y si la otra máquina no estuviese conectada a nuestra red? Entonces tendríamos un router que nos comunicase ambas redes. La máquina origen, si no la tiene en su tabla, preguntaría por ARP la dirección física del router y le transferiría a éste el mensaje. Estos pasos se van repitiendo para cada red física hasta llegar a la máquina destino.

Page 24: TCP-IP

La tabla de caché ARP tiene estos datos:

Índice IF: indica el puerto física

Dirección física: dirección física del dispositivo

Dirección IP : la dirección IP que corresponda a la dirección física

Hora de entrada: Momento en que se genero la asociación.

Cuando ARP recibe la dirección IP de un dispositivo receptor, busca en el caché ARP alguna coincidencia. Si encuentra alguna, devuelve la dirección física. Si el caché ARP no encuentra alguna coincidencia correspondiente a la dirección IP, envía un mensaje a la red. Este mensaje, conocido como solicitud ARP, es una difusión que se recibe en los dispositivos de la red local. La solicitud ARP contiene la dirección IP del dispositivo receptor deseado. Si un dispositivo reconoce la dirección IP como suya, envía un mensaje de respuesta con la dirección física de regreso a la máquina que generó la solicitud ARP, y ésta coloca la información en su caché ARP para uso futuro. De esta forma, el caché ARP puede determinar la dirección física de cualquier máquina basada en su dirección de IP. Siempre que un caché ARP recibe una solicitud ARP, éste utiliza la información incluida en la solicitud para actualizar su propia tabla. Por lo tanto, el sistema se puede adecuar en forma dinámica a direcciones físicas cambiantes y a nuevas adiciones a la red, sin tener que generar una solicitud ARP propia.

Escriba ( arp -a ) desde la interfaz de comandos de la mayoría de los sistemas operativos para visualizar un listado de las entradas de ARP almacenadas en la tabla local del equipo.

RARP (ARP INVERSO)

In tr od u cc i ón Para ayudar a un nodo a descubrir su propia dirección de IP se diseñó una variante del ARP llamado ARP

inverso (RARP - reverse ARP). El objetivo era que lo usasen las estaciones de trabajo sin disco y otros dispositivos que necesitasen obtener configuración de red de un servidor de red.

Page 25: TCP-IP

La estación que usa el protocolo ARP inverso difunde una petición en la que indica su dirección física ysolicita su dirección de IP. Un servidor de la red, configurado con una tabla de direcciones físicas y lascorrespondientes direcciones de IP responde a la petición.

ARP inverso ha sido superado por el protocolo BOOTP y su versión mejorada, el Protocolo de configuración dinámica de host (DHCP - Dynamic Host Configuración Protocol). Estos protocolos son más potentes y se usan para conseguir un conjunto completo de parámetros de configuración de un sistema TCP/IP.

Este es un ejemplo de un intercambio en el que se utiliza el protocolo RARP. (a) La máquina A transmite por difusión una solicitud RARP especificándose como destino y (b) las máquinas autorizadas para proporcionar el servicio RARP (C y D) responden directamente a “A”.

Fo r m ato D e l Me n s aje ARP/RARP

Page 26: TCP-IP

El campo HARDWARE TYPE especifica un tipo de interfaz de hardware para el que el transmisor busca unarespuesta; contiene el valor 1 para Ethernet. De forma similar, el campo PROTOCOL TYPE especifica el tipo dedirección de protocolo de alto nivel que proporcionó el transmisor. Contiene 0800x0 (en hexadecimal) para la dirección IP. El campo OPERATION especifica una solicitud ARP (1), una respuesta ARP (2), una solicitud RARP (3) o una respuesta RARP (4). Los campos HLEN y PLEN permiten que ARP se utilice con redes arbitrarias ya queéstas especifican la longitud de la dirección de hardware y la longitud de la dirección del protocolo de alto nivel. Eltransmisor proporciona sus direcciones IP y de hardware, si las conoce, en los campos SENDER HA y SENDER IP.

Cuando realiza una solicitud, el transmisor también proporciona la dirección IP del objetivo (ARP) o la dirección de hardware del objetivo (RARP), utilizando los campos TARGET HA y TARGET IP. Antes de que la máquina objetivo responda, completa las direcciones faltantes, voltea los pares de objetivo y transmisor, y cambia la operación a respuesta. Por lo tanto, una respuesta transporta las direcciones tanto de hardware como de TP del solicitante original, lo mismo que las direcciones de hardware e IP de la máquina para la que se realizó asignación.

Dentro de una misma red física, las máquinas se comunican enviándose tramas físicas. Estas tramas van dirigidas a una máquina con una determinada dirección física. Observemos que las tramas Ethernet contienen un campo con la dirección física de la máquina destino (48 bits).

In trod ucc ión

PROTOCOLO DE INTERNET (IP)

El IP es un protocolo que pertenece al nivel de red, por lo tanto, es utilizado por los protocolos del nivel de transporte como TCP para encaminar los datos hacia su destino. IP tiene únicamente la misión de encaminar el datagrama, sin comprobar la integridad de la información que contiene.

Los datos proporcionados por la capa de transporte son divididos en datagramas y transmitidos a través de la capa de red (capa internet). Durante el camino puede ser fragmentado en unidades más pequeñas si deben atravesar una red o subred cuyo tamaño de paquete sea más pequeño. En la máquina destino, estas unidades son reensambladas para volver a tener el datagrama original que es entregado a la capa de transporte.

En el nivel IP hay dos primitivas de servicio en la interfaz con la capa superior:Send (o envío) se utiliza para solicitar la transmisión de una unidad de datos.Deliver (o entrega) la utiliza IP para avisar a un usuario la llegada de una unidad de datos.

Page 27: TCP-IP

D a t a gr a m a I P Como ya hemos visto, IP es un protocolo de la capa de red. Este protocolo define la unidad básica de

transferencia de datos entre el origen y el destino. Además, el software IP es el encargado de elegir la ruta más adecuada por la que los datos serán enviados. Se trata de un sistema de entrega de paquetes (llamados datagramas IP) que tiene las siguientes características:

Es no orientado a cone x i ón debido a que cada uno de los paquetes puede seguir rutas distintas entre el origen y el destino. Entonces pueden llegar duplicados o desordenados.

Es no fiable porque los paquetes pueden perderse, dañarse o llegar retrasados.

Nota: El protocolo IP está definido en la RFC 791 (en inglés http: //sunsite.dk/RFC/rfc/rfc791.html, en español http://www.arr a kis.es/~pjleon/rfc-es/rfc/rfc0791-es.tx t).

El datagrama IP es la unidad básica de transferencia de datos entre el origen y el destino. Viaja en el campo de datos de las tramas físicas de las distintas redes que va atravesando. Cada vez que un datagrama tiene que atravesar un router, el datagrama saldrá de la trama física de la red que abandona y se acomodará en el campo de datos de una trama física de la siguiente red. Este mecanismo permite que un mismo datagrama IP pueda atravesar redes distintas: enlaces punto a punto, redes ATM, redes Ethernet, redes Token Ring, etc. El propio datagrama IP tiene también un campo de datos: será aquí donde viajen los paquetes de las capas superiores.

Encabezado deldatagrama

Área de datos del datagrama IP

Encabezado de la trama Área de datos de la trama Final de la trama

Veamos los campos del datagrama IP:

Page 28: TCP-IP

VERS (4 bits). Indica la versión del protocolo IP que se utilizó para crear el datagrama.Actualmente se utiliza la versión 4 (Ipv4) aunque ya se están preparando las especificaciones de la siguiente versión, la 6 (Ipv6).

HLEN (4 bits). Longitud de la cabecera expresada en múltiplos de 32 bits. El valor mínimo es 5, correspondiente a 160 bits = 20 bytes.

Tipo de servicio (Type Of Service). Los 8 bits de este campo se dividen a su vez en:

Prioridad (3 bits). Un valor de 0 indica baja prioridad y un valor de 7, prioridad máxima.

Los siguientes tres bits indican cómo se prefiere que se transmita el mensaje, es decir, son sugerencias a los routers que se encuentren a su paso los cuales pueden tenerlas en cuenta o no.

! Bit D (Delay). Solicita retardos cortos (enviar rápido).

! Bit T (Throughput). Solicita un alto rendimiento (enviar mucho en el menor tiempo posible).

! Bit R (Reliability). Solicita que se minimice la probabilidad de que el datagrama se pierda o resulte dañado (enviar bien).

Longitud total (16 bits). Indica la longitud total del datagrama expresada en bytes. Como el campo tiene 16 bits, la máxima longitud posible de un datagrama será de 65535 bytes.

Identificación (16 bits). Número de secuencia que junto a la dirección origen, dirección destino y el protocolo utilizado identifica de manera única un datagrama en toda la red. Si se trata de un datagrama fragmentado, llevará la misma identificación que el resto de fragmentos.

Banderas o indicadores (3 bits). Sólo 2 bits de los 3 bits disponibles están actualmente utilizados. El BIT de Más fragmentos (MF) indica que no es el último datagrama. Y el BIT de No fragmentar (NF) prohíbe la fragmentación del datagrama. Si este BIT está activado y en una determinada red se requiere fragmentar el datagrama, éste no se podrá transmitir y se descartará.

Desplazamiento de fragmentación (13 bits). Indica el lugar en el cual se insertará el fragmento actual dentro del datagrama completo, medido en unidades de 64 bits. Por esta razón los campos de datos de todos los fragmentos menos el último tienen una longitud múltiplo de 64 bits. Si el paquete no está fragmentado, este campo tiene el valor de cero.

Tiempo de vida o TTL (8 bits). Número máximo de segundos que puede estar un datagrama en la red de redes. Cada vez que el datagrama atraviesa un router se resta 1 a este número. Cuando llegue a cero, el datagrama se descarta y se devuelve un mensaje ICMP de tipo "tiempo excedido" para informar al origen de la incidencia.

Protocolo (8 bits). Indica el protocolo utilizado en el campo de datos: 1 para ICMP, 2 para IGMP, 6para TCP y 17 para UDP.

Page 29: TCP-IP

CRC cabecera (16 bits). Contiene la suma de comprobación de errores sólo para la cabecera deldatagrama. La verificación de errores de los datos corresponde a las capas superiores.

Dirección origen (32 bits). Contiene la dirección IP del origen.

Dirección destino (32 bits). Contiene la dirección IP del destino.

Opciones IP. Este campo no es obligatorio y especifica las distintas opciones solicitadas por el usuario que envía los datos (generalmente para pruebas de red y depuración).

Relleno. Si las opciones IP (en caso de existir) no ocupan un múltiplo de 32 bits, se completa con bits adicionales hasta alcanzar el siguiente múltiplo de 32 bits (recuérdese que la longitud de la cabecera tiene que ser múltiplo de 32 bits).

Fragm entación

Cuando tenemos un paquete IP y lo queremos pasar a la capa de enlace se le añade la cabecera y el campode CRC. Hay redes que limitan el tamaño máximo de los paquetes que pueden transportar y por este motivo, los paquetes deben ser fragmentados como ilustra la siguiente figura.

Los campos cuyo valor es modificado debido a la fragmentación son:

El campo posición o de s plazamiento que indica a que Byte corresponde el primer Byte de datos. El Indicador o BIT de m as dato s : Vale 1 en todos los fragmentos excepto en el último. Si un

fragmento tiene que volver a ser fragmentado y el BIT de más datos ya vale 1, mantendrá este valor en todos los nuevos fragmentos. Si vale 0, tomará el valor 1 excepto en el último fragmento.

El campo longitud de los datos y el campo c h eck s u m es calculado para cada fragmento. El identificador de paquete y el resto de campos conservan el valor que tienen antes de ser

fragmentado el paquete IP.

Page 30: TCP-IP

Ya hemos visto que las tramas físicas tienen un campo de datos y que es aquí donde se transportan losdatagramas IP. Sin embargo, este campo de datos no puede tener una longitud indefinida debido a que está limitadopor el diseño de la red. El MTU (Maximum Transmission Unit) de una red es la mayor cantidad de datos que puede transportar su trama física. El MTU de las redes Ethernet es 1500 bytes y el de las redes Token-Ring, 8192 bytes. Esto significa que una red Ethernet nunca podrá transportar un datagrama de más de 1500 bytes sin fragmentarlo.

Un router fragmenta un datagrama en varios si el siguiente tramo de la red por el que tiene que viajar el datagrama tiene un MTU inferior a la longitud del datagrama. Veamos con el siguiente ejemplo cómo se produce la fragmentación de un datagrama.

Supongamos que el host A envía un datagrama de 1400 bytes de datos (1420 bytes en total) al host B. El datagrama no tiene ningún problema en atravesar la red 1 ya que 1420 < 1500. Sin embargo, no es capaz de atravesar la red 2 (1420 >= 620). El router R1 fragmenta el datagrama en el menor número de fragmentos posibles que sean capaces de atravesar la red 2. Cada uno de estos fragmentos es un nuevo datagrama con la misma Identificación pero distinta información en el campo de Desplazamiento de fragmentación y el BIT de Más fragmentos (MF). Veamos el resultado de la fragmentación:

Fragmento 1: Long. total = 620 bytes; Desp = 0; MF=1 (contiene los primeros 600 bytes de los datos del datagrama original)Fragmento 2: Long. total = 620 bytes; Desp = 600; MF=1 (contiene los siguientes 600 bytes de los datos del datagrama original)Fragmento 3: Long. total = 220 bytes; Desp = 1200; MF=0 (contiene los últimos 200 bytes de losdatos del datagrama original)

El router R2 recibirá los 3 datagramas IP (fragmentos) y los enviará a la red 3 sin reensamblarlos. Cuando el host B reciba los fragmentos, recompondrá el datagrama original. Los routers intermedios no reensamblan los fragmentos debido a que esto supondría una carga de trabajo adicional, a parte de memorias temporales. Nótese que la computadora destino puede recibir los fragmentos cambiados de orden pero esto no supondrá ningún problema para el reensamblado del datagrama original puesto que cada fragmento guarda suficiente información. Si el datagrama del ejemplo hubiera tenido su BIT No fragmentar (NF) a 1, no hubiera conseguido atravesar el router R1 y, por tanto, no tendría forma de llegar hasta el host B. El enrutador R1 descartaría el datagrama.

Page 31: TCP-IP

Reens a m bla d o Como todos los fragmentos de un paquete IP tienen el mismo identificador de paquete y en la cabecera está

almacenado el tamaño del fragmento y su desplazamiento dentro del paquete es fácil realizar el reensamblado. De cualquier manera tanto la fragmentación como el reensamblado consumen bastantes recursos. Además de asignarun buffer en el que se realizará el reensamblado del paquete, también se necesita controlar que fragmentos han llegado y cuando, cual están pendientes de llegar y controlar cuando el paquete ya está completo.

Cuando recibe por primera vez un fragmento de un paquete se pone en marcha un temporizador (tiempo devida de reensamblaje) y va colocando los diferentes fragmentos que le vayan llegado de ese paquete IP (todos aquellos que tienen el mismo identificador). Si transcurrido el tiempo determinado por el temporizador no se ha podido realizar el reensamblado, se para el proceso de reensamblado y los paquetes recibidos se descartan. Hay quetener en cuenta que el tiempo de vida del datagrama también se va decrementado mientras dura el reensamblado.

Como IP no garantiza el servicio, el protocolo de transporte TCP será el encargado de pedir la retransmisión del paquete.

IP VERSIÓN 6

La versión actual de protocolo IP es la 4 (Ipv4). Pero está apareciendo una nueva versión, la 6 (Ipv6). El motivo básico por el que surge, en el seno del IETF (Intemet Engineering Task Force), la necesidad de crear un nuevo protocolo, que en un primer momento se denominó IPng (Internet Protocol Next Generation, o ''Siguiente Generación del Protocolo Internet''), fue la evidencia de la falta de direcciones. Ipv4 tiene un espacio de direcciones de 32 bits, es decir, 2 elevado a la 32 (4.294.967.296). En cambio, Ipv6 nos ofrece un espacio de 2 elevado a la 128 (340.282.366.920.938.463.463.374.607.431.768.211.456). Sin embargo, Ipv4 tiene otros problemas o ''dificultades'' que Ipv6 soluciona o mejora. Los creadores de Ipv4, a principio de los años 70, no predijeron en ningún momento, el gran éxito que este protocolo iba a tener en muy poco tiempo, en una gran multitud de campos, no sólo científicos y de educación, sino también en innumerables facetas de la vida cotidiana. Podemos recordar algunas''famosas frases'' que nos ayudarán a entender hasta que punto, los propios 'precursores' de la revolución tecnológica que estamos viviendo, no llegaron a prever.

''Pienso que el mercado mundial de computadores puede ser de cinco unidades'', ThomasWatson, Presidente de IBM en 1.943

''640 Kb. de memoria han de ser suficientes para cualquier usuario'', Bill Gates, Presidente deMicrosoft, 1.981

''32 bits proporcionan un espacio de direccionamiento suficiente para Internet'', Dr. Vinton Cerf, padre de Internet, 1.977

No es que estuvieran equivocados, sino que las Tecnologías de la Información han evolucionado de un modo mucho más explosivo de lo esperado. Además, ¿no dice el dicho ''es de sabios rectificar"? Desde ese momento, y debido a la multitud de nuevas aplicaciones en las que Ipv4 ha sido utilizado, ha sido necesario crear''parches'' al protocolo básico. Entre los ''parches'' más conocidos, podemos citar medidas para permitir la Calidad de Servicio (QoS), Seguridad (IPsec), y Movilidad, fundamentalmente. El inconveniente más importante de estas ampliaciones de Ipv4, es que utilizan cualquiera de ellos es muy fácil, pero no tanto cuando pretendemos usar al mismo tiempo dos ''parches'', y no digamos que se convierte en casi imposible o muy poco práctico el uso simultáneo de tres o más, llegando a ser un auténtico malabarismo de circo.

Page 32: TCP-IP

Como decíamos en párrafos anteriores, la ventaja fundamental de Ipv6 es el espacio de direcciones.El reducido espacio de Ipv4, a pesar de disponer de cuatro mil millones de direcciones (4.294.967.296),

junto al hecho de una importante falta de coordinación, durante la década de los 80, en la delegación de direcciones, sin ningún tipo de optimización, dejando incluso grandes espacios discontinuos, nos esta llevando a límites no sospechados en aquel momento.

Por supuesto, hay una solución que podríamos considerar como evidente, como sería la reenumeración, yreasignación de dicho espacio de direccionamiento. Sin embargo, no es tan sencillo, es incluso impensable en algunas redes, ya que requiere unos esfuerzos de coordinación, a escala mundial, absolutamente impensables.

Además, uno de los problemas de Ipv4 permanecería: la gran dimensión de las tablas de enrutamiento en el troncal de Internet, que la hace ineficaz, y perjudica enormemente los tiempos de respuesta.

La falta de direcciones no es apreciable por igual en todos los puntos de la red, de hecho, no es casi apreciable, por el momento, en Norte América. Sin embargo, en zonas geográficas como Asia (en Japón lasituación esta llegando a ser crítica), y Europa, el problema se agrava.

Como ejemplos, podemos citar el caso de China que ha pedido direcciones para conectar 60.000 escuelas, tan sólo ha obtenido una clase B (65.535 direcciones), o el de muchos países Europeos, Asiáticos y Africanos, que solo tienen una clase C (255 direcciones) para todo el país.

Tanto en Japón como en Europa el problema es creciente, dado el importante desarrollo de las redes detelefonía celular, inalámbricas, módems de cable, xDSL, etc., que requieren direcciones IP fijas para aprovechar al máximo sus posibilidades e incrementar el número de aplicaciones en las que pueden ser empleados.

La razón de utilización de las direcciones IP por parte de los usuarios, esta pasando en pocos meses de 10:1a 1:1, y la tendencia se invertirá. En pocos meses, podemos ver dispositivos ''siempre conectados'', con lo quefácilmente un usuario podría tener, en un futuro no muy lejano, hasta 50 o 100 IP's (1:50 o 1:100).

Algunos Proveedores de Servicios Internet (ISP) se ven incluso obligados a proporcionar a sus clientes direcciones IP privadas, mediante mecanismos de NAT (traslación de direcciones, es decir, usar una sola IP públicapara toda una red privada). De hecho, casi todos los ISP se ven obligados a delegar tan sólo reducidos números dedirecciones IP públicas para sus grandes dientes corporativos.

Como ya hemos apuntado, la solución, temporalmente, es el uso de mecanismos NAT. Desafortunadamente, de seguir con Ipv4, esta tendencia no sería ''temporal'', sino ''invariablemente permanente''. Ello implica laimposibilidad práctica de muchas aplicaciones, que quedan relegadas a su uso en Intranets, dado que muchosprotocolos son incapaces de atravesar los dispositivos NAT:

RTP y RTCP (''Real-time Transport Protocol'' y ''Real Time Control Protocol'') usan UDP con asignación dinámica de puertos (NAT no soporta esta traslación).

La autenticación Kerberos necesita la dirección fuente, que es modificada por NAT en la cabecera IP.

IPsec pierde integridad, debido a que NAT cambia la dirección en la cabecera IP. Multicast, aunque es posible, técnicamente, su configuración es tan complicada con NAT, que

en la práctica no se emplea.

NA T : Consiste en traducir una dirección IP en otra de acuerdo con cierta tabla de equivalencias. Se utiliza mucho como mecanismo para ‘extender’ el rango de direcciones disponible en una red. Por ejemplo usar una sola IP pública para dar acceso a cientos de ordenadores. NAT se suele utilizar para conectar a Internet redes IP que utilizan rangos privados. Normalmente la traducción la realiza el dispositivo (router) que conecta la red al exterior.

Page 33: TCP-IP

C a r a c t e r í s t i cas d e l I P V 6 Si resumimos las características fundamentales de Ipv6 obtenemos la siguiente relación:

Mayor espacio de direcciones. Auto configuración de los dispositivos. Seguridad intrínseca en el núcleo del protocolo (IPsec). Calidad de Servicio (QoS) y Clase de Servicio (CoS). Multicast: Envío de UN mismo paquete a un grupo de receptores. Anycast Envío de UN paquete a UN receptor dentro de UN grupo. Paquetes IP eficientes y extensibles, sin que haya fragmentación en los routers, alineados a 64

bits (preparados para su procesado óptimo con los nuevos procesadores de 64 bits), y con una cabecera de longitud fija, más simple, que agiliza su procesado por parte del router.

Posibilidad de paquetes con carga útil (datos) de más de 65.535 bytes. Enrutamiento más eficiente en el troncal (backbone) de la red, debido a una jerarquía de

direccionamiento basada en la agregación. Renumeración y ''multi-homing'', que facilita el cambio de proveedor de servicios. Características de movilidad. No hay direcciones broadcast (su función es sustituida por direcciones multicast). Los campos de las direcciones reciben nombres específicos; denominamos ''prefijo'' a la parte de

la dirección hasta el nombre indicado (incluyéndolo). Dicho prefijo nos permite conocer donde esta conectada una determinada dirección, es decir, su ruta de encaminado.

Cualquier campo puede contener sólo ceros o sólo unos, salvo que explícitamente se indique lo contrario.

Las direcciones Ipv6, indistintamente de su tipo (unicast, anycast o multicast), son asignadas a interfaces, no nodos. Dado que cada interfaz pertenece a un único nodo, cualquiera de las direcciones unicast de las interfaces del nodo puede ser empleado para referirse a dicho nodo.

Todas las interfaces han de tener, al menos, una dirección unicast link-local (enlace local). Una única interfaz puede tener también varias direcciones Ipv6 de cualquier tipo (unicast,

anycast o multicast) o ámbito. Una misma dirección o conjunto de direcciones unicast pueden ser asignados a múltiples

interfaces físicas, siempre que la implementación trate dichas interfaces, desde el punto de vista de Internet, como una única, lo que permite balanceo de carga entre múltiples dispositivos.

Al igual que en Ipv4, se asocia un prefijo de subred con un enlace, y se pueden asociar múltiples prefijos de subred a un mismo enlace

Pero hay que insistir, de nuevo, en que estas son las características básicas, y que la propia estructura del protocolo permite que este crezca, o dicho de otro modo, sea escalado, según las nuevas necesidades y aplicaciones o servicios lo vayan necesitando. Precisamente, la escalabilidad es la característica más importante de Ipv6 frente a Ipv4.

Page 34: TCP-IP

Especifi c a c i ones bá s i cas

Recordemos la cabecera de un paquete Ipv4 que ya hemos visto:

Como vemos, la longitud mínima de la cabecera Ipv4 es de 20 bytes (cada fila de la tabla supone 4 bytes). Aello hay que añadir las opciones, que dependen de cada caso.

Veamos cada campo: Versión - Versión (4 bits) Header - Cabecera (4 bits) TOS (Type Of Service) - Tipo de Servicio (1 Byte) Total Length - Longitud Total (2 bytes) Identificación - Identificación (2 bytes) Flag - Indicador (4 bits) Fragment Offset - Desplazamiento de Fragmentación (12 bits - 1.5 bytes) TTL (Time To Live) - Tiempo de Vida (1 Byte) Protocol - Protocolo (1 Byte) Checksum - Código de Verificación (2 bytes) 32 BIT Source Address - Dirección Fuente de 32 bits (4 bytes) 32 BIT Destination Address - Dirección Destino de 32 bits (4 bytes)

En la tabla anterior, hemos marcado, mediante el color de fondo, los campos que van a desaparecer en Ipv6,y los que son modificados, según el siguiente esquema:

Hemos pasado de tener 12 campos, en Ipv4, a tan solo 8 en Ipv6. El motivo fundamental por el que los campos son eliminados, es la innecesaria redundancia. En Ipv4 estamos facilitando la misma información de varias formas. Un caso muy evidente es el checksum o verificación de la integridad de la cabecera: Otros mecanismos de encapsulado ya realizan esta función (IEEE 802 MAC, framing PPP, capa de adaptación ATM, etc.).

Page 35: TCP-IP

El caso del campo de ''Desplazamiento de Fragmentación'', es ligeramente diferente, dado que el mecanismopor el que se realiza la fragmentación de los paquetes es totalmente modificado en Ipv6, lo que implica la total''inutilidad'' de este campo. En Ipv6 los routers no fragmentan los paquetes, sino que de ser precisa, dicha fragmentación/defragmentación se produce extremo a extremo.

Algunos de los campos son renombrados:

Protocolo 4 siguiente cabecera (next header), dado que en lugar de usar cabeceras de longitud variables se emplean sucesivas cabeceras encadenadas, de ahí que desaparezca el campo de opciones. En muchos casos ni siquiera es procesado por los routers, sino tan sólo extremo a extremo. Tiene una longitud de 8 bits (1 Byte).

Tiempo de vida 4 límite de saltos (Hop Limit). Tiene una longitud de 8 bits (1 Byte).

Los nuevos campos son:

Etiqueta de Flujo (Flow Lab l), para permitir tráficos con requisitos de tiempo real. Tiene una longitud de 20 bits. Por tanto, en el caso de un paquete Ipv6, la cabecera tendría el siguiente formato:

El campo de versión, que es igual a 6, lógicamente, tiene una longitud de 4 bits.La longitud de esta cabecera es de 40 bytes, el doble que en el caso de Ipv4, pero con muchas ventajas, al

haberse eliminado campos redundantes. Además, como ya hemos mencionado, la longitud fija de la cabecera, implica una mayor facilidad para su procesado en routers y conmutadores, incluso mediante hardware, lo queimplica unas mayores prestaciones. El hecho de que los campos están alineados a 64 bits, lo que permite que lasnuevas generaciones de procesadores y microcontroladores, de 64 bits, puedan procesar mucho más eficazmente la cabecera Ipv6. El valor del campo ''siguiente cabecera'', indica cual es la siguiente cabecera y así sucesivamente. Las sucesivas cabeceras, no son examinadas en cada nodo de la ruta, sino sólo en el nodo o nodos destino finales.Hay una única excepción a esta regla: cuando el valor de este campo es cero, lo que indica opción de examinado yproceso ''salto a salto'' (hop-by-hop). Así tenemos, por citar algunos ejemplos, cabeceras con información de encaminado, fragmentación, opciones de destino, autenticación, encriptación, etc., que en cualquier caso, han de ser procesadas en el orden riguroso en que aparecen en el paquete. Sin entrar en más detalles, veamos a continuaciónlos siguientes ejemplos gráficos del uso del concepto de las ''cabeceras de extensión'' (definidas por el campo''siguiente cabecera''), mecanismo por el que cada cabecera es ''encadenada'' a la siguiente y anterior (si existen):

Page 36: TCP-IP

El MTU (Unidad Máxima de Transmisión), debe de ser como mínimo, de 1.280 bytes, aunque serecomiendan tamaños superiores a 1.500 bytes. Los nodos descubren el valor MTU a través de la inspección de la ruta. Se prevé así una optimización de los paquetes y del número de cabeceras, dado el continuo crecimiento de losanchos de banda disponibles, así como del incremento del propio tráfico.

Dado que Ipv6 no realiza verificación de errores de la cabecera, en tráfico UDP, se requiere el empleo del su propio mecanismo de checksum.

Definición de di r ec c ion e s en I p v 6 Las direcciones Ipv6 son identificadores de 128 bits para interfaces y conjuntos de interfaces. Dichas

direcciones se clasifican en tres tipos:

Unicast: identificador para una única interfaz. Un paquete enviado a una dirección unicast es entregado sólo a la interfaz identificada con dicha dirección. Es el equivalente a las direcciones Ipv4 actuales.

Anycast: identificador para un conjunto de interfaces (típicamente pertenecen a diferentes nodos). Un paquete enviado a una dirección anycast es entregado en una (cualquiera) de las interfaces identificadas con dicha dirección (la más próxima, de acuerdo a las medidas de distancia del protocolo de encaminado). Nos permite crear, por ejemplo, ámbitos de redundancia, de forma que varias máquinas puedan ocuparse del mismo tráfico según una secuencia determinada (por el routing), si la primera ''cae''.

Multicast: identificador para un conjunto de interfaces (por lo general pertenecientes a diferentes nodos). Un paquete enviado a una dirección multicast es entregado a todas las interfaces identificadas por dicha dirección. La misión de este tipo de paquetes es evidente: aplicaciones de retransmisión múltiple.

Page 37: TCP-IP

F o r m as de c o nexi ó n d i r e ct a s Hay tres formas directas de conectarse a la red Ipv6 las cuales trataremos aquí:

Nativamente: Es la mejor forma de conexión, ya que tendríamos una IP pública disponible para nosotros. Sin embargo, para esta opción, sería necesario que nuestro proveedor de Internet nos diera tal opción. En nuestra situación, disponemos de conexión con un ISP, el cual no nos facilita tal opción.

Para comprobarlo, editamos el archivo /etc/network/interfaces e indicamos que queremos una dirección ipv6. Lanzamos el cliente de DHCP y al no encontrar ninguna dirección ipv6 válida, nos creará un túnel (sit0), basándose en la dirección ipv4. Si funcionara, ya podríamos salir a Internet con total libertad.

bash:~$cat /etc/network/interfaces# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)

# The loopback interface auto loiface lo inet loopback

# The first network card - this entry was created during the# Debianinstallation auto eth0iface eth0 inet6 dhcp

bash:~$dhclientInternet Software Consortium DHCP Client 2.0pl5Copyright 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium. All rights reserved.

Please contribute if you find this software useful.For info, please visit ht t p:// w ww.i s c.o r g/dhc p -con t rib. h tml

sit0: unknown hardware address type 776sit0: unknown hardware address type 776Listening on LPF/eth0/00:a0:cc:c7:7e:09Sending on LPF/eth0/00:a0:cc:c7:7e:09Sending on Socket/fallback/fallback-netDHCPREQUEST on eth0 to 255.255.255.255 port 67DHCPACK from 212.183.224.15SIOCADDRT: File existsbound to 212.183.254.223 -- renewal in 43200 seconds.

bash:~$ifconfigeth0 Link encap:Ethernet HWaddr 00:A0:CC:C7:7E:09

inet addr:212.183.254.223 Bcast:212.183.255.255 Mask:255.255.224.0inet6 addr: fe80::2a0:ccff:fec7:7e09/10 Scope:LinkUP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1RX packets:107362 errors:0 dropped:0 overruns:0 frame:0TX packets:4405 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:100RX bytes:7498638 (7.1 MiB) TX bytes:382464 (373.5 KiB) Interrupt:10 Base address:0xd000

lo Link encap:Local Loopbackinet addr:127.0.0.1 Mask:255.0.0.0inet6 addr: ::1/128 Scope:Host

Page 38: TCP-IP

UP LOOPBACK RUNNING MTU:16436 Metric:1RX packets:262 errors:0 dropped:0 overruns:0 frame:0

Page 39: TCP-IP

TX packets:262 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:28676 (28.0 KiB) TX bytes:28676 (28.0 KiB)

sit0 Link encap:IPv6-in-IPv4inet6 addr: ::212.183.254.223/96 Scope:Compatinet6 addr: ::127.0.0.1/96 Scope:UnknownUP RUNNING NOARP MTU:1480 Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:43 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

Túnel Ipv6 over Ipv4Creación de un túnel Ipv6 sobre una conexión Ipv4 estándar. Es la forma más usada. Dicho túnel, se debe deconfigurar contra un servidor de nuestro proveedor que nos de tal opción. Anteriormente se nos configurópor defecto (sit0) aunque no es operativo en absoluto. Nuevamente, nuestro ISP, Retecal, no dispone de tales opciones, por lo que tampoco podremos usar esta opción.En caso de que existiera tal servidor, para facilitar las cosas, usaríamos el programa 6in4tunnel.

IPv6toIPv4Conectándonos a través de la IP pública que ya disponemos.http://www.cisco.com/warp/public/759/ipj_3-1/i p j_3-1_routin g .html

Con e x i ón a t r a vés de ter c e ro s Ésta será la opción que elijamos nosotros por ser la más sencilla de todas y la más fiable. Lo que haremos

será conectarnos a un servidor Ipv6 a través de un túnel Ipv4.Hay bastantes Ipv6 Tunnel Brokers que nos dan éste servicio, entre los que escogeremos Freenet6

(http://www.free n et6.net ). Para poder usar sus servicios nos bastará simplemente con instalar el paquete freenet6 en nuestra distribución, y él hará el resto automáticamente. Como nota negativa, cabe destacar, que estos Ipv6 tunnelbrokers, deberán de dejar de dar servicio entre los años 2006 y 2007, para forzar a la gente a adaptarse realmente aIpv6, pero mientras tanto nos aprovechamos de ello.

Esta opción tiene una única pega, y es que necesitamos que nuestra máquina tenga una dirección ipv4pública.bash:~$apt-get install freenet6Setting up freenet6 IPv6 tunnel (sit1): 3ffe:b80:3:7cac::d4b7:fedf/128

bash:~$ifconfig sit1sit1 Link encap:IPv6-in-IPv4

inet6 addr: fe80::d4b7:fedf/10 Scope:Linkinet6 addr: 3ffe:b80:3:7cac::d4b7:fedf/128 Scope:GlobalUP POINTOPOINT RUNNING NOARP MTU:1480 Metric:1RX packets:0 errors:0 dropped:0 overruns:0 frame:0TX packets:0 errors:0 dropped:0 overruns:0 carrier:0collisions:0 txqueuelen:0RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

Debido a que ya teníamos un túnel previamente, en ésta situación nos los ha nombrado como sit1.Listo! Ya estamos enganchados al mundo futuro. Si echamos un vistazo a la tabla de rutas veremos como está ya todo configurado para poder echar a volar cuando queramos

Page 40: TCP-IP

bash:~$routeDestination Gateway Genmask Flags Metric Ref Use Iface

Page 41: TCP-IP

U 0 0 0 eth0UG 0 0 0 eth0

212.183.224.0 * 255.255.224.0default cable224a001.us 0.0.0.0

bash:~$route -inet6Kernel IPv6 routing tableDestination Next Hop Flags Metric Ref Use Iface::1/128 :: U 0 12 1 lo::127.0.0.1/128 :: U 0 0 0 lo::212.183.254.223/128 :: U 0 2 0 lo3ffe:b80:3:7cac::d4b7:fedf/128 :: U 0 0 0 lo fe80::d4b7:fedf/128 :: U 0 0 0 lo fe80::2a0:ccff:fec7:7e09/128 :: U 0 0 0 lo fe80::/10 :: UA 256 0 0 eth0 fe80::/10 :: UA 256 0 0 sit1 ff00::/8 :: UA 256 0 0 eth0 ff00::/8 :: UA 256 0 0 sit1::/0 :: U 1 0 0 sit1

Para hacer las primeras pruebas, hacemos pings y tracepaths a alguna máquina que sepamos que funciona con Ipv6, tales como ww w .kame.net o w w w.ipv6.elmundo.es

bash:~$ping6 ww w .ip v 6.elm u ndo. e s PING w ww.i p v6.e l mun d o.es( 2001:450:9:10::71) 56 data bytes64 bytes from 2001:450:9:10::71: icmp_seq=1 ttl=58 time=458 ms64 bytes from 2001:450:9:10::71: icmp_seq=2 ttl=58 time=459 ms64 bytes from 2001:450:9:10::71: icmp_seq=3 ttl=58 time=408 ms64 bytes from 2001:450:9:10::71: icmp_seq=4 ttl=58 time=437 ms64 bytes from 2001:450:9:10::71: icmp_seq=5 ttl=58 time=429 ms

--- w w w.ip v 6.el m und o .es ping statistics ---6 packets transmitted, 5 received, 16% packet loss, time 24533msrtt min/avg/max/mdev = 408.310/438.617/459.647/19.117 ms

bash:~$traceroute6 w ww.ip v 6.el m undo . es traceroute to w w w.i p v6.el m undo . es (2001:450:9:10::71) from 3ffe:b80:3:7cac::d4b7:fedf, 30hops max, 16 byte packets1 3ffe:b80:3:7cac::1 (3ffe:b80:3:7cac::1) 189.365 ms 198.043 ms 180.992 ms2 viagenie.tu-3.r00.snjsca06.us.b6.verio.net (2001:418:0:4000::26) 181.612 ms 179.73 ms

178.247 ms3 3ffe:b00:c18::f (3ffe:b00:c18::f) 209.308 ms 146.313 ms 272.583 ms4 3ffe:2900:f:e::2 (3ffe:2900:f:e::2) 320.602 ms * 352.232 ms5 2001:450:1:1::21 (2001:450:1:1::21) 376.339 ms 398.496 ms 454.942 ms6 2001:450:1:2001::a3 (2001:450:1:2001::a3) 423.049 ms 481.991 ms 410.746 ms7 2001:450:9:10::71 (2001:450:9:10::71) 460.4 ms 483.793 ms 654.654 ms

Además de todas estas pruebas, nos conectamos a www.kame.net donde deberíamos ver una tortuga nadando para indicarnos que tenemos ipv6, o a w ww.ipv6.elmundo.net, donde además encontraremos la dirección con la cual estamos saliendo al mundo exterior.

Page 42: TCP-IP

ICMP (Internet Control Message Protocol)

Debido a que el protocolo IP no es fiable, los datagramas pueden perderse o llegar defectuosos a su destino. El protocolo ICMP (Internet Control Message Protocol, protocolo de mensajes de control) se encarga de

informar al origen si se ha producido algún error durante la entrega de su mensaje. Pero no sólo se encarga denotificar los errores, sino que también transporta distintos mensajes de control.

Nota: El protocolo ICMP está definido en la RFC 792 (en i n g l é s http://r f c .sunsite.dk/rfc/r f c 792.h t ml, en español http://www.arrakis.es/% 7 Epjleon/rfc - e s/rfc/ r fc07 9 2-es.t x t )

El protocolo ICMP únicamente informa de incidencias en la red pero no toma ninguna decisión. Esto será responsabilidad de las capas superiores.

Debido a que el protocolo IP no es fiable puede darse el caso de que un mensaje ICMP se pierda o se dañe.Si esto llega a ocurrir no se creará un nuevo mensaje ICMP sino que el primero se descartará.

Los mensajes ICMP comienzan con un campo de 8 bits que contiene el tipo de mensaje, según se muestra en la tabla siguiente. El resto de campos son distintos para cada tipo de mensaje ICMP.

C a m p o de t ip o Tipo de m e nsa j e ICMP 0 Respuesta de eco (Echo Reply)3 Destino inaccesible (Destination Unreachable)4 Disminución del tráfico desde el origen (Source Quench)5 Redireccionar (cambio de ruta) (Redirect)8 Solicitud de eco (Echo)11 Tiempo excedido para un datagrama (Time Exceeded)12 Problema de Parámetros (Parameter Problem)13 Solicitud de marca de tiempo (Timestamp)14 Respuesta de marca de tiempo (Timestamp Reply)15 Solicitud de información (obsoleto) (Information Request)16 Respuesta de información (obsoleto) (Information Reply)17 Solicitud de máscara (Addressmask)18 Respuesta de máscara (Addressmask Reply)

ICMP proporciona información de realimentación sobre los problemas que ocurren y por ejemplo se utiliza cuando:

Un datagrama no puede alcanzar su destino El dispositivo de encaminamiento no tiene la capacidad de almacenar temporalmente el

datagrama para poderlo reenviar, y El dispositivo de encaminamiento indica a un host que envíe el tráfico por una ruta mas

corta (redireccionamiento de rutas).Cada mensaje ICMP se encapsula en un paquete IP y luego es enviado de la forma habitual. Como los mensajes ICMP se transmiten en mensajes IP, no se puede garantizar que llegue a su destino.

Page 43: TCP-IP

A continuación describiremos algunos mensajes ICMP. En las figuras puede verse el formato correspondientea cada uno de ellos. El número de campos del mensaje, la interpretación de cada campo y la cantidad de datosdepende del tipo de mensaje.

Formato de Mensaje ICMP

ICMP(3) - Detectar destinos inalcanzables: Cuando un dispositivo de encaminamiento detecta que la red o el servidor de destino es inalcanzable, envía un mensaje de destino inalcanzable al emisor del datagrama. El ordenador destino también puede enviar este mensaje si el protocolo de usuario o algún punto de acceso al servicio de nivel superior no es alcanzable. Por último si en algún dispositivo de enrutamiento es necesario fragmentar un datagrama pero está activo el indicador de no fragmentación, también se envía un mensaje de destino inalcanzable.

Formato de Mensaje ICMP(3), ICMP(11), ICMP(4)

ICMP(11) - Tiempo excedido: Será devuelto por un dispositivo de enrutamiento intermedio si ha expirado el tiempo de vida del datagrama o si no ha podido reensamblar en el paquete en un tiempo determinado. Este mensaje es un síntoma de que los paquetes están en un ciclo, de que hay mucha congestión en la red o de que los valores de temporización son demasiado bajos. Este paquete contiene la cabecera del paquete IP que ha sido eliminado y los primeros 8 bytes de su contenido. El formato es el mismo que en el caso de ICMP(3).

ICMP(4) – Petición de control de flujo (ralentización del origen): Cuando los datagramas llegan demasiado deprisa para ser procesados, el servidor de destino o un dispositivo de encaminamiento intermedio envía un mensaje al emisor indicándole que ralentice o pare temporalmente el envío de datagramas. Este mecanismo puede activarse antes de que se produzca la congestión y en ese caso el mensaje original si que se habrá recibido correctamente. En la actualidad se utiliza poco pues, cuando hay congestión, esos mensajes lo único que hacen es empeorar la situación. Actualmente el control de congestión se realiza en la capa de transporte como veremos mas adelante. El formato es el mismo que en el caso de ICMP(3).

Page 44: TCP-IP

ICMP(12) - Problema de parámetros: Este mensaje es enviado cuando hay algún error sintáctico o semánticoen la cabecera IP. Por ejemplo, un argumento incorrecto en una opción. El campo parámetro de la respuestacontiene un puntero al Byte de la cabecera original donde se detectó el error. Este mensaje indica un fallo en el programa IP del emisor o en alguno de los dispositivos de enrutamiento.

Formato de Mensaje ICMP(12)

ICMP(5) - Redireccionando rutas: Un dispositivo de encaminamiento envía un mensaje ICMP de redirección para decirle al emisor que use otro dispositivo de encaminamiento, presumiblemente porque es una mejor elección. Este mensaje sólo puede ser usado cuando el ordenador emisor está en la misma red que los dos dispositivos de encaminamiento.

Formato de Mensaje ICMP(5)

ICMP(0) - Eco y ICMP(8) - respuesta a eco: permiten comprobar que el protocolo Internet de un sistema remoto está funcionando, es decir, si un ordenador es alcanzable y esta vivo. El receptor de un mensaje eco está obligado a responder con un mensaje respuesta a eco. El mensaje de eco tiene asociado un identificador y un número de secuencia que coinciden con los que hay en el mensaje de respuesta a eco. Como en los sistemas multitarea puede haber varias peticiones en curso es necesario utilizar un identificador de secuencia. El comando ping lo utiliza.

Formato de Mensaje ICMP(0), ICMP(8)

Page 45: TCP-IP

ICMP(13) - Marca de tiempo y ICMP(14) - respuesta a la marca de tiempo proporcionan un mecanismopara saber el retardo que hay. El emisor pone una marca de tiempo para indicar cuando envía el mensaje y elreceptor indica cuando recibió el mensaje y cuando lo ha reenviado. Si el mensaje de marca de tiempo se envía usando un router por la fuente destino, podemos determinar las características del retardo de una ruta particular.

Formato de Mensaje ICMP(13)

Formato de Mensaje ICMP(14)

ICMP(17) - Petición de dirección de Mascara y ICMP(18) - Respuesta de dirección de Mascara. Se utilizan en los entornos que incluyen subredes.

Page 46: TCP-IP

TCP/IP EN EL MODELO OSI

El modelo de capas de TCP/IP es algo diferente al propuesto por ISO (International Standard Organization) para la interconexión de sistemas abiertos OSI, de hecho, es anterior. El modelo OSI describe un sistema de redes ideal que permite establecer una comunicación entre procesos de capas distintas y fáciles de identificar, pero solo se usa como modelo de referencia. Aunque puede llegar a ver una correlación entre ambos modelos.

La capa física no esta especificada en realidad por TCP/IP. El usuario tiene la libertad de utilizar cualquiertransmisión física, incluyendo las redes de área amplia, de área metropolitana y de área local.

El protocolo Internet (IP) de TCP/IP es más o menos equivalente a la capa de red del modelo OSI, en tanto que TCP corresponde, cuando menos, a la capa de transporte y, en cierto sentido, a la capa de sesión.

Los otros protocolos asociados con TCP/IP se relacionan con la capa de aplicación e incluyen el protocolo de transferencia de archivos (FTP), el protocolo simple de transferencia de correos (SMTP) y los protocolos de emulación de terminales (Telnet), entre otros.

Nosotros utilizaremos el modelo de referencia OSI para el resto de la cursada. Pero es importante aclarar estas diferencias entre ambos.

In trod ucc iónPROTOCOLO DE TRANSPORTE

La capa de red transfiere datagramas entre dos ordenadores a través de la red utilizando comoidentificadores las direcciones IP. La capa de transporte añade la noción de puerto para distinguir entre los muchos destinos dentro de un mismo host. No es suficiente con indicar la dirección IP del destino, además hay queespecificar la aplicación que recogerá el mensaje. Cada aplicación que esté esperando un mensaje utiliza un número

Page 47: TCP-IP

de puerto distinto; más concretamente, la aplicación está a la espera de un mensaje en un puerto determinado(escuchando un puerto).

Pero no sólo se utilizan los puertos para la recepción de mensajes, también para el envío: todos los mensajes que envíe un ordenador debe hacerlo a través de uno de sus puertos. El siguiente diagrama representa una transmisión entre el ordenador 194.35.133.5 y el 135.22.8.165. El primero utiliza su puerto 1256 y el segundo, el80.

La capa de transporte transmite mensajes entre las aplicaciones de dos máquinas. Por ejemplo, entre nuestro navegador de páginas web y un servidor de páginas web, o entre nuestro programa de correo electrónico y un servidor de correo, como en un ejemplo del principio de este curso.

Pue r t o s Un cliente puede estar conectado con distintos servidores a la vez; por ejemplo, con un servidor de noticias

y un servidor de correo. Para distinguir las distintas conexiones dentro de un mismo host se utilizan los puertos.Un puerto es un número de 16 bits, por lo que existen 65536 puertos en cada host. Las aplicaciones utilizan

estos puertos para recibir y transmitir mensajes.Los números de puerto de las aplicaciones cliente son asignados dinámicamente y generalmente son superiores al

1024. Cuando una aplicación cliente quiere comunicarse con un servidor, busca un número de puertolibre y lo utiliza.

En cambio, las aplicaciones servidoras utilizan unos números de puerto prefijados: son los llamados puertos well-known (bien conocidos). Estos puertos están definidos en la RFC 1700 y se pueden consultar en http://www.ietf.or g / r f c/r f c1700.t x t . A continuación se enumeran los puertos well-known más usuales:

P alabra clave P u e r t o Descr ip c i ón 0/tcp Reserved0/udp Reserved

tcpmux 1/tcp TCP Port Service Multiplexerrje 5/tcp Remote Job Entryecho 7/tcp/udp Echodiscard 9/tcp/udp Discardsystat 11/tcp/udp Active Users

Page 48: TCP-IP

daytime 13/tcp/udp Daytimeqotd 17/tcp/udp Quote of the Daychargen 19/tcp/udp Character Generatorftp-data 20/tcp File Transfer [Default Data]ftp 21/tcp File Transfer [Control]telnet 23/tcp Telnetsmtp 25/tcp Simple Mail Transfertime 37/tcp/udp Timenameserver 42/tcp/udp Host Name Servernicname 43/tcp/udp Who Isdomain 53/tcp/udp Domain Name Serverbootps 67/udp/udp Bootstrap Protocol Servertftp 69/udp Trivial File Transfergopher 70/tcp Gopherfinger 79/tcp Fingerwww-http 80/tcp World Wide Web HTTPdcp 93/tcp Device Control Protocolsupdup 95/tcp SUPDUPhostname 101/tcp NIC Host Name Serveriso-tsap 102/tcp ISO-TSAPgppitnp 103/tcp Genesis Point-to-Point Trans Netrtelnet 107/tcp/udp Remote Telnet Servicepop2 109/tcp Post Office Protocol - Version 2pop3 110/tcp Post Office Protocol - Version 3sunrpc 111/tcp/udp SUN Remote Procedure Callauth 113/tcp Authentication Servicesftp 115/tcp/udp Simple File Transfer Protocolnntp 119/tcp Network News Transfer Protocolntp 123/udp Network Time Protocolpwdgen 129/tcp Password Generator Protocolnetbios-ns 137/tcp/udp NETBIOS Name Servicenetbios-dgm 138/tcp/udp NETBIOS Datagram Servicenetbios-ssn 139/tcp/udp NETBIOS Session Servicesnmp 161/udp SNMPsnmptrap 162/udp SNMPTRAPirc 194/tcp Internet Relay Chat Protocol

Los puertos tienen una memoria intermedia (buffer) situada entre los programas de aplicación y la red. Detal forma que las aplicaciones transmiten la información a los puertos. Aquí se va almacenando hasta que pueda enviarse por la red. Una vez que pueda transmitirse, la información irá llegando al puerto destino donde se iráguardando hasta que la aplicación esté preparada para recibirla.

Los dos protocolos prin c i pales de la capa de tra n sporte son UDP y TCP. El primero ofrece una transferencias de mensajes no fiable y no orientada a conexión y el segundo, una transferencia fiable y orientada aconexión.

Page 49: TCP-IP

P r o to c o l o UDP El protocolo UDP (User Datagram Protocol, protocolo de datagrama de usuario) proporciona una

comunicación muy sencilla entre las aplicaciones de dos ordenadores. Al igual que el protocolo IP, UDP es:

No orientado a cone x i ón . No se establece una conexión previa con el otro extremo para transmitir un mensaje UDP. Los mensajes se envían sin más y éstos pueden duplicarse o llegar desordenados al destino.

No fiabl e . Los mensajes UDP se pueden perder o llegar dañados.

UDP utiliza el protocolo IP para transportar sus mensajes. Como vemos, no añade ninguna mejora en la calidad de la transferencia; aunque sí incorpora los puertos origen y destino en su formato de mensaje. Las aplicaciones (y no el protocolo UDP) deberán programarse teniendo en cuenta que la información puede no llegar de forma correcta.

Fo rm ato d el m ensaje UDP

0 10 20 300 1 2 3 4 5 6 7 8 9 0 1 2 3 3 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

Puerto UDP origen Puerto UDP destinoLongitud mensaje UDP Suma verificación UDP

Datos...

Puerto UDP de origen (16 bits, opcional). Número de puerto de la máquina origen.

Puerto UDP de destino (16 bits). Número de puerto de la máquina destino.

Longitud del mensaje UDP (16 bits). Especifica la longitud medida en bytes del mensaje UDP incluyendo la cabecera. La longitud mínima es de 8 bytes.

Suma de verificación UDP (16 bits, opcional). Suma de comprobación de errores del mensaje. Para su cálculo se utiliza una pseudo-cabecera que también incluye las direcciones IP origen y destino. Para conocer estos datos, el protocolo UDP debe interactuar con el protocolo IP.

Datos. Aquí viajan los datos que se envían las aplicaciones. Los mismos datos que envía la aplicación origen son recibidos por la aplicación destino después de atravesar toda la Red de redes.

Page 50: TCP-IP

P r o to c o l o TCP El protocolo TCP (Transmission Control Protocol, protocolo de control de transmisión) está basado en IP

que es no fiable y no orientado a conexión, y sin embargo es:

Orientado a cone x i ón . Es necesario establecer una conexión previa entre las dos máquinas antes de poder transmitir ningún dato. A través de esta conexión los datos llegarán siempre a la aplicación destino de forma ordenada y sin duplicados. Finalmente, es necesario cerrar la conexión.

F i a b l e . La información que envía el emisor llega de forma correcta al destino.

El protocolo TCP permite una comunicación fiable entre dos aplicaciones. De esta forma, las aplicaciones que lo utilicen no tienen que preocuparse de la integridad de la información: dan por hecho que todo lo que reciben es correcto.

El flujo de datos entre una aplicación y otra viajan por un circuito virtual. Sabemos que los datagramas IP pueden seguir rutas distintas, dependiendo del estado de los routers intermedios, para llegar a un mismo sitio. Esto significa que los datagramas IP que transportan los mensajes siguen rutas diferentes aunque el protocolo TCP logré la ilusión de que existe un único circuito por el que viajan todos los bytes uno detrás de otro (algo así como una tubería entre el origen y el destino). Para que esta comunicación pueda ser posible es necesario abrir previamente una conexión. Esta conexión garantiza que los todos los datos lleguen correctamente de forma ordenada y sin duplicados. La unidad de datos del protocolo es el Byte, de tal forma que la aplicación origen envía bytes y la aplicación destino recibe estos bytes.

Sin embargo, cada Byte no se envía inmediatamente después de ser generado por la aplicación, sino que se espera a que haya una cierta cantidad de bytes, se agrupan en un segmento y se envía el segmento completo. Para ello son necesarias unas memorias intermedias o buffers. Cada uno de estos segmentos viaja en el campo de datos de un datagrama IP. Si el segmento es muy grande será necesario fragmentar el datagrama, con la consiguiente pérdida de rendimiento; y si es muy pequeño, se estarán enviando más cabeceras que datos. Por consiguiente, es importante elegir el mayor tamaño de segmento posible que no provoque fragmentación.

El protocolo TCP envía un flujo de información no estructurado. Esto significa que los datos no tienen ningún formato, son únicamente los bytes que una aplicación envía a otra. Ambas aplicaciones deberán ponerse de acuerdo para comprender la información que se están enviando.

Cada vez que se abre una conexión, se crea un canal de comunicación vi direccional en el que ambas aplicaciones pueden enviar y recibir información, es decir, una conexión es full-dúplex.

Con respecto a la fiabilidad ¿Cómo es posible enviar información fiable basándose en un protocolo nofiable? Es decir, si los datagramas que transportan los segmentos TCP se pueden perder, ¿cómo pueden llegar los datos de las aplicaciones de forma correcta al destino? La respuesta a esta pregunta es sencilla: cada vez que llega un mensaje se devuelve una confirmación (acknowledgement) para que el emisor sepa que ha llegadocorrectamente. Si no le llega esta confirmación pasado un cierto tiempo, el emisor reenvía el mensaje.

Veamos a continuación la manera más sencilla (aunque ineficiente) de proporcionar una comunicación fiable. El emisor envía un dato, arranca su temporizador y espera su confirmación (ACK). Si recibe su ACK antes de agotar el temporizador, envía el siguiente dato. Si se agota el temporizador antes de recibir el ACK, reenvía elmensaje. Los siguientes esquemas representan este comportamiento:

Page 51: TCP-IP

Este esquema es perfectamente válido aunque muy ineficiente debido a que sólo se utiliza un sentido de lacomunicación a la vez y el canal está desaprovechado la mayor parte del tiempo. Para solucionar este problema se utiliza un protocolo de ventana deslizante, que se resume en el siguiente esquema. Los mensajes y lasconfirmaciones van numerados y el emisor puede enviar más de un mensaje antes de haber recibido todas lasconfirmaciones anteriores.

Page 52: TCP-IP

¿ Q ué significa que TCP / IP este orientado a la c o nexión? Una conexión son dos pares dirección IP:puerto.No puede haber dos conexiones iguales en un mismo instante en toda la Red. Aunque bien es posible que un mismo host tenga dos conexiones distintas y simultáneas utilizando un mismo puerto. El protocolo TCP utiliza el concepto de conexión para identificar las transmisiones. En el siguiente ejemplo se han creado tres conexiones. Las dosprimeras son al mismo servidor Web (puerto 80) y la tercera a un servidor de FTP (puerto 21).

Host 1 Host 2194.35.133.5:1256 135.22.8.165:80184.42.15.16:1305 135.22.8.165:80184.42.15.16:1323 135.22.10.15:21

Para que se pueda crear una conexión, el extremo del servidor debe hacer una apertura pasiva del puerto(escuchar su puerto y quedar a la espera de conexiones) y el cliente, una apertura activa en el puerto del servidor(conectarse con el puerto de un determinado servidor).

Page 53: TCP-IP

El comando NetStat muestra las conexiones abiertas en un ordenador, así como estadísticas de los distintosprotocolos de Internet.

Veamos ahora el formato del segmento TCP: Ya hemos comentado que el flujo de bytes que produce una determinada aplicación se divide en uno o más segmentos TCP para su transmisión. Cada uno de estos segmentos viaja en el campo de datos de un datagrama IP. Para facilitar el control de flujo de la información los bytes de laaplicación se numeran. De esta manera, cada segmento indica en su cabecera el primer Byte que transporta. Lasconfirmaciones o acuses de recibo (ACK) representan el siguiente Byte que se espera recibir (y no el número de segmento recibido, ya que éste no existe).

0 10 20 300 1 2 3 4 5 6 7 8 9 0 1 2 3 3 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

Puerto TCP origen Puerto TCP destinoNúmero de secuencia

Número de acuse de reciboHLEN Reservado Bits código Ventana

Suma de verificación Puntero de urgenciaOpciones (si las hay) Relleno

Datos...

Puerto fuente (16 bits). Puerto de la máquina origen. Al igual que el puerto destino esnecesario para identificar la conexión actual.

Puerto destino (16 bits). Puerto de la máquina destino.

Número de secuencia (32 bits). Indica el número de secuencia del primer Byte que trasporta el segmento.

Número de acuse de recibo (32 bits). Indica el número de secuencia del siguiente Byte que se espera recibir. Con este campo se indica al otro extremo de la conexión que los bytes anteriores se han recibido correctamente.

HLEN (4 bits). Longitud de la cabecera medida en múltiplos de 32 bits (4 bytes). El valor mínimo de este campo es 5, que corresponde a un segmento sin datos (20 bytes).

Reservado (6 bits). Bits reservados para un posible uso futuro.

Bits de código o indicadores (6 bits). Los bits de código determinan el propósito y contenido del segmento. A continuación se explica el significado de cada uno de estos bits (mostrados de izquierda a derecha) si está a 1.

Page 54: TCP-IP

URG. El campo Puntero de urgencia contiene información válida.

ACK. El campo Número de acuse de recibo contiene información válida, es decir, el segmento actual lleva un ACK. Observemos que un mismo segmento puede transportar los datos de un sentido y las confirmaciones del otro sentido de la comunicación.

PSH. La aplicación ha solicitado una operación push (enviar los datos existentes en la memoria temporal sin esperar a completar el segmento).

RST. Interrupción de la conexión actual.

SYN. Sincronización de los números de secuencia. Se utiliza al crear una conexión para indicar al otro extremo cual va a ser el primer número de secuencia con el que va a comenzar a transmitir (veremos que no tiene porqué ser el cero).

FIN. Indica al otro extremo que la aplicación ya no tiene más datos para enviar. Se utiliza para solicitar el cierre de la conexión actual.

Ventana (16 bits). Número de bytes que el emisor del segmento está dispuesto a aceptar por parte del destino.

Suma de verificación (24 bits). Suma de comprobación de errores del segmento actual.Para su cálculo se utiliza una pseudo-cabecera que también incluye las direcciones IPorigen y destino.

Puntero de urgencia (8 bits). Se utiliza cuando se están enviando datos urgentes que tienen preferencia sobre todos los demás e indica el siguiente Byte del campo Datos que sigue a los datos urgentes. Esto le permite al destino identificar donde terminan los datos urgentes. Nótese que un mismo segmento puede contener tanto datos urgentes (al principio) como normales (después de los urgentes).

Opciones (variable). Si está presente únicamente se define una opción: el tamaño máximo de segmento que será aceptado.

Relleno. Se utiliza para que la longitud de la cabecera sea múltiplo de 32 bits.

Datos. Información que envía la aplicación.

Page 55: TCP-IP

Establ e c i m i e n to y ci e rre de u n a c o n e xión TCP

Antes de transmitir cualquier información utilizando el protocolo TCP es necesario abrir una conexión. Unextremo hace una apertura pasiva y el otro, una apertura activa. El mecanismo utilizado para establecer una conexión consta de tres vías. La máquina que quiere iniciar la conexión hace una apertura activa enviando al otroextremo un mensaje que tenga el BIT SYN activado. Le informa además del primer número de secuencia queutilizará para enviar sus mensajes.

1. La máquina receptora (un servidor generalmente) recibe el segmento con el BIT SYN activado y devuelve la correspondiente confirmación. Si desea abrir la conexión, activa el BIT SYN del segmento e informa de su primer número de secuencia. Deja abierta la conexión por su extremo.

2. La primera máquina recibe el segmento y envía su confirmación. A partir de este momento puede enviar datos al otro extremo. Abre la conexión por su extremo.

3. La máquina receptora recibe la confirmación y entiende que el otro extremo ha abierto ya su conexión. A partir de este momento puede enviar ella también datos. La conexión ha quedado abierta en los dos sentidos.

Observamos que son necesarios 3 segmentos para que ambas máquinas abran sus conexiones y sepan que la otra también está preparada. Además se utilizan números de secuencia distintos para cada sentido de la comunicación. Como hemos visto el primer número para cada sentido se acuerda al establecer la comunicación. Cada extremo se inventa un número aleatorio y envía éste como inicio de secuencia. Observamos que los números de secuencia no comienzan entonces en el cero. ¿Por qué se procede así? Uno de los motivos es para evitar conflictos: supongamos que la conexión en un ordenador se interrumpe nada más empezar y se crea una nueva. Si ambas han empezado en el cero es posible que el receptor entienda que la segunda conexión es una continuación de la primera (si utilizan los mismos puertos).

Page 56: TCP-IP

Ahora vayamos a como TCP/IP cierra una conexión. Cuando una aplicación ya no tiene más datos quetransferir, el procedimiento normal es cerrar la conexión utilizando una variación del mecanismo de 3 víasexplicado anteriormente.

El mecanismo de cierre es algo más complicado que el de establecimiento de conexión debido a que las conexiones son full-duplex y es necesario cerrar cada uno de los dos sentidos de forma independiente.

1. La máquina que ya no tiene más datos que transferir, envía un segmento con el BIT FIN activado y cierra el sentido de envío. Sin embargo, el sentido de recepción de la conexión sigue todavía abierto.

2. La máquina receptora recibe el segmento con el BIT FIN activado y devuelve la correspondiente confirmación. Pero no cierra inmediatamente el otro sentido de la conexión sino que informa a la aplicación de la petición de cierre. Aquí se produce un lapso de tiempo hasta que la aplicación decide cerrar el otro sentido de la conexión.

3. La primera máquina recibe el segmento ACK.

4. Cuando la máquina receptora toma la decisión de cerrar el otro sentido de la comunicación, envía un segmento con el BIT FIN activado y cierra la conexión.

5. La primera máquina recibe el segmento FIN y envía el correspondiente ACK. Observemos que aunque haya cerrado su sentido de la conexión sigue devolviendo las confirmaciones.

6. La máquina receptora recibe el segmento ACK.