SlideShare una empresa de Scribd logo
1 de 9
Descargar para leer sin conexión
User Datagram Protocol (UDP)


                                                                               Redes de Computadores                                                                                                                          ! Descrito na RFC 768
     Instituto de Informática - UFRGS




                                                                                                                                                                                                                              ! PDU do UDP é denominada datagrama
                                                                                                                                                                                                                                    ! Orientado a mensagem
                                                                                      Protocolos de Transporte na Internet                                                                                                    ! Protocolo de transporte da família TCP/IP não orientado à conexão
                                                                                                              UDP e TCP                                                                                                             ! Por não executar controle de fluxo, de erro e de ordenamento, possui baixo
                                                                                                                                                                                                                                      custo de processamento




                                                                                                                                                                Instituto de Informática - UFRGS
                                                                                                                                                                                                                                    ! Em relação ao IP agrega funcionalidade de multiplexação e demultiplexação
                                                                                                                                                                                                                                      e detecção de erros
                                                                                                                                                                                                                              ! Processos origem e destino são identificados através de portas




                                                                                                                                                                                                   A. Carissimi -30-nov.-09
                                                                                                                                                  Aula 26
                                                                                                                                                                                                                              Redes de Computadores                                                                 2




                                        Formato do datagrama UDP                                                                                                                                        Campos do datagrama UDP

                                                                            32 bits                                                                                                                                           ! Porta fonte
                                                                          IP Header                                  DATA                                                                                                           ! Associada ao processo de origem
                                                                                                                                  Trasnferência




                                                               Source Port     Destination Port                      DATA                                                                                                           ! Permite ao destino retornar mensagens ao processo de origem
                                                                 length             Checksum
                                                                                                                     DATA                                                                                                     ! Porta destino
                                                                                                                                                                                                                                    ! Usada para demultiplexação das mensagens encapsuladas nos datagramas
                                                                                                                                                                                                                              ! Tamanho
Instituto de Informática - UFRGS




                                                                                                                                                                Instituto de Informática - UFRGS




                                                                                                  Cabeçalho 802.3                                                                                                                   ! Tamanho total do datagrama UDP (inclui cabeçalho + dados)
                                                                                                        Cabeçalho IP
                                                                             Data                                                                                                                                             ! Checksum
                                                                                                          Cabeçalho UDP
                                                                                                                                                                                                                                    ! Verificação da integridade dos dados (complemento de 1 em 16 bits)
                                   A. Carissimi -30-nov.-09




                                                                                                                                                                                                   A. Carissimi -30-nov.-09




                                                                                                                                                                                                                                    ! Calculado sobre um pseudo-cabeçalho (IP destino, IP fonte, campo protocolo,
                                                                                                                                                                                                                                      tamanho TPDU e a constante zero), o cabeçalho UDP e os dados
                                                                                                                                                                                                                              ! Dados
                                                                                                                                Área de dados UDP
                                                                PDU – Protocol Data Unit                          Área de dados IP
                                                                                                  Área de dados 802.3
                                                              Redes de Computadores                                                                         3                                                                 Redes de Computadores                                                                 4
Razões para usar UDP                                                                                                                               Transmission Control Protocol (TCP)

                                                              ! Melhor controle dos dados enviados                                                                                                               ! Descrito nas RFCs 793, 1122, 1323, 2018 e 2581
                                                                    ! Dados da aplicação são empacotados pelo UDP e enviados ao IP                                                                               ! Protocolo orientado a conexão
                                                                       ! Cada mensagem aplicação deve caber em um datagrama UDP
                                                                                                                                                                                                                 ! PDU do TCP é denominada de segmento
                                                                          ! Desejável que caiba em um datagrama IP para evitar fragmentação
                                                                                                                                                                                                                       ! Mensagens geradas por processos são fragmentadas em segmentos TCP
                                                              ! Não há estabelecimento de conexão                                                                                                                ! Abordagem baseada em fluxo de dados (data stream)
                                                                    ! Não há atrasos (troca de T-PDUs e processamento)
Instituto de Informática - UFRGS




                                                                                                                                                   Instituto de Informática - UFRGS
                                                                                                                                                                                                                       ! Trata os dados como uma cadeia continua de bytes
                                                              ! Não há estados de conexão a monitorar/gerenciar                                                                                                        ! Decide como agrupar os bytes em segmentos
                                                                    ! Não faz controle de perda, repetição, ordenamento e congestionamento
                                                                                                                                                                                                                 ! Fornece comunicação confiável ponto a ponto entre dois processos
                                                                       ! Usado em aplicativos que toleram erros de entrega
                                   A. Carissimi -30-nov.-09




                                                                                                                                                                                      A. Carissimi -30-nov.-09
                                                                                                                                                                                                                       ! Cada conexão TCP envolve exatamente duas extremidades
                                                              ! Cabeçalho simplificado                                                                                                                                 ! Envio pode ocorrer entre uma ou outra direção de uma mesma conexão TCP



                                                              Redes de Computadores                                                            5                                                                 Redes de Computadores                                                                    6




                                        Serviços oferecidos pelo TCP a aplicativos                                                                                                         Segmento TCP

                                                                                                                                                                                                                     Orientado a conexão                                           32 bits
                                                              ! Transferência confiável de dados dentro de um canal lógico, a                                                                                    !
                                                                                                                                                                                                                     Controle de erro e fluxo                                    IP Header
                                                                conexão                                                                                                                                          !                                    Urgent pointer
                                                                                                                                                                                                                 !   Garantia de entrega e de ordem   Ack              Source Port     Destination Port
                                                              ! Interface data stream (visão da aplicação)                                                                                                                                                                    Sequence Number
                                                                                                                                                                                                                 !   Gerenciamento da conexão         Push
                                                                    ! Os dados são tratados como uma seqüência de bytes sem estrutura alguma                                                                                                          Rst                Acknowledgment Number
                                                                    ! Não há noção de registro/bloco/pacote para envio ou recepção                                                                                                                    Syn              Hlen    Flags        Window
                                                                                                                                                                                                                 Cabeçalho 802.3
                                                                                                                                                                                                                                                      Fin               Checksum        Urgent Pointer
                                                                                                                                                                                                                     Cabeçalho IP
