You are on page 1of 9

Planificacin y Administracin de Redes

TCP-UDP. Capa de transporte

Introduccin Las aplicaciones como clientes de correo electrnico, exploradores Web y clientes de mensajera instantnea permiten que las personas utilicen las computadoras y las redes para enviar mensajes y buscar informacin. Los datos de cada una de estas aplicaciones se empaquetan, transportan y entregan al daemon de servidor o aplicacin adecuados en el dispositivo de destino. La capa de Transporte acepta los datos de la capa de Aplicacin y los prepara para el direccionamiento en la capa de Red. La capa de Transporte es responsable de la transferencia de extremo a extremo general de los datos de aplicacin. La capa de Transporte permite la segmentacin de datos y brinda el control necesario para reensamblar las partes dentro de las distintas cadenas de comunicacin. Las responsabilidades principales que debe cumplir son: Control de flujo A medida que la capa de transporte enva segmentos de datos, trata de garantizar que los datos no se pierdan. Un host receptor que no puede procesar los datos tan rpidamente como llegan puede provocar una prdida de datos. El host receptor se ve obligado a descartar los datos. El control de flujo evita el problema que se produce cuando un host que realiza la transmisin inunda los buffers del host destinatario. TCP suministra el mecanismo de control de flujo al permitir que el host emisor y el receptor se comuniquen. Luego los dos hosts establecen velocidades de transferencia de datos que sean aceptables para ambos. Los hosts de la red cuentan con recursos limitados, como memoria o ancho de banda. Cuando la capa de Transporte advierte que estos recursos estn sobrecargados, algunos protocolos pueden solicitar que la aplicacin que enva reduzca la velocidad del flujo de datos. Esto se lleva a cabo en la capa de Transporte regulando la cantidad de datos que el origen transmite como grupo. El control del flujo puede prevenir la prdida de segmentos en la red y evitar la necesidad de retransmisin Seguimiento de Conversaciones individuales Cualquier host puede tener mltiples aplicaciones que se estn comunicando a travs de la red. Cada una de estas aplicaciones se comunicar con una o ms aplicaciones en hosts remotos. Es responsabilidad de la capa de Transporte controlar estas comunicaciones. Ya que las redes proveen rutas mltiples que pueden poseer distintos tiempos de transmisin, los datos pueden llegar en el orden incorrecto. Al numerar y secuenciar los segmentos, la capa de Transporte puede asegurar que los mismos se reensamblen en el orden adecuado. Segmentacin de datos Debido a que cada aplicacin genera una cadena de datos para enviar a una aplicacin remota, estos datos deben prepararse para ser enviados por los medios en partes manejables. Los protocolos de la capa de Transporte describen los servicios que segmentan estos datos de la capa de Aplicacin. Cada seccin de datos de aplicacin requiere que se agreguen encabezados en la capa de Transporte para indicar la comunicacin a la cual est asociada. La segmentacin de los datos proporciona los medios para enviar y recibir datos cuando se ejecutan varias aplicaciones de manera concurrente en una computadora. Sin segmentacin, slo una aplicacin, la corriente de vdeo por ejemplo, podra recibir datos. No se podran recibir correos electrnicos, chats ni mensajes instantneos ni visualizar pginas Web y ver un vdeo al mismo tiempo. Reensamble de segmentos En el host de recepcin, cada seccin de datos puede ser direccionada a la aplicacin adecuada. Adems, estas secciones de datos individuales tambin deben reconstruirse para generar una cadena completa de datos que sea til para la capa de Aplicacin. Identificacin de las aplicaciones

Planificacin y Administracin de Redes

TCP-UDP. Capa de transporte

