Читать книгу Instalación y configuración del software de servidor web. IFCT0509 - José Luis Villada Romero - Страница 11

3.2. El protocolo TCP/IP

Оглавление

TCP/IP es un conjunto de protocolos que siguen la especificación del modelo OSI y que se usan para establecer una comunicación de datos entre dispositivos conectados a través de una o varias redes.


Importante

El modelo OSI es una descripción conceptual mientras que TCP/IP es una especificación de un conjunto de protocolos.

En la década de los 70, la Agencia de Proyectos de Investigación Avanzada para la Defensa (DARPA), de los Estados Unidos, desarrolló ARPAnet (el embrión de lo que hoy se conoce como Internet).

ARPAnet crecía a una velocidad de vértigo y los protocolos de comunicación que usaba comenzaron a volverse demasiado lentos y poco fiables. Además, no podían comunicar dos dispositivos que estaban conectados en redes de distintas características. ARPA decide investigar y desarrollar un conjunto de protocolos que resuelva estos inconvenientes, y es entonces cuando surge TCP/IP.

Actualmente, IETF (Internet Engineering Task Force) es la responsable de TCP/IP. Se trata de la organización internacional encargada de la normalización y especificaciones de Internet.

TCP/IP se divide en cuatro capas o niveles. Y aunque son muchos los protocolos que pertenecen a alguna de estas capas, son el protocolo TCP y el protocolo IP los más famosos y, por eso, los que dan nombre al conjunto.



Capa de aplicación

En contraste con el modelo OSI, la capa de aplicación de TCP/IP es plenamente responsabilidad de la aplicación que usa la comunicación mediante este conjunto de protocolos. Cada aplicación implementaría su propio protocolo de aplicación y usaría según le convenga el conjunto de servicios que proporciona la capa de transporte. Esto implica mayor flexibilidad por parte de los desarrolladores sobre el software que realiza las comunicaciones. Ejemplos muy conocidos de protocolos de aplicación serían: HTTP, SMTP, POP, FTP, TELNET, etc.

Capa de transporte

Esta capa está compuesta de dos protocolos únicamente: TCP y UDP, pero su importancia es vital para las comunicaciones. Es la primera capa responsable de la comunicación extremo a extremo. El uso de estos protocolos puede ser simultáneo por parte de múltiples protocolos de aplicación.

La capa de transporte proporciona dos servicios distintos para definir una comunicación. El servicio debe ser elegido en función del tipo de aplicación que esté desarrollando, así como los requisitos que dicho software establezca para las comunicaciones: un primer servicio, que permite establecer comunicaciones seguras y fiables; y otro, que permite rápidas transferencias con tolerancia a la pérdida de información.

A continuación, se explican con más profundidad dos mecanismos.

TCP

TCP (Transmission Control Protocol) es el protocolo de transporte más usado por las aplicaciones. Se utiliza para proporcionar una comunicación libre de errores y fiable. Es un protocolo orientado a la conexión, lo que significa que la comunicación se lleva a cabo en tres fases: establecimiento de conexión, transmisión de datos y finalización de la conexión.

La unidad de transmisión para este protocolo es la de paquete. La información a transmitir al destino es dividida en paquetes de un tamaño fijo. El protocolo marca cada paquete con un número de secuencia y lo envía después de haber establecido la conexión con el destino.

Para establecer la conexión, el protocolo envía al destino un paquete de tipo SYN, el destino interpreta este paquete como intento de establecer la conexión y, acto seguido, si todo va bien, envía un paquete de tipo SYN ACK. Finalmente, el cliente envía un paquete ACK y, a continuación, los paquetes correspondientes al mensaje. A este tipo de mecanismo se lo conoce como negociación a tres pasos.

La finalización de la conexión se produce en cuatro pasos. El cliente o el servidor pueden en cualquier momento solicitar la finalización. Para ello, el emisor envía un paquete de tipo FIN y el receptor confirma su llegada enviando un paquete de tipo ACK.

Acto seguido, el que actuó como receptor lo hará como emisor enviando un paquete FIN y el que actúo como emisor devolverá un paquete ACK, completando la finalización de la conexión. Este mecanismo se conoce como negociación a cuatro pasos.