Instituto de Informática - UFRGS




                                                                                                                                                   Instituto de Informática - UFRGS




                                                                                                                                                                                                                                                                              Options+padding
                                                                                                                                                                                                                         Cabeçalho TCP


                                                                                                                                                                                                                                                                                     Data
                                   A. Carissimi -30-nov.-09




                                                                                                                                                                                      A. Carissimi -30-nov.-09




                                                                                                                                                                                                                                               Área de dados TCP
                                                                                                                                                                                                                                 Área de dados IP
                                                                                                                                                                                                                 Área de dados 802.3                                    PDU – Protocol Data Unit

                                                              Redes de Computadores                                                            7                                                                 Redes de Computadores                                                                    8
Os campos mais simples primeiro: hlen, flags...                                                                                                   ...checksum, options e padding

                                                               ! Hlen                                                                                                                                           ! Checksum
                                                                    ! Fornece o tamanho do cabeçalho TCP em múltiplos de 4 bytes (palavra)                                                                            ! Verificação da integridade dos dados (complemento de 1 em 16 bits)
                                                                       ! Tipicamente assume o valor 5 (20 bytes), exceto quando há options                                                                            ! Calculado sobre um pseudo-cabeçalho (IP destino, IP fonte, campo protocolo,
                                                               ! Flags                                                                                                                                                  tamanho da TPDU e a constante zero), o cabeçalho TCP e os dados
                                                                    ! Indica o propósito e o tipo do segmento                                                                                                   ! Options
                                                                       ! URG: segmento transporta dados urgentes                                                                                                      ! Lista variável de informações e parâmetros para o TCP
Instituto de Informática - UFRGS




                                                                                                                                                  Instituto de Informática - UFRGS
                                                                       ! ACK: segmento transporta uma confirmação positiva                                                                                            ! Usado principalmente para definir o tamanho máximo de um segmento (MSS)
                                                                       ! PSH: mecanismo push foi adotado no envio do segmento                                                                                   ! Padding
                                                                       ! RST: a conexão deve ser imediatamente abortada (reset)                                                                                       ! Usado para “arrendondar” o número de bytes do cabeçalho para este ter
                                   A. Carissimi -30-nov.-09




                                                                                                                                                                                     A. Carissimi -30-nov.-09
                                                                       ! SYN: segmento transporta requisição de abertura de conexão                                                                                     sempre um número inteiro de palavras de 32 bits.
                                                                       ! FIN: segmento transporta requisição de encerramento da conexão


                                                              Redes de Computadores                                                          9                                                                  Redes de Computadores                                                                 10




                                        Conexão TCP                                                                                                                                       TCP: Controle de seqüência

                                                                                                           SYN
                                                                                                                                                                                                                ! Objetivo:
                                                                                                                       Estabelecimento




                                                                                                         SYN/ACK
                                                                                                                                                                                                                      ! Garantir que dados são recebidos na ordem em que foram emitidos (e sem
                                                                                                           ACK                                                                                                          duplicação)
                                                                                                                                                                                                                ! O protocolo TCP faz isso através de um número de seqüência
                                                              Campos sequence number,                     DATA                                                                                                        !   Número inicial é negociado durante o estabelecimento da conexão
                                                                                                                       Trasnferência




                                                              acknowledgement number, window            DATA/ACK                                                                                                      !   Cada byte possui um número de seqüência
Instituto de Informática - UFRGS




                                                                                                                                                  Instituto de Informática - UFRGS




                                                              e urgent pointer são usados nos
                                                                                                           ACK                                                                                                        !   Indica sempre o primeiro byte de dados contido no segmento
                                                              mecanismos de controle de erro e
                                                              de fluxo (ordenamento).                                                                                                                                 !   É o número que está no campo sequence number (SN)
                                                                                                           FIN
                                                                                                                                                                                                                           ! Usado para manter ordenamento e detectar duplicação
                                   A. Carissimi -30-nov.-09




                                                                                                                                                                                     A. Carissimi -30-nov.-09
                                                                                                                       Encerramento




                                                                                                           ACK
                                                                                                           FIN
                                                                                                                                                                                                                   150 151              198 199   200 201       348 349   350 351        448 449
                                                                                                           ACK
                                                                                                                                                                                                                          Segmento 150                Segmento 200            Segmento 350


                                                              Redes de Computadores                                                          11                                                                 Redes de Computadores                                                                 12
TCP: Controle de erros                                                                                                                                  Controle de erros (cont.)

                                                              ! Objetivo:                                                                                                                                             ! Baseado em:
                                                                    ! Garantir o recebimento correto de T-PDUs                                                                                                              ! Checksum: detecção de erros
                                                              ! No protocolo TCP é baseado em                                                                                                                               ! timeout : segmentos não confirmados são reenviados
                                                                    ! Confirmação positiva (ACK)                                                                                                                            ! confirmações positivas
                                                                       ! Destino envia mensagem acusando correto recebimento de um segmento
                                                                                                                                                                                                                      ! Ações
                                                                       ! Confirmação (ACK) pode ser enviada em pigbacking com o fluxo de
                                                                                                                                                                                                                            !   Segmento com erro → descartado
Instituto de Informática - UFRGS




                                                                                                                                                        Instituto de Informática - UFRGS
                                                                         dados no sentido inverso
                                                                    ! Confirmação acumulativa (similar ao go-back N)                                                                                                        !   Segmento perdido → retransmitido por time-out
                                                                       ! Diversos segmentos consecutivos podem ser confirmados por uma única                                                                                !   Fora de ordem → ordena no buffer, confirma após ordenado (sem perdas)
                                                                         mensagem                                                                                                                                           !   Duplicados → descarta
                                   A. Carissimi -30-nov.-09




                                                                                                                                                                                           A. Carissimi -30-nov.-09
                                                                           ! RFC 2018, permite o reconhecimento seletivo (similar ao selective
                                                                             repeat)
                                                                    ! Retransmissão por time-out


                                                              Redes de Computadores                                                                13                                                                 Redes de Computadores                                                             14




                                        TCP: Confirmação positiva                                                                                                                               TCP: Retransmissão

                                                              ! Baseado no valor do campo acknowledge number (ACK)                                                                                                    ! O protocolo TCP emprega timeout por segmentos
                                                                    ! Indica o número de seqüência do próximo byte que espera receber                                                                                       ! Processo origem dispara um timeout para cada segmento enviado
                                                                    ! Informa o correto recebimento dos bytes com número de seqüência inferiores                                                                            ! Segmento é retransmitido quando a origem não recebe a confirmação antes
                                                                      ao da mensagem de confirmação                                                                                                                           da expiração do temporizador
                                                                    ! O bit de ACK do campo de flags deve estar ativo para dar significado ao                                                                         ! Tratamento da duplicação é feito pelo sequence number
                                                                      campo acknowledgement number
                                                                                                                                                                                                                            ! Destino espera segmento com número x, qualquer segmento com número
