Publicado el 11 de Julio del 2017
921 visualizaciones desde el 11 de Julio del 2017
392,6 KB
16 paginas
Creado hace 14a (02/12/2010)
PRÁCTICA 3
Protocolos de nivel de Transporte en TCP/IP
REDES (9359)
ING. TÉCNICA EN INFORMÁTICA DE SISTEMAS
Curso 2010/2011
(Este documento es una versión en papel de la versión completa en formato web-SCORM
publicada a través de la plataforma Moodle-UA)
Práctica 3. Protocolos de nivel de Transporte en TCP/IP
3.1. Introducción
Los objetivos de la práctica 3 de la asignatura Redes es profundizar en el funcionamiento de los protocolos
de transporte en la arquitectura de red. En particular, se pretende conocer las características del nivel de
transporte, así como el formato de las estructuras de datos que circulan en este nivel. La información de uso
y funcionamiento de los protocolo de transporte más habituales UDP y TCP se puede encontrar en las RFC
768 Y 793 respectivamente (http://www.rfc-es.org/rfc/).
3.2. Revisión de los niveles de la arquitectura TCP/IP
Los protocolos de nivel de transporte en TCP/IP proporcionan una comunicación extremo a extremo. Dentro
de los servicios deseables de un protocolo de transporte cabe mencionar el proveer un servicio fiable,
asegurando que los datos llegan a su destino sin errores (realizando comprobaciones utilizando sumas de
verificación) y en el orden correcto. Además, el nivel de transporte debe ser capaz de coordinar los distintos
procesos a nivel de aplicación de forma que se asegure que los datos llegan de forma correcta a la aplicación
destino. También puede garantizar la ausencia de duplicados así como una sincronización entre los extremos
de una conexión posibilitando realizar el envío de los datos independientemente de la longitud de los
mismos. En la siguiente figura se aprecia la arquitectura de protocolos TCP/IP en donde se sitúan los
protocolos de transporte TCP y UDP.
Figura 1. Conjunto de protocolos TCP/IP.
Los protocolos de transporte de la arquitectura TCP/IP que van a ser objeto de estudio en la presente práctica
son el TCP (protocolo de control de transporte) y UDP (protocolo de datagramas de usuario). TCP/IP ofrece
dos opciones de protocolo de transporte al nivel de aplicación cada uno de ellos con unas características
determinadas. La aplicación de un protocolo u otro va a depender directamente del uso al que esté orientado,
de forma que es posible encontrar aplicaciones que utilizan TCP y otras que usan UDP.
En general, no se puede afirmar que un protocolo (TCP o UDP) sea mejor que el otro. Como características
principales, TCP es un protocolo orientado a conexión que ofrece un servicio muy fiable aunque implica
2
Práctica 3. Protocolos de nivel de Transporte en TCP/IP
bastante tráfico adicional en la red. En cambio UDP no está orientado a conexión y ofrece un servicio poco
fiable, aunque rápido y con poca carga adicional en la red.
Los paquetes que emplean los protocolos TCP y UDP (también conocidos como segmentos) se encapsulan
dentro del campo de datos de paquetes IP tal como se aprecia en la figura 2. Habrá que tener en cuenta el
MSS, que es el tamaño máximo de los datos de aplicación que el nivel de transporte acepta para evitar la
fragmentación que, evidentemente, dependerá del valor de la MTU.
20 bytes 8 bytes
TCP
UDP
CAB Datos
CAB Datos
CAB Datos
20 bytes
IP
Figura 2. Encapsulación de protocolos de transporte y aplicación en IP.
3.3. Puertos y sockets
Es posible encontrar en un momento dado distintos servicios a nivel de transporte ejecutándose de forma
simultánea. Este hecho va a propiciar la necesidad de crear un método para identificar cada uno de los
procesos de aplicación que está atendiendo el protocolo a nivel de transporte. Para realizar esta identificación
ambos protocolos de transporte utilizan identificadores de 16 bits denominados puertos que permiten
identificar los procesos origen y destino dentro de las máquinas origen y destino respectivamente. Así,
cuando un proceso a nivel de aplicación desea establecer una conexión con un servidor, es necesario de
alguna manera conocer un identificador de dicho servidor. Si el cliente que desea establecer la conexión
conoce únicamente la dirección IP del servidor, pero no el puerto, no se podrá realizar la solicitud del
servicio. Por lo tanto, los puertos van a permitir identificar los procesos a nivel de aplicación, sin embargo,
es de destacar que los puertos TCP son independientes de los UDP de forma que es posible encontrar dos
procesos utilizando el puerto 1150, uno TCP y otro distinto para UDP.
De lo visto se puede afirmar que una misma máquina puede tener varios procesos independientes que emitan
o reciban paquetes a nivel de transporte como se muestra en la figura 3.
3
Práctica 3. Protocolos de nivel de Transporte en TCP/IP
Figura 3. Procesos en ejecución en una máquina con conexión TCP/IP.
Para que dos procesos a nivel de aplicación puedan comunicarse entre sí, es necesario establecer un canal de
comunicación. Esto es lo que se llama un socket. Para establecer dicho canal, se necesita una dirección IP
junto con un puerto origen, así como una dirección IP y un puerto destino. A la combinación de estas dos
direcciones y estos dos puertos con un cierto protocolo de transporte (TCP o UDP) es lo que se le denomina
un socket. En muchas ocasiones el par dirección IP-puerto se suele indicar con el siguiente formato
195.23.12.12:80 para hacer referencia al puerto 80 de la máquina con dirección IP 195.23.12.12.
Servicio
Puerto
Servidor Eco (devuelve lo que se le envía).
UDP 7
Servidor Fecha y hora (devuelve la hora y
fecha del sistema).
Servidor FTP (protocolo de transferencia de
ficheros).
Servidor SSH (protocolo de seguridad del
Shell). El servicio admite aplicaciones
remotas de consola, transferencia de
ficheros, ejecución de comandos, etc.
Servidor Telnet (protocolo de terminal remoto
sin seguridad).
Servidor SMTP (protocolo simple de
trasferencia de correo).
Servidor DNS (Domain Name System).
Devuelve IP para nombres de dominio.
UDP 13
TCP 21
TCP 22
TCP 23
TCP 25
TCP 53
HTTP (Servidor Web) y HTTPS (Servidor
web seguro).
TCP 80 y 443
Tabla 1. Procesos servidores y números de puerto.
Con el uso de sockets se diferencian dos tipos de procesos: servidores y clientes. Los primeros son los que
ofrecen algún tipo de servicio a otros procesos, llamados clientes. Es el proceso cliente el que solicita
establecer un socket con un servidor. Un servidor normalmente puede atender a varios clientes
simultáneamente. Un cliente emplea un número de puerto desde 1024 hasta 5000, y dentro de una misma
máquina el puerto cliente se va asignando incrementalmente. En cambio, para los procesos servidores se han
definido unos puertos concretos de forma que sean conocidos de antemano por los clientes, como son los que
4
Práctica 3. Protocolos de nivel de Transporte en TCP/IP
se muestran en la tabla 1. En la dirección web http://www.iana.org/assignments/port-numbers se proporciona
el listado de puertos de IANA para diferentes aplicaciones.
3.4. Protocolo UDP
El protocolo UDP (user datagram protocol, protocolo de datagramas de usuario) es utilizado para conexiones
que no precisan de corrección de errores o continuidad en el flujo. La función de UDP se fundamenta en
mandar paquetes sueltos (denominados datagramas) al puerto destino ofreciendo un servicio no fiable y no
orientado a conexión. Este protocolo deja al programa de aplicación la responsabilidad de una transmisión
fiable. Las características principales de este protocolo son:
• No orientado a conexión. No emplea ninguna sincronización origen – destino.
• Trabaja con paquetes o datagramas enteros, no con bytes individuales como veremos posteriormente
para TCP. Una aplicación de envío o recepción utilizando UDP por parte de una aplicación implica
el envío o recepción de un paquete completo.
• No es fiable. No emplea control del flujo ni ordena los paquetes.
• Su gran ventaja es que provoca poca carga adicional en la red, ya que es sencillo y emplea cabeceras
muy simples.
• Un paquete UDP puede ser fragmentando por IP para ser enviado dentro de más de un paquete IP si
resulta necesario.
• Un paquete UDP admite utilizar como dirección IP de destino la dirección de Broadcast de la red IP
ya que no emplea conexiones.
Una aplicación típica de UDP son los streams de vídeo bajo demanda. En la figura 4 se muestra el formato
de un paquete UDP:
Figura 4. Formato de una estructura de datos UDP.
Los campos de la cabecera tienen las siguientes funciones:
• Puerto fuente y puerto destino. Valores de 16 bits correspondientes a los puertos de nivel de
transporte.
• Longitud. Número total de bytes en el paquete UDP original (incluye cabecera y datos), antes de ser
fragmentado en paquetes IP.
• SVT. Suma de verificación, aplicada a la cabecera y datos UDP, además de a algún campo de la
cabecera IP.
5
Práctica 3. Protocolos de nivel de Transporte en TCP/IP
Algunas aplicaciones de UDP pueden ser:
• Transmisión de datos en LANs fiables (protocolo TFTP).
• Operaciones de sondeo. Transmisión de paquetes de datos pequeños o esporádicos.
• Streams de vídeo bajo demanda.
3.5. Protocolo TCP
TCP (transmission control protocol, protocolo de control de transmisión) permite que grandes volúmenes de
información lleguen a su des
Comentarios de: PRÁCTICA 3 Protocolos de nivel de Transporte en TCP/IP (0)
No hay comentarios