Para poder transferir las cadenas de datos a las aplicaciones adecuadas, la capa de Transporte debe identificar la aplicacin de destino. Para lograr esto, la capa de Transporte asigna un identificador a la aplicacin. Los protocolos TCP/IP denominan a este identificador nmero de puerto. A todos los procesos de software que requieran acceder a la red se les asigna un nmero de puerto exclusivo en ese host. Este nmero de puerto se utiliza en el encabezado de la capa de Transporte para indicar con qu aplicacin est asociada esa seccin de datos. La capa de Transporte acepta datos de distintas conversaciones y los transfiere a las capas inferiores para ser enviadas a travs del medio. Las aplicaciones no necesitan conocer los detalles de operacin de la red en uso. Las aplicaciones generan datos que se envan desde una aplicacin a otra sin tener en cuenta el tipo de host destino, el tipo de medios sobre los que los datos deben viajar, el paso tomado por los datos, la congestin en un enlace o el tamao de la red. Diferentes protocolos de Transporte. Debido a que las distintas aplicaciones poseen distintos requerimientos, existen varios protocolos de la capa de Transporte. En algunos casos, todos los datos deben recibirse para ser utilizados por cualquiera de las mismas. En otros casos, una aplicacin puede tolerar cierta prdida de datos durante la transmisin a travs de la red. En las redes actuales, las aplicaciones con distintas necesidades de transporte pueden comunicarse en la misma red. Los distintos protocolos de la capa de Transporte poseen distintas reglas que permiten que los dispositivos gestionen los diversos requerimientos de datos. Las aplicaciones, como bases de datos, las pginas Web y los e-mails, requieren que todos los datos enviados lleguen al destino en su condicin original, de manera que los mismos sean tiles. Todos los datos perdidos pueden corromper una comunicacin y dejarla incompleta o ilegible. Por lo tanto, estas aplicaciones se disean para utilizar un protocolo de capa de Transporte que implemente la confiabilidad. El uso de recursos de red adicionales se considera necesario para estas aplicaciones. Los dos protocolos ms comunes de la capa de Transporte del conjunto de protocolos TCP/IP son el Protocolo de control de transmisin (TCP) y el Protocolos de datagramas de usuario (UDP). Ambos protocolos gestionan la comunicacin de mltiples aplicaciones. Las diferencias entre ellos son las funciones especficas que cada uno implementa. TCP TCP aade las funciones necesarias para prestar un servicio que permita que la comunicacin entre dos sistemas se efecte libre de errores, sin prdidas y con seguridad. Con el uso del protocolo TCP, las aplicaciones pueden comunicarse en forma segura (gracias al sistema de acuse de recibo del protocolo TCP) independientemente de las capas inferiores. Las mquinas de dicho entorno se comunican en modo en lnea, es decir, que la comunicacin se realiza en ambas direcciones. Para posibilitar la comunicacin y que funcionen bien todos los controles que la acompaan, los datos se agrupan; es decir, que se agrega un encabezado a los paquetes de datos que permitirn sincronizar las transmisiones y garantizar su recepcin. Otra funcin del TCP es la capacidad de controlar la velocidad de los datos usando su capacidad para emitir mensajes de tamao variable. Estos mensajes se llaman segmentos

UDP Permite el envo de datagramas a travs de la red sin que se haya establecido previamente una conexin, ya que el propio datagrama incorpora suficiente informacin de direccionamiento en su cabecera. Tampoco tiene confirmacin ni control de flujo, por lo que los paquetes pueden

Planificacin y Administracin de Redes

TCP-UDP. Capa de transporte

adelantarse unos a otros; y tampoco se sabe si ha llegado correctamente, ya que no hay confirmacin de entrega o recepcin. Su uso principal es para protocolos como DHCP, BOOTP, DNS y dems protocolos en los que el intercambio de paquetes de la conexin/desconexin son mayores, o no son rentables con respecto a la informacin transmitida, as como para la transmisin de audio y vdeo en tiempo real, donde no es posible realizar retransmisiones de datos perdidos por los estrictos requisitos de retardo que se tiene en estos casos.

