61
Camada de Transporte Profº Fábio Eder

Aula 5 - Camada de Transporte

Embed Size (px)

Citation preview

Page 1: Aula 5 - Camada de Transporte

Camada de Transporte

Profº Fábio Eder

Page 2: Aula 5 - Camada de Transporte

Camada de Transporte

Fornecem comunicação lógica entre processos de aplicação executando em diferentes hospedeiros os protocolos de transporte são executados nos sistemas finais, ex:

Transmissor: quebra as mensagens da aplicação em segmentos, repassa-os para a camada de rede;

Receptor: remonta as mensagens a partir dos segmentos, repassa-as para a camada de aplicação;

Os protocolos mais importantes desta camada e que tratam das aplicações de Internet são: TCP e UDP

Page 3: Aula 5 - Camada de Transporte

aplicação transporte rede enlace física

rede enlace física

aplicação

Transporteredeenlace

física

rede enlace física

rede enlace física

redeenlacefísica

redeenlacefísica

transporte lógico fim a fim

Fonte: Redes de Computadores e a Internet – Kurose, 2010

Page 4: Aula 5 - Camada de Transporte

Camada de Transporte X Camada de Rede

Camada de rede: comunicação lógica entre hospedeiros (hosts);

Camada de transporte: comunicação lógica entre os processos;

Depende e estende serviços da camada de rede.

Page 5: Aula 5 - Camada de Transporte

Camada de Transporte X Camada de Rede

Analogia doméstica:12 crianças enviando cartas para 12 crianças

processos = criançasmsg da aplicação = cartas em envelopeshospedeiros = casasprotocolo de transporte = Ana e Joãoprotocolo da camada de rede = serviço postal

Page 6: Aula 5 - Camada de Transporte

Camada de Transporte na Internet

1 - Entrega confiável, ordenada : TCPcontrole de congestionamentocontrole de fluxoestabelecimento de conexão (“setup”)

2 - Entrega não confiável, não ordenada: UDPextensão sem “frescuras” do “melhor esforço” do IP

3 - Serviços não disponíveis: garantias de atraso máximogarantias de largura de banda mínima

Page 7: Aula 5 - Camada de Transporte

Camada de Transporte na Internet

A camada de REDE na Internet:

Protocolo IP como principal protocolo, que provê a comunicação lógica entre hospedeiros;

IP oferece serviço de melhor esforço para levar os segmentos entre os hospedeiros comunicantes, mas sem garantia;

Page 8: Aula 5 - Camada de Transporte

Camada de Transporte na Internet

A responsabilidade fundamental dos protocolos TCP e UDP é ampliar o serviço de entrega entre dois processos que rodam nos sistemas finais;

A ampliação da entrega de processos entre os nós finais é denominada multiplexação e demultiplexação de camada de transporte;

Estes dois serviços mínimos de camada de transporte são os únicos que o UDP fornece;

O UDP, como o IP não são serviços confiáveis, uma vez que não garantem que os dados enviados por um processo cheguem.

Page 9: Aula 5 - Camada de Transporte

Camada de Transporte na Internet

O TCP oferece vários serviços adicionais às aplicações;

Ele oferece um serviço de transferência confiável de dados;

Utiliza controle de fluxo, números de sequência, reconhecimentos e temporizadores;

Este protocolo assegura que os dados sejam entregues do processo remetente ao processo destinatário corretamente e em ordem.

Page 10: Aula 5 - Camada de Transporte

Camada de Transporte na Internet

Assim, o TCP converte o serviço não confiável do IP entre sistemas finais em um serviço confiável de transporte de dados entre processos;

Ele também fornece controle de congestionamento, evitando que qualquer outra conexão TCP inunde os enlaces e comutadores;

Em princípio, o TCP permite que suas conexões em um ambiente congestionado, mantenham-se em pé de igualdade a largura de banda.

Page 11: Aula 5 - Camada de Transporte

Segmento TCP

Porta de origem Porta de destino

Número de seqüência

Número do reconhecimento

TC

Checksum

0 8 16 247 15 23 31

Opções

Dados (opcionais)

