Upload
benedita-coimbra-beltrao
View
214
Download
0
Embed Size (px)
Citation preview
1
Redes de computadores e a InternetCamada de Transporte
Objetivos do capítulo: Entender os princípios por trás dos serviços da camada de transporte:
Multiplexação/demultiplexação Transferência de dados confiável Controle de fluxo Controle de congestionamento
Aprender sobre os protocolos de transporte na Internet: UDP: transporte não orientado à conexão TCP: transporte orientado à conexão Controle de congestionamento do TCP
2
Redes de computadores e a Internet
3.1 Serviços da camada de transporte 3.2 Multiplexação e demultiplexação3.3 Transporte não orientado à conexão: UDP 3.4 Transporte orientado à conexão: TCP
Estrutura do segmento Transferência confiável de dados Controle de fluxo Gerenciamento de conexão
3.5 Princípios de controle de congestionamento 3.6 Controle de congestionamento do TCP
Camada de Transporte
3
Redes de computadores e a InternetCamada de Transporte
• Ampliar o serviço de entrega da camada de rede entre dois sistemas finais para um serviço de entrega entre dois processos da camada de aplicação que rodam nos sistemas finais.
Como duas entidades podem se comunicar de maneira confiável por um meio que pode perder e corromper dados?
4
Redes de computadores e a Internet
Fornecem comunicação lógica entre processos de aplicação em diferentes hospedeiros
Os protocolos de transporte são implementados e executados nos sistemas finais. Lado emissor: quebra as mensagens da aplicação em segmentos e envia para a camada de rede Lado receptor: remonta os segmentos em mensagens e passa para a camada de aplicação
Há mais de um protocolo de transporte disponível para as aplicações Internet: TCP e UDP
Protocolos e Serviços de Transporte
5
Redes de computadores e a InternetCamada de Transporte vs. Camada de
Rede Camada de rede: comunicação lógica entre os hospedeiros Camada de transporte: comunicação lógica entre os processos
Os protocolos da camada de transporte dependem dos serviços da camada de rede
Analogia com uma casa familiar:12 crianças enviam cartas para 12 crianças Processos = crianças Mensagens da aplicação = cartas nos envelopes Hospedeiros = casas Protocolo de transporte = Anna e Bill Protocolo da camada de rede = serviço postal
6
Redes de computadores e a InternetCamada de Transporte vs. Camada de
RedeAnalogia com uma casa familiar:• Anna e Bill, ao recolherem as cartas e colocarem-nas na caixa postal fazem todo o seu trabalho dentro de suas casas.
• Da mesma maneira protocolos da camada de transporte “moram” nos sistemas finais.
• Roteadores não reconhecem nehuma informação que a camada de transporte possa ter anexado às mensagens da aplicação nem agem sobre ela.• Se Anna e Bill forem substituidos por Susan e Harvey, pode acontecer do serviço não ser o mesmo.
•As cartas podem ser recolhidas com menos frequência e algumas podem se perder. Simulação do protocolo UDP.
7
Redes de computadores e a Internet
Confiável, garante ordem de entrega (TCP- Transmission Control Protocol – Protocolo de controle de transmissão)
Controle de congestionamento Controle de fluxo Orientado à conexão
Não confiável, sem ordem de entrega: UDP (User Datagram Protocol- Protocolo de datagrama de Usuário)
• Serviços não disponíveis: Garantia a atrasos Garantia de banda
Protocolos da Camada de Transporte da Internet
8
Redes de computadores e a Internet
TCP - Fornece• Transferência confiável de dados. Controle de congestionamento
Evita que conexões TCP “abarrotem a rede” com uma quantidade excessiva de tráfego. Isto é feito pela regulagem da taxa com a qual o lado remetente do TCP pode enviar tráfego para dentro da rede.
UDP Fornece entrega de dados entre processos. Mas nao
garente que os dados enviados cheguem. Verificação de erros.
Protocolos da Camada de Transporte da Internet
9
Redes de computadores e a Internet
3.1 Serviços da camada de transporte 3.2 Multiplexação e demultiplexação3.3 Transporte não orientado à conexão: UDP 3.4 Transporte orientado à conexão: TCP
Estrutura do segmento Transferência confiável de dados Controle de fluxo Gerenciamento de conexão
3.5 Princípios de controle de congestionamento 3.6 Controle de congestionamento do TCP
Camada de Transporte
10
Redes de computadores e a InternetMULTIPLEXAÇÃO
Imagine que voce está utilizando dois processos FTP, um processo Telnet e um processo HTTP.
Quando a camada de transporte em seu computador receber dados da camada de rede abaixo dela, precisará direcionar os dados recebidos a um desses quatro processos.
Como isto é feito?
11
Redes de computadores e a InternetMULTIPLEXAÇÃO
12
Redes de computadores e a Internet
Multiplexação no hospedeiro emissor:Demultiplexação no hospedeiro receptor:Coleta dados de múltiplos sockets, envelopa os dados com cabeçalho (usado depois para demultiplexação)
Entrega os segmentos recebidos ao socket correto
Socket
13
Redes de computadores e a InternetMultiplexação e Demultiplexação orientada à conexão-
TCP
• No exemplo anterior das cartas, Anna quando recolhe as correspondências para colocá-las em uma caixa de correios, realiza a multiplexação e quando as coleta da caixa e entrega a cada criança, realiza demultiplexação.
14
Redes de computadores e a Internet PORTAS
• Cada número de porta é um número de 16 bits na faixa de 0 a 65535.• Os números de porta entre 0 e 1023 são denominados números de porta bem conhecidos.
• HTTP porta 80• FTP porta 21
• Lista de porta é apresentada na RFC 1700 e atualizada em www.iana.org
Ao desenvolvermos aplicações devemos atribuir a ela um número de porta.
15
Redes de computadores e a InternetMultiplexação e Demultiplexação orientada à conexão-
TCP
• Um socket TCP é identificado por uma ênupla de quatro elementos:
• Endereço IP da fonte• Número de porta da fonte• Endereço IP do destino• Número de porta do destino
16
Redes de computadores e a InternetMultiplexação e Demultiplexação orientada à conexão-
TCP
17
Redes de computadores e a InternetMultiplexação e Demultiplexação orientada à conexão-
TCP
• Como o hospedeiro A está escolhendo números de porta independentemente de C, ele poderia também atribuir um número de porta da fonte 26145 à sua conexão HTTP. Apesar disso, o servidor B ainda será capaz de demultiplexar corretamente as duas conexões que têm o mesmo número de porta de fonte, já que elas possuem endereços IP de fonte diferentes.
18
Redes de computadores e a InternetMultiplexação e Demultiplexação não orientada à conexão- UDP
Cria sockets com números de porta entre 1024 e 65535 que não esteja sendo usado naquele instante:
Socket UDP identificado por dois valores:(endereço IP de destino, número da porta de destino)
Quando o hospedeiro recebe o segmento UDP: Verifica o número da porta de destino no segmento Direciona o segmento UDP para o socket com este número de porta
Datagramas com IP de origem diferentes e/ou portas de origem diferentes são direcionados para o mesmo socket
Socket UDP
19
Redes de computadores e a Internet
clienteIP: B
P2
cliente IP: A
P1P1P3
servidorIP: C
PF: 6428PD: 9157
PF: 9157PD: 6428
PF: 6428PD: 5775
PF: 5775PD: 6428
Multiplexação e Demultiplexação não orientada à conexão- UDP
PF: Porta da FontePD: Porta de Destino
Datagramas com IP de origem diferentes e/ou portas de origem diferentes são direcionados para o mesmo socket
20
Redes de computadores e a InternetMultiplexação e Demultiplexação orientada à conexão-
TCP
clienteIP: C
P1
cliente IP: A
P1P2P4
servidorIP: B
PF: 26145PD: 80
PF: 26145PD: 80
P5 P6 P3
D-IP: BF-IP: AD-IP: B
F-IP: C
PF:7532DP: 80
D-IP: BF-IP: C
PF: Porta da FontePD: Porta de DestinoF-IP : Endereço IP da fonteD-IP: Endereço IP do destino
Datagramas com IP de origem diferentes e/ou portas de origem diferentes são direcionados para o sockets diferentes
21
Redes de computadores e a InternetComo funciona a demultiplexação
Computador recebe datagramas (pacotes) IP Cada pacote possui endereço IP de origem e IP de destino.
Cada pacote carrega 1segmento da camada de transporte.
Cada segmento possui números de porta de origem e destino (lembre-se: números de porta bem conhecidos para
aplicações específicas) O hospedeiro usa endereços IP e
números de porta para direcionar o segmento ao socket apropriado
22
Redes de computadores e a Internet
Socket TCP identificado por 4 valores: Endereço IP de origem End. porta de origem Endereço IP de destino End. porta de destino
Hospedeiro receptor usa os quatro valores para direcionar o segmento ao socket apropriado
Hospedeiro servidor pode suportar vários sockets TCP simultâneos: Cada socket é identificado pelos seus próprios 4 valores Servidores Web possuem sockets diferentes para cada cliente conectado
Multiplexação e Demultiplexação orientada à conexão- TCP
23
Redes de computadores e a InternetDiferença entre Demultiplexação do TCP e UDP
• UDP• Um socket UDP é totalmente identificado por dois elementos, consistindo em um endereço IP de destino e um número de porta de destino. Consequentemente, se dois segmentos UDP tiverem IP de fonte e/ou números de porta de fonte diferentes, porém o mesmo endereço IP de destino e o mesmo número de porta de destino, eles serão direcionados ao mesmo processo de destino por meio do mesmo socket de destino.
24
Redes de computadores e a InternetDiferença entre Demultiplexação do TCP e UDP
• TCP• Um socket TCP é totalmente identificado por 4 elementos, consistindo em um endereço IP de destino e um número de porta de destino, IP da fonte e número da porta da fonte.• Assim, quando um segmento TCP que vem da rede chega a um hospedeiro, este usa todos os quatro valores para direcionar (demultiplexar) o segmento para o socket apropriado.
25
Redes de computadores e a InternetDemux orientada à conexão servidor Web “threaded”
• Nem sempre existe uma correspondência unívoca entre sockets de conexão e processos.
• Na verdade, os servidores WEB de alto desempenho atuais muitas vezes utilizam um processo, mas criam uma nova thread (sub-processo) com um novo socket de conexão para cada nova conexão cliente.
26
Redes de computadores e a InternetDemux orientada à conexão servidor Web “threaded”
3 - 26
clienteIP: C
P1
cliente IP: A
P1P2
servidorIP: B
PF: 26145DP: 80
PF: 26145DP: 80
P4 P3
D-IP: BF-IP: AD-IP: B
F-IP: C
PF:7532DP: 80
D-IP: BF-IP: C
PF: Porta da FontePD: Porta de DestinoF-IP : Endereço IP da fonteD-IP: Endereço IP do destino
27
Redes de computadores e a Internet
3.1 Serviços da camada de transporte 3.2 Multiplexação e demultiplexação3.3 Transporte não orientado à conexão: UDP 3.4 Transporte orientado à conexão: TCP
Estrutura do segmento Transferência confiável de dados Controle de fluxo Gerenciamento de conexão
3.5 Princípios de controle de congestionamento 3.6 Controle de congestionamento do TCP
Camada de Transporte
28
Redes de computadores e a InternetUDP: User Datagram Protocol [RFC 768]
•Protocolo de transporte da Internet “sem gorduras”, “sem frescuras”. Serviço “best effort”, segmentos UDP podem ser:
Perdidos Entregues fora de ordem para a aplicação
Sem conexão: Não há apresentação entre o UDP transmissor e o receptor Cada segmento UDP é tratado de forma independente dos outros
29
Redes de computadores e a InternetUDP: User Datagram Protocol [RFC 768]
Por que existe um UDP? Não há estabelecimento de conexão (que possa redundar em atrasos).
Simples: não há estado de conexão nem no transmissor, nem no receptor.
Cabeçalho de segmento reduzido. Não há controle de congestionamento: UDP pode enviar segmentos tão rápido quanto desejado (e possível).
30
Redes de computadores e a InternetMais sobre UDP
Muito usado por aplicações de multimídia contínua (streaming) Tolerantes à perda Sensíveis à taxa de transmissão
Usos do UDP:• DNS• Telefonia por Internet• Protocolo de
roteamento- RIP• SNMP – Protocolo de
gerenciamento de rede
Porta da Fonte # Porta do Destino #Comprimento Soma de Verificação
Dados da Aplicação (Mensagem)
32 bits
Estrutura de segmento UDP
A soma de verificação é uma operação matemática utilizada para determinar se bits dentro do segmento UDP foram alterados
Possui apenas 4 CAMPOS DE 2 BYTES
31
Redes de computadores e a InternetMais sobre UDP
• DNS roda sobre UDP para evitar atrasos de estabelecimentos de conexão, como é realizado pelo TCP.
• SNMP utiliza o UDP, pois aplicações de gerenciamento de rede frequentemente devem funcionar quando a rede está em estado sobregarregado – exatamente quando é difícil conseguir transferência confiável de dados com congestionamento controlado.
32
Redes de computadores e a InternetMais sobre UDP
• O UDP não possui controle de congestionamento, assim a rede poderia ser inundada com pacotes UDP, o que causaria mais atrasos das conexões TCP.
É possível que uma aplicação tenha transferência confiável de dados usando UDP?
33
Redes de computadores e a InternetMais sobre UDP
• Sim desde que a confiabilidade esteja embutida na aplicação.
• Assim as aplicações podem se comunicar de maneira confiável sem ter de se sujeitar às limitações da taxa de transmissão impostas pelo mecanismo de controle de congestionamento do TCP.
• Muitas aplicações proprietárias de áudio e vídeo fazem exatamente isto – rodam sobre UDP, mas dispõem de reconhecimentos e retransmissões embutidos na aplicação para reduzir a perda de pacotes.
34
Redes de computadores e a InternetCamada de transporte
3.1 Serviços da camada de transporte 3.2 Multiplexação e demultiplexação 3.3 Transporte não orientado à conexão: UDP 3.4 Transporte orientado à conexão: TCP
Estrutura do segmento Transferência confiável de dados Controle de fluxo Gerenciamento de conexão
3.5 Princípios de controle de congestionamento 3.6 Controle de congestionamento do TCP
35
Redes de computadores e a InternetPrincípios de transferência confiável de dados
Importante nas camadas de aplicação, transporte e enlace
Top 10 na lista dos tópicos mais importantes de redes!
TRANSFERÊNCIA CONFIÁVEL DE DADOS
36
Redes de computadores e a InternetPrincípios de transferência confiável de dados
O TCP é um protocolo confiável de transferência de dados que é implementado sobre uma camada de rede não confiável. (IP)
37
Redes de computadores e a InternetTCP: RFCs: 793, 1122, 1323, 2018, 2581
Ponto-a-ponto: Um transmissor, um receptor.
Orientado à conexão: Apresentação (troca de mensagens de controle) inicia o
estado do transmissor e do receptor antes da troca de dados.
Serviço full-duplex Dados da camada de aplicação fluem de A para B ao
mesmo tempo em que os dados da camada de aplicação fluem de B para A.
38
Redes de computadores e a Internet
3 - 38
URG: dados urgentes (pouco usados)
ACK: campo de ACKé válido
PSH: produz envio dedados (pouco usado)
RST, SYN, FIN:estabelec. de conexão
(comandos de criação e término)
número de bytes quereceptor estápronto para aceitar
contagem porbytes de dados(não segmentos!)
Internetchecksum
(como no UDP)
ESTRUTURA DO SEGMENTO TCP
Controle de FluxoImplementação de um
serviço confiável de dados
39
Redes de computadores e a Internet
O TCP divide o arquivo a ser transmitido em blocos de bytes.
0 ........1 1000 ........ 1999 ........ 499.9999
Arquivo d e 500 bytes
Dados para o primeiro segmento
Dados para o segundo segmento
Número de sequência 0
Número de sequência 1000
Número de reconhecimento será o número de sequência do próximo byte de dados que o hospedeiro esta aguardando.
40
Redes de computadores e a Internet
41
Redes de computadores e a InternetEXEMPLO TELNET
Host An° de sequência inicial é 42.
Host Bn° de sequência inicial é 79.
Tamanho do arquivo 1 byte-Letra “C”.
Os valores de sequências iniciais nem sempre começam no 0.
42
Redes de computadores e a Internet
Processos de aplicação podem ser lentos para ler o buffer.
Controle de fluxoTransmissor não deve esgotar os buffers de recepção enviando dados rápido demais
CONTROLE DE FLUXO
43
Redes de computadores e a InternetCONTROLE DE CONGESTIONAMENTO
O CONTROLE DE CONGESTIONAMENTO É VERIFICADO QUANDO OCORRE UM CONGESTIONAMENTO NA REDE IP. A DIFERENÇA DO CONTROLE DE FLUXO É QUE ESTE DEVE-SE ESTRITAMENTE À VELOCIDADE DE PROCESSAMENTO DAS INFORMAÇÕES POR MEIO DAS APLICAÇÕES.