UDP

UDP es un protocolo no orientado a la conexión, lo que significa que no hace falta un diálogo entre el origen y el destino previo al envío del mensaje. A diferencia de TCP, se trata de un protocolo tolerante a fallos, sin control de flujo ni ordenamiento de las secuencias de bytes. Además, el coste computacional del procesamiento de un datagrama UDP es mucho menor que el de un datagrama TCP, por lo que está especializado en conexiones donde el retardo de los datagramas a través de la red es crítico. En la transmisión mediante UDP puede existir pérdida de datagramas en la red y debe ser la aplicación la encargada del control sobre esa pérdida de información. Ejemplos de aplicaciones que usan este protocolo son aquellas que deben recibir y/o enviar un flujo de información constante en el tiempo y donde una pequeña pérdida de información no altera el mensaje global que se transmite: aplicaciones de videostreaming o de VozIP.



Actividades

2. ¿Cómo se puede distinguir a qué aplicación debe entregar UDP el datagrama que acaba de llegar?

3. ¿Tiene algún sentido hablar de conexión entre dos ordenadores que se comunican mediante UDP? Razone la respuesta.

TCP y UDP se basan en servicios que proporciona la propia capa de transporte y que son extremadamente importantes para las comunicaciones. Toda comunicación, sea del tipo que sea a nivel de transporte, usa los dos conceptos que se explican a continuación y sirven como mecanismos conceptuales para el desarrollo de aplicaciones que utilizan conexiones.

Puertos

Para conseguir establecer la comunicación entre aplicaciones es necesario conocer, no solo el dispositivo al que hay que conectarse, sino además qué programa, de todos los que en ese momento están en ejecución, puede responder a esa comunicación. Esto se consigue con el concepto de puerto, y es gestionado a nivel de la capa de transporte de TCP/IP. En concreto, cada aplicación que puede recibir comunicación de la red se asigna a un puerto, de forma que, si llegan datos a ese puerto, la capa de transporte devolverá esos datos a la aplicación correspondiente.

Los puertos van desde el 0 al 65536. Los puertos dentro del rango 1 al 1024 son puertos que ya están asignados a aplicaciones que usan protocolos de aplicación importantes y no pueden ser reasignados.

TCP20FTP (File Transfer Protocol)
TCP21FTP (File Transfer Protocol) para control
TCP25SMTP (Simple Transfer Protocol)
TCP53DNS (Domain Name System)
UDP53DNS (Domain Name System)
UDP67BOOTP (BootStrap Protocol, Server) y por DHCP
UDP68BOOTP (BootStrap Protocol, Client) y por DHCP
UDP69TFTP (Trivial File Transfer Protocol)
TCP80HTTP (HyperText Transfer Protocol)
TCP88Kerberos
TCP110POP3 (Post Office Protocol)
TCP137NetBIOS (servicio de nombres)
UDP137NetBIOS (servicio de nombres)
TCP138NetBIOS (servicio de envío de datagramas)
UDP138NetBIOS (servicio de envío de datagramas)
TCP139NetBIOS (servicio de sesiones)
UDP139NetBIOS (servicio de sesiones)
TCP143IMAP4 (Internet Message Access Protocol)
TCP443HTTPS/SSL
TCP631CUPS (Sistema de impresión de Unix)
TCP993IMAP4 sobre SSL
TCP995POP3 sobre SSL
TCP1080SOCKS Proxy
TCP1433Microsoft-SQL-Server
TCP1434Microsoft-SQL-Server
UDP1701Enrutamiento y Acceso Remoto para VPN con L2TP
TCP1723Enrutamiento y Acceso Remoto para VPN con PPTP
TCP1761Novell Zenworks Remote Control Utility
TCP1863MSN Messenger

Puertos reservados y asignados por IANA a los principales servicios de Internet


Sabía que...

La organización que se encarga de la reserva de los números de puerto y la supervisión de las asignaciones globales de direcciones IP es la IANA (Internet Assigned Numbers Authority).

Sockets

Un socket es un punto final de comunicación. Se trataría como un punto de acceso que permite la comunicación. El socket queda caracterizado por una dirección IP, un protocolo de transporte: TCP o UDP; y un puerto.


