Está en la página 1de 14

Laboratorio de Telemtica

Prctica 2
Introduccin a las redes IP. Encaminamiento IP, Algoritmo de encaminamiento, TCP, UDP

Profesor: Ing. Ricardo Ramrez Rivera (ricardo.ramirez@solticom.com)

Laboratorio de Telemtica

Prctica 1. Introduccin a las redes IP. Ethernet conmutada

1.6 Encaminamiento IP
1.6.1 Introduccin
La funcin ms importante de la capa IP es el encaminamiento de datagramas extremo a extremo a travs de la red virtual. Por tanto esta funcin proporciona los mecanismos necesarios para interconectar distintas redes fsicas. La formacin de la red virtual que conecta mltiples redes se consigue por medio de unos hosts especiales denominados "routers". Es importante distinguir entre un hub, un puente, un router y una pasarela.

El hub interconecta segmentos de LAN a nivel de interfaz de red y enva tramas entre ellos. El hub sirve como prolongacin del cable fsico que conecta las mquinas de la LAN y su nica funcin es difundir la seal que llega por un cierto puerto (entrada) al resto de puertos. Los hubs pueden ser pasivos (si no amplifican las seales recibidas por sus puertos) o activos (si las amplifican). El conmutador (switch) es un dispositivo parecido al hub pero en el que se realiza conmutacin entre sus diferentes puertos, es decir, conmuta los paquetes observando sus direcciones fsicas origen/destino. Un puente (bridge) interconecta segmentos de LAN a nivel de interfaz de red y enva tramas entre ellos. Un puente realiza la funcin de retransmisin MAC (Medium Access Control) y es independiente de cualquier capa superior (incluyendo LLC). Proporciona, si se necesita, conversin de protocolos a nivel MAC. Un puente es transparente para IP. Es decir, cuando un host enva un datagrama a otro host en una red con el que se conecta a travs de un puente, enva el datagrama al host y el datagrama cruza el puente sin que el emisor se d cuenta. El puente es capaz de aprender las direcciones hardware de las mquinas que tiene en cada puerto y aislar el trfico y las colisiones de cada tramo LAN. Un router interconecta redes fsicas diferentes a nivel de la capa de red y encamina paquetes entre ellas. El router debe comprender la estructura de direccionamiento asociada con los protocolos que soporta (IP en nuestro caso) y debe elegir las mejores rutas de transmisin as como tamaos ptimos para los datagramas realizando fragmentacin si lo considera oportuno. La pasarela (gateway) interconecta redes a niveles superiores que los puentes y los routers. Una pasarela suele soportar el mapeado de direcciones de una red a otra, as como la transformacin de datos entre distintos entornos para conseguir conectividad entre los extremos de la comunicacin. Las pasarelas tpicamente proporcionan conectividad de dos redes para un subconjunto de protocolos de aplicacin soportados en cada una de ellas. Una pasarela es opaca para IP. Es decir, un host no puede enviar un datagrama IP a travs de una pasarela: slo puede enviarlo a la pasarela. La pasarela se ocupa de transmitirlo a la otra red con la informacin de los protocolos de alto nivel que vaya en l. Estrechamente ligado al concepto de pasarela, est el de cortafuegos (firewall), que se usa para restringir la circulacin de datagramas entre redes por motivos de seguridad.

DOCENTE : Ing. RICARDO RAMIREZ, Esp. En Diseo y Construccin de Soluciones Telemticas

Laboratorio de Telemtica

Prctica 1. Introduccin a las redes IP. Ethernet conmutada

1.6.2 Entrega directa e indirecta


El encaminamiento IP se puede dividir en dos partes: entrega directa y entrega indirecta: La entrega directa es la transmisin de un datagrama desde el host origen hasta el host destino a travs de una sola red fsica, dicho de otra forma, dos hosts slo pueden comunicarse mediante entrega directa si ambos estn conectados directamente a la misma red fsica (por ejemplo, una sola red Ethernet). Bsicamente en la entrega directa el emisor encapsula el datagrama dentro de una trama fsica, transforma la direccin IP destino en una direccin fsica y enva la trama resultante al destino a travs del driver del dispositivo hardware correspondiente. La entrega indirecta es necesaria cuando el host destino no est conectado directamente a la red del origen, lo que implica que el datagrama deber atravesar varias redes fsicas, y para ello es necesario atravesar routers. La entrega indirecta es ms compleja ya que el host origen ha de identificar al router al que debe entregar el datagrama, el primer router debe identificar cul ser el siguiente router al que debe enviar el datagrama, esto tambin se denomina identificar el siguiente salto. La comunicacin entre dos routers consecutivos de la ruta se realiza siempre mediante entrega directa, es decir, un determinado router de la ruta y el router del siguiente salto deben estar conectados a la misma red fsica, sino no es posible su comunicacin. A su vez, el ltimo router de la ruta que sigue el datagrama debe estar conectado a la misma red fsica que el host destino.

