SlideShare una empresa de Scribd logo
1 de 18
UNIVERSIDAD TECNOLOGICA DE HONDURAS




         Tema de Exposicion
     TCP(Transmission Control Protocol)
              Ing.Sanders
                 Redes I
             Hora 9:30 am




              Integrantes
                 Alumno
                 Cta No.
         1. Adans Noe Garcia
            200910510030
2. Jose Mauricio Bonilla
                    200810510180
                  3. Sirian M. Fiallos
                    200610511003

                                         Martes, 07 de Agosto 2012




                     INTRODUCCION



ES IMPORTANTE QUE EL ESTUDIANTE SEPA DEFINIR QUE ES TCP,
CONOZCA      SUS    ORIGENES,   EL    FUNCIONAMIENTO,
CARACTERISTICAS Y FINALIDAD DE TCP, TANTO COMO SABER
UTILIZARLO.

QUE SEA CAPAZ DE DISTINGUIR ENTRE UNA COMUNICACION
INSEGURA Y UNA COMUNICACION SEGURA.

QUE CONOZCA LOS OBJETIVOS Y BENEFICIOS DE TCP.

Y PARA ELLO MOSTRAREMOS UNA SERIE DE INFORMACION QUE
SERVIRA DE GUIA EN FUTURAS PRACTICAS.
TCP     (Transmission Control Protocol)
A principios de los años 60, varios investigadores intentaban encontrar una
forma de compartir recursos informáticos de una forma más eficiente. En
1961, Leonard Klienrock introduce el concepto de Conmutación de Paquetes
(Packet Switching, en inglés). La idea era que la comunicación entre
ordenadores fuese dividida en paquetes. Cada paquete debería contener la
dirección de destino y podría encontrar su propio camino a través de la red.

TCP/IP tenia (y tiene) ventajas significativas respecto a otros protocolos. Por
ejemplo, consume pocos recusos de red. Además, podía ser implementado a
un coste mucho menor que otras opciones disponibles entonces. Gracias a
estos aspectos, TCP/IP comenzó a hacerse popular. En 1983, TCP/IP se
integró en la versión 4.2 del sistema operativo UNIX de Berkeley y la
integración en versiones comerciales de UNIX vino pronto. Así es como
TCP/IP se convirtió en el estándar de Internet.

En la actualidad, TCP/IP se usa para muchos propósitos, no solo en Internet.
Por ejemplo, a menudo se diseñan intranets usando TCP/IP. En tales
entornos, TCP/IP ofrece ventajas significativas sobre otros protocolos de red.
Una de tales ventajas es que trabaja sobre una gran variedad de hardware y
sistemas operativos. De este modo puede crearse fácilmente una red
heterogénea usando este protocolo. Dicha red puede contener estaciones
Mac, PC compatibles, estaciones Sun, servidores Novell, etc. Todos estos
elementos pueden comunicarse usando la misma suite de protocolos TCP/IP.
La siguiente tabla muestra una lista de plataformas que soportan TCP/IP:

Plataforma Soporte de TCP/IP

UNIX                                Nativo

DOS                                Piper/IP por Ipswitch

Windows                     TCPMAN por Trumpet Software

Windows 95         Nativo

Windows NT         Nativo

Macintosh                    MacTCP u OpenTransport (Sys 7.5+)

OS/2                     Nativo

AS/400 OS/400      Nativo



Las plataformas que no soportan TCP/IP nativamente lo implementan usando
programas TCP/IP de terceras partes, como puede apreciarse en la tabla
anterior.



Cómo Trabaja TCP/IP
TCP/IP opera a través del uso de una pila. Dicha pila es la suma total de todos
los protocolos necesarios para completar una transferencia de datos entre
dos máquinas (así como el camino que siguen los datos para dejar una
máquina o entrar en la otra). La pila está dividida en capas.
EQUIPO SERVIDOR O CLIENTE

Capa de       Aplicaciones Cuando un usuario inicia una transferencia de
datos, esta capa pasa la solicitud a la Capa de Transporte.

Capa de Transporte La Capa de Transporte añade una cabecera y pasa los
datos a la Capa de Red.

Capa de Red En la Capa de Red, se añaden las direcciones IP de origen y
destino para el enrrutamiento de datos.

