Camada de Transporte: protocolo TCP Parte 1

Slides:



Advertisements
Apresentações semelhantes
Missão da camada de enlace Serviços oferecidos TCP UDP
Advertisements

Capítulo 3: Camada de Transporte
Redes de computadores I
Família tcp/ip Prof: Diovani Milhorim
Bruno Rafael de Oliveira Rodrigues
Redes I Os Protocolos Prof. Dr. Amine BERQIA
Protocolos de Transporte da Pilha TCP/IP
URL: Redes Prof. Edgard Jamhour URL:
MODELO DE REFERÊNCIA OSI
Interação Cliente Servidor
TCP Serviço de Transporte Confiável
Protocolos e Divisão em Camadas
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)
Camada de Transporte: Portas, Sockets, Aplicações em Rede
CCNA 1 – Camadas de Transporte e de Aplicação do TCP/IP
Escola Secundária Filipa de Vilhena Ano Lectivo 2010/ Turma IGR1
Modelo de referência OSI
CCNA Exploration Camada de Rede OSI.
Interconexão e Transporte em Redes
URI - Santo Ângelo - DECC
Redes Aula 7 Professor: Marcelo Maia.
Camada de Transporte OSI
REDES DE COMPUTADORES Prof. Deivson
Aula 64 – TEC 11ºF Redes de computadores Prof. António dos Anjos.
Funcionalidade e Protocolos da Camada de Aplicação
O Modelo OSI Guilherme Guimarães.
CCNA 1 – Modelos OSI e TCP/IP
Camada de Transporte prof. Eduardo.
Transmission Control Protocol TCP
Modelos de Referência OSITCP/IP29/06/06.  Camadas de Protocolos  Modelo de Referência OSI Funcionamento Camadas e Funcionalidades  Modelo de Referência.
Transmission Control Protocol TCP
Protocolos de Janela Deslizante
UNEMAT-FACIEX MODELOS DE REFERÊNCIA Dr. José Raúl Vento 2005.
ARQUITECTURA TCP/IP.
Prof. Carlos Roberto da Silva Filho, M. Eng.
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.
REDES DE COMPUTADORES Camada de Transporte Professor: M.Sc. Carlos Oberdan Rolim.
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.
Modelo OSI Apresentação Sessão Transporte Rede Enlace Física Aplicação
Disciplina de: Comunicação de Dados Professor: Carlos Pereira Trabalho Realizado por: João Santos.
Disciplina: Comunicação de Dados Ricardo Bento 12ºL.
Arquitetura de redes ISSO/OSI Liane Tarouco UFRGS.
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.
1) A camada de transporte provê comunicação lógica entre hosts.
Camada de Transporte: protocolo UDP
Administração e Projeto de Redes
Camada de Inter-Redes do modelo TCP-IP Endereço IP e DHCP
Redes de computadores: Camada de Transporte Prof. Dr. Amine BERQIA
Arquitetura TCP/IP Aplicação Transporte Rede Enlace Física.
Infraestrutura de Redes
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
Modelo de referência TCP/IP Redes de comunicação de dados Professor Cristiano José Cecanho.
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.
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:

Camada de Transporte: protocolo TCP Parte 1 Faculdade de Tecnologia Senac Pelotas Curso Superior em Tecnologia de Redes de Computadores Unidade Curricular - Redes de Computadores II Prof. Eduardo Maroñas Monks Camada de Transporte: protocolo TCP Parte 1

Sumário Funções da camada de transporte Protocolo TCP Características do TCP Estados do TCP API do TCP Referências Bibliográficas 2

Camada de Transporte A camada de Transporte é o link entre a camada de Aplicação e a camada de rede, que são responsáveis pela transmissão na rede. Esta camada aceita dados de diferentes conversações e os passa para as camadas inferiores como segmentos gerenciáveis que podem ser repassados ao meio físico. 3

Camada de Transporte Firefox PING Cliente de NTP 4

Camada de Transporte Os protocolos da camada de transporte têm a função de possibilitar a comunicação fim a fim entre os hosts São protocolos implementados nos hosts que hospedam aplicações de usuário Apache:80 Firefox:2012 5

