Buscar

Camada de Transporte

Prévia do material em texto

FACULDADE ESTÁCIO SÁ – PE 
SISTEMAS DE INFORMAÇÃO 
 
 
 
REDES DE COMPUTADORES 
 
PROF :DJACIR MACIEL 
 
maciel.estacio@gmail.com 
 
Aula 3 – CAMADA DE TRANSPORTE 
 CAMADA DE TRANSPORTE 
 
 A camada de transporte é responsável pela comunicação 
entre processos. 
 
 
 CAMADA DE TRANSPORTE 
 CAMADA DE TRANSPORTE 
 Processo é um programa aplicativo em execução 
em um host; 
 
 Um protocolo da camada de transporte fornece 
uma comunicação lógica entre os processos de 
aplicação que funcionam em host diferentes; 
 
 Uma comunicação lógica nesse contexto significa 
que, do ponto de vista da aplicação tudo se passa 
como se os host estivessem conectados 
diretamente. 
 
 
 Na verdade essas máquinas podem estar conectas 
remotamente através de inúmeros nós; 
 
 
 Processos de aplicação usam a comunicação 
lógica provida pela camada de transporte para 
enviar mensagens entre si, sem a preocupação da 
infra estrutura física. 
 CAMADA DE TRANSPORTE 
 CAMADA DE TRANSPORTE 
 Comunicação entre Processos 
 
 A camada de enlace é responsável pela 
transmissão de frames entre dois nós adjacentes 
conectados através de um link físico; 
 
 Essa comunicação é denominada nó a nó ; 
 
 A camada de rede é responsável pelo roteamento 
de datagramas entre dois hosts; 
 
 Já essa comunicação é denominada host a host ; 
 
 
 CAMADA DE TRANSPORTE 
 A comunicação real ocorre entre dois processos ou 
programas aplicativos; 
 
 Então é necessário que ocorra uma comunicação 
processo a processo; 
 
 Para completar a comunicação se faz necessário 
um mecanismo para transferir dados de um 
processo em execução no host de origem para um 
processo correspondente em execução no host de 
destino; 
 CAMADA DE TRANSPORTE 
 
 Então a camada de transporte é responsável pela 
comunicação entre processos; 
 
 Uma forma de comunicação entre dois processos é 
a cliente/servidor como já estudado; 
 
 
 Funções da camada de Transporte 
 
 Responsável pela movimentação de dados, de forma 
eficiente e confiável; 
 
 Deve poder regular o fluxo de dados e garantir 
confiabilidade, assegurando que os dados cheguem em 
seu destino sem erros e na sequencia correta 
 CAMADA DE TRANSPORTE 
 Funções da camada de Transporte 
 
 Deve tornar transparente para os usuários 
possíveis variações da confiabilidade do serviço 
fornecido pela camada de rede 
 
 Camada fim a fim: entidade da camada de 
transporte da máquina de origem se comunica 
diretamente com a camada de transporte da 
máquina de destino 
 
 CAMADA DE TRANSPORTE 
 Relações entre camada de Transporte e Rede 
 
 Um protocolo da camada de transporte fornece uma 
comunicação lógica entre os processos de aplicação que 
funcionam em host diferentes; 
 
 Um protocolo da camada de Rede fornece comunicação 
lógica entre os host diferentes. 
 CAMADA DE TRANSPORTE 
 Relação camada Transporte x Rede 
 CAMADA DE TRANSPORTE 
 Os serviços que um protocolo de transporte pode 
fornecer são frequentemente limitados pelo modelo 
de serviço do protocolo subjacente da camada de 
rede; 
 
 Se o protocolo da camada de rede não puder dar 
garantias contra atraso ou garantias de largura de 
banda,para a camada de transporte,este não irá 
garantir para a de aplicação. 
 CAMADA DE TRANSPORTE 
 Segmentação de Dados (Visão Geral) 
 
 Algumas aplicações transmitem grandes quantidades de 
dados; 
 
 Em alguns casos, muitos gigabytes,seria impraticável 