Instituto de Informática - UFRGS




                                                                                                                                                        Instituto de Informática - UFRGS




                                                                                                                                                                                                                              inferior é considerado duplicado e é descartado

                                                                 150 151              198 199 200 201      348 349   350 351        448 449
                                   A. Carissimi -30-nov.-09




                                                                                                                                                                                           A. Carissimi -30-nov.-09




                                                                      SN=150                     SN=200                   SN=350

                                                                          ACK=200                ACK=350                  ACK=450



                                                              Redes de Computadores                                                                15                                                                 Redes de Computadores                                                             16
TCP: Controle de fluxo                                                                                                                                   Campo window: controle de fluxo

                                                              ! Baseado em um esquema de crédito (genérico)                                                                                                            ! Origem do segmento informa o tamanho do seu buffer de recepção
                                                                    ! Variação de janela deslizante onde os buffers de transmissão e recepção são                                                                        (janela) a partir do último byte que confirmou
                                                                      de tamanho variável (blocos múltiplos de bytes)                                                                                                        ! RcvWindow = RcvBuffer – [ LastByteRcvd – LastByteRead ]
                                                                    ! Emissor tem crédito para enviar até n blocos de bytes ao destino
                                                                       ! Segmento ao ser aceito (processado), o destino renova a quantidade de                                                                         ! Questão paralela: como se sabe o tamanho da área de dados?
                                                                          créditos por um valor c (0 < c ≤ n)
                                                                                                                                                                                                                             ! Tamanho TPDU (informado no IP) – Tamanho do cabeçalho TCP
Instituto de Informática - UFRGS




                                                                                                                                                         Instituto de Informática - UFRGS
                                                                       ! Créditos podem ser renegociados
                                                                                                                                                                                                                             ! Máximo teórico é 65535 – 20 – 20, mas é definido através do MSS (Maximum
                                                              ! No protocolo TCP                                                                                                                                               Segment Size) divulgado por um host no momento do estabelecimento da
                                                                    ! Janela deslizante orientada a byte, i.é., cada byte se comporta como um buffer                                                                           conexão
                                   A. Carissimi -30-nov.-09




                                                                                                                                                                                            A. Carissimi -30-nov.-09
                                                                    ! Tamanho máximo da janela é negociado no estabelecimento da conexão                                                                                        ! Valor default: 536 bytes
                                                                    ! Confirmações (ACKs) servem renovar os créditos                                                                                                            ! Ethernet: 1460 bytes



                                                              Redes de Computadores                                                                 17                                                                 Redes de Computadores                                                                18




                                        Transferência de dados: urgent data                                                                                                                      Transferência de dados: mecanismo data stream push (bit PSH)


                                                              ! Flag URG indica a presença de dados “urgentes” no segmento                                                                                             ! Buffer de transmissão do TCP tenta otimizar uso da rede
                                                                    ! Usuário (processo) destino decide o que fazer                                                                                                          ! Objetivo é diminuir a quantidade de segmentos na rede, bufferizando os
                                                                    ! O campo urgent pointer sinaliza a posição em que termina os dados urgentes                                                                               dados e enviando quando eles atinjam uma determinada quantidade
                                                                                                                                                                                                                             ! Problema: prejudicar tempo de resposta da aplicação (ex. telnet)
                                                                                         cabeçalho                                                                                                                     ! Bit PSH
                                                                                                                                                                                                                             ! Processo origem pode solicitar a transmissão de dados até esse momento
Instituto de Informática - UFRGS




                                                                                                                                                         Instituto de Informática - UFRGS




                                                                                 T-PDU   dados                           urgent                                                                                                 ! Força a geração de um segmento com os dados disponíveis
                                                                                                                         pointer
                                                                                                                                                                                                                             ! Indica que a entidade de transporte deve repassar imediatamente o segmento
                                                                                                                                                                                                                               para o processo destino
                                   A. Carissimi -30-nov.-09




                                                                                                                                                                                            A. Carissimi -30-nov.-09




                                                              ! Possibilidade raramente usada no TCP                                                                                                                            ! Encaminha todos os bytes que estão no buffer e não apenas os do
                                                                                                                                                                                                                                   segmento identificado com o PSH
                                                                    ! Necessário que o processo destino priorize os dados (não seria
                                                                      responsabilidade da aplicação?)

                                                              Redes de Computadores                                                                 19                                                                 Redes de Computadores                                                                20
Conexão na presença de erros: problemas                                                                                                                   Problema: segmentos de conexões anteriores

                                                              ! Estabelecimento da conexão                                                                                                                                                                 ! Problema:
                                                                    ! Baseado em dois TPDUs SYN (two way handshake)                                                                                                                                           ! T-PDU de uma conexão j chega em uma
                                                                       ! Perda de qualquer um dos SYN provoca retransmissão (tratar duplicados)                                                                                                                 conexão j+1
                                                                          ! Sistema se resincroniza
                                                                       ! Chegada atrasada da T-PDU SYN provoca interpretação erradas de conexão
                                                              ! Transferência de dados: controle de fluxo e de erro
Instituto de Informática - UFRGS




                                                                                                                                                          Instituto de Informática - UFRGS
                                                                                                                                                                                                                                                            ! Solução:
                                                                    ! TPDUs ainda válidos de conexões anteriores chegando atrasadas
                                                                                                                                                                                                                                                               ! Iniciar cada conexão com um número de
                                                              ! Encerramento da conexão                                                                                                                                                                           seqüência a partir do último da conexão
                                                                    ! Chegada de pedidos de encerramento atrasados                                                                                                                                                mais recente
                                   A. Carissimi -30-nov.-09




                                                                                                                                                                                             A. Carissimi -30-nov.-09
                                                                    ! Encerramento feito antes de receber todos os segmentos de dados                                                                                                                          ! TPDUs SYN incluem números de
                                                                                                                                                                                                                                                                  seqüência
                                                                                                                                                                                                                                                                       ! SYN i


                                                              Redes de Computadores                                                                  21                                                                 Redes de Computadores                                                           22




                                        Mais problemas: atraso na T-PDU de controle                                                                                                               Three-way handshake

                                                              ! T-PDU que chega atrasado é um T-PDU SYN i                                                                                                               ! Solução para problema do two-way handshake
                                                                                                                                                                                                                        ! Formalmente provado que a troca de 3 mensagens é condição
                                                                                                                                                                                                                          necessária e suficiente para assegurar um acordo não ambíguo
                                                                                                                                                                                                                          entre duas partes
                                                                                                                                                                                                                              ! Mesmo considerando perdas, duplicação e atrasos
                                                                                                                                                                                                                        ! Basicamente consiste em cada lado confirmar o recebimento de T-
