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

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

Transmission Control Protocol TCP

Apresentações semelhantes


Apresentação em tema: "Transmission Control Protocol TCP"— 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 07/04/2017 Profº André Luiz Silva

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 07/04/2017 Profº André Luiz Silva

4 Aplicações que usam TCP
07/04/2017 Profº André Luiz Silva

5 Fluxo de entrega TCP Fluxo do serviço de entrega 07/04/2017
Profº André Luiz Silva

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) 07/04/2017 Profº André Luiz Silva

9 Buffers de transmissão e recepção
07/04/2017 Profº André Luiz Silva

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 07/04/2017 Profº André Luiz Silva

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 07/04/2017 Profº André Luiz Silva

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 07/04/2017 Profº André Luiz Silva

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. 07/04/2017 Profº André Luiz Silva

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 07/04/2017 Profº André Luiz Silva

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). 07/04/2017 Profº André Luiz Silva

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 7056 07/04/2017 Profº André Luiz Silva

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 07/04/2017 Profº André Luiz Silva

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. 07/04/2017 Profº André Luiz Silva

19 Exemplo 07/04/2017 Profº André Luiz Silva

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 2501 07/04/2017 Profº André Luiz Silva

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. 07/04/2017 Profº André Luiz Silva

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 15. 07/04/2017 Profº André Luiz Silva

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. 07/04/2017 Profº André Luiz Silva

24 Flags 07/04/2017 Profº André Luiz Silva

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 07/04/2017 Profº André Luiz Silva

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 07/04/2017 Profº André Luiz Silva

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. 07/04/2017 Profº André Luiz Silva

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. 07/04/2017 Profº André Luiz Silva

34 Transferência de dados
07/04/2017 Profº André Luiz Silva

35 Término de conexão 07/04/2017 Profº André Luiz Silva

36 Etapas da conexão Representadas em uma máquina de estados finitos.
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: Ação:
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 07/04/2017 Profº André Luiz Silva


Carregar ppt "Transmission Control Protocol TCP"

Apresentações semelhantes


Anúncios Google