Protocolos de Transporte da Pilha TCP/IP Profa. Ana Cristina Benso da Silva Redes de Computadores.

Slides:



Advertisements
Apresentações semelhantes
3. Mapeamento de Endereço Físico em endereço de rede
Advertisements

Missão da camada de enlace Serviços oferecidos TCP UDP
Capítulo 3: Camada de Transporte
Família tcp/ip Prof: Diovani Milhorim
Bruno Rafael de Oliveira Rodrigues
Redes I Os Protocolos Prof. Dr. Amine BERQIA
FEUPDEECRedes de Computadores, 4º Ano de EEC, ramo de ACI TCP (Transmission Control Protocol) Abril, 98Isidro Vila Verde 1 Aspectos Gerais.
Profa. Ana Cristina Benso da Silva Disciplina: Redes de Computadores
Protocolos de Transporte da Pilha TCP/IP
Redes de Computadores Arquitetura de Protocolos
EXERCÍCIOS DE REVISÃO REDES DE COMPUTADORES EDGARD JAMHOUR
URL: Redes Prof. Edgard Jamhour URL:
Interação Cliente Servidor
TCP Serviço de Transporte Confiável
Paulo Roberto Freire Cunha
Obtenção de IP TCP UDP.
Universidade do Vale do Rio dos Sinos - São Leopoldo -
REVISÃO MÓDULO 3(Camada de Transporte)
TCP (Transmission Control Protocol)
PROTOCOLOS DE COMUNICAÇÃO
CCNA 1 – Camadas de Transporte e de Aplicação do TCP/IP
Escola Secundária Filipa de Vilhena Ano Lectivo 2010/ Turma IGR1
NETBIOS Disciplina: Redes de Computadores
Modelo de referência OSI
CCNA Exploration Camada de Rede OSI.
Interconexão e Transporte em Redes
URI - Santo Ângelo - DECC
URI - Santo Ângelo - DECC
Redes Aula 7 Professor: Marcelo Maia.
Camada de Transporte OSI
IC II - Prof. Msc. Allan K. Luizi - UNEMAT
Aula 64 – TEC 11ºF Redes de computadores Prof. António dos Anjos.
Capítulo 3: Camada de Transporte
O Modelo OSI Guilherme Guimarães.
Camada de Transporte prof. Eduardo.
Comunicação entre Processos - Sockets. Conceitos Básicos Sockets são uma forma de IPC ( InterProcess Communication ) fornecida pela 4.3 BSD que fornecem.
Transmission Control Protocol TCP
Transmission Control Protocol TCP
Comunicação de dados Protocolos básicos de enlace de dados.
Protocolos de Janela Deslizante
ARQUITECTURA TCP/IP.
1 Comunicação Inter-Processos -> RMI -> RPC -> TCP -> UDP (Abstração de passagem de mensagem)
TCP Conexão Fiabilidade Full Duplex Entrega ordenada Controlo de fluxo
Escola Secundaria Sebastião da Gama Trabalho realizado por: André Santos 12ºL nº:2 Prof: Carlos Pereira.
Redes de Computadores Prof Rafael Silva.
Módulo 3 Implantação do IPv6.
REDES DE COMPUTADORES Camada de Transporte Professor: M.Sc. Carlos Oberdan Rolim.
Camada de Transporte: protocolo TCP Parte 1
MODELO DE REFERÊNCIA TCP/IP
Transmissão de Dados O Modelo de Referência TCP/IP
Protocolo TCP e UDP Ricardo Costa Nº 10 12ºL.
Disciplina: Comunicação de Dados Ricardo Bento 12ºL.
Professor Me. Jeferson Bussula Pinheiro.
Arquitectura tcp. Camada tcp Ao contrário do protocolo UDP, o TCP representa um grande incremento de qualidade relativamente ao protocolo IP que lhe serve.
Arquitetura de Redes de Computadores – Luiz Paulo Maia Camada de Transporte1 Arquitetura de Redes de Computadores Luiz Paulo Maia Camada de Transporte.
1) A camada de transporte provê comunicação lógica entre hosts.
Redes de computadores: Camada de Transporte Prof. Dr. Amine BERQIA
Arquitetura TCP/IP Aplicação Transporte Rede Enlace Física.
TCP È um dos protocolos sob os quais assenta o núcleo da Internet nos dias de hoje. A versatilidade e robustez deste protocolo tornaram adequado para.
Rede de Computadores MAT164 – Redes de Computadores I Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação.
Administração e Projeto de Redes Material de apoio Camada de Transporte Cap.4 10/02/2010.
Redes de computadores e a Internet
Prof. Ivair Teixeira Redes de Computadores.
Curso Superior em Redes de Computadores Camada de Transporte Prof. Sales Filho.
Escola de Ciência e Tecnologia Arquitetura TCP/IP Arquitetura TCP/IP Interface entre o Nível Lógico e Físico Protocolo IP Etienne César R. de Oliveira.
Centro Federal de Educação Tecnológica do RN Redes de Computadores Curso Superior em Redes de Computadores Camada de Rede Prof. Sales Filho.
Camada 4 A Camada de Transporte
Escola de Ciência e Tecnologia Arquitetura TCP/IP Arquitetura TCP/IP Protocolos TCP, UDP e ICMP Etienne César R. de Oliveira
Escola de Ciência e Tecnologia Arquitetura TCP/IP Arquitetura TCP/IP Interface entre o Nível Lógico e Físico Protocolo IP Etienne César R. de Oliveira.
Curso Superior em Redes de Computadores Camada de Aplicação Prof. Sales Filho.
Transcrição da apresentação:

