A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Camada de Transporte: protocolo TCP Parte 1

Apresentações semelhantes


Apresentação em tema: "Camada de Transporte: protocolo TCP Parte 1"— Transcrição da apresentação:

1 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

2 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

3 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

4 Camada de Transporte Firefox PING Cliente de NTP 4

5 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

6 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), (SMTP), transferência de arquivos (FTP), terminal remoto (telnet e SSH), etc. 6

7 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

8 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

9 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

10 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

11 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

12 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

13 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

14 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

15 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

16 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

17 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 = bytes (Uso de multiplicador de janela nas opções, pode aumentar para 1GByte) 17

18 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

19 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, :2012, :80) 19

20 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

21 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

22 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

23 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

24 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

25 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

26 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

27 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

28 Formato do segmento TCP
28

29 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

30 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

31 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

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

33 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

34 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

35 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

36 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

37 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

38 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

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

40 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

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

42 Bibliografia RODRIGUEZ, Adolfo; GATRELL, John; KARAS, John;PESCHKE, Roland. TCP/IP Tutorial and Technical Overview. IBM Red Books, Disponível em: 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 42


Carregar ppt "Camada de Transporte: protocolo TCP Parte 1"

Apresentações semelhantes


Anúncios Google