Figura 1.10: Entrega directa e indirecta El host origen averigua si debe realizar entrega directa o no, es decir, si el host destino est conectado o no directamente a su red fsica mediante el prefijo de red. El host origen extrae el nmero de red de la direccin IP del destino y la compara con el nmero de red de su propia direccin IP. Si ambas se corresponden significa que se puede utilizar entrega directa, sino se ha de utilizar entrega indirecta.

DOCENTE : Ing. RICARDO RAMIREZ, Esp. En Diseo y Construccin de Soluciones Telemticas

Laboratorio de Telemtica

Prctica 1. Introduccin a las redes IP. Ethernet conmutada

1.6.3 El algoritmo de encaminamiento


El mtodo utilizado por un router o un host para averiguar la siguiente mquina a la que debe enviar un determinado datagrama se denomina genricamente como el algoritmo de encaminamiento. La gran mayora de algoritmos de encaminamiento utilizan tablas de encaminamiento. En las tablas de encaminamiento de cada host o router se almacena informacin sobre los posibles destinos y sobre cmo alcanzarlos. La informacin que contienen las tablas de encaminamiento debe ser mnima, ya que si cada tabla de encaminamiento contuviera informacin sobre cada posible direccin destino sera imposible mantener actualizadas las tablas. Adems, las mquinas no tendran suficiente espacio ni capacidad de proceso para manejarlas. Se trata de minimizar la informacin que deben guardar las tablas aplicando un esquema de ocultacin de informacin global, manteniendo slo la informacin local mnima necesaria. Afortunadamente el esquema de direccionamiento IP permite realizar esto de forma fcil: como se mencion en la seccin 1.2, la direccin IP se divide en nmero de red y en nmero de host. Mediante este esquema es posible almacenar nmeros de red en las tablas de encaminamiento en lugar de direcciones IP completas. De esta forma se ocultan los detalles de qu hosts y cmo estn conectados a las diferentes redes y se minimiza el tamao de las tablas de encaminamiento. El contenido de las tablas de encaminamiento suelen ser pares del tipo <N,R>. Donde N es un nmero de red y R es la direccin IP del router en el siguiente salto para alcanzar dicha red (por tanto el router debe estar conectado a la misma red fsica). Para simplificar ms las tablas de encaminamiento aparece el concepto de ruta por defecto. La ruta por defecto contiene la direccin del router del siguiente salto al que se deben enviar los datagramas (tambin denominado router por defecto) si tras recorrer la tabla de encaminamiento no se encontr ninguna ruta especfica para el nmero de red al que va dirigido el datagrama. Aunque se ha comentado la conveniencia de encaminar en base al nmero de red destino, la tabla de encaminamiento permite especificar una ruta especial para un host en particular. De esta forma el algoritmo bsico de encaminamiento de un datagrama IP es el siguiente: 1. Extraer la direccin IP destino D. 2. Computar el prefijo de red N con la mscara local. 3. Si N se corresponde con alguna red fsica a la que estamos conectados se realiza entrega directa (realizando ARP). 4. Si no se puede realizar entrega directa, se comprueba si hay ruta especfica para D y en caso afirmativo se enva el datagrama al router del salto siguiente especificado en la tabla. 5. Si no hay ruta especfica, se comprueba si hay una ruta para la red N y en caso afirmativo se enva el datagrama al router del salto siguiente especificado en la tabla. 6. Si no hay ruta para N, se enva el datagrama al router por defecto especificado en la tabla. 7. Si no hay ruta por defecto y el software de encaminamiento IP ha llegado a este punto se produce un error (que se puede reportar mediante ICMP). Como conclusiones importantes del algoritmo de encaminamiento IP podemos destacar que: 1. En la mayor parte de implementaciones, el trfico dirigido a una determinada red desde un host origen va a seguir el mismo camino aunque existan diversas posibilidades. 2. Slo el ltimo router de la ruta puede determinar si el host destino est disponible (estas situaciones se reportan mediante ICMP). Adems tambin necesitamos reportes de los routers intermedios si sucede algn problema.
DOCENTE : Ing. RICARDO RAMIREZ, Esp. En Diseo y Construccin de Soluciones Telemticas