Ponteiro de urgência

Reservado Tamanho da janelaFIN

SY

N

RS

T

PS

H

AC

K

UR

G

Page 12: Aula 5 - Camada de Transporte

Datagrama UDP

Porta de origem Porta de destino

Tamanho do datagrama

0 8 16 247 15 23 31

Dados (opcionais)

Checksum

Page 13: Aula 5 - Camada de Transporte

Multiplexação e Demultiplexação

Socket: É um elemento de software que provê uma interface de rede para a aplicação;

São portas pelas quais os dados passam da rede para o processo e vice-versa (Kurose, 2010)

Através de um socket podemos realizar várias operações, como exemplo:

Estabelecer conexões entre máquinas;Enviar e receber dados;Encerrar conexões;Esperar por conexões em determinada porta.

Page 14: Aula 5 - Camada de Transporte

3: Camada de Transporte

Multiplexação/Demultiplexação

Entrega dos segmentos recebidos ao socket correto

Demultiplexação no receptor: reúne dados de muitos sockets, envelopa os dados com o cabeçalho (usado posteriormente para a demultiplexação)

Multiplexação no transm.:

Fonte: Redes de Computadores e a Internet – Kurose, 2010

Page 15: Aula 5 - Camada de Transporte

Computador recebe os datagramas IP– cada datagrama possui os

endereços IP da origem e do destino

– cada datagrama transporta 1 segmento da camada de transporte

– cada segmento possui números das portas origem e destino (lembre: números de portas bem conhecidas para aplicações específicas)

• O hospedeiro usa os endereços IP e os números das portas para direcionar o segmento ao socket apropriado

Como funciona a demultiplexação

porta remetenteporta receptor

32 bits

dados daaplicação(mensagem)

outros campos do cabeçalho

formato de segmento TCP/UDP

Fonte: Redes de Computadores e a Internet – Kurose, 2010

Page 16: Aula 5 - Camada de Transporte

Portas

Cada número de porta é um número de 16 bits na faixa de 0 a 65535;

As portas com valores entre 0 e 1023 são denominadas portas baixas, que são restritas e reservadas por protocolos da camada de aplicação como: http-80; ftp-21; telnet-23; https-443;

Definidas pela pela RFC 1700 e atualizada pela RFC-3232 – www.iana.org;

Varredura de porta com o comando “nmap”

Page 17: Aula 5 - Camada de Transporte

NMap

NMAP – Sintaxe: nmap <parâmetros> <alvo> -p <portas>

O alvo = endereço IP do host ou rede que se deseja escanear;

A opção -p = especifica as portas ou faixas de portas para análise;

Page 18: Aula 5 - Camada de Transporte

NMap

Os parâmetros são ajustados de acordo com o que se deseja obter, os principais são:

-sT - Com esse parâmetro é feito um escaneamento através de tentativas de conexão TCP. Essa forma é muito fácil de ser identificada por firewalls e IDS;

-sS – Assim, a tentativa será com pacotes TCP com a flag SYN ligada, ou seja, como apenas uma requisição de conexão. Essa técnica dificulta um pouco a detecção;

Page 19: Aula 5 - Camada de Transporte

NMap

Os parâmetros são ajustados de acordo com o que se deseja obter, os principais são:

-sP - Com essa opção o escaneamento será feito através de pacotes ICMP echo request. Verifica apenas se o host está ativo;

-sU - Envia pacotes UDP com 0 byte para determinar o estado dessas portas;

Page 20: Aula 5 - Camada de Transporte

NMap

Os parâmetros são ajustados de acordo com o que se deseja obter, os principais são:

-sO - É usado para tentar determinar os protocolos suportados pelo host;

•-O - Com esse parâmetro é feito uma tentativa de determinar o sistema operacional através de uma técnica conhecida como Active FingerPrint.

Page 21: Aula 5 - Camada de Transporte

NMap

Vamos a prática: Teste de pacotes SYN - sincronização, nas portas de 1 a

100:

nmap -sS [endereço IP] -p 1-100

Page 22: Aula 5 - Camada de Transporte

NMap

