9-UCV Protocolo de Transporte RCI

download 9-UCV Protocolo de Transporte RCI

of 35

Transcript of 9-UCV Protocolo de Transporte RCI

  • 1

    ESCUELA ACADMICO

    PROFESIONAL DE

    INGENIERA DE SISTEMAS

  • 2

    SESIN N09

    CONTENIDO CONCEPTUAL 9.1 Capa de Transporte.

  • Recordando

    Datos de usuario

    Segmento de Aplicacin

    14

    Datos de usuario

    Head Aplic.

    Datos de Aplicacin

    Head TCP

    Datos de Aplicacin

    Head Transp.

    Head IP

    Datagrama IP

    Datos de Aplicacin

    Head Transp.

    Head Internet

    Head Ethernet

    20 20 4 46 a 1500 Bytes

    Trama Ethernet

    Cola Ethernet

    Red Fsica

    Aplicacin

    TCP

    IP

    Driver Ethernet

  • Protocolos de acceso de red

    Internet Protocol (IP)

    Transmission Control Protocol (TCP) UDP

    OSPF ICMP

    BGP FTP HTTP SNMP TELNET SMTP

    MIME

    Recordando

  • Funciones de la capa de transporte

    Segmentacin y Reensamblaje de

    Datos

    Identificacin de las aplicaciones (manejo

    de puertos)

    Incorporacin de protocolos

    segn las aplicaciones

    Separacin de

    comunicaciones mltiples

    (multiplexacin)

  • Protocolos de la capa de transporte

    Protocolo de datagramas de usuario (UDP).-

    UDP es un protocolo simple, no orientado a conexin.

    Descrito en la RFC 768.

    Provee la entrega de datos sin utilizar muchos recursos.

    Enva los datagramas como "mejor intento".

    Protocolo de control de transmisin (TCP).-

    Protocolo orientado a la conexin

    Descrito en la RFC 793.

    Realiza funciones de entrega confiable

    Realiza control de flujo.

  • Protocolos de la capa de transporte

  • Protocolo de Control de Transmisin

    El Protocolo de Control de Tranmisin (TCP) fue creado entre los aos 1973 - 1974 por Vinton Cerf y Robert Kahn.

    Reemplaz al protocolo NCP utilizado en Arpanet.

    Constituye uno de los protocolos fundamentales en Internet.

    Se encuentra documentado en el RFC 793.

    El protocolo garantiza que los datos sern entregados en su destino sin errores y en el mismo orden en que se transmitieron.

    Brinda soporte a las aplicaciones ms populares de Internet (HTTP, FTP, SMTP, etc.)

  • Qu ofrece TCP?

    1. TCP es un protocolo orientado a conexin que asegura que los datos se entreguen de manera confiable, en secuencia y sin

    errores.

    2. TCP proporciona control de flujo de datos, lo que permite al receptor regular la cantidad de datos que el emisor debe enviar a

    travs de un mecanismo de ventanas

    3. TCP proporciona un mecanismo para distinguir distintas aplicaciones dentro de una misma mquina (concepto de Puerto)

    4. TCP permite saber si un datagrama lleg adecuadamente al host receptor (acuse de recibo)

    5. TCP se encarga de finalizar las conexiones en forma ordenada 6. TCP es un protocolo que se ajusta a las condiciones

    de la red

  • Arquitectura TCP

    Datos TCP

    0 3 9 15

    23 31

    Opciones (si existen) Relleno

    Suma de verificacin Puntero de urgencia

    HLEN Reservado Code Bits Ventana

    Nmero de acuse de recibo

    Nmero de secuencia

    Puerto fuente Puerto destino

    Cabe

    cera

    (2

    4 b

    yte

    s)

  • Encapsulamiento TCP en IP

    Datos TCP

    Opciones (si existen) Relleno

    Suma de

    verificacin

    Puntero

    de urgencia

    Hlen Rsv. Code

    Bits Ventana

    Nmero de acuse de recibo

    Nmero de secuencia

    Puerto fuente Puerto destino

    CABECERA IP

    Options

    Ver Hlen TOS Total Lenght

    Identification Fragment Off. Flag

    TTL Protocol Checksum

    Source IP Adress

    Destination IP Adress Cab

    ecera

    IP

    20 b

    yte

    s

    0 4 8 16 19 31

    40 b

    yte

    s

    0 3 9 15 23 31

    24 b

    yte

    s

  • Campos del Protocolo TCP

    Datos TCP

    Opciones (si existen) Relleno

    Suma de

    verificacin

    Puntero

    de urgencia

    Hlen Rsv. Code

    Bits Ventana

    Nmero de acuse de recibo

    Nmero de secuencia

    Puerto fuente Puerto destino

    0 3 9 15 23 31

    24 b

    yte

    s

    Puerto de fuente y destino:

    Identifican los programas de aplicacin

    en los extremos de la comunicacin.

    Nmero de secuencia:

    Indica la posicin de los datos en el

    flujo de datos de origen. Indica el valor

    del primer byte del segmento

    transmitido.

    Nmero de acuse de recibo:

    Contiene el valor del siguiente nmero

    de secuencia (siguiente byte) que se

    espera recibir.

  • Datos TCP

    Opciones (si existen) Relleno

    Suma de

    verificacin

    Puntero

    de urgencia

    Hlen Rsv. Code

    Bits Ventana

    Nmero de acuse de recibo

    Nmero de secuencia

    Puerto fuente Puerto destino

    0 3 9 15 23 31

    24 b

    yte

    s

    HLEN:

    Indica la longitud de la cabecera TCP.

    Reservado:

    Reservado para uso futuro.

    Code Bits:

    Indica el contenido del segmento

    URG Campo Puntero de Urgencia es vlido

    ACK Campo Acuse de Recibo es vlido

    PSH Solicitud de una Peticin Forzada

    RST Reinicio de la conexin

    SYN Sincronizar nmero de secuencia

    FIN El emisor finaliza el flujo de datos

    Campos del Protocolo TCP

  • Campos del Protocolo TCP

    Datos TCP

    Opciones (si existen) Relleno

    Suma de

    verificacin

    Puntero

    de urgencia

    Hlen Rsv. Code

    Bits Ventana

    Nmero de acuse de recibo

    Nmero de secuencia

    Puerto fuente Puerto destino

    0 3 9 15 23 31

    24 b

    yte

    s

    Ventana:

    Especifica cuntos datos est

    dispuesto a aceptar el receptor por

    cada segmento enviado. Indica el

    tamao de la memoria intermedia.

    Suma de Verificacin:

    Verifica y comprueba la integridad de

    los datos y la cabecera TCP (con

    Pseudo-cabecera IP)

    Puntero de Urgencia:

    Indica la posicin del segmento en

    dnde terminan los datos urgentes.

    Permite enviar datos fuera de banda.

  • Pseudo cabecera IP

    0 3 9 15 23 31

    Data

    Opciones (si existen) Relleno

    Suma de verificacin Puntero de urgencia

    HLEN Reservado Code Bits Ventana

    Nmero de acuse de recibo

    Nmero de secuencia

    Puerto fuente Puerto destino

    00 Protocolo (IP) Longitud TCP

    Direccin IP de destino

    Direccin IP de origen Pseudo

    cabecera

    Segmento

    TCP

    Cabecera

    TCP

    Datos TCP

    0 0 0 0

    Clculo del

    Checksum

  • Proceso de Acuse de Recibo (ACK)

    MENSAJES

    EN LA RED

    Envo del

    segmento 1

    Envo del

    segmento 2

    Recepcin del

    ACK 1

    Recepcin del

    segmento 1

    Envo del ACK 1

    EMISOR RECEPTOR

    Recepcin del

    segmento 2

    Envo del ACK

    2 Recepcin del

    ACK 2

  • ACK para retransmisin

    MENSAJES

    EN LA RED

    Envo del

    segmento 1

    Re-envo del

    segmento 1

    Debera recibir

    ACK 1

    Debera llegar

    segmento 1

    Debera enviar

    ACK 1

    EMISOR RECEPTOR

    Recepcin del

    segmento 1

    Envo del ACK

    1

    Recepcin del

    ACK 1

    FIN DEL TEMPORIZADOR

    Segmento Perdido

  • Recibo SYN

    ACK (x+1)

    seq=y

    Establecimiento de conexin

    MENSAJES

    EN LA RED

    Envo SYN

    seq=x

    Envo ACK

    (y+1)

    seq=(x+1)

    Recibo SYN seq=x

    Envo SYN ACK

    (x+1) seq=y

    EMISOR RECEPTOR

    Establezco

    conexin

  • Finalizacin de conexin

    Recibo ACK

    (x+1)

    MENSAJES

    EN LA RED

    Envo SYN

    seq=x (terminar

    conexin)

    Envo ACK (y+1)

    (conexin

    terminada)

    Recibo

    segmento FIN

    Envo ACK (x+1)

    Recibo ACK (y+1)

    (conexin

    terminada)

    Recibo FIN y ACK

    (y)

    Envo FIN y ACK

    (y)

    EMISOR RECEPTOR

  • Inconvenientes del ACK

    Duplicidad en el envo de segmentos y de la seal ACK .

    Solucin:

    Mal uso del ancho de banda de la red . Se enviar un nuevo segmento slo si se recibe la seal ACK

    Solucin:

    Asignar a cada segmento un nmero de secuencia

    Utilizacin de la ventana deslizante

  • Concepto de Ventana Deslizante

    Es un algoritmo por el cual se toman un grupo determinado de bits dentro de una ventana y se envan sin esperar el ACK de cada uno de ellos.

    El mecanismo de ventana deslizante, controla que el transmisor mande informacin dentro de los lmites del buffer del receptor

    Se envan varios segmentos antes de recibir un acuse de recibo (ACK) .

    Permite la utilizacin del ancho de banda de manera ms eficiente.

    El protocolo define un tamao de ventana y se transmiten todos los

    segmentos que encajen en la ventana.

    0 1 2 3 4 5 6 7 8 9

    Ventana deslizante

  • Concepto de Ventana Deslizante

    1. Se definen una ventana de n segmentos (ejemplo n=2)

    0 1 2 3 4 5 6 7 8 9

    0 1 2 3 4 5 6 7 8 9

    0 1 2 3 4 5 6 7 8 9

    2. Se envan dos segmentos

    3. Se recibe el ACK de los segmentos enviados y se desliza la ventana

    0 1 2 3 4 5 6 7 8 9

    0 1

    8 9

  • Regiones de una Ventana TCP

    0 1 2 3 4 5 6 7 8 9 10 11 2 3 4 5 6 7 8 9 0 1 10 11

    Bytes enviados

    y reconocidos Bytes que no se

    enviarn si la

    ventana no se mueve

    Bytes enviados pero

    faltan reconocer

    Bytes no enviados pero

    se enviarn sin retardo

    Ventana activa

  • Mensajes en una Ventana

    MENSAJES

    EN LA RED

    Envo del segmento 1

    Envo del segmento 2

    Recepcin del

    ACK 1

    Recepcin del segmento 1

    Recepcin del segmento 2

    Recepcin del

    ACK 2

    EMISOR RECEPTOR

    Envo ACK 1

    Envo ACK 2

    Se envan segmentos 1 y 2

    antes de enviar el ACK

  • Control de Flujo en TCP

    Contribuye con la confiabilidad de la transmisin TCP.

    El campo Nmero de secuencia especifica el nmero del primer byte del

    segmento que se transmite luego de recibir el ACK

    El campo Acuse de recibo especifica el nmero del prximo byte

    esperado

    El campo Tamao de

    Ventana especifica la

    cantidad de bytes que

    sern transmitidos.

  • Uso de la Ventana Deslizante

  • Problemas de la Ventana Deslizante

    Sndrome de la ventana tonta

    Se da cuando la velocidad del transmisor es mayor a la del receptor o

    a la del medio.

    Solucin

    RFC1122: Plantea un control de ventana segn el tiempo de espera del

    ACK

    Tiempo lmite para la retransmisin (timeout)

    Se da cuando expira el temporizador de ACK

    Soluciones:

    Algoritmo de Van Jacobson: Actualiza el timeout al ltimo tiempo de

    ACK recibido.

    Algoritmo de Karn: Se dobla automticamente el tiempo de timeout

    hasta que el ACK llega sin timeout.

  • El concepto de Puerto

    Un puerto es un nmero de 16 bits, empleado por TCP para identificar a que protocolo del nivel superior o programa de aplicacin se

    deben entregar los mensajes recibidos.

    Los nmeros de puertos son controlados y asignados por IANA

    Un SOCKET combinacin el nmero del puerto de la capa de Transporte

    con una direccin IP de la capa de Red asignada al host. Se utiliza para

    identificar un proceso en particular que la PC est ejecutando.

    Por ejemplo, Un host que realiza una solicitud Web a un servidor, con

    direccin IP 45.92.100.20, tendr un socket: 45.92.100.20:80.

  • Tipos de puertos

  • Tipos de puertos

  • Algunos Puertos bien conocidos

    Puerto Descripcin

    20/tcp FTP (File Transfer Protocol datos)

    21/tcp FTP (File Transfer Protocol control)

    23/tcp Telnet (comunicaciones de texto inseguras)

    25/tcp SMTP (Simple Mail Transfer Protocol)

    53/tcp y udp DNS (Sistema de Nombres de Dominio)

    67/udp DHCP (Server)

    68/udp DHCP (Client)

    80/tcp HTTP (Protocolo de Transferencia de HiperTexto)

    88/tcp Kerberos (Agente de autenticacin)

    110/tcp POP3 (Post Office Protocol Email)

    1863/tcp MSN Messenger (Sistema de Mensajera)

    4662/tcp eMule (aplicacin de comparticin de ficheros)

    9898/tcp Gusano Dabber (troyano/virus)

    http://www.ietf.org/rfc/rfc1700.txt

    Estos puertos se

    encuentran

    asignados en el

    RFC 1700

  • El comando Netstat

    El comando permite conocer las conexiones TCP activas que se

    encuentran en un host. Se utiliza para verificar las conexiones TCP; ya que las

    conexiones TCP no descritas pueden representar una importante amenaza a la

    seguridad.

    Puerto de

    Origen

    Protocolo

    Direccin o nombre

    del host remoto Puerto de Destino Estado de la conexin

  • Protocolo UDP

    Est definido en la RFC 768

    Proporciona los mecanismos para que una aplicacin enve datagramas a otra aplicacin.

    UDP suministra puertos para distinguir varias aplicaciones que se ejecutan en una misma mquina; es decir realiza procesos de

    multiplexacin y demultiplexacin.

    Es un protocolo NO confiable y NO orientado a conexin.

    UDP tiene las siguientes caractersticas:

    No emplea acuse de recibo.

    No ordena los mensajes entrantes.

    No controla la velocidad de los datos en la red.

    Sus principales aplicaciones son: DNS y SNMP

  • Formato UDP

    Suma de verificacin UDP:

    Es opcional (para ahorrar tiempo de procesamiento)

    Datos

    Longitud del mensaje UDP Suma de verificacin UDP

    Puerto UDP de origen

    0 15 16 31

    Puerto UDP de destino

    Longitud del mensaje UDP:

    Indica el tamao en bytes del datagrama UDP (Cabecera + Datos)

    Puerto de origen y puerto de Destino:

    Son utilizados para la identificar a las aplicaciones en los host de

    comunicacin.

  • Comparacin Final

    Protocolo TCP Protocolo UDP

    Orientado a Conexin No orientado a conexin

    Permite identificar aplicaciones Permite identificar aplicaciones

    Realiza multiplex. y demultiplex. Realiza multiplex. y demultiplex.

    Realiza Suma de Verificacin Realiza Suma de Verificacin

    Realiza control de flujo No realiza control de flujo

    Garantiza entrega confiable No garantiza entrega confiable

    Requiere establecer conexiones No requiere establecer conexiones

    Permite el envo de ACK No permite el envo de ACK

    Puede ordenar los mensajes No puede ordenar los mensajes

    Soporta Telnet, FTP, HTTP, etc. Soporta DNS, RIP, VoIP, etc.