Comparativa entre UDP y TCP UDP es un protocolo no orientado a conexin. Es decir cuando una maquina A enva paquetes a una maquina B, el flujo es unidireccional. La transferencia de datos es realizada sin haber realizado previamente una conexin con la maquina de destino (maquina B), y el destinatario recibir los datos sin enviar una confirmacin al emisor (la maquina A). Proporciona un nivel de transporte no fiable de datagramas, ya que apenas aade la informacin necesaria para la comunicacin extremo a extremo al paquete que enva al nivel inferior. Sobretodo se emplea en tareas de control y en la transmisin de audio y vdeo a travs de una red. No introduce retardos para establecer una conexin, no mantiene estado de conexin alguno y no realiza seguimiento de estos parmetros. As, un servidor dedicado a una aplicacin particular puede soportar ms clientes activos cuando la aplicacin corre sobre UDP en lugar de sobre TCP. TCP: Contrariamente a UDP, el protocolo TCP est orientado a conexin. Cuando una mquina A enva datos a una mquina B, la mquina B es informada de la llegada de datos, y confirma su buena recepcin. Aqu interviene el control CRC de datos que se basa en una ecuacin matemtica que permite verificar la integridad de los datos transmitidos. De este modo, si los datos recibidos son corruptos, el protocolo TCP permite que los destinatarios soliciten al emisor que vuelvan a enviar los datos corruptos, es el protocolo que proporciona un transporte fiable de flujo de bits entre aplicaciones. Est pensado para poder enviar grandes cantidades de informacin de forma fiable, liberando al programador de la dificultad de gestionar la fiabilidad de la conexin (retransmisiones, prdida de paquetes, orden en el que llegan los paquetes, duplicados de paquetes...) que gestiona el propio protocolo. Pero la complejidad de la gestin de la fiabilidad tiene un coste en eficiencia, ya que para llevar a cabo las gestiones anteriores se tiene que aadir bastante informacin a los paquetes que enviar. Debido a que los paquetes para enviar tienen un tamao mximo, cuanta ms informacin aada el protocolo para su gestin, menos informacin que proviene de la aplicacin podr contener ese paquete (el segmento TCP tiene una sobrecarga de 20 bytes en cada segmento, mientras que UDP solo aade 8 bytes). Por eso, cuando es ms importante la velocidad que la fiabilidad, se utiliza UDP. En cambio, TCP asegura la recepcin en destino de la informacin para transmitir. Direccionamiento del puerto Considere el ejemplo de una computadora que recibe y enva e-mails, mensajes instantneos, pginas Web y llamadas telefnicas VoIP de manera simultnea. Los servicios basados en TCP y UDP mantienen un seguimiento de las varias aplicaciones que se comunican. Para diferenciar los segmentos y datagramas para cada aplicacin, tanto TCP como UDP cuentan con campos de encabezado que pueden identificar de manera exclusiva estas aplicaciones. Estos identificadores nicos son los nmeros de los puertos. En el encabezado de cada segmento o datagrama hay un puerto de origen y destino. El nmero de puerto de origen es el nmero para esta comunicacin asociado con la aplicacin que origina la comunicacin en el host local. El nmero de puerto de destino es el nmero para esta comunicacin asociado con la aplicacin de destino en el host remoto. Los nmeros de puerto se asignan de varias maneras, en funcin de si el mensaje es una solicitud o una respuesta. Mientras que los procesos en el servidor poseen nmeros de puertos

Planificacin y Administracin de Redes

TCP-UDP. Capa de transporte

