Você está na página 1de 51

INTRODUÇÃO ÀS REDES

Capítulo 08: Camada de Transporte

Professor: Kleber Nabas kleber@utfpr.edu.br whatsApp: 99603-1790


Resumo
Transporte de Dados
Rastreamento Conversas Individuais
Segmentando Dados e Remontando Segmentos
Adicionar Informações de Cabeçalho
Identificação das Aplicações
Multiplexação das Conversas
Protocolos da Camada de Transporte
Protocolos da Camada de Transporte
• TCP
• Possibilita a confirmação da entrega de pacotes.
• Há três operações básicas para garantir a confiabilidade com o TCP:
• Numeração e rastreamento de segmentos de dados transmitidos por uma aplicação específica a
um host específico
• Confirmação dos dados recebidos
• Retransmissão dos dados não confirmados após certo período
• UDP
• UDP oferece as funções básicas para entrega de segmentos de dados entre as
aplicações apropriadas, com muito pouca sobrecarga e verificação de dados.
• Perfeito para aplicações que não exigem confiabilidade.
• O protocolo de Camada de Transporte Certo para a Aplicação Certa
• O TCP é melhor para bancos de dados, navegadores da Web e clientes de e-mail.
• O UDP é ideal para o streaming de áudio ou vídeo ao vivo, VoIP
Protocolos da Camada de Transporte
Recursos do TCP
- Estabelecimento de sessão assegura que as aplicações estejam prontas para
receber os dados.
- Entrega na mesma ordem garante que os segmentos sejam reagrupados na
ordem apropriada.
- Entrega confiável significa que segmentos perdidos são enviados novamente
para que os dados sejam recebidos completamente.
- Controle de fluxo assegura que o destinatário é capaz de processar os dados
recebidos.
Cabeçalho TCP
Cabeçalho TCP
Porta de origem - Campo de 16 bits usado para identificar o aplicativo de origem por número de porta.
Porta de destino - Campo de 16 bits usado para identificar o aplicativo de destino por número de porta.
Número de sequencial - Campo de 32 bits usado para fins de remontagem de dados.
Número de Confirmação - Campo de 32 bits usado para indicar que os dados foram recebidos e o próximo
byte esperado da fonte.
Comprimento do cabeçalho - Campo de 4 bits conhecido como 'offset' de datas' que indica o
comprimento do cabeçalho do segmento TCP.
Reservado - Campo de 6 bits que é reservado para uso futuro.
Bits de controle - Campo de 6 bits usado que inclui códigos de bits, ou sinalizadores, que indicam o
finalidade e função do segmento TCP.
Tamanho da janela - Campo de 16 bits usado para indicar o número de bytes que podem ser aceitos de
uma só vez.
Checksum - Campo de 16 bits usado para verificação de erros do cabeçalho e dos dados do segmento.
Urgente - Campo de 16 bits usado para indicar se os dados contidos são urgentes.
Aplicações que usam TCP
Recursos do UDP
- Reagrupamento de dados não ordenado. Os dados são reagrupados na
ordem em que são recebidos.
- Entrega não confiável nenhum segmento perdido é reenviado.
- Sem conexão, nenhuma sessão é estabelecida.
- Sem controle de fluxo, não informa ao remetente sobre a
disponibilidade do recurso.
Cabeçalho UDP
Cabeçalho UDP
Porta de origem - Campo de 16 bits usado para identificar o aplicativo de
origem por número de porta.
Porta de destino - Campo de 16 bits usado para identificar o aplicativo de
destino por porta número.
Comprimento - Campo de 16 bits que indica o comprimento do cabeçalho
do datagrama UDP.
Checksum - Campo de 16 bits usado para verificação de erros do
cabeçalho e dos dados do datagrama.
Aplicações que usam o UDP
Há três tipos de aplicações que são mais adequadas para o UDP:

Aplicativos de vídeo e multimídia ao vivo - Esses aplicativos podem tolerar a perda