Instituto de Informática - UFRGS




                                                                                                                                                          Instituto de Informática - UFRGS




                                                                                                                                                                                                                          PDUs de abertura de conexão e número de seqüência
                                   A. Carissimi -30-nov.-09




                                                                                                                                                                                             A. Carissimi -30-nov.-09




                                                                 B pensa que está abrindo conexão que espera números de seqüência a partir de i e
                                                                 responde a partir de j. A considera que a conexão é com k e j. Ao chegar segmento
                                                                 com k, B descarta como erro por não pertencer a conexão negociada!!

                                                              Redes de Computadores                                                                  23                                                                 Redes de Computadores                                                           24
Estabelecimento de conexão                                                                                                                            Ainda problemas: Encerramento de conexão

                                                              ! Three way handshake                                                                                                                                   ! Baseado em duas T-PDUs FIN (two way handshake)
                                                              ! Entre pares de porta                                                                                                                                  ! Apresenta problemas similares ao estabelecimento da conexão
                                                                                                   Host 1     Host 2                                                                                                       ! Perdas de TPDUs e TPDUs atrasadas
                                                                                                                                                                                                                      ! Problema:
                                                                                      envia SYN seq=x                                                                                                                                                (SN=i; m)

                                                                                                                recebe SYN                                                                                                                          (FIN)
Instituto de Informática - UFRGS




                                                                                                                                                      Instituto de Informática - UFRGS
                                                                                                                envia SYN seq=y, ACK x+1
                                                                         recebe SYN seq=y, ACK x+1                                                                                                                                                                   PERDA !!!
                                                                             envia SEQ x+1, ACK y+1
                                                                                                                                                                                                                      ! Solução: numerar TPDUs FIN
                                   A. Carissimi -30-nov.-09




                                                                                                                                                                                         A. Carissimi -30-nov.-09
                                                                                                                 recebe SEQ=x+1, ACK y+1
                                                                                                                                                                                                                                                                                 (SN=i; m)
                                                                                                                                                                                                                                      Espera dados chegarem antes          (FIN i+m+1)
                                                                                                                                                                                                                                      de encerrar a conexão.
                                                                                                                                                                                                                                                                                                        Posterga!
                                                              Redes de Computadores                                                              25                                                                  Redes de Computadores                                                                           26




                                        Encerramento de conexão simétrico                                                                                                                     Diagrama de estados conexão TCP

                                                                                                                                                                                                                      Lado Cliente                                       Lado Servidor
                                                              ! Antes de receber a confirmação do encerramento (TPDU FIN da
                                                                outra entidade) ainda recebe TPDUs de dados                                                                                                                              CLOSED                                              CLOSED
                                                                                                                                                                                                                        Espera 30s                                       Recebe ACK
                                                                                                                                                                                                                                               Envia SYN                                        Envia SYN
                                                                                      FIN seq =x
                                                                                                                   Recebe FIN seq = x                                                                                    TIME_WAIT                      SYN_SENT           LAST_ACK                         LISTEN
                                                                                                                   Envia ACK = x+1
                                                                           Recebe ACK = x + 1                                                                                                                                                Recebe SYN+ACK                                  Recebe SYN
Instituto de Informática - UFRGS




                                                                                                                                                      Instituto de Informática - UFRGS




                                                                                                                                                                                                                    Recebe FIN                                       Envia FIN
                                                                                                                                                                                                                                             Envia ACK                                       Envia SYN+ACK
                                                                                                        ...




                                                                                                                                                                                                                    Envia ACK
                                                                                                                   Envia FIN seq = y ACK = x+1
                                                                Recebe FIN seq=y ACK=x+1                                                                                                                                 FIN_WAIT_2                    ESTABLISHED        CLOSE_WAIT                        SYN_RCVD
                                                                           Envia ACK=y+1
                                   A. Carissimi -30-nov.-09




                                                                                                                                                                                         A. Carissimi -30-nov.-09




                                                                                                                                                                                                                                                  Envia FIN                                     Recebe ACK
                                                                                                                   Recebe ACK=y+1                                                                                     Recebe ACK                                        Recebe FIN
                                                                                                                                                                                                                                        FIN_WAIT_1                      Envia ACK        ESTABLISHED




                                                              Redes de Computadores                                                              27                                                                  Redes de Computadores                                                                           28
Instituto de Informática - UFRGS




                                                                                                                                                                   Instituto de Informática - UFRGS
                                   A. Carissimi -30-nov.-09




                                                                                                                                                                                                      A. Carissimi -30-nov.-09
                                                              Redes de Computadores                                                                           29                                                                  Redes de Computadores                                                                       30




                                        Análise da sessão ftp                                                                                                                                              Recuperação de falhas (crash recovery)

                                                                                      [SYN] seq=0 MSS=1460                                                                                                                         ! Em caso de falhas as informações de estado de uma conexão são
                                                                                                                                                                                                                                     perdidas por um lado, o outro mantém meia-conexão
                                                                            [SYN, ACK] seq=0, ack=1, W=5840, MSS=1460

                                                                                                                                                                                                                                                                         CRASH                                       CRASH
                                                                                        [ACK] seq=1, ack=1                                                                                                                                            (SN=i, m)                                    (SN=i, m)
                                                                17520                                                   220 FTP server Ready ... (23 bytes)                                                                      Time-out
                                                                                                                                                                                                                                                                                   Time-out
                                                                                                                                                                                                                                                                                                                     REBOOT
Instituto de Informática - UFRGS




                                                                                                                                                                   Instituto de Informática - UFRGS




                                                                                        [ACK] seq=1, ack=1
                                                                17497                                                                                                                                                                                     (SN=i, m)
                                                                                                                                                                                                                                 Time-out
                                                                                       [ACK] seq=1, ack=24
                                                                                                                                                                                                                                                                                                   (SN=i, m)
                                                                                                                                                                                                                                 Time-out              (SN=i, m)
                                   A. Carissimi -30-nov.-09




                                                                                                                                                                                                      A. Carissimi -30-nov.-09




                                                                                       [ACK] seq=1, ack=24                                                                                                                                                                                          (RST i)
                                                                                                                        USER asc.. (10 bytes)
                                                                                                                                                                                                                                                                         REBOOT
                                                                                       [ACK] seq=24, ack=11
                                                                                                                                                                                                                                            Reseta a meia conexão por excesso de         Reseta a meia conexão por receber
                                                                                                                                                                                                                                            retransmissões                               comando de reset (RST)
                                                              Redes de Computadores                                                                           31                                                                  Redes de Computadores                                                                       32
