Protocolo TCP 1) INTRODUCCIÓN: 2) SERVICIOS DE TRANSPORTE:

Anuncio
UNLaM
Protocolo TCP
COMUNICACION
DE DATOS
1) INTRODUCCIÓN:
‰
‰
Los protocolos de las capas inferiores (física, enlace de datos y de red), están bien
estandarizados y con funciones más entendibles y sencillas que las de la capa de transporte.
Las capas superiores dependen en buena medida del protocolo de transporte, quien brinda el
servicio básico extremo a extremo de la transferencia de datos entre usuarios, y aísla las
aplicaciones y otros protocolos de un nivel más alto, de la necesidad de tratar con las
características y servicios de la red de comunicaciones.
Ilustración 1: Contexto de los Protocolos del nivel de transporte.
2) SERVICIOS DE TRANSPORTE:
En los documentos de la ISO se denomina TS-Transport Services (Servicios de Transporte) a las
clases de servicios que el protocolo de transporte puede o debería brindar a las capas superiores.
a) Tipo de servicio: puede ser orientado a conexión y no orientado a conexión
‰ Orientado a conexión:
Establecimiento, mantenimiento y cierre de la conexión lógica entre usuarios TS.
•
Servicio seguro: control de flujo, control de errores y transporte en secuencia.
•
Es el tipo de servicio más usual.
•
‰ No orientado a conexión:
Sin fases de establecimiento y desconexión.
•
Servicio no seguro.
•
Mayor robustez que el servicio orientado a conexión.
•
De mayor utilidad en muchos contextos: p.ej. recolección de datos de sensores, difusión
•
de mensajes a los usuarios de red, transacciones del tipo petición/respuesta,
aplicaciones de voz y telemedida en tiempo real, etc.
b) Calidad del servicio: la capa de transporte permite al usuario TS especificar la calidad de servicio
de transmisión a ser suministrado, e intentará luego optimizar al máximo de sus posibilidades el uso
del enlace, la red y los recursos de una colección de redes para proporcionar los servicios colectivos
solicitados.
Universidad Nacional de La Matanza
Apuntes: Ing. Daniel Mayán
Página 1 de 15
Protocolo TCP
‰
‰
‰
UNLaM
COMUNICACION
DE DATOS
Ejemplos de servicios:
Niveles de error y pérdida aceptables.
•
Retardo medio y máximo aceptable.
•
Rendimiento medio y mínimo deseado.
•
Niveles de prioridad.
•
Condicionantes en la calidad del servicio:
Depende de las capacidades de los servicios de las capas inferiores.
•
Dependiendo de la naturaleza de la transmisión, la capa de transporte tendrá mayor o
•
menor grado de éxito en la obtención del grado de servicio requerido.
Hay un compromiso entre seguridad, retardo, rendimiento y costo del servicio.
•
Ejemplos de aplicaciones con calidad de servicio:
Protocolo de transferencia de ficheros: requiere gran rendimiento y seguridad.
•
Protocolo de transacción (p.ej. peticiones a bases de datos): requerirán bajo retardo.
•
Protocolo para correo electrónico: podría requerir diversos grados de prioridad.
•
c) Transferencia de datos: el principal propósito entre dos entidades de transporte, es la transferencia
de datos (tanto de usuario como de control), por el mismo canal (o por canales separados), y en
modalidad simplex, semiduplex o duplex, entre ambos usuarios TS.
d) Interfaz de usuario: se deben optimizar de acuerdo al entorno de la estación.
‰ Mecanismos para prevenir, tanto que el usuario TS inunde la entidad de transporte con datos,
como para que ocurra la misma situación a la inversa.
‰ Mecanismos de sincronización y confirmación entre las entidades de transporte local y remota.
e) Supervisión de la conexión: en los servicios orientados a conexión, la entidad de transporte es
responsable de establecer y dar fin a la conexión.
‰ Procedimiento de establecimiento simétrico, que permita a cualquier usuario TS iniciar la
conexión.
‰ Procedimiento de finalización ordenada de una comunicación: evita la pérdida de datos en
tránsito.
f) Transporte rápido: servicio similar al que proporcionan las clases de prioridad. En el receptor, la
entidad de transporte enviará una interrupción al usuario TS para notificarle la recepción de datos
urgentes. El servicio de datos urgentes es en esencia un mecanismo de interrupción, que se utiliza para
transferir datos urgentes ocasionales, tales como un carácter de cancelación (break) proveniente de un
terminal o una condición de alarma.
g) Informe de estado: un servicio de informe de estado permite al usuario TS obtener o conocer
información relativa a la condición o a los atributos de la entidad de transporte o conexiones de
transporte. Algunos ejemplos de información de estado son:
‰ Características de las prestaciones de una conexión: rendimiento, retardo medio, etc.
‰ Direcciones (de red, transporte)
‰ Tipo de protocolo en uso.
‰ Valores actuales de los temporizadores.
‰ Estado de la “máquina”de transporte que realiza la conexión.
‰ Degradación de la calidad del servicio requerido.
h) Seguridad: la entidad de transporte puede proporcionar una variedad de servicios de seguridad.
‰ Acceso de control mediante verificaciones locales del que envía o verificaciones remotas del
receptor.
Universidad Nacional de La Matanza
Apuntes: Ing. Daniel Mayán
Página 2 de 15
Protocolo TCP
‰
‰
UNLaM
COMUNICACION
DE DATOS
Encriptado/desencriptado de ser requerido.
Encaminamiento de los datos a través de conexiones o nodos seguros de estar disponibles.
3) MECANISMOS DEL PROTOCOLO DE TRANSPORTE:
Los protocolos de transporte, según el caso pueden necesitar ser muy complejos.
Hay dos variantes básicas de servicios de red: servicio seguro y no seguro, y en función de ellos se
tendrá menor o mayor complejidad en los servicios de transporte.
3.1) SERVICIO DE RED SEGURO CON SECUENCIAMIENTO: el servicio de red aceptará
mensajes con un tamaño arbitrario y los enviará en secuencia al destino, con una seguridad teórica del
100%.
Son ejemplos de éstas redes:
Una red de conmutación de paquetes altamente segura con una interfaz X.25
•
Una red Frame Relay usando el protocolo de control LAPF.
•
Una LAN IEEE 802.3 usando el servicio LLC orientado a conexión.
•
La suposición de servicios de red seguros con secuenciamiento permiten el uso de un protocolo de
transporte bastante sencillo, con cuatro cuestiones básicas a considerar: direccionamiento,
multiplexación, control de flujo y establecimiento/cierre de la conexión.
3.1.a) Direccionamiento: el usuario de una entidad de transporte desea establecer una conexión o
efectuar una transferencia de datos sin establecer esa conexión, con un usuario de otra entidad de
transporte. El usuario destino se debe especificar mediante:
• Identificación de usuario.
• Identificación de la entidad de transporte.
• Dirección de la estación.
• Número de red.
El protocolo de transporte debe extraer esa información de la cabecera de la PDU de red, siendo lo que
en el entorno OSI se llama TSAP (punto de acceso al servicio de transporte), y que en TCP se conoce
como “socket” (combinación del puerto y la estación).
Para la determinación de la dirección de transporte destino, se usan estrategias estáticas y dinámicas.
3.1.b) Multiplexación: con respecto a la interfaz entre el protocolo de transporte y el protocolo de la
capa superior, el protocolo de transporte implementa una función de multiplexación/demultiplexación,
mediante la cual múltiples usuarios se distinguen unos de otros por números de puertos o puntos de
acceso al servicio.
¿Por qué se necesitaría multiplexar en capa 4, teniendo por ejemplo los 4095 circuitos virtuales en
capa 3 de una red X.25? La respuesta es que el costo depende en parte del tiempo de conexión (un
circuito virtual consume algunos recursos de memoria temporal del nodo), por lo que ese tiempo de un
único circuito virtual proporcionando servicio a múltiples usuarios TS debe ser compartido hacia
arriba.
3.1.c) Control de flujo: mientras que el control de flujo es un mecanismo relativamente sencillo en la
capa de enlace, en la capa de transporte es bastante complejo, por dos razones principales:
• El control de flujo en la capa de transporte supone la interacción de usuarios TS, entidades de
transporte y el servicio de red. (intervienen colas para los envíos de datos entre una capa y la
contigua en el mismo usuario y también entre capas paritarias entre distintos usuarios TS)
(Ilustración 2)
• El retardo de transmisión entre entidades de transporte es generalmente grande comparado con
el tiempo de transmisión real y, lo que es peor aún, variable. (Ilustración 3)
Universidad Nacional de La Matanza
Apuntes: Ing. Daniel Mayán
Página 3 de 15
UNLaM
Protocolo TCP
Usuario A de transporte
(Origen)
COMUNICACION
DE DATOS
Usuario B de transporte
(Destino)
Cola
de datos
Entidad a de
transporte
Entidad b de
transporte
Capa de red
Ilustración 2: Representación mediante colas de la transferencia orientada a conexión .
Usuario TS emisor
Prot. de transporte
Envío
Prot. de transporte
Usuario TS receptor
segmento
ACK
Envío
indicación
segmento
ACK
segmento
respuesta
confirmación
ACK
segmento
(a) Extremo emisor
ACK
segmento
(b) Extremo receptor
Ilustración 3: Interacción entre el usuario del servicio de transporte y el protocolo de transporte.
Una entidad de transporte tiene una cierta capacidad de memoria temporal, en la que se van
almacenando los segmentos que llegan. Cada segmento es procesado (por ejemplo, examinando su
cabecera de transporte) y los datos se envían al usuario .En caso de saturación de las memorias
temporales, la entidad de transporte necesitará tomar medidas para detener o disminuir el flujo de
segmentos para evitar la saturación.
Las alternativas para el control de flujo en la entidad de transporte receptora son:
‰ No hacer nada: significaría que los segmentos que llegan, una vez agotadas las memorias
temporales, se descartan. La entidad de transporte emisora, viendo que no recibe una
confirmación, los retransmitirá.
Universidad Nacional de La Matanza
Apuntes: Ing. Daniel Mayán
Página 4 de 15
Protocolo TCP
‰
‰
‰
UNLaM
COMUNICACION
DE DATOS
No es una solución viable, ya que ésta técnica acrecentaría el problema al tener que
retransmitirse los segmentos descartados. Además anularía la ventaja fundamental de una
red segura (no tener nunca que retransmitir datos).
Rechazar la aceptación de más segmentos del servicio de red: mediante un mecanismo de
presión hacia atrás, basándose en el servicio de red para realizar el rechazo. Cuando las
memorias temporales de una entidad de transporte están llenas, ésta entidad rechaza datos
adicionales del servicio de red. Esto dispara un mecanismo de control de flujo que
estrangula el servicio de red en el extremo emisor.
Es un mecanismo poco riguroso y bastante tosco.
Usar un protocolo fijo de ventana deslizante: similar a los protocolos de la capa de enlace
de datos. Los ingredientes clave en ésta técnica eran:
ƒ Uso de números de secuencia en las unidades de datos.
ƒ Uso de una ventana de tamaño fijo.
ƒ Uso de confirmaciones para desplazar la ventana.
Con un servicio de red segura, la técnica de ventana deslizante funcionaría realmente bien.
Sea por ejemplo un protocolo con tamaño de ventana de 7. Siempre que el emisor recibe
una confirmación de un segmento determinado, es autorizado automáticamente a enviar los
siete segmentos siguientes. Sin embargo, a pesar que el receptor puede admitir otros 7
nuevos segmentos, puede retener las confirmaciones de los segmentos que le van llegando
para evitar la saturación. La entidad de transporte emisora puede enviar a lo sumo 7
segmentos adicionales y luego detenerse. Como el servicio de red subyacente es seguro, los
temporizadores del emisor no expiran y no retransmitirán ninguno.
En éstas circunstancias, una entidad de transporte emisora podría haber transmitido cierto
número de segmentos sin haber recibido las confirmaciones, pero como se trabaja sobre una
red segura, podría suponer dicha entidad que los segmentos han llegado y que la falta de
confirmaciones es debida a una táctica de control de flujo.
Ésta técnica no será efectiva en una red no segura, ya que la entidad de transporte emisora
no sabría si la ausencia de confirmaciones es debida al control de flujo o a la pérdida de un
segmento.
Usar un esquema de créditos: proporciona al receptor un mayor grado de control sobre el
flujo de datos. No es estrictamente necesario para un servicio de red seguro, aunque le
otorga un flujo más regular. Además, es un esquema más efectivo con un servicio de red no
seguro.
El esquema de créditos separa las confirmaciones del control de flujo, a diferencia de los
protocolos de ventana deslizante fija, como X.25, en que los dos son sinónimos. En un
esquema de créditos, un segmento puede ser confirmado sin obtener un nuevo crédito, y
viceversa.
En la Ilustración 4 se muestra el funcionamiento del protocolo, mostrando por simplicidad
el flujo de datos en un solo sentido. En el ejemplo, los segmentos de datos son numerados
secuencialmente módulo 8. Inicialmente, a través del proceso de establecimiento de la
conexión, los números de secuencia de emisión y recepción están sincronizados y A obtiene
7 créditos. A avanza el borde final de su ventana cada vez que transmite, y avanza el borde
de la cabecera de la ventana cada vez que obtiene un crédito.
La Ilustración 5 muestra una perspectiva desde el lado del emisor y desde el del receptor
(por supuesto, ambos lados pueden presentar ambas situaciones ya que los datos se pueden
intercambiar en ambas direcciones.)
Desde el punto de vista del emisor, los números de secuencia pueden estar en una de las
cuatro regiones siguientes:
ƒ Datos enviados y confirmados: comenzando con el número de secuencia
inicial usado en ésta conexión hasta el último número confirmado.
Universidad Nacional de La Matanza
Apuntes: Ing. Daniel Mayán
Página 5 de 15
Protocolo TCP
ƒ
ƒ
ƒ
UNLaM
COMUNICACION
DE DATOS
Datos enviados pero todavía no confirmados: representan datos que ya han
sido enviados y el emisor está esperando su confirmación.
Transmisión de datos permitidos: la ventana de las transmisiones permitidas,
basada en los créditos no usados y que han sido asignados desde el otro
extremo.
Números no usados e inservibles: números fuera de la ventana.
Ilustración 4: Ejemplo de mecanismo de asignación de créditos.
Desde el punto de vista del receptor, el problema se centra en la recepción de datos y en la
ventana de créditos que ha sido asignada. Hay que notar que el receptor no está obligado a
confirmar inmediatamente los segmentos que llegan, sino que puede esperar y emitir una
confirmación conjunta para un número determinado de segmentos
Universidad Nacional de La Matanza
Apuntes: Ing. Daniel Mayán
Página 6 de 15
Protocolo TCP
UNLaM
COMUNICACION
DE DATOS
Ilustración 5: Perspectiva del control de flujo emisor y receptor.
3.1.d) Establecimiento y cierre de la conexión: incluso con servicios de red seguros, se requiere de
procedimientos de establecimiento y cierre de conexión para ofrecer un servicio orientado a conexión.
Características del establecimiento de la conexión:
ƒ Es por mutuo acuerdo entre ambos extremos, y se puede llevar a cabo mediante un
conjunto sencillo de órdenes de usuario y segmentos de control.
ƒ Cualquiera de los dos extremos puede iniciar la conexión.
ƒ Permite a cada extremo asegurarse de que el otro existe.
ƒ Permite la negociación de parámetros opcionales (por ejemplo, el tamaño del segmento,
tamaño máximo de la ventana, calidad de servicio).
ƒ Permite poner en marcha la reserva de recursos de la entidad de transporte (por
ejemplo, espacio de memoria, entradas en la tabla de conexiones).
Características del cierre de la conexión:
ƒ Es por mutuo acuerdo entre ambos extremos.
ƒ Cualquiera de los dos extremos puede iniciar la desconexión.
ƒ Se puede hacer un cierre abrupto o un cierre ordenado.
ƒ El cierre ordenado asegura que ambos extremos han recibido todos los datos pendientes
y que ambos están de acuerdo en terminar la conexión antes del cierre real.
Universidad Nacional de La Matanza
Apuntes: Ing. Daniel Mayán
Página 7 de 15
Protocolo TCP
UNLaM
COMUNICACION
DE DATOS
3.2) SERVICIOS DE RED NO SEGUROS:
El caso más difícil para un protocolo de transporte es aquel en que se ofrece un servicio de red no
seguro. Ejemplos de estas redes son:
‰ Una interconexión de redes utilizando IP.
‰ Una red de Frame Relay, usando solamente el núcleo del protocolo LAPF.
‰ Una LAN IEEE 802.3 usando un servicio no orientado a conexión LLC sin confirmaciones.
El problema ahora no es sólo que los segmentos pueden perderse ocasionalmente o ser duplicados,
sino que los segmentos pueden llegar fuera de secuencia debido al retardo variable de tránsito.
Esta combinación de inseguridad y no secuenciamiento, crea problemas a resolver en todos los
mecanismos vistos hasta ahora.
Básicamente, se deben tratar siete cuestiones:
• Transporte en orden.
• Estrategia de retransmisión.
• Detección de duplicados.
• Control de flujo.
• Establecimiento de la conexión.
• Cierre de la conexión.
• Recuperación de las cancelaciones no deseadas (“caídas”)
a) Transporte en orden: con un servicio de red no seguro, es posible que los segmentos, incluso
si todos llegan, lo hagan en forma desordenada. La solución es numerar los segmentos
secuencialmente en forma similar a los protocolos de control de enlace de datos como HDLC ó
X.25, en los que cada unidad de datos (trama, paquete) se numera secuencialmente siendo cada
de secuencia sucesivo, uno más que el número de secuencia anterior. Este esquema es utilizado
en algunos protocolos de transporte, como los ISO. Sin embargo TCP usa un esquema algo
diferente, ya que cada octeto de datos que se transmite está implícitamente numerado. Así, el
primer segmento podría tener el número de secuencia 0. Si ese segmento contiene 1000 octetos
de datos, el segundo segmento tendría el número de secuencia 1000, y así sucesivamente.
b) Estrategia de retransmisión: existen dos eventos que requieren la retransmisión de un
segmento:
• El segmento es dañado en el camino, pero llega a destino. Si se incluye en el segmento
una secuencia de comprobación de trama, la entidad de transporte receptora puede
detectar el error y descartar el segmento.
• El segmento no llega a destino.
En ambos casos, la entidad de transporte emisora no se entera que la transmisión del segmento
fracasó.
La solución al primer problema es un esquema de confirmaciones positivas (ACK) de
segmentos, con reconocimientos inclusivos, lo que permite la retransmisión de segmentos
dañados.
La solución al segundo problema obliga a incluir un temporizador de retransmisión, ya que
nunca se emitirá el ACK de un segmento perdido, que sin embargo debe ser retransmitido.
La duración del temporizador es un valor de diseño crítico:
• Si es muy pequeño: habrán muchas retransmisiones innecesarias (desperdicio de la
capacidad de la red y/o potencial problema de congestión).
• Si es muy grande: el protocolo es muy lento en dar respuesta a la pérdida de un
segmento.
Se puede fijar a un valor ligeramente superior al retardo de ida y vuelta (RTT-Round Trip Time
= tiempo transcurrido entre el envío de un segmento y la recepción del ACK), aunque éste
Universidad Nacional de La Matanza
Apuntes: Ing. Daniel Mayán
Página 8 de 15
Protocolo TCP
UNLaM
COMUNICACION
DE DATOS
retardo es variable aún para el caso de una carga constante de la red. Peor aún, la estadística del
retardo variará con condiciones de red variables.
La fijación del RTT admite dos estrategias:
• Esquema estático: el más simple, establece un tiempo fijo en base a un comportamiento
típico de la red. Al no ser adaptable a la carga instantánea de la red, un valor alto de
RTT produce lentitud en las retransmisiones, mientras que un valor bajo de RTT puede
contribuir a la congestión.
• Esquema dinámico: es más complejo, ya que va variando los temporizadores de
retransmisión en base al valor medio de los retardos que observa en la red.
Este tiempo no es fiable por tres razones:
9 La entidad de transporte paritaria puede que no confirme inmediatamente un
segmento, ya que maneja la opción de ACK inclusivo.
9 Si un segmento debió retransmitirse, el emisor no puede saber si el ACK que
recibe es la confirmación del segmento original o del retransmitido.
9 Las condiciones de la red pueden cambiar muy rápidamente.
Cada uno de éstos problemas es la causa de una complicación adicional en el algoritmo de
transporte, que no admite una solución completa. Siempre habrá un grado de incertidumbre
sobre el mejor valor para el temporizador de retransmisión.
c) Detección de duplicados: Si un segmento se pierde y después se retransmite, no se producirá
confusión. Sin embargo, si se pierde un ACK, uno o más segmentos serán retransmitidos y, si
llegan correctamente, se
tendrán duplicados del
segmento recibido
previamente. El receptor
debe ser capaz de reconocer
duplicados, lo que se facilita
por el hecho de que cada
segmento lleve un número
de secuencia, aunque la
tarea no es fácil.
Hay dos casos posibles para los
segmentos duplicados:
Primero. Se recibe un
duplicado
antes del
cierre de la
conexión:
Ilustración 6: Ejemplo de una detección
incorrecta de duplicados
9 El receptor debe asumir que su
confirmación se perdió, y por lo
tanto debe confirmar el
duplicado.(el emisor no debe
confundirse al recibir múltiples
ACK de un mismo segmento).
Universidad Nacional de La Matanza
Apuntes: Ing. Daniel Mayán
Página 9 de 15
Protocolo TCP
UNLaM
COMUNICACION
DE DATOS
9 El espacio de números de secuencia debe ser lo suficientemente grande para no agotarse en menos
tiempo que la vida máxima posible de un segmento.
Vemos la Ilustración 6, con un ejemplo en el que el espacio de secuencia es de longitud 1600, con un
protocolo de ventana deslizante con tamaño de ventana 3. Suponemos que A ha transmitido los
segmentos de datos 1, 201 y 401 y no recibe confirmaciones. Al cabo del tiempo, se produce una
expiración y retransmite el segmento 1. B ha recibido el 201 y el 401, pero el 1 se ha retrasado en el
camino. Por lo tanto, B no envía ninguna confirmación. Cuando llega el duplicado del segmento 1, B
confirma al 1, 201 y 401. Mientras tanto, en A se produce otra expiración y se retransmite el 201, que
es confirmado por B con otro AN=601. Las cosas parecen haberse areglado solas y la transferencia de
datos continúa. Cuando el espacio de secuencia se agota A vuelve a comenzar con el número de
secuencia 1 y continúa. Desafortunadamente, el viejo segmento 1 hace una aparición tardía y es
aceptado por B antes de que el nuevo segmento 1 llegue. Queda así claro que la aparición fuera de
tiempo de un segmento antiguo no habría causado dificultades si los números de secuencia no hubieran
dado la vuelta. Se evita éste problema, adoptando un espacio de secuencia suficientemente grande en
función del tiempo de vida del paquete y de su tasa de transmisión.
Segundo. Se recibe un duplicado después de cerrada la conexión: Si se abre otra
conexión entre las dos mismas entidades de transporte, un segmento de la
conexión antigua podría llegar y ser aceptado en la nueva conexión. De igual
forma, un ACK retrasado puede entrar en una nueva conexión y causar
problemas.
Alternativas para tener una solución:
; En forma simétrica, cada unidad de transporte debe “recordar” el último
número de secuencia que
usó en la transmisión para
cada conexión terminada,
y así no tener problemas
en una nueva conexión
entre ambas.
; En forma simétrica, cada
nueva conexión debe tener
un único identificador
específico.
; Si el sistema completo se
cae, las alternativas
anteriores no funcionarían
ya que no habría registro
del último número
utilizado. La alternativa
entonces sería
simplemente esperar el
tiempo suficiente como
para que envejezcan todos
los segmentos de una
conexión anterior, antes
de establecer una nueva
con el mismo extremo.
Esto podría introducir
retardos innecesarios.
Universidad Nacional de La Matanza
Apuntes: Ing. Daniel Mayán
Página 10 de 15
Protocolo TCP
UNLaM
COMUNICACION
DE DATOS
d) Control de flujo: el mecanismo de control de flujo por medio de asignación de créditos
descrito antes es bastante robusto en presencia de un servicio de red no seguro y requiere pocas
mejoras. En general se tiene que el esquema de asignación de créditos está ligado a las
confirmaciones de la siguiente forma: para confirmar segmentos y conceder créditos, una
entidad de transporte envía un segmento de control de la forma (ACK N, CREDIT M) donde
ACK N confirma todos los segmentos de datos hasta el número N y CREDIT M permite que
los segmentos de números N + 1 hasta N + M sean transmitidos. Este mecanismo es bastante
potente, ya que la pérdida de un segmento ACK/CREDIT tiene escaso impacto en el
funcionamiento del esquema, ya que confirmaciones posteriores re-sincronizarán el protocolo.
Además, si no hay nuevas confirmaciones en camino, en el emisor expirará un temporizador y
se retransmitirá un segmento de datos, lo cual disparará una nueva confirmación.
e) Establecimiento de la conexión: al igual que con la desconexión, el establecimiento debe tener
en cuenta la no seguridad del servicio de red en el intercambio de SYNs.
; Dialogo en dos sentidos (two-way handshake): A emite un SYN a B y espera un SYN de vuelta
como confirmación de la conexión. Pueden haber dos problemas: el SYN de A se
Ilustración 7: Dialogo en dos sentidos; problema con segmento de datos viejo
puede perder o la respuesta de B se puede perder. Para ambos, la solución sería el uso de
temporizadores de retransmisión, pero el nuevo problema potencial sería la aparición de datos
duplicados debido a segmentos de datos obsoletos, como ejemplifica la gráfica de la hoja anterior.
La solución podría ser empezar cada nueva conexión con un número de secuencia diferente,
elegido lejos del último número utilizado en la conexión más reciente.
Para nuevas conexiones, se podrían crear también problemas por SYNs duplicados como se
plantea en la Ilustración 8:
Ilustración 8: Diálogo en dos sentidos; problema con segmentos SYN viejos
; Dialogo en tres sentidos (three-way shake): para solucionar el problema anterior, cada lado
confirma explícitamente el SYN y el número de secuencia del otro.(a): La entidad de transporte
A inicia la conexión. El SYN de A incluye el número de secuencia de envío, i.El SYN de
repuesta confirma el número e incluye el número de secuencia para el otro extremo. A
confirma el SYN/ACK en su primer segmento de datos. (b): Un SYN X viejo llega a B después
de cerrar la conexión relevante. B supone que es una petición nueva y responde con SYN j,
Universidad Nacional de La Matanza
Apuntes: Ing. Daniel Mayán
Página 11 de 15
Protocolo TCP
UNLaM
COMUNICACION
DE DATOS
ACK X. Cuando A recibe éste mensaje, se da cuenta que él no ha solicitado una conexión y por
tanto envía un RST, ACK j. Hay
que notar que la porción ACK j
del mensaje RST es esencial para
que un RST duplicado viejo no
cancele un establecimiento de
conexión legítimo. (c): un
SYN/ACK viejo llega en medio
del establecimiento de una nueva
conexión. Debido al uso de
números de secuencia en las
confirmaciones, no hay
perjuicio.
Ilustración 9: Ejemplo de diálogo en tres
sentidos.
f) Cierre de la conexión: se adopta
un mecanismo similar al de la
conexión, mediante un diálogo
en tres sentidos.
g) Recuperación de caídas:
Cuando el sistema en el que una
entidad de transporte se está
ejecutando falla y
consecuentemente re-arranca, la
información de estado de todas
las conexiones se pierden. Las
conexiones afectadas llegan a
estar “medio abiertas”, ya que el
lado que no se vio afectado por la caída no se ha dado cuenta todavía del problema.
• El lado todavía activo de la conexión medio abierta puede cerrar la conexión usando un
temporizador de renuncia (mide el tiempo máximo después de las sucesivas
retransmisiones de un mismo segmento, sin recibir respuesta). Superado el
temporizador, cierra la conexión e indica un cierre no normal al usuario TS.
• Si se cancela una entidad de transporte y re-arranca rápidamente, esto se detecta y
también se da un aviso de cierre no normal al usuario.
El usuario TS en el lado que no se cayó sabe cuantos datos ha recibido, pero el otro usuario no,
si es que la información de estado se ha perdido. De ese modo, existe el peligro de que algunos
datos de usuario se pierdan o dupliquen.
3.3) PROTOCOLOS DE TRANSPORTE:
El conjunto de protocolos TCP/IP incluye dos variantes de protocolos en la capa de transporte:
• TCP (Transmisión Control Protocol- Protocolo de control de la transmisión), que es un
protocolo orientado a conexión.
• UDP (User Datagram Protocol-Protocolo datagrama de usuario), que es un un protocolo no
orientado a conexión.
Universidad Nacional de La Matanza
Apuntes: Ing. Daniel Mayán
Página 12 de 15
UNLaM
Protocolo TCP
COMUNICACION
DE DATOS
3.3.1) PROTOCOLO DE CONTROL DE TRANSMISIÓN (TCP)
Principales características:
‰ Especificado en la RFC 793, está diseñado para proporcionar una comunicación segura entre
procesos (usuarios de TCP) paritarios a través de una gran variedad de redes seguras e
inseguras, así como a través de un conjunto de redes interconectadas.
‰ TCP está orientado a conexión, es decir que los usuarios establecen una conexión extremo a
extremo, intercambian luego un flujo de datos transmitido por TCP en segmentos y finalmente,
se libera la conexión.
‰ Al igual que en IP, los servicios suministrados por TCP incluyen el concepto de primitivas y
parámetros de servicio, brindando QoS (“Calidad de servicio”), aunque en el protocolo TCP
dichos servicios son mucho mas ricos y complejos que los de capa de red.
‰ El protocolo utiliza para el control de secuenciamiento un mecanismo de la forma de “ventana
deslizante” tal como HDLC, pero a diferencia de éste, separa la confirmación de datos
recibidos del permiso para enviar más
Este mecanismo se conoce como Esquema de Otorgamiento de Créditos
Cada octeto de datos se considera que tiene un número de secuencia.
TCP confirma la recepción de datos con un mensaje de la forma (A=i; W=j) donde:
• se confirma la recepción de todos los octetos hasta i-1, se espera recibir i
• se permite enviar una nueva ventana de datos (W= j octetos). Esto es: desde i hasta
i+j+1
El receptor confirmará los segmentos y otorgará más crédito, solo si tiene espacio disponible en
buffer
La tasa a la cual se envian segmentos está determinada por la tasa a la cual se reciben las
confirmaciones de los segmentos enviados
‰ Como en los protocolos de capa 2, TCP incluye un mecanismo de control de errores
No existe en TCP una confirmación de rechazo, tal como REJ o SREJ en HDLC
TCP se basa en la confirmación positiva de la recepción y retransmite cuando la confirmación
no llega dentro de un período determinado (RTO)
‰ El mecanismo de ventana deslizante provee una herramienta para apaciguar al transmisor, o sea
efectuando un control de la congestión.
‰ TCP brinda dos servicios útiles para etiquetar datos:
Cargar flujo de datos: si un usuario detecta una interrupción lógica, puede requerir
•
mediante una etiqueta, (PUSH), que TCP transmita todos los datos pendientes,
aunque no se halla completado un segmento.
Indicación de datos urgentes: es una posibilidad que sirve para notificar al usuario
•
TCP destino que el flujo de datos entrante contiene datos significativos o
“urgentes”, siendo responsabilidad de éste último realizar la acción adecuada.
‰ TCP está diseñado específicamente para trabajar con IP, por lo que algunos parámetros de
usuario se pasan a través de TCP a IP para su inclusión en la cabecera IP y no en el segmento
TCP. Entre los más importantes de éstos parámetros se tiene:
Prioridad: un campo de 3 bits.
•
Retardo normal/ bajo retardo.
•
Rendimiento normal/ rendimiento alto.
•
Seguridad normal/seguridad alta.
•
Protección: un campo de 11 bits.
•
Universidad Nacional de La Matanza
Apuntes: Ing. Daniel Mayán
Página 13 de 15
UNLaM
Protocolo TCP
COMUNICACION
DE DATOS
Formato de la cabecera TCP:
TCP utiliza un único tipo de unidad
de datos de protocolo, llamado
segmento TCP. Ya que la cabecera
debe servir para implementar todos
los mecanismos del protocolo, ésta
es mas bien grande, con una
longitud mínima de 20 octetos
‰
‰
Puerto origen (16 bits): punto de
acceso del servicio origen.
Puerto destino (16 bits): punto
de acceso del servicio destino.
Ilustración 10: Cabecera TCP
‰
‰
‰
‰
‰
‰
‰
‰
‰
Numero de secuencia (32 bits): número de secuencia del primer octeto en éste segmento, excepto si
el indicador SYN está presente. Si SYN está presente, es el número de secuencia inicial (ISN,
“inicial sequence number”) y en éste caso el primer octeto de datos es el ISN+1.
Número de confirmación (32 bits): una confirmación incorporada (“piggybacking”). Contiene el
número de secuencia del siguiente octeto que la entidad TCP espera recibir.
Longitud de la cabecera (4 bits): número de palabras de 32 bits en la cabecera.
Reservados (6 bits): bits reservados para un uso futuro.
Indicadores (6 bits):
URG: el campo puntero urgente es válido.
•
ACK: el campo de confirmación es válido.
•
PSH: función de carga.(Push)
•
RST: puesta a cero de la conexión.(Reset)
•
SYN: sincronizar los números de secuencia.
•
FIN: el emisor no tiene mas datos.
•
Ventana (16 bits): asignación de créditos de control de flujo, en octetos. Contiene el número de
octetos de datos comenzando con el que se indica en el campo de confirmación y que el que envía
está dispuesto a aceptar.
Suma de verificación (16 bits): el complemento a uno de la suma módulo 2 16 -1 de todas las
palabras de 16 bits en el segmento más una pseudo-cabecera.
Puntero urgente (16 bits): señala el octeto que sigue a los datos urgentes. Esto permite al receptor
conocer cuantos datos urgentes llegan.
Opciones (variable): si está presente, solamente se define una opción, que especifica el tamaño
máximo del segmento que será aceptado.
3.3.2) PROTOCOLO DATAGRAMA DE USUARIO (UDP)
Principales características:
‰
‰
Especificado en la RFC 768, está diseñado para brindar un servicio no orientado a conexión
(“connectionless”) para los procedimientos de la capa de aplicación.
Por ser un servicio no seguro, la entrega y protección contra duplicados no está garantizada.
Universidad Nacional de La Matanza
Apuntes: Ing. Daniel Mayán
Página 14 de 15
UNLaM
Protocolo TCP
‰
‰
COMUNICACION
DE DATOS
Se reduce la información suplementaria del protocolo, lo que puede ser adecuado en muchos casos
en el contexto de gestión de red.
UDP está situado encima de IP, con reducidas funciones para efectuar, esencialmente incorporar
un direccionamiento a puerto a las capacidades de IP.
Formato de la cabecera:
Ilustración 11: Cabecera UDP
‰
‰
‰
La cabecera incluye un puerto origen y un puerto destino.
El campo longitud contiene la longitud del segmento UDP entero, incluyendo la cabecera y los
datos.
La suma de verificación es el mismo algoritmo usado para TCP e IP. En UDP, la suma de
verificación se aplica al segmento UDP entero, más una pseudo-cabecera incorporada a la cabecera
UDP cuando se calcula la suma y es la misma que la usada para TCP. Si se detecta un error, el
segmento se descarta sin tomar ninguna medida adicional.
El campo de suma de verificación en UDP es opcional. Si no se utiliza, éste se pone todo a cero.
Sin embargo, hay que indicar que la suma de verificación de IP se aplica solo a la cabecera IP y no
al campo de datos, que está compuesto , en éste caso de , de la cabecera UDP y los datos de
usuario. De ese modo, si UDP no implementa ningún cálculo de suma de verificación, los datos de
usuario no se comprueban.
Bibliografía:
Comunicaciones y Redes de Computadoras, W. Stallings, Prentice Hall.
Universidad Nacional de La Matanza
Apuntes: Ing. Daniel Mayán
Página 15 de 15
Descargar