de dados, mas requerem pouco ou nenhum atraso. Os exemplos incluem VoIP e
transmissão de vídeo ao vivo.
Solicitações simples e aplicativos de resposta - aplicativos com transações simples
em que um host envia uma solicitação e pode ou não receber uma resposta. Os
exemplos incluem DNS e DHCP.
Aplicativos que lidam com a confiabilidade - Comunicações unidirecionais em que
o controle de fluxo, a detecção de erros, as confirmações e a recuperação de erros
não são necessários ou podem ser gerenciados pelo aplicativo. Os exemplos
incluem SNMP e TFTP.
Aplicações que usam o UDP
Camada de Transporte - TCP e UDP
• Várias Conversações Separadas
• A camada de transporte separa e administra várias conversas com diferentes requisitos de
transporte.
• Diversas aplicações enviam e recebem dados por meio da rede ao mesmo tempo.
• Valores de cabeçalho exclusivos permitem que os protocolos TCP e UDP gerenciem essas várias
conversas simultâneas identificando as aplicações.
• Estes identificadores únicos são os números de porta.
• Números de Porta
• Geralmente visualizados em pares: porta de origem e porta de destino.
• A porta de origem é escolhida de modo dinâmico pelo remetente.
• A porta de destino é usado para identificar uma aplicação no servidor (destino).
Várias conversações separadas
Números de Porta
Camada de Transporte - TCP e UDP
• Pares de Sockets
• A combinação do endereço IP origem e o número da porta de origem ou o endereço IP destino e o
número da porta de destino é conhecida como socket.
• O socket é usado para identificar o servidor e o serviço que está sendo requisitado pelo cliente.
• Dois conectores combinados para formar um par de conectores: (192.168.1.5:1099, 192.168.1.7:80).
• Os conectores permitem que vários processos ativos em um cliente e várias conexões para um processo
de servidor sejam distinguidos um do outro.
• Grupos de Números de Porta
• IANA criou três grupos de números de portas:
• Portas conhecidas (0 a 1023)
• Portas registradas (1024 a 49151)
• Portas privadas e/ou dinâmicas (49152 a 65535)
• O Comando netstat
• O comando netstat permite que um usuário visualize as conexões ativas em um host.
• O netstat também exibe o processo que usa a conexão.
Pares de Sockets
Número de Portas
Comando netstat
Processo de Comunicação TCP
• Processos em Servidores TCP
• Cada processo de aplicação em execução no servidor usa um número de porta.
• Um servidor específico não pode ter dois serviços atribuídos ao mesmo número de porta no mesmo
serviço de camada de transporte.
• Uma aplicação ativa em um servidor atribuída a uma porta específica é considerada aberta.
• Toda requisição de cliente endereçada a uma porta aberta é aceita e processada pela aplicação
associada no servidor a essa porta.
• Pode haver muitas portas abertas simultaneamente em um servidor, uma para cada aplicação ativa no
servidor.
• Estabelecimento de Conexão TCP
• Uma conexão TCP é estabelecida em três etapas:
• O cliente iniciador requisita uma sessão de comunicação cliente-servidor com o servidor.
• O servidor confirma a sessão de comunicação cliente-servidor e requisita uma sessão de
comunicação de servidor-cliente.
• O cliente iniciador confirma a sessão de comunicação de servidor-cliente.
Clientes Enviando Requisições TCP
Portas de Destino das Requisições
Portas de Origem das Requisições
Portas de Destino das Respostas
Portas de Origem das Respostas
Estabelecimento de conexão TCP
Encerramento de sessão TCP
Controle de fluxo e confiabilidade
• Confiabilidade do TCP – Entrega Garantida e Solicitada
• Os segmentos TCP usam números de sequência para identificar e reconhecer cada
segmento com exclusividade, rastrear a ordem dos segmentos e indicar como
reagrupar e reordenar os segmentos recebidos.
• Um ISN (initial sequence number, número de sequência inicial) é escolhido
aleatoriamente durante a configuração da sessão TCP. O ISN é então incrementado
pelo número de bytes transmitidos.
• O recebimento do processo TCP efetua o buffer dos dados do segmento até que todos
os dados sejam recebidos e reagrupados.
• Os segmentos recebidos fora de ordem são mantidos para serem processos
posteriormente.
• Os dados são entregues à camada da aplicação somente quando foram totalmente
recebidos e reagrupados.
Controle de fluxo e confiabilidade
Confiabilidade do TCP - perda de dados e retransmissão
Confiabilidade do TCP - perda de dados e retransmissão
Controle de Fluxo TCP – Tamanho da Janela e Confirmações
Controle de Fluxo TCP – Tamanho da Janela e Confirmações
Controle de Fluxo TCP - Tamanho Máximo do Segmento (MSS)
Controle de Fluxo TCP - Prevenção de Congestionamento
Controle de Congestionamento TCP
Comunicação UDP
• Baixa sobrecarga vs. confiabilidade UDP
• O UDP tem uma sobrecarga mais baixa que o TCP.
• O UDP não é orientado a conexão e não fornece mecanismos sofisticados de
retransmissão, sequenciamento e controle de fluxo.
• As aplicações que executam UDP ainda podem contar com confiabilidade, mas ela
precisa ser implementada na camada de aplicação.
• Remontagem do Datagrama UDP
• O UDP simplesmente reagrupa os dados na ordem em que foram recebidos.
• A aplicação deve identificar a sequência apropriada, se necessário.
• Processos em Servidores e Requisições UDP
• As aplicações UDP em servidores também recebem números de portas muito
conhecidas ou registradas.
• As requisições recebidas em determinada porta são encaminhadas para a aplicação
apropriada de acordo com os números de porta.
Baixa Sobrecarga do UDP Versus Confiabilidade
Remontagem do Datagrama UDP
Processos em Servidores e Requisições UDP
Comunicação UDP
Processos em Clientes UDP
• A comunicação UDP cliente-servidor também é iniciada por uma
aplicação cliente.
• O processo do cliente UDP seleciona dinamicamente um número de
porta e o utiliza como a porta de origem.
• A porta de destino geralmente é o número de porta muito conhecida
ou registrada que é atribuído ao processo do servidor.
• O mesmo par de portas origem e destino é usado no cabeçalho de
todos os datagramas da transação.
• Os dados que retornam ao cliente a partir do servidor tem os números
de porta de origem e destino no cabeçalho do datagrama invertidos.
TCP ou UDP
• Aplicações que usam o TCP
• O TCP processa todas as tarefas relacionadas à camada de transporte.
• Isso libera a aplicação de ter que gerenciar essas tarefas.
• As aplicações podem simplesmente enviar o fluxo de dados para a camada de transporte e
usar os serviços TCP.
• Aplicações que usam o UDP
• Aplicações em vídeo e multimídia ao vivo - Podem tolerar pequenas perdas de dados, mas
exigem pouco ou nenhum atraso. Os exemplos incluem VoIP e transmissão de vídeo ao vivo.
• Aplicações de solicitação e resposta simples - Aplicações com transações simples em que um
host envia uma solicitação e pode ou não receber uma resposta. Os exemplos incluem DNS e
DHCP.
• Aplicações que tratam a própria confiabilidade – Comunicações unidirecionais em que o
controle de fluxo, detecção de erros, confirmações e recuperação de erros não são
necessários ou podem ser tratados pela aplicação.
Os exemplos incluem SNMP e TFTP.
FIM

Você também pode gostar