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

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

Transmission Control Protocol TCP Introdução, apresentação em três vias, Campos do protocolo e estados da conexão.

Apresentações semelhantes


Apresentação em tema: "Transmission Control Protocol TCP Introdução, apresentação em três vias, Campos do protocolo e estados da conexão."— Transcrição da apresentação:

1 Transmission Control Protocol TCP Introdução, apresentação em três vias, Campos do protocolo e estados da conexão

2 TCP A confiabilidade dos processos de comunicação foi deixada a cargo do TCP O TCP é um protocolo: – Orientado à conexão – Confiável 17/12/2014Profº André Luiz Silva2

3 Número de portas Assim como o UDP o TCP também utiliza número de portas como endereços O número da porta é atribuído pela aplicação independentemente se o protocolo utilizado será o UDP ou o TCP 17/12/2014Profº André Luiz Silva3

4 Aplicações que usam TCP 17/12/2014Profº André Luiz Silva4

5 Fluxo de entrega TCP Fluxo do serviço de entrega 17/12/2014Profº André Luiz Silva5

6 Segmentos As entidades transmissoras e receptoras trocam bytes na forma de segmentos. Um segmento TCP consiste em um cabeçalho de 20 bytes, seguidos por um campo opcional, seguido de zero ou mais bytes de dados. Ele pode acumular dados de várias gravações em um único segmento ou dividir os dados de uma única gravação em vários segmentos.

7 Restrições ao tamanho do cabeçalho Dois fatores restringem o tamanho de um cabeçalho TCP: – Cada segmento, incluindo o cabeçalho, devem caber no campo de dados de um datagrama IP bytes. – Cada segmento deve caber na MTU no receptor e no transmissor. No Ethernet, 1500 bytes.

8 Buffers de transmissão e recepção Os processos podem não consumir e produzir dados à mesma velocidade. Bufferização: – Buffer de recepção – Buffer de transmissão – Buffers do tipo FIFO (first-in first-out) 17/12/2014Profº André Luiz Silva8

9 Buffers de transmissão e recepção 17/12/2014Profº André Luiz Silva9

10 Buffers de transmissão Três entradas – Entradas vazias possíveis de serem preenchidas – Área cinza esperando a chegada de ACKs – Área contendo os bytes que já estão prontos para serem enviados 17/12/2014Profº André Luiz Silva10

11 Buffers de recepção Duas entradas – Entradas vazias aguardando bytes oriundos da rede – Entradas que possuem bytes recebidos aguardando verificação e utilização pelo processo receptor 17/12/2014Profº André Luiz Silva11

12 Bytes e segmentos A bufferização controla a disparidade de velocidade entre os processos transmissores e receptores. Porém, existe uma etapa a mais antes da transmissão de dados. Esta etapa é realizada pelo IP Os segmentos TCP são encaminhados à camada de rede que os encapsula em datagramas IP – Os datagramas, como sabemos, podem chegar fora de ordem, serem perdidos, corrompidos ou retransmitidos 17/12/2014Profº André Luiz Silva12

13 Serviço full-duplex O TCP oferece serviço em modo full-duplex. Ou seja, existem buffers de recepção e transmissão em ambas as direções. 17/12/2014Profº André Luiz Silva13

14 Serviço orientado à conexão O protocolo TCP que cuida dos processos de A solicita ao protocolo TCP de B, que cuida dos processos de B, aprovação para iniciar a transmissão O TCP de A e de B trocam dados em ambas as direções Quando os processos não tiverem dados a transmitir, os buffers tornam-se vazios e são reciclados 17/12/2014Profº André Luiz Silva14

15 Serviço confiável O TCP utiliza um mecanismo de confirmação (ACK) para verificar a integridade dos dados. Cada byte dentro de um segmento TCP tem o seu próprio número de sequência de 32 bits. Cada segmento enviado é identificado e confirmado pelo destino através do envio de um pacote de reconhecimento (ack). 17/12/2014Profº André Luiz Silva15

16 Numeração de bytes O TCP numera todos os bytes de dados que são transmitidos por uma conexão. A numeração é independente em cada direção Isto ocorre quando o TCP recebe os dados do processo e os armazena no buffer de envio O valor inicial é estabelecido por um gerador de números aleatórios entre 0 e 2³² - 1 – Exemplo: Se o número aleatório for escolhido como 1057 e a quantidade de bytes for 6000 bytes, os bytes serão numerados de 1057 a /12/2014Profº André Luiz Silva16

17 Numeração do segmento O TCP mantém registro dos segmentos transmitidos e/ou recebidos. Porém, não há um campo específico para o número do segmento. Ao invés disso: – Número de seqüência – Número de confirmação Estes dois números referem-se ao número de bytes e não ao número de segmentos 17/12/2014Profº André Luiz Silva17

18 Número de seqüência Após os bytes terem sido numerados, o TCP atribui um número de sequencia para cada segmento transmitido. O número de seqüência é igual ao número do primeiro byte transportado nesse segmento. 17/12/2014Profº André Luiz Silva18

19 Exemplo 17/12/2014Profº André Luiz Silva19

20 Número de confirmação O número ACK define o número do próximo byte que o protocolo TCP do receptor espera receber. Lembre-se que a comunicação é full-duplex. Ou seja, se A envia para B um segmento com número de seqüência 2500, o ACK que B enviará para A terá o número de confirmação /12/2014Profº André Luiz Silva20

21 Cabeçalho do segmento TCP Cabeçalho de 20 bytes (sem as opções) a 60 bytes (com as opções), seguido do campo de dados. 17/12/2014Profº André Luiz Silva21