UDP – (User Datagram Protocol) TCP – (Transmission Control Protocol) Camada de Transporte Os dois protocolos principais do modelo TCP/IP são o UDP e o TCP UDP – (User Datagram Protocol) Orientado a datagramas Sem recursos de confiabilidade, sem conexão Simples Transmissões em unicast e multicast Útil somente em algumas aplicações, por exemplo áudio e vídeo, jogos e multicast Muito usado em serviços, tais como: gerenciamento da rede (SNMP), roteamento (RIP), resolução de nomes (DNS). TCP – (Transmission Control Protocol) Orientado por fluxo Com recursos de confiabilidade, e orientado a conexão Complexo Somente transmissões em unicast Usado pela maioria das aplicações na Internet: web (HTTP), e-mail (SMTP), transferência de arquivos (FTP), terminal remoto (telnet e SSH), etc. 6

Protocolo TCP O protocolo TCP (Transmission Control Protocol) definido na RFC 793, possui as seguintes facilidades para a camada de aplicação: Recuperação de erros; Controle de fluxo; Confiabilidade; Orientado à conexão; 7

O conceito TCP O principal objetivo do TCP é fornecer um serviço de conexão entre dois pares de processos. O protocolo não conta com a confiabilidade dos protocolos de mais baixo nível (por exemplo IP). Antes de qualquer transferência de dados, o protocolo TCP estabelece uma conexão 8

O conceito TCP Um dos participantes é o cliente (o qual inicia a conexão) e o outro é o servidor (o que aguarda a conexão). Após a conexão ser estabelecida, é criada uma via de comunicação bi-direcional entre as duas aplicações. 9

Características do TCP Transferência de fluxo de dados; Confiabilidade; Controle de fluxo; Multiplexação; Conexões lógicas; Comunicação Bi-direcional. 10

Características do TCP Transferência de fluxo de dados: Do ponto de vista da aplicação, o TCP transfere um fluxo contínuo de bytes através da rede. Desta forma a aplicação não precisa controlar a divisão dos dados em blocos. Os dados são divididos em segmentos e enviados para a camada de rede 11

Serviço de fluxo de bytes Para as camadas inferiores, o TCP manipula os dados em blocos, os chamados SEGMENTOS Para as camadas superiores, o TCP manipula os dados como uma sequência de bytes e não identifica limites entre os bytes (fluxo contínuo) Observação: as camadas superiores não sabem ondem começam ou terminam os SEGMENTOS! 12

Características do TCP Detecção de erros: Segmentos com checagem de integridade (campo checksum) falhos são descartados no destino. Confiabilidade: O TCP assume um número de seqüência para cada byte transmitido e espera um reconhecimento positivo (ACK) do receptor. Se esta confirmação não é recebida dentro de um tempo estabelecido, os dados são retransmitidos. Um temporizador é utilizado para cada conexão TCP. Os números de seqüência também são usados para reordenar os segmentos quando estes chegam foram de ordem ou para eliminar os segmentos duplicados. 13

Medições de Round-Trip Time O mecanismo de retransmissão do TCP é adaptativo Os temporizadores de retransmissão são configurados baseados nos tempos chamados de round-trip time (RTT) (tempo de ida e volta) que o TCP calcula O RTT é baseado na diferença de tempo entre a transmissão do segmento e o recebimento do ACK O valor do RTT é calculado levando em conta a média dos tempos 14

Características do TCP Controle de fluxo: Os hosts de rede têm recursos limitados, como memória e largura de banda. Quando a camada de Transporte está ciente de que esses recursos estão sobrecarregados, alguns protocolos podem solicitar que a aplicação de envio reduza a taxa de fluxo de dados. 15

Características do TCP Controle de fluxo: Isto é feito na camada de Transporte regulando a quantidade de dados agrupados que a origem transmite. O controle de fluxo pode prevenir a perda de segmentos na rede e evitar a necessidade de retransmissão. 16

Controle de Fluxo O protocolo TCP utiliza uma versão do mecanismo de controle de fluxo em janela deslizante O envio de reconhecimentos é separado da configuração do tamanho da janela do emissor Os reconhecimentos não aumentam automaticamente o tamanho da janela de transmissão Durante o estabelecimento da conexão, os participantes configuram o tamanho inicial da janela deslizante Tamanho da Janela: Cada lado da conexão anuncia o seu tamanho de janela que é o máximo número de bytes que o receptor pode aceitar O tamanho máximo é 216 = 65535 bytes (Uso de multiplicador de janela nas opções, pode aumentar para 1GByte) http://en.wikipedia.org/wiki/TCP_window_scale_option 17