enviar todos estes dados em um segmento muito 
grande; 
 
 Nenhum outro tráfego de rede poderia ser transmitido 
enquanto estes dados estivessem sendo enviados. 
 
 
 CAMADA DE TRANSPORTE 
 CAMADA DE TRANSPORTE 
 Um segmento muito grande de dados pode levar 
minutos ou mesmo horas para ser enviado; 
 
 Além disso, se houvesse algum erro, o arquivo 
inteiro seria perdido ou reenviado; 
 
 Dispositivos de rede não teriam buffers de memória 
grandes o suficiente para armazenar estes dados 
enquanto eles fossem transmitidos ou recebidos; 
 
 O limite varia dependendo da tecnologia de rede e 
do meio físico específico que está sendo usado. 
 CAMADA DE TRANSPORTE 
 Dividir os dados da aplicação em segmentos 
assegura que : 
 
 Os dados sejam transmitidos dentro dos limites do 
meio 
 
 e que os dados de diferentes aplicações possam 
ser multiplexadas no meio. 
 
 Isto inclui o encapsulamento necessário em cada 
lado do segmento. 
 
 
 Cada segmento de dados de aplicação requer a 
adição de cabeçalhos da camada de Transporte 
para indicar a qual comunicação ele está associado 
 CAMADA DE TRANSPORTE 
 Segmentação de Dados 
 
 CAMADA DE TRANSPORTE 
 Reagrupamento de Segmentos 
 
 No host de destino, cada segmento de dados pode 
ser direcionado para a aplicação apropriada. 
 
 Em adição a isso, estes segmentos de dados 
individuais também precisam ser reconstruídos em 
um fluxo completo de dados que seja útil para a 
camada de Aplicação. 
 
 
 CAMADA DE TRANSPORTE 
 Multiplexação de Conversação 
 
 Podem haver muitas aplicações ou serviços sendo 
executados em cada host na rede. 
 
 
 
 CAMADA DE TRANSPORTE 
 CAMADA DE TRANSPORTE 
 
 Cada uma destas aplicações ou serviços é 
designado a um endereço conhecido como uma 
porta para que a camada de Transporte possa 
determinar com qual aplicação ou serviço o dado é 
identificado; 
 
 Em resumo, cada aplicação ou serviço é designado 
para uma determinada porta; 
 
 Multiplexação de Conversação 
 
 CAMADA DE TRANSPORTE 
 Além das funções básicas de segmentação e 
reagrupamento de dados, alguns protocolos da camada 
de Transporte fornecem: 
 
 Conversações orientadas à conexão 
 Entrega Confiável 
 Reconstrução de dados ordenados 
 Controle de Fluxo 
 
 CAMADA DE TRANSPORTE 
 Endereçamento de Porta 
 
 Os serviços baseados em TCP e UDP rastreiam as 
várias aplicações que estão se comunicando. 
 
 Para diferenciar os segmentos e datagramas para 
cada aplicação, o TCP e o UDP têm campos de 
cabeçalho que podem identificar unicamente essas 
aplicações. 
 
 CAMADA DE TRANSPORTE 
 Estes identificadores únicos são os números de 
porta. 
 
 No cabeçalho de cada segmento ou datagrama, há 
uma porta de origem e destino. 
 
 O número da porta de origem é o número para 
essa comunicação associado à aplicação originada 
no host local. 
 CAMADA DE TRANSPORTE 
 
 Os números de porta são designados de várias 
maneiras, dependendo se a mensagem é uma 
solicitação ou uma resposta. 
 
 Quando uma aplicação cliente envia uma 
solicitação à aplicação servidor, a porta de destino 
contida no cabeçalho é o número da porta que é 
designado ao serviço executado no host remoto. 
 CAMADA DE TRANSPORTE 
 
 Por exemplo, quando uma aplicação de navegador 
web faz uma solicitação a um servidor de serviços 
web, o navegador usa o protocolo TCP e a porta 
80. 
 
 Isso acontece porque a porta 80 TCP é a porta 
