Download - Token Ring
Token Ring
Saltar a: navegación, búsqueda
IBM 8228 MAU.
Conector hermafrodita IBM con clip de bloqueo.
Token Ring es una arquitectura de red desarrollada por IBM en los años 1970 con topología física en anillo y técnica de acceso de
paso de testigo, usando un frame de 3 bytes llamado token que viaja alrededor del anillo. Token Ring se recoge en el estándar IEEE
802.5. En desuso por la popularización de Ethernet; actualmente no es empleada en diseños de redes.
Contenido
1 El estándar IEEE 802.5
2 Características principales
3 MAC en Token Ring
4 Operación
5 Funciones de mantenimiento / supervisión
6 Prioridades
7 Enlaces externos
El estándar IEEE 802.5
El IEEE 802.5 es un estándar por el Institute of Electrical and Electronics Engineers (IEEE), y define una red de área local LAN en
configuración de anillo (Ring), con método de paso de testigo (Token) como control de acceso al medio. La velocidad de su
estándar es de 4 ó 16 Mbps.
El diseño de una red de Token Ring fue atribuido a E. E. Newhall en el año 1969. IBM publicó por primera vez su topología de
Token Ring en marzo de 1982, cuando esta compañía presentó los papeles para el proyecto 802 del IEEE. IBM anunció un producto
Token Ring en 1984, y en 1985 éste llegó a ser un estándar de ANSI/IEEE.
Es casi idéntica y totalmente compatible con la red del token ring de IBM. De hecho, la especificación de IEEE 802.5 fue modelada
después del token ring, y continúa a la sombra ésta. Además, el token ring de la IBM especifica una estrella, con todas las estaciones
del extremo unidas a un dispositivo al que se le llama "unidad del acceso multiestación" (MSAU). En contraste, IEEE 802.5 no
especifica una topología, aunque virtualmente todo el IEEE 802.5 puesto en práctica se basa en una estrella, y tampoco especifica un
tipo de medios, mientras que las redes del token ring de la IBM utilizan el tamaño del campo de información de encaminamiento.
El IEEE 802.5 soporta dos tipos de frames básicos: tokens y frames de comandos y de datos. El Token es una trama que circula por
el anillo en su único sentido de circulación. Cuando una estación desea transmitir y el Token pasa por ella, lo toma. Éste sólo puede
permanecer en su poder un tiempo determinado (10 ms). Tienen una longitud de 3 bytes y consiste en un delimitador de inicio, un
byte de control de acceso y un delimitador de fin. En cuanto a los Frames de comandos y de datos pueden variar en tamaño,
dependiendo del tamaño del campo de información. Los frames de datos tienen información para protocolos mayores, mientras que
los frames de comandos contienen información de control.
Características principales
Utiliza una topología lógica en anillo, aunque por medio de una unidad de acceso de estación múltiple (MSAU), la red
puede verse como si fuera una estrella. Tiene topologia física estrella y topología lógica en anillo.
Utiliza cable especial apantallado, aunque el cableado también puede ser par trenzado.
La longitud total de la red no puede superar los 366 metros.
La distancia entre una computadora y el MAU no puede ser mayor que 100 metros.
A cada MAU se pueden conectar ocho computadoras.
Estas redes alcanzan una velocidad máxima de transmisión que oscila entre los 4 y los 16 Mbps.
Posteriormente el High Speed Token Ring (HSTR) elevó la velocidad a 110 Mbps pero la mayoría de redes no la
soportan.
MAC en Token Ring
Formato de trama:
1 byte 1 byte 1 byte 6 bytes 6 bytes >= 0 4 bytes 1 byte 1 byte
SD AC FC Dir. Destino Dir. Origen Info FCS ED FS
Formato del testigo:
SD AC ED
SD/ED (Start / Ending designator): Codificación HH ó LL (No válidos en Manchester Diferencial).
AC: Access control.
PPP T M RRR
PPP: Prioridad.
T: Testigo (Si/No).
M: Monitorización.
RRR: Reserva de prioridad.
FC: Frame Control (Tipo)
Datos (LLC-PDU).
Control (Mantenimiento y operación de la red).
FCS: CRC por errores.
FS: Frame Status, sirve para confirmación MAC.
A C rr A C rr
A: Se ha pasado por el destino.
C: El destinatario la ha leído.
Operación
Hosts con datos de prioridad P (8 niveles).
La estación ve pasar el testigo, si nadie transmite datos, el testigo esta circulando continuamente.
Captura del testigo: Aprovecha SD del testigo e introduce su trama sólo si la prioridad del testigo es menor o igual que
la de los datos a transmitir.
Retiene el testigo durante el Token Holding Time (máximo tiempo que puede tener el token una estación) - 10 ms - y
transmite durante dicho tiempo (Va retirando también las tramas transmitidas).
Pone en circulación el testigo.
Funciones de mantenimiento / supervisión
Estación supervisora:
Monitoriza la red.
Envía periodicamente una trama de control (supervisor activo).
Vigila la presencia del testigo:
Si no lo encuentra tras cierto tiempo, lo pone de nuevo en circulación.
Vigila la longitud del anillo para que sea mayor o igual que 24 bits (un testigo completo) añadiendo más si es
necesario.
Vigila la presencia de tramas huérfanas -> las retira:
Marca el bit M de las tramas.
Vigila la presencia de tramas mutiladas -> las retira.
Prioridades
Reserva:
Sobre el campo RR de una trama de datos.
La encargada de retirar la trama pone en circulación el testigo con ese nivel de prioridad.
Las reservas pueden reescribirse por otras de mayor prioridad, se guardan y se usan después.
Token ring
Las redes TOKEN RING ESTÁN IMPLEMENTADAS EN UNA TOPOLOGÍA EN ANILLO. La topología física de
una red Token Ring es la topología en estrella, en la que todos los equipos de la red están
físicamente conectados a un concentrador o elemento central.
El ANILLO FÍSICO está cableado mediante un concentrador o switch denominado unidad de
acceso multiestación (multistation access unit, MSAU). La topología lógica representa la ruta del
testigo entre equipos, que es similar a un anillo.
Método de Acceso:
El método de acceso utilizado en una red Token Ring es de PASO DE TESTIGO. Un testigo es una serie
especial de bits que viaja sobre una red Token Ring. Un equipo no puede transmitir salvo que tenga
posesión del testigo; mientras que el testigo está en uso por un equipo, ningún otro puede transmitir
datos.
Cuando el primer equipo de la red Token Ring se activa, la red genera un testigo. Éste viaja sobre el
anillo por cada equipo hasta que uno toma el control del testigo. Cuando un equipo toma el
control del testigo, envía una trama de datos a la red. La trama viaja por el anillo hasta que alcanza
al equipo con la dirección que coincide con la dirección de destino de la trama. El equipo de
destino copia la trama en su memoria y marca la trama en el campo de estado de la misma para
indicar que la información ha sido recibida.
La trama continúa por el anillo hasta que llega al equipo emisor, en la que se reconoce como
correcta. El equipo emisor elimina la trama del anillo y transmite un nuevo testigo de nuevo en el
anillo.
Velocidad de transferencia:
La velocidad de transferencia en una red Token Ring se encuentra entre 4 y 16 Mbps.
Posteriormente el High Speed Token Ring (HSTR) elevó la velocidad a 100 Mbps.
Sencillamente, Token Ring es la tecnología de red en la cual el acceso al medio está determinado
por el paso del testigo o token:
User Datagram Protocol
Saltar a: navegación, búsqueda
Para otros usos de este término, véase UDP (desambiguación).
User Datagram Protocol (UDP)
Familia Familia de protocolos de Internet
Función Intercambio de datagramas a través de una red.
Ubicación en la pila de protocolos
Aplicación DNS, DHCP, NTP, ...
Transporte UDP
Red IP
Enlace
Ethernet, Token Ring,
FDDI, ...
Estándares
RFC 768 (1980)
User Datagram Protocol (UDP) es un protocolo del nivel de transporte basado en el intercambio de datagramas (Encapsulado de
capa 4 Modelo OSI). Permite el envío de datagramas a través de la red sin que se haya establecido previamente una conexión, ya
que el propio datagrama incorpora suficiente información de direccionamiento en su cabecera. Tampoco tiene confirmación ni
control de flujo, por lo que los paquetes pueden adelantarse unos a otros; y tampoco se sabe si ha llegado correctamente, ya que no
hay confirmación de entrega o recepción. Su uso principal es para protocolos como DHCP, BOOTP, DNS y demás protocolos en los
que el intercambio de paquetes de la conexión/desconexión son mayores, o no son rentables con respecto a la información
transmitida, así como para la transmisión de audio y vídeo en tiempo real, donde no es posible realizar retransmisiones por los
estrictos requisitos de retardo que se tiene en estos casos.
Contenido
1 Descripción técnica
2 Puertos
3 Código de ejemplo (Python 3.x)
4 Código de ejemplo (C++)
5 Comparativa entre UDP y TCP (Transmission Control Protocol)
6 Transmisión de vídeo y voz
7 Véase también
8 Enlaces externos
Descripción técnica
User Datagram Protocol (UDP) es un protocolo mínimo de nivel de transporte orientado a mensajes documentado en el RFC 768
de la IETF.
En la familia de protocolos de Internet UDP proporciona una sencilla interfaz entre la capa de red y la capa de aplicación. UDP no
otorga garantías para la entrega de sus mensajes (por lo que realmente no se debería encontrar en la capa 4) y el origen UDP no
retiene estados de los mensajes UDP que han sido enviados a la red. UDP sólo añade multiplexado de aplicación y suma de
verificación de la cabecera y la carga útil. Cualquier tipo de garantías para la transmisión de la información deben ser
implementadas en capas superiores.
+ Bits 0 - 15 16 - 31
0 Puerto origen Puerto destino
32 Longitud del Mensaje Suma de verificación
64
Datos
La cabecera UDP consta de 4 campos de los cuales 2 son opcionales (con fondo rojo en la tabla). Los campos de los puertos fuente y
destino son campos de 16 bits que identifican el proceso de origen y recepción. Ya que UDP carece de un servidor de estado y el
origen UDP no solicita respuestas, el puerto origen es opcional. En caso de no ser utilizado, el puerto origen debe ser puesto a cero.
A los campos del puerto destino le sigue un campo obligatorio que indica el tamaño en bytes del datagrama UDP incluidos los
datos. El valor mínimo es de 8 bytes. El campo de la cabecera restante es una suma de comprobación de 16 bits que abarca una
pseudo-cabecera IP (con las IP origen y destino, el protocolo y la longitud del paquete UDP), la cabecera UDP, los datos y 0's hasta
completar un múltiplo de 16. El checksum también es opcional en IPv4, aunque generalmente se utiliza en la práctica (en IPv6 su
uso es obligatorio). A continuación se muestra los campos para el cálculo del checksum en IPv4, marcada en rojo la pseudo-
cabecera IP.
bits 0 – 7 8 – 15 16 – 23 24 – 31
0 Dirección Origen
32 Dirección Destino
64 Zeros Protocol Longitud UDP
96 Puerto Origen Puerto Destino
128 Longitud del Mensaje Suma de verificación
160
Datos
El protocolo UDP se utiliza por ejemplo cuando se necesita transmitir voz o vídeo y resulta más importante transmitir con velocidad
que garantizar el hecho de que lleguen absolutamente todos los bytes.
Puertos
UDP utiliza puertos para permitir la comunicación entre aplicaciones. El campo de puerto tiene una longitud de 16 bits, por lo que el
rango de valores válidos va de 0 a 65.535. El puerto 0 está reservado, pero es un valor permitido como puerto origen si el proceso
emisor no espera recibir mensajes como respuesta.
Los puertos 1 a 1023 se llaman puertos "bien conocidos" y en sistemas operativos tipo Unix enlazar con uno de estos puertos
requiere acceso como superusuario.
Los puertos 1024 a 49.151 son puertos registrados.
Los puertos 49.152 a 65.535 son puertos efímeros y son utilizados como puertos temporales, sobre todo por los clientes al
comunicarse con los servidores.
Código de ejemplo (Python 3.x)
El siguiente ejemplo muestra cómo usar el protocolo UDP para una comunicación cliente/servidor:
Servidor:
import socketserver
print("Servidor iniciado...")
class MyUDPHandler(socketserver.BaseRequestHandler):
def handle(self):
data = self.request[0].strip()
socket = self.request[1]
print("{0} Ha escrito:".format(self.client_address[0]))
print(data)
socket.sendto(data.upper(), self.client_address)
if __name__ == "__main__":
HOST, PORT = "localhost", 9999
server = socketserver.UDPServer((HOST, PORT), MyUDPHandler)
server.serve_forever()
Cliente (Cambia "localhost" por la dirección IP del servidor):
import socket
import sys
print("Cliente iniciado...")
HOST, PORT = "localhost", 9999
data = " ".join(sys.argv[1:])
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.sendto(bytes(data + "\n","utf8"), (HOST, PORT))
received = sock.recv(1024)
print("Enviado: {0}".format(data))
print("Recibido: {0}".format(received))
Código de ejemplo (C++)
El siguiente ejemplo muestra cómo usar el protocolo UDP para una comunicación cliente/servidor:
Servidor:
#include <winsock.h>
#include <stdio.h>
#pragma comment(lib,"ws2_32.lib")
const int BufLen = 1024;
int main()
{
WSADATA wsaData;
SOCKET RecvSocket;
sockaddr_in RecvAddr;
int Puerto = 2345;
char RecvBuf[BufLen];
sockaddr_in SenderAddr;
int SenderAddrSize = sizeof(SenderAddr);
WSAStartup(MAKEWORD(2,2), &wsaData);
RecvSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
RecvAddr.sin_family = AF_INET;
RecvAddr.sin_port = htons(Puerto);
RecvAddr.sin_addr.s_addr = INADDR_ANY;
bind(RecvSocket, (SOCKADDR *) &RecvAddr, sizeof(RecvAddr));
recvfrom(RecvSocket,RecvBuf, BufLen,0,(SOCKADDR *)&SenderAddr,&SenderAddrSize);
printf("%s\n",RecvBuf);
closesocket(RecvSocket);
WSACleanup();
}
Cliente (Cambia "127.0.0.1" por la dirección IP del servidor):
#include <winsock.h>
#pragma comment(lib,"ws2_32.lib")
int main()
{
WSADATA wsaData;
SOCKET SendSocket;
sockaddr_in RecvAddr;
int Puerto = 2345;
char ip[] = "127.0.0.1";
char SendBuf[] = "Hola!!!!";
WSAStartup(MAKEWORD(2,2), &wsaData);
SendSocket = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
RecvAddr.sin_family = AF_INET;
RecvAddr.sin_port = htons(Puerto);
RecvAddr.sin_addr.s_addr = inet_addr(ip);
sendto(SendSocket,SendBuf,strlen(SendBuf)+1,0,(SOCKADDR *)
&RecvAddr,sizeof(RecvAddr));
WSACleanup();
}
Comparativa entre UDP y TCP (Transmission Control Protocol)
UDP: proporciona un nivel de transporte no fiable de datagramas, ya que apenas añade la información necesaria para la
comunicación extremo a extremo al paquete que envía al nivel inferior. Lo utilizan aplicaciones como NFS (Network
File System) y RCP (comando para copiar ficheros entre ordenadores remotos), pero sobre todo se emplea en tareas de
control y en la transmisión de audio y vídeo a través de una red. No introduce retardos para establecer una conexión, no
mantiene estado de conexión alguno y no realiza seguimiento de estos parámetros. Así, un servidor dedicado a una
aplicación particular puede soportar más clientes activos cuando la aplicación corre sobre UDP en lugar de sobre TCP.
TCP: es el protocolo que proporciona un transporte fiable de flujo de bits entre aplicaciones. Está pensado para poder
enviar grandes cantidades de información de forma fiable, liberando al programador de la dificultad de gestionar la
fiabilidad de la conexión (retransmisiones, pérdida de paquetes, orden en el que llegan los paquetes, duplicados de
paquetes...) que gestiona el propio protocolo. Pero la complejidad de la gestión de la fiabilidad tiene un coste en
eficiencia, ya que para llevar a cabo las gestiones anteriores se tiene que añadir bastante información a los paquetes que
enviar. Debido a que los paquetes para enviar tienen un tamaño máximo, cuanta más información añada el protocolo para
su gestión, menos información que proviene de la aplicación podrá contener ese paquete (el segmento TCP tiene una
sobrecarga de 20 bytes en cada segmento, mientras que UDP solo añade 8 bytes). Por eso, cuando es más importante la
velocidad que la fiabilidad, se utiliza UDP. En cambio, TCP asegura la recepción en destino de la información para
transmitir.
Transmisión de vídeo y voz
UDP es generalmente el protocolo usado en la transmisión de vídeo y voz a través de una red. Esto es porque no hay tiempo para
enviar de nuevo paquetes perdidos cuando se está escuchando a alguien o viendo un vídeo en tiempo real.
Ya que tanto TCP como UDP circulan por la misma red, en muchos casos ocurre que el aumento del tráfico UDP daña el correcto
funcionamiento de las aplicaciones TCP. Por defecto, TCP pasa a un segundo lugar para dejar a los datos en tiempo real usar la
mayor parte del ancho de banda. El problema es que ambos son importantes para la mayor parte de las aplicaciones, por lo que
encontrar el equilibrio entre ambos es crucial.
Características del protocolo UDP
El protocolo UDP (Protocolo de datagrama de usuario) es un protocolo no orientado a conexión de la capa de transporte del
modelo TCP/IP. Este protocolo es muy simple ya que no proporciona detección de errores (no es un protocolo orientado a
conexión).
Por lo tanto, el encabezado del segmento UDP es muy simple:
puerto de origen
(16 bits);
puerto de destino
(16 bits);
longitud total
(16 bits);
suma de comprobación del encabezado
(16 bits);
datos
(longitud variable).
Significado de los diferentes campos
Puerto de origen: es el número de puerto relacionado con la aplicación del remitente del segmento UDP. Este campo
representa una dirección de respuesta para el destinatario. Por lo tanto, este campo es opcional. Esto significa que si el
puerto de origen no está especificado, los 16 bits de este campo se pondrán en cero. En este caso, el destinatario no podrá
responder (lo cual no es estrictamente necesario, en particular para mensajes unidireccionales).
Puerto de destino: este campo contiene el puerto correspondiente a la aplicación del equipo receptor al que se envía.
Longitud: este campo especifica la longitud total del segmento, con el encabezado incluido. Sin embargo, el encabezado
tiene una longitud de 4 x 16 bits (que es 8 x 8 bits), por lo tanto la longitud del campo es necesariamente superior o igual
a 8 bytes.
Suma de comprobación: es una suma de comprobación realizada de manera tal que permita controlar la integridad del
segmento.
¿Qué significa TCP/IP?
TCP/IP es un conjunto de protocolos. La sigla TCP/IP significa "Protocolo de control de transmisión/Protocolo de Internet" y
se pronuncia "T-C-P-I-P". Proviene de los nombres de dos protocolos importantes del conjunto de protocolos, es decir, del protocolo
TCP y del protocolo IP.
En algunos aspectos, TCP/IP representa todas las reglas de comunicación para Internet y se basa en la noción de dirección IP, es
decir, en la idea de brindar una dirección IP a cada equipo de la red para poder enrutar paquetes de datos. Debido a que el conjunto
de protocolos TCP/IP originalmente se creó con fines militares, está diseñado para cumplir con una cierta cantidad de criterios, entre
ellos:
dividir mensajes en paquetes;
usar un sistema de direcciones;
enrutar datos por la red;
detectar errores en las transmisiones de datos.
El conocimiento del conjunto de protocolos TCP/IP no es esencial para un simple usuario, de la misma manera que un espectador no
necesita saber cómo funciona su red audiovisual o de televisión. Sin embargo, para las personas que desean administrar o brindar
soporte técnico a una red TCP/IP, su conocimiento es fundamental.
La diferencia entre estándar e implementación
En general, TCP/IP relaciona dos nociones:
la noción de estándar: TCP/IP representa la manera en la que se realizan las comunicaciones en una red;
la noción de implementación: la designación TCP/IP generalmente se extiende a software basado en el protocolo
TCP/IP. En realidad, TCP/IP es un modelo cuya aplicación de red utilizan los desarrolladores. Las aplicaciones son, por
lo tanto, implementaciones del protocolo TCP/IP.
TCP/IP es un modelo de capas
Para poder aplicar el modelo TCP/IP en cualquier equipo, es decir, independientemente del sistema operativo, el sistema de
protocolos TCP/IP se ha dividido en diversos módulos. Cada uno de éstos realiza una tarea específica. Además, estos módulos
realizan sus tareas uno después del otro en un orden específico, es decir que existe un sistema estratificado. Ésta es la razón por la
cual se habla de modelo de capas.
El término capa se utiliza para reflejar el hecho de que los datos que viajan por la red atraviesan distintos niveles de protocolos. Por
lo tanto, cada capa procesa sucesivamente los datos (paquetes de información) que circulan por la red, les agrega un elemento de
información (llamado encabezado) y los envía a la capa siguiente.
El modelo TCP/IP es muy similar al modelo OSI (modelo de 7 capas) que fue desarrollado por la Organización Internacional para la
Estandarización (ISO) para estandarizar las comunicaciones entre equipos.
Presentación del modelo OSI
OSI significa Interconexión de sistemas abiertos. Este modelo fue establecido por ISO para implementar un estándar de
comunicación entre equipos de una red, esto es, las reglas que administran la comunicación entre equipos. De hecho, cuando
surgieron las redes,cada fabricante contaba con su propio sistema (hablamos de un sistema patentado), con lo cual coexistían
diversas redes incompatibles. Por esta razón, fue necesario establecer un estándar.
La función del modelo OSI es estandarizar la comunicación entre equipos para que diferentes fabricantes puedan desarrollar
productos (software o hardware) compatibles (siempre y cuando sigan estrictamente el modelo OSI).
La importancia de un sistema de capas
El objetivo de un sistema en capas es dividir el problema en diferentes partes (las capas), de acuerdo con su nivel de abstracción.
Cada capa del modelo se comunica con un nivel adyacente (superior o inferior). Por lo tanto, cada capa utiliza los servicios de las
capas inferiores y se los proporciona a la capa superior.
El modelo OSI
El modelo OSI es un modelo que comprende 7 capas, mientras que el modelo TCP/IP tiene sólo 4. En realidad, el modelo TCP/IP se
desarrolló casi a la par que el modelo OSI. Es por ello que está influenciado por éste, pero no sigue todas las especificaciones del
modelo OSI. Las capas del modelo OSI son las siguientes:
<="" td=""><="" td=""> <="" td=""><="" td=""> <="" td=""><="" td=""> <="" td=""><="" td=""> <="" td=""><="" td=""> <=""
td=""><="" td=""> <="" td=""><="" td="">
Nivel Modelo antiguo Modelo nuevo
Nivel 7
Nivel 6
Nivel 5
Nivel 4
Nivel 3
Nivel 2
Nivel 1
La capa física define la manera en la que los datos se convierten físicamente en señales digitales en los medios de
comunicación (pulsos eléctricos, modulación de luz, etc.).
La capa de enlace de datos define la interfaz con la tarjeta de interfaz de red y cómo se comparte el medio de
transmisión.
La capa de red permite administrar las direcciones y el enrutamiento de datos, es decir, su ruta a través de la red.
La capa de transporte se encarga del transporte de datos, su división en paquetes y la administración de potenciales
errores de transmisión.
La capa de sesión define el inicio y la finalización de las sesiones de comunicación entre los equipos de la red.
La capa de presentación define el formato de los datos que maneja la capa de aplicación (su representación y,
potencialmente, su compresión y cifrado) independientemente del sistema.
La capa de aplicación le brinda aplicaciones a la interfaz. Por lo tanto, es el nivel más cercano a los usuarios,
administrado directamente por el software.
El modelo TCP/IP
El modelo TCP/IP, influenciado por el modelo OSI, también utiliza el enfoque modular (utiliza módulos o capas), pero sólo
contiene cuatro:
<thmodèle tcp="" ip<="" th=""><thmodèle osi<="" th=""> </thmodèle></thmodèle><="" td=""> <="" td=""> <="" td=""> <=""
td=""><="" td=""> <="" td=""><="" td=""> <="" td=""> <="" td="">
Capa de aplicación
Capa de acceso a la red
Como puede apreciarse, las capas del modelo TCP/IP tienen tareas mucho más diversas que las del modelo OSI, considerando que
ciertas capas del modelo TCP/IP se corresponden con varios niveles del modelo OSI.
Las funciones de las diferentes capas son las siguientes:
capa de acceso a la red: especifica la forma en la que los datos deben enrutarse, sea cual sea el tipo de red utilizado;
capa de Internet: es responsable de proporcionar el paquete de datos (datagrama);
capa de transporte: brinda los datos de enrutamiento, junto con los mecanismos que permiten conocer el estado de la
transmisión;
capa de aplicación: incorpora aplicaciones de red estándar (Telnet, SMTP, FTP, etc.).
A continuación se indican los principales protocolos que comprenden el conjunto TCP/IP:
<thmodèle tcp="" ip<="" th=""> </thmodèle>
Aplicaciones de red
TCP o UDP
IP, ARP, RARP
FTS, FDDI, PPP, Ethernet, Red de anillos <="" td="">
Encapsulación de datos
Durante una transmisión, los datos cruzan cada una de las capas en el nivel del equipo remitente. En cada capa, se le agrega
información al paquete de datos. Esto se llama encabezado, es decir, una recopilación de información que garantiza la transmisión.
En el nivel del equipo receptor, cuando se atraviesa cada capa, el encabezado se lee y después se elimina. Entonces, cuando se
recibe, el mensaje se encuentra en su estado original.
En cada nivel, el paquete de datos cambia su aspecto porque se le agrega un encabezado. Por lo tanto, las designaciones cambian
según las capas:
el paquete de datos se denomina mensaje en el nivel de la capa de aplicación;
el mensaje después se encapsula en forma de segmento en la capa de transporte;
una vez que se encapsula el segmento en la capa de Internet, toma el nombre de datagrama;
finalmente, se habla de trama en el nivel de capa de acceso a la red.
Capa de acceso a la red
La capa de acceso a la red es la primera capa de la pila TCP/IP. Ofrece la capacidad de acceder a cualquier red física, es decir,
brinda los recursos que se deben implementar para transmitir datos a través de la red.
Por lo tanto, la capa de acceso a la red contiene especificaciones relacionadas con la transmisión de datos por una red física, cuando
es una red de área local (Red en anillo, Ethernet, FDDI), conectada mediante línea telefónica u otro tipo de conexión a una red.
Trata los siguientes conceptos:
enrutamiento de datos por la conexión;
coordinación de la transmisión de datos (sincronización);
formato de datos;
conversión de señal (análoga/digital);
detección de errores a su llegada.
...
Afortunadamente, todas estas especificaciones son invisibles al ojo del usuario, ya que en realidad es el sistema operativo el que
realiza estas tareas, mientras los drivers de hardware permiten la conexión a la red (por ejemplo, el driver de la tarjeta de red).
La capa de Internet
La capa de Internet es la capa "más importante" (si bien todas son importantes a su manera), ya que es la que define los datagramas
y administra las nociones de direcciones IP.
Permite el enrutamiento de datagramas (paquetes de datos) a equipos remotos junto con la administración de su división y
ensamblaje cuando se reciben.
La capa de Internet contiene 5 protocolos:
el protocolo IP;
el protocolo ARP;
el protocolo ICMP;
el protocolo RARP;
el protocolo IGMP.
Los primeros tres protocolos son los más importantes para esta capa.
La capa de transporte
Los protocolos de las capas anteriores permiten enviar información de un equipo a otro. La capa de transporte permite que las
aplicaciones que se ejecutan en equipos remotos puedan comunicarse. El problema es identificar estas aplicaciones.
De hecho, según el equipo y su sistema operativo, la aplicación puede ser un programa, una tarea, un proceso, etc.
Además, el nombre de la aplicación puede variar de sistema en sistema. Es por ello que se ha implementado un sistema de
numeración para poder asociar un tipo de aplicación con un tipo de datos. Estos identificadores se denominan puertos.
La capa de transporte contiene dos protocolos que permiten que dos aplicaciones puedan intercambiar datos independientemente del
tipo de red (es decir, independientemente de las capas inferiores). Estos dos protocolos son los siguientes:
TCP, un protocolo orientado a conexión que brinda detección de errores;
UDP, un protocolo no orientado a conexión en el que la detección de errores es obsoleta.
La capa de aplicación
La capa de aplicación se encuentra en la parte superior de las capas del protocolo TCP/IP. Contiene las aplicaciones de red que
permiten la comunicación mediante las capas inferiores.
Por lo tanto, el software en esta capa se comunica mediante uno o dos protocolos de la capa inferior (la capa de transporte), es decir,
TCP o UDP.
Existen diferentes tipos de aplicaciones para esta capa, pero la mayoría son servicios de red o aplicaciones brindadas al usuario para
proporcionar la interfaz con el sistema operativo. Se pueden clasificar según los servicios que brindan:
servicios de administración de archivos e impresión (transferencia);
servicios de conexión a la red;
servicios de conexión remota;
diversas utilidades de Internet.
Las características del protocolo TCP
TCP (que significa Protocolo de Control de Transmisión) es uno de los principales protocolos de la capa de transporte del modelo
TCP/IP. En el nivel de aplicación, posibilita la administración de datos que vienen del nivel más bajo del modelo, o van hacia él, (es
decir, el protocolo IP). Cuando se proporcionan los datos al protocolo IP, los agrupa en datagramas IP, fijando el campo del
protocolo en 6 (para que sepa con anticipación que el protocolo es TCP). TCP es un protocolo orientado a conexión, es decir, que
permite que dos máquinas que están comunicadas controlen el estado de la transmisión.
Las principales características del protocolo TCP son las siguientes:
TCP permite colocar los datagramas nuevamente en orden cuando vienen del protocolo IP.
TCP permite que el monitoreo del flujo de los datos y así evita la saturación de la red.
TCP permite que los datos se formen en segmentos de longitud variada para "entregarlos" al protocolo IP.
TCP permite multiplexar los datos, es decir, que la información que viene de diferentes fuentes (por ejemplo,
aplicaciones) en la misma línea pueda circular simultáneamente.
Por último, TCP permite comenzar y finalizar la comunicación amablemente.
El objetivo de TCP
Con el uso del protocolo TCP, las aplicaciones pueden comunicarse en forma segura (gracias al sistema de acuse de recibo del
protocolo TCP) independientemente de las capas inferiores. Esto significa que los routers (que funcionan en la capa de Internet) sólo
tienen que enviar los datos en forma de datagramas, sin preocuparse con el monitoreo de datos porque esta función la cumple la
capa de transporte (o más específicamente el protocolo TCP).
Durante una comunicación usando el protocolo TCP, las dos máquinas deben establecer una conexión. La máquina emisora (la que
solicita la conexión) se llama cliente, y la máquina receptora se llama servidor. Por eso es que decimos que estamos en un entorno
Cliente-Servidor.
Las máquinas de dicho entorno se comunican en modo en línea, es decir, que la comunicación se realiza en ambas direcciones.
Para posibilitar la comunicación y que funcionen bien todos los controles que la acompañan, los datos se agrupan; es decir, que se
agrega un encabezado a los paquetes de datos que permitirán sincronizar las transmisiones y garantizar su recepción.
Otra función del TCP es la capacidad de controlar la velocidad de los datos usando su capacidad para emitir mensajes de tamaño
variable. Estos mensajes se llaman segmentos.
La función multiplexión
TCP posibilita la realización de una tarea importante: multiplexar/demultiplexar; es decir transmitir datos desde diversas
aplicaciones en la misma línea o, en otras palabras, ordenar la información que llega en paralelo.
Estas operaciones se realizan empleando el concepto de puertos (o conexiones), es decir, un número vinculado a un tipo de
aplicación que, cuando se combina con una dirección de IP, permite determinar en forma exclusiva una aplicación que se ejecuta en
una máquina determinada.
El formato de los datos en TCP
Un segmento TCP está formado de la siguiente manera:
<td
URG <td
ACK <td
PSH <td
RST <td
SYN <td
FIN </td
</td
</td
</td
</td
</td
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Puerto de origen Puerto de destino
Número de secuencia
Número de acuse de recibo
Margen
de datos Reservado Ventana
Suma de control Puntero urgente
Opciones Relleno
Datos
Significado de los diferentes campos:
Puerto de origen (16 bits): Puerto relacionado con la aplicación en curso en la máquina origen
Puerto de destino (16 bits): Puerto relacionado con la aplicación en curso en la máquina destino
Número de secuencia (32 bits): Cuando el indicador SYN está fijado en 0, el número de secuencia es el de la primera
palabra del segmento actual.
Cuando SYN está fijado en 1, el número de secuencia es igual al número de secuencia inicial utilizado para sincronizar
los números de secuencia (ISN).
Número de acuse de recibo (32 bits): El número de acuse de recibo, también llamado número de descargo se relaciona
con el número (secuencia) del último segmento esperado y no el número del último segmento recibido.
Margen de datos (4 bits): Esto permite ubicar el inicio de los datos en el paquete. Aquí, el margen es fundamental
porque el campo opción es de tamaño variable.
Reservado (6 bits): Un campo que actualmente no está en uso pero se proporciona para el uso futuro.
Indicadores (6x1 bit): Los indicadores representan información adicional:
o URG: Si este indicador está fijado en 1, el paquete se debe procesar en forma urgente.
o ACK: Si este indicador está fijado en 1, el paquete es un acuse de recibo.
o PSH (PUSH): Si este indicador está fijado en 1, el paquete opera de acuerdo con el método PUSH.
o RST: Si este indicador está fijado en 1, se restablece la conexión.
o SYN: El indicador SYN de TCP indica un pedido para establecer una conexión.
o FIN: Si este indicador está fijado en 1, se interrumpe la conexión.
Ventana (16 bits): Campo que permite saber la cantidad de bytes que el receptor desea recibir sin acuse de recibo.
Suma de control (CRC): La suma de control se realiza tomando la suma del campo de datos del encabezado para poder
verificar la integridad del encabezado.
Puntero urgente (16 bits): Indica el número de secuencia después del cual la información se torna urgente.
Opciones (tamaño variable): Diversas opciones
Relleno: Espacio restante después de que las opciones se rellenan con ceros para tener una longitud que sea múltiplo de
32 bits.
Confiabilidad de las transferencias
El protocolo TCP permite garantizar la transferencia de datos confiable, a pesar de que usa el protocolo IP, que no incluye ningún
monitoreo de la entrega de datagramas.
De hecho, el protocolo TCP tiene un sistema de acuse de recibo que permite al cliente y al servidor garantizar la recepción mutua de
datos.
Cuando se emite un segmento, se lo vincula a un número de secuencia. Con la recepción de un segmento de datos, la máquina
receptora devolverá un segmento de datos donde el indicador ACK esté fijado en 1 (para poder indicar que es un acuse de recibo)
acompañado por un número de acuse de recibo que equivale al número de secuencia anterior.
Además, usando un temporizador que comienza con la recepción del segmento en el nivel de la máquina originadora, el segmento se
reenvía cuando ha transcurrido el tiempo permitido, ya que en este caso la máquina originadora considera que el segmento está
perdido.
Sin embargo, si el segmento no está perdido y llega a destino, la máquina receptora lo sabrá, gracias al número de secuencia, que es
un duplicado, y sólo retendrá el último segmento que llegó a destino.
Cómo establecer una conexión
Considerando que este proceso de comunicación, que se produce con la transmisión y el acuse de recibo de datos, se basa en un
número de secuencia, las máquinas originadora y receptora (cliente y servidor) deben conocer el número de secuencia inicial de la
otra máquina.
La conexión establecida entre las dos aplicaciones a menudo se realiza siguiendo el siguiente esquema:
Los puertos TCP deben estar abiertos.
La aplicación en el servidor es pasiva, es decir, que la aplicación escucha y espera una conexión.
La aplicación del cliente realiza un pedido de conexión al servidor en el lugar donde la aplicación es abierta pasiva. La
aplicación del cliente se considera "abierta activa".
Las dos máquinas deben sincronizar sus secuencias usando un mecanismo comúnmente llamado negociación en tres pasos que
también se encuentra durante el cierre de la sesión.
Este diálogo posibilita el inicio de la comunicación porque se realiza en tres etapas, como su nombre lo indica:
En la primera etapa, la máquina originadora (el cliente) transmite un segmento donde el indicador SYN está fijado en 1
(para indicar que es un segmento de sincronización), con número de secuencia N llamado número de secuencia inicial
del cliente.
En la segunda etapa, la máquina receptora (el servidor) recibe el segmento inicial que viene del cliente y luego le envía
un acuse de recibo, que es un segmento en el que el indicador ACK está fijado en 1 y el indicador SYN está fijado en 1
(porque es nuevamente una sincronización). Este segmento incluye el número de secuencia de esta máquina (el servidor),
que es el número de secuencia inicial para el cliente. El campo más importante en este segmento es el de acuse de recibo
que contiene el número de secuencia inicial del cliente incrementado en 1.
Por último, el cliente transmite un acuse de recibo, que es un segmento en el que el indicador ACK está fijado en 1 y el
indicador SYN está fijado en 0 (ya no es un segmento de sincronización). Su número de secuencia está incrementado y el
acuse de recibo representa el número de secuencia inicial del servidor incrementado en 1.
Después de esta secuencia con tres intercambios, las dos máquinas están sincronizadas y la comunicación puede comenzar.
Existe una técnica de piratería llamada falsificación de IP, que permite corromper este enlace de aprobación con fines maliciosos.
Método de ventana corrediza
En muchos casos, es posible limitar la cantidad de acuses de recibo con el fin de aliviar el tráfico en la red. Esto se logra fijando un
número de secuencia después del cual se requiera un acuse de recibo. Este número en realidad se guarda en el campo ventana del
encabezado TCP/IP.
Este método se llama efectivamente el "el método de la ventana corrediza" porque, en cierta medida, se define una serie de
secuencias que no necesitan acuses de recibo y que se desplaza a medida que se reciben los acuses de recibo.
Además, el tamaño de esta ventana no es fijo. De hecho, el servidor puede incluir el tamaño de la ventana que considera más
apropiado en sus acuses de recibo guardándolo en el campo ventana. De este modo, cuando el acuse de recibo indica un pedido para
aumentar la ventana, el cliente se desplazará al borde derecho de la ventana.
Por el contrario, en el caso de una reducción, el cliente no desplazará el borde derecho de la ventana hacia la izquierda sino que
esperará que avance el borde izquierdo (al llegar los acuses de recibo).
Cómo terminar una conexión
El cliente puede pedir que se termine una conexión del mismo modo que el servidor.
Para terminar una conexión se procede de la siguiente manera:
Una de las máquinas envía un segmento con el indicador FIN fijado en 1, y la aplicación se autocoloca en estado de
espera, es decir que deja de recibir el segmento actual e ignora los siguientes.
Después de recibir este segmento, la otra máquina envía un acuse de recibo con el indicador FIN fijado en 1 y sigue
enviando los segmentos en curso. Después de esto, la máquina informa a la aplicación que se ha recibido un segmento
FIN y luego envía un segmento FIN a la otra máquina, que cierra la conexión.
Más información
Si desea obtener más información sobre el protocolo TCP, consulte el RFC793 que explica el protocolo en detalle:
RFC 793 en francés
RFC 793 original
Transmission Control Protocol
Saltar a: navegación, búsqueda Para otros usos de este término, véase TCP (desambiguación).
Transmission Control Protocol (TCP)
Familia Familia de protocolos de Internet
Función Transporte confiable y bidireccional de datos.
Ubicación en la pila de protocolos
Aplicación FTP, HTTP, SNMP, DNS, ...
Transporte TCP
Red IP
Enlace
Ethernet, Token Ring, FDDI, ...
Estándares
RFC 793 (1981)
RFC 1323 (1992)
Transmission Control Protocol (en español Protocolo de Control de Transmisión) o TCP, es uno de los protocolos fundamentales
en Internet. Fue creado entre los años 1973 y 1974 por Vint Cerf y Robert Kahn.
Muchos programas dentro de una red de datos compuesta por computadoras, pueden usar TCP para crear conexiones entre ellos a
través de las cuales puede enviarse un flujo de datos. El protocolo garantiza que los datos serán entregados en su destino sin errores
y en el mismo orden en que se transmitieron. También proporciona un mecanismo para distinguir distintas aplicaciones dentro de
una misma máquina, a través del concepto de puerto.
TCP da soporte a muchas de las aplicaciones más populares de Internet (navegadores, intercambio de ficheros, clientes FTP, etc.) y
protocolos de aplicación HTTP, SMTP, SSH y FTP.
Contenido
1 Información Técnica
o 1.1 Funciones de TCP o 1.2 Formato de los Segmentos TCP
2 Funcionamiento del protocolo en detalle
o 2.1 Establecimiento de la conexión (negociación en tres pasos)
o 2.2 Transferencia de datos o 2.3 Tamaño de ventana TCP o 2.4 Escalado de ventana
o 2.5 Fin de la conexión 3 Puertos TCP 4 Desarrollo de TCP
5 Implementaciones 6 Bibliotecas de sockets TCP 7 Véase también
8 Enlaces externos
Información Técnica
TCP es un protocolo de comunicación orientado a conexión y fiable del nivel de transporte, actualmente documentado por IETF en
el RFC 793. Es un protocolo de capa 4 según el modelo OSI.
Funciones de TCP En la pila de protocolos TCP/IP, TCP es la capa intermedia entre el protocolo de internet (IP) y la aplicación. Habitualmente, las
aplicaciones necesitan que la comunicación sea fiable y, dado que la capa IP aporta un servicio de datagramas no fiable (sin
confirmación), TCP añade las funciones necesarias para prestar un servicio que permita que la comunicación entre dos sistemas se
efectúe libre de errores, sin pérdidas y con seguridad.
Formato de los Segmentos TCP
En el nivel de transporte, los paquetes de bits que constituyen las unidades de datos de protocolo TCP se llaman "segmentos".
El formato de los segmentos TCP se muestra en el siguiente esquema:
Funcionamiento del protocolo en detalle
Las conexiones TCP se componen de tres etapas: establecimiento de conexión, transferencia de datos y fin de la conexión. Para
establecer la conexión se usa el procedimiento llamado negociación en tres pasos (3-way handshake). Para la desconexión se usa
una negociación en cuatro pasos (4-way handshake). Durante el establecimiento de la conexión, se configuran algunos parámetros
tales como el número de secuencia con el fin de asegurar la entrega ordenada de los datos y la robustez de la comunicación.
Establecimiento de la conexión (negociación en tres pasos)
Negociación en tres pasos o Three-way handshake
Aunque es posible que un par de entidades finales comiencen una conexión entre ellas simultáneamente, normalmente una de ellas
abre un socket en un determinado puerto TCP y se queda a la escucha de nuevas conexiones. Es común referirse a esto como
apertura pasiva, y determina el lado servidor de una conexión. El lado cliente de una conexión realiza una apertura activa de un
puerto enviando un paquete SYN inicial al servidor como parte de la negociación en tres pasos. En el lado del servidor se
comprueba si el puerto está abierto, es decir, si existe algún proceso escuchando en ese puerto. En caso de no estarlo, se envía al
cliente un paquete de respuesta con el bit RST activado, lo que significa el rechazo del intento de conexión. En caso de que sí se
encuentre abierto el puerto, el lado servidor respondería a la petición SYN válida con un paquete SYN/ACK. Finalmente, el cliente
debería responderle al servidor con un ACK, completando así la negociación en tres pasos (SYN, SYN/ACK y ACK) y la fase de
establecimiento de conexión.
Es interesante notar que existe un número de secuencia generado por cada lado, ayudando de este modo a que no se puedan
establecer conexiones falseadas (spoofing).
Transferencia de datos Durante la etapa de transferencia de datos, una serie de mecanismos claves determinan la fiabilidad y robustez del protocolo. Entre
ellos están incluidos el uso del número de secuencia para ordenar los segmentos TCP recibidos y detectar paquetes duplicados,
checksums para detectar errores, y asentimientos y temporizadores para detectar pérdidas y retrasos.
Durante el establecimiento de conexión TCP, los números iniciales de secuencia son intercambiados entre las dos entidades TCP.
Estos números de secuencia son usados para identificar los datos dentro del flujo de bytes, y poder identificar (y contar) los bytes de
los datos de la aplicación. Siempre hay un par de números de secuencia incluidos en todo segmento TCP, referidos al número de
secuencia y al número de asentimiento. Un emisor TCP se refiere a su propio número de secuencia cuando habla de número de
secuencia, mientras que con el número de asentimiento se refiere al número de secuencia del receptor. Para mantener la fiabilidad,
un receptor asiente los segmentos TCP indicando que ha recibido una parte del flujo continuo de bytes. Una mejora de TCP, llamada
asentimiento selectivo (SACK, Selective Acknowledgement) permite a un receptor TCP asentir los datos que se han recibido de tal
forma que el remitente solo retransmita los segmentos de datos que faltan.
A través del uso de números de secuencia y asentimiento, TCP puede pasar los segmentos recibidos en el orden correcto dentro del
flujo de bytes a la aplicación receptora. Los números de secuencia son de 32 bits (sin signo), que vuelve a cero tras el siguiente byte
después del 232-1. Una de las claves para mantener la robustez y la seguridad de las conexiones TCP es la selección del número
inicial de secuencia (ISN, Initial Sequence Number).
Un checksum de 16 bits, consistente en el complemento a uno de la suma en complemento a uno del contenido de la cabecera y
datos del segmento TCP, es calculado por el emisor, e incluido en la transmisión del segmento. Se usa la suma en complemento a
uno porque el acarreo final de ese método puede ser calculado en cualquier múltiplo de su tamaño (16-bit, 32-bit, 64-bit...) y el
resultado, una vez plegado, será el mismo. El receptor TCP recalcula el checksum sobre las cabeceras y datos recibidos. El
complemento es usado para que el receptor no tenga que poner a cero el campo del checksum de la cabecera antes de hacer los
cálculos, salvando en algún lugar el valor del checksum recibido; en vez de eso, el receptor simplemente calcula la suma en
complemento a uno con el checksum incluido, y el resultado debe ser igual a 0. Si es así, se asume que el segmento ha llegado
intacto y sin errores.
Hay que fijarse en que el checksum de TCP también cubre los 96 bit de la cabecera que contiene la dirección origen, la dirección
destino, el protocolo y el tamaño TCP. Esto proporciona protección contra paquetes mal dirigidos por errores en las direcciones.
El checksum de TCP es una comprobación bastante débil. En niveles de enlace con una alta probabilidad de error de bit quizá
requiera una capacidad adicional de corrección/detección de errores de enlace. Si TCP fuese rediseñado hoy, muy probablemente
tendría un código de redundancia cíclica (CRC) para control de errores en vez del actual checksum. La debilidad del checksum está
parcialmente compensada por el extendido uso de un CRC en el nivel de enlace, bajo TCP e IP, como el usado en el PPP o en
Ethernet. Sin embargo, esto no significa que el checksum de 16 bits es redundante: sorprendentemente, inspecciones sobre el tráfico
de Internet han mostrado que son comunes los errores de software y hardware[cita requerida] que introducen errores en los paquetes
protegidos con un CRC, y que el checksum de 16 bits de TCP detecta la mayoría de estos errores simples.
Los asentimientos (ACKs o Acknowledgments) de los datos enviados o la falta de ellos, son usados por los emisores para interpretar
las condiciones de la red entre el emisor y receptor TCP. Unido a los temporizadores, los emisores y receptores TCP pueden alterar
el comportamiento del movimiento de datos. TCP usa una serie de mecanismos para conseguir un alto rendimiento y evitar la
congestión de la red (la idea es enviar tan rápido como el receptor pueda recibir). Estos mecanismos incluyen el uso de ventana
deslizante, que controla que el transmisor mande información dentro de los límites del buffer del receptor, y algoritmos de control
de flujo, tales como el algoritmo de Evitación de la Congestión (congestion avoidance), el de comienzo lento (Slow-start), el de
retransmisión rápida, el de recuperación rápida (Fast Recovery), y otros.
Tamaño de ventana TCP El tamaño de la ventana de recepción TCP es la cantidad de datos recibidos (en bytes) que pueden ser metidos en el buffer de
recepción durante la conexión. La entidad emisora puede enviar una cantidad determinada de datos pero antes debe esperar un
asentimiento con la actualización del tamaño de ventana por parte del receptor.
Un ejemplo sería el siguiente: un receptor comienza con un tamaño de ventana x y recibe y bytes, entonces su tamaño de ventana
será (x - y) y el transmisor sólo podrá mandar paquetes con un tamaño máximo de datos de (x - y) bytes. Los siguientes paquetes
recibidos seguirán restando tamaño a la ventana de recepción. Esta situación seguirá así hasta que la aplicación receptora recoja los
datos del buffer de recepción.
Escalado de ventana Para una mayor eficiencia en redes de gran ancho de banda, debe ser usado un tamaño de ventana mayor. El campo TCP de tamaño
de ventana controla el movimiento de datos y está limitado a 16 bits, es decir, a un tamaño de ventana de 65.535 bytes.
Como el campo de ventana no puede expandirse se usa un factor de escalado. La escala de ventana TCP (TCP window scale) es una
opción usada para incrementar el máximo tamaño de ventana desde 65.535 bytes, a 1 Gigabyte.
La opción de escala de ventana TCP es usada solo durante la negociación en tres pasos que constituye el comienzo de la conexión.
El valor de la escala representa el número de bits desplazados a la izquierda de los 16 bits que forman el campo del tamaño de
ventana. El valor de la escala puede ir desde 0 (sin desplazamiento) hasta 14. Hay que recordar que un número binario desplazado
un bit a la izquierda es como multiplicarlo en base decimal por 2.
Fin de la conexión
Cierre de una conexión según el estándar. La fase de finalización de la conexión usa una negociación en cuatro pasos (four-way handshake), terminando la conexión desde
cada lado independientemente. Cuando uno de los dos extremos de la conexión desea parar su "mitad" de conexión transmite un
paquete FIN, que el otro interlocutor asentirá con un ACK. Por tanto, una desconexión típica requiere un par de segmentos FIN y
ACK desde cada lado de la conexión.
Una conexión puede estar "medio abierta" en el caso de que uno de los lados la finalice pero el otro no. El lado que ha dado por
finalizada la conexión no puede enviar más datos pero la otra parte si podrá.
Puertos TCP
TCP usa el concepto de número de puerto para identificar a las aplicaciones emisoras y receptoras. Cada lado de la conexión TCP
tiene asociado un número de puerto (de 16 bits sin signo, con lo que existen 65536 puertos posibles) asignado por la aplicación
emisora o receptora. Los puertos son clasificados en tres categorías: bien conocidos, registrados y dinámicos/privados. Los puertos
bien conocidos son asignados por la Internet Assigned Numbers Authority (IANA), van del 0 al 1023 y son usados normalmente por
el sistema o por procesos con privilegios. Las aplicaciones que usan este tipo de puertos son ejecutadas como servidores y se quedan
a la escucha de conexiones. Algunos ejemplos son: FTP (21), SSH (22), Telnet (23), SMTP (25) y HTTP (80). Los puertos
registrados son normalmente empleados por las aplicaciones de usuario de forma temporal cuando conectan con los servidores, pero
también pueden representar servicios que hayan sido registrados por un tercero (rango de puertos registrados: 1024 al 49151). Los
puertos dinámicos/privados también pueden ser usados por las aplicaciones de usuario, pero este caso es menos común. Los puertos
dinámicos/privados no tienen significado fuera de la conexión TCP en la que fueron usados (rango de puertos dinámicos/privados:
49152 al 65535, recordemos que el rango total de 2 elevado a la potencia 16, cubre 65536 números, del 0 al 65535)
Desarrollo de TCP
TCP es un protocolo muy desarrollado y complejo. Sin embargo, mientras mejoras significativas han sido propuestas y llevadas a
cabo a lo largo de los años, ha conservado las operaciones más básicas sin cambios desde el RFC 793, publicado en 1981. El
documento RFC 1122 (Host Requirements for Internet Hosts), especifica el número de requisitos de una implementación del
protocolo TCP. El RFC 2581 (Control de Congestión TCP) es uno de los más importantes documentos relativos a TCP de los
últimos años, describe nuevos algoritmos para evitar la congestión excesiva. En 2001, el RFC 3168 fue escrito para describir la
Notificación de Congestión Explícita (ECN), una forma de eludir la congestión con mecanismos de señalización. En los comienzos
del siglo XXI, TCP es usado en el 95% de todos los paquetes que circulan por Internet. Entre las aplicaciones más comunes que
usan TCP están HTTP/HTTPS (World Wide Web), SMTP/POP3/IMAP (correo electrónico) y FTP (transferencia de ficheros). Su
amplia extensión ha sido la prueba para los desarrolladores originales de que su creación estaba excepcionalmente bien hecha.
Recientemente, un nuevo algoritmo de control de congestión fue desarrollado y nombrado como FAST TCP (Fast Active queue
management Scalable Transmission Control Protocol) por los científicos de Caltech (California Institute of Technology). Es similar
a TCP Vegas en cuanto a que ambos detectan la congestión a partir de los retrasos en las colas que sufren los paquetes al ser
enviados a su destino. Todavía hay un debate abierto sobre si éste es un síntoma apropiado para el control de la congestión.
Buffer de datos
Saltar a: navegación, búsqueda
Este artículo o sección necesita referencias que aparezcan en una publicación acreditada, como revistas especializadas,
monografías, prensa diaria o páginas de Internet fidedignas.
Puedes añadirlas así o avisar al autor principal del artículo en su página de discusión pegando: {{subst:Aviso
referencias|Buffer de datos}} ~~~~
Un buffer (o búfer) en informática es un espacio de memoria, en el que se almacenan datos para evitar que el programa o recurso
que los requiere, ya sea hardware o software, se quede sin datos durante una transferencia.
Normalmente los datos se almacenan en un buffer mientras son transferidos desde un dispositivo de entrada (como un ratón) o justo
antes de enviarlos a un dispositivo de salida (como unos altavoces). También puede utilizarse para transferir datos entre procesos, de
una forma parecida a los bufferes utilizados en telecomunicaciones. Un ejemplo de esto último ocurre en una comunicación
telefónica, en la que al realizar una llamada esta se almacena, se disminuye su calidad y el número de bytes a ser transferidos, y
luego se envían estos datos modificados al receptor.
Pueden ser implementados por software o hardware, aunque la gran mayoría son del primer tipo. Normalmente se usan cuando la
frecuencias de transferencia de datos es distinta a la de procesado, dependiendo de las limitaciones del sistema, o también cuando la
frecuencia es variable, como en la recepción de vídeo online (streaming). Éstas diferencias temporales de transmisión son
normalmente ajustadas mediante la implementación de un algoritmo con cola (o estructura de tipo FIFO) en memoria, para así
escribir datos en la cola a una frecuencia y leerlos a otra. Esto ocurre en el envío de datos de un procesador a una impresora para que
los imprima. La velocidad de impresión de la fotocopiadora en comparación a la del procesador es muy lenta, debido a esto la
impresora tendrá que tener una cola FIFO(software), para ir acumulando los trabajos que todavía no se han podido imprimir.
Los buffers se pueden usar en cualquier sistema digital, no solo en informáticos, como en reproductores de música y vídeo .
Se puede ejemplificar la función de un buffer utilizando ésta metáfora: Un buffer es como tener dinero en el banco (buffer), un
trabajo (entrada) y unos gastos fijos (salida). Si tienes un trabajo inestable, mientras tengas ciertos ahorros, puedes mantener tus
gastos fijos sin problemas, e ir ingresando dinero cuando puedas según vas trabajando. Si los ahorros son pequeños, en seguida que
no tengas trabajo, no vas a poder acometer los gastos fijos. De la misma forma si escuchas música en Internet y tu programa de
audio usa un buffer pequeño, en cuanto que haya alguna interrupción en la descarga (porque las descargas nunca tienen una
velocidad constante), notarás cortes de sonido, ya que faltará información.
Contenido
1 Aplicaciones
2 Diferencias con la caché
3 Historia
4 Buffer de Telecomunicación
5 Ejemplos
Aplicaciones
Los buffers se utilizan, a menudo, conjuntamente con E/S de hardware, tal como unidades de disco, enviar o recibir datos a/o desde
una red, o reproducción de sonido en un altavoz. Una línea a una montaña rusa en un parque de atracciones comparte muchas
similitudes. Las personas que viajan en la montaña llegan, a menudo, a un ritmo desconocido y variable, pero la montaña rusa será
capaz de cargar personas de golpe (tal como llegan se van montando). La zona de la cola actúa como un buffer: un espacio temporal
donde los que deseen viajar deben esperar a que el viaje esté disponible. Los buffers utilizan generalmente un método FIFO
(primero en entrar, primero en salir), es decir, la salida de datos se produce en el orden en que llegaron...
Diferencias con la caché
Una caché puede ser usada a veces como un buffer, y viceversa. Sin embargo, una caché opera con el supuesto de que los mismos
datos van a ser utilizados múltiples veces, que los datos escritos serán leídos en un periodo corto de tiempo, o teniendo en cuenta la
posibilidad de múltiples lecturas o escrituras para formar un único bloque más grande. Su premisa básica es reducir los accesos a los
almacenamientos de nivel más bajo, los cuales son bastante lentos. La caché también es normalmente una capa de abstracción que
está diseñada para ser invisible.
Una caché de disco o archivo de caché guarda las estadísticas de los datos almacenados en él y proporciona datos con un tiempo
máximo de espera en modos de escritura en diferido. Un buffer, por el contrario, no hace nada de esto, sino que es utilizado
normalmente en entrada, salida y a veces, almacenamiento temporal de datos que se enrutan entre distintos dispositivos o que van a
ser modificados de manera no secuencial antes de ser escritos o leídos de manera secuencial.
Ejemplos:
Los buffers comando/orden en CONFIG.SYS de DOS.
El buffer entre un puerto serie (UART) y un módem. La velocidad del puerto COM puede ser de 38400 bps, mientras
que el módem puede soportar sólo 14400 bps.
El buffer integrado en un disco duro, una impresora o cualquier otro dispositivo de hardware.
El buffer de una tarjeta de vídeo donde se van almacenando cada fotograma.
Historia
Una de las primeras ocasiones en que se mencionó el concepto de buffer de impresión fue en 1952 por Russel A. Kirsch para el
computador SEAC:1
"Uno de los problemas más serios en el diseño de computadores automáticos digitales es la obtención de los resultados calculados
por la máquina lo suficientemente rápido como para evitar retrasos en el progreso de los cálculos restantes. En muchos de los
problemas en que se aplica un computador de propósito general la cantidad de datos a utilizar es relativamente extensa – tanto que
una seria ineficiencia podría provocarse al forzar al computador a esperar que estos datos sean escritos en los dispositivos de
impresión existentes. Esta dificultad ha sido resulta en el SEAC mediante el uso de dispositivos magnéticos de grabación utilizados
como unidades de salida. Estos dispositivos son capaces de recibir información desde la máquina a frecuencias hasta 100 veces más
altas que las frecuencias a las que se puede operar una máquina de escribir. Por ello, se está logrando una mejor eficiencia al grabar
los datos de salida y se pueden realizar transcripciones posteriores desde el dispositivo de grabación magnético a un dispositivo de
impresión sin comprometer el ordenador principal."
Buffer de Telecomunicación
La rutina del buffer, o bien, el almacenamiento medio usado en telecomunicaciones, compensa una diferencia en el flujo de datos, o
el tiempo de la ocurrencia, al transferir datos desde un dispositivo a otro.
Los almacenadores intermedios se utilizan para muchos propósitos, por ejemplo:
Interconectando dos circuitos digitales que funcionan a diversas tarifas.
Datos de posesión para el uso en un momento posterior.
Permitir que las correcciones que miden el tiempo sean hechas en una secuencia de datos.
Recoger los bits de datos binarios en los grupos que pueden funcionar encendido como unidad.
Retraso de la época de tránsito de una señal para permitir que otras operaciones ocurran.
Protocolo (informática)
Saltar a: navegación, búsqueda
Este artículo o sección necesita referencias que aparezcan en una publicación acreditada, como revistas especializadas, monografías, prensa diaria o páginas de Internet fidedignas. Puedes añadirlas así o avisar al autor principal del artículo en su página de discusión pegando: {{subst:Aviso
referencias|Protocolo (informática)}} ~~~~
En informática, un protocolo es un conjunto de reglas usadas por computadoras para comunicarse unas con otras a través de una red
por medio de intercambio de mensajes. Éste es una regla o estándar que controla o permite la comunicación en su forma más simple,
puede ser definido como las reglas que dominan la sintaxis, semántica y sincronización de la comunicación. Los protocolos pueden
ser implementados por hardware, software, o una combinación de ambos. A su más bajo nivel, éste define el comportamiento de una
conexión de hardware.
Contenido
1 Propiedades típicas
2 Introducción 3 Niveles de abstracción
o 3.1 Ejemplos de protocolos de red
4 Véase también 5 Referencias 6 Enlaces externos
Propiedades típicas
Si bien los protocolos pueden variar mucho en propósito y sofisticación, la mayoría especifica una o más de las siguientes
propiedades:
Detección de la conexión física subyacente (con cable o inalámbrica), o la existencia de otro punto final o nodo.
Handshaking. Negociación de varias características de la conexión. Cómo iniciar y finalizar un mensaje.
Procedimientos en el formateo de un mensaje. Qué hacer con mensajes corruptos o formateados incorrectamente (corrección de errores). Cómo detectar una pérdida inesperada de la conexión, y qué hacer entonces.
Terminación de la sesión y/o conexión. Introducción
Los protocolos son reglas de comunicación que permiten el flujo de información entre equipos que manejan lenguajes distintos, por
ejemplo, dos computadores conectados en la misma red pero con protocolos diferentes no podrían comunicarse jamás, para ello, es
necesario que ambas "hablen" el mismo idioma. El protocolo TCP/IP fue creado para las comunicaciones en Internet. Para que
cualquier computador se conecte a Internet es necesario que tenga instalado este protocolo de comunicación.
Estrategias para mejorar la seguridad (autenticación, cifrado). Cómo se construye una red física. Cómo los computadores se conectan a la red.
Niveles de abstracción
Artículo principal: Modelo OSI. En el campo de las redes informáticas, los protocolos se pueden dividir en varias categorías, una de las clasificaciones más
estudiadas es la OSI.
Según la clasificación OSI, la comunicación de varios dispositivos ETD se puede estudiar dividiéndola en 7 niveles, que son
expuestos desde su nivel más alto hasta el más bajo:
Nivel Nombre Categoría
Capa 7 Nivel de aplicación
Aplicación Capa 6 Nivel de presentación
Capa 5 Nivel de sesión
Capa 4 Nivel de transporte
Capa 3 Nivel de red
Transporte de datos
Capa 2 Nivel de enlace de datos
Capa 1 Nivel físico
A su vez, esos 7 niveles se pueden subdividir en dos categorías, las capas superiores y las capas inferiores. Las 4 capas superiores
trabajan con problemas particulares a las aplicaciones, y las 3 capas inferiores se encargan de los problemas pertinentes al transporte
de los datos.
Otra clasificación, más práctica y la apropiada para TCP/IP, podría ser esta:
Nivel
Capa de aplicación
Capa de transporte
Capa de red
Capa de enlace de datos
Capa física
Los protocolos de cada capa tienen una interfaz bien definida. Una capa generalmente se comunica con la capa inmediata inferior, la
inmediata superior, y la capa del mismo nivel en otros computadores de la red. Esta división de los protocolos ofrece abstracción en
la comunicación.
Una aplicación (capa nivel 7) por ejemplo, solo necesita conocer cómo comunicarse con la capa 6 que le sigue, y con otra aplicación
en otro computador (capa 7). No necesita conocer nada entre las capas de la 1 a la 5. Así, un navegador web (HTTP, capa 7) puede
utilizar una conexión Ethernet o PPP (capa 2) para acceder a la Internet, sin que sea necesario cualquier tratamiento para los
protocolos de este nivel más bajo. De la misma forma, un router sólo necesita de las informaciones del nivel de red para enrutar
paquetes, sin que importe si los datos en tránsito pertenecen a una imagen para un navegador web, un archivo transferido vía FTP o
un mensaje de correo electrónico.
Ejemplos de protocolos de red
Capa 1: Nivel físico o Cable coaxial o UTP categoría 5, categoría 5e, categoría 6, categoría 6a Cable de fibra óptica, Cable de par
trenzado, Microondas, Radio, RS-232.
Capa 2: Nivel de enlace de datos o ARP, RARP, Ethernet, Fast Ethernet, Gigabit Ethernet, Token Ring, FDDI, ATM, HDLC.,cdp
Capa 3: Nivel de red
o IP (IPv4, IPv6), X.25, ICMP, IGMP, NetBEUI, IPX, Appletalk. Capa 4: Nivel de transporte
o TCP, UDP, SPX.
Capa 5: Nivel de sesión o NetBIOS, RPC, SSL.
Capa 6: Nivel de presentación
o ASN.1. Capa 7: Nivel de aplicación
o SNMP, SMTP, NNTP, FTP, SSH, HTTP, CIFS (también llamado SMB), NFS, Telnet, IRC, POP3, IMAP, LDAP,
Internet Mail 2000, y en cierto sentido, WAIS y el desaparecido GOPHER. Anexo:Protocolos de red
Saltar a: navegación, búsqueda
Un protocolo de red, designa el conjunto de reglas que rigen el intercambio de información a través de una red de ordenadores.
El modelo OSI de capas establece una pila de protocolos especializados que debe ser idéntica en emisor y receptor. La mencionada
pila OSI está ordenada desde el modelo físico de la red hasta niveles abstractos como el de aplicación o de presentación.
Contenido
1 Listado de protocolos según su capa por bps o 1.1 Protocolos de la capa 2 (capa de transmisión de datos) o 1.2 Protocolos de la capa 2+3
o 1.3 Protocolos de la capa 3 (capa de red) o 1.4 Protocolos de la capa 3+4 o 1.5 Protocolos de la capa 4 (capa de transporte)
o 1.6 Protocolos de la capa 5 (capa de sesión) o 1.7 Protocolos de la capa 7 (capa de uso)
2 Idiomas descriptivos del protocolo
3 Otros protocolos 4 Enlaces externos
Listado de protocolos según su capa por bps
Ésta es una lista incompleta de los protocolos de red individuales, categorizada por sus capas más cercanas del modelo de OSI.
ISDN: Servicios integrados de red digital. PDH: Jerarquía de Plesiochronous Digital.
o a) E-portador (E1, E3, etc.) o b) T-portador (T1, T3, etc.)
RS-232, una línea interfaz serial desarrollado originalmente para conectar los módems y las terminales
SDH Jerarquía síncrona Digital SONET Establecimiento de una red óptico síncrono
Protocolos de la capa 2 (capa de transmisión de datos)
ARCnet. CDP: Protocolo de descubrimiento de Cisco. DCAP: Protocolo de acceso del cliente de la conmutación de la transmisión de datos.
Econet. Ethernet. FDDI: Interfaz de distribución de datos en fibra.
Frame Relay. HDLC LocalTalk.
L2F: Protocolo de la expedición de la capa 2.
L2TP: Protocolo de túnel capa 2. LAPD: Procedimientos de acceso de acoplamiento en el canal D. LLDP: Protocolo del descubrimiento de la capa de acoplamiento.
LLDP-MED: Protocolo del descubrimiento de la capa de acoplamiento- Descubrimiento del punto final de los medios. PPP: Protocolo Punto a Punto. PPTP: Protocolo túnel punto a punto.
SLIP: Protocolo de internet de Línea serial (obsoleto). StarLan. STP: Protocolo del árbol esparcido.
Token ring. VTP VLAN: Trunking virtual para LAN virtual.
Protocolos de la capa 2+3
ATM Modo de Transferencia Asincrona. Capítulo el relais, una versión simplificada de X.25. MPLS Conmutación Multi-protocol de la etiqueta.
Señalando el sistema 7, también llamado SS7, C7 y CCIS7; un común PSTN control protocolo. X.25
Protocolos de la capa 3 (capa de red)
AppleTalk ARP Protocolo de resoluciòn de Direcciones BGP protocolo de frontera de entrada
EGP exterior de entrada de protocolo ICMP Internet de control del protocolo del mensaje IGMP Protocolo de la gerencia del grupo de Internet
IPv4Protocolo de interenet versión 4 IPv6 Protocolo de internet versión 6 IPX Red interna del intercambio del paquete
IS-IS Sistema intermedio a sistema intermedio MPLS MultiProtocolo de conmutaciòn de eiquetas OSPF Abrir la trayectoria más corta primero
RARP Protocolo de resoluciòn de direcciones inverso Protocolos de la capa 3+4
Servicios de red de Xerox (XNS)
Protocolos de la capa 4 (capa de transporte) IL Convertido originalmente como capa de transporte para 9P SPX Intercambio ordenado del paquete
SCTP Protocolo de la transmisión del control de la corriente TCP Protocolo de la transmisión del control UDP Usuario del protocolo del datagrama
Sinec H1 para el telecontrol Protocolos de la capa 5 (capa de sesión)
9P distribuyó el protocolo del sistema de ficheros desarrollado originalmente como parte del plan 9
NCP Protocolo de la base de NetWare NFS Red de sistema de ficheros SMB Bloque del mensaje del servidor (Internet común FileSystem del aka CIFS)
Protocolos de la capa 7 (capa de uso) AFP Apple que archiva protocolo BACnet Automatización del edificio y protocolo de red del control
BitTorrent, un archivo del par-a-par que comparte protocolo BOOTP Protocolo del elástico de bota El DIÁMETRO, una autentificación, la autorización y la contabilidad protocolo
DICT Protocolo del diccionario DNS Servicio del Domain Name DHCP Protocolo dinámico de la configuración del anfitrión
FTP Archivo del protocolo de la transferencia Información del perfil de usuario Gnutella, un protocolo de archivo-intercambio del par-a-par
Gopher, un precursor de los motores de búsqueda de la tela HTTP Protocolo de transferencia de hipertexto, usado en el World Wide Web IMAP Protocolo de acceso de mensaje de Internet
IRC Protocolo de Internet de charlas de relais LDAP directorio de ligero acceso al protocolo MIME Extensiones multipropósito del correo del Internet
NNTP Protocolo de la transferencia de la red de las noticias NTP Red protocolo de tiempo POP3 Versión 3 del Post Office Protocol
El RADIO, una autentificación, la autorización y la contabilidad protocolo Rlogin, un protocolo del remote login del UNIX rsync, una transferencia de archivo Protocolo para las reservas, copiando y reflejando
RTP Protocolo en tiempo real del transporte
RTSP Protocolo que fluye del transporte en tiempo real SSH Asegurar Shell SIP Protocolo de la iniciación de la sesión, un protocolo que señala
SMTP Protocolo Simple de mail de la transferencia SNMP Protocolo simple de administracion SOAP Protocolo simple del acceso del objeto
Telnet, un protocolo del acceso del Terminal alejado TFTP protocolo Trivial de un archivo transferencia a un simple archivo El ser autor distribuido Web y Versioning de WebDAV
RIP Protocolo de encaminamiento de la información XMPP, un protocolo de la inmediato-mensajería
Idiomas descriptivos del protocolo
Extracto notación de sintaxis una (ASN.1) Otros protocolos
Red del área del regulador (CAN)
Control del comando Digital (DCC) DSA Arquitectura distribuida de los sistemas (Honeywell Bull) FIX protocolo
El CDP del protocolo del descubrimiento de la entrada es un protocolo de Cisco similar a IRDP ICMP Puesta en práctica del protocolo del descubrimiento de la rebajadora de RFC 1256 I²C
Lista de los protocolos de la automatización Modbus SNA Arquitectura de red de sistemas (IBM)
SOCKS STUN