Make your own free website on Tripod.com

 

La Capa Transporte

Principal Comentarios Downloads LINKS Inicio UPS Temas Buscar

 

 

Atrás Arriba Siguiente  

 

4. CAPA DE TRANSPORTE

 

Provee comunicación extremo a extremo desde un programa de aplicación a otro. Puede proveer un transporte confiable asegurándose de que los datos lleguen sin errores y en la secuencia correcta.

 

Coordina a múltiples aplicaciones que se encuentren interactuando con la red simultáneamente de tal manera que los datos que envíe una aplicación sean recibidos correctamente por la aplicación remota.

 

En esta capa se encuentran los protocolos UDP y TCP.

4.1. UDP (User Datagram Protocol)

El protocolo UDP (User Datagram Protocol) proporciona aplicaciones con un tipo de sevicio de datagramas orientado a transacciones. El servicio es muy parecido al protocolo IP en el sentido de que no es fiable y no esta orientado a la conexión. El UDP es simple, eficiente e ideal para aplicaciones como el TFTP y el DNS. Una dirección IP sirve para dirigir el datagrama hacia una maquina en particular, y el numero de puerto de destino en la cabecera UDP se utiliza para dirigir el datagrama UDP a un proceso especifico localizado en la cabecera IP. La cabecera UDP tambien contiene un numero de puerto origen que permite al proceso recibido conocer como responder al datagrama.

Formato del mensaje. (Ver Figura 8)

El datagrama UDP contiene cuatro campos, que son Numero del Puerto de Origen, Numero del Puerto de Destino, Longitud del mensaje y Checksum.

 

Figura 8.
Formato del UDP

 

Octet +0

Octet +1

Octet +2

Octet +3

 

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

+0

Source Port

Destination Port

+4

Message Length

Checksum

 

UDP Data

                                                                 
Numeros de Puerto de Origen y Destino

Estos numeros, junto con las direcciones IP definen el punto final de la comunicacion. El numero del puerto de origen, puede tener valor cero si no se usa. El numero del puerto de destino solo tiene sentido en el contexto de un datagrama UDP y un a direccion IP en particular.

 

El numero de puerto de origen es un campo de 16 bits. El puerto de destino tiene la misma longitud.

Longitud del Mensaje

Este campo tiene una longitud de 16 bits y contiene el numero total de octetos que forman el datagrama, incluida la cabecera.

Checksum

El uso del checksum es opcional, y este campo debe ponerse a cero si no es utilizado. Mientras que el checksum del datagrama IP solo tiene en cuenta la cabecera del mensaje, el UDP tiene su propio checksum para garantizar la integridad de los datos. La longitud de este campo es de 16 bits, y esta formado por la suma de los campos del UDP, y algunos campos del IP.

Para incluir los campos del IP, se construye una pseudo cabecera UDP. Esta pseudo cabecera de 12 octetos se utiliza unicamente a efectos de calcular la suma. (Ver Figura 9)

 

Figura 9.
Pseudo-Cabecera UDP

 

Octet +0

Octet +1

Octet +2

Octet +3

 

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

P s e u d o

H e a d e r

Source IP Adress

Destination IP Address

Zero

Protocol ID

Length

Source Port

Destination Port

Message Length

Checksum

UDP Data

UDP Data

Zero

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.2. TCP (Transmission Control Protocol)

El protocolo TCP proporciona un servicio de comunicacion que forma un circuito, es decir, que el flujo de datos entre el origen y el destino parece que sea continuo. TCP proporciona un circuito virtual el cual es llamado una conexión.

 

Al contrario que los programas que utilizan UDP, los que utilizan el TCP tienen un servicio de conexión entre los programas llamados y los que llaman, chequeo de errores, control de flujo y capacidad de interrupción.

Interfaces TCP

Existen dos tipos de interfaces entre la conexión TCP y los otros programas.

 

El primero es utilizar la pila de los programas de la capa de red.

Como en esta capa solo esta el protocolo IP, el interface lo determina este protocolo. El segundo tipo es el interfaz del programa de usuario. Este interface puede variar segun el sistema operativo, pero en general tiene las siguientes caracteristicas.

 

