Está en la página 1de 24

TCP

Transmission Control Protocol

Esquema de Capas de TCP/IP


Capa Fsica

Ethernet

Capa de Red

IP
TCP UDP

Capa de Transporte

HTTP

FTP

TELNET

SMTP

NFS, RPC

DNS

SNMP

Capa de Aplicacin

El protocolo TCP

Caractersticas:
orientado a la conexin comunicacin punto a punto confiable (establecimiento, transmisin y desconexin) comunicacin full-duplex comunicacin por flujo

Esquema de Conexin TCP


EMISOR Aplicacin TCP
TCP ve a IP como un mecanismo que le permite intercambiar mensaje con un TCP remoto
ROUTER

RECEPTOR
Aplicacin TCP

IP
Interfaz Red RED 1

IP Interfaz Red RED 2

IP
Interfaz Red

Normas TCP

RFC 793 (1981)

Definicin Oficial de TCP

RFC 1122 (1989)

Resumen de mejoras y especificaciones de implementacin

Logrando la Confiabilidad
PROBLEMA Prdidas de paquetes Distintas velocidades de tx./rx. en las mquinas que se comunican Congestin en la red Rebooteos, desconexiones, mquinas apagadas, etc. SOLUCIN Retransmisin (timeout adaptivo) Control de Flujo (buffers, ventana deslizante) Control de Congestin 3-way handshaking (saludo de 3 etapas)
2 1

Logrando la Confiabilidad
PROBLEMA Prdidas de paquetes Distintas velocidades de tx./rx. en las mquinas que se comunican Congestin en la red Rebooteos, desconexiones, mquinas apagadas, etc. SOLUCIN Retransmisin (timeout adaptivo) Control de Flujo (buffers, ventana deslizante) Control de Congestin 3-way handshaking (saludo de 3 etapas)
2 1

Retransmisiones
TX RX

Corre tout

Enva informacin
Recibe informacin Enva reconocimiento (ACK)

Recibe ACK antes de que expire tout Enva ms informacin

Corre tout Expira tout


Retransmite

Existen mtodos para asignar un valor adecuado al tiempo tout

Establecimiento de la Conexin
TX RX

Enva SYN con Seq = x


Recibe segmento SYN Enva SYN seq = y, ACK x +1 Recibe SYN + ACK Enva ACK y + 1 Recibe ACK

Los nmeros de secuencia inicial son elegidos aleatoriamente.

Cerrando la Conexin
TX RX

(La aplicacin cierra la conexin) Enva FIN con Seq = x Recibe segmento FIN Enva ACK x +1

Recibe segmento ACK


Recibe segmento FIN + ACK Enva ACK y +1

(La aplicacin cierra la conexin) Enva FIN con Seq = y, ACK x + 1

Recibe segmento ACK

Adems, existe la posibilidad de cerrar la conexin abruptamente mediante un segmento con RST.

Esquema de Conexin TCP


SYN

Tiempo

1 RTT

SYN ACK DATA DATA DATA FIN

1 RTT

Conexin Establecida

conexin cerrada por Tx

ACK
DATA FIN ACK

= Tiempo de procesamiento
en el Host

conexin cerrada por Rx

TCP y la Conexin
El protocolo TCP usa una conexin virtual (por SW) para transmitir la informacin. TCP conecta dos puntos usando la direccin de la mquina y el puerto al cual se conecta. El puerto puede ser compartido por distintas conexiones al mismo tiempo.

Ventanas Deslizantes en TCP


La ventana deslizante es un mtodo para enviar los paquetes en una conexin en forma mas eficiente que esperando por el ACK de cada uno de los paquetes en forma secuencial. La ventana deslizante ser til dependiendo del tamao de la ventana y la velocidad de la red para recibir los paquetes que se quieren enviar.

Ventanas Deslizantes en TCP


La ventana en TCP opera sobre Octetos y no sobre paquetes es por eso que requiere de punteros para seguir el envo de esos Octetos. Las ventanas son de ancho variable el cual esta dado por el window advertisement que esta contenido en todos los ACK y que ayuda al control de flujo y a la eficiencia de la conexin.

Ventanas Deslizantes en TCP


Ventana Inicial Secuencia de Paquetes

10

Ventana Deslizada

Ventanas Deslizantes en TCP


Octeto enviado y ACK

Octetos que se han enviado pero no se han ACK

10

Puntero al principio de la ventana

Puntero al final de la ventana (variable)

Efecto de la ventana variable


DATA ACK DATA

3 RTT +2

DATA

1 RTT +2

ACK
DATA ACK

ACK

Ventana de ancho 1

Ventana de ancho 3

Esquema simplificado de conexin TCP

Formato del Segmento en TCP


0 4 10 16 24 31 SOURCE PORT DESTINATION PORT SEQUENCE NUMBER ACKNOWLEDGEMENT NUMBER HLEN RESERVED CODE BITS WINDOW CHECKSUM URGENT POINTER OPTIONS (IF ANY) PADDING DATA ...
CODE BITS = URG-ACK-PSH-RST-SYN-FIN

Fragmentacin y Checksum
TCP esta implementado en muchos tipos de redes, con la dificultad clara de que estas redes se comunican a distinta velocidad y que soportan distintos tamaos de datagramas. TCP negocia el tamao del datagrama a enviar, esto lo hace en el comienzo de la conexin enviando el tamao mximo de datagrama que puede manejar.

Fragmentacin y Checksum
Cuando TCP enva el tamao mximo de datagrama que puede manejar el otro extremo hace lo mismo y se conectan con el tamao de datagrama menor. Esta conexin es entre dos puntos y no toma en cuenta la ruta que tomaran los paquetes en la red.

Fragmentacin y Checksum
La ruta es un problema, pues el datagrama puede pasar por redes de menor tamao, con lo cual se tendr que fragmentar el datagrama para que pueda pasar por esa red. En implementaciones tpicas se suele usar que un tamao seguro de paquete es de 576 octetos, el cual debiera ser soportado por cualquier tipo de red.

Fragmentacin y Checksum
El header IP contiene toda la informacin sobre las particiones de los datagramas. Las redes Ethernet aceptan paquetes de 1500 octetos de largo. Cuando los datagramas llegan a su destino deben ser re-ensamblados por TCP para poder ser utilizados.

Fragmentacin y Checksum
Luego de tener los paquetes enteros, si es que estos pudieron llegar y ser reensamblados se procede a hacer el Checksum para comprobar si lo que se ha transmitido esta realmente correcto. El Checksum es del mismo tipo que el de UDP y esta basado en el pseudoheader que se calcula en ambas partes de la conexin para ver si es valida.

BIBLIOGRAFIA
The World of Networks Cap.2 (Protocols) Internetworking with TCP/IP Cap.13 Douglas E. Comer. Introduction to the Internet Protocols Computer Science Facilities Group Rutgers University New Jersey RFC 793,RFC 1180, RFC 1263

También podría gustarte