Laboratorio de Telemtica

Prctica 1. Introduccin a las redes IP. Ethernet conmutada

3. Los datagramas que viajen de A a B pueden seguir rutas diferentes a los datagramas que viajen de B a A. La figura 1.11 muestra 4 redes interconectados a travs de 2 routers y la tabla de rutas del router R1. Es importante entender que a excepcin de la disminucin del campo TTL el software de encaminamiento no modifica la cabecera del datagrama original. En particular, las direcciones IP origen y destino permanecen inalteradas durante toda la ruta5. Por lo que respecta a los datagramas entrantes: Cuando un datagrama llega a un host el driver del dispositivo de red lo entrega al software IP para su procesamiento. El software IP determina si el datagrama es para el propio host en cuyo caso lo pasa al software del protocolo de nivel alto apropiado. El datagrama se descarta si no es para el propio host. En el caso de los routers, estos deben encaminar el datagrama si no va dirigido hacia ellos. Decidir si una mquina es o no la destinataria de un datagrama no es una tarea tan trivial como a simple vista pueda parecer. En primer lugar pueden haber muchos interfaces de red cada uno de ellos con su correspondiente direccin IP, se debe comprobar la correspondiente identificacin de subred (si la red est dividida) y adems se deben reconocer los mensajes de broadcast y los de multicast.

Figura 1.11: Ejemplo de encaminamiento

DOCENTE : Ing. RICARDO RAMIREZ, Esp. En Diseo y Construccin de Soluciones Telemticas

Laboratorio de Telemtica

Prctica 1. Introduccin a las redes IP. Ethernet conmutada

2 Nivel de Transporte: los protocolos TCP (Transmission Control Protocol) y UDP (User Datagram Protocol)
2.1 Introduccin
Dos de los protocolos de transporte estandarizados en la torre TCP/IP son TCP (Transmission Control Protocol) y UDP (User Datagram Protocol). Previamente a describir TCP y UDP, veremos una clasificacin de los protocolos en cuanto a cmo establecen la conexin y a su fiabilidad. Un protocolo puede clasificarse en funcin de cmo realiza la conexin en: Orientado a conexin. En este caso, para realizar un intercambio de informacin entre dos entidades se pueden distinguir las siguientes fases: 1. Establecimiento de la conexin 2. Intercambio de informacin 3. Cierre de la conexin Una de las caractersticas de un servicio orientado a conexin es que una vez establecida la conexin, los mensajes llegan al receptor en el mismo orden en que fueron enviados por el emisor. Un ejemplo de este procedimiento es la comunicacin a travs del telfono: 1. Establecimiento de la conexin: La persona llamante, inicia el establecimiento de la conexin descolgando el telfono y marcando el nmero del abonado llamado. El abonado llamado descuelga el telfono y la conexin ya est realizada. 2. Intercambio de informacin: Ambos abonados, llamante y llamado, conversan a travs del telfono. 3. Cierre de la conexin: Los abonados cuelgan el telfono dando por finalizada la llamada. No orientado a conexin. En este caso, el intercambio de informacin no necesita de las fases de establecimiento y cierre de la conexin. La entidad transmisora enva el mensaje sin que la receptora sepa que va a recibir ese mensaje. Un ejemplo de un servicio no orientado a conexin es el sistema postal. En este caso, el remitente enva una carta al destinatario. El destinatario sabe que el remitente le envi una carta en el momento en que la recibe. Otro parmetro que se utiliza para clasificar un protocolo es la fiabilidad del protocolo en cuanto a la entrega de la informacin. Se dice que un protocolo es fiable cuando implementa los mecanismos necesarios para que la informacin que transporta llegue al otro extremo libre de errores. Se dice que un protocolo es no fiable si no nos asegura la entrega de los mensajes al extremo receptor. Como ejemplo, Internet Protocol (IP) es un protocolo no orientado a conexin y no fiable. Es no orientado a conexin porque un datagrama IP se entrega a la red sin un establecimiento previo de la conexin y es no fiable porque no incorpora ningn mecanismo que nos informe de si el datagrama ha sido entregado al extremo receptor con xito o si no ha podido ser entregado. Dado que IP es un protocolo no orientado a conexin, no fiable, los protocolos que estn por encima de IP (Nivel de Transporte) se van a tener que enfrentar con las siguientes situaciones de error: 1. Prdida de una trama 2. Llegada de una trama fuera de orden 3. Duplicacin de una trama 4. Modificacin de los datos de la trama
DOCENTE : Ing. RICARDO RAMIREZ, Esp. En Diseo y Construccin de Soluciones Telemticas

