Buscar

CCT0008_11

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

REDES DE COMPUTADORES - CCT0008
Semana Aula: 11
Protocolos de Transporte
Tema
Protocolos de Transporte
Palavras-chave
Objetivos
O aluno deverá ser capaz de:
 Explicar a importância do uso dos protocolos TCP e UDP para a comunicação de dados;
 Comparar e confrontar recursos e serviços oferecidos pelos protocolos TCP e UDP;
 Descrever como os dados são transmitidos através dos protocolos TCP e UDP
Estrutura de Conteúdo
Unidade 8: Protocolos de Transporte
8.1. Fundamentos da Camada de transporte
8.1.1. Portas e Sockets
8.1.2. Conexão: Three Way Handshake
8.2. Protocolos TCP e UDP
8.2.1 ? Transporte orientado a conexão ? TCP
8.2.2 ? Transporte não orientado a conexão - UDP
 
Dando continuidade ao aprendizado de protocolos da família TCP/IP. Nesta aula estudaremos os 
protocolos TCP e UDP, fundamentais para o processo de comunicação entre computadores;
Vale lembrar que, tanto o TCP quanto o UDP são protocolos da camada de transporte (com referência ao 
modelo TCP/IP), enquanto o IP está posicionado na camada de rede;
Toda aplicação, que utilizamos atualmente (se desenvolvida para o padrão TCP/IP), utilizará o protocolo 
TCP para garantir a entrega dos pacotes e utilizará o IP para identificar (por meio de um endereço que 
chamamos de IP) tanto a máquina de origem quanto a máquina de destino;
Ao entender o funcionamento destes protocolos de camada de transporte e camada de rede, nas próximas 
aulas, abordar-se-ão os protocolos de camada de enlace e física completando, assim, toda a visão do fluxo 
de pacote desde a origem até o destino.
 
 
Suporte conceitual:
 
Unidade 8: Protocolos de Transporte
8.1. Fundamentos da Camada de transporte
 
Camada de Transporte
Posicionada entre as camadas de Aplicação e Redes, a camada de transporte é fundamental na arquitetura 
de rede em camadas, pois desempenha o papel fundamental de fornecer serviços de comunicação 
diretamente aos processos de aplicação que rodam em máquinas diferentes. Isto é, fornece uma 
comunicação lógica entre estes processos. Os processos de aplicação utilizam a comunicação lógica 
provida pela camada de transporte sem a preocupação com os detalhes da infraestrutura física utilizada 
para transportar as mensagens:
 Divide os dados que chegam da camada de aplicação em segmentos e passa-os com o endereço 
de destino para a próxima camada para transmissão, que neste caso será a camada de rede. 
 Fornece uma comunicação lógica entre os processos do aplicativo em execução entre hosts 
diferentes, que pode ser orientada à conexão e não orientada à conexão. 
 A transferência de dados na camada de transporte também pode ser categorizada como confiável 
ou não confiável, com informações de estado ou sem informações de estado;
 Utiliza o conceito de porta para a identificação dos processos de aplicação;
 Especifica 2 tipos de protocolos e a utilização de um ou de outro depende das necessidades da 
aplicação (SNMP-UDP, FTP-TCP): 
o TCP (Transmission Control Protocol)
o UDP (User Datagram Protocol)
8.1.1. Portas e sockets
Portas
Identificam os processos de origem e de destino viabilizando a comunicação fim-a-fim. O 
Sistema operacional oferece uma interface (socket) (linkar com o texto sobre socket no 
final do arquivo) que permite às aplicações especificarem ou acessarem portas em um 
determinado host enviando e recebendo datagramas de forma independente. 
As portas são classificadas em: 
 
? Reservadas (padronizadas através da RFC 1070) - 0 - 1023 
 
? Liberadas (automaticamente definida pelo SO para aplicações clientes e/ou 
portas de servidores de aplicações ainda não reconhecidas formalmente na 
Internet) - 1024 a 65535 
 
Exemplos de Portas conhecidas
Porta TCP - Descrição 
20 - Servidor FTP (File Transfer Protocol, protocolo de transferência de arquivo) (canal de dados) 
21 - Servidor FTP (canal de controle) 
23 - Servidor Telnet 
53 - Transferências de zona DNS (Domain Name System, sistema de nomes de domínios) 
80 - Servidor da Web (HTTP, Hypertext Transfer Protocol, protocolo de transferência de hipertexto) 
139 - Serviço de sessão de NetBIOS 
 
