0% encontró este documento útil (0 votos)
68 vistas8 páginas

Protocolo TCP

Este documento proporciona una introducción y descripción detallada del Protocolo de Control de Transmisión (TCP), incluyendo su historia, propósito, funcionamiento básico, formato de cabecera y los mecanismos que implementa para proporcionar una transmisión de datos fiable entre dos puntos terminales en una red. TCP permite el establecimiento de conexiones bidireccionales que detectan y corrigen pérdidas de datos.

Cargado por

Ferrus Castro
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
68 vistas8 páginas

Protocolo TCP

Este documento proporciona una introducción y descripción detallada del Protocolo de Control de Transmisión (TCP), incluyendo su historia, propósito, funcionamiento básico, formato de cabecera y los mecanismos que implementa para proporcionar una transmisión de datos fiable entre dos puntos terminales en una red. TCP permite el establecimiento de conexiones bidireccionales que detectan y corrigen pérdidas de datos.

Cargado por

Ferrus Castro
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

ESCUELA SUPERIOR DE INGENIERIA

MECANICA Y ELECTRICA

” INGENIERÍA EN COMUNICACIONES Y

ELECTRÓNICA”

REDES DE AREA AMPLIA

PROTOCOLO TCP
RFC-793

Profesor: Delgado Pérez Julio


Grupo: 8CV2

RAMIREZ RAMIREZ LUISA FERNANDA


BOLETA:2014111136
Introducción:
El Protocolo TCP en sus siglas en inglés, Transmission Control Protocol (protocolo de
control de transmisión) es un acuerdo estandarizado de transmisión de datos entre distintos
participantes de una red informática. La historia de este protocolo se remonta hasta el año
1973, cuando los informáticos Robert E. Kahn y Vinton G. Cerf publicaron su primera
versión en el marco de su trabajo de investigación. No obstante, tuvieron que pasar otros
ocho años para que se estandarizara con el documento RFC 793. Desde entonces, se ha ido
sucediendo una serie de mejoras y ampliaciones, aunque el núcleo del producto se mantiene
sin cambios hasta hoy en día. La versión actual, publicada en el RFC 7323 es del año 2014.
El protocolo TCP permite establecer una conexión entre dos puntos terminales en una red
informática común que posibilite un intercambio mutuo de datos. En este proceso,
cualquier pérdida de datos se detecta y resuelve, por lo que se considera un protocolo fiable.
Dentro de la familia de protocolos de Internet, el TCP, junto con el UDP y el SCTP forma
el grupo de los protocolos de transporte, que, según el modelo OSI, se ubican en la capa de
transporte dentro de la arquitectura de red. Como el protocolo TCP se combina casi en todos
los casos con el protocolo de Internet (IP) y esta conexión forma la base de la gran mayoría
de redes locales y servicios de red, es común hablar del conjunto de protocolos
TCP/IP, aunque en realidad se haga referencia a la familia de protocolos de Internet.

Contenido:
Funcionamiento
El protocolo de control de transmisión permite la transmisión de información en ambas
direcciones. Por lo tanto, los sistemas informáticos que se comunican mediante TCP pueden
enviar y recibir datos de forma simultánea, como si se tratase de una llamada telefónica. En
este contexto, las unidades de transmisión básicas de las que echa mano el protocolo son
segmentos (paquetes) que, aparte de los datos de uso, también pueden contener información
de control y están limitados a un tamaño de 1500 bytes.

El software TCP se activa mediante distintas aplicaciones de red, como los navegadores de
red o los servidores, a través de interfaces específicas. Cada conexión se debe identificar
siempre claramente mediante dos puntos terminales definidos (cliente y servidor). En este
contexto, qué lado desempeña el papel de cliente y cuál el de servidor es indiferente. Lo que
importa es que el software TCP cuente con una pareja ordenada de dirección IP y puerto
(también denominada socket) en cada punto terminal.
Operación

Como se ha hecho notar más arriba, el propósito principal de TCP consiste en proporcionar
un servicio de conexión o circuito lógico fiable y seguro entre pares de procesos. Para
proporcionar este servicio encima de un entorno de internet menos fiable, el sistema de
comunicación requiere de mecanismos relacionados con las siguientes áreas:

▪ Transferencia básica de datos


▪ Fiabilidad
▪ Control de flujo
▪ Multiplexamiento
▪ Conexiones
▪ Prioridad y seguridad

La operación básica de TCP en cada uno de estas áreas se describe en los siguientes párrafos:

▪ Transferencia básica de datos:

TCP es capaz de transferir un flujo continuo de octetos en cada sentido entre sus usuarios
empaquetando un cierto número de octetos en segmentos para su transmisión a través del
sistema de internet. En general, los módulos de TCP deciden cuándo bloquear y enviar
datos según su propia conveniencia.
Algunas veces los usuarios necesitan estar seguros de que todos los datos que habían
entregado al módulo de TCP han sido transmitidos.
Para este propósito se define una función 'push' ("enviar inmediatamente").