Características do TCP Multiplexação: Ativado através do uso de portas, tal como no protocolo UDP. Podem haver muitas aplicações ou serviços sendo executados em cada host na rede. Cada uma destas aplicações ou serviços é designado a um endereço conhecido como uma porta A aplicação ou serviço sendo executado no host será identificado pela porta 18

Características do TCP Conexões lógicas: Os mecanismos que garantem a confiabilidade e o controle de fluxo obrigam que o TCP inicialize e mantenha informações do status de cada fluxo de dados. A combinação deste status, incluindo sockets, números de seqüência e tamanhos de janelas é chamado de conexão lógica. Cada conexão é unicamente identificada pelo par de sockets usados pelo processos que estão enviando e recebendo dados. Exemplo de identificação de conexão lógica: (tcp,192.168.200.254:2012, 200.18.98.87:80) 19

Características do TCP Comunicação Bi-direcional: O TCP provê comunicação em ambas as direções entre fluxos de dados concorrentes. Ao se estabelecer uma conexão, os dados podem ser enviados e recebidos pela mesma conexão lógica. 20

Princípio de Janela Enviar um pacote; A forma mais simples de um protocolo garantir a entrega de um pacotes é a seguinte: Enviar um pacote; Esperar um reconhecimento por parte do receptor da chegada do pacote; Após o recebimento do reconhecimento, enviar o próximo pacote; Se um reconhecimento não for recebido por determinado tempo, retransmitir o pacote. 21

Princípio de Janela Embora este mecanismo garanta a confiabilidade na entrega dos pacotes, usa somente parte da largura de banda da rede disponível. 22

Princípio de Janela Outra forma de enviar pacotes com confiança e aproveitar melhor a rede, poderia usar as seguintes regras: - O emissor pode enviar todos os pacotes dentro de uma janela (conjunto de pacotes) sem receber um reconhecimento (ACK), mas deve iniciar um contador para cada um dos pacotes enviados; - O receptor deve reconhecer cada pacote recebido, indicando o número de seqüência do último pacote recebido; - O emissor desliza a janela a cada ACK recebido. 23

Princípio de Janela Neste exemplo o emissor pode transmitir os pacotes 1 até o 5 sem esperar por nenhum ACK: No momento que o emissor recebe um ACK 1 (reconhecimento para o pacote 1), ele pode deslizar a janela em um pacote para a direita. Neste ponto, o emissor pode enviar o pacote 6. 24

Princípio de Janela Transmissão confiável; O mecanismo de Janela Deslizante garante: Transmissão confiável; Melhor uso da largura de banda da rede; Controle de fluxo, já que o receptor pode demorar para responder a um reconhecimento de um pacote, sabendo do seus buffers livres e do tamanho da janela na conexão. 25

Princípio de Janela aplicado ao TCP O mecanismo de Janela Deslizante é usado no TCP, mas com algumas diferenças: O TCP provê um conexão orientada a fluxo de bytes, números de seqüência são gerados para cada byte no fluxo de dados. O TCP divide este fluxo contínuo em segmentos O tamanho da janela será determinado pelo receptor quando a conexão é estabelecida e poder ser variável durante a transferência de dados. Cada ACK carregará o tamanho da janela. 26

Princípio de Janela aplicado ao TCP O fluxo de dados do emissor pode ser visto como: Demonstração do Sliding Windows do TCP Onde: A – Bytes que foram transmitidos e já reconhecidos; B – Bytes que foram enviados mas não foram ainda reconhecidos; C – Bytes que podem ser enviados sem esperar por nenhum reconhecimento; D – Bytes que não podem ser enviados ainda. 27

Formato do segmento TCP 28