Porta UDP - Descrição 
53 - Consultas de nomes DNS (Domain Name System, sistema de nomes de domínios) 
69 - Trivial File Transfer Protocol (TFTP) 
137 - Serviço de nomes de NetBIOS 
138 - Serviço de datagrama de NetBIOS 
161 - Simple Network Management Protocol (SNMP) 
520 - Routing Information Protocol (RIP, protocolo de informações de roteamento)
 
Socket
A associação entre 2 processos cooperantes (cliente/servidor) é identificada por um par de sockets 
(socket1, socket2), uma vez estabelecida uma conexão, cada socket corresponde a um ponto final dessa 
conexão.
É o identificador único de cada conexão existente num host em determinado momento pois associa IP 
origem, porta origem, IP de destino e Porta de Destino.
8.1.2. Conexão: Three Way Handshake
 
O protocolo TCP especifica três fases durante uma conexão: estabelecimento da ligação, transferência e 
término de ligação. 
O estabelecimento da ligação é feito em três passos, enquanto que o término é feito em quatro. Durante a 
inicialização são inicializados alguns parâmetros, como o Sequence Number (número de sequência) para 
garantir a entrega ordenada e robustez durante a transferência.
 
Estabelecimento da ligação
Tipicamente, numa ligação TCP existe aquele designado de servidor (que abre um socket e espera 
passivamente por ligações) num extremo, e o cliente no outro. 
O cliente inicia a ligação enviando um pacote TCP com a flag SYN activa e espera-se que o servidor aceite 
a ligação enviando um pacote SYN+ACK. Se, durante um determinado espaço de tempo, esse pacote não 
for recebido ocorre um timeout e o pacote SYN é reenviado. 
O estabelecimento da ligação é concluído por parte do cliente, confirmando a aceitação do servidor 
respondendo-lhe com um pacote ACK.
Durante estas trocas, são trocados números de sequência iniciais (ISN) entre os interlocutores que irão 
servir para identificar os dados ao longo do fluxo, bem como servir de contador de bytes transmitidos 
durante a fase de transferência de dados (sessão).
No final desta fase, o servidor inscreve o cliente como uma ligação estabelecida numa tabela própria que 
contém um limite de conexões, o backlog. No caso do backlog ficar completamente preenchido a ligação é 
rejeitada ignorando (silenciosamente) todos os subsequentes pacotes SYN.
 
Transferência de dados (sessão)
Durante a fase de transferência o TCP está equipado com vários mecanismos que asseguram a 
confiabilidade e robustez: números de sequência que garantem a entrega ordenada, código detector de 
erros (checksum) para detecção de falhas em segmentos específicos, confirmação de recepção e 
temporizadores que permitem o ajuste e contorno de eventuais atrasos e perdas de segmentos.
Como se pode observar pelo cabeçalho TCP, existem permanentemente um par de números de sequência, 
doravante referidos como número de sequência e número de confirmação (ACKnowledgement). O emissor 
determina o seu próprio número de sequência e o receptor confirma o segmento usando como número ACK 
o número de sequência do emissor. Para manter a confiabilidade, o receptor confirma os segmentos 
indicando que recebeu um determinado número de bytes contíguos. Uma das melhorias introduzidas no 
TCP foi a possibilidade do receptor confirmar blocos fora da ordem esperada. Esta característica designa-
se por selective ACK, ou apenas SACK.
A remontagem ordenada dos segmentos é feita usando os números de sequência, de 32 bit, que reiniciam 
a zero quando ultrapassam o valor máximo, 231-1, tomando o valor da diferença. 
 
As confirmações de recepção (ACK) servem também ao emissor para determinar as condições da rede. 
Dotados de temporizadores,tanto os emissores como receptores podem alterar o fluxo dos dados, 
contornar eventuais problemas de congestão e, em alguns casos, prevenir o congestionamento da rede. O 
protocolo está dotado de mecanismos para obter o máximo de performance da rede sem a congestionar ? o 
envio de tramas por um emissor mais rápido que qualquer um dos intermediários (hops) ou mesmo do 
receptor pode inutilizar a rede. São exemplo a janela deslizante, o algoritmo de início-lento
 