padrão designada a aplicações com protocolo 
HTTP; 
 CAMADA DE TRANSPORTE 
 Endereçamento de Porta 
 
 CAMADA DE TRANSPORTE 
 A Internet Assigned Numbers Authority (IANA) 
designa números de porta. 
 
 A IANA é um órgão de padrões responsável pela 
designação de vários padrões de endereçamento. 
 
 Existem diferentes tipos de números de portas: 
 CAMADA DE TRANSPORTE 
 Portas Conhecidas (Números 0 a 1023) - Esses números 
estão reservados para serviços e aplicações. 
 
 Eles são comumente usados para aplicações como o 
HTTP (servidor web) POP3/SMTP (servidor de e-mail) e 
Telnet. 
 
 Através destas portas conhecidas os clientes podem ser 
programados para solicitar uma conexão com essa porta 
específica e seu serviço associado. 
 
 CAMADA DE TRANSPORTE 
 
 Portas Registradas (Números 1024 a 49151) - Estes 
números de portas sãodesignados para processos ou 
aplicações de usuário. 
 
 Estes processos são principalmente aplicações 
individuais que um usuário escolheu para instalar em vez 
de aplicações comuns que receberiam uma Porta 
Conhecida. 
 CAMADA DE TRANSPORTE 
 Portas Dinâmicas ou Privadas (Números 49152 a 
65535) - Elas são geralmente designadas 
dinamicamente a aplicações de cliente quando se 
inicia uma conexão. 
 
 Não é muito comum um cliente se conectar a um 
serviço usando uma Porta Dinâmica ou Privada 
(embora alguns programas de compartilhamento 
de arquivos peer-to-peer o façam). 
 CAMADA DE TRANSPORTE 
 CAMADA DE TRANSPORTE 
 Portas de Comunicações 
 CAMADA DE TRANSPORTE 
 Portas utilizadas pelo protocolo TCP 
 CAMADA DE TRANSPORTE 
 Portas utilizadas pelo protocolo UDP 
 
 CAMADA DE TRANSPORTE 
 Portas comuns aos protocolo TCP e UDP 
 Controle de Congestionamento – Controle de Fluxo 
(Visão Geral) 
 
 O TCP também fornece mecanismos para o controle de 
fluxo. 
 
 O controle de fluxo ajuda na confiabilidade de 
transmissões TCP através do ajuste da taxa de fluxo de 
dados efetiva entre os dois serviços na sessão. 
 CAMADA DE TRANSPORTE 
 Quando a origem é informada de que uma 
quantidade especificada de dados nos segmentos 
é recebida, ela pode continuar a enviar mais dados 
para essa sessão. 
 
 O campo Tamanho de Janela no cabeçalho TCP 
especifica a quantidade de dados que podem ser 
transmitidos antes que uma confirmação precise 
ser recebida. 
 CAMADA DE TRANSPORTE 
 Confiável Versus Não confiável 
 
 A camada de transporte oferece duas opções de 
serviços de transporte de dados: confiável ou não 
confiável. 
 
 Se o programa na camada de aplicação requerer 
confiabilidade, necessitamos utilizar um protocolo 
de camada de transporte confiável que 
implemente mecanismos de controle de fluxo, 
controle de erros e ordenação de pacotes. 
 CAMADA DE TRANSPORTE 
 
 Isso implica em um serviço mais lento e mais complexo. 
 
 Por outro lado, o programa pode não requerer 
confiabilidade no transporte de dados; 
 
 Por qual motivos ?? 
 
 Por implementar mecanismos próprios de controle de 
fluxo, controle de erros e ordenação de pacotes 
 
 e ... 
 
CAMADA DE TRANSPORTE 
 Por requerer serviços mais rápidos; 
 
 Finalmente pela natureza do serviço não exigir 
controle de fluxo e de erros (aplicações em tempo 
real). 
 
 Para esses casos, podemos usar um protocolo 