Laboratorio de Telemtica

Prctica 1. Introduccin a las redes IP. Ethernet conmutada

TCP (Transmission Control Protocol) es un protocolo orientado a conexin y fiable. Esto nos indica que TCP va a tener que resolver las cuatro posibles situaciones de error que hemos visto para proporcionar un servicio orientado a conexin y fiable, a sus propios usuarios (por usuarios se entiende aquellos protocolos o aplicaciones que utilicen TCP como protocolo de transporte). UDP (User Datagram Protocol) es un protocolo no orientado a conexin y no fiable. Si una aplicacin desea un servicio fiable, o bien utiliza TCP o si utiliza UDP deber ser la aplicacin quien implemente los mecanismos de fiabilidad. Obsrvese que el uso de TCP o UDP depender de varios aspectos. Entre ellos, y adems de la fiabilidad, la eficiencia: Supongamos que vamos a realizar una conferencia telefnica durante la que estaremos hablando 10 minutos. El tiempo invertido en marcar el telfono del abonado llamado y que ste descuelgue es de 30 segundos y el tiempo de "liberar la llamada" (despedirse y colgar el telfono) de 5 segundos. El tiempo total invertido para completar toda la llamada ser de 10*60+30+5=635 segundos y el tiempo invertido en el intercambio de informacin son 600 segundos. La eficiencia obtenida es de 600/635, 94.5%. Si el tiempo invertido en el intercambio de informacin hubiese sido de 5 segundos (decir solo una palabra) la eficiencia hubiera bajado al 12.5%. Un protocolo orientado a conexin (como TCP) utiliza un cierto tiempo en establecer y liberar la conexin. La fiabilidad de un protocolo puede ser un factor determinante, pero no siempre. Cuando se transmite voz, es ms importante que las muestras de voz estn disponibles en los instantes requeridos en el receptor, que el hecho de que haya alguna muestra errnea, perdida o duplicada. Por esta razn, la mayora de sistemas de transmisin multimedia sobre IP utilizan el protocolo UDP. Un ejemplo de protocolo no orientado a conexin y no fiable es el sistema postal de correos. En este sistema el remitente escribe una carta que posteriormente encapsula (introduce) en un sobre con la direccin del destinatario. Dicho sobre se entrega al servicio postal de correos, cuya misin es hacer llegar el sobre a la direccin del destinatario. El destinatario, a priori, no sabe que el remitente ha entregado el sobre al servicio postal de correos. Si durante el trasporte del sobre, ste se pierde, ni el destinatario, ni el remitente sern informados de este hecho (no fiable). Si el remitente desea enviar otra carta al mismo destinatario, debera introducirla de nuevo en un sobre con la direccin pertinente y entregarlo al servicio postal de correos. Si el transporte de este segundo sobre se realiza de forma ms rpida que el primero (por ejemplo por avin), es posible que los sobres (y las cartas) lleguen desordenados (problema inherente a un servicio no orientado a conexin). Una de las caractersticas de un servicio no orientado a conexin es que las unidades de datos (los sobres) se manejan de forma independiente aunque la informacin transportada (las cartas) formen parte de una misma comunicacin. Por esta razn, cada sobre debe llevar la direccin del destinatario. Obsrvese que en el ejemplo de la llamada telefnica (servicio orientado a conexin), la direccin (nmero de telfono del abonado receptor) slo se proporciona en el establecimiento de la conexin. No es difcil notar, que a pesar de tener un servicio no orientado a conexin y no fiable, nosotros (el escritor de cartas) puede utilizar mecanismos para obtener, finalmente, un servicio fiable. Estos mecanismos seran: 1. Para solucionar el problema de la fiabilidad, el remitente de la carta incluye una postdata pidiendo al destinatario una confirmacin antes de 14 das. El remitente est suponiendo que en el peor de los casos, el servicio postal de correos no tardar ms de 7 das en entregar la carta al remitente y 7 das ms en recibir la
DOCENTE : Ing. RICARDO RAMIREZ, Esp. En Diseo y Construccin de Soluciones Telemticas