Capa de Internet

Esta capa contiene los protocolos IP (Internet Protocol) e ICMP (Internet Control Message Protocol).

La capa de Internet tiene como principal objetivo el encaminamiento de los paquetes hacia la red destino. En esta capa se hace necesario un concepto de direccionamiento a la misma vez que una manera de permitir identificar un destino lógico. Ese concepto es el de dirección IP.

Direccionamiento IP

Las direcciones en Internet se representan mediante un valor binario de 32 bits, representado generalmente como cuatro números decimales separados por puntos, como por ejemplo, 9.134.12.54. Para que un dispositivo esté conectado a una red necesita que se le asigne una dirección IP válida. La dirección IP está compuesta de dos partes: una de ellas representa la red y la otra representa la máquina dentro de la red.

Existen cinco tipos de direcciones IP:

1 Clase A. Son direcciones que usan 7 bits para identificar la red, y 24 bits para la máquina dentro de la red. Esto permite 126 redes distintas, cada una con 16777214 máquinas en cada red. El rango de direcciones va de 1.0.0.0 a 127.255.255.255.

2 Clase B. Son direcciones que usan 14 bits para identificar la red y 16 bits para la máquina dentro de la red, lo que permite 16382 redes distintas, cada una con 65534 máquinas. El rango de direcciones va de 128.0.0.0 a 191.255.255.255.

3 Clase C. Son direcciones que usan 21 bits para identificar la red y 8 bits para la máquina dentro de la red. Se permiten 2097150 redes distintas, con 254 máquinas cada una. El rango de direcciones va de 192.0.0.0 a 223.255.255.255.

4 Clase D. Estas direcciones son reservadas para multicasting (envío de un mismo paquete a todos los equipos que se encuentran en la red definida por la dirección IP dada). El rango de direcciones va de 224.0.0.0 a 239.255.255.255.

5 Clase E. Son reservadas para uso futuro o experimental. El rango de direcciones va de 240.0.0.0 a 255.255.255.255.

Por lo tanto, existe una clasificación de las posibles direcciones que se asignan a un dispositivo en función de lo extensa que sea la red donde se encuentra este dispositivo. Debido al gran crecimiento de Internet, actualmente el número de redes en uso de clase B y clase C ha llegado casi al límite.

La máscara de red es un valor binario de 32 bits que se utiliza para poder discriminar cuál es la parte de red y cuál es la parte de host de una dirección IP.



Actividades

4. Explique brevemente al menos dos maneras de averiguar la dirección IP que tiene asignada su ordenador en la red.


Aplicación práctica

Suponga que a la dirección 150.20.247.0 se le aplica la máscara de subred 255.255.240.0. Obtenga el identificador de red y de host.

SOLUCIÓN

En este caso, la separación de las partes de red y de host no es tan inmediata. Esto es debido a que en el byte de la máscara de valor 240, parte de sus bits están a ‘1’ y otra parte a ‘0’. Resultará más fácil interpretar la dirección si se descompone en binario el byte de la máscara de valor 240, así como el byte correspondiente en la dirección IP, y se contrasta, tal y como se muestra a continuación:

Máscara de subred:255.255.240.0255.255.11110000.0
Dirección IP:150.20.247.35150.20.11110111.35
Id de Red:150.20.11110000.0

150.20.11110000.0 = 150.20.240.0

El análisis anterior indica que la forma habitual de expresar el significado de la dirección 150.20.247.35 con máscara 255.255.240.0 sería: host 1827 en la subred 150.20.240.0. El número de host se calcula traduciendo a decimal el número binario correspondiente a la parte de host de la dirección.

IP

IP es el protocolo que se encarga del enrutamiento de los datagramas entre dos redes que no se encuentran en la misma ubicación geográfica. Para que exista conexión a este nivel se debe conocer cuál es la dirección IP del destino al que se quiere enviar el mensaje. Es un protocolo no orientado a la conexión y sin comprobación de errores. Estas funciones serán objetivo de las capas superiores.

