Indice
1.
Introducción
2. Protocolo de Control de
Transmisión (TCP)
3. Principales características de
TCP
4. Aperturas activa y
pasiva
5. El Bloque de Control de
Transmisión (TCB)
6. El segmento TCP
(PDU)
7. Conclusión
8. Bibliografía
A finales de los años 60 y principios de los
70, las redes no
estaban diseñadas de forma que fuera posible compartir
recursos entre
redes
diferentes.
Desde entonces se ha hecho cada vez más necesario que las
aplicaciones de usuario compartan recursos. Pero
para que puedan hacerlo, los administradores de las redes deben
acordar primero un conjunto de tecnologías y normas comunes
para que las redes puedan comunicarse.Es por eso que las
aplicaciones como la transferencia de archivos y el
correo
electrónico se deberían estandarizar
también para permitir la interacción entre
aplicaciones de usuario.
El Protocolo de
Control de
Transmisión se desarrolló con esos objetivos.
El propósito primordial de TCP es proporcionar circuitos
lógicos confiables o servicios de
conexión entre parejas de procesos. Esto
no implica confiabilidad desde protocolos de
más bajo nivel (como IP) así
que TCP debe garantizar esto por sí mismo.
2. Protocolo de
Control de
Transmisión (TCP)
TCP reside en el nivel de transporte del
modelo de
niveles convencional. Está situado entre IP y los
niveles superiores. TCP no está cargado en las pasarelas.
Está diseñado para residir en los computadores o en
las máquinas
que se ocupan de conservar la integridad de la transferencia de
datos entre
extremos. Lo más común es que TCP resida en los
computadores de usuario.
Como IP es una red no orientada a
conexión, es TCP quien se debe encargar de las tareas de
fiabilidad, control de flujo, secuenciamiento, aperturas y
cierres. Aunque TCP e IP estén tan relacionados que
incluso se les denomine juntos "TCP/IP", TCP puede soportar otros
protocolos. Por
ejemplo, otro protocolo no orientado a conexión como el
ISO 8473
(Protocolo de Redes No Orientado a Conexión o CNLP)
podría funcionar con TCP (si se realizan algunos ajustes
de los interfaces entre módulos). Además, los
protocolos de aplicación, como el Protocolo de
Transferencia de Correo Simple (de siglas en inglés,
SMTP) se apoyan en muchos servicios que
proporciona TCP.
3. Principales características de TCP
TCP suministra una serie de servicios a los niveles
superiores. Esta sección presenta brevemente esos
servicios.
TCP es un protocolo orientado a conexión. Esto quiere
decir que TCP mantiene información del estado de cada
cadena de datos de usuario
que circula por él. El término utilizado en este
contexto significa también que TCP es responsable de la
transferencia de datos entre extremos por la red o redes hasta la
aplicación de usuario receptora (o el protocolo de nivel
superior). TCP debe asegurar que los datos se transmiten y
reciben correctamente por los computadores atravesando las
correspondientes redes.
Como TCP es un protocolo orientado a conexión, es
responsable de la transferencia fiable de cada uno de los
caracteres (bytes u octetos) que reciben del nivel superior
correspondiente. En consecuencia, utiliza números de
secuencia y aceptaciones/rechazos.
El término asociado con estos aspectos de los protocolos
orientados a conexión es el de circuito virtual.
Cada octeto transmitido lleva asignado un número de
secuencia. El módulo TCP receptor utiliza una rutina de
checksum para comprobar la posible existencia de daños en
los datos producidos en el proceso de
transmisión. Si los datos son aceptables, TCP envía
una acepción positiva (ACK) al módulo TCP
remitente. Si los datos han resultado dañados, el TCP
receptor los descarta y utiliza un número de secuencia
para informar al TCP remitente del problema. Como muchos otros
protocolos orientados a conexión, TCP emplea
temporizadores para garantizar que no transcurre un lapso de
tiempo
demasiado grande antes de la transmisión de aceptaciones
desde el nodo receptor y/o de la transmisión de datos
desde el nodo transmisor.
TCP recibe datos de un protocolo de nivel superior de forma
orientada a cadenas. Esto es diferente a muchos otros protocolos
empleados en la industria. Los
protocolos orientados a cadenas se diseñan para enviar
caracteres separados y no bloques, tramas, datagramas, etc. Los
datos son enviados por un protocolo de nivel superior en forma de
cadenas, byte a byte. Cuando llegan al nivel TCP, los bytes son
agrupados para formar segmentos TCP. Dichos segmentos se
transfieren a IP (o a otro protocolo de nivel inferior) para su
transmisión al siguiente destino. La longitud de los
segmentos de la determina TCP, aunque el realizador de un
determinado sistema puede
determinar la forma en que TCP toma su decisión.Los
realizadores de TCP que han trabajado con sistemas
orientados a bloques, como los sistemas
operativos de IBM, puede que tengas que modificar ligeramente
su forma de pensar acerca de las prestaciones
de TCP. TCP admite el uso de segmentos de longitud variable,
debido a su diseño
orientado a cadenas. Por tanto, las aplicaciones que trabajan
normalmente con bloques de datos de longitud fija (una
aplicación de gestión
de personal que
envíe registros de
empleados de longitud fija o una aplicación de gestión
de nóminas
con registros de pago
también longitud fija) no pueden utilizar TCP para
transmitir bloques fijos al receptor. El nivel de
aplicación debe ocuparse de configurar los bloques dentro
de las cadenas de TCP.
TCP comprueba también la duplicidad de los datos. En el
caso de que el TCP remitente decida retransmitir los datos, el
TCP descarta los datos redundantes. Estos datos redundantes
podrían aparecer en la interred, por ejemplo cuando el TCP
receptor no acepta el tráfico de manera temporizada, en
cuyo caso el TCP remitente decidirá retransmitir los
datos.
Además de la capacidad de transmisión de cadenas,
TCP soporta también el concepto de
función
push. Esta función se
utiliza
cuando una aplicación desea asegurarse de que todos los
datos que han pasado al nivel inferior se han transmitido. Para
hacer eso, gobierna la gestión del buffer de TCP. Para
obtener esta función, el protocolo de nivel superior
envía una orden a TCP con un identificador de
parámetro de push a 1. Esta operación implica que
TCP envía todo el tráfico almacenado en forma de
segmento o segmentos hacia su destino.
Además de utilizar los números de secuencia para
aceptaciones, TCP los utiliza para la reordenación de los
segmentos que llegan a su destino fuera de orden. Como TCP
descansa sobre un protocolo no orientado a conexión, es
bastante posible que en la interred se creen datagramas
duplicados. TCP también elimina los segmentos
duplicados.
TCP emplea un esquema de aceptación inclusiva. El
número de aceptación acepta todos los octetos hasta
(e incluyendo) el del número de aceptación menos
uno. Este esquema es un método muy
sencillo y eficiente de aceptar tráfico, pero presenta una
desventaja. Por ejemplo, supongamos que se han transmitido diez
segmentos y debido a las operaciones
realizadas durante el proceso de
encaminamiento llegan desordenados. TCP está obligado
aceptar sólo el mayor número de bytes contiguos
recibidos sin error. No está permitido aceptar el byte de
mayor número recibido hasta que hayan llegado todos los
bytes intermedios. Por tanto, como en cualquier otro protocolo
orientado a conexión, podría transcurrir el periodo
de temporización de aceptaciones y TCP transmisora
retransmitiría el tráfico no aceptado
todavía. Esas retransmisiones podrían introducir
una considerable sobrecarga en la red.
El módulo TCP receptor se ocupa también de
controlar el flujo de los datos del transmisor, lo que es muy
útil para evitar el desbordamiento de los dispositivos de
almacenamiento y la saturación de la máquina
receptora. La idea que utiliza TCP es algo poco usual en
protocolos de comunicación. Se basa en enviar el
dispositivo transmisor un valor de
"ventana". Se permite que el transmisor envíe un
número máximo de bytes igual al valor de su
ventana. Cuando se ha llegado a ese valor, la ventana se cierra y
el transmisor debe interrumpir el envío de datos.
Además, TCP posee una facilidad muy útil que
permite multiplexar varias sesiones de usuario en un mismo
computador.
Esta operación se realiza definiendo algunas convenciones
para compartir puertos y sockets entre usuarios.
TCP proporciona transmisión en modo dúplex integral
entre las entidades que se comunican. De esta forma, la
transmisión se puede efectuar en ambos sentidos sin
necesidad de esperar a la señal de indicación de
cambio de
sentido, necesaria en las transmisiones semidúplex.
Además, TCP permite a los usuarios especificar niveles de
seguridad y
prioridades de las conexiones. Aunque esas opciones no
están incluidas en todos los protocolos TCP, están
definidas en el estándar TCP.
TCP proporciona el cierre seguro de los
circuitos
virtuales (la conexión lógica
entre dos usuarios). El cierre seguro se ocupa
de que todo el tráfico sea reconocido antes de la
desactivación del circuito virtual.
Los puertos TCP pueden establecer dos tipos de
conexiones. El modo de apertura pasiva permite que el protocolo
de nivel superior (por ejemplo, un servidor) indique
al TCP y al sistema operativo
del computador que
va a esperar la llegada de solicitudes de conexión
procedentes del sistema remoto,
en lugar de enviar una apertura activa. Tras recibir esta
solicitud, el sistema operativo
asigna un número de puerto a este extremo. Esta utilidad se puede
usar para realizar comunicaciones
con usuarios remotos sin tener el retardo de la apertura
activa.
Los procesos de
aplicaciones que solicitan la apertura pasiva pueden aceptar una
solicitud de cualquier usuario (supuesto que se cumplen algunos
requisitos de compatibilidad). Si se puede aceptar cualquier
llamada (sin requisitos de compatibilidad) el número de
socket exterior se pone a ceros. Los números de socket
exterior no especificados sólo se permiten en aperturas
pasivas.
La segunda forma de establecimiento de conexión es el modo
de apertura activa. En esta situación, el protocolo de
nivel superior designa específicamente otro socket por el
que establecer la conexión. Típicamente, se
envía la apertura activa a un puerto con apertura pasiva
para establecer un circuito virtual.
TCP admite un escenario en el que se envían dos aperturas
activas de un sistema a otro a la vez. TCP realizará la
conexión. Esta característica permite que las aplicaciones
envíen una apertura en cualquier momento, sin preocuparse
de si la otra aplicación ha enviado otra apertura o
no.
TCP establece convenciones estrictas sobre cómo se deben
utilizar conjuntamente las aperturas activas y pasivas. En primer
lugar, una apertura activa identifica un socket
específico, así como sus niveles de prioridad y de
seguridad. TCP
garantiza una apertura si el socket remoto tiene una apertura
pasiva compatible, o si ha enviado una apertura activa
compatible.
5. El Bloque de Control de
Transmisión (TCB)
Como TCP debe recordar varias cosas de cada
conexión virtual, almacena esa información en un Bloque de Control de
Transmisión (TCB). Entre la información que se
almacena en la TCB destacamos los números de socket local
y remoto, los punteros a los buffers de transmisión y
recepción, los punteros a la cola de retransmisión,
los valores de
seguridad y prioridad de la conexión y el segmento en
curso. La TCB también contiene varias variables
asociadas a los números de secuencia de envío y
recepción.
El segmento TCP
Las PDU que se intercambian entre dos módulos TCP se
denominan segmentos. El segmento se divide en dos partes, la
parte de cabecera y la parte de datos. La parte de datos sigue a
la parte de cabecera. Los primeros dos campos del segmento se
denominan puerto de fuente y puerto de destino. Esos campos de 16
bits identifican a los programas de
aplicación de nivel superior que utilizan la
conexión TCP.
El siguiente campo se denomina número de
secuencia. Este campo contiene el número de secuencia del
primer octeto del campo de datos de usuario. Su valore especifica
la posición de la cadena de bits del módulo
transmisor. Dentro del segmento especifica el primer octeto de
datos de usuario.
El número de secuencia se utiliza también durante
la operación de gestión de la conexión. Si
dos entidades TCP utilizan el segmento de solicitud de
conexión, entonces el número de secuencia
especifica el número de secuencia de envío inicial
(ISS) que se utilizará para la numeración
subsiguiente de los datos de usuario.
El valor del número de aceptación permite aceptar
los datos previamente recibidos. Este campo contiene el valor del
número de secuencia del siguiente octeto que se espera
recibir del transmisor. Con esa definición permite la
aceptación inclusiva, en el sentido de que permite la
aceptación de todos los octetos hasta, e incluyendo, el
valor de este número menos 1.
El campo de desplazamiento de datos especifica el número
de palabras alineadas de 32 bits de que consta la cabecera de
TCP. Este campo se utiliza para determinar dónde comienza
el campo de datos.
Como puede esperarse, el campo reservado está reservado.
Consta de 6 bits que deben valer cero. Estos bits están
reservados para usos futuros.
Los seis bits siguientes se denominan indicadores
(flags). Son bits de control de TCP y se utilizan para
especificar ciertos servicios o utilidades que se pueden emplear
durante la sesión. El valor de algunos de esos bits indica
cómo interpretar otros campos de la cabecera. Los seis
bits mencionados llevan la siguiente
información.
- URG indica que el campo de puntero de urgencia es
significativo. - ACK indica si el campo de aceptación es
significativo. - PSH significa que el módulo va a utilizar la
función push. - RST indica que la conexión se va a
inicializar. - SYN indica que se van a sincronizar los
números de secuencia; se utiliza en los segmentos de
establecimiento de conexión como indicación de
que se van a realizar algunas operaciones de
preparación. - FIN indica que el remitente no tiene más datos
para enviar. Es comparable a la señal de fin de
transmisión (EOT) en otros protocolos.
El campo siguiente, denominado ventana, se pone a un
valor que indica cuántos octetos desea aceptar el
receptor. Este valor se establece teniendo en cuenta el valor del
campo de aceptación (número de aceptación).
La ventana se establece sumando los valores del
campo de ventana y del campo de número de
aceptación.
El campo de checksum contiene el complemento de 1 a 16 bits del
complemento a 1 de la suma de todas las palabras de 16 bits del
segmento, incluyendo la cabecera del texto. El
propósito de este cálculo es
determinar si el segmento procedente del transmisor ha llegado
libre de errores.
El siguiente campo del segmento, denominado puntero de urgente,
se utiliza sólo si el indicador de URG está a 1. El
objeto de este puntero es identificar el octeto de datos al que
siguen datos urgentes. Los datos urgentes se denominan datos
fuera de bada. TCP no dice lo que hay que hacer con los datos
urgentes. Depende de la implementación. Dicho de otro
modo, sólo se indica el lugar donde empiezan los datos
urgentes, no lo que hay que hacer con ellos. El valor de este
campo es un desplazamiento del número de secuencia y
apunta al octeto a partir de cual siguen los datos urgentes.El
campo de opciones está concebido para posibilitar futuras
mejoras de TCP. Está diseñado de forma semejante al
campo de opción de los datagramas de IP, en el sentido de
que cada opción se especifica mediante un byte que
especifica el número de opción, un campo que
contiene la longitud de la opción y finalmente, los valores de
la opción propiamente dichos.
Actualmente el campo de opción tiene un uso bastante
limitado, y el estándar TCP sólo especifica tres
opciones:
0 : fin de lista de opciones
1 : no operación
2 : tamaño máximo de segmento
Finalmente, el campo de relleno asegura que la cabecera
TCP ocupa un múltiplo par de 32 bits. Finalmente, como se
muestra en la
figura, siguen los datos de usuario.
Los protocolos de Internet se han convertido
en una de las familias de protocolos más ampliamente
utilizada en el mundo. Están diseñados para
facilitar la intercomunicación de redes de
computadores.
Los protocolos Internet constan de muchos
protocolos diseñados para dar soporte a las operaciones de
comunicación entre redes..
Además, los protocolos interred contienen una gran
cantidad de protocolos de nivel de aplicación, como
TELNET, el
protocolo de transferencia de archivos
(FTP) y el
protocolo simple de transferencia de correo (SMTP)
Redes de computadores. Protocolos, normas e
interfaces.
2.ª Edición.
Autor: Uyless Black
Ed. Alfaomega
Autor:
Leopoldo de la Fuente Silva
Estudiante de la Universidad
Autónoma de Tamaulipas