Laboratorio de Telemtica

Prctica 1. Introduccin a las redes IP. Ethernet conmutada

confirmacin. Si en 14 das no ha recibido confirmacin puede suponer que la carta que envo o la confirmacin se ha perdido. En este caso vuelve a enviar la carta. 2. Para solucionar el problema de ordenamiento, las cartas se numeran de forma consecutiva. De esta forma el remitente sabe leerlas de forma ordenada o bien detectar qu carta se ha perdido. Finalmente, el siguiente ejemplo, muestra un servicio no orientado a conexin y fiable. Este caso es el de las empresas de transporte de paquetes (estilo packet express). Se deja como ejercicio al lector determinar porque es un servicio no orientado a conexin y fiable.

2.2 Puertos y sockets


Para explicar qu son los puertos y los sockets lo realizaremos a travs de un ejemplo. Supongamos que tenemos en un misma mquina (Maq-A) varios procesos comunicndose simultneamente con otros tantos procesos en diversas maquinas (Maq-B, Maq-C ...). Cada vez que un datagrama IP llega a Maq-A, el nivel IP extrae la informacin y la pasa al nivel de transporte (UDP TCP). El nivel de transporte, realizar las funciones especficas segn sea UDP o TCP y posteriormente debe entregar la informacin al proceso al cual va dirigida. El nivel de transporte en la torre TCP/IP, utiliza el concepto de puerto para demultiplexar la informacin recibida y entregarla a la aplicacin correspondiente. El puerto es un nmero de 16 bits sin signo (0-65535) que se asigna a un proceso que quiere comunicarse a travs de TCP/IP y ese nmero de puerto va encapsulado en los paquetes TCP y UDP. La Figura 4.1 muestra un ejemplo de lo que se acaba de describir. Un socket identifica de forma univoca una conexin entre dos procesos en TCP/IP. Refirindonos a la Figura 2.1, la conexin entre los procesos a y a est identificada por el socket (IP1, P1, IP2, P4) , es decir, direccin IP y puerto de origen y direccin IP y puerto de destino. Obsrvese que el nmero de puerto es local a la mquina; as dos procesos en mquinas diferentes pueden tener el mismo nmero de puerto.

Figura 2.1: Puertos y sockets

DOCENTE : Ing. RICARDO RAMIREZ, Esp. En Diseo y Construccin de Soluciones Telemticas

Laboratorio de Telemtica

Prctica 1. Introduccin a las redes IP. Ethernet conmutada

2.3 Arquitectura cliente-servidor


En el mundo de TCP/IP las comunicaciones entre procesos siguen una arquitectura denominada clienteservidor. La idea es que un proceso acta como un servidor (proporciona servicios a los clientes) y espera que algn cliente se conecte a l en demanda de un servicio. Otro proceso acta como cliente y se conecta al servidor para obtener un servicio.

Figura 2.2: Arquitectura cliente servidor Un ejemplo del funcionamiento es la conexin desde un navegador a un servidor de WEB. El servidor de WEB debe estar esperando que algn navegador se conecte a l con el fin de proporcionar una pgina HTML. Desde el punto de vista del usuario, primero arranca el navegador, luego se realiza la conexin y cuando el usuario se ha cansado de navegar, cierra el navegador, mientras que el servidor de WEB contina esperando otras conexiones. La Figura 4.2 muestra el flujograma que describe este comportamiento. De esta arquitectura se deduce que un cliente debe conocer la IP y el puerto del servidor. Siguiendo con el ejemplo del navegador, si el usuario introduce la URL http://www.unizar.es, el navegador se conectar al puerto 80. Esto es debido a que hay una serie de puertos conocidos con el nombre de well known ports en los que se aconseja qu tipo de servicio deben proporcionar. As el puerto 21 es para el servidor de ftp, 23 es para el servidor de telnet, el 25 para el servidor de SMTP (servicio de correo electrnico), el 80 para el servidor de http, etc. Esto no significa que todos los servidores WEB escuchen en el puerto 80, ya que es potestad del administrador del sistema decidir qu puerto utilizar su servidor WEB. Sin embargo, la mayora de clientes tienen establecido un puerto por defecto para el servidor (como en el caso del navegador y el puerto 80), de forma que si se cambia el puerto de un servicio bien definido, slo se lograr confundir al cliente (tanto el cliente software como al usuario que est utilizando ese cliente). A modo de ejemplo, si se desea utilizar un navegador para conectarnos a un puerto diferente del de defecto (por ejemplo el 8080), la forma de introducir la URL es http://nombre_servidor:8080. Si el servidor de WEB de la UZ estuviese en el puerto 8080, la URL sera http://www.unizar.es:8080.