Formato do segmento TCP Source Port – número da porta de origem (16 bits); Destination Port – número da porta de destino (16 bits); Sequence Number – número de seqüência do primeiro byte neste segmento. Se o bit de control SYN estiver setado, o número de seqüência é o número de seqüência inicial (n) e o primeiro byte de dados é n+1. Acknowledgment Number – se o bit de controle ACK estiver setado, este campo contêm o valor do próximo número de seqüência que o receptor está esperando receber. Data Offset – contêm o número de palavras de 32 bits no cabeçalho. Indica onde começa a parte de dados no segmento. Reserved – reservado para uso futuro, deve ser zero. Window – usado em segmento ACK. Especifica os número de bytes de dados, começando pelo indicado no campo do número de ACK, que o receptor está aceitando receber. Checksum - soma de verificação gerada em um pseudo-cabeçalho. 29

Formato do segmento TCP (Flags de Controle) URG – indica se o campo de urgência é significativo neste segmento. ACK – indica se o campo acknowldegment é significativo neste segmento. PSH – função PUSH (envia o restante dos segmentos antes de encerrar um conexão). RST – reseta a conexão. SYN – sincroniza os números de seqüência. FIN – sem mais dados do emissor (finaliza conexão). 30

Reconhecimentos e Retransmissões O TCP envia dados em segmentos de tamanhos variáveis. Os reconhecimentos especificam o número de seqüência do próximo byte que o receptor espera receber. Considerando que um segmento pode se perder ou se tornar corrompido, o receptor deve reconhecer todos os segmentos posteriores que forem recebidos ok, fazendo referência ao primeiro byte do pacote perdido. O emissor irá parar de transmitir quando tiver enviado todos os bytes na janela atual. Um timeout irá ocorrer e o segmento faltante irá ser retransmitido. 31

Reconhecimentos e Retransmissões No diagrama, o tamanho da janela é de 1500 bytes e o tamaho dos segmentos são de 500 bytes. 32

Reconhecimentos e Retransmissões Intervalos variáveis de Timeout: Cada implementação de TCP adapta de forma diferente os valores de tempos de timeout entre o envio e o recebimento de segmentos. Este tempos devem ser adaptáveis as condições de tráfego da rede. 33

Estabelecimento de uma conexão TCP Antes de qualquer dado ser transmitido, uma conexão deve ser estabelecida entre dois processos. Um destes processos, normalmente um servidor, implementa um chamada passiva de OPEN (passive OPEN) e outro processo uma chamada ativa de OPEN (active OPEN). A chamada passiva de OPEN permanece em espera até que outro processo tente se conectar a ela através de uma chamada de OPEN ativa. 34

Estabelecimento de uma conexão TCP 3-WAY Handshake: É chamado o processo de estabelecimento de conexão no protocolo TCP. Três segmentos de controle são trocados entre os processos: 35

Encerrando uma conexão TCP O fechamento de um conexão é feito através do envio de um segmento com o bit de controle FIN setado. Já que a conexão é bi-direcional o segmento FIN só encerra a transferência de um lado. O outro processo irá enviar os dados remanescentes e também irá enviar um segmento FIN, no término do envio. A conexão é desfeita quando ambos os lados fecharem seus fluxos de dados. 36

Encerrando uma conexão TCP O fechamento de um conexão pode ser feito com o uso da flag RESET. É uma forma mais rápida de encerramento de conexões Quando a porta não está em estado de LISTENING, o host retorna um segmento com a flag RESET Encerramento da conexão com o uso da flag RESET Tentativa de acesso em porta inexistente 37

Estados do TCP Durante o ciclo de vida de uma conexão TCP, podem ocorrer diversos estados. Prática com a ferramenta TCP View 38

Estados do TCP Procedimento normal de abertura e fechamento de conexão 39

Estados do TCP Estados do TCP Transições de estado na abertura de conexão Transições de estado na abertura de conexão 40 40

Estados do TCP Transições de estado no fechamento de conexão 41

Bibliografia RODRIGUEZ, Adolfo; GATRELL, John; KARAS, John;PESCHKE, Roland. TCP/IP Tutorial and Technical Overview. IBM Red Books, 2006. Disponível em: http://www.redbooks.ibm.com/Redbooks.nsf/RedbookAbstracts/gg243376.html KUROSE, J.;ROSS, K. Redes de computadores e a Internet – Uma abordagem top-down. 3ª edição. Editora Pearson, 2006. COMER, Douglas. Interligação em Rede com TCP/IP – Volume I. 3ª Edição. Editora Campus, 1998. WIRESHARK. Wiki. Disponível em http://wiki.wireshark.org/ 42