▪ Fiabilidad:
El módulo de TCP debe poder recuperar los datos que se corrompan, pierdan, dupliquen o se
entreguen desordenados por el sistema de comunicación del entorno de internet. Esto se
consigue asignando un número de secuencia a cada octeto transmitido, y exigiendo un acuse
de recibo (ACK, N.T.:del inglés 'acknowledgment') del módulo de TCP receptor. Si no se
recibe un ACK dentro de un cierto plazo de expiración prefijado, los datos se retransmiten.

▪ Flujo de control:
TCP proporciona al receptor un medio para controlar la cantidad de datos enviados por el
emisor. Esto se consigue devolviendo una "ventana" con cada ACK, indicando el rango de
números de secuencia aceptables más allá del último segmento recibido con éxito. La
ventana indica el número de octetos que se permite que el emisor transmita antes de que
reciba el siguiente permiso.

▪ Multiplexamiento:

Para permitir que muchos procesos dentro de un único 'host' utilicen simultáneamente las
posibilidades de comunicación de TCP, el módulo de TCP proporciona una serie de
direcciones o puertos dentro de cada 'host'. Concatenadas con las direcciones de red y de
'host' de la capa de comunicación internet conforman lo que se denomina una dirección de
conector ('socket'). Un par de direcciones de conector identifica de forma única la conexión.
Es decir, un conector puede utilizarse simultáneamente en múltiples conexiones.
La asignación de puertos a los procesos se gestiona de forma independiente en cada 'host'.

▪ Conexiones

La fiabilidad y los mecanismos de control de flujo descritos más arriba exigen que los
módulos de TCP inicialicen y mantengan una información de estado para cada flujo de datos.
La combinación de esta información, incluyendo las direcciones de los conectores, los
números de secuencia y los tamaños de las ventanas, se denomina una conexión. Cada
conexión queda especificada de forma única por un par de conectores que corresponden con
sus dos extremos.
Cuando dos procesos desean comunicarse, sus módulos de TCP deben establecer primero
una conexión (inicializar la información de estado en cada lado). Cuando la comunicación se
ha completado, la conexión se termina o cierra con la intención de liberar recursos
para otros usos.

▪ Prioridad y seguridad:

Los usuarios de TCP pueden indicar el nivel de seguridad y prioridad de su comunicación.


Se emplean valores por defecto cuando estas características no se necesiten.

Formato de la cabecera

Los segmentos de TCP se envían como datagramas de internet. La cabecera del protocolo de
internet transporta varios campos de información, entre los que se incluyen las direcciones
de los 'host’ de origen y de destino. Una cabecera de TCP sigue a la cabecera de internet,
aportando información específica del protocolo de TCP. Esta división permite la existencia
de otros protocolos de la capa de ‘host' distintos de TCP.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Puerto de origen | Puerto de destino |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Número de secuencia |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Número de acuse de recibo |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Posic | |U|A|P|R|S|F| |
| de los| Reservado |R|C|S|S|Y|I| Ventana |
| datos | |G|K|H|T|N|N| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Suma de control | Puntero urgente |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Opciones | Relleno |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Datos |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Formato de la cabecera de TCP


o Puerto de origen: 16 bits

El número del puerto de origen.

o Puerto de destino: 16 bits

El número del puerto de destino.

o Número de secuencia: 32 bits

El número de secuencia del primer octeto de datos de este segmento (excepto cuando el
indicador SYN esté puesto a uno). Si SYN está puesto a uno es el número de secuencia
original (ISN: 'initial sequence number') y, entonces, el primer octeto de datos es ISN+1.

o Número de acuse de recibo: 32 bits

Si el bit de control ACK está puesto a uno, este campo contiene el valor del siguiente número
de secuencia que el emisor del segmento espera recibir. Una vez que una conexión queda
establecida, este número se envía siempre.

o Posición de los datos: 4 bits

El número de palabras de 32 bits que ocupa la cabecera de TCP. Este número indica dónde
comienzan los datos. La cabecera de TCP (incluso una que lleve opciones) es siempre un
número entero de palabras de 32 bits.

o Reservado: 6 bits

Reservado para uso futuro. Debe valer 0.

o Bits de control: 6 bits (de izquierda a derecha):

URG: Hace significativo el campo "Puntero urgente"


ACK: Hace significativo el campo "Número de acuse de recibo"
PSH: Función de "Entregar datos inmediatamente" ('push')
RST: Reiniciar ('Reset') la conexión
SYN: Sincronizar ('Synchronize') los números de secuencia
FIN: Últimos datos del emisor