DOCENTE : Ing. RICARDO RAMIREZ, Esp. En Diseo y Construccin de Soluciones Telemticas

Laboratorio de Telemtica

Prctica 1. Introduccin a las redes IP. Ethernet conmutada

2.4 User Datagram Protocol (UDP)


Tal como se ha comentado UDP (User Datagram Protocol) es un protocolo no orientado a conexin y no fiable. La especificacin oficial de UDP se encuentra en el RFC768. El formato y los campos de un datagrama UDP se muestran en la Figura 4.3. El campo de longitud se refiere a la longitud total, en bytes, de la cabecera y los datos. La aplicacin que utiliza UDP, debe controlar el tamao del paquete UDP (la cantidad de bytes enviados en un mismo

Figura 2.3: Datagrama UDP paquete UDP) si quiere evitar que el nivel IP fragmente el paquete UDP porque se ha excedido el MTU (Maximum Transmission Unit) del medio fsico. Por ejemplo, si el medio fsico es una Ethernet con tramas Ethernet II, el campo de datos de la trama Ethernet tiene una longitud mxima de 1500 bytes. En este caso, la longitud mxima del datagrama IP encapsulado en una trama Ethernet sera de 1500 bytes. Si utilizamos UDP como protocolo de transporte, la cantidad de bytes de usuario (campo data del datagrama UDP) ser como mximo 1500-20-8=1472 bytes (a 1500 se le resta la cabecera IP, usualmente 20 bytes, y la cabecera UDP, 8 bytes). El checksum incluye tanto la cabecera UDP como el campo de datos, (recordemos que el checksum de la cabecera de IP solo incluye la cabecera IP y no los datos del datagrama IP). En UDP el clculo del checksum es opcional. Si el emisor no realiza el clculo del checksum, enva este campo con ceros. Si el emisor realiza el clculo del checksum y obtiene un valor 0, enva todo unos (65535) que es equivalente en aritmtica de complemento a uno. Si el emisor calcula el checksum y el receptor detecta un checksum errneo, el datagrama UDP se descarta silenciosamente (esta condicin de error no se indica ni al emisor ni a los protocolos de nivel superior del receptor).

2.5 Transmission Control Protocol (TCP)

TCP es un protocolo orientado a conexin, fiable. Especficamente, se dice que TCP proporciona un servicio de transporte de un flujo de bytes, orientado a conexin, fiable. El concepto de transporte de un flujo de bytes, indica que la aplicacin entrega a TCP los bytes que desea transmitir y que TCP no interpretar esos bytes, nicamente los har llegar a la aplicacin receptora en el orden en que se los entregaron. En otras palabras, si una aplicacin entrega 20 bytes a TCP, seguido de una entrega de 30 bytes, seguido de una entrega de 60 bytes, la aplicacin receptora no sabe cuntas entregas se hicieron al TCP, sino que puede ocurrir que al leer los bytes recibidos, lo haga en cinco lecturas de 22 bytes. TCP proporciona fiabilidad utilizando los siguientes mecanismos: Los datos de la aplicacin son fragmentados en lo que TCP considera que es el mejor tamao para ser transmitidos. Cuando TCP enva un segmento, inicia un temporizador, esperando que el otro extremo reconozca la recepcin correcta del segmento enviado. Si el 10

DOCENTE : Ing. RICARDO RAMIREZ, Esp. En Diseo y Construccin de Soluciones Telemticas

Laboratorio de Telemtica

Prctica 1. Introduccin a las redes IP. Ethernet conmutada