Agora, vamos mapear um endereço de rede para determinar serviços ativos em mais de um host, basta informar o endereço da rede, como no exemplo:

nmap -sS [endereço ip]/24 -p 1-150

Page 23: Aula 5 - Camada de Transporte

NMap

Podemos também identificar o Sistema OperacionalAgora, vamos mapear um endereço de rede para determinar serviços ativos em mais de um host, basta informar o endereço da rede, como no exemplo:

nmap -sS [endereço ip]/24 -p 1-150

Page 24: Aula 5 - Camada de Transporte

UDP: User Datagram Protocol

Page 25: Aula 5 - Camada de Transporte

Simples;Menor;Mais rápido;Utiliza portas para a troca de informações;

CARACTERÍSTICAS - UDP

Page 26: Aula 5 - Camada de Transporte

UDP: User Datagram Protocol [RFC 768]

• Protocolo de transporte da Internet mínimo, “sem gorduras”,

• Serviço “melhor esforço”, segmentos UDP podem ser:– perdidos– entregues à aplicação fora de

ordem• sem conexão:

– não há “setup” UDP entre remetente, receptor

– tratamento independente de cada segmento UDP

Por quê existe um UDP?• elimina estabelecimento de

conexão (o que pode causar retardo)

• simples: não se mantém “estado” da conexão nem no remetente, nem no receptor

• cabeçalho de segmento reduzido

• Não há controle de congestionamento: UDP pode transmitir tão rápido quanto desejado

Page 27: Aula 5 - Camada de Transporte

Mais sobre UDP

• muito utilizado para apls. de meios contínuos (voz, vídeo)– tolerantes a perdas– sensíveis à taxa de transmissão

• outros usos de UDP (por quê?):– DNS (nomes)– SNMP (gerenciamento)

• transferência confiável com UDP: acrescentar confiabilidade na camada de aplicação– recuperação de erro específica à

aplicação!

porta origem porta dest.

32 bits

Dados de aplicação (mensagem)

Formato do segmento UDP

comprimento checksum

Comprimento embytes do

segmento UDP,incluindo cabeçalho

soma de verificação

Page 28: Aula 5 - Camada de Transporte

Permite comunicação entre aplicações;Não orientado à conexão;Não fornece garantia de entrega e nem

verificação de dados;. Alternativa eficiente tratando-se de dados que

necessitam de certa velocidade como áudio e vídeo.

PROTOCOLO DE COMUNICAÇÃO UDP

Page 29: Aula 5 - Camada de Transporte

Fluxo de dados em tempo real – vídeo e voz; Jogos de computadores;Mensagens com constante retransmissão;Modelos Pergunta – Resposta;

APLICAÇÕES DO PROTOCOLO UDP

Page 30: Aula 5 - Camada de Transporte

EXEMPLO: MONITORAÇÃO REMOTA

Page 31: Aula 5 - Camada de Transporte

• Serviço NFS (compartilhamento de discos remotos) – Invasor com IP falso pode ter acesso ao servidor;

• Protocolo RIP (utilizado por roteadores para detectar melhor caminho) – As informações não são checadas portanto um invasor pode enviar informações falsas e gravar os pacotes enviados.

FRAGILIDADES APRESENTADAS PELO UDP

Page 32: Aula 5 - Camada de Transporte

TIPOS DE ATAQUES MAIS COMUNS COM UDP

• IP Spoofing – troca do IP de origem;• SYN Flood – processo que sobrecarrega a

máquina;• Fraggle – chuva de pacotes através de

broadcast;• New Teardrop – travamento das máquinas

pois falsifica tamanho do pacote;• WORM W32.SQLEXP – ataque de negação de

serviço.

Page 33: Aula 5 - Camada de Transporte

O protocolo UDP, apesar de simples, faz a entrega de mensagens independentes, designadas por datagramas, entre aplicações ou processos em sistemas host, onde a rapidez na transmissão é prioridade.

CONCLUSÃO

Page 34: Aula 5 - Camada de Transporte

Serviço sem conexão Serviço orientado por conexão

Não garante a entrega dos dados Entrega garantida através de confirmações