El interface envuelve el programa de usuario llamando a una rutina que introduce entradas en una estructura de datos llamada el bloque de control de transmision (TCB). Las entradas se realizan inicialmente en la pila de hardware y transferidas al TCB por medio de una rutina de sistema.

 

Estas entradas permiten al TCP asociar un usuario con una conexión particular, de modo que pueda aceptar comandos de un usuario y mandarlos a otro usuario en la otra parte de la conexión. TCP utiliza unos identificadores unicos para cada parte de la conexión. Esto se utiliza para recordar la asociacion entre dos usuarios. Al usuario se le asigna un nombre de conexión para utilizarlo un futuras entradas del TCB.

 

Los identificadores para cada estremo de la conexión se llaman sockets. El socket local se construye concatenando la direccion IP de origen y el numero de puerto de origen.

 

El socket remoto se obtiene concatenando la direccion IP de destino y el numero de puerto de destino.

 

El par de sockets de una conexión forman un unico numero en Internet. El UDP tiene los mismos sockets, pero no los recuerda. Esta es las diferencia entre un protocolo orientado a conexión y otro a no conexión. A continuacion se explican los comandos mas usuales:

Open: Inicia una conexión o comienza a escuchar un socket. El usuario tiene un nombre de conexión local que actua como un puntero dentro del TCB.
Send: El comando Send manda datos del buffer especificado.
Receive: El comando Receive es un mensaje de error si el nombre local proporcionado no es utilizado antes con el comando Open.
Close: El comando Close hace que se cierre una conexión. Se produce un error si la conexión especificada no ha sido abierta, o si no se tiene autorizacion para cerrar la conexión.
Status: El comando Status solo tiene una variable asociada, que es el nombre de la conexión.
Abort: El comando Abort hace que todos los comandos Send y Receive asociados al nombre de la conexión local se interrumpan. La entrada del usuario del TCB se elimina y se envia un mensaje especial de reinicio a la entidad del otro lado de la conexión.

 

El TCP recuerda el estado de cada conexión por medio del TCB. Cuando se abre una conexión, se efectua una entrada unica en el TCB. Un nombre de conexión se le asigna al usuario para activar los comandos de la conexión. Cuando se cierra una conexión se elimina su entrada del TCB.

Control de Flujo

El protocolo TCP puede controlar la cantidad de datos que debe enviar mediante el campo Window. Este campo indica el numero maximo de octetos que pueden ser recibidos. El receptor de un segmento con el campo window a cero, no puede enviar mensajes al emisor, excepto mensajes de prueba. Un mensaje de prueba es un mensaje de un solo octeto que se utiliza para detectar redes o hosts inalcanzables.

Formato del segmento TCP. (Ver Figura 11)

El segmento TCP consiste en una cabecera y datos. A continuacion se describen los campos del segmento TCP.

Numero de puerto del Origen/destino (Source/Destination Port Numbers):Este campo tiene una longitud de 16 bits.
Numeros de Secuencia (Secuence Numbers): Existen dos numeros de secuencia en la cabecera TCP. El primer numero de secuencia es el numero de secuencia final (SSN). El SSN es un numero de 32 bits el otro numero de secuencia es el Numero de secuencia esperado de recepcion, Tambien llamado Numero de Reconocimiento (acknowledgement number).
Longitud de la cabecera (Header Length):Este campo tiene una longitud de 4 bits y contiene un entero igual al numero de octetos que forman la cabecera TCP dividido por cuatro.
Codigo de Bits (Code bits):El motivo y contenido del segmento TCP lo indica este campo. Este campo tiene una longitud de seis bits.
Bit URG (bit +5):Este bit identifica datos urgentes.
Bit ACK (bit +4):Cuando este bit se pone a 1, el campo reconocimiento es valido.
Bit PSH (Bit +3):Aunque el buffer no este lleno, el emisor puede forzar a enviarlo.
Bit RST (Bit +2):Poniendo este bit, se aborta la conexión. Todos los buffers asociados se vacien.
Bit SYN (Bit +1):Este bit sirve para sincronizar los numeros de secuencia.
Bit FIN (Bit +0):Este bit se utiliza solo cuando se esta cerrando la conexión.
Ventana (Window): Este campo contiene un entero de 32 bits. Se utiliza para indicar el tamaño de buffer disponible que tiene el emisor para recibir datos.
Opciones (Options): Este campo permite que una aplicacion negocie durante la configuracion de la conexión caracteristicas como el tamaño maximo del segmento TCP. Si este campo tiene el primer octeto a cero, esto indica que no hay opciones.
Relleno (Padding):Este campo consiste en un numero de octetos (De uno a tres), que tienen valor cero y sirven para que la longitud de la cabecera sea divisible por cuatro.
Checksum: Mientras que el protocolo IP no tiene ningun mecanismo para garantizar la integridad de los datos, ya que solo comprueba la cabecera del mensaje, El TCP dispone de su propio metodo para garantizar dicha integridad.

