3) Arquiteturas, padrões e funcionalidades das camadas 1 Ciência da Computação – Redes de...
Transcript of 3) Arquiteturas, padrões e funcionalidades das camadas 1 Ciência da Computação – Redes de...
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 1
Ciência da Computação – Redes de Computadores
3.5) A Camada de Transporte76
4321
A B
AplicaçãoApresentação
SessãoTransporte
RedeEnlaceFísica
5
76
4321
5
Visão Geral:
Missão da camada de enlace
Serviços oferecidos
TCP
UDP
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 2
Ciência da Computação – Redes de Computadores
3.5.1) Protocolos e Serviços de Transporte: Funções básicas
Fornecem comunicação lógica entre
processos de aplicação em diferentes
hosts;
Os protocolos de transporte são
executados nos sistemas finais da rede;
Funções complementares:
. Camada de rede: transferência de dados
entre computadores (end systems);
. Camada de transporte: transferência de
dados entre processos;
A camada de transporte utiliza e
aprimora os serviços oferecidos pela
camada de rede.
aplicaçãotransporteeeredeenlacefísica
aplicaçãotransporte
redeenlacefísica
redeenlacefísica
redeenlacefísica
redeenlacefísica
redeenlacefísicarede
enlacefísica
transporte lógico fim-a-fim
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 3
Ciência da Computação – Redes de Computadores
3.5.2) Protocolos e Serviços de Transporte: Principais tipos
Serviços de Transporte da Internet:
Confiável, seqüencial e unicast (TCP):
. Controle de congestionamento;
. Controle de fluxo;
. Orientado à conexão;
Não confiável (“best-effort”), não
seqüencial, entrega unicast ou multicast
(UDP):
. Sem controle de congestionamento;
. Sem controle de fluxo;
. Não orientado à conexão.
aplicaçãotransporteeeredeenlacefísica
aplicaçãotransporte
redeenlacefísica
redeenlacefísica
redeenlacefísica
redeenlacefísica
redeenlacefísicarede
enlacefísica
transporte lógico fim-a-fim
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 4
Ciência da Computação – Redes de Computadores
3.5.3) Multiplexação de Aplicações Visa reunir dados de múltiplos processos de
aplicação, configurando cabeçalhos com informações
necessárias para a correta demultiplexação; Criado o conceito de segmento, que é a unidade
de dados trocada entre entidades da camada de
transporte;
Para permitir que vários processos (de cada
aplicação) possam ser tratados em um único host,
cada um dos processos utilizam determinadas portas
de acesso entre as camadas de aplicação e
transporte. As portas assumem números de 0 a
65535 e somente para o caso de aplicações bem
conhecidas, tais portas tem números bem definidos
de 0 a 1023 (Exemplos: FTP - 21, SMTP - 25, HTTP -
80, Telnet - 23);
Assim, a multiplexação/demultiplexação é possível
pois está baseada no número de porta do
transmissor, número de porta do receptor e
endereços IP presentes no segmento TCP/UDP;
porta origem porta destino
32 bits
dados de aplicação(mensagem)
outros campos de cabeçalho
Formato do segmento TCP/UDP
host A servidor Bporta orig: 1028
porta dest.: 23
IP orig : A
IP dest: B
porta origem:23
port dest.: 1028
IP orig: B
IP dest: A
Aplicação Telnet
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 5
Ciência da Computação – Redes de Computadores
3.5.4) TCP - Transmission Control Protocol
É orientado à conexão;
Realiza comunicação fim-a-fim
Possui controle de fluxo através de utilização de janelas de
transmissão;
A conexão é definida pelos processos origem e destino;
A ordem dos dados enviados é mantida a mesma na recepção.
Mesmo que sejam entregues fora de ordem, o destinatário ordena os
pacotes para passar para a camada superior (sessão) através do uso
de número de seqüência (SEQ);
Aplicações mais comuns:
TELNET, FTP, SMTP,HTTP.;
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 6
Ciência da Computação – Redes de Computadores
3.5.5) Estabelecimento de conexão TCP TCP transmissor estabelece conexão com o receptor antes de trocar segmentos
de dados, inicializando variáveis, números de seqüência, buffers para controle de
fluxo;
É estabelecida conexão através de Three way handshake:
Passo 1: sistema final cliente envia TCP SYN ao servidor e especifica número de
seqüência inicial ;
Passo 2: sistema final servidor que recebe o SYN, responde com segmento SYNACK
onde:
. Reconhece o SYN recebido;
. Aloca buffers;
. Especifica o número de seqüência inicial do servidor;
Passo 3: o sistema final cliente reconhece o SYNACK através de um segmento ACK
e inicia envio de dados;
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 7
Ciência da Computação – Redes de Computadores
3.5.5) Estabelecimento de conexão TCP (cont)
SYN
ACK
dados
SYN, ACK
Host Origem Host Destino
(servidor)
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 8
Ciência da Computação – Redes de Computadores
3.5.6) Encerramento de conexão TCP
dados
FIN
ACK,FIN
ACK
Após o envio dos dados, a sessão TCP pode ser encerrada por qualquer
uma das partes (cliente ou servidor) “elegantemente” através de um
segmento FIN. Este segmento não possui dados, sendo reconhecido por
ter o bit FIN do campo Flag do cabeçalho TCP “setado”.
Host Origem Host Destino
(servidor)
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 9
Ciência da Computação – Redes de Computadores
3.5.7) Well-known TCP Ports
FTP
SMTP
TCP
nívelAplicação
nívelTransporte
portnumbers
TELNET
21 23 25
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 10
Ciência da Computação – Redes de Computadores
3.5.8) Seqüencialização de segmentos Cada segmento TCP enviado tem um número de seqüência para que o módulo TCP no nó destino possa reordena-los na
chegada. Quando o nó destino recebe um segmento, envia uma confirmação através de um segmento TCP com o
campo Acknowlege preenchido. Neste campo está o número de seqüência do próximo segmento esperado, indicando
para o nó origem o correto recebimento, pelo nó destino, dos pacotes anteriores.
SP DP SEQ ACK
1028 23 10 1 ...
Estou enviandoo #10.
Recebi o #10;agora aguardo o #11.
SP DP SEQ ACK
23 1028 1 11 ...
Agora estouenviando o #11.
SP DP SEQ ACK
1028 23 11 2 ...
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 11
Ciência da Computação – Redes de Computadores
3.5.9) Formato do segmento TCP
porta origem porta destino32 bits
dados de aplicação(tamanho variável)
número de seqüência
número de reconhecimentojanela de recep.
dados urgenteschecksum
FSRPAUtam.
cabec.não
usado
Opções (tamanho variável)
URG: dados urgentes (pouco usado)
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 receptor estápronto para aceitar
contagem porbytes de dados(não segmentos!)
Internetchecksum
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 12
Ciência da Computação – Redes de Computadores
3.5.10) UDP - User Datagram Protocol
Protocolo de transporte internet “sem gorduras”, que faz o serviço “best effort”;
Segmentos UDP podem ser perdidos e/ou entregues fora de ordem para a aplicação;
Não orientado à conexão e sem controle de fluxo:
. Não há apresentação entre o UDP transmissor e o receptor
. Cada segmento UDP é tratado de forma independente dos outros;
Justificativas para utilização do UDP:
. Rapidez, pois não há estabelecimento de conexão (que pode redundar em atrasos);
. Simples, pois não não há verificação do estado de conexão (nem no transmissor nem
no receptor);
. Cabeçalho de segmento reduzido;
. Não há controle de congestionamento, assim o UDP pode enviar segmentos tão rápido
quanto desejado (e possível);
Aplicações: SNMP, TFTP (Trivial File Transfer Protocol), DNS e em aplicações de
multimídia contínua (streaming) tolerantes à perda e sensíveis à taxa.
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 13
Ciência da Computação – Redes de Computadores
3.5.11) Well-known UDP Ports
DNS
UDP
nívelAplicação
nívelTransporte
portnumbers
TFTP
53 69 161
SNMP
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 14
Ciência da Computação – Redes de Computadores
3.5.12) Formato do segmento UDP
porta origem porta destino
32 bits
Dados de Aplicação(mensagem)
Formato do segmento UDP
tamanho checksumTamanho, em
bytes do segmento UDP, incluindo
cabeçalho
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 15
Ciência da Computação – Redes de Computadores
3.5.13) Transição do pacote TCP/IP
TELNET
FTP
DNS
TFTP
endereço MAC
TCP UDP
IP
Enlace
Físico
23 21 53 69
6 17
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 16
Ciência da Computação – Redes de Computadores
3.5.13) Transição do pacote TCP/IP (cont)
TELNET
FTP
DNS
TFTP
Protocol
endereço MAC
TCP UDP
IP
Enlace
Físico
23 21 53 69
6 17
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 17
Ciência da Computação – Redes de Computadores
3.5.13) Transição do pacote TCP/IP (cont)
TELNET
FTP
DNS
TFTP
Protocol
Endereço MAC
TCP UDP
IP
Enlace
Físico
23 21 53 69
6 17
Protocol
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 18
Ciência da Computação – Redes de Computadores
3.5.13) Transição do pacote TCP/IP (cont)
Port numbers
TELNET
FTP
DNS
TFTP
Protocol
Endereço MAC
TCP UDP
IP
Enlace
Físico
23 21 53 69
6 17
Protocol
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 19
Ciência da Computação – Redes de Computadores
3.6) A Camada de Aplicação76
4321
A B
AplicaçãoApresentação
SessãoTransporte
RedeEnlaceFísica
5
76
4321
5
Protocolos específicos: . HTTP
. FTP
. SMTP
. DNS
Programação de aplicações de rede
. Socket API
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 20
Ciência da Computação – Redes de Computadores
3.6.1) A Camada de Aplicação
Processadorde textos
Banco de dados
Planilhade cálculo
Gerenciamento
Transferênciade arquivos
Emulaçãode terminal
Correio eletrônico
Aplicações - Hosts Aplicações - Rede
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 21
Ciência da Computação – Redes de Computadores
3.6.1) Aplicações e Protocolos de Aplicações
Aplicação:
São processos distribuídos em
comunicação onde:
. Executam nos computadores usuários
da rede como programas de usuário;
. Trocam mensagens para realização da
aplicação. Exemplo: Email, FTP, WEB;
Protocolos de aplicação:
. Fazem parte das aplicações e definem
mensagens trocadas e as ações
tomadas;
. Usam serviços de comunicação das
camadas inferiores.
aplicaçãotransporte
redeenlacefísica
aplicaçãotransporte
redeenlacefísica
aplicaçãotransporte
redeenlacefísica
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 22
Ciência da Computação – Redes de Computadores
3.6.2) Aplicações de Rede: Definições
Processo: programa executando num host.
Processos executando em diferentes hosts se comunicam com um
protocolo da camada de aplicação;
Agente usuário: software que faz interface entre os usuários da
rede. Implementa protocolo da camada de aplicação, ou seja:
. WEB: browser;
. E-mail: leitor de correio;
. Streaming audio/video: media player.
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 23
Ciência da Computação – Redes de Computadores
3.6.3) Aplicações de Rede: Cliente - Servidor
Aplicações de rede típicas têm duas
partes: cliente e servidor
Cliente:
. Inicia comunicação com o servidor (“fala
primeiro”);
. Tipicamente solicita serviços do servidor,
. Web: cliente implementado no browser e
e-mail no leitor de correio;
Servidor:
. Fornece os serviços solicitados ao cliente;
. Exemplos: Web server envia a página
Web solicitada, servidor de e-mail envia as
mensagens.
aplicaçãotransporte
redeenlacefísica
aplicaçãotransporte
redeenlacefísica
pedido
resposta
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 24
Ciência da Computação – Redes de Computadores
3.6.4) Interfaces de Programação
API: Application Programming Interface
Define a interface entre a camada de aplicação e de transporte
Socket: Internet API
Dois processos se comunicam enviando dados para o socket e lendo dados de
dentro do socket
Identificação e comunicação entre processos:
Um processo “identifica” o outro processo com o qual ele quer se comunicar
através de:
. IP address do computador no qual o processo remoto executa;
. Port Number que permite ao computador receptor determinar o processo local
para o qual a mensagem deve ser entregue.
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 25
Ciência da Computação – Redes de Computadores
3.6.5) Alguns requisitos de Transporte de Aplicações comuns
Aplicação
File Transfer
Web Documents
Real-time
Audio/video
Stored Audio/video
Jogos Interativos
E-business
Perdas
Sem Perdas
Sem Perdas
Tolerante
Tolerante
Tolerante
Tolerante
Sem Perda
Banda
Elástica
Elástica
Elástica
Aúdio: 5Kb-1Mb
Vídeo:10Kb-5Mb
Igual à anterior
Kbps
Elástica
Sensível Ao Atraso
Não
Não
Não
Sim, até 100 ms
Sim, segundos
Sim, até 100 ms
Sim
3) Arquiteturas, padrões e funcionalidades das camadas3) Arquiteturas, padrões e funcionalidades das camadas 26
Ciência da Computação – Redes de Computadores
3.6.6) Aplicações e protocolos de Transporte da Internet
Aplicação
Acesso De Terminais Remotos
Web
Transferência De Arquivos
Streaming Multimedia
Servidor de Arquivos Remoto
Telefonia Internet
Protocolo de
Aplicação
SMTP [RFC 821]
TelNet [RFC 854]
HTTP [RFC 2068]
ftp [RFC 959]
RTP ou proprietário
(e.g. RealNetworks)
NSF
RTP ou proprietário
(e.g., Vocaltec)
Protocolo de
Transporte
TCP
TCP
TCP
TCP
TCP ou UDP
TCP ou UDP
Tipicamente UDP