Por lo tanto, el protocolo IP añade información de encaminamiento al datagrama para que este sea capaz de seguir una ruta que alcance su destino a través de la red.

ICMP

ICMP es un protocolo de la capa de Internet pero tiene la particularidad de que depende directamente del protocolo IP, por lo tanto se podría ver como un peldaño por encima en la jerarquía de protocolos. ICMP se desarrolló principalmente para monitorizar el estado de la red y, por lo tanto, para enviar mensajes de control de flujo, detección de destinos inalcanzables, redireccionamiento de rutas, etc. Pero también, se puede usar como herramienta para probar la conectividad de una red.

Capa de red

La capa de red es la que se encuentra conectada de forma directa al medio físico de transmisión. Esta capa se encarga de transformar el datagrama que suministra la capa IP en una trama de bits. Además, es la capa que añade la información necesaria para traducir la dirección IP de la máquina en la dirección física, (MAC), necesaria para dirigir el mensaje a la interfaz de red de la máquina destino.

Esta capa está compuesta de los protocolos que se encargan de establecer las características físicas para que el mensaje se transmita por el medio físico. Ejemplos: ETHERNET, FDDI, etc.

ARP

Cuando un datagrama llega a la red que contiene el equipo de destino, necesita saber identificar cuál es la máquina del extremo de la comunicación. El protocolo ARP se encarga de obtener la dirección MAC a partir de la dirección IP del datagrama mediante una consulta a todas las máquinas conectadas a la red. Una vez conseguida la MAC, el datagrama es enviado a la red y la interfaz de red correspondiente se hará cargo del datagrama.



Actividades

5. Busque información sobre la relación que existe entre el modelo OSI y el conjunto de protocolos TCP/IP. Realice un resumen o una tabla comparativa.

Configurando TCP/IP

Para el uso del protocolo TCP/IP es necesario la configuración del software específico que permita al equipo informático acceder a los mecanismos que posibilitan una comunicación a través de la red.

Los pasos a seguir son independientes del tipo de conexión que se realice:

1 Configurar el equipo físico: instalación de la tarjeta de red.

2 Instalación del software de red: este tipo de software es proporcionado por el sistema operativo.

3 Configurar el equipo para utilizar TCP/IP: el administrador de red establece los parámetros necesarios en la configuración del software de red.

4 Instalar programas específicos para acceder a servicios de red: estos programas establecen la comunicación adecuada según el tipo de servicio que se desea usar. Ejemplos: FTP, correo, sesión remota, etc.

Existen ciertos programas o comandos que son utilizados para configurar el software de red del equipo, así como para realizar operaciones de mantenimiento sobre la red para resolver los errores que se puedan producir. Entre todas las utilidades, se nombran las siguientes, por ser las más genéricas y utilizadas en la práctica.

Ping

Ping es una utilidad de diagnóstico que comprueba el estado de la comunicación de una máquina con uno o varios equipos remotos de una red TCP/IP.

Ping trabaja a nivel de capa de red. El programa usa el envío de paquetes ICMP para comprobar la comunicación. En muchas ocasiones, se suele usar para medir la latencia de la red entre dos puntos remotos.

Para equipos Windows, se ejecuta el programa sobre la línea de comandos de la siguiente forma:

Ping [direccion IP o nombre de la máquina con la que conectarse]


Resultado de ejecución del comando Ping en el símbolo de sistema desde Windows

El programa devuelve los tiempos que tarda en responder el equipo destino a los sucesivos envíos de paquetes ICMP.

Para equipos Linux, se ejecuta el programa sobre un terminal de la siguiente forma:


Resultado de ejecución del comando Ping en un terminal de una distribución Linux

Tracert y Traceroute

Tracert y Traceroute son dos programas que permiten seguir la pista de los paquetes que llegan desde otro equipo de la red. Muestra datos sobre latencias y estimación de distancias de las máquinas involucradas en la transmisión. Tracert es la herramienta de Windows, mientras que Traceroute es la propia de Linux.

La diferencia entre ambas herramientas radica en que Tracert envía paquetes ICMP para capturar la información de los nodos intermedios, mientras que Traceroute envía segmentos UDP con puertos destino aleatorios. Se envían tres paquetes que son monitorizados.