Capa de Enlace de Datos Ejecuta un control de errores sobre el flujo de datos

entre los protocolos anteriores y la Capa Física.

Capa Física Ingresa o egresa los datos a través del medio físico, que puede
ser Ethernet vía coaxial, PPP vía módem, etc.



Después de que los datos han pasado a través de este proceso, viajan a su
destino en otra máquina de la red. Allí, el proceso se ejecuta al revés (los
datos entran por la capa física y recorren la pila hacia arriba). Cada capa de la
pila puede enviar y recibir datos desde la capa adyacente. Cada capa está
también asociada con múltiples protocolos que trabajan sobre los datos.



El Programa Inetd y los Puertos
Cada vez que una máquina solicita una conexión a otra, especifica una
dirección particular. En general, está dirección será la dirección IP Internet de
dicha máquina. Pero hablando con más detalle, la máquina solicitante
especificará también la aplicación que está intentando alcanzar dicho
destino. Esto involucra a dos elementos: un programa llamado inetd y un
sistema basado en puertos.
Inetd. Inetd pertenece a un grupo de programas llamados TSR (Terminate
and stay resident). Dichos programas siempre están en ejecución, a la espera
de que se produzca algún suceso determinado en el sistema. Cuando dicho
suceso ocurre, el TSR lleva a cabo la tarea para la que está programado.



En el caso de inetd, su finalidad es estar a la espera de que se produzca
alguna solicitud de conexión del exterior. Cuando esto ocurre, inetd evalúa
dicha solicitud determinando que servicio está solicitando la máquina remota
y le pasa el control a dicho servicio. Por ejemplo, si la máquina remota
solicita una página web, le pasará la solicitud al proceso del servidor Web.



En general, inetd es iniciado al arrancar el sistema y permanece residente (a
la escucha) hasta que apagamos el equipo o hasta que el operador del
sistema finaliza expresamente dicho proceso.



Puertos. La mayoría de las aplicaciones TCP/IP tienen una filosofía de
cliente-servidor. Cuando se recibe una solicitud de conexión, inetd inicia un
programa servidor que se encargará de comunicarse con la máquina cliente.
Para facilitar este proceso, a cada aplicación (FTP o Telnet, por ejemplo) se le
asigna una única dirección. Dicha dirección se llama puerto. Cuando se
produce una solicitud de conexión a dicho puerto, se ejecutará la aplicación
correspondiente.

Aunque la asignación de puertos a los diferentes servicios es de libre elección
para los administradores de sistema, existe un estándar en este sentido que
es conveniente seguir. La tabla que se muestra a continuación presenta un
listado de algunas asignaciones estándar:

Servicio o Aplicación                                                  Puerto
File Transfer Protocol (FTP)                                        21

Telnet
23

Simple Mail Transfer Protocol (SMTP)                      25

Gopher
70

Finger
79

Hypertext Transfer Protocol (HTTP)                             80

Network News Transfer Protocol (NNTP)        119



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 datos en TCP

Un segmento TCP está formado de la siguiente manera:

URG

ACK

PSH

RST

SYN

FIN

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.

         URG: Si este indicador está fijado en 1, el paquete se debe procesar
en forma urgente.

          ACK: Si este indicador está fijado en 1, el paquete es un acuse de
recibo.

          PSH (PUSH): Si este indicador está fijado en 1, el paquete opera de
acuerdo con el método PUSH.

            RST: Si este indicador está fijado en 1, se restablece la conexión.

            SYN: El indicador SYN de TCP indica un pedido para establecer una
conexión.

            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.



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.



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 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.

Más contenido relacionado

La actualidad más candente (18)

Protocolos de Internet
Protocolos de InternetProtocolos de Internet
Protocolos de Internet
 
Protocolo Tcp Ip
Protocolo Tcp IpProtocolo Tcp Ip
Protocolo Tcp Ip
 
Tcp ip aplicaciones
Tcp ip aplicacionesTcp ip aplicaciones
Tcp ip aplicaciones
 
Bolilla 2 ppt técnico en redes
Bolilla 2 ppt técnico en redesBolilla 2 ppt técnico en redes
Bolilla 2 ppt técnico en redes
 
Presentación tcp y udp
Presentación tcp y udpPresentación tcp y udp
Presentación tcp y udp
 