não confiável. 
 CAMADA DE TRANSPORTE 
 Pensemos então !!! 
 
 Segundo a literatura acadêmica, a camada de 
enlace é confiável e implementa controle de fluxo 
e de erros, realmente precisamos disso também 
na camada de transporte? 
 
 A resposta é sim. 
 
 A confiabilidade na camada de enlace é 
implementada entre dois nós adjacentes. Na 
maioria dos casos, precisamos da confiabilidade 
fim a fim (end-to-end). 
 CAMADA DE TRANSPORTE 
 Como a camada de rede na Internet, não é 
confiável (modalidade best effort), necessitamos 
implementar confiabilidade na camada de 
transporte. 
 
 Para compreender que o controle de erros na 
camada de enlace não é suficiente para garantir 
o controle de erros na camada de transporte, 
 
 vejamos a próxima figura 
 CAMADA DE TRANSPORTE 
 
 CAMADA DE TRANSPORTE 
 Na Internet, existem três protocolos diferentes de 
camada de transporte. 
 
 O UDP é um protocolo sem conexão (connectionless) e 
não confiável; 
 
 O TCP e o SCTP são orientados a conexão 
(connection-oriented) e confiáveis. 
 
 Esses três protocolos são capazes de atenderem às 
exigências dos diversos programas da camada de 
aplicação. 
 CAMADA DE TRANSPORTE 
 Protocolo UDP (User Datagram Protocol) 
 
 O UDP é um protocolo simples e sem conexão, 
descrito na RFC 768; 
 
 Ele tem a vantagem de fornecer uma entrega de 
dados de baixa sobrecarga. 
 
 As segmentos de comunicação em UDP são 
chamados datagramas. 
 
 
 
 CAMADA DE TRANSPORTE 
 CAMADA DE TRANSPORTE 
 Processos versus camada transporte – UDP 
 
 Estes datagramas são enviados como o "melhor esforço" 
por este protocolo da camada de Transporte. 
 
 As aplicações que usam UDP incluem: 
 
 (DNS),Vídeo em Streaming , Voz Sobre IP (VOIP) e 
outros. 
 CAMADA DE TRANSPORTE 
 O UDP (User Datagram Protocol) é um protocolo de 
transporte sem conexão (connectionless) e não-
confiável. 
 
 Ele não adiciona nenhum controle adicional aos 
serviços de entrega do IP exceto pelo fato de 
implementar a comunicação entre processos , em vez 
da comunicação entre hosts. 
 
 Da mesma forma, a verificação de erros é 
implementada de forma muito limitada. 
 
 Se o UDP é simples assim, por que um processo iria 
querer usá-lo? 
 
 CAMADA DE TRANSPORTE 
 O UDP é um protocolo muito simples com um mínimo 
de overhead. 
 
 Se um processo quiser enviar uma pequena 
mensagem e não se preocupar muito com a 
confiabilidade, o ele é uma boa escolha. 
 
 Enviar uma pequena mensagem através do UDP 
exige menor interação entre o emissor e o receptor do 
que quando usamos o TCP ou o SCTP. 
 
 CAMADA DE TRANSPORTE 
 Portas UDP 
 CAMADA DE TRANSPORTE 
 Datagramas de Usuário 
 
 Os pacotes UDP, denominados datagramas de 
usuário, possuem um cabeçalho de tamanho fixo, 
de 8 bytes. 
 CAMADA DE TRANSPORTE 
 
 Porta de origem. 
 
 Esse campo especifica o número da porta usada pelo 
processo em execução no host de origem. 
 
 Ele tem 16 bits de comprimento, significando que o 
número da porta pode variar de 0 a 65535. 
 
 CAMADA DE TRANSPORTE 
 Se o host de origem for um cliente , o número da 
porta, na maioria dos casos, é um número de 
porta solicitado pelo processo cliente e escolhido 
randomicamente pelo software UDP em 
execução no host de origem 
 
 Se o host de origem for um servidor, enviando 