estticos asignados a ellos, los clientes eligen un nmero de puerto de forma dinmica para cada conversacin. Cuando una aplicacin de cliente enva una solicitud a una aplicacin de servidor, el puerto de destino contenido en el encabezado es el nmero de puerto que se asigna al daemon de servicio que se ejecuta en el host remoto. El software del cliente debe conocer el nmero de puerto asociado con el proceso del servidor en el host remoto. Este nmero de puerto de destino se puede configurar, ya sea de forma predeterminada o manual. Por ejemplo, cuando una aplicacin de explorador Web realiza una solicitud a un servidor Web, el explorador utiliza TCP y el nmero de puerto 80 a menos que se especifique otro valor. Esto sucede porque el puerto TCP 80 es el puerto predeterminado asignado a aplicaciones de servidores Web. Muchas aplicaciones comunes tienen asignados puertos predeterminados. El puerto de origen del encabezado de un segmento o datagrama de un cliente se genera de manera aleatoria. Siempre y cuando no entre en conflicto con otros puertos en uso en el sistema, el cliente puede elegir cualquier nmero de puerto. El nmero de puerto acta como direccin de retorno para la aplicacin que realiza la solicitud. La capa de Transporte mantiene un seguimiento de este puerto y de la aplicacin que gener la solicitud, de manera que cuando se devuelva una respuesta, pueda ser enviada a la aplicacin correcta. El nmero de puerto de la aplicacin que realiza la solicitud se utiliza como nmero de puerto de destino en la respuesta que vuelve del servidor. La combinacin del nmero de puerto de la capa de Transporte y de la direccin IP de la capa de Red asignada al host identifica de manera exclusiva un proceso en particular que se ejecuta en un dispositivo host especfico. Esta combinacin se denomina socket. Eventualmente, los trminos nmero de puerto y socket se utilizan en forma indistinta. En el contexto de este curso, el trmino socket hace referencia slo a la combinacin exclusiva de direccin IP y nmero de puerto. Un par de sockets, que consiste en las direcciones IP y los nmeros de puerto de origen y de destino, tambin es exclusivo e identifica la conversacin entre dos hosts. Conexiones Socket 1 194.35.133.5:1256 184.42.15.16:1305 184.42.15.16:1323

Socket 2 135.22.8.165:80 135.22.8.165:80 135.22.10.15:21

Nota: El comando NetStat muestra las conexiones abiertas en un ordenador, as como estadsticas de los distintos protocolos de Internet. Nmeros de puertos Existen distintos tipos de nmeros de puerto: Puertos bien conocidos (Nmeros del 0 al 1 023): estos nmeros se reservan para servicios y aplicaciones. Por lo general, se utilizan para aplicaciones como HTTP (servidor Web), POP3/SMTP (servidor de e-mail) y Telnet. Al definir estos puertos conocidos para las aplicaciones del servidor, las aplicaciones del cliente pueden ser programadas para solicitar una conexin a un puerto especfico y su servicio asociado. Puertos Registrados (Nmeros 1024 al 49151): estos nmeros de puertos estn asignados a procesos o aplicaciones del usuario. Estos procesos son principalmente aplicaciones individuales que el usuario elige instalar en lugar de aplicaciones comunes que recibira un puerto bien conocido. Cuando no se utilizan para un recurso del servidor, estos puertos tambin pueden utilizarse si un usuario los selecciona de manera dinmica como puerto de origen.

Planificacin y Administracin de Redes

TCP-UDP. Capa de transporte