Adequação de parâmetros
O cabeçalho TCP possui um parâmetro que permite indicar o espaço livre atual do receptor (emissor 
quando envia a indicação): a janela (ou window). Assim, o emissor fica a saber que só poderá ter em 
trânsito aquela quantidade de informação até esperar pela confirmação (ACK) de um dos pacotes - que por 
sua vez trará, com certeza, uma atualização da janela. Curiosamente, a pilha TCP no Windows foi 
concebida para se auto-ajustar na maioria dos ambientes e, nas versões atuais, o valor padrão é superior 
em comparação com versões mais antigas.
Porém, devido ao tamanho do campo, que não pode ser expandido, os limites aparentes da janela variam 
entre 2 e 65535, o que é bastante pouco em redes de alto débito e hardware de alta performance. Para 
contornar essa limitação é usado umaOpção especial que permite obter múltiplos do valor da janela, 
chamado de escala da janela, ou TCP window scale; este valor indica quantas vezes o valor da janela, de 
16 bit, deve ser operado por deslocamento de bits (para a esquerda) para obter os múltiplos, podendo 
variar entre 0 e 14. Assim, torna-se possível obter janelas de 1gigabyte. O parâmetro de escala é definido 
unicamente durante o estabelecimento da ligação.
 
Término da ligação
A fase de encerramento da sessão TCP é um processo de quatro fases, em que cada interlocutor 
responsabiliza-se pelo encerramento do seu lado da ligação. Quando um deles pretende finalizar a sessão, 
envia um pacote com a flag FIN ativa, ao qual deverá receber uma resposta ACK. Por sua vez, o outro 
interlocutor irá proceder da mesma forma, enviando um FIN ao qual deverá ser respondido um ACK.
Pode ocorrer, no entanto, que um dos lados não encerre a sessão. Chama-se a este tipo de evento de 
conexão semi-aberta. O lado que não encerrou a sessão poderá continuar a enviar informação pela 
conexão, mas o outro lado não.
(http://pt.wikipedia.org/wiki/Transmission_Control_Protocol.)
 
 
8.2. Protocolos TCP e UDP
 
TCP (Protocolo de Controle de Transmissão): protocolo que oferece serviços de entrega de pacotes 
orientados à conexão. Dentre esses serviços estão verificação de erros e numeração sequencial. O 
dispositivo de destino responde com um pacote de confirmação de recebimento a cada pacote ou grupo de 
pacotes recebido;
UDP (Protocolo de Datagrama do Usuário): protocolo que oferece serviço de entrega de pacotes em 
conexão, ou seja, sem nenhum tipo de verificação de erros, numeração sequencial ou garantia de entrega;
 
Entrega confiável x entrega não confiável 
A entrega confiável de dados assegura a entrega dos segmentos ao seu destino em uma sequência 
adequada, sem qualquer dano ou perda. Um protocolo confiável como o TCP cuida de todos os problemas 
fundamentais de rede como congestionamento, fluxo de dados e duplicação.
A entrega não-confiável de dados não promete a entrega dos segmentos ao seu destino. No processo de 
entrega não confiável de dados, os segmentos podem ser corrompidos ou perdidos. Um protocolo não 
confiável como o UDP assume que a rede subjacente é completamente confiável. Os protocolos não 
confiáveis não cuidam de alguns problemas fundamentais como congestionamento, fluxo de dados e 
duplicação.
 
Entrega com informação de estado x sem informação de estado
A entrega de dados com informações de estado utiliza o conceito de ?sessão?, em que um lote de 
solicitações é enviado e respostas são recebidas. As informações divulgadas em uma solicitação podem 
ser utilizadas para modificar as solicitações futuras. 
Na entrega de dados sem informação de estado, cada solicitação é autocontida, sem quaisquer outras 
informações associadas a qualquer outras informações associadas a qualquer outra solicitação. 
 
8.2.1 ? Transporte orientado a conexão ? TCP
TCP 
O TCP (tranmission Control Protocol ? Protocolo de Controle de Transmissão), RFCs: 793, 1122, 1323, 
2018, 2581, é um dos protocolos da pilha TCP/IP que está localizado na camada de transporte. 
 
O serviço oferecido pelo TCP tem sete caracterísitcas importantes:
 Orientação à conexão: um aplicativo primeiro deve solicitar uma conexão com um destino, e então 
usar a conexão para transferir dados.
 Comunicação ponto a ponto: cada conexão de TCP tem exatamente duas extremidades.
 Confiabilidade completa. O protocolo garante que os dados enviados através de uma conexão 
serão entregues exatamente como enviados, sem dados faltando ou fora de ordem.
 Comunicação full Duplex: Uma conexão TCP permite que os dados fluam em uma ou outra dreção 
e permite que um ou outro programa aplicativo envie dos a qualquer hora. Ele pode armazenar 
nos buffers dados que partem e que chegam em ambas as direções, possibilitando que um 
aplicativo envie dados e então continue uma computação enquanto os dados estão sendo 
transferidos.
 Interface de stream: um aplicativo envia uma sequência contínua de octetos através de uma 
conexão. Porém não garante que os dados serão entregues ao aplicativo receptor em pedaços do 
mesmo tamanho que foram transferidos pelo aplicativo remetente.
 Partida de conexão confiável: O TCP exige que dois aplicativos criem uma conexão, ambos devem 
concordar com a nova conexão;
 Desligamento de conexão graciosa(Graceful Connection Shutdown).: um programa aplicativo pode 
abrir uma conexão, enviar quantias arbitrárias de dados e então requisitar o fechamento da 
conexão.. O TCP garante a entrega confiável de todos os dados antes de fechar a conexão.
 
O TCP estabelece uma conexão entre o processo na origem e o processo no host de destino antes de 
enviar os segmentos dos dados reais. Uma vez que a conexão esteja estabelecida, os dados podem ser 
transferidos em ambas as direções entre dois hosts (full duplex);
 
Para que vários processos simultaneamente usem os serviços do TCP, é usado o conceito de porta, onde 
cada processo de aplicação, em um dado momento, é identificado por uma porta diferente.
 
Cabeçalho (Header) TCP
O TCP utiliza um único formato para todas as mensagens e emprega o termo segmento para se referir a 
uma mensagem.
 
Onde,
 Porta Origem e Porta Destino identificam o processo de aplicação que está enviando dados e o 
processo de aplicação que irá receber os dados. 
 Número de seqüência identifica os bytes enviados. Na prática ele é a identificação do primeiro byte 
de dados contido no segmento enviado. Os demais são seqüenciados a partir deste byte.
 Acknowledgement identifica os bytes que foram recebidos e tratados sem erro pelo destino, bem 
como a seqüência do próximo byte esperado
 Tamanho é representa o tamanho total do frame TCP
 Reservado é um campo ainda não utilizado
 FLAGS identifica as flags (syn, fin, psh, rst, ack, urg)
 Window identifica o tamanho da janela para o controle de fluxo
 Checksum destina-se a verificação de erros de transmissão. É calculado usando o pseudo header, 
o header TCP e também a área de dados
 Urgent Pointer é um ponteiro para dados urgentes, contidos na área de dados.
 
 
8.2.2 ? Transporte não orientado a conexão - UDP
UDP
O protcolo UDP, padronizado pela RFC 768, é bastante simples, é orientado a datagrama, não orientado à 
conexão, não executa controle de fluxo, controle de erro e sequenciamento. Não tem reconhecimento dos 
datagramas (ACK/NACK) e devido a sua simplicidade é considerado não confiável pois não asseguraque 
as mensagens transmitidas cheguem ao destino e caso cheguem, poderão chegar fora de ordem. A 
aplicação que utiliza o UDP deve tratar a falta de confiabilidade. Foi desenvolvido para aplicações que não 
geram volume muito alto de tráfego na Internet
 
Estratégias de Aprendizagem
Indicação de Leitura Específica
Aplicação: articulação teoria e prática
Capturem um fluxo de pacotes e descrevam todos os protocolos envolvidos nesta comunicação.
Considerações Adicionais
Livro Kurose - Cap 3 - 3.1, 3.2, 3.3 e 3.4

Outros materiais