puertos y sockets

Download Puertos y Sockets

Post on 06-Jun-2015

4.108 views

Category:

Documents

5 download

Embed Size (px)

DESCRIPTION

Curso Erick Jimenez

TRANSCRIPT

Protocolos de transporte

Puertos

Cada proceso que se comunica con otro proceso se identifica a s mismo a la familia de protocolos TCP/IP por uno o ms puertos. Un puerto es un nmero de 16 bits, usado por el protocolo host-a-host para identificar a qu protocolo de ms alto nivel o programa de aplicacin (proceso) debe entregar los mensajes de entrada. Como algunos programas de ms alto nivel son protocolos por s mismos, estandarizados en la familia de protocolos TCP/IP, tales como telnet y ftp, usan el mismo nmero de puerto en todas las realizaciones de TCP/IP. Aquellos nmeros de puerto "asignados" se denominan puertos bien-conocidos y las aplicaciones estndares servicios bien-conocidos.

Puertos

Los puertos "bien-conocidos" los controla y asigna la Autoridad de Nmeros Asignados de Internet (IANA) y en la mayora de los sistemas slo pueden usarlo los procesos del sistema o programas ejecutados con privilegios de usuario. Los puertos "bien-conocidos" asignados ocupan nmeros de puerto en el rango de 0 a 1023. Los puertos con nmeros dentro del rango 1024-65535 no los controla la IANA y la mayor parte de los sistemas nicamente usan programas desarrollados por usuarios. La confusin debida a que dos aplicaciones diferentes intentan usar los mismos nmeros de puerto sobre un host se evita escribiendo esas aplicaciones para pedir un puerto TCP/IP disponible. Puesto que este nmero de puerto se asigna dinmicamente, debe diferir de una invocacin de una aplicacin a la prxima.

Sockets

Un socket es un tipo especial de manejador de fichero que utiliza un proceso para pedir servicios de red al sistema operativo. Una direccin de socket es la tripleta: {protocolo, direccin-local, proceso-local} En la familia TCP/IP, por ejemplo:{TCP, 193.44.234.3, 12345}

Sockets

Una conversacin es el enlace de comunicacin entre dos procesos. Una asociacin es la quntupla que especifica completamente los dos procesos que comprende una conexin:

{protocolo, direccin-local, proceso-local, direccinexterna, proceso-externo}

En la familia TCP/IP, por ejemplo:Podra ser una asociacin vlida.

{TCP, 193.44.234.3, 1500, 193.44.234.5, 21}

Sockets

Una media-asociacin es:

{protocolo, direccin-local, proceso-local} o {protocolo, direccin-externa, proceso-externo} que especifica cada mitad de una conexin.

La media-asociacin se denomina tambin socket o direccin de transporte. Esto es, un socket es un punto terminal para comunicacin que puede nombrarse y direccionarse en una red.

Sockets Application Interfaces (APIs)

La interfaz socket es una de las muchas APIs para los protocolos de comunicacin. Diseada para ser una interfaz de programacin de comunicacin, fue introducida primero por el sistema UNIX 4.2BSD. Aunque no se ha estandarizado, ha llegado a ser un estndar en la industria.

Sockets

Protocolo de Datagramas de Usuario (UDP)

UDP es un protocolo estndar con nmero 6 de STD. Este protocolo se describe en el RFC 768 Protocolo de Datagrama de Usuario. En la prctica cada implementacin TCP/IP que no se use exclusivamente para encaminamiento incluirn UDP. UDP es bsicamente una interfaz de aplicacin para IP. No soporta confiabilidad, control de flujo o recuperacin de errores para IP. Simplemente sirve como "multiplexor/demultiplexor" para enviar y recibir datagramas, usando puertos para dirigir los datagramas como se muestra en la figura siguiente.NOTA: El propsito de los nmeros STD es indicar claramente qu RFCs describen los estndares de Internet.

Protocolo de Datagramas de Usuario (UDP)

UDP proporciona un mecanismo para que una aplicacin enve un datagrama a otra. La capa UDP es sumamente delgada por lo que tiene pocas sobrecargas, pero requiere que la aplicacin sea responsable de la recuperacin de errores y dems caractersticas no soportadas.

Formato del Datagrama UDP

Cada datagrama UDP se enva con un nico datagrama IP. Aunque el datagrama IP se puede fragmentar durante la transmisin, la implementacin de recepcin IP lo re-ensamblar antes de presentarlo a la capa UDP. Todas las implementaciones IP estn preparadas para aceptar datagramas de 576 bytes, permitiendo un tamao mximo de cabacera IP de 60 bytes sabiendo que un datagrama UDP de 516 bytes lo aceptan todas las implementaciones.

Formato del Datagrama UDP

Muchas implementaciones aceptarn datagramas mayores, aunque no se puede asegurar. El datagrama UDP tiene una cabecera de 16 bytes que se describe en la figura siguiente:

Formato del Datagrama UDP

