You are on page 1of 40

Curso:Técnico Integrado em Informática

Disciplina : Redes de computadores

Protocolo TCP.

Prof. Credson Isaac

Objetivo
 Situar

o protocolo TCP nos modelos
de camadas OSI/TCP-IP

 Entender

o conceito de
comunicação orientada a conexão

 Conhecer

as principais
características do protocolo TCP e
suas funcionalidades
2

Protocolo TCP
 Introdução

Conceito de camadas
UDP x TCP
TCP x IP
Características do TCP
 Fundamentos do protocolo TCP
 Conexão IP
 Considerações Finais
3

Modelos de camadas

Modelos de camadas .

. 4. 6.TCP x UDP  O TCP fornece um circuito virtual entre aplicações do usuário final. 1. 3. 5. Orientado para conexão Confiável Divide as mensagens enviadas em segmentos Reagrupa as mensagens na estação de destino Reenvia tudo o que não foi recebido Reagrupa as mensagens a partir de segmentos recebidos 2.

. 4. Sem conexão Não confiável Transmite mensagens (chamado de datagramas do usuário) Não fornece verificação de software para a entrega da mensagem (não é confiável) Não reagrupa as mensagens de entrada Não usa confirmações Não fornece controle de fluxo 2. 5.TCP x UDP  O UDP transporta dados sem confiabilidade entre hosts. 1. 3. 6.

TCP x IP .

Protocolo TCP  Característica  Serviço orientado a fluxo   Divide o fluxo de dados em seguimentos Serviço confiável Garante a entrega do fluxo de dados na seqüência correta e sem erros  Prevê controle de erro. seqüência e fluxo   Serviço orientado à conexão Negocia parâmetros operacionais na abertura da conexão  Conexões full-duplex  9 .

Fundamentos  Define a unidade de dados do serviço de circuito virtual. denominada seguimento TCP   Multiplexa mensagens geradas pelos processos no serviço da camada de rede   Especifica o formato e a função dos campos Encapsula segmentos em datagramas IP Demultiplexa segmentos para os respectivos processos destino  Extrai mensagens dos segmentos 10 .

Fundamentos  Adota uma abordagem baseada em fluxo de dados (data stream) Trata o fluxo de dados como uma cadeia contínua de bytes  Decide como agrupar bytes em segmentos   Adota uma abordagem orientada à conexão full-duplex Estabelecimento da conexão  Transferência de dados  Fechamento da conexão  11 .

Fundamentos  Define mecanismos integrados de controle de erro e seqüência  Asseguram a entrega do fluxo de dados na seqüência correta e sem erros  Define fluxo mecanismo de controle de  Regula e compatibiliza a taxa de transmissão das unidades envolvidas  Evita descarte de segmentos por falta de recursos da estação destino 12 .

Fundamentos  Formato do segmento TCP 0 4 10 16 Source port 31 24 Destination port Sequence number Acknowledgement number Hlen Reserved Code bits Checksum Window Urgent point Options Pad Data 13 .

Fundamentos  Campos do segmento  Hlen  Tamanho bytes do cabeçalho em unidades de 4  Reserved  Reservado para uso futuro (Não utilizado)  Checksum  Assegura a integridade do segmento  Considera um pseudocabeçalho e pode incluir um pad (0) 14 .

Fundamentos  Campos do segmento  Code bits  Indica propósito e conteúdo do segmento       0 5 Code bits URG: Dados urgentes ACK: reconhecimento PSH: mecanismo de push RST: abordo de conexão (reset) SYN: Abertura de conexão FIN: fechamento de conexão 0 1 2 URG ACK PSH 3 RST 4 SYN 5 FIN 15 .

Fundamentos  Campos do segmento  Options  Lista variável de informações opcionais    Torna o tamanho do cabeçalho variável Padding   MSS – Maximum Segment Size Bits 0 que tornam o segmento múltiplo de 32 bits Data  Dados do segmento 16 .