reconocimiento no ha sido recibido cuando el temporizador ya ha expirado, el extremo transmisor vuelve a enviar el mismo segmento. Cuando TCP recibe un segmento de datos, enva un reconocimiento al extremo que lo ha enviado. TCP incluye un checksum de la cabecera y los datos cuyo propsito es detectar cualquier modificacin de los datos en trnsito. Si el checksum recibido es incorrecto, el segmento TCP se descarta silenciosamente y no se reconoce. Se espera que el temporizador del TCP del extremo opuesto expire y se lo vuelva a enviar. Este reconocimiento se denomina ACK (acknowledge). Dado que los segmentos TCP viajan encapsulados en datagramas IP, y dado que los datagramas IP pueden llegar desordenados, los segmentos TCP pueden llegar desordenados. El TCP del extremo receptor reordena, si es necesario, los segmentos recibidos y entrega, a la aplicacin, los datos en el orden correcto. Dado que los datagramas IP pueden llegar duplicados, TCP debe descartar los segmentos TCP duplicados. TCP tambin proporciona control de flujo. Los extremos TCP tienen una cantidad finita de espacio de almacenamiento. El extremo TCP receptor indica al extremo TCP emisor cunto espacio de almacenamiento tiene para los datos recibidos. De esta forma se previene que un ordenador cuyo ritmo de generacin de datos es alto pueda superar la capacidad de recibir y procesar datos del ordenador receptor.

El sistema que utiliza TCP para proporcionar fiabilidad se engloba en los llamados protocolos de ventana deslizante.

2.5.1 Protocolos de ventana deslizante


La pregunta que nos hacemos es, cmo puede un protocolo proporcionar un servicio de transferencia fiable sobre un sistema de comunicaciones no fiable? Una de las tcnicas ms utilizadas es el ARQ (Automatic Repeat Request) o peticin de retransmisin automtica. En ARQ, el receptor informa al emisor del xito o fracaso de la ltima transmisin, a travs de una trama de reconocimiento. Los reconocimientos pueden ser positivos (reconocimiento de xito) y negativos (reconocimiento de errores en la trama recibida). No todos los protocolos utilizan simultneamente ambos tipos de reconocimiento. Por ejemplo TCP slo utiliza reconocimientos positivos y cuando hay errores no enva nada, utilizando temporizadores para las retransmisiones. En la Figura 2.4 se muestra la transmisin de dos tramas con reconocimiento. Este sistema se conoce con el nombre de Stop & Wait porque despus de enviar un paquete, el emisor debe parar de transmitir y esperar la recepcin del reconocimiento. Obsrvese que el tiempo efectivo utilizado para transmitir una trama es desde el inicio de la transmisin de la trama hasta que se recibe el reconocimiento. En este caso la eficiencia de transmisin es baja, puesto que el hecho de que el emisor deba esperar el reconocimiento le imposibilita para seguir transmitiendo.

DOCENTE : Ing. RICARDO RAMIREZ, Esp. En Diseo y Construccin de Soluciones Telemticas

11

Laboratorio de Telemtica

Prctica 1. Introduccin a las redes IP. Ethernet conmutada

Figura 2.4: Stop&Wait Supongamos que modificamos el algoritmo de manera que el emisor pueda tener como mximo F tramas no reconocidas. El emisor podr enviar como mximo F tramas sin recibir reconocimiento de ellas. F se denomina el tamao de la ventana y en cuanto reciba el reconocimiento de la primera trama (ACK(1)), podr enviar una nueva trama, y as sucesivamente. Este es el caso representado en la Figura 4.5, para un tamao de ventana F=6.

Figura 2.5: Ventana deslizante El hecho de utilizar ventana deslizante implica que las tramas de informacin deben ir numeradas para que los reconocimientos indiquen mediante este nmero qu trama ha sido recibida correcta o incorrectamente. Es importante destacar que en un sistema de ventana deslizante, no es necesario enviar una trama de reconocimiento por cada trama de datos. Se puede reconocer con una sola trama de reconocimiento varias tramas de datos teniendo en cuenta que si se han enviado 3 tramas de datos y se reconoce la trama 3, entonces, de forma automtica, quedan reconocidas la 1 y la 2. Es habitual que en una comunicacin
DOCENTE : Ing. RICARDO RAMIREZ, Esp. En Diseo y Construccin de Soluciones Telemticas

12

Laboratorio de Telemtica

Prctica 1. Introduccin a las redes IP. Ethernet conmutada