A confiabilidade necessária ao transporte de dados é oferecida

pelas aplicações.

Os programas que usam TCP têm garantia de transporte confiável

de dados.

RápidoLento devido a quantidade de

informações necessárias

PROTOCOLOS:

UDP X TCP

Page 35: Aula 5 - Camada de Transporte

• Conceito idêntico ao conceito de portas TCP.• Permite a um processo de aplicação se

associar a uma porta• É através do uso de portas que o Sistema

Operacional sabe a qual programa se destina cada pacote UDP.

PORTAS DE COMUNICAÇÃO

Page 36: Aula 5 - Camada de Transporte

PROTOCOLOS QUE UTILIZAM UDP

Page 37: Aula 5 - Camada de Transporte

PORTAS DE COMUNICAÇÃO

Page 38: Aula 5 - Camada de Transporte

PORTAS DE COMUNICAÇÃO

Page 39: Aula 5 - Camada de Transporte

TCP: Transmission Control Protocol

Page 40: Aula 5 - Camada de Transporte

Protocolo TCP

Full-duplex;Orientado por conexão;Transmissão confiável de dados;Garantia de transmissão de dados corretos e na

ordem adequada;Detecção e correção de erros;Retransmissão de dados;Garantia de não-duplicação.

Page 41: Aula 5 - Camada de Transporte

Introdução

Protocolos de aplicação que usam o TCP:

Telnet;FTP;SMTP;IMAP;POP.

Page 42: Aula 5 - Camada de Transporte

Cabeçalho TCP

Page 43: Aula 5 - Camada de Transporte

Cabeçalho TCP

Page 44: Aula 5 - Camada de Transporte

Cabeçalho TCP

Porta origem e destino = TCPNúmero de Seqüência

A partir do primeiro byte de dados transmitido;Usado para que o processo TCP no destino possa

guardar os segmentos recebidos na ordem correta;Quando a conexão é estabelecida existe um tempo

de sincronismo para informação do número do pacote;

Necessários pq o TCP não foi projetado para entregar dados como pacotes independentes;

TCP entrega dados como fluxo contínuo de bytes;

Page 45: Aula 5 - Camada de Transporte

Cabeçalho TCP

Número de confirmação de recebimento:Verificar o recebimento dos dados corretos;Confirmação positiva com retransmissão;Se ocorrer timeout, a origem considera que o

pacote não chegou e retransmite;Número neste campo é o número do próximo dado

que o destino espera receber;Se este campo é usado o bit ACK do campo de

controle é ajustado.

Page 46: Aula 5 - Camada de Transporte

Cabeçalho TCP

ControleOffset:

Especifica o tamanho do cabeçalho TCP – mínimo 20 bytes;

Campo com 4 bits;Reservado:

Para uso futuro;Campo com 6 bits.

Page 47: Aula 5 - Camada de Transporte

Cabeçalho TCP6 flags (1 bit cada)

URG – dados urgentes, devem ser processados pelo destino o quanto antes;

ACK – segmento contém dados no campo de confirmação;PSH – inicializado por um processo da camada superior e

interpretado como “Transfira todos os dados da fila ao destino imediatamente”;

RST – reset, usado quando um evento causa uma desconexão indesejada. Termine a conexão imediatamente;

SYN – segmento contém dados no campo de número de seqüência;

FIN – terminar a conexão TCP.

Page 48: Aula 5 - Camada de Transporte

Cabeçalho TCPJanelaNúmero máximo de bytes que o destino é capaz de aceitar;Campo de 2 bytes;Controle de fluxo fim-a-fim;Habilita o destinatário a controlar o fluxo de bytes do

remetente;Pode ser mudado a qualquer momento durante a conexãoJanela = 0, remetente para de transmitir;Remetente e destinatário podem prover informações de

controle de fluxo via campo Janela

Page 49: Aula 5 - Camada de Transporte

Cabeçalho TCP

Checagem de soma

Checar se o segmento transmitido é válido;

Campo de 2 bytes;

Cabeçalho do TCP + dados;

Page 50: Aula 5 - Camada de Transporte

Cabeçalho TCPApontador de urgência