porta)  Identifica de forma única cada porta ou ponto de comunicação na inter-rede  Também conhecido como Socket  17 .Conexão TCP  Socket  Source port   Destination port   Porta associada ao processo de origem Porta associada ao processo de destino Endpoint Definido pelo par (Endereço IP.

Conexão TCP  Estabelecimento  Three de conexões way handshake  Negocia e sincroniza o valor inicial dos números de seqüência em ambas as direções  Baseado na arquitetura cliente-servidor  O servidor deve está com a porta aberta em estado de escuta (Listening) 18 .

Conexão TCP  Estabelecimento de conexões 19 .

Conexão TCP  Transmissão de dados  Entrega de dados “fora-de-banda”  Campo Urgent Point o transmissor transmite o dado urgente na área de dados e seta o bit URG (campo Codebits). indicando a posição no segmento onde o dado urgente terminou  O receptor deve notificar a aplicação sobre a chegada do dado urgente tão logo quanto possível   Mecanismo de Push Aplicação avisa ao TCP para enviar o dado imediatamente  Força a geração de um segmento com os dados já presentes no Buffer  Não aguarda o preenchimento do Buffer  Segmentos gerados pelo mecanismo de PUSH são marcados com o flag PSH no campo codebits  20 .

10.5.5 192.168.Conexão TCP  Conexão (identificadores)    Cada conexão é identificada por um par de endpoints Também conhecida como Socket pair Várias conexões por estação 172. 5000) e (192.1.10.1.1.1 P1 P2 P3 P4 Porta 5000 Porta 80 Porta 25 Porta 1800 (172.16.1. 1800) 21 .168.1.1 10.16. 80) (192.168.1. 80) e (10.10.1.1.1.

Conexão TCP  Cada endpoint local pode participar de diversas conexões com endpoints remotos  Compartilhamento de endpoints  O Sistema Operacional deve garantir que o par de endpoint da conexão é único 172.1.16.168.1.10. 2000) 22 .1.168.1.5. 80) e (10. 5000) e (192.1 10.10.16.1 P1 P2 P5 P4 Porta 5000 Porta 80 Porta 80 Porta 2000 (172. 80) (192.1.1.168.10.1.1.1.5 192.

não apenas as portas Avalia o par de endpoints da conexão Portas origem e destino são obtidas do segmento recebido  Endereço IP origem e destino são obtidos do datagrama IP   Cada conexão possui um buffer de transmissão e um Buffer de recepção em cada extremidade 23 .Conexão TCP  Direcionamento de menssagens   Segmentos recebidos são associados às conexões.

. 348 349 350 351 .... .Conexão TCP  Controle de seqüência  Fluxo de dados é tratado como uma seqüência de bytes  Cada byte possui um número de seqüência  Numeração nem sempre começa em 0 (zero)  Negociado no estabelecimento da conexão  Campo 150 151 . 448 200o 201 Indica número de seqüência do 200 Segmento 350 primeiro Segmento byte de dados contido no 198 199 Segmento 150 Sequence number 449 24 ...

fica a critério do implementador 25 .Conexão TCP  Controle de seqüência Números de seqüência:  Número do primeiro byte nos segmentos de dados ACKs:  Número do próximo byte esperado do outro lado ACK cumulativo P.: Como o receptor trata segmentos fora de ordem?  A especificação do TCP não define.

.... 348 Segmento 200 349 350 351 .Conexão TCP  Controle de erros  Reconhecimento positivo Destino retorna uma mensagem indicando o correto recebimento do segmento  Reconhecimento pode pegar carona no segmento de dados do fluxo inverso   Reconhecimento cumulativo  150 151 ... 198 Segmento 150 Diversos segmentos consecutivos podem ser reconhecidos em uma única mensagem 199 200 201 . 448 Segmento 350 449 26 .

. 348 349 350 351 ..Conexão TCP  Controle de erros  Acknowledgment number Indica o número de sequência do próximo byte que espera receber  Indica o correto recebimento dos bytes com número de seqüência anterior  Bit ACK do Code Bits deve ser ativado  150 151 ..... number 350 ACK number 200 ACK number 350 ACK number 450 449 27 . number 200 Seq. 198 199 200 201 . 448 Seq. number 150 Seq.

Conexão TCP  Controle de erros  Realizado através de Retransmissão  Origem adota um temporizador para cada segmento enviado  Segmento é retransmitido quando a origem não recebe o reconhecimento (ack) antes de expirar o temporizador  Temporizador é reativado em cada retransmissão 28 .

Cenários Cenário com perda do ACK Temporização prematura.Conexão TCP  Controle de erros . ACKs cumulativos 29 .

Conexão TCP  Controle de erros .Cenários Cenário de ACK cumulativo 30 .

Conexão TCP  Controle de fluxo 31 .

Conexão TCP  Controle de fluxo  Objetivo   Transmissor não deve esgotar os buffers de recepção enviando dados rápido demais Implementação  Janela deslizante  Entidades negociam o número de bytes adicionais que podem ser recebidos a partir do último reconhecimento  Destino define o tamanho de sua janela de recepção em cada segmento  Origem atualiza o tamanho de sua janela de transmissão a cada reconhecimento  Reconhecimento deslocam a janela de transmissão da origem para o primeiro byte sem reconhecimento 32 .

Conexão TCP  lado receptor da conexão TCP possui um buffer de recepção: Controle de fluxo Transmissor não deve esgotar os buffers de recepção enviando dados rápido demais  Serviço de speed-matching: encontra a taxa de envio adequada à taxa de vazão da aplicação receptora  Processos de aplicação podem ser lentos para ler o buffer 33 .

Conexão TCP  Receptor informa a área disponível incluindo valor RcvWindow nos segmentos  Transmissor limita os dados não confimados ao RcvWindow  Garantia contra overflow no buffer do receptor  Espaço disponível no buffer = RcvWindow = RcvBuffer-[LastByteRcvd .LastByteRead] 34 .

cw/index.Conexão TCP  Controle  Campo de fluxo Window  Sinaliza o tamanho da janela de recepção da entidade em cada segmento enviado  Applet on-line  http://wps.com/br_kurose_redes_3/40/ 10271/2629597.aw.html  Jenela off-line 35 .

Conexão TCP  Fechamento de conexão (Liberação ordenada)  Ocorre separadamente em cada direção da conexão 36 .

Conexão TCP  Fechamento de conexão (Término abrupto) 37 .

Considerações       Camada de Transporte Serviço orientado a conexão Conexão TCP Controle de seqüência Controle de erros Controle de fluxo Laboratório 38 .

O TCP e o UDP. já que o UDP não tem garantia de entrega de pacotes ( ) Para uma aplicação cliente se conectar a uma aplicação servidora ela precisa fornecer o número IP da máquina destino e a porta da máquina destino ( ) A transferência de dados no TCP é sempre feita no modo simplex ( ) No UDP. ( ) O UDP é mais rápido que o TCP por não prover garantia de entrega dos pacotes ao destino ( ) O número da porta do servidor tem que ser igual ao do cliente para eles estabelecerem uma conexão ( ) O número de porta só é necessário com o protocolo TCP.Protocolo TCP  ATIVIDADE 1)Marque V para as afirmativas corretas e F para as afirmativas falsas.   ( ) A arquitetura Internet prevê dois protocolos no nível de transporte. antes de enviar algum dado é preciso estabelecer uma conexão ( ) O TCP faz controle de fluxo e de erros 39 . ambos garantem a entrega de dados ao destino.

Interligação de Redes Com Tcp/ip James F.Referências    Comer. Douglas E.. Kurose. Redes de Computadores e a Internet Escola Superior de Redes. Arquitetura e Protocolos de Redes TCP/IP 40 .