Академический Документы
Профессиональный Документы
Культура Документы
Introduo
Sua funo oferecer transporte de dados confivel e efetivo entre uma mquina origem at uma mquina destino Dois tipos de servio de transporte: orientado a conexo e no-orientado a conexo O estabelecimento de conexo (nestes tipos de servios) garante que:
Um lado saiba da existncia do outro Haja negociao de parmetros Sejam alocados recursos da entidade de transporte
Protocolos de Transporte
Camada de enlace: comunicao entre vizinhos diretamente conectados na mesma tecnologia de rede Camada de Transporte: comunicao fim-a-fim atravs de diversas tecnologias de rede
Multiplexao
Vrias aplicaes usam o mesmo protocolo de transporte para suas conexes Tendncia normal ao uso de vrias conexes de transporte sobre um mesmo circuito virtual Uso de vrias conexes para um mesmo fluxo de dados visando aumentar a taxa de bits total
Estabelecimento de Conexes
Estabelecimento de conexes: problemas com pacotes duplicados pela rede Soluo: handshakede 3 passos
Desconexo
Desconexo no um problema to simples como parece Normalmente usado uma desconexo de 3 passos com temporizadores
Desconexo assimtrica: interrupo abrupta da comunicao com possvel perda de dados Desconexo simtrica: assume duas conexes unidirecionais e exige que cada uma seja desconectada em separado
Protocolos de Transporte
Implementados nos hosts finais e no nos roteadores Controle de fluxo: necessrio como na camada de enlace de dados, s que fim-a-fim Diferena bsica: numa pilha de transporte podem existir vrias conexes ao mesmo tempo exige disponibilidade de buffers no um esquema independente para cada link (o espao de memria nico para todas as conexes) Uma possvel soluo janelas deslizantes de tamanho varivel e ajustado pelo transmissor
Protocolos de Transporte
Protocolo TCP
Baseado na transferncia de sequncias de bytes entre buffers de transmisso e recepo Bem projetado: no mudou muito desde sua apario nos anos 60 Suporta aplicaes bsicas como TELNET, FTP e correio eletrnico Especifica o formato dos dados e confirmaes usadas na transferncia daqueles, garantindo a correta entrega dos dados de clientes a servidores e vice-versa Implementa suporte para deteco de erros e disparo de retransmisses quando necessrio Permite que mltiplas aplicaes num sistema possam se comunicar concorrentemente tratando a operao multiplexada
Conexes TCP
Baseado no conceito de sockets (endpoints) Um socket em TCP identificado por uma porta e o endereo IP da mquina Um mesmo socket pode suportar vrias conexes ao mesmo tempo No suporta multicasting e broadcasting (sempre ponto-a-ponto e full-duplex) Cada conexo identificada pelos nmeros dos sockets nas duas pontas Sockets tambm o nome de uma biblioteca de subrotinas que prov acesso s facilidades TCP/IP
Software TCP
Cabealho TCP
Cabealho TCP
Portas (origem e destino) Sequence number: do primeiro byte deste segmento Acknowledgement number: prximo byte a receber Data Offset - Header lenght: comprimento do cabealho em palavras de 32 bits
Cabealho TCP
Urgent Pointer: indica at onde vo os dados considerados urgentes neste segmento (out-of-band data) Window Size: tamanho da janela sendo usada. Caso seja 0 significa interromper a transmisso de mais segmentos temporariamente at o envio de valor maior que zero novamente De maneira semelhante aos cabealhos IPv4, possvel se ter cabealhos opcionais no TCP
Cabealho TCP
Bits de Controle:
Desconexo TCP
Controles do TCP
Segmentos vazios (sem dados) keepalive podem ser usados para confirmaes e controle Controle de congestionamento implicitamente feito, j que a soluo baixar a taxa de dados que entra na rede Este controle feito com base nos limites do receptor (janela TCP) e da rede (janela de congestionamento) O controle de temporizadores no to simples (as respostas da rede IP dependem de vrios fatores)
Piggybacking TCP
Dados de A para B ACK de B para A
SEQ
ACK
WIN
A
N SEQ ACK WIN
Dados de B para A
ACK de A para B
Receiver 0
etc.
Receiver 0
Full
ACK = 4097 WIN = 0
ACK = 4097 WIN = 1
etc.
Congestion avoidance
Aps o threshold a curva cresce de forma linear Este estado chamado de congestion avoidance Nele, a CW aumenta de forma linear, aumentando em 1, desde que todos os segmentos na janela tenham sido confirmados suavizao da curva
Timers TCP
Controlam a temporizao do protocolo algo j visto que difcil num protocolo de transporte
Timer de retransmisso o quanto se espera pela confirmao de um segmento (TCP usa um algoritmo que recalcula o timer pelo RTT) Algoritmo de Karn dobra o timer de retransmisso e no recalcula o RTT em segmentos retransmitidos evitar reclculos errados do RTT (o ack que chegou do segmento original ou da retransmisso?) Timer de persistncia o quanto se espera para se poder transmitir de novo (window 0) Timer de keepalive quando a conexo ficar em silncio, checa de o outro lado est l (controverso)
Limitaes TCP
Cabealhos extensos para um protocolo de transporte Checksum falho para integridade a nvel de transporte e redundante quando se usa protocolos de camada 2 confiveis (como HDLC ou Ethernet) A funcionalidade de dados urgent no uma soluo completa de sinalizao out-of-band por que submetida ao mesmo controle de fluxo dos dados normais Entrega rpida de trfego de mensagens deve usar a opo de push
Protocolo UDP
Utilizado quando: necessrio o envio de mensagens de multicast ou broadcast O overhead gerado por procedimentos de conexo injustificado ou no tolerado pela aplicao em uso Aplicaes de amostragem de dados (Ex.: sensores) Servios request-response (a aplicao toma a responsabilidade de verificar mensagens que no chegam) Aplicaes de tempo-real onde temporizao o mais importante
Cabealho UDP
Portas de origem e destino Lenght: o comprimento de todo o segmento UDP Checksum: calculado sobre todo o segmento e mais o mesmo pseudo-cabealho usado em TCP
O que um Socket?
Uma estrutura de dados que representa um ponto final na comunicao entre aplicaes Suas facilidades normalmente so disponiblizadas numa biblioteca (API)
Biblioteca Sockets
Primitivas na forma de uma biblioteca que oferece servios bsicos de transporte
Sockets