Que es TCP/IP:
TCP/IP fue desarrollado y presentado por el Departamento de Defensa de EE.UU. En 1972 y fue aplicado en ARPANET (Advanced Research Projects Agency Network),
que era la red de área extensa del Departamento de Defensa como medio
de comunicación para los diferentes organismos de EE.UU. La transición
hacia TCP/IP en ARPANET se concretó en 1983.
Se conoce como familia de protocolos de Internet al conjunto
de protocolos de red que son implementados por la pila de protocolos
sobre los cuales se fundamenta Internet y que permiten la transmisión
de datos entre las redes de computadoras.
Los dos protocolos más importantes, y que fueron también los primeros en definirse y también los más utilizados, son TCP (Protocolo de Control de Transmisión o Transmission Control Protocol) e IP (Protocolo de Internet o Internet Protocol), de ahí que se denomine también como Conjunto de Protocolos TCP/IP.
Los tipos de protocolos existentes superan los cien, ente los cuales
podemos mencionar como los más conocidos a HTTP, FTP, SMTP, POP, ARP,
etc.
TCP/IP es la plataforma que sostiene Internet y que permite la comunicación entre diferentes sistemas operativos en
diferentes computadoras, ya sea sobre redes de área local (LAN) o redes de área extensa (WAN).
Niveles de pila.
En la actualidad continúa la discusión respecto a si el modelo TCP/IP de cinco niveles encaja dentro del modelo OSI
(Interconexión de Sistemas Abiertos u OpenSystems Interconnection) de siete niveles.
|
Modelo
|
Niveles
|
|
TCP/IP
|
5 Aplicación
4 Transporte
3 Red
2 Enlace
1 Físico.
|
|
OSI
|
7 Aplicación
6 Presentación
5 Sesión
4 Transporte
3 Red
2 Enlace de datos
1 Físico
|
Modelo TCP/IP.
Utiliza encapsulamiento para proveer la abstracción de protocolos y
servicios hacia diferentes capas en la pila. La pila consiste de cinco
niveles:
|
Nivel
|
Nombre
|
Descripción
|
|
5
|
Aplicación.
|
Se compone de diversos protocolos de servicios como:
- DNS (Domain Name System)
- TLS/SSL (Transport Layer Security)
- TFTP (Trivial File Transfer Protocol)
- FTP (File Transfer Protocol)
- HTTP (Hyper Text Transfer Protocol)
- IMAP (Internet Messsage Access Protocol)
- IRC (Internet Relay Chat)
- NNTP (Network News Transfer Protocol)
- POP3 (Post Office Protocol)
- SIP (Session Iniciation Protocol)
- SMTP (Simple Mail Transfer Protocol)
- SNMP (Simple Network Management Protcol)
- SSH (Secure Shell)
- TELNET
- BitTorrent
- RTP (Real-time Transport Protocol)
- rlogin
- ENRP (Endpoint Handlespace Redundancy Protocol)
Los protocolos de encaminamiento como BGP (Border Gateway Protocol) y RIP (Routing Information Protocol) que utilizan transporte por TCP y UDP respectivamente pueden ser considerados como parte de esta capa.
|
|
4
|
Transporte.
|
Se compone de diversos protocolos de servicios como:
- TCP (Transmision
Control Protocol)
- UDP (User
Datagram Protocol),
- DCCP (Datagram
Congestion Control Protocol)
- SCTP (Stream
Control Transmision Protococol)
- IL (Internet
Link Protocol, similar a TCP pero
más simple)
- RUDP (Reliable
User Datagram Protocol), etc.
Los protocolos como OSPF (Open Shortest Path First), que corren sobre IP, pueden ser también considerados como parte de esta capa. ICMPInternet Control Message Protocol) e IGMP (Internet Group Management Protocol) que también utilizan IP pueden ser considerados parte del Nivel de Red. (
|
|
3
|
Red.
|
Se compone de diversos protocolos de servicios como IP (incluyendo IPv4 e IPv6). Protocolos como ARP (Address Resolution Protocol) y RARP (Reverse Address Resolution Protocol)
operan por debajo de IP, pero arriba del Nivel de enlace, de modo que
pertenecen a un punto intermedio entre el Nivel de Red y el Nivel de
Enlace.
|
|
2
|
Enlace.
|
Compuesto de protocolos como:
- Ethernet
- Wi-Fi
- Token ring
- PPP (Point-to-Point Protocol)
- SLIP (Serial
Line Internet Protocol)
- FDDI (Fiber Distributed Data Interface)
- ATM (Asynchronous Transfer Protocol)
- Frame Relay
- SMDS (Switched Multi-megabit Data Services)
|
|
1
|
Físico.
|
Medio físico.
|
Los niveles más cercanos altos son los más cercanos al usuario,
mientras que los que están más hacia abajo están más cercanos a la
transmisión física de los datos. Salvo por evidentes razones en el
primer y último niveles, cada nivel tiene un nivel superior y un nivel
inferior que, respectivamente, o bien utilizan un servicio del nivel o
proveen un servicio. Un método de abstracción para entender esto es
mirar los niveles como proveedores o consumidores de servicios.
Ejemplo: TCP en el nivel de transporte requiere un protocolo del nivel
de Red, como sería IPv4, el cual a su vez requiere de un protocolo del
nivel de enlace, siendo TCP un proveedor de servicio para los
protocolos del nivel de aplicación.
Nivel de aplicación.
Es el nivel que utilizan los programas de red más comunes a fin de
comunicarse a través de una red. La comunicación que se presenta en
este nivel es especifica de las aplicaciones y los datos transportados
desde el programa están en el formato utilizado por la aplicación y van
encapsulados en un protocolo del Nivel de Transporte. Siendo
que el modelo TCP/IP no tiene niveles intermedios, el nivel de
Aplicación debe incluir cualquier protocolo que actúe del mismo modo
que los protocolos del Nivel de Presentación y Nivel de Sesión del Modelo OSI.
Los protocolos del Nivel de Transporte más comúnmente utilizados son
TCP y UDP, mismos que requieren un puerto disponible y específico para
el servicio para los servidores y puertos efímeros. Aunque los
encaminadores (routers) e interruptores (switches) no utilizan este
nivel, las aplicaciones que controlan el ancho de banda si lo utilizan.
Nivel de Transporte.
Este nivel principalmente provee lo necesario para conectar
aplicaciones entere si a través de puertos. Mientras que IP (Internet
Protocol),del Nivel de Red, provee solamente la mejor forma de entrega,
el nivel de transporte es el primer nivel que se encarga de la
fiabilidad. De entre todos los protocolos de este nivel, tanto TCP como
UDP son utilizados para transportar un gran numero de aplicaciones de
alto nivel. Las aplicaciones en cualquier nivel se distinguen a través
de los puertos TCP o UDP que utilicen.
-
TCP.
-
El mejor ejemplo de este nivel es TCP, que es un protocolo orientado
hacia conexión que resuelve numerosos problemas de fiabilidad para
proveer una transmisión de bytes fiable ya que se encarga de que los
datos lleguen en orden, tenga un mínimo de correcciones de errores, se
descarten datos duplicados, se vuelvan a enviar los paquetes perdidos o
descartados e incluya control de congestión de tráfico.
La conexiones a través de TCP tienen tres fases:
-
Establecimiento de la conexión.
Antes de que el cliente intente conectarse con el servidor, éste
último debe primero ligarse hacia el puerto para abrirlo para las
conexiones, es decir, una apertura pasiva. Una vez establecida el cliente puede iniciar la apertura activa. Se requiere de un saludo de tres etapas:
- La apertura activa se realiza enviando un paquete SYN (sincroniza) hacia el servidor.
- En respuesta, el servidor responde con un paquete SYN-ACK (conformación de sincronización).
- Finalmente el cliente envía un paquete ACK (confirmación) de regreso hacia el servidor.
En este punto tanto cliente como servidor han recibido una conformación de la conexión.
-
Transferencia de datos.
Hay tres funciones clave que diferencian a TCP de UDP:
- Transferencia de datos libre de errores.
- Transferencia de datos ordenada.
- Retransmisión de paquetes perdidos.
- Descartado de paquetes duplicados.
- Ajuste en la congestión de la transmisión de datos.
-
Terminación de la conexión.
Esta etapa utiliza un saludo de tres vías, con cada extremo de la
conexión terminando independientemente. Cuando una de los extremos
desea detener su parte de la conexión, envía un paquete FIN, que la
otra parte confirma con un paquete ACK. Por tanto una interrupción de
la conexión requiere un par de paquetes FIN y ACK desde cada lado de la
conexión TCP.
Una conexión puede quedar abierta a medias
cuando uno de los extremos ha terminado la conexión desde su lado pero
el otro extremo no. El extremo que terminó la conexión ya no puede
enviar datos en la conexión, pero el el otro extremo si.
El
método más común sea un saludo de tres etapas donde un anfitrión A
envía un paquete FIN y el anfitrión B responde con un paquete FIN y un
ACK (en el mismo paso) y el anfitrión A responde con un paquete ACK.
TCP realiza las siguientes etapas en su zócalo:
- LISTEN
- SYN-SENT
- SYN-RECEIVED
- ESTABLISHED
- FIN-WAIT-1
- FIN-WAIT-2
- CLOSE-WAIT
- CLOSING
- LAST-ACK
- TIME-WAIT
- CLOSED
LISTEN representa la conexión en espera de peticiones desde cualquier puerto TCP remoto. SYN-SENT representa la espera del TCP remoto para enviar de regreso el paquete TCP estableciendo banderas SYN y ACK. SYN-RECIVED
representa la espera para el TCP remoto para enviar de regreso la
confirmación después de haber enviado de regreso otra confirmación de
conexión al TCP remoto (establecido por el servidor TCP). ESTABLISHED
representa que el puerto está listo para recibir/enviar datos
desde/hacia el TCP remoto (lo hacen tanto clientes como servidores
TCP). TIME-WAIT representa el tiempo de espera necesario para
asegurar que el TCP remoto ha recibido la confirmación de su solicitud
de terminación de la conexión.
-
UDP.
-
UDP, a veces referido sarcásticamente como Unreliable
Datagram Protocol (Protcolo no fiable de datagrama), es un protocolo de
datagrama sin corrección; no provee las garantía de fiabilidad y
ordenamiento de TCP a los protocolos del Nivel de Aplicación y
los datagramas pueden llegar en desorden o perderse sin notificación.
Como consecuencia de lo anterior es que UDP es un protocolo más rápido
y eficiente para tareas ligeras o sensibles al tiempo proveiendo una
interfaz muy simple entre el Nivel de Red y Nivel de Aplicación.
Si se requiere algún tipo de fiabilidad para los datos transmitidos,
esta debe ser implementada en los niveles superiores de la pila.
Al igual que IP, y a diferencia de TCP, es un protocolo de mejor
esfuerzo o no-fiable. El único problema de fiabilidad que resuelve es
la corrección de errores en la cabecera y datos transmitidos a través
de un campo de 16 bits para suma de verificación (checksum),
una forma de control de redundancia con la finalidad de proteger la
integridad de datos verificando que no hayan sido corrompidos.
La estructura de paquetes UDP consiste de 4 campos.
- Puerto de origen. Encargado de identificar el puerto
que envía y que se asume será el puerto hacia donde se envía la
respuesta si se necesita. Este campo es opcional: si no se utiliza, el
valor del campo debe ser 0.
- Puerto de destino. Identifica el puerto de destino. Es obligatorio.
- Longitud.
Un campo de 16 bits que especifica la longitud del datagrama completo:
cabecera y datos. La longitud mínima es de 8 bytes ya que es la
longitud misma de la cabecera.
- Suma de verificación. Un campo de 16 bits que se utiliza para verificar errores en cabecera y datos.
Las aplicaciones más comunes que hacen uso de este tipo de protocolo
son DNS, aplicaciones de transmisión de medios, voz sobre IP (VoIP),
TFTP y juegos en línea.
-
SCTP.
-
SCTP es un mecanismo de transporte fiable orientado hacia
conexión. Está orientado también hacia transmisión de datos pero no
está orientado hacia bytes como TCP. Provee múltiples transmisiones
distribuidos sobre una misma conexión. Puede además representar una
conexión con múltiples direcciones IP de modo que si una IP falla, la
conexión no se interrumpe. Se desarrollo inicialmente para aplicaciones
de telefonía pero se puede utilizar en otras aplicaciones.
-
DCCP.
-
DCCP se encuentra en fase de desarrollo y bajo la tutela de la IETF
(Internet Engineering Task Force) que pretende proveer la semántica de
control de flujo de TCP y el modelo de servicio de datagrama de UDP a
la vista del usuario.
-
RTP.
-
RTP es un protocolo de datagrama que fue diseñado para datos en
tiempo real como la transmisión de audio y vídeo. Es un nivel de sesión
que utiliza el formato de paquetes de UDP como base. Sin embargo se
considera que pudiera acomodar debajo del nivel de transporte del
modelo TCP/IP.
Nivel de Red.
Este nivel resuelve el problema de capturar los datos a través de una red única. IP (Internet Protocol)
realiza la tarea básica de capturar los paquetes de datos desde una
fuente hacia un destino. IP puede transportar datos para una gran
cantidad de protocolos del nivel superior (Nivel de Transporte). Otro
ejemplo de protocolo de este nivel es X.25, que es un conjunto de
protocolos para redes WAN utilizando líneas telefónicas o sistema ISDN.
Nivel de Enlace.
Este nivel no es realmente parte del Conjunto de Protocolos TCP/IP,
sino que es el método utilizado para pasar paquetes desde el Nivel de
Red sobre dos diferentes anfitriones. Este proceso puede ser controlado
a través de la programática utilizada como controlador del dispositivo
para una tarjeta de red así como también sobre la Programación en firme
(Firmware) o circuitos integrados auxiliares (chipsets). Estos procesos
realizarán funciones de enlace de datos tales como añadir una cabecera
de paquete para preparar la transmisión, y entonces transmitir el todo
a través de un medio físico.
Este nivel es donde los paquetes son interceptados y enviados hacia
una Red Privada Virtual (VPN). Cuando esto se lleva a acabo, los datos
del Nivel de Enlace se consideran como los datos de la aplicación y
procede descendiendo por la pila del modelo TCP/IP para realizar la
verdadera transmisión. En el extremo receptor, los datos suben por la
pila del modelo TCP/IP dos veces, una para la VPN y otra para el
encaminamiento (routing).
Nivel Físico.
Al igual que el Nivel de Enlace, no es realmente parte del Conjunto de Protocolos TCP/IP.
Contempla todas las características físicas de la comunicación como la
naturaleza del medio, detalles de conectores, código de canales y
modulación, potencias de señal, longitudes de onda, sincronización y
tiempo de vida y distancias máximas.
Modelo OSI.
El Conjunto de Protocolos TCP/IP (y su correspondiente pila)
han sido utilizados antes de que se estableciera el modelo OSI
(Interconexión de Sistemas Abiertos u Open Systems Interconnection)
y desde entonces el modelo TCP/IP ha sido comparado con el modelo OSI
tanto en libros como en instituciones educativas. Ambas se relacionan
pero no son equiparables. El modelo OSI utiliza siete niveles, mientras
que el modelo TCP/IP utiliza cinco niveles. Los dos niveles que hacen
la diferencia en el Modelo OSI son el Nivel de Presentación y el Nivel de Sesión, mismo que podrían ser equivalentes al Nivel de Aplicación del modelo TCP/IP.
Del mismo modo que la pila del modelo TCP/IP, el modelo OSI no es lo
suficientemente diverso en los niveles inferiores para abarcar las
verdaderas capacidades del Conjunto de Protocolos TCP/IP. Un claro ejemplo es que falta un nivel intermedio para para acomodar entre el Nivel de Red y el Nivel de Transporte para poder determinar donde corresponden los protocolos ICMP e IGMP, y otro nivel intermedio entre el Nivel de Red y el Nivel de Transporte para determinar donde corresponden los protocolos ARP y RARP.
|
Nivel
|
Nombre
|
Descripción
|
|
7
|
Aplicación
|
HTTP, SMTP, SNMP, FTP, Telnet, SIP, SSH, NFS, RTSP, XMPP (Extensible Messaging and Presence Protocol), Whois, ENRP Telnet.
|
|
6
|
Presentación
|
XDR (External Data Representation), ASN.1 (Abstract Syntax Notation 1), SMB (Server Message Block),AFP (Apple Filing Protocol), NCPNetWare Core Protocol) (
|
|
5
|
Sesión
|
ASAP (Aggregate Server Access Protocol), TLS, SSH, ISO 8327 / CCITT X.225, RPC (Remote Procedure Call), NetBIOS, ASPAppletalk Session Protocol), Winsock, BSD sockets (
|
|
4
|
Transporte
|
TCP, UDP, RTP, SCTP, SPX, ATP, IL
|
|
2
|
Enlace de datos
|
Ethernet, Token ring, HDLC, Frame relay, ISDN, ATM, 802.11 WiFi, FDDI, PPP
|
|
1
|
Físico
|
Define
todas las especificaciones físicas y eléctricas de los dispositivos,
como son disposición de pines, voltajes, especificaciones de cableado,
concentradores, repetidores, adaptadores de red, etc.
Cable, Radio, fibra óptica, Red por palomas.
|
Los niveles 7 al 4 se clasifican como niveles de anfitrión, mientras que los niveles inferiores del 1 al 3 se clasifican como niveles de medios.
|