Como en el Checksum del protocolo TCP tambien se incluyen campos del protocolo IP, es necesario construir una pseudo-cabecera TCP que se considera unicamente a efectos de calculo.(Ver Figura 10)

Figura 10.
Formato del Checksum TCP

 

 

Octet +0

Octet +1

Octet +2

Octet +3

 

 

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

7

6

5

4

3

2

1

0

 

D a t a

i n

C h e c k s u m

Source IP Adress

P s e u d o

h e a d e r

Destination IP Address

Zero

Protocol Number

Number of octets in header and data

TCP Header

 

TCP Data

 

TCP Data

Zero

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Figura 11.
Formato del mensaje TCP

 

msb

 

lsb

 

7

6

5

4

3

2

1

0

T C P

H e a d e r

Source Port

Destination Port

Sequence Number

Acknowledgement Number

Header Length

Reserved

RSV

Code Bits

Window

Checksum

Urgent Pointer

Options

Padding

 

TCP Data

 

27

26

25

24

23

22

21

20

Estados del TCP

El inicio, mantenimiento y cierre de una conexión requiere que el TCP recuerde toda la información relativa a cada conexión. Esta información se almacena en una entrada para cada conexión dentro del TCB. Cuando se abre una conexión, la entrada en el TCB se realiza con todas las variables inicializadas con sus rexpectivos valores. Durante la conexión, la entrada del TCB es actualizada a medida que cambia la información. A continuacion se describen algunos de los estados del TCP:

0. CLOSED: No existe, solo para referencia.
1. LISTEN: Esperando solicitud de conexión de un TCP remoto.
2. SYN-SEN: Esperando un mensaje de solicitud de conexión despues de haber enviado una solicitud de conexión.
3. SYN-RECEIVED: Esperando confirmacion de una reconicimiento de solicitud de conexión, despues de haber enviado y recibido una solicitud de conexión.
4. ESTABLISHED: Representa un a conexión abierta. Los datos recibidos pueden ser enviados a un protocolo de una capa superior. Este es el estado normal de la fase de transferencia de la conexión.
5. FIN-WAIT-1: Esperando la solicitud de fin de conexión de un TCP remoto, o un reconocimiento de una solicitud de fin de transmision enviada anteriormente.
6. FIN-WAIT-2: Esperando una solicitud de fin de conexión de un TCP remoto.
7. CLOSE-WAIT: Esperando una solicitud de fin de conexión de un protocolo de una capa superior.
8. CLOSING: Esperando el conocimiento de una solicitud de final de conexión de un TCP remoto.
9. LAST-ACK: Esperando el conocimiento de una solicitud de final de conexión enviada anteriormente al TCP remoto.
10. TIME-WAIT: Esperando el tiempo necesario para que el TCP remoto haya recibido el conocimiento de la solicitud del fin de conexión.

Atrás Arriba Siguiente

 

Enviar correo electrónico a molinamauricio@netscape.net con preguntas o comentarios sobre este sitio Web.
Última modificación: 23 de June de 2000