uma resposta , o número da porta, na maioria 
dos casos, é um número de porta conhecido. 
 
 CAMADA DE TRANSPORTE 
 Porta de destino. 
 
 Esse campo especifica o número da porta usado 
pelo processo em execução no host de destino. 
 
 Ele também tem 16 bits de comprimento. 
 
 Se o host de destino for um servidor (um cliente 
transmitindo uma solicitação), o número da porta, 
na maioria dos casos, é um número de porta 
conhecido 
 CAMADA DE TRANSPORTE 
 
 Se o host de destino for um cliente (um servidor 
transmitindo sua resposta), o número da porta, na 
maioria das vezes, é um número de porta 
provisória. 
 
 Nesse caso, o servidor copia o número de porta 
provisória que recebeu no pacote de solicitação. 
 CAMADA DE TRANSPORTE 
 Comprimento. 
 
 Esse campo de 16 bits define o comprimento total de 
um datagrama UDP, compreendendo cabeçalho mais 
dados. 
 
 Os 16 bits podem definir um comprimento total entre 0 
a 65.535 bytes. 
 
 Entretanto, o comprimento total deve ser menor, pois 
um datagrama UDP deve ser repassado em um 
datagrama IP de comprimento total igual a 65.535 
bytes. 
 CAMADA DE TRANSPORTE 
 
 O campo de comprimento em um datagrama 
UDP, na verdade, é desnecessário um datagrama 
UDP deve ser encapsulado em um datagrama IP. 
 
 Checksum. Esse campo de 16 bits é usado para 
detectar erros na transmissão de datagrama 
UDP(cabeçalho mais dados). 
 CAMADA DE TRANSPORTE 
 Operação do UDP Serviços Sem Conexão 
(Connectionless) 
 
 Como mencionado anteriormente, o UDP 
implementa serviços de transporte sem conexão. 
 
 Isso significa que cada datagrama de usuário 
enviado pelo UDP é um datagrama 
independente. 
 CAMADA DE TRANSPORTE 
 CAMADA DE TRANSPORTE 
 
 Não controlacongestionamento; 
 
 Não permite a verificação de sequência dos 
segmentos; 
 
 Não permite verificar se existe perda de pacotes; 
 
 Não existe qualquer controle de estado; 
 
 Não existe nenhuma relação entre os diferentes 
datagramas de usuário, mesmo se eles forem 
provenientes de um mesmo processo de origem 
e tiverem o mesmo programa de destino. 
 
 
 Os datagramas de usuário não são numerados. 
 CAMADA DE TRANSPORTE 
 
 Além disso, não existem mecanismos para 
estabelecer e/ou terminar uma conexão virtual, 
ao contrário do que acontece com o TCP. 
 
 Isso significa que cada datagrama de usuário pode 
trafegar por um caminho diferente. 
 CAMADA DE TRANSPORTE 
 
 Cada solicitação deve ser suficientemente 
pequena para caber em um único datagrama 
de usuário. 
 
 Apenas processos que transmitem mensagens 
curtas devem usar o UDP. 
 CAMADA DE TRANSPORTE 
 Controle de Fluxo e de Erros 
 
 O UDP é um protocolo de transporte muito simples e não 
confiável. 
 
 Não controla a quantidade de informação que receptor e 
transmissor possam trocar; 
 
 Não implementa controle de fluxo e, portanto, nenhum 
mecanismo de janelamento. 
 
 O receptor pode ser inundado com um número excessivo 
de mensagens que chegam a ele. 
 CAMADA DE TRANSPORTE 
 
 O UDP não implementa mecanismos de controle 
de erros, exceto o checksum; 
 
 Isso significa que o emissor não sabe se uma 
mensagem foi perdida ou duplicada. 
 
 Quando o receptor detecta um erro por meio do 
checksum, o datagrama de usuário é descartado 
de maneira imperceptível. 
 CAMADA DE TRANSPORTE 
 
 A ausência de controle de fluxo e de controle de erros 