puerto de origen Indica el puerto del proceso que enva. Este es el puerto que se direcciona en las respuestas. puerto destino Especifica el puerto del proceso destino en el host de destino. longitud Es el tamao (en bytes) de este datagrama de usuario incluyendo la cabecera. suma de comprobacin (checksum) Es un campo opcional de 16 bits en complemento a uno de la suma en complemento a uno de una cabecera pseudoIP, la cabecera UDP y los datos UDP. La cabecera pseudoIP contiene la direccin IP fuente y destino, el protocolo y la longitud UDP:

Interfaz de Programacin de Aplicaciones UDP

La interfaz de aplicacin que ofrece UDP se describe en el RFC 768. Dicha interfaz proporciona:

La creacin de nuevos puertos de recepcin. La recepcin de operaciones que devuelven los bytes de datos y un indicador de puerto fuente y una direccin fuente IP. El envo de operaciones que tienen como parmetros los datos, los puertos fuente y destino y las direcciones. La forma en la que est implementado depende de cada vendedor. Hay que ser conscientes de que UDP e IP no proporcionan entrega garantizada, control de flujo o recuperacin de errores, as que estos mecanismos tienen que ser soportados por las aplicaciones.

Interfaz de Programacin de Aplicaciones UDP

Las aplicaciones estndares que utilizan UDP son:

Protocolo de Transferencia de Ficheros Trivial (TFTP) Sistema de Nombres de Dominio (DNS) servidor de nombres Llamada a Procedimiento Remoto (RPC), usado por el Sistema de Ficheros en Red (NFS) Sistema de Computacin de Redes (NCS) Protocolo de Gestin Simple de Redes (SNMP)

Protocolo de Control de Transmisin (TCP)

TCP es un protocolo estndar con nmero 7 de STD. TCP se describe en el RFC 793 - Protocolo de Control de Transmisin. TCP proporciona muchas ms facilidades para las aplicaciones, que UDP:

recuperacin confiabilidad.

de

errores,

control

de

flujo

y

Es un protocolo orientado a conexin en contraposicin a UDP que no lo es. La mayora de los protocolos de las aplicaciones de usuario, como TELNET y FTP, utiliza TCP.

Protocolo de Control de Transmisin (TCP)

El propsito primordial de TCP es proporcionar circuitos lgicos confiables o servicios de conexin entre parejas de procesos. Esto no implica confiabilidad desde protocolos de ms bajo nivel (como IP) as que TCP debe garantizar esto por s mismo.

Protocolo de Control de Transmisin (TCP)

TCP se puede caracterizar por las siguientes facilidades que proporciona a las aplicaciones que hacen uso de l:

Tranferencia de flujos de datos. Desde el punto de vista de la aplicacin, TCP transfiere un flujo de bytes contiguo a travs de internet. La aplicacin no tiene que molestarse segmentar los datos en bloques bsicos o datagramas. TCP hace esto agrupando los bytes en segmentos TCP, que se transfieren a IP para transmitirlos al destino. TCP decide tambin por s mismo cmo segmentar los datos y debe dirigir los datos a su propia conveniencia. A veces, una aplicacin necesita estar segura de que todos los datos pasados a TCP han llegado al destino. Por esta razn, se define una funcin push. Esta push todos los segmentos TCP restantes que estn almacenados en el host destino. La funcin close connection normal tambin pushes los datos hacia el destino.

Protocolo de Control de Transmisin (TCP)Confiabilidad. TCP asigna un nmero de secuencia a cada byte transmitido y espera por un reconocimiento positivo (ACK) del receptor TCP. Si el ACK no se recibe en un intervalo fijado, los datos se retransmiten. Como los datos se transmiten en bloques (segmentos TCP) slo el nmero de secuencia del primer byte de datos en los segmentos se envan al host destino. El receptor TCP utiliza los nmeros de secuencia para reorganizar los segmentos cuyo lleguen fuera de orden y para eliminar segmentos duplicados.

Protocolo de Control de Transmisin (TCP)

Control de flujo. El receptor TCP, cuyo enva un ACK de vuelta al emisor, tambin indica al emisor el nmero de bytes que puede recibir ms all del ltimo segmento TCP recibido sin causar ningn desbordamiento en sus bferes internos. Este se enva en el ACK de forma del ms alto nmero de secuencia que puede recibir sin problemas. Este mecanismo tambin se denomina mecanismo ventana. Multiplexacin. Se logra usando puertos, como en UDP.

Protocolo de Control de Transmisin (TCP)

Conexiones lgicas. La confiabilidad y los mecanismos de control de flujo descritos anteriormente requieren que TCP inicializa y mantenga cierta informacin de estado para cada "flujo de datos". La combinacin de este estado, incluyendo sockets, nmeros de secuencia y tamaos de ventana, se llama conexin lgica. Cada conexin se identifica unvocamente por la pareja de sockets usados por los procesos emisor y receptor. Full Duplex. TCP proporciona flujos de datos concurrentes en ambas direcciones.

El principio de ventana

Un protocolo de transporte simple debe usar el principio siguiente: enviar

un paquete y luego esperar por un reconocimiento del receptor antes de que enve el prximo paquete. Si el ACK no se recibe en un tiempo razonable, retransmite el paquete.

El principio de ventana

El principio de ventana

utiliza las sig