22 Cabeçalho do TCP Porta de origem (16 bits) – Número da porta do programa da camada de aplicação do transmissor. Porta de destino (16 bits) - Número da porta do programa da camada de aplicação do receptor. Número de sequência (32 bits) – Define o número atribuído ao primeiro byte de dados adicionado ao segmento. Número de confirmação (32 bits) – Contém o número do byte que o transmissor do segmento espera receber da outra parte. É uma confirmação acumulativa. Tamanho do cabeçalho (4 bits) – Define a quantidade de palavras de 4 bytes no cabeçalho. Os valores geralmente são 5 ou /12/2014Profº André Luiz Silva22

23 Cabeçalho do TCP Reservado (6 bits) – Reservado para uso futuro. Controle (6 bits diferentes) – Veja tabela na próxima transparência Tamanho da janela (16 bits) – Define o tamanho da janela que a outra parte deve suportar. Checksum (16 bits) – Cálculo para verificação de erros. Indicador de urgência (16 bits) – Utilizado quando o segmento contém dados de urgência. Veremos mais adiante. Opções ( 40 bytes) – Informações adicionais. 17/12/2014Profº André Luiz Silva23

24 Flags 17/12/2014Profº André Luiz Silva24

25 Maximum Segment Size (1) MSS (Tamanho Máximo do Segmento). – Limita a quantidade de dados que o TCP irá enviar num único datagrama IP. – Valores para MSS são trocados nos pacotes SYN (requisição de conexão) que abrem a conexão TCP.

26 Maximum Segment Size (2) Uma opção largamente utilizada permite que o host determine o tamanho máximo do segmento que irá receber. O uso de segmentos grandes é mais eficiente. – Menos cabeçalho para uma mesma quantidade de dados. – Porém, alguns hosts podem não conseguir administrar segmentos muito grandes.

27 Maximum Segment Size (3) Durante a etapa de conexão, cada host informa o valor do seu MSS e avalia a do seu parceiro. Caso contrário, o padrão de 536 bytes é estipulado. Todos os hosts da Internet são obrigados a aceitar segmentos de bytes.

28 Timestamp Outra opção também largamente utilizada. Transporta um período de tempo enviado pelo transmissor e ecoado pelo receptor. Calcula as amostras de tempo de ida e volta.

29 Campos do TCP

30 Conexão em três vias 17/12/2014Profº André Luiz Silva30

31 Primeira via O lado cliente envia um segmento TCP especial ao lado servidor. Este segmento não contém dados. O bit SYN é ajustado para 1. O cliente escolhe aleatoriamente um número de sequência e coloca-o no campo “número de sequência”. O segmento é encapsulado em um datagrama IP e enviado ao servidor 17/12/2014Profº André Luiz Silva31

32 Segunda via Assim que o datagrama IP chega ao servidor, este extrai o segmento SYN, aloca buffers e variáveis. Este segmento também não contém dados. O bit SYN está com valor 1 O campo de reconhecimento é inicializado. O servidor escolhe o seu próprio número de sequência. 17/12/2014Profº André Luiz Silva32

33 Terceira via Ao receber o segmento SYN/ACK o cliente também reserva buffers e variáveis para a conexão. Reconhece o segmento de confirmação colocando o valor do campo número de sequência + 1 no campo de reconhecimento. O bit SYN é ajustado para 0, já que a conexão está estabelecida. O bit PSH é ajustado para 1. 17/12/2014Profº André Luiz Silva33

34 Transferência de dados 17/12/2014Profº André Luiz Silva34

35 Término de conexão 17/12/2014Profº André Luiz Silva35

36 Etapas da conexão Representadas em uma máquina de estados finitos. – 11 estados. Em cada estado, determinados eventos são válidos. Quando ocorre algum evento válido, torna-se possível executar uma ação. Se ocorrer algum outro evento, um erro é reportado.

37 Eventos e ações Evento: – Pode ser uma chamada de sistema iniciada pelo usuário. Connect, listen, send ou close. – A chegada de um segmento. SYN, FIN, ACK ou RST. Ação: – Envio de um segmento de controle. SYN, FIN ou RST. Ou nada, indicado por um travessão.

38 Estados da conexão

39 Estados do cliente Começa no estado CLOSED saindo desse estado ao executar uma abertura ativa (CONNECT). Se o outro lado executar a primitiva oposta, a conexão será estabelecida e o estado passará para ESTABLISHED. O encerramento pode ser iniciado por qualquer um dos lados.

40 Estados do servidor Executa a primitiva LISTEN e aguarda. Quando um SYN chegar, ele será confirmado e o servidor passa para o estado SYN RCVD. Quando o SYN do servidor for confirmado, ele passará para o estado ESTABLISHED. Então, os dados podem ser transmitidos.

41 Encerramento da conexão Ao terminar o envio dos dados, o cliente executa a primitiva CLOSE, o que faz um FIN ser enviado ao servidor. O servidor também, ao receber o FIN, executa a primitiva CLOSE enviando um FIN ao cliente. Ao receber o ACK do cliente o servidor encerra a conexão e apaga seus registros.

42 Estados das conexões TCP - Cliente

43 Estados das conexões TCP - Servidor

44 Reset da conexão TCP cliente solicita conexão a uma porta não existente Ocorrência de alguma situação anormal levando o servidor a abortar a conexão TCP cliente percebe que a conexão está ociosa por muito tempo e resolve desligar a conexão 17/12/2014Profº André Luiz Silva44


Carregar ppt "Transmission Control Protocol TCP Introdução, apresentação em três vias, Campos do protocolo e estados da conexão."

Apresentações semelhantes


Anúncios Google