Leituras complementares

                                                              ! Stallings, W. Data and Computer Communications (6th edition),
                                                                Prentice Hall 1999.
                                                                    ! Capítulo 15, seção 15.3, 15.4
                                                              ! Tanenbaum, A. Redes de Computadores (4a edição), Campus,
                                                                2000.
                                                                    ! Capítulo 6, seção 6.1, 6.2 e 6.3
Instituto de Informática - UFRGS




                                                              ! Carissimi, A.; Rochol, J; Granville, L.Z; Redes de Computadores.
                                                                Série Livros Didáticos. Bookman 2009.
                                                                    ! Capítulo 6, seções 6.4 e 6.5
                                   A. Carissimi -30-nov.-09




                                                              Redes de Computadores                                                33

Más contenido relacionado

La actualidad más candente (16)

Tópicos - Computacao Paralela Introdução
Tópicos - Computacao Paralela IntroduçãoTópicos - Computacao Paralela Introdução
Tópicos - Computacao Paralela Introdução
 
Aula 9 conceitos gerais de Rede
Aula 9   conceitos gerais de RedeAula 9   conceitos gerais de Rede
Aula 9 conceitos gerais de Rede
 
Aula 10 camada de rede
Aula 10   camada de redeAula 10   camada de rede
Aula 10 camada de rede
 
Aula 9 camada de rede
Aula 9   camada de redeAula 9   camada de rede
Aula 9 camada de rede
 
Aula01
Aula01Aula01
Aula01
 
Catalogo completo linha 5000
Catalogo completo linha 5000Catalogo completo linha 5000
Catalogo completo linha 5000
 
Gerência de Redes SNMP
Gerência de Redes SNMPGerência de Redes SNMP
Gerência de Redes SNMP
 
redes
redesredes
redes
 
Capítulo 15 conexões de lans, redes backbone e lans virtuais
Capítulo 15   conexões de lans, redes backbone e lans virtuaisCapítulo 15   conexões de lans, redes backbone e lans virtuais
Capítulo 15 conexões de lans, redes backbone e lans virtuais
 
Aula13
Aula13Aula13
Aula13
 
T2b1 08
T2b1 08T2b1 08
T2b1 08
 
Roteamento Intra-SA e Inter-SA
Roteamento Intra-SA e Inter-SARoteamento Intra-SA e Inter-SA
Roteamento Intra-SA e Inter-SA
 
Aula 6 a camada de rede
Aula 6   a camada de redeAula 6   a camada de rede
Aula 6 a camada de rede
 
Planeamento projecto redes
Planeamento projecto redesPlaneamento projecto redes
Planeamento projecto redes
 
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
IMEI Módulo 8 (Curso profissional de Gestão de Equipamentos Informáticos)
 
Aula15
Aula15Aula15
Aula15
 

Similar a Aula26

Modelo ozil camada de transporte
Modelo ozil camada de transporteModelo ozil camada de transporte
Modelo ozil camada de transporte
2lindos
 
Modelo ozil camada de transporte
Modelo ozil camada de transporteModelo ozil camada de transporte
Modelo ozil camada de transporte
2lindos
 
Modelos osi tcpip
Modelos osi tcpipModelos osi tcpip
Modelos osi tcpip
Suguha
 
Aula 5 camada de aplicacao
Aula 5   camada de aplicacaoAula 5   camada de aplicacao
Aula 5 camada de aplicacao
wab030
 
Redes de computadores II - 1.Arquitetura TCP/IP
Redes de computadores II - 1.Arquitetura TCP/IPRedes de computadores II - 1.Arquitetura TCP/IP
Redes de computadores II - 1.Arquitetura TCP/IP
Mauro Tapajós
 

Similar a Aula26 (20)

Aula22
Aula22Aula22
Aula22
 
Redes - Camada de Transporte
Redes - Camada de TransporteRedes - Camada de Transporte
Redes - Camada de Transporte
 
Camada de Transporte - TADS/REC 2014/2
Camada de Transporte - TADS/REC 2014/2Camada de Transporte - TADS/REC 2014/2
Camada de Transporte - TADS/REC 2014/2
 
Protocolos
ProtocolosProtocolos
Protocolos
 
Protocolos
ProtocolosProtocolos
Protocolos
 
Protocolos TCP IP UDP
Protocolos TCP IP UDPProtocolos TCP IP UDP
Protocolos TCP IP UDP
 
Protocolo UDP
Protocolo UDPProtocolo UDP
Protocolo UDP
 
projecto de rede computadores
projecto de rede computadoresprojecto de rede computadores
projecto de rede computadores
 
Aula29 extra
Aula29 extraAula29 extra
Aula29 extra
 
Redes de computador
Redes de computadorRedes de computador
Redes de computador
 
I psec
I psecI psec
I psec
 
Arquitetura tcp ip - 1
Arquitetura tcp ip - 1Arquitetura tcp ip - 1
Arquitetura tcp ip - 1
 
Aula30
Aula30Aula30
Aula30
 
Modelo ozil camada de transporte
Modelo ozil camada de transporteModelo ozil camada de transporte
Modelo ozil camada de transporte
 
Modelo ozil camada de transporte
Modelo ozil camada de transporteModelo ozil camada de transporte
Modelo ozil camada de transporte
 
Modelos osi tcpip
Modelos osi tcpipModelos osi tcpip
Modelos osi tcpip
 
Aula 5 camada de aplicacao
Aula 5   camada de aplicacaoAula 5   camada de aplicacao
Aula 5 camada de aplicacao
 
prot.ppt
prot.pptprot.ppt
prot.ppt
 
Unidade 1 redes de comp
Unidade 1   redes de compUnidade 1   redes de comp
Unidade 1 redes de comp
 
Redes de computadores II - 1.Arquitetura TCP/IP
Redes de computadores II - 1.Arquitetura TCP/IPRedes de computadores II - 1.Arquitetura TCP/IP
Redes de computadores II - 1.Arquitetura TCP/IP
 

Más de redesinforma (20)

Completas
CompletasCompletas
Completas
 
Redes2
Redes2Redes2
Redes2
 