significa que um processo de aplicação usando UDP 
deve implementar esses mecanismos. 
 
 Encapsulamento e desencapsulamento 
 
 Para transmitir uma mensagem de um processo a 
outro, o protocolo UDP encapsula e desencapsula 
mensagens em um datagrama IP. 
 CAMADA DE TRANSPORTE 
 Formação de Filas 
 No UDP portas são associadas à filas. 
 CAMADA DE TRANSPORTE 
 Quando um processo no lado cliente é iniciado, 
este solicita para o sistema operacional um 
número de porta. 
 
 Algumas implementações criam tanto uma fila de 
chegada como uma de saída associada a cada 
processo. 
 
 Outras criam apenas uma fila de chegada 
associada a cada processo. 
 CAMADA DE TRANSPORTE 
 Uso do UDP 
 
 O UDP é adequado para um processo que 
requeira comunicação solicitação-resposta 
simples com pouca preocupação com controle 
de erros e de fluxo. 
 
 Normalmente, ele não é usado para um processo 
como o FTP que precisa transmitir um volume 
muito grande de dados 
 CAMADA DE TRANSPORTE 
 Uso do UDP 
 
 O UDP é adequado para um processo que 
implemente mecanismos internos de controle de fluxo 
e de erros. 
 
 Por exemplo, o processo TFTP (Trivial File Transfer 
Protocol) implementa mecanismos internos de controle 
de fluxo e de erros. 
 
 Ele pode usar o UDP de maneira fácil. 
 CAMADA DE TRANSPORTE 
 Uso do UDP 
 
 O UDP é um protocolo de transporte indicado para 
multicast. 
 
 O recurso de multicast está embutido no software UDP, mas 
não no software TCP. 
 
 O UDP é muito utilizado no gerenciamento de redes, 
protocolo SNMP. 
 
 O UDP é usado em alguns protocolos de roteamento para 
atualização de rotas como o RIP (Routing Information 
Protocol) 
 CAMADA DE TRANSPORTE 
 
 Protocolo TCP ( Transmission Control Protocol) e UDP 
(User Datagram Protocol) 
 
 O TCP é um protocolo orientado à conexão, descrito na 
RFC 793; 
 
 O TCP causa sobrecarga adicional para adicionar 
funções; 
 
 As funções adicionais especificadas pelo TCP são as 
ditas entrega ordenada, entrega confiável e controle de 
fluxo. 
 
 
 CAMADA DE TRANSPORTE 
 
 Cada segmento TCP tem 20 bytes de overhead no 
cabeçalho que encapsula o dado da camada de 
Aplicação, enquanto que o segmento UDP tem apenas 8 
bytes. Veja a figura para uma comparação. 
 
 As aplicações que usam TCP são: 
 
 
 Navegadores web, E-mail ,FTP e outros. 
 
 
 CAMADA DE TRANSPORTE 
 CAMADA DE TRANSPORTE 
 Processos versus camada transporte – TCP 
 
 Diferentemente do UDP, o TCP é um protocolo orientado a 
conexão; 
 
 Como ele é orientado a conexão,o receptor e o transmissor 
são devidamente apresentados e realizam uma negociação 
denominada handshake; 
 
 Ele cria uma conexão virtual entre dois processos TCPs 
pata a transmissão de dados e troca alguns número de 
sequencias iniciais; 
 
 Além disso, o TCP implementa mecanismos de controle de 
fluxo e de erros na camada de transporte. 
 
 
 
 CAMADA DE TRANSPORTE 
 Serviços TCP 
 
 Comunicação entre processos 
 
 Assim como o UDP, o TCP implementa a 
comunicação entre processos utilizando 
números de porta. 
 CAMADA DE TRANSPORTE 
 Portas usadas pelo 
 CAMADA DE TRANSPORTE 
 Serviços de Entrega de Fluxo de Dados 
 
 O TCP diferentemente do UDP, é um protocolo 
orientado a fluxo de dados. 
 
 No UDP, um processo (um programa aplicativo) envia 
