Redes de computadores e a Internet
Camada de Transporte
Objetivos do captulo: Entender os princpios por trs dos servios da camada de transporte: Multiplexao/demultiplexao Transferncia de dados confivel Controle de fluxo Controle de congestionamento Aprender sobre os protocolos de transporte na Internet: UDP: transporte no orientado conexo TCP: transporte orientado conexo Controle de congestionamento do TCP
Redes de computadores e a Internet
Camada de Transporte
3.1 Servios da camada de transporte 3.2 Multiplexao e demultiplexao 3.3 Transporte no orientado conexo: UDP 3.4 Transporte orientado conexo: TCP Estrutura do segmento Transferncia confivel de dados Controle de fluxo Gerenciamento de conexo 3.5 Princpios de controle de congestionamento 3.6 Controle de congestionamento do TCP
Redes de computadores e a Internet
Camada de Transporte
A camada de transporte responsvel pela entrega de uma mensagem entre processos finais. Realiza a comunicao entre processos.
Redes de computadores e a Internet Modelo OSI
Dados so divididos em segmentos. Estes so enviados e recebidos por meio de nmeros de sequncia.
Redes de computadores e a Internet
Camada de Transporte
Endereos de Porta
Redes de computadores e a Internet
Camada de Transporte
Ampliar o servio de entrega da camada de rede entre dois sistemas finais para um servio de entrega entre dois processos da camada de aplicao que rodam nos sistemas finais. Como duas entidades podem se comunicar de maneira confivel por um meio que pode perder e corromper dados?
Redes de computadores e a Internet
Servios sem conexo - UDP
Servios orientados a Conexo TCP
7
Redes de computadores e a Internet
Servio sem Conexo
Em um servio de transporte sem conexo (Connectionless), os pacotes so transmitidos de uma parte a outra sem a necessidade do estabelecimento de circuitos virtuais. Os pacotes no so numerados: durante sua transmisso, eles podem ser corrompidos ou perdidos, ou ento, podem at chegar fora de ordem.Tambm no existe confirmao do recebimento dos pacotes.
8
Redes de computadores e a Internet
Servio orientado a Conexo
Em um servio de transporte orientado a conexo (Connection- oriented), estabelece-se, primeiro, uma conexo entre a origem e o destino dos dados. Logo aps, os dados podem ser transferidos. No final, a conexo encerrada.
Redes de computadores e a Internet
Protocolos e Servios de Transporte
Fornecem comunicao lgica entre processos de aplicao em diferentes hospedeiros Os protocolos de transporte so implementados e executados nos sistemas finais. Lado emissor: quebra as mensagens da aplicao em segmentos e envia para a camada de rede Lado receptor: remonta os segmentos em mensagens e passa para a camada de aplicao de as
H mais de um protocolo transporte disponvel para aplicaes Internet: TCP e UDP
10
Redes de computadores e a Internet
Camada de Transporte vs. Camada de Rede
Camada
de rede: comunicao lgica entre os
hospedeiros Camada de transporte: comunicao lgica entre os processos Os protocolos da camada de transporte dependem dos servios da camada de rede
Analogia com uma casa familiar: 12 crianas enviam cartas para 12 crianas Processos = crianas Mensagens da aplicao = cartas nos envelopes Hospedeiros = casas Protocolo de transporte = Anna e Bill Protocolo da camada de rede = servio postal
Exemplo
11
Redes de computadores e a Internet
Camada de Transporte
12
Redes de computadores e a Internet
Protocolos da Camada de Transporte da Internet
TCP e UDP so implementados nos usurios finais
Confivel, garante ordem de entrega (TCP) Controle de congestionamento Controle de fluxo Orientado conexo No confivel, sem ordem de entrega: UDP Servios no disponveis: Garantia a atrasos Garantia de banda
13
Redes de computadores e a Internet
Camada de Transporte
3.1 Servios da camada de transporte 3.2 Multiplexao e demultiplexao 3.3 Transporte no orientado conexo: UDP 3.4 Transporte orientado conexo: TCP Estrutura do segmento Transferncia confivel de dados Controle de fluxo Gerenciamento de conexo 3.5 Princpios de controle de congestionamento 3.6 Controle de congestionamento do TCP
14
Redes de computadores e a Internet
Multiplexao e Demultiplexao orientada conexo- TCP
Conexes TCP simultneas
15
Redes de computadores e a Internet
MULTIPLEXAO E DEMULTIPLEXAO
CONCEITO DE MULTIPLEXAO CONCEITO DE DEMULTIPLEXAO
16
Redes de computadores e a Internet
MULTIPLEXAO E DEMULTIPLEXAO
17
Redes de computadores e a Internet
MULTIPLEXAO
18
Redes de computadores e a Internet
MULTIPLEXAO
Multiplexao FDM Multiplexao por diviso de Frequncia
19
Redes de computadores e a Internet
MULTIPLEXAO
Multiplexao TDM Multiplexao por diviso de Tempo
20
Redes de computadores e a Internet
Endereo de porta
A camada de Transporte utiliza o endereo de porta para selecionar e enderear processos.
21
Redes de computadores e a Internet
PORTAS
22
Redes de computadores e a Internet
PORTAS
23
Redes de computadores e a Internet
Multiplexao e Demultiplexao orientada conexo- TCP
24
Redes de computadores e a Internet
Multiplexao e Demultiplexao orientada conexo- TCP
Como o hospedeiro A est escolhendo nmeros de porta independentemente de C, ele poderia tambm atribuir um nmero de porta da fonte 26145 sua conexo HTTP. Apesar disso, o servidor B ainda ser capaz de demultiplexar corretamente as duas conexes que tm o mesmo nmero de porta de fonte, j que elas possuem endereos IP de fonte diferentes.
25
Redes de computadores e a Internet
Multiplexao e Demultiplexao orientada conexo- TCP
Datagramas com IP de origem diferentes e/ou portas de origem diferentes so direcionados para o sockets diferentes
P1 P4 P5 P6 PF:7532 DP: 80 F-IP: C D-IP: B PF: 26145 PD: 80 F-IP: A D-IP: B PF: 26145 PD: 80 F-IP: C D-IP: B P2 P1P3
cliente IP: A
servidor IP: B
cliente IP: C
PF: Porta da Fonte PD: Porta de Destino F-IP : Endereo IP da fonte D-IP: Endereo IP do destino
26
Redes de computadores e a Internet
Como funciona a demultiplexao
Computador recebe datagramas (pacotes) IP Cada pacote possui endereo IP de origem e IP de destino Cada pacote carrega 1 segmento da camada de transporte Cada segmento possui nmeros de porta de origem e destino (lembre-se: nmeros de porta bem conhecidos para aplicaes especficas) O hospedeiro usa endereos IP e nmeros de porta para direcionar o segmento ao socket apropriado
27
Redes de computadores e a Internet
PORTAS
Cada nmero de porta um nmero de 16 bits na faixa de 0 a 65535. Os nmeros de porta entre 0 e 1023 so denominados nmeros de porta bem conhecidos. HTTP porta 80 FTP porta 21 Lista de porta apresentada na RFC 1700 e atualizada em www.iana.org IANA (Internet Assigned Number Authority)
28
Redes de computadores e a Internet
Camada de Transporte
3.1 Servios da camada de transporte 3.2 Multiplexao e demultiplexao 3.3 Transporte no orientado conexo: UDP 3.4 Transporte orientado conexo: TCP Estrutura do segmento Transferncia confivel de dados Controle de fluxo Gerenciamento de conexo 3.5 Princpios de controle de congestionamento 3.6 Controle de congestionamento do TCP
29
Redes de computadores e a Internet
UDP: User Datagram Protocol [RFC 768]
Protocolo de transporte da Internet sem gorduras, sem frescuras. Servio best effort, segmentos UDP podem ser: Perdidos Entregues fora de ordem para a aplicao Sem conexo: No h apresentao entre o UDP transmissor e o receptor Cada segmento UDP tratado de forma independente dos outros
30
Redes de computadores e a Internet
Utilizao de endereos de porta
31
Redes de computadores e a Internet
UDP: User Datagram Protocol [RFC 768]
Por que existe um UDP? No h estabelecimento de conexo (que possa GERAR atrasos). Simples: no h estado de conexo nem no transmissor, nem no receptor. Cabealho de segmento reduzido. No h controle de congestionamento: UDP pode enviar segmentos to rpido quanto desejado (e possvel).
32
Redes de computadores e a Internet
UDP: User Datagram Protocol [RFC 768]
protocolo de transporte da Internet sem luxo, bsico servio de melhor esforo, segmentos UDP podem ser: perdidos entregues aplicao fora da ordem sem conexo: sem handshaking entre remetente e destinatrio UDP cada segmento UDP tratado independente dos outros
Por que existe um UDP?
sem estabelecimento de conexo (que pode gerar atraso) simples: sem estado de conexo no remetente, destinatrio cabealho de segmento pequeno sem controle de congestionamento: UDP pode transmitir o mais rpido possvel
33
Redes de computadores e a Internet
Figura 2.: Estrutura do segmento UDP.
34
Redes de computadores e a Internet
Mais sobre UDP
32 bits
Muito usado por aplicaes de multimdia contnua (streaming) Tolerantes perda Sensveis taxa de transmisso Usos do UDP: DNS Telefonia por Internet Protocolo de roteamento- RIP SNMP Protocolo de gerenciamento de rede
Porta da Fonte # Comprimento
Porta do Destino #
Soma de Verificao
Dados da Aplicao (Mensagem)
Estrutura de segmento UDP
A soma de verificao uma operao matemtica utilizada para determinar se bits dentro do segmento UDP foram alterados
35
Redes de computadores e a Internet
PORQUE O UDP FORNECE UMA SOMA DE VERIFICAO DE ERRO, VISTO QUE MUITOS PROTOCOLOS DA CAMADA DE ENLACE (DENTRE OS QUAIS, O POPULAR PROTOCOLO ETHERNET) TAMBM FORNECEM VERIFICAO DE ERROS?
36
Redes de computadores e a Internet
R: A RAZO QUE NO H GARANTIA DE QUE TODOS OS ENLACES ENTRE A ORIGEM E O DESTINO FORNEAM VERIFICAO DE ERROS UM DOS ENLACES PODE USAR UM PROTOCOLO DA CAMADA DE ENLACE QUE NO FORNEA VERIFICAO DE ERRO. PODE HAVER INTRODUO DE ERROS DE BIT QUANDO UM SEGMENTO ARMAZENADO NA MEMRIA DE UM ROTEADOR. COMO PODE SER OBSERVADO NA FIGURA 2.
37
Redes de computadores e a Internet
Verificao de erros do protocolo UDP
Figura 2.: Controle de erro.
38
Redes de computadores e a Internet
Mais sobre UDP
DNS utiliza preferencialmente o UDP para evitar atrasos de estabelecimentos de conexo, como realizado pelo TCP. SNMP utiliza o UDP, pois aplicaes de gerenciamento de rede frequentemente devem funcionar quando a rede est em estado sobregarregado exatamente quando difcil conseguir transferncia confivel de dados com congestionamento controlado. O protocolo de roteamento RIP ( Routing Information protocol) utiliza UDP.
39
Redes de computadores e a Internet
Mais sobre UDP
Cabealho IP
Cabealho UDP
Nmero do protocolo UDP
40
Redes de computadores e a Internet
Mais sobre UDP
O UDP no possui controle de congestionamento, assim a rede poderia ser inundada com pacotes UDP, o que causaria mais atrasos das conexes TCP.
possvel que uma aplicao tenha transferncia confivel de dados usando UDP?
41
Redes de computadores e a Internet
Mais sobre UDP
Sim desde que a confiabilidade esteja embutida na aplicao. Assim as aplicaes podem se comunicar de maneira confivel sem ter de se sujeitar s limitaes da taxa de transmisso impostas pelo mecanismo de controle de congestionamento do TCP. Muitas aplicaes proprietrias de udio e vdeo fazem exatamente isto rodam sobre UDP, mas dispem de reconhecimentos e retransmisses embutidos na aplicao para reduzir a perda de pacotes.
42
Redes de computadores e a Internet
Portas conhecidas usadas com o UDP
DNS
43
Redes de computadores e a Internet
Camada de transporte
3.1 Servios da camada de transporte 3.2 Multiplexao e demultiplexao 3.3 Transporte no orientado conexo: UDP 3.4 Transporte orientado conexo: TCP Estrutura do segmento Transferncia confivel de dados Controle de fluxo Gerenciamento de conexo 3.5 Princpios de controle de congestionamento 3.6 Controle de congestionamento do TCP
44
Redes de computadores e a Internet
Princpios de transferncia confivel de dados
Importante nas camadas de aplicao, transporte e enlace Top 10 na lista dos tpicos mais importantes de redes!
A CAMADA DE REDE POSSUI UM CANAL NO CONFIVEL DE ENTREGA DE DADOS.
45
Redes de computadores e a Internet
TCP: Viso geral
RFCs: 793, 1122, 1323, 2018, 2581 dados full duplex:
ponto a ponto:
um remetente, um destinatrio
cadeia de bytes confivel, em ordem:
sem limites de mensagem
dados bidirecionais fluem na mesma conexo MSS: tamanho mximo do segmento
buffers de envio & recepo
orientado a conexo:
apresentao (troca de msgs de controle) inicia estado do remetente e destinatrio antes da troca de dados
fluxo controlado:
remetente no sobrecarrega destinatrio
46
Redes de computadores e a Internet
TCP: PONTOS PRINCIPAIS
Ponto-a-ponto: Um transmissor, um receptor Orientado conexo: Apresentao (troca de mensagens de controle) inicia o estado do transmissor e do receptor antes da troca de dados Servio full-duplex Dados da camada de aplicao fluem de A para B ao mesmo tempo em que os dados da camada de aplicao fluem de B para A.
47
Redes de computadores e a Internet
TCP: PONTOS PRINCIPAIS
Segmentos a espera de confirmao
FIGURA 2.: Buffers de transmisso e recepao.
48
Redes de computadores e a Internet
SEGMENTAO TCP
FIGURA 2.: Segmentos TCP.
49
Redes de computadores e a Internet
SEGMENTAO TCP
Nmero de bytes
Os bytes de dados transmitidos em cada conexo so numerados pelo TCP. A numerao comea com um nmero gerado randomicamente. A numerao independente para cada sentido de transmisso.
50
Redes de computadores e a Internet
SEGMENTAO TCP
Nmero de Sequncia
Aps os bytes terem sido numerados, o TCP atribui um nmero de sequncia para cada segmento que est sendo transmitido. O nmero de sequncia para cada segmento identificado pelo nmero do primeiro byte transportado no segmento.
51
Redes de computadores e a Internet
SEGMENTAO TCP
Nmero de Sequncia
Suponha que uma conexo TCP esteja transferindo um arquivo de 5.000 bytes. O primeiro deles recebe a numerao 10.001. Quais so os nmeros de sequncia para cada segmento se os dados forem enviados em cinco segmentos,cada um deles transportando 1.000 bytes?
52
Redes de computadores e a Internet
SEGMENTAO TCP
FIGURA 2.: Exemplo de segmentos TCP.
53
Redes de computadores e a Internet
SEGMENTAO TCP
O valor do campo nmero de sequncia de um segmento define o nmero do primeiro byte de dados contido naquele segmento.
54
Redes de computadores e a Internet
SEGMENTAO TCP
Nmero de Confirmao
O valor do campo de confirmao em um segmento define o nmero do prximo byte que o lado remoto espera receber. O nmero de confirmao cumulativo. Exemplo, se uma parte usa 5.643 como nmero de confirmao, ela recebeu todos os bytes do incio at 5.642. Note que isso no significa que a parte tenha recebido 5.642 bytes, porque o nmero do primeiro byte nem sempre comea do 0.
55
Redes de computadores e a Internet
CONTROLE DE FLUXO
Controle de Fluxo
O TCP implementa controle de fluxo. O receptor pode controlar a quantidade de dados que enviada pelo emissor. Isso feito para evitar que o receptor fique sobrecarregado com uma quantidade excessiva de dados.
56
Redes de computadores e a Internet
Controle de Congestionamento
O TCP leva em conta o nvel de congestionamento da rede. A quantidade de dados que podem ser transmitidos por um emissor no controlada apenas pelo receptor (controle de fluxo), mas tambm pelo nvel de congestionamento da rede. Isso feito para evitar que o receptor fique sobrecarregado com uma quantidade excessiva de dados.
57
Redes de computadores e a Internet
Formato de um segmento TCP
FIGURA 2.:Formato de um segmento TCP.
Utilizado para o controle de 58 fluxo.
Redes de computadores e a Internet
Conexo TCP
59
Redes de computadores e a Internet
Fases de uma conexo TCP
Antes de transmitir dados h o estabelecimento de uma conexo demoninado Handshaking. Transferncia de dados. Encerramento da conexo.
60
Redes de computadores e a Internet
Conexo TCP - Handshaking
61
Redes de computadores e a Internet
Conexo TCP - Handshaking
FIGURA 2.:Estabelecimento de conexo TCP - handshaking.
62
Redes de computadores e a Internet
Ataque de negao de servios (denial of sevice) Ataque de negao de servios (denial of sevice)
Acontece
quando um invasor mal-intencionado transmite um grande nmero de segmentos SYN a um servidor, simulando que cada um deles provm de um cliente diferente, forjando os endereos IP de origem dos datagramas. O servidor, partindo da premissa de que os clientes estejam solicitando uma conexo ativa, aloca os recursos necessrios como, buffers, ativao de timers, etc.
63
Redes de computadores e a Internet
Ataque de negao de servios (denial of sevice) Ataque de negao de servios (denial of service) O servidor TCP transmite ento o segmento SYN + ACK para os falsos clientes que so ignorados e perdidos. Se o nmero de solicitaes SYN for muito grande, o servidor pode vir a ficar sem recursos disponveis e poder cair.
64
Redes de computadores e a Internet
Conexo TCP Transferncia de dados
Conexo TCP - Transferncia de dados
65
Redes de computadores e a Internet
Conexo TCP Transferncia de dados
Indica que o destinatrio deve passar os dados para a camada superior imediatamente. Na prtica no usado.
FIGURA 2.:Transferncia de dados em uma conexo TCP.
66
Redes de computadores e a Internet
Conexo TCP Encerramento da conexo
Conexo TCP Encerramento da conexo
67
Redes de computadores e a Internet
Conexo TCP Encerramento da conexo
FIGURA 2.:Encerramento de uma conexo TCP.
68
Redes de computadores e a Internet
Controle de Fluxo
Controle de Fluxo
69
Redes de computadores e a Internet
Controle de Fluxo
lado receptor da conexo TCP tem um buffer de recepo:
espao datagramas de buffer (atualmente) IP no usado
controle de fluxo
remetente no estourar buffer do destinatrio transmitindo muitos dados muito rapidamente
dados TCP (no buffer)
processo da aplicao
processo da aplicao
pode ser lento na leitura do buffer
servio de compatibilizao de velocidades: compatibiliza a taxa de envio do remetente com a de leitura da aplicao receptora
70
Redes de computadores e a Internet
Controle de fluxo TCP: como funciona
espao datagramas de buffer (atualmente) IP no usado dados TCP (no buffer)
processo da aplicao
rwnd RcvBuffer
(suponha que destinatrio TCP descarte segmentos fora de ordem) espao de buffer no usado:
= rwnd
destinatrio: anuncia espao de buffer no usado incluindo valor de rwnd no cabealho do segmento (campo de janela de recepo) remetente: limita o nmero de bytes em rwnd
garante que buffer do destinatrio no estoura
71
Redes de computadores e a Internet
Exemplos
72
Redes de computadores e a Internet
Operao normal
73
Redes de computadores e a Internet
Exemplos
FIGURA 2.:Operao normal de uma conexo TCP.
74
Redes de computadores e a Internet
Segmento perdido
75
Redes de computadores e a Internet
76
Redes de computadores e a Internet
77
Redes de computadores e a Internet
78
Muito mais do que documentos
Descubra tudo o que o Scribd tem a oferecer, incluindo livros e audiolivros de grandes editoras.
Cancele quando quiser.