MODELO TCP/IP
MODELO TCP/IPMODELO TCP/IP
MODELO TCP/IP
 
Tcpip
TcpipTcpip
Tcpip
 
Versiones TCP/IP
Versiones TCP/IPVersiones TCP/IP
Versiones TCP/IP
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
Protocolos de internet
Protocolos de internetProtocolos de internet
Protocolos de internet
 
Protocolos gnu linux
Protocolos gnu linuxProtocolos gnu linux
Protocolos gnu linux
 
Protocolo TCP/IP en Linux
Protocolo TCP/IP en Linux Protocolo TCP/IP en Linux
Protocolo TCP/IP en Linux
 
Protocolos de internet
Protocolos de internetProtocolos de internet
Protocolos de internet
 
Protocolos de-internet
Protocolos de-internetProtocolos de-internet
Protocolos de-internet
 
9 modelo tcp-ip
9 modelo tcp-ip9 modelo tcp-ip
9 modelo tcp-ip
 
Protocolos de-internet
Protocolos de-internetProtocolos de-internet
Protocolos de-internet
 
Protocolo TCP/IP y x.25
Protocolo TCP/IP y x.25 Protocolo TCP/IP y x.25
Protocolo TCP/IP y x.25
 
Protocolos diapositivas
Protocolos diapositivasProtocolos diapositivas
Protocolos diapositivas
 

Similar a Informe de redes i

TCP/IP y OSI (Revista Digital)
 TCP/IP y OSI (Revista Digital) TCP/IP y OSI (Revista Digital)
TCP/IP y OSI (Revista Digital)sandra gutierrez
 
Ul rc_cap7_el nivel de transporte en internet_
 Ul rc_cap7_el nivel de transporte en internet_ Ul rc_cap7_el nivel de transporte en internet_
Ul rc_cap7_el nivel de transporte en internet_jcbp_peru
 
Ul rc_cap7_el nivel de transporte en internet_
 Ul rc_cap7_el nivel de transporte en internet_ Ul rc_cap7_el nivel de transporte en internet_
Ul rc_cap7_el nivel de transporte en internet_jcbp_peru
 
Practica 6 documentacion
Practica 6 documentacionPractica 6 documentacion
Practica 6 documentacionTiguerblack1
 
Modelotcpip 090421082232-phpapp01
Modelotcpip 090421082232-phpapp01Modelotcpip 090421082232-phpapp01
Modelotcpip 090421082232-phpapp01carlos salguero
 
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IPCUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IPdisenarUniminuto
 
Resumen libro carlos suqui
Resumen libro carlos suquiResumen libro carlos suqui
Resumen libro carlos suquiCarlos Suqui
 
ARQUITECTURA TCP/IP
ARQUITECTURA TCP/IPARQUITECTURA TCP/IP
ARQUITECTURA TCP/IPDaniel Cerda
 
modelotcpip-090421082232-phpapp01.pdf
modelotcpip-090421082232-phpapp01.pdfmodelotcpip-090421082232-phpapp01.pdf
modelotcpip-090421082232-phpapp01.pdfFabioReneCahuanaMend
 
Tipos de puertos por donde pasa las informaciones
Tipos de puertos por donde pasa las informacionesTipos de puertos por donde pasa las informaciones
Tipos de puertos por donde pasa las informacionesFernando Chavez
 
programacion_redes_informaticas_clase_3_19042024.pptx
programacion_redes_informaticas_clase_3_19042024.pptxprogramacion_redes_informaticas_clase_3_19042024.pptx
programacion_redes_informaticas_clase_3_19042024.pptxmviapiano
 

Similar a Informe de redes i (20)

Modelo tcp
Modelo tcpModelo tcp
Modelo tcp
 
TCP/IP y OSI (Revista Digital)
 TCP/IP y OSI (Revista Digital) TCP/IP y OSI (Revista Digital)
TCP/IP y OSI (Revista Digital)
 
Protocolo tcpip juan pablo
Protocolo tcpip juan pabloProtocolo tcpip juan pablo
Protocolo tcpip juan pablo
 
Protocolo de tcp ip
Protocolo de tcp ipProtocolo de tcp ip
Protocolo de tcp ip
 