entre dos ordenadores, cada uno de ellos acte simultneamente de emisor y receptor, ya que la informacin suele fluir tanto en un sentido como en el otro. Para aumentar la eficiencia, el paquete de informacin incluye un campo utilizado para reconocimiento, evitndose el tener que enviar tramas de reconocimiento y de informacin diferentes cuando ambas tramas viajan en el mismo sentido. A esta tcnica se le conoce con el nombre de piggybacking.

2.5.2 TCP y la ventana deslizante


TCP utiliza un mecanismo especializado de ventana deslizante con objeto de mejorar la eficiencia de transmisin y realizar un control de flujo. Como se ha comentado anteriormente, TCP ve los datos de usuario como un flujo de bytes que divide en segmentos para ser transmitidos. Por esta razn TCP no numera los segmentos sino los octetos transmitidos y a su vez, los reconocimientos reconocen octetos recibidos y no segmentos recibidos. En TCP el tamao de ventana indica el nmero de octetos que pueden ser enviados y el receptor indica al emisor, en cada trama enviada, qu tamao de ventana tiene disponible para recibir el siguiente segmento, realizando, de esta manera, el control de flujo. Si se indica un tamao de ventana 0, el emisor deja de enviar segmentos hasta que recibe otro paquete indicando un tamao de ventana distinto de 0.

2.5.3 El segmento TCP


La Figura 2.6 muestra cmo es el segmento TCP.

Figura 2.6: Segmento TCP Los primeros 32 bits indican los puertos origen y destino. Los siguientes 32 bits son el nmero de secuencia. El nmero de secuencia identifica el byte del flujo de datos que est siendo enviado y que ocupa la primera posicin en el campo de datos del segmento. El primer byte de un flujo en un segmento TCP no lleva el nmero 1 como nmero de secuencia, sino que se elige un nmero aleatorio (Inital Sequence Number) en cada conexin realizada y este nmero representa el nmero de secuencia del primer byte a transmitir durante esa conexin. Si el ISN de una conexin es el 1415531521, el primer byte estara identificado por este mismo nmero y el segundo sera 1415531521 + 1, y as sucesivamente. De esta forma si un segmento TCP llega a una conexin equivocada (cosa
DOCENTE : Ing. RICARDO RAMIREZ, Esp. En Diseo y Construccin de Soluciones Telemticas

13

Laboratorio de Telemtica

Prctica 1. Introduccin a las redes IP. Ethernet conmutada

bastante inverosmil), los nmeros de secuencia de ambas conexiones no podran a llegar a confundirse nunca, ya que ambas conexiones utilizaron un ISN muy diferente y los datos que llegaron a la conexin equivocada nunca sern pasados a la aplicacin equivocada (el TCP generara un error al recibir un nmero de secuencia no esperado). El campo del nmero de reconocimiento (acknowledge number) se utiliza para almacenar el nmero del siguiente byte que se espera recibir. Este campo slo se decodifica si el flag ACK est activado. Si se recibi un paquete de datos con el nmero de secuencia 1415531521 y con 100 bytes de datos (desde el 1415531521 hasta el 1415531620), el segmento TCP de respuesta llevara activado el flag ACK y el nmero de reconocimiento sera el 1415531621, puesto que espera recibir el siguiente al 1415531620. El campo hdr len (Header Length) indica la longitud de la cabecera que puede llevar opciones haciendo que la longitud de la cabecera vare. A continuacin vienen 6 bits reservados (no se utilizan) y 6 bits que actan de flags: urg: Urgent Pointer vlido ack: Nmero de reconocimiento vlido psh: Segmento con datos de usuario. Pasarlos a la aplicacin tan pronto como sea posible. rst: Reinicio de la conexin syn: Inicio de conexin fin: Final de conexin

El campo window size es de 16 bits e indica el tamao de ventana en bytes. Los 16 bits siguientes se utilizan para el checksum y los siguientes 16 bits para indicar un urgent pointer. Existen varias opciones en TCP, y la ms utilizada es el MSS (Maximum Segment Size). Cada extremo de una conexin indica al otro cul es el tamao mximo de segmento que desea recibir. Este valor se especifica dentro del campo de opciones al inicio de la conexin.

DOCENTE : Ing. RICARDO RAMIREZ, Esp. En Diseo y Construccin de Soluciones Telemticas

14

También podría gustarte