mensagens, com delimitadores predefinidos, para o 
UDP. 
 
 O UDP acrescenta seu próprio cabeçalho a cada uma 
dessas mensagens e as entrega para transmissão pelo 
IP. 
 CAMADA DE TRANSPORTE 
 
 Cada mensagem do processo é denominada datagrama 
de usuário e se torna, finalmente, um datagrama IP. 
 
 Nem o IP nem o UDP estabelecem relação entre os 
datagramas. 
 
 CAMADA DE TRANSPORTE 
 O TCP, por outro lado, possibilita a um processo 
aplicativo enviar dados na forma de um fluxo de 
bytes e possibilita ao processo de recepção 
receber dados na forma de um fluxo de bytes 
 
 O TCP cria um ambiente no qual os dois 
processos parecem estar conectados por um 
"canal“ imaginário que transporta seus dados pela 
Internet. 
 CAMADA DE TRANSPORTE 
 Fluxo de dados no TCP 
 CAMADA DE TRANSPORTE 
 Buffers de Transmissão e Recepção 
 
 Como existe a possibilidade dos processos de 
transmissão e de recepção não gerarem ou lerem 
dados em uma mesma velocidade, o TCP precisa de 
buffers para seu armazenamento. 
 
 Existem dois buffers, um buffer de transmissão e um 
buffer de recepção, um em cada direção. 
 
 CAMADA DE TRANSPORTE 
 Uma forma de implementar um buffer é usar uma 
matriz circular de posições (1 byte) 
 CAMADA DE TRANSPORTE 
 Segmentos 
 
 Embora o sistema de buffers trate da disparidade entre 
as velocidades dos processos de geração e leitura de 
dados, precisamos de mais um passo antes de 
podermos efetivamente transmitir os dados. 
 CAMADA DE TRANSPORTE 
 A camada IP, como provedora de serviços para o 
TCP, precisa enviar dados em pacotes, não na 
forma de um fluxo de bytes. 
 
 Na camada de transporte, o TCP agrupa 
determinado número de bytes em pacotes, 
denominados Segmento. 
 
 CAMADA DE TRANSPORTE 
 
 O TCP acrescenta um cabeçalho a cada 
segmento (para fins de controle) e entrega o 
segmento para a camada IP para sua transmissão. 
 
 Os segmentos são encapsulados em datagramas 
Ip e transmitidos. 
 CAMADA DE TRANSPORTE 
 Segmentos TCP 
 CAMADA DE TRANSPORTE 
 
 Comunicação Full- Duplex 
 
 o TCP oferece serviço full-duplex no qual dados podem 
fluir em ambos as direções simultaneamente. 
 
 Cada processo TCP implementa um buffer de 
transmissão e um de recepção e os segmentos 
trafegam em ambos as direções. 
 CAMADA DE TRANSPORTE 
 
 Já estudamos que esta é uma conexão virtual, 
e não uma conexão física. 
 
 Um segmento TCP é encapsulado em um 
datagrama IP e pode ser recebido fora de ordem,perdido ou corrompido e, em seguida, precisa ser 
reenviado. 
 CAMADA DE TRANSPORTE 
 Cada um deles pode ser transmitido por um 
caminho diferente até atingir o destino. Não 
existe uma conexão física. 
 CAMADA DE TRANSPORTE 
 Serviço Confiável 
 
 
 O TCP é um protocolo de transporte confiável. 
 
 Ele implementa mecanismos de confirmação para 
validar a chegada segura dos dados. 
 
 CAMADA DE TRANSPORTE 
 Formato do TCP 
 
 
 CAMADA DE TRANSPORTE 
 
 Um segmento TCP é formado por um cabeçalho 
de 20 a 60 bytes, seguido pelos dados do 
programa aplicativo. 
 
 O cabeçalho tem 20 bytes quando não existem 
informações opcionais sendo transmitidas (até 
60 bytes). 
 CAMADA DE TRANSPORTE 
 Endereço da porta de origem 
 
 Trata-se de um campo de 16 bits que identifica o 