Resultado de ejecución del comando Tracert en el símbolo de sistema desde Windows


Resultado de ejecución del comando Traceroute en un terminal de una distribución Linux

La primera columna indica el número de salto, a continuación viene el nombre o dirección IP de la máquina por la que pasa y los tres tiempos siguientes indican el tiempo de respuesta para los paquetes enviados (un asterisco significa que no se obtuvo respuesta).

Netstat

Netstat es una herramienta que proporciona un listado con las conexiones activas en un equipo, tanto entrantes como salientes.


Resultado de ejecución del comando Netstat en el símbolo de sistema desde Windows


Resultado de ejecución del comando Netstat en un terminal de una distribución Linux

La primera columna indica el protocolo usado para la conexión, después se indican las direcciones y puertos usados en los dos extremos de la conexión. La última columna muestra el estado en el que se encuentra la conexión. El estado de una conexión puede ser alguno de los siguientes:

1 ESTABLISHED. El socket tiene una conexión establecida.

2 SYN_SENT. El socket está intentando iniciar una conexión.

3 SYN_RECV. Una petición de conexión fue recibida por la red.

4 FIN_WAIT1. El socket está cerrado, y la conexión está finalizándose.

5 FIN_WAIT2. La conexión está cerrada, y el socket está esperando que finalice la conexión remota.

6 TIME_WAIT. El socket está esperando después de cerrarse a que concluyan los paquetes que siguen en la red.

7 CLOSED. El socket no está siendo usado.

8 CLOSE_WAIT. La conexión remota ha finalizado, y se espera que se cierre el socket.

9 LAST_ACK. La conexión remota ha finalizado, y se espera que se cierre el socket. Esperando el acknowledgement.

10 LISTEN. El socket está esperando posibles conexiones entrantes.

11 CLOSING. Ambos sockets han finalizado pero aún no fueron enviados todos los datos.

12 UNKNOWN. El estado del socket no se conoce.

13 DELETE_TCB. Se está eliminando el búfer del control de transmisión (TCB) para la conexión TCP.

Ipconfig e Ifconfig

Ipconfig muestra información sobre el tipo de adaptador de red, así como la dirección IP, máscara de subred y puerta de enlace usados por el adaptador en las comunicaciones y otros muchos datos.


Resultado de ejecución del comando Ipconfig en el símbolo de sistema desde Windows


Resultado de ejecución del comando Ifconfig en un terminal de una distribución Linux


Aplicación práctica

1. Utilice Netstat para ver las conexiones existentes en su ordenador y anote las cinco primeras en la tabla.

ProtocoloIP Origen:PuertoIP Destino:PuertoEstado

2. Con el siguiente resultado Netstat, un ingeniero de red nuevo sospecha que su equipo host ha sufrido un ataque exterior a los puertos 1070 y 1071. ¿Cómo respondería?

C:\> netstat -n Conexiones activas Protocolo TCP TCP C:\> Dirección Local 127.0.0.1:1070 127.0.0.1:1070 Dirección extranjera 127.0.0.1:1071 127.0.0.1:1070 Estado ESTABLISHED ESTABLISHED

3. Investigue cuál es la configuración de su equipo y rellene la tabla adjunta.

Dirección IP
Máscara de red
Puerta de enlace
Dirección MAC
DNS
Tipo de Adaptador

SOLUCIÓN

1 Para rellenar la tabla con las conexiones entrantes y salientes se ejecutará el siguiente comando sobre la línea de comandos, si el equipo tiene el sistema operativo Windows, o bien desde una terminal si lo hace con el sistema operativo Linux: netstat

2 No ha sufrido ningún ataque exterior. De entrada, las conexiones establecidas son del mismo equipo, por lo que se entiende que se ha establecido una comunicación entre dos aplicaciones del mismo equipo.

3 Para rellenar la tabla con su configuración de red debe ejecutar los siguientes comandos:Para Windows: Ejecutar ipconfig sobre la línea de comandos de la siguiente forma: ipconfig /allPara Linux: Ejecutar ifconfig

Instalación y configuración del software de servidor web. IFCT0509

Подняться наверх