Puertos dinmicos o privados (Nmeros del 49152 al 65535): tambin conocidos como puertos efmeros, suelen asignarse de manera dinmica a aplicaciones de cliente cuando se inicia una conexin. No es muy comn que un cliente se conecte a un servicio utilizando un puerto dinmico o privado (aunque algunos programas que comparten archivos punto a punto lo hacen). Algunas aplicaciones pueden utilizar los dos protocolos: TCP y UDP. Por ejemplo, el bajo gasto de UDP permite que DNS atienda rpidamente varias solicitudes de clientes. Sin embargo, a veces el envo de la informacin solicitada puede requerir la confiabilidad de TCP. En este caso, el nmero 53 de puerto conocido es utilizado por ambos protocolos con este servicio. Establecimiento de la conexin TCP Cuando dos hosts se comunican utilizando TCP, se establece una conexin antes de que puedan intercambiarse los datos. Una vez completa la comunicacin, se cierran las sesiones y la conexin finaliza. Los mecanismos de conexin y de sesin habilitan la funcin de confiabilidad de TCP Para establecer la conexin los hosts realizan un intercambio de seales de tres vas. Los bits de control en el encabezado TCP indican el progreso y estado de la conexin. Enlace de tres vas: Establece que el dispositivo de destino est presente en la red. Verifica que el dispositivo de destino tenga un servicio activo y est aceptando las peticiones en el nmero de puerto de destino que el cliente que lo inicia intente usar para la sesin. Informa al dispositivo de destino que el cliente de origen intenta establecer una sesin de comunicacin en ese nmero de puerto. En conexiones TCP, el host que brinde el servicio como cliente inicia la sesin al servidor. Los tres pasos para el establecimiento de una conexin TCP son: 1. Enviar SYN: El cliente que inicia la conexin enva un segmento que contiene un valor de secuencia inicial, que acta como solicitud para el servidor para comenzar una sesin de comunicacin. 2. Enviar SYN/ACK: El servidor responde con un segmento que contiene un valor de reconocimiento igual al valor de secuencia recibido ms 1, adems de su propio valor de secuencia de sincronizacin (Cabe recordar que la conversacin entre el cliente y el servidor est compuesta en realidad por dos sesiones de una va: una del cliente al servidor y la otra del servidor al cliente). El valor es uno mayor que el nmero de secuencia porque el ACK es siempre el prximo Byte u Octeto esperado. Este valor de reconocimiento permite al cliente unir la respuesta al segmento original que fue enviado al servidor. 3. Enviar ACK: El cliente que inicia la conexin responde con un valor de reconocimiento igual al valor de secuencia que recibi ms uno. Esto completa el proceso de establecimiento de la conexin. Para entender el proceso de enlace de tres vas, es importante observar los distintos valores que intercambian los dos hosts. Dentro del encabezado del segmento TCP, existen seis campos de 1 bit que contienen informacin de control utilizada para gestionar los procesos de TCP. Estos campos son los siguientes: URG: Urgente campo de sealizador significativo, ACK: Campo significativo de acuse de recibo, PSH: Funcin de empuje, RST: Reconfiguracin de la conexin, SYN: Sincronizar nmeros de secuencia,

Planificacin y Administracin de Redes

TCP-UDP. Capa de transporte

FIN: No hay ms datos desde el emisor.

A estos campos se los denomina sealadores porque el valor de uno de estos campos es slo de 1 bit, entonces tiene slo dos valores: 1 0. Si el valor del bit se establece en 1, indica la informacin de control que contiene el segmento. Si se utiliza un proceso de cuatro pasos, los sealizadores se intercambian para finalizar la conexin TCP. Finalizacin de la conexin TCP 1. Cuando el cliente no tiene ms datos para enviar, enva un segmento con el sealizador FIN establecido. 2. El servidor enva un ACK para acusar recibo de Fin y terminar la sesin del cliente al servidor. 3. El servidor enva un FIN al cliente para finalizar la sesin del servidor al cliente. 4. El cliente responde con un ACK para dar acuse de recibo de FIN desde el servidor. Tambin es posible terminar la conexin mediante un enlace de tres vas. Cuando el cliente no posee ms datos para enviar, enva un sealizador FIN al servidor. Si el servidor tampoco tiene ms datos para enviar, puede responder con los sealizadores FIN y ACK, combinando dos pasos en uno. El cliente responde con un ACK. Anexo: Algunos nmeros de puertos conocidos. Puerto/pro Descripcin tocolo 20/tcp 21/tcp 22/tcp 23/tcp 25/tcp 37/tcp 53/tcp 53/udp 67/udp 68/udp 69/udp 80/tcp FTP File Transfer Protocol (Protocolo de Transferencia de Ficheros) - datos FTP File Transfer Protocol (Protocolo de Transferencia de Ficheros) - control SSH, scp, SFTP Telnet comunicaciones de texto inseguras SMTP Simple Mail Transfer Protocol (Protocolo Simple de Transferencia de Correo) time DNS Domain Name System (Sistema de Nombres de Dominio) DNS Domain Name System (Sistema de Nombres de Dominio) BOOTP BootStrap Protocol (Server), tambin usado por DHCP BOOTP BootStrap Protocol (Client), tambin usado por DHCP TFTP Trivial File Transfer Protocol (Protocolo Trivial de Transferencia de Ficheros) HTTP HyperText Transfer Protocol (Protocolo de Transferencia de HiperTexto)