número da porta do programa de aplicação no 
host que está enviando o segmento (origem). 
 
 Esse campo tem o mesmo objetivo do endereço 
da porta de origem no cabeçalho UDP. 
 CAMADA DE TRANSPORTE 
 Endereço da porta de destino. 
 
 Trata-se de um campo de 16 bits que identifica o 
número da porta do programa de aplicação no host 
que está recebendo o segmento (destino). 
 
 Esse campo tem o mesmo objetivo do endereço da 
porta de destino no cabeçalho UDP. 
 CAMADA DE TRANSPORTE 
 Número de sequencia 
 
 Esse campo de 32 bits identifica o número 
atribuído ao primeiro byte de dados de um 
segmento. 
 
 Como dissemos anteriormente, o TCP é um 
protocolo de transporte orientado a fluxo de 
dados. 
 CAMADA DE TRANSPORTE 
 Número de sequencia 
 
 Para garantir confiabilidade na entrega, cada byte 
a ser transmitido é numerado. 
 
 O número de sequencia informa ao destino qual 
byte da sequencia é o primeiro byte no segmento. 
 CAMADA DE TRANSPORTE 
 Número de confirmação 
 
 Esse campo de 32bits identifica o número de bytes 
que o receptor espera receber da outra parte. 
 
 Se o receptor tiver recebido corretamente o número de 
bytes x da outra parte, ele define x + 1 como o número 
de confirmação. 
 CAMADA DE TRANSPORTE 
 Comprimento do cabeçalho 
 
 Esse campo de 4 bits identifica a quantidade de 
palavras de 4 bytes de um cabeçalho TCP. 
 
 O comprimento do cabeçalho tem entre 20 e 6O bytes. 
 
 
 CAMADA DE TRANSPORTE 
 Reservado 
 
 Trata-se de um campo de 6 bits reservado para 
uso futuro. 
 
 Controle 
 
 Esse campo define 6 bits de controle (flags) 
distintos . 
 CAMADA DE TRANSPORTE 
 Controle 
 
 CAMADA DE TRANSPORTE 
 Esses bits possibilitam a implementação de 
controle de fluxo, estabelecimento e encerramento 
de uma conexão virtual e a configuração do 
modo de transferência de dados no TCP. 
 CAMADA DE TRANSPORTE 
 Tamanho da janela 
 
 Esse campo define o tamanho de uma janela TCP, em 
bytes, que a outra parte deve manter. 
 
 O comprimento desse campo é de 16 bits, significando que 
o tamanho máximo de uma janela é de 65.535 bytes. 
 
 Normalmente, esse valor é conhecido como janela 
receptora (rwnd) e é determinado pelo receptor. 
 
 Nesse caso, o emissor deve obedecer àquilo que está 
configurado pelo receptor 
 CAMADA DE TRANSPORTE 
 Checksum (valor de verificação ) 
 
 Esse campo de 16 bits contém o valor calculado 
do checksum. 
 
 O cálculo do checksum para o TCP segue o 
mesmo procedimento descrito para o UDP. 
 
 Entretanto, a inclusão do checksum no 
datagrama UDP é opcional, ao passo que a 
inclusão do checksum no TCP é obrigatória. 
 CAMADA DE TRANSPORTE 
 
 Urgent Pointer 
 
 Esse campo de 16 bits, que é válido apenas se o flag 
URG (Urgente) estiver ativo, é usado quando um 
segmento contém dados urgentes. 
 
 Ele define o número que deve ser acrescentado ao 
número de sequencia para obter o número do último 
byte urgente da seção de dados do segmento. 
 CAMADA DE TRANSPORTE 
 Opções 
 
 
 Esse campo pode conter um total de até 40 bytes 
de informações opcionais que serão inclusas ao 
cabeçalho TCP. 
 
 CAMADA DE TRANSPORTE 
 
 
 
 OBRIGADO

Continue navegando