Redes3
Redes3Redes3
Redes3
 
Redes osi
Redes osiRedes osi
Redes osi
 
Basico de protocolos_2009
Basico de protocolos_2009Basico de protocolos_2009
Basico de protocolos_2009
 
Questoes
QuestoesQuestoes
Questoes
 
Redes lista exercicios
Redes lista exerciciosRedes lista exercicios
Redes lista exercicios
 
Lista exerc conceitos-mod-ref
Lista exerc conceitos-mod-refLista exerc conceitos-mod-ref
Lista exerc conceitos-mod-ref
 
Exercícios para semestre
Exercícios para semestreExercícios para semestre
Exercícios para semestre
 
Exercicio parte1
Exercicio parte1Exercicio parte1
Exercicio parte1
 
Redes4
Redes4Redes4
Redes4
 
Redes5
Redes5Redes5
Redes5
 
Tcp transmission control protocol e ip internet protocol
Tcp  transmission control protocol e ip internet protocolTcp  transmission control protocol e ip internet protocol
Tcp transmission control protocol e ip internet protocol
 
Sincronas
SincronasSincronas
Sincronas
 
Semfio
SemfioSemfio
Semfio
 
Roteament
RoteamentRoteament
Roteament
 
Ri l5 052
Ri l5 052Ri l5 052
Ri l5 052
 
Ri a9
Ri a9Ri a9
Ri a9
 
Ri a8
Ri a8Ri a8
Ri a8
 
Ri a7
Ri a7Ri a7
Ri a7
 

Último

Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
TailsonSantos1
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
marlene54545
 

Último (20)

E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
 
Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptxMonoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
Monoteísmo, Politeísmo, Panteísmo 7 ANO2.pptx
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
GÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptxGÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptx
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
Seminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptxSeminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptx
 