Planificacin y Administracin de Redes

TCP-UDP. Capa de transporte

(WWW) 88/tcp 110/tcp 119/tcp 123/udp 123/tcp 137/tcp 137/udp 138/tcp 138/udp 139/tcp 139/udp 143/tcp 161/tcp 161/udp 162/tcp 162/udp 177/tcp 177/udp 389/tcp 389/udp 443/tcp 445/tcp 445/udp 500/udp 520/udp 631/tcp 993/tcp Kerberos Agente de autenticacin POP3 Post Office Protocol (E-mail) NNTP usado en los grupos de noticias de usenet NTP Protocolo de sincronizacin de tiempo NTP Protocolo de sincronizacin de tiempo NetBIOS Servicio de nombres NetBIOS Servicio de nombres NetBIOS Servicio de envo de datagramas NetBIOS Servicio de envo de datagramas NetBIOS Servicio de sesiones NetBIOS Servicio de sesiones IMAP4 Internet Message Access Protocol (E-mail) SNMP Simple Network Management Protocol SNMP Simple Network Management Protocol SNMP-trap SNMP-trap XDMCP Protocolo de gestin de displays en X11 XDMCP Protocolo de gestin de displays en X11 LDAP Protocolo de acceso ligero a Bases de Datos LDAP Protocolo de acceso ligero a Bases de Datos HTTPS/SSL usado para la transferencia segura de pginas web Microsoft-DS (Active Directory, comparticin en Windows, gusano Sasser, Agobot) Microsoft-DS comparticin de ficheros IPSec ISAKMP, Autoridad de Seguridad Local RIP CUPS sistema de impresin de Unix IMAP4 sobre SSL (E-mail)

Planificacin y Administracin de Redes

TCP-UDP. Capa de transporte

995/tcp 1433/tcp 1434/tcp 1434/udp 1512/tcp 1521/tcp 1701/udp 1723/tcp 1863/tcp 2049/tcp 3306/tcp 3389/tcp 4662/tcp 4672/udp 4899/tcp 5631/tcp 5632/udp 5400/tcp 5500/tcp 5600/tcp 5700/tcp 5800/tcp 5900/tcp 6000/tcp 6881/tcp 6969/tcp 7100/tcp 7100/udp

POP3 sobre SSL (E-mail) Microsoft-SQL-Server Microsoft-SQL-Monitor Microsoft-SQL-Monitor WINS Oracle listener por defecto Enrutamiento y Acceso Remoto para VPN con L2TP. Enrutamiento y Acceso Remoto para VPN con PPTP. MSN Messenger NFS Archivos del sistema de red MySQL sistema de gestin de bases de datos RDP (Remote Desktop Protocol) eMule (aplicacin de comparticin de ficheros) eMule (aplicacin de comparticin de ficheros) RAdmin (Remote Administrator), herramienta de administracin remota (normalmente troyanos) PC-Anywhere protocolo de escritorio remoto PC-Anywhere protocolo de escritorio remoto VNC protocolo de escritorio remoto (usado sobre HTTP) VNC protocolo de escritorio remoto (usado sobre HTTP) VNC protocolo de escritorio remoto (usado sobre HTTP) VNC protocolo de escritorio remoto (usado sobre HTTP) VNC protocolo de escritorio remoto (usado sobre HTTP) VNC protocolo de escritorio remoto (conexin normal) X11 usado para X-windows BitTorrent puerto por defecto BitTorrent puerto de tracker Servidor de Fuentes X11 Servidor de Fuentes X11

Planificacin y Administracin de Redes

TCP-UDP. Capa de transporte

8000/tcp 8080/tcp 8118/tcp 9009/tcp 9898/tcp 10000/tcp

iRDMI por lo general, usado errneamente en sustitucin de 8080. Tambin utilizado en el servidor de streaming ShoutCast. HTTP HTTP-ALT ver puerto 80. Tomcat lo usa como puerto por defecto. privoxy Pichat peer-to-peer chat server Gusano Dabber (troyano/virus) Webmin (Administracin remota web)

You might also like