Solicita ao destino informar ao programa de aplicação destino que a informação que está sendo enviada precisa ser processada;

Finalização de sessões Telnet;2 bytes;Usado junto com a flag URG;

Opções e apoioOpções: Quais são requeridas por um processo TCP;

Tamanho máximo do segmentoApoio: Preencher os bits restantes de um campo com 0s para

que sejam múltiplos de 32

Page 51: Aula 5 - Camada de Transporte

Conexão TCP

TCP é orientado à conexãoConexão lógica deve ser estabelecida a priori entre

os nós, antes da transmissão dos dados;

Para tal, TCP usa um protocolo conhecido como 3-way handshake

Cliente requere conexão;Servidor aceita;Cliente confirma.

Page 52: Aula 5 - Camada de Transporte

Finalização da Conexão TCP

Finalizada quando uma máquina não possui mais nada a ser transmitido;

TCP é full-duplexConexão pode ser finalizada em uma direção e

permanecer aberta em outra direção;“A” termina conexão, porém “B” continua

transmitindo.

Page 53: Aula 5 - Camada de Transporte

Confiabilidade

Números de seqüência e confirmaçãoSempre que uma máquina recebe um segmento

TCP válido, ela envia uma confirmação como parte da resposta;

Se um segmento válido não é recebido, nenhuma confirmação é enviada.

Page 54: Aula 5 - Camada de Transporte

Confiabilidade

TCP é do tipo confirmação positiva com retransmissão;

O uso dos números de seqüência também possibilita a remontagem dos segmentos de dados na ordem correta quando estes não chegam em seqüência.

Page 55: Aula 5 - Camada de Transporte

Controle de FluxoUso do campo Janela;Controle de fluxo fim-a-fim:

Em cada extremidade do link, o TCP mantém buffers para envio e recebimento

Buffer de envio contém:Dados a ser transmitidos;Dados que foram transmitidos mas não confirmados;

Buffer de recebimento contém:Dados recebidos na ordem correta, mas ainda não

processados;Dados que chegaram fora de ordem, reordenar.

Page 56: Aula 5 - Camada de Transporte

Controle de Fluxo

Através do campo Janela o receptor avisa o tamanho da janela;

Menor ou igual ao tamanho do buffer disponível;

No lado do receptor deve-se levar em consideração a quantidade de dados que ocupa o buffer a cada momento.

Page 57: Aula 5 - Camada de Transporte

Controle de Fluxo

Na origem deve-se calcular um tamanho de janela que limita a quantidade de dados a ser enviada;

Em função do tamanho de janela enviado pelo receptor e a diferença entre a quantidade de dados enviada e a quantidade de dados já confirmada.

Page 58: Aula 5 - Camada de Transporte

Controle de Fluxo

Exemplo:Janela do receptor = 1000 bytes;Dados já transmitidos = 700 bytes;500 bytes já confirmados;Tamanho da janela a ser enviada é:

1000 – (700 – 500) = 800 bytes;Emissor pode continuar enviando desde que o número

total de bytes não exceda 800;Emissor deve cuidar para que a aplicação não gere mais

dados a serem transmitidos do que suporta o buffer;

Page 59: Aula 5 - Camada de Transporte

Controle de FluxoO buffer é dinâmico;

Quando o buffer do receptor está cheio, ele adverte para um tamanho menor;

Quando existe mais espaço, ele adverte para um tamanho maior de janela;

Durante todo o tempo, o emissor calcula o tamanho da janela a ser transmitida.

Page 60: Aula 5 - Camada de Transporte

Controle de Fluxo

Se emissor é advertido de janela com tamnho 0, está proibido de enviar dados;

TCP irá bloquear a aplicação de gerar mais dados, até que haja o aviso de uma janela de tamanho diferente de 0;

Page 61: Aula 5 - Camada de Transporte

Conclusão

TCP é mais confiável e oferece maior garantia;

Por conta do estabelecimento da comunicação, pode apresentar lentidão;

Ao contrário do UDP, o protocolo TCP prioriza a garantia de entrega e não a velocidade que os pacotes serão entregues.