Tcp redes
Tcp redesTcp redes
Tcp redes
 
Servicios de red 3
Servicios de red 3Servicios de red 3
Servicios de red 3
 
tcp_udp [Redes de Computadoras] [Semana 7]
tcp_udp [Redes de Computadoras] [Semana 7]tcp_udp [Redes de Computadoras] [Semana 7]
tcp_udp [Redes de Computadoras] [Semana 7]
 
Ul rc_cap7_el nivel de transporte en internet_
 Ul rc_cap7_el nivel de transporte en internet_ Ul rc_cap7_el nivel de transporte en internet_
Ul rc_cap7_el nivel de transporte en internet_
 
Ul rc_cap7_el nivel de transporte en internet_
 Ul rc_cap7_el nivel de transporte en internet_ Ul rc_cap7_el nivel de transporte en internet_
Ul rc_cap7_el nivel de transporte en internet_
 
Practica 6 documentacion
Practica 6 documentacionPractica 6 documentacion
Practica 6 documentacion
 
Protocolo de tcp ip
Protocolo de tcp ipProtocolo de tcp ip
Protocolo de tcp ip
 
Modelotcpip 090421082232-phpapp01
Modelotcpip 090421082232-phpapp01Modelotcpip 090421082232-phpapp01
Modelotcpip 090421082232-phpapp01
 
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IPCUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
CUADRO COMPARATIVO ENTRE MODELO OSI Y TCP/IP
 
Resumen libro carlos suqui
Resumen libro carlos suquiResumen libro carlos suqui
Resumen libro carlos suqui
 
Taller
TallerTaller
Taller
 
ARQUITECTURA TCP/IP
ARQUITECTURA TCP/IPARQUITECTURA TCP/IP
ARQUITECTURA TCP/IP
 
modelotcpip-090421082232-phpapp01.pdf
modelotcpip-090421082232-phpapp01.pdfmodelotcpip-090421082232-phpapp01.pdf
modelotcpip-090421082232-phpapp01.pdf
 
Tipos de puertos por donde pasa las informaciones
Tipos de puertos por donde pasa las informacionesTipos de puertos por donde pasa las informaciones
Tipos de puertos por donde pasa las informaciones
 
Semana 7 tcp udp
Semana 7 tcp udpSemana 7 tcp udp
Semana 7 tcp udp
 
programacion_redes_informaticas_clase_3_19042024.pptx
programacion_redes_informaticas_clase_3_19042024.pptxprogramacion_redes_informaticas_clase_3_19042024.pptx
programacion_redes_informaticas_clase_3_19042024.pptx
 

Último

Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoFundación YOD YOD
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdfgimenanahuel
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFlor Idalia Espinoza Ortega
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuelacocuyelquemao
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.amayarogel
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticosisabeltrejoros
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinavergarakarina022
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuaDANNYISAACCARVAJALGA
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxAna Fernandez
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPELaura Chacón
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxlclcarmen
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadAlejandrino Halire Ccahuana
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 

Último (20)

Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdfPlanificacion Anual 2do Grado Educacion Primaria   2024   Ccesa007.pdf
Planificacion Anual 2do Grado Educacion Primaria 2024 Ccesa007.pdf
 
Heinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativoHeinsohn Privacidad y Ciberseguridad para el sector educativo
Heinsohn Privacidad y Ciberseguridad para el sector educativo
 
30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf30-de-abril-plebiscito-1902_240420_104511.pdf
30-de-abril-plebiscito-1902_240420_104511.pdf
 
Factores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamicaFactores ecosistemas: interacciones, energia y dinamica
Factores ecosistemas: interacciones, energia y dinamica
 
Movimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en VenezuelaMovimientos Precursores de La Independencia en Venezuela
Movimientos Precursores de La Independencia en Venezuela
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.La triple Naturaleza del Hombre estudio.
La triple Naturaleza del Hombre estudio.
 
texto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticostexto argumentativo, ejemplos y ejercicios prácticos
texto argumentativo, ejemplos y ejercicios prácticos
 
Unidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDIUnidad 4 | Teorías de las Comunicación | MCDI
Unidad 4 | Teorías de las Comunicación | MCDI
 
codigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karinacodigos HTML para blogs y paginas web Karina
codigos HTML para blogs y paginas web Karina
 
cortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahuacortes de luz abril 2024 en la provincia de tungurahua
cortes de luz abril 2024 en la provincia de tungurahua
 
La Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdfLa Trampa De La Felicidad. Russ-Harris.pdf
La Trampa De La Felicidad. Russ-Harris.pdf
 
RETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docxRETO MES DE ABRIL .............................docx
RETO MES DE ABRIL .............................docx
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
Plan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPEPlan Año Escolar Año Escolar 2023-2024. MPPE
Plan Año Escolar Año Escolar 2023-2024. MPPE
 
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptxSINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
SINTAXIS DE LA ORACIÓN SIMPLE 2023-2024.pptx
 
La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
Lecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdadLecciones 04 Esc. Sabática. Defendamos la verdad
Lecciones 04 Esc. Sabática. Defendamos la verdad
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 

Informe de redes i

  • 1. UNIVERSIDAD TECNOLOGICA DE HONDURAS Tema de Exposicion TCP(Transmission Control Protocol) Ing.Sanders Redes I Hora 9:30 am Integrantes Alumno Cta No. 1. Adans Noe Garcia 200910510030
  • 2. 2. Jose Mauricio Bonilla 200810510180 3. Sirian M. Fiallos 200610511003 Martes, 07 de Agosto 2012 INTRODUCCION ES IMPORTANTE QUE EL ESTUDIANTE SEPA DEFINIR QUE ES TCP, CONOZCA SUS ORIGENES, EL FUNCIONAMIENTO, CARACTERISTICAS Y FINALIDAD DE TCP, TANTO COMO SABER UTILIZARLO. QUE SEA CAPAZ DE DISTINGUIR ENTRE UNA COMUNICACION INSEGURA Y UNA COMUNICACION SEGURA. QUE CONOZCA LOS OBJETIVOS Y BENEFICIOS DE TCP. Y PARA ELLO MOSTRAREMOS UNA SERIE DE INFORMACION QUE SERVIRA DE GUIA EN FUTURAS PRACTICAS.
  • 3. TCP (Transmission Control Protocol) A principios de los años 60, varios investigadores intentaban encontrar una forma de compartir recursos informáticos de una forma más eficiente. En 1961, Leonard Klienrock introduce el concepto de Conmutación de Paquetes (Packet Switching, en inglés). La idea era que la comunicación entre ordenadores fuese dividida en paquetes. Cada paquete debería contener la dirección de destino y podría encontrar su propio camino a través de la red. TCP/IP tenia (y tiene) ventajas significativas respecto a otros protocolos. Por ejemplo, consume pocos recusos de red. Además, podía ser implementado a un coste mucho menor que otras opciones disponibles entonces. Gracias a estos aspectos, TCP/IP comenzó a hacerse popular. En 1983, TCP/IP se integró en la versión 4.2 del sistema operativo UNIX de Berkeley y la integración en versiones comerciales de UNIX vino pronto. Así es como TCP/IP se convirtió en el estándar de Internet. En la actualidad, TCP/IP se usa para muchos propósitos, no solo en Internet.
  • 4. Por ejemplo, a menudo se diseñan intranets usando TCP/IP. En tales entornos, TCP/IP ofrece ventajas significativas sobre otros protocolos de red. Una de tales ventajas es que trabaja sobre una gran variedad de hardware y sistemas operativos. De este modo puede crearse fácilmente una red heterogénea usando este protocolo. Dicha red puede contener estaciones Mac, PC compatibles, estaciones Sun, servidores Novell, etc. Todos estos elementos pueden comunicarse usando la misma suite de protocolos TCP/IP. La siguiente tabla muestra una lista de plataformas que soportan TCP/IP: Plataforma Soporte de TCP/IP UNIX Nativo DOS Piper/IP por Ipswitch Windows TCPMAN por Trumpet Software Windows 95 Nativo Windows NT Nativo Macintosh MacTCP u OpenTransport (Sys 7.5+) OS/2 Nativo AS/400 OS/400 Nativo Las plataformas que no soportan TCP/IP nativamente lo implementan usando programas TCP/IP de terceras partes, como puede apreciarse en la tabla anterior. Cómo Trabaja TCP/IP TCP/IP opera a través del uso de una pila. Dicha pila es la suma total de todos los protocolos necesarios para completar una transferencia de datos entre
  • 5. dos máquinas (así como el camino que siguen los datos para dejar una máquina o entrar en la otra). La pila está dividida en capas. EQUIPO SERVIDOR O CLIENTE Capa de Aplicaciones Cuando un usuario inicia una transferencia de datos, esta capa pasa la solicitud a la Capa de Transporte. Capa de Transporte La Capa de Transporte añade una cabecera y pasa los datos a la Capa de Red. Capa de Red En la Capa de Red, se añaden las direcciones IP de origen y destino para el enrrutamiento de datos. Capa de Enlace de Datos Ejecuta un control de errores sobre el flujo de datos entre los protocolos anteriores y la Capa Física. Capa Física Ingresa o egresa los datos a través del medio físico, que puede ser Ethernet vía coaxial, PPP vía módem, etc. Después de que los datos han pasado a través de este proceso, viajan a su destino en otra máquina de la red. Allí, el proceso se ejecuta al revés (los datos entran por la capa física y recorren la pila hacia arriba). Cada capa de la pila puede enviar y recibir datos desde la capa adyacente. Cada capa está también asociada con múltiples protocolos que trabajan sobre los datos. El Programa Inetd y los Puertos Cada vez que una máquina solicita una conexión a otra, especifica una dirección particular. En general, está dirección será la dirección IP Internet de dicha máquina. Pero hablando con más detalle, la máquina solicitante especificará también la aplicación que está intentando alcanzar dicho destino. Esto involucra a dos elementos: un programa llamado inetd y un sistema basado en puertos.
  • 6. Inetd. Inetd pertenece a un grupo de programas llamados TSR (Terminate and stay resident). Dichos programas siempre están en ejecución, a la espera de que se produzca algún suceso determinado en el sistema. Cuando dicho suceso ocurre, el TSR lleva a cabo la tarea para la que está programado. En el caso de inetd, su finalidad es estar a la espera de que se produzca alguna solicitud de conexión del exterior. Cuando esto ocurre, inetd evalúa dicha solicitud determinando que servicio está solicitando la máquina remota y le pasa el control a dicho servicio. Por ejemplo, si la máquina remota solicita una página web, le pasará la solicitud al proceso del servidor Web. En general, inetd es iniciado al arrancar el sistema y permanece residente (a la escucha) hasta que apagamos el equipo o hasta que el operador del sistema finaliza expresamente dicho proceso. Puertos. La mayoría de las aplicaciones TCP/IP tienen una filosofía de cliente-servidor. Cuando se recibe una solicitud de conexión, inetd inicia un programa servidor que se encargará de comunicarse con la máquina cliente. Para facilitar este proceso, a cada aplicación (FTP o Telnet, por ejemplo) se le asigna una única dirección. Dicha dirección se llama puerto. Cuando se produce una solicitud de conexión a dicho puerto, se ejecutará la aplicación correspondiente. Aunque la asignación de puertos a los diferentes servicios es de libre elección para los administradores de sistema, existe un estándar en este sentido que es conveniente seguir. La tabla que se muestra a continuación presenta un listado de algunas asignaciones estándar: Servicio o Aplicación Puerto
  • 7. File Transfer Protocol (FTP) 21 Telnet 23 Simple Mail Transfer Protocol (SMTP) 25 Gopher 70 Finger 79 Hypertext Transfer Protocol (HTTP) 80 Network News Transfer Protocol (NNTP) 119 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
  • 8. 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 datos en TCP Un segmento TCP está formado de la siguiente manera: URG ACK PSH RST SYN FIN 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
  • 9. 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. URG: Si este indicador está fijado en 1, el paquete se debe procesar en forma urgente. ACK: Si este indicador está fijado en 1, el paquete es un acuse de recibo. PSH (PUSH): Si este indicador está fijado en 1, el paquete opera de
  • 10. acuerdo con el método PUSH. RST: Si este indicador está fijado en 1, se restablece la conexión. SYN: El indicador SYN de TCP indica un pedido para establecer una conexión. 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. 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)
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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.
  • 15. 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)
  • 16. 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. 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
  • 17. 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 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).
  • 18. 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.