o Ventana: 16 bits
El número de octetos de datos, a contar a partir del número indicado en el campo de "Número
de acuse de recibo", que el emisor de este segmento está dispuesto a aceptar.

o Suma de control: 16 bits


El campo "Suma de control" es el complemento a uno de 16 bits de la suma de los
complementos a uno de todas las palabras de 16 bits de la cabecera y del texto. Si un
segmento contiene un número impar de octetos de cabecera y texto, el último octeto se rellena
con ceros ala derecha para formar una palabra de 16 bits con el propósito de calcular la suma
de control.

o Puntero urgente: 16 bits.

Este campo indica el valor actual del puntero urgente como un desplazamiento positivo desde
el número de secuencia de este segmento. El puntero urgente apunta al número de secuencia
del octeto al que seguirán los datos urgentes. Este campo es interpretado únicamente si el bit
de control URG está establecido a uno.

o Opciones: variable

Los campos de opciones pueden ocupar un cierto espacio al final de la cabecera de TCP, pero
siempre de una longitud múltiplo de 8 bits.
En el cálculo de la suma de control, se incluyen todas las opciones. Una opción puede
empezar en cualquier posición múltiplo de ocho.

Establecimiento de conexión (negociación en tres pasos)

Para establecer la conexión se usa el procedimiento llamado negociación en tres pasos.


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 segmento SYN inicial al servidor como parte
de la negociación en tres pasos. 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.

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.

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.

Fin de la conexión

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

El protocolo TCP utiliza la noción de números de acceso para identificar enviar y la recepción
de límites del uso en un anfitrión, o Zócalos del Internet.
Cada lado de una conexión TCP tiene un número de acceso sin firmar asociado de 16 bits (1-
65535) reservado por el uso que envía o de recepción. Los paquetes de datos que llegan son
identificados mediante una conexión TCP específica, que consta de una combinación de la
dirección IP y número de puerto, tanto del host origen como del host destino.
Esto significa que un servidor puede proveer de varios clientes varios servicios a la vez,
mientras el cliente toma cuidado de iniciar cualquier conexión simultánea con números de
puerto diversos.
Los números de acceso se recaen en tres categorías básicas: puertos bien conocidos,
registrados, y dinámicos/privados.

• Puertos bien conocidos (números del 0 al 1023): estos números se reservan para
servicios y aplicaciones. Se utilizan comúnmente para aplicaciones como HTTP
(servidor Web), protocolo de acceso a mensajes de Internet (IMAP) o protocolo simple
de transferencia de correo (SMTP) (servidor de correo electrónico) y Telnet. Al definir
estos puertos bien conocidos para las aplicaciones de los servidores, las aplicaciones
cliente se pueden programar para solicitar una conexión a ese puerto en particular y el
servicio relacionado.

• Puertos registrados (números del 1024 al 49151): estos números de puerto se asignan
a procesos o aplicaciones del usuario. Principalmente, estos procesos son aplicaciones
individuales que el usuario elige instalar en lugar de aplicaciones comunes que recibiría
un número de puerto bien conocido. Cuando no se utilizan para un recurso del servidor,
un cliente puede seleccionar estos puertos de forma dinámica como su puerto de origen.
• Puertos dinámicos o privados (números 49152 a 65535): también conocidos como
puertos efímeros, generalmente se los asigna de forma dinámica a las aplicaciones
cliente cuando el cliente inicia una conexión a un servicio. El puerto dinámico suele
utilizarse para identificar la aplicación cliente durante la comunicación, mientras que el
cliente utiliza el puerto bien conocido para identificar el servicio que se solicita en el
servidor y conectarse a dicho servicio. No es común que un cliente se conecte a un
servicio mediante un puerto dinámico o privado (aunque algunos programas de
intercambio de archivos punto a punto lo hacen).

El protocolo TCP es adecuado para utilizarse en redes pequeñas y grandes debido a que tiene
un alto grado de fiabilidad, sin embargo, resulta algo lento en redes con tráfico mediano,
debido a que su diseño le obliga a constatar que los datos transmitidos realmente hayan sido
recibidos en tiempo y con integridad.

Conclusiones:
Este protocolo tiene aspectos positivos como la transferencia de datos de manera simultánea
asi como la fiabilidad de que los datos lleguen en orden y sin errores, su desventaja es que
puede resultar lento debido a que su diseño le obliga a constatar que los datos transmitidos
realmente hayan sido recibidos en tiempo, con integridad y sin errores.

Bibliografía:
https://www.rfc-es.org/rfc/rfc0793-es.txt
http://itroque.edu.mx/cisco/cisco1/course/module7/7.1.2.8/7.1.2.8.html
https://www.ionos.es/digitalguide/servidores/know-how/que-es-tcp-transport-control-
protocol/
Andrew S. Tanenbaum. Redes de computadoras. 3ª edición, Prentice Hall, pag 521 – 542.

También podría gustarte