Protocolos de Transporte da Pilha TCP/IP Profa. Ana Cristina Benso da Silva Redes de Computadores

Redes de Computadores Profa. Ana Benso UDP (User Datagram Protocol) O protocolo UDP é 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) Devido a sua simplicidade é considerado não confiável

Redes de Computadores Profa. Ana Benso Header UDP 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. Tamanho é representa o tamanho total do frame UDP Checksum é calculado usando o header UDP e também a área de dados, e destina-se a verificação de erros de transmissão. Porta DestinoPorta Origem TamanhoChecksum Dados

Redes de Computadores Profa. Ana Benso Checksum UDP O Checksum no UDP é opcional Campo de checksum = 0, não executa verificação Campo de checksum <> 0, executa verificação O cálculo do checksum utiliza o header, os dados e também o Pseudo-Header Este pseudo-header é utilizado para verificação adicional e confirmação de que o datagrama chegou ao destino correto

Redes de Computadores Profa. Ana Benso Pseudo-Header Endereço IP Destino Endereço IP Origem ZeroTamanhoProtocolo Onde, Endereço IP Origem e Endereço IP destino são do nível de rede (protocolo IP) utilizadas para a segunda validação do destino do datagrama. Zero é um campo com valor zero para complementar a estrutura do pseudo-header. Protocolo indica qual o protocolo de transporte (TCP ou UDP), pois o pseudo-header é utilizado para os dois protocolos. Tamanho indica o tamanho do frame de transporte (UDP ou TCP)

Redes de Computadores Profa. Ana Benso Ordem de Header para o Checksum do UDP Porta DestinoPorta Origem TamanhoChecksum Dados Endereço IP Destino Endereço IP Origem ZeroTamanhoProtocolo Pseudo-Header Datagrama UDP Header UDP Atenção! O Pseudo-Header não é transmitido junto com o datagrama UDP, ele é utilizado apenas para cálculo do Checksum.

Redes de Computadores Profa. Ana Benso Processamento do Checksum Na origem, as informações necessárias são organizadas em blocos de 16 bits para o cálculo do checksum Caso o cálculo resulte em zero, os 16 bits do checksum serão configurado todos em 1 (valor = 65535) Se optar-se por não utilizar checksum, os 16 bits serão configurados todos em 0