Aula26

  • 1. User Datagram Protocol (UDP) Redes de Computadores ! Descrito na RFC 768 Instituto de Informática - UFRGS ! PDU do UDP é denominada datagrama ! Orientado a mensagem Protocolos de Transporte na Internet ! Protocolo de transporte da família TCP/IP não orientado à conexão UDP e TCP ! Por não executar controle de fluxo, de erro e de ordenamento, possui baixo custo de processamento Instituto de Informática - UFRGS ! Em relação ao IP agrega funcionalidade de multiplexação e demultiplexação e detecção de erros ! Processos origem e destino são identificados através de portas A. Carissimi -30-nov.-09 Aula 26 Redes de Computadores 2 Formato do datagrama UDP Campos do datagrama UDP 32 bits ! Porta fonte IP Header DATA ! Associada ao processo de origem Trasnferência Source Port Destination Port DATA ! Permite ao destino retornar mensagens ao processo de origem length Checksum DATA ! Porta destino ! Usada para demultiplexação das mensagens encapsuladas nos datagramas ! Tamanho Instituto de Informática - UFRGS Instituto de Informática - UFRGS Cabeçalho 802.3 ! Tamanho total do datagrama UDP (inclui cabeçalho + dados) Cabeçalho IP Data ! Checksum Cabeçalho UDP ! Verificação da integridade dos dados (complemento de 1 em 16 bits) A. Carissimi -30-nov.-09 A. Carissimi -30-nov.-09 ! Calculado sobre um pseudo-cabeçalho (IP destino, IP fonte, campo protocolo, tamanho TPDU e a constante zero), o cabeçalho UDP e os dados ! Dados Área de dados UDP PDU – Protocol Data Unit Área de dados IP Área de dados 802.3 Redes de Computadores 3 Redes de Computadores 4
  • 2. Razões para usar UDP Transmission Control Protocol (TCP) ! Melhor controle dos dados enviados ! Descrito nas RFCs 793, 1122, 1323, 2018 e 2581 ! Dados da aplicação são empacotados pelo UDP e enviados ao IP ! Protocolo orientado a conexão ! Cada mensagem aplicação deve caber em um datagrama UDP ! PDU do TCP é denominada de segmento ! Desejável que caiba em um datagrama IP para evitar fragmentação ! Mensagens geradas por processos são fragmentadas em segmentos TCP ! Não há estabelecimento de conexão ! Abordagem baseada em fluxo de dados (data stream) ! Não há atrasos (troca de T-PDUs e processamento) Instituto de Informática - UFRGS Instituto de Informática - UFRGS ! Trata os dados como uma cadeia continua de bytes ! Não há estados de conexão a monitorar/gerenciar ! Decide como agrupar os bytes em segmentos ! Não faz controle de perda, repetição, ordenamento e congestionamento ! Fornece comunicação confiável ponto a ponto entre dois processos ! Usado em aplicativos que toleram erros de entrega A. Carissimi -30-nov.-09 A. Carissimi -30-nov.-09 ! Cada conexão TCP envolve exatamente duas extremidades ! Cabeçalho simplificado ! Envio pode ocorrer entre uma ou outra direção de uma mesma conexão TCP Redes de Computadores 5 Redes de Computadores 6 Serviços oferecidos pelo TCP a aplicativos Segmento TCP Orientado a conexão 32 bits ! Transferência confiável de dados dentro de um canal lógico, a ! Controle de erro e fluxo IP Header conexão ! Urgent pointer ! Garantia de entrega e de ordem Ack Source Port Destination Port ! Interface data stream (visão da aplicação) Sequence Number ! Gerenciamento da conexão Push ! Os dados são tratados como uma seqüência de bytes sem estrutura alguma Rst Acknowledgment Number ! Não há noção de registro/bloco/pacote para envio ou recepção Syn Hlen Flags Window Cabeçalho 802.3 Fin Checksum Urgent Pointer Cabeçalho IP Instituto de Informática - UFRGS Instituto de Informática - UFRGS Options+padding Cabeçalho TCP Data A. Carissimi -30-nov.-09 A. Carissimi -30-nov.-09 Área de dados TCP Área de dados IP Área de dados 802.3 PDU – Protocol Data Unit Redes de Computadores 7 Redes de Computadores 8
  • 3. Os campos mais simples primeiro: hlen, flags... ...checksum, options e padding ! Hlen ! Checksum ! Fornece o tamanho do cabeçalho TCP em múltiplos de 4 bytes (palavra) ! Verificação da integridade dos dados (complemento de 1 em 16 bits) ! Tipicamente assume o valor 5 (20 bytes), exceto quando há options ! Calculado sobre um pseudo-cabeçalho (IP destino, IP fonte, campo protocolo, ! Flags tamanho da TPDU e a constante zero), o cabeçalho TCP e os dados ! Indica o propósito e o tipo do segmento ! Options ! URG: segmento transporta dados urgentes ! Lista variável de informações e parâmetros para o TCP Instituto de Informática - UFRGS Instituto de Informática - UFRGS ! ACK: segmento transporta uma confirmação positiva ! Usado principalmente para definir o tamanho máximo de um segmento (MSS) ! PSH: mecanismo push foi adotado no envio do segmento ! Padding ! RST: a conexão deve ser imediatamente abortada (reset) ! Usado para “arrendondar” o número de bytes do cabeçalho para este ter A. Carissimi -30-nov.-09 A. Carissimi -30-nov.-09 ! SYN: segmento transporta requisição de abertura de conexão sempre um número inteiro de palavras de 32 bits. ! FIN: segmento transporta requisição de encerramento da conexão Redes de Computadores 9 Redes de Computadores 10 Conexão TCP TCP: Controle de seqüência SYN ! Objetivo: Estabelecimento SYN/ACK ! Garantir que dados são recebidos na ordem em que foram emitidos (e sem ACK duplicação) ! O protocolo TCP faz isso através de um número de seqüência Campos sequence number, DATA ! Número inicial é negociado durante o estabelecimento da conexão Trasnferência acknowledgement number, window DATA/ACK ! Cada byte possui um número de seqüência Instituto de Informática - UFRGS Instituto de Informática - UFRGS e urgent pointer são usados nos ACK ! Indica sempre o primeiro byte de dados contido no segmento mecanismos de controle de erro e de fluxo (ordenamento). ! É o número que está no campo sequence number (SN) FIN ! Usado para manter ordenamento e detectar duplicação A. Carissimi -30-nov.-09 A. Carissimi -30-nov.-09 Encerramento ACK FIN 150 151 198 199 200 201 348 349 350 351 448 449 ACK Segmento 150 Segmento 200 Segmento 350 Redes de Computadores 11 Redes de Computadores 12
  • 4. TCP: Controle de erros Controle de erros (cont.) ! Objetivo: ! Baseado em: ! Garantir o recebimento correto de T-PDUs ! Checksum: detecção de erros ! No protocolo TCP é baseado em ! timeout : segmentos não confirmados são reenviados ! Confirmação positiva (ACK) ! confirmações positivas ! Destino envia mensagem acusando correto recebimento de um segmento ! Ações ! Confirmação (ACK) pode ser enviada em pigbacking com o fluxo de ! Segmento com erro → descartado Instituto de Informática - UFRGS Instituto de Informática - UFRGS dados no sentido inverso ! Confirmação acumulativa (similar ao go-back N) ! Segmento perdido → retransmitido por time-out ! Diversos segmentos consecutivos podem ser confirmados por uma única ! Fora de ordem → ordena no buffer, confirma após ordenado (sem perdas) mensagem ! Duplicados → descarta A. Carissimi -30-nov.-09 A. Carissimi -30-nov.-09 ! RFC 2018, permite o reconhecimento seletivo (similar ao selective repeat) ! Retransmissão por time-out Redes de Computadores 13 Redes de Computadores 14 TCP: Confirmação positiva TCP: Retransmissão ! Baseado no valor do campo acknowledge number (ACK) ! O protocolo TCP emprega timeout por segmentos ! Indica o número de seqüência do próximo byte que espera receber ! Processo origem dispara um timeout para cada segmento enviado ! Informa o correto recebimento dos bytes com número de seqüência inferiores ! Segmento é retransmitido quando a origem não recebe a confirmação antes ao da mensagem de confirmação da expiração do temporizador ! O bit de ACK do campo de flags deve estar ativo para dar significado ao ! Tratamento da duplicação é feito pelo sequence number campo acknowledgement number ! Destino espera segmento com número x, qualquer segmento com número Instituto de Informática - UFRGS Instituto de Informática - UFRGS inferior é considerado duplicado e é descartado 150 151 198 199 200 201 348 349 350 351 448 449 A. Carissimi -30-nov.-09 A. Carissimi -30-nov.-09 SN=150 SN=200 SN=350 ACK=200 ACK=350 ACK=450 Redes de Computadores 15 Redes de Computadores 16
  • 5. TCP: Controle de fluxo Campo window: controle de fluxo ! Baseado em um esquema de crédito (genérico) ! Origem do segmento informa o tamanho do seu buffer de recepção ! Variação de janela deslizante onde os buffers de transmissão e recepção são (janela) a partir do último byte que confirmou de tamanho variável (blocos múltiplos de bytes) ! RcvWindow = RcvBuffer – [ LastByteRcvd – LastByteRead ] ! Emissor tem crédito para enviar até n blocos de bytes ao destino ! Segmento ao ser aceito (processado), o destino renova a quantidade de ! Questão paralela: como se sabe o tamanho da área de dados? créditos por um valor c (0 < c ≤ n) ! Tamanho TPDU (informado no IP) – Tamanho do cabeçalho TCP Instituto de Informática - UFRGS Instituto de Informática - UFRGS ! Créditos podem ser renegociados ! Máximo teórico é 65535 – 20 – 20, mas é definido através do MSS (Maximum ! No protocolo TCP Segment Size) divulgado por um host no momento do estabelecimento da ! Janela deslizante orientada a byte, i.é., cada byte se comporta como um buffer conexão A. Carissimi -30-nov.-09 A. Carissimi -30-nov.-09 ! Tamanho máximo da janela é negociado no estabelecimento da conexão ! Valor default: 536 bytes ! Confirmações (ACKs) servem renovar os créditos ! Ethernet: 1460 bytes Redes de Computadores 17 Redes de Computadores 18 Transferência de dados: urgent data Transferência de dados: mecanismo data stream push (bit PSH) ! Flag URG indica a presença de dados “urgentes” no segmento ! Buffer de transmissão do TCP tenta otimizar uso da rede ! Usuário (processo) destino decide o que fazer ! Objetivo é diminuir a quantidade de segmentos na rede, bufferizando os ! O campo urgent pointer sinaliza a posição em que termina os dados urgentes dados e enviando quando eles atinjam uma determinada quantidade ! Problema: prejudicar tempo de resposta da aplicação (ex. telnet) cabeçalho ! Bit PSH ! Processo origem pode solicitar a transmissão de dados até esse momento Instituto de Informática - UFRGS Instituto de Informática - UFRGS T-PDU dados urgent ! Força a geração de um segmento com os dados disponíveis pointer ! Indica que a entidade de transporte deve repassar imediatamente o segmento para o processo destino A. Carissimi -30-nov.-09 A. Carissimi -30-nov.-09 ! Possibilidade raramente usada no TCP ! Encaminha todos os bytes que estão no buffer e não apenas os do segmento identificado com o PSH ! Necessário que o processo destino priorize os dados (não seria responsabilidade da aplicação?) Redes de Computadores 19 Redes de Computadores 20
  • 6. Conexão na presença de erros: problemas Problema: segmentos de conexões anteriores ! Estabelecimento da conexão ! Problema: ! Baseado em dois TPDUs SYN (two way handshake) ! T-PDU de uma conexão j chega em uma ! Perda de qualquer um dos SYN provoca retransmissão (tratar duplicados) conexão j+1 ! Sistema se resincroniza ! Chegada atrasada da T-PDU SYN provoca interpretação erradas de conexão ! Transferência de dados: controle de fluxo e de erro Instituto de Informática - UFRGS Instituto de Informática - UFRGS ! Solução: ! TPDUs ainda válidos de conexões anteriores chegando atrasadas ! Iniciar cada conexão com um número de ! Encerramento da conexão seqüência a partir do último da conexão ! Chegada de pedidos de encerramento atrasados mais recente A. Carissimi -30-nov.-09 A. Carissimi -30-nov.-09 ! Encerramento feito antes de receber todos os segmentos de dados ! TPDUs SYN incluem números de seqüência ! SYN i Redes de Computadores 21 Redes de Computadores 22 Mais problemas: atraso na T-PDU de controle Three-way handshake ! T-PDU que chega atrasado é um T-PDU SYN i ! Solução para problema do two-way handshake ! Formalmente provado que a troca de 3 mensagens é condição necessária e suficiente para assegurar um acordo não ambíguo entre duas partes ! Mesmo considerando perdas, duplicação e atrasos ! Basicamente consiste em cada lado confirmar o recebimento de T- Instituto de Informática - UFRGS Instituto de Informática - UFRGS PDUs de abertura de conexão e número de seqüência A. Carissimi -30-nov.-09 A. Carissimi -30-nov.-09 B pensa que está abrindo conexão que espera números de seqüência a partir de i e responde a partir de j. A considera que a conexão é com k e j. Ao chegar segmento com k, B descarta como erro por não pertencer a conexão negociada!! Redes de Computadores 23 Redes de Computadores 24
  • 7. Estabelecimento de conexão Ainda problemas: Encerramento de conexão ! Three way handshake ! Baseado em duas T-PDUs FIN (two way handshake) ! Entre pares de porta ! Apresenta problemas similares ao estabelecimento da conexão Host 1 Host 2 ! Perdas de TPDUs e TPDUs atrasadas ! Problema: envia SYN seq=x (SN=i; m) recebe SYN (FIN) Instituto de Informática - UFRGS Instituto de Informática - UFRGS envia SYN seq=y, ACK x+1 recebe SYN seq=y, ACK x+1 PERDA !!! envia SEQ x+1, ACK y+1 ! Solução: numerar TPDUs FIN A. Carissimi -30-nov.-09 A. Carissimi -30-nov.-09 recebe SEQ=x+1, ACK y+1 (SN=i; m) Espera dados chegarem antes (FIN i+m+1) de encerrar a conexão. Posterga! Redes de Computadores 25 Redes de Computadores 26 Encerramento de conexão simétrico Diagrama de estados conexão TCP Lado Cliente Lado Servidor ! Antes de receber a confirmação do encerramento (TPDU FIN da outra entidade) ainda recebe TPDUs de dados CLOSED CLOSED Espera 30s Recebe ACK Envia SYN Envia SYN FIN seq =x Recebe FIN seq = x TIME_WAIT SYN_SENT LAST_ACK LISTEN Envia ACK = x+1 Recebe ACK = x + 1 Recebe SYN+ACK Recebe SYN Instituto de Informática - UFRGS Instituto de Informática - UFRGS Recebe FIN Envia FIN Envia ACK Envia SYN+ACK ... Envia ACK Envia FIN seq = y ACK = x+1 Recebe FIN seq=y ACK=x+1 FIN_WAIT_2 ESTABLISHED CLOSE_WAIT SYN_RCVD Envia ACK=y+1 A. Carissimi -30-nov.-09 A. Carissimi -30-nov.-09 Envia FIN Recebe ACK Recebe ACK=y+1 Recebe ACK Recebe FIN FIN_WAIT_1 Envia ACK ESTABLISHED Redes de Computadores 27 Redes de Computadores 28
  • 8. Instituto de Informática - UFRGS Instituto de Informática - UFRGS A. Carissimi -30-nov.-09 A. Carissimi -30-nov.-09 Redes de Computadores 29 Redes de Computadores 30 Análise da sessão ftp Recuperação de falhas (crash recovery) [SYN] seq=0 MSS=1460 ! Em caso de falhas as informações de estado de uma conexão são perdidas por um lado, o outro mantém meia-conexão [SYN, ACK] seq=0, ack=1, W=5840, MSS=1460 CRASH CRASH [ACK] seq=1, ack=1 (SN=i, m) (SN=i, m) 17520 220 FTP server Ready ... (23 bytes) Time-out Time-out REBOOT Instituto de Informática - UFRGS Instituto de Informática - UFRGS [ACK] seq=1, ack=1 17497 (SN=i, m) Time-out [ACK] seq=1, ack=24 (SN=i, m) Time-out (SN=i, m) A. Carissimi -30-nov.-09 A. Carissimi -30-nov.-09 [ACK] seq=1, ack=24 (RST i) USER asc.. (10 bytes) REBOOT [ACK] seq=24, ack=11 Reseta a meia conexão por excesso de Reseta a meia conexão por receber retransmissões comando de reset (RST) Redes de Computadores 31 Redes de Computadores 32
  • 9. Leituras complementares ! Stallings, W. Data and Computer Communications (6th edition), Prentice Hall 1999. ! Capítulo 15, seção 15.3, 15.4 ! Tanenbaum, A. Redes de Computadores (4a edição), Campus, 2000. ! Capítulo 6, seção 6.1, 6.2 e 6.3 Instituto de Informática - UFRGS ! Carissimi, A.; Rochol, J; Granville, L.Z; Redes de Computadores. Série Livros Didáticos. Bookman 2009. ! Capítulo 6, seções 6.4 e 6.5 A. Carissimi -30-nov.-09 Redes de Computadores 33