Los niveles que constituyen TCP/IP son los siguientes:
- Nivel 1 (Físico). Constituido por el hardware de red básico.
- Nivel 2 (Acceso a la red). Encargado de dar formato a las tramas, el direccionamiento físico, y la interfaz entre el ordenador el el interfaz de red (NIC).
- Nivel 3 (Interred). Encargado del envío de paquetes en una interred a través de múltiples equipos de rutado.
- Nivel 4 (Transporte). Se ocupa del transporte de mensajes desde una aplicación en un ordenador a una aplicación en otro ordenador (o en el mismo).
- Nivel 5 (Aplicación).
Otros autores dividen la estructura TCP/IP en estos cuatro niveles:
- Nivel 1 (Capa de acceso a la red). Se encarga del intercambio de datos entre un host y la red y entre los dispositivos de la misma red.
- Nivel 2 (Capa de interred). Se encarga de encaminar los mensajes a través de las interredes.
- Nivel 3 (Capa de host a host). Se encarga de la integridad de los datos de punto a punto.
- Nivel 4 (Capa de proceso/aplicación). Abarca las funciones de las capas de sesión, presentación y aplicación del modelo OSI.
Las direcciones IP tienen una longitud de 32 bits y constan de dos campos:
En terminología TCP/IP, una red consiste en un grupo de hosts que pueden comunicarse directamente sin utilizar un encaminador. Todos los hosts TCP/IP que componen una misma red deben tener asignado el mismo identificador de red. Los hosts con distintos identificadores de red deben comunicarse a través de un encaminador.
Una interred TCP/IP es una red de redes interconectadas a través de encaminadores. Cada una de las redes de una interred debe disponer de un identificador de red único.
Cuando se creó el esquema de direcciones IP, se definieron unas clases de direcciones IP adaptadas a los distintos tipos de redes existentes. Se asignó un número distinto de bits a los identificadores de red de las distintas clases. Los bits de las direcciones se organizan en cuatro bytes, según el siguiente esquema:
Por convenio, cuando los campos identificadores de red tienen el valor 0, la dirección hace referencia a una red. Por ejemplo, 135.8.0.0 hace referencia a la red cuyo identificador es 135.8.
La tabla resume las direcciones disponibles de clase A, B y C.
| Clase | Desde | Hasta | Identificadores de red | Identificadores de host |
| A | 1 | 126 | 126 | 16.777.214 |
| B | 128 | 191 | 16.384 | 65.534 |
| C | 192 | 223 | 2.097.152 | 254 |
Existen un rango de direcciones IP que no pueden utilizarse en Internet. No son encaminables y los encaminadores Internet no las envían. Existe un rango reservado para cada clase de dirección IP (RFC 1918):
El primer bloque es una única dirección de red de clase A. El segundo bloque es un conjunto de 16 direcciones de red contiguas de clase B. El tercer bloque es un conjunto de 256 direcciones de red contiguas de clase C.
Los routers presentes en Internet no encaminan estas direcciones.
| identificador de red | identificador de host |
| identificador de red | identificador de subred | identificador de host |
Los dos octetos finales de una dirección de clase B componen el identificador de host. Para codificar el identificador de subred, es posible reservar algunos de los bits del identificador de host utilizando un máscara de subred, como se ve en la figura .
La máscara de subred es un número de 32 bits. Un 1 indica que el bit correspondiente de la dirección IP forma parte del identificador de subred. Un 0 indica que el bit pertenece al identificador de host.
| Dirección IP | 1 0 1 0 0 0 0 1 | 0 1 1 1 0 1 0 1 | 1 0 1 1 | 0 1 1 1 | 1 0 1 1 0 1 1 1 |
| Máscara de subred | 1 1 1 1 1 1 1 1 | 1 1 1 1 1 1 1 1 | 1 1 1 1 | 0 0 0 0 | 0 0 0 0 0 0 0 0 |
| 1 0 1 0 0 0 0 1 | 0 1 1 1 0 1 0 1 | 1 0 1 1 | 0 1 1 1 | 1 0 1 1 0 1 1 1 | |
| ¬ Identificador de red ® | Subred | Identificador de host
| |||
Las máscaras de subred consisten en bits adyacentes de máximo orden (se podrían usar máscaras de subred con bits no contiguos, pero esto no tiene ningún sentido). Por tanto, sólo es necesario recordar ocho números decimales para poder reconocer todas las máscaras de subred. Las nueve máscaras de subred (más frecuentes) son:
| Binario | Decimal |
| 00000000 | 0 |
| 10000000 | 128 |
| 11000000 | 192 |
| 11100000 | 224 |
| 11110000 | 240 |
| 11111000 | 248 |
| 11111100 | 252 |
| 11111110 | 254 |
| 11111111 | 255 |
El número de bits en la máscara de red se ajusta en función del número de subredes necesarias. En direcciones de clase B, la máscara de subred 255.255.255.0 reserva el tercer octeto para el direccionamiento de subredes y permite 254 identificadores de subred(1).
- Clase A: 255.0.0.0.
- Clase B: 255.255.0.0.
- Clase C: 255.255.255.0.
Es necesario configurar la máscara de subred utilizando unos en los bits que corresponden al campo identificador de red de la clase. Por ejemplo, una máscara de red 255.255.0.0 no es válida en una dirección de clase C.
11000011 01100100 11001101 00000000
La máscara de subred utilizada en el ejemplo es 255.255.255.224, cuyo equivalente binario es:
11111111 11111111 11111111 11100000
|
Se reservan tres bits del identificador de host para los identificadores de subred. Como éstos no pueden ser sólo ceros o unos, hay 23-2=6 identificadores de red (001, 010, 011, 100, 101 y 110). Con 5 bits disponibles para identificar el host, cada red puede llegar a admitir 25-2=30 hosts (los identificadores 00000 y 11111 no están disponibles).
Consideremos la dirección IP 195.100.205.175. Su equivalente binario es:
11000011 01100100 11001101 10101111Tras aplicar la máscara de subred, los tres bits reservados para el identificador de subred se convierten en 10100000 (160 decimal). El identificador de host es 01111 (15 decimal).
La tabla resume los valores válidos del cuarto octeto al utilizar la máscara de red 255.255.255.224.
| Subred (binario) | Subred (decimal) | Valores disponibles para el cuarto octeto (binario) | Valores disponibles para el cuarto octeto (decimal) | ||||||||||||||||||||||||
|
|
|
|
Dada la red 10.16.176.0, con 900 PC, calcular:
- Máscara de subred,
- dirección IP del primer PC,
- dirección IP del último PC,
- dirección IP de broadcast.
La comunicación entre sistemas requiere conocer tanto las direcciones físicas (las del nivel de enlace) como las direcciones IP (del nivel de interred). Se plantean dos problemas:
El ARP (Address Resolution Protocol, Protocolo de Resolución de Direcciones) se encarga de averiguar las direcciones físicas a partir de las direcciones IP.
El mensaje ARP se envía encapsulado en el campo de datos de una trama. Un campo en la cabecera de la trama permite identificar el tipo de mensaje).
Las principales funcionalidades del protocolo IP son las siguientes:
| 0 « 4 | 4 « 8 | 8 « 16 | 16 « 19 | 19 « 24 | 24 « 31 | |
| vers. IP | longc | tipo servicio | longitud total | |||
| identificación | flags | offset segmento | ||||
| tiempo vida | protocolo | checsum de la cabecera | ||||
| dirección IP fuente | ||||||
| dirección IP destino | ||||||
| opciones IP (variable) | relleno | |||||
| DATOS | ||||||
El campo longc indica el tamaño de la cabecera del datagrama en palabras de 32 bits. Su valor mínimo es 5.
La longitud total del datagrama se expresa en bytes, e incluye la cabacera y el área de datos; el tamaño máximo es 65.535 bytes.
El campo offset fragmento se utiliza cuando se fragmentan datagramas en la transmisión (por ejemplo, la MTU2 en Ethernet es de 1500 bytes para el campo de datos). E indica la posición del fragmento dentro del datagrama original.
En el campo flags se tienen dos bits:
El campo protocolo indica el protocolo de nivel superior (transporte) al que van destinados los datos. Se usa para demultiplexar paquetes.
Dos hosts pueden comunicarse directamente mediante tramas sólo si comparten la misma red IP (diálogo directo). En ese caso, el emisor encapsula el datagrama en una trama, averigua la dirección física del destino (ARP) y le envía directamente la trama.
Cuando el destino no está en la misma red que el origen hay que enviar el datagrama a un router (diálogo indirecto). El proceso es similar, pero ahora la dirección física del destino es la del router (la dirección IP sigue siendo la del destino real).
Estas tablas están tanto en los hosts como en los routers. Deben ser pequeñas para un funcionamiento más eficiente. Los tipos de entradas posibles en una tabla de encaminamiento son:
Los protocolos más actualizados para actualizar las tablas son:
El protocolo ICMP (Internet Control Message Protocol, Protocolo de Mensajes de Control de Internet) permite enviar mensajes de control con lo que se puede saber, por ejemplo, porqué no ha llegado un datagrama.
Los mensajes ICMP viajan encapsulados en en el campo datos de un datagrama IP; sin embargo, ICMP no se considera un protocolo de nivel superior al IP, sino también del nivel de interred.
- Tipo (8 bits). Identifica el tipo de mensaje.
- Código (8 bits). Más información sobre el tipo de mensaje.
- Checksum (16 bits). Aplicado sobre todo el mensaje.
Los principales tipos de mensajes ICMP son:
- 0. Contestación de eco.
- 3. Destino inalcanzable.
- 4. Paquete de restricción.
- 5. Redireccionamiento.
- 8. Petición de eco.
- 11. Tiempo excedido en datagrama.
La orden ping se basa en el empleo de mensajes de petición y respuesta de eco. Se utiliza para detectar problemas en la red. Permite:
- Comprobar si el destino está activo.
- Comprobar que existe una ruta hasta él.
- Medir el tiempo de ïda y vuelta".
- Estimar la fiabilidad de la ruta.
El nivel de transporte en TCP/IP (o de host a host) proporciona dos tipos de servicio: con conexión y sin conexión, que corresponden, respectivamente, a los protocolos TCP y UDP.
UDP (User Datagram Protocol) proporciona un mecanismo para distinguir múltiples fuentes y destinos en un mismo host: los puertos.
Los mensajes UDP se envían encapsulados en el campo de datos de un datagrama IP. UDP proporciona un servicio de datagramas de usuario:
| 0 « 16 | 16 « 31 |
| Puerto origen UDP | Puerto destino UDP |
| Longitud mensaje | Checksum |
| Datos | |
El puerto origen es opcional.
- Estática. Determinados servicios siempre utilizan el mismo puerto (puertos bien conocidos (WKP)).
- Dinámica. Cuando un programa necesita un puerto, el software de red le asigna uno que esté disponible.
El TCP (Transmission Control Protocol) es un protocolo del nivel de transporte que proporciona fiabilidad en la comunicación de datos. Al igual que UDP utiliza el mecanismo de puertos para poder tener varios orígenes y destinos en una misma máquina.
Sus características básicas son:
- Proporciona un servicio orientado a la conexión: fiable y ordenado.
- El flujo de datos es como una secuencia de bytes.
- El software del protocolo decide cómo dividir (o agrupar) las unidades de datos que la aplicación le transfiere.
- Por motivos de seguridad, el protocolo no especifica la interfaz con la aplicación (sockets).
Una conexión TCP está identificada por los dos extremos, en la forma (IP origen, puerto origen), (IP destino, puerto destino). Un mismo número de puerto puede estar siendo utilizado en distintas conexiones. Como en UDP, existen asignación de puertos estática (WKP) y dinámica. Se puede utilizar el mismo puerto para TCP y UDP.
Para la detección de duplicados se utilizan los números de secuencia de los segmentos. Cada segmento lleva un número de secuencia que corresponde al del primer byte del campo de datos.
Cada segmento se divide en cabecera y datos, según se ve en la siguiente figura (:
| 0 | 4 | 10 | 16 | 24 31 |
| Puerto TCP origen | Puerto TCP destino | |||
| Número de secuencia | ||||
| Número de reconocimiento | ||||
| long | reservado | código | ventana | |
| checksum | puntero a datos urgentes | |||
| opciones | relleno | |||
| DATOS | ||||
El número de secuencia identifica la secuencia del primer byte de datos del segmento en el flujo emisor. El número de reconocimiento indica cuál es el siguiente byte de datos que se espera recibir; es válido si el bit ACK del campo código está activo. El campo long indica la longitud de la cabecera en palabras de 32 bits.
Los bits del campo código determinan el tipo de segmento y el significado de alguno de sus campos. Estos bits, de izquierda a derecha son:
- URG. El puntero a datos urgentes es válido.
- ACK. El campo de reconocimiento es válido.
- PSH. Este segmento solicita un PUSH.
- RST. Reiniciar la conexión.
- SYN. Establecimiento de conexión.
- FIN. El emisor llegó al final de su secuencia de datos.
El campo ventana indica el tamaño del buffer del receptor, y determina el tamaño de la ventana de transmisión. El checksum se aplica a todo el segmento (cabecera y datos). Las opciones permiten negociar algunos parámetros entre los TCP de ambos extremos, como el tamaño máximo de segmento durante la transmisión (MSS).
- Establecimiento de conexión, con sincronización y negociación de parámetros.
- Transferencia de datos.
- Cierre de conexión.
Para ello utiliza un servicio de entrega (IP) no fiable; por ello, los procesos de establecimiento y cierre deberán ser meticulosos, para garantizar aperturas y cierres correctos.
Sus principales características son:
1Como en el caso de los identificadores de red, los de subred no pueden constar por completo de ceros o unos; por eso se tienen 254 identificadores de subred y no 256.
2Maximum Transfer Unit, tamaño máximo de las tramas