Redes de Computadores Profa. Ana Benso Processamento do Checksum Se o checksum recebido tem todos os bits em zero, não é necessário calculá-lo (pois não está sendo utilizado) Caso contrário, o cálculo do checksum é realizado novamente Se o cálculo resultar em Zero, o datagrama não contém erros Se o cálculo resultar diferente de Zero, o datagrama é descartado

Redes de Computadores Profa. Ana Benso Tamanho Máximo do Datagrama Teoricamente o tamanho máximo é de 64Kb Porque no IP o campo tamanho total é de 16 bits Mas deve-se considerar que no IP estão sendo calculado Tamanho do Header do IP (20 bytes) Datagrama UDP (8 bytes) Assim, o tamanho máximo é de bytes

Redes de Computadores Profa. Ana Benso Tamanho Máximo do Datagrama Outros fatores podem influenciar Programas de aplicação podem ser limitados pela interface de programação Implementação do kernel do TCP/IP Truncando Datagramas Apesar do tamanho máximo, nem todas as aplicações podem estar preparadas para receber um datagrama maior que esperado Truncar ou não? Depende da implementação de cada interface de programação

Redes de Computadores Profa. Ana Benso UDP e ICMP Source Quench Mensagens ICMP Source Quench Podem ser geradas pelo sistema quando ele recebe dados a uma taxa maior que ele consegue processar Não é obrigatória a geração, mesmo que o sistema descarte os datagramas O sentimento corrente é que esta mensagem deve ser considerada obsoleta Porque consome largura de banda e é ineficaz para o controle de congestionamento Almquist 1993 (RFC???)

Redes de Computadores Profa. Ana Benso UDP e ICMP Source Quench Várias sistemas operacionais não geram estas mensagens Vários sistemas operacionais não repassam tais mensagens para o protocolo UDP Somente o TCP é notificado quando estas mensagens ocorrem!!!

Redes de Computadores Profa. Ana Benso TCP (Transmission Control Protocol) Protocolo de transporte considerado confiável Orientado à conexão Controle de erros com retransmissão Controle de fluxo Sequenciamento Entrega ordenada Orientado a byte stream

Redes de Computadores Profa. Ana Benso Header TCP Porta origemPorta destino Número de Seqüência Acknowlegement WindowTam.Reser.Flags ChecksumUrgent Pointer Opções (se houver) Dados

Redes de Computadores Profa. Ana Benso Header TCP 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 Poninter é um ponteiro para dados urgentes, contidos na área de dados.

Redes de Computadores Profa. Ana Benso Controle de Conexão TCP Três Fases Estabelecimento da Conexão Transmissão de Dados Encerramento da Conexão Flags SYN – solicitação de conexão FIN – Finalização da Conexão RST – Reset da Conexão ACK – Reconhecimento de recebimento

Redes de Computadores Profa. Ana Benso Estabelecimento da Conexão Origem A Destino B SYN : (0) SYN : (0) ACK ACK

Redes de Computadores Profa. Ana Benso Estabeleci mento da Conexão Ativo x passivo A origem da solicitação de conexão executa oactive open O destino que recebe a solicitação de conexão executa o passive open Origem e destino enviam seus número de seqüência iniciais para a conexão em curso Este número deve ser alterado ao longo do tempo e ser diferente de conexão para conexão

Redes de Computadores Profa. Ana Benso Inicialização do Número de Seqüência RFC 793 Número de 32 bits É incrementado a cada 4 microsegundos Como escolher o número inicial? 4.4BSD Quando sistema é inicializado o número de seqüência é 1 (violação da RFC) A variável é incrementada de a cada ½ segundo Isso significa que irá retornar a 0 em períodos de 9 horas e ½

Redes de Computadores Profa. Ana Benso MSS (Maximum Segment Size) O MSS representa o tamanho do maior bloco de dados que poderá ser enviado para o destino. Não é negociável, cada host divulga o seu MSS Default: 536 bytes (20 bytes IP, 20 bytes TCP, para um total de 576 bytes) Ethernet: 1460 bytes (20 bytes IP, 20 bytes TCP, para um total de 1500 bytes)

Redes de Computadores Profa. Ana Benso MSS... Em geral, quanto maior o MSS melhor, até que ocorra fragmentação Quanto maior a quantidade de dados enviados em um único bloco, menor o overhead de headers do TCP e do IP Exemplo AB MSS 1460 MSS 256 ?

Redes de Computadores Profa. Ana Benso Outras Opções TCP End of option list (1 byte) No operation (NOP) (1 byte) Windows scale factor (3 bytes) Timestamp (10 bytes) MSS (4 bytes)

Redes de Computadores Profa. Ana Benso Encerramento da Conexão Origem A Destino B FIN : (0) ACK ACK ACK FIN : (0) ACK

Redes de Computadores Profa. Ana Benso Encerramento da Conexão Half Close Conexões TCP são full-duplex, logo cada lado da conexão deve finalizar a conexão de forma independente Quando um dos lados envolvidos recebe uma solicitação de finalização deve enviar a notificação para a aplicação Uma aplicação após receber o pedido de finalização ainda pode mandar dados

Redes de Computadores Profa. Ana Benso Half Close - Exemplo FIN + ACK ACK FIN + ACK Data Ack of Data Exemplo: sun% rsh bsdi < datafile datafile terminal std input std output rsh sort sunbsdi sun bsdi

Redes de Computadores Profa. Ana Benso Timeout no Estabelecimento da Conexão Trecho de tráfego monitorado (tcpdump) Importante: tempo entre cada tentativa vs. tempo máximo exigido na RFC Tempo: 75 segundos 4.4 BSD: leva 76 segundos Problema: Timeout

Redes de Computadores Profa. Ana Benso Diagrama de Estados - TCP

Redes de Computadores Profa. Ana Benso Estados x Mensagens OrigemDestino SYN SYN + ACK ACK SYN_SENT SYN_RCVD LISTEN ESTABLISHED FIN FIN_WAIT 1 CLOSE_WAIT ACK FIN_WAIT 2 FIN + ACK TIME_WAIT 2 LAST_ACK ACK CLOSED

Redes de Computadores Profa. Ana Benso 2MSL Wait State O TIME_WAIT é tabém chamado 2MSL MSL = Maximum Segment Life Tempo máximo que um segmento pode existir antes de ser descartado TTL do IP ??? RFC 793 MSL dever ser de 2 minutos Mas as implementações variam de entre 30 segundos, 1 minuto e 2 minutos

Redes de Computadores Profa. Ana Benso Utilização do 2MSL Quando é executado um active close e enviado o ACK final, a conexão deve permanecer no estado TIME_WAIT pelo dobro do tempo especificado no MSL Isso irá permitir a retransmissão do ACK final, caso o primeiro seja perdido Outra conseqüência é a não liberação do par de sockets utilizados para a conexão Algumas implementações restringem também o uso das portas locais durante o 2MSL

Redes de Computadores Profa. Ana Benso Utilização do 2MSL Socket option SO_REUSEADDR Transpor as regras sobre uso do endereço das portas Quanto a transmissão de dados Qualquer segmento que chegue para uma conexão neste período (2MSL) deverá ser descartado Conseqüências para clientes e servidores?

Redes de Computadores Profa. Ana Benso Quite Time Considere a seguinte situação Ocorre uma falha no host que está no estado 2MSL Ele faz o reboot ainda no período de espera do MSL Ele estabelece uma nova conexão imediatamente, usando o mesmo endereço de porta local e porta remota O que poderá ocorrer neste caso? Para prevenir, o host deve esperar por MSL segundos, após o reboot, antes de estabelecer qualquer conexão nova.

Redes de Computadores Profa. Ana Benso Reset de Conexões Em geral, um Reset é gerado sempre que é recebido um segmento que não parece estar correto para a conexão identificada. Casos Solicitações de conexões para portas inexistentes Aborto de conexões Solicitações de conexões falsas

Redes de Computadores Profa. Ana Benso Estabelecimento de Conexões Simultâneas É possível que 2 hosts tentem estabelecer conexão entre eles simultaneamente Ambos executam um active open Exemplo: Host A solicita conexão ao Host B na porta 777 e usa como porta local 888 Host B solicita conexão ao Host A na porta 888 e usa como porta local 777 TCP foi projetado para suportar estes casos Apenas uma conexão resulta, não duas

Redes de Computadores Profa. Ana Benso Encerramento de Conexões simultâneas Os hosts também podem tomar a iniciativa de encerrar a conexão simultaneamente OrigemDestino FIN FIN_WAIT 1 ACK CLOSING TIME_WAIT ACK FINFIN_WAIT 1 CLOSING TIME_WAIT

Redes de Computadores Profa. Ana Benso SYN FLOOD Flooding de solicitações de conexão falsas Normalmente usa IP Spoofing IntrusoDestinoSuposta Origem SYN SYN + ACK RST SYN RST

Redes de Computadores Profa. Ana Benso Controle de Erros O TCP executa controle de erro com retransmissão Neste caso o checksum não é opcional Se um segmento TCP é recebido com checksum igual a zero, ele é descartado O destino envia mensagens de reconhecimento positivo Não envia NACK A necessidade de realizar uma retransmissão é detectada pela ausência do ACK

Redes de Computadores Profa. Ana Benso Controle de Fluxo O TCP executa o algoritmo de janela deslizante A cada envio de mensagens o host informa o número de bytes que podem ser recebidos DestinoOrigem Dados, ACK(D), Seq (O) WIN (4096) Dados, ACK(O), Seq (D) WIN (512) Dados, ACK(D), Seq (O) WIN (4096) Erro!!!! Dados, ACK(D), Seq (O) WIN (4096) Timeout Dados, ACK(O), Seq (D) WIN (3000) Dados, ACK(D), Seq (O) WIN (512)

Redes de Computadores Profa. Ana Benso Fluxo Interativo Exemplo: rlogin DestinoOrigem Dados, ACK(D), Seq (O) WIN (4096) ACK(O) + WIN ACK(D) + WIN Dados, ACK(O), Seq (D) WIN digitado servidor echo display DestinoOrigem Dados, ACK(D), Seq (O) WIN (4096) DADOS + ACK(O) + WIN ACK(D) + WIN digitado servidor echo display piggback delayed

Redes de Computadores Profa. Ana Benso Algoritmo de Nagle Exemplo do Rlogin 1 byte de dados 20 bytes TCP + 20 Bytes IP Problema? Overhead de controle Nagle: Pequenos segmentos só podem ser enviados após o recebimento do ACK dos dados enviados anteriormente

Redes de Computadores Profa. Ana Benso Algoritmo de Nagle Assim, o TCP coleta pequenos segmentos de dados e os envia juntos A velocidade de envio irá variar com de acordo com a velocidade de recebimento do ACK Algoritmo é self-clocking Exemplo: Ethernet RTT aproximadamente de 16 ms Para ser mais rápido deveria digitar mais de 60 caracteres por segundo Isto significa que raramente é aplicado nestas redes Utilizado em redes com RTT maior (p.ex: WAN)

Redes de Computadores Profa. Ana Benso Desabilitando Nagle Quando é necessário? Trafego Interativo Xwindow (movimentos do mouse....) A API do socket pode utilizar a opção TCP_NODELAY para desabilitar o algoritmo

Redes de Computadores Profa. Ana Benso