Perguntas da entrevista de operação e manutenção sobre o "handshake de três vias TCP" vários "porquês"

Operação e manutenção perguntas da entrevista sobre o handshake de três vias TCP vários "por que"

1. Você poderia nos dizer a estrutura dos pacotes TCP?

  • O TCP está na camada de transporte e controla a comunicação porta a porta.Portanto : o número da porta de origem inicial e o número da porta de destino do cabeçalho da mensagem;
  • O número de sequência de 32 bits Seq, em bytes , refere-se ao número de sequência do primeiro byte no início da parte de dados da mensagem;
  • O número de sequência de confirmação de 32 bits ack, a unidade é byte , o que significa que se espera que a outra porta lateral envie dados do primeiro byte;
  • Comprimento do cabeçalho de 4 bits, intervalo 0-15, unidade é de 4 bytes , o comprimento do cabeçalho é de até 60 bytes, mas porque o cabeçalho tem informações de identificação de mensagem necessárias e restrições de conteúdo de protocolo (contexto), é acordado que pelo menos 20 bytes ;
  • 6 bits são reservados, definidos como zero e reservados para as gerações futuras.
  • Bits de função: URG, ACK, PSH, RST, SYN, FIN
    • URG: bit urgente, que identifica se os dados são urgentes ou não, e é usado em conjunto com o ponteiro de dados no início e fim, ou seja, o byte do primeiro byte para o byte especificado pelo ponteiro urgente são dados urgentes e devem ser transmitidos o mais rápido possível.
    • ACK não é o ack anterior. Lembre-se de que apenas o ACK é 1 e o campo de confirmação é válido, e o ack é inválido quando o número de confirmação é 0. Então, depois que alguém perguntar a você sobre a conexão TCP, qual é o ACK você responderá? Claro que é 1.
    • PSH: A camada de transporte será entregue ao processo de recebimento do aplicativo o mais rápido possível e não esperará até que todo o cache seja preenchido com a camada de transporte antes da entrega, então você entende para quem é esse bit ? Isso mesmo, a camada de transporte na extremidade receptora.
    • RST: Reset bit (tão estranho!) Quando RST = 1, quando há um erro de conexão sério durante a conexão TCP, a conexão deve ser liberada e, em seguida, a conexão TCP da camada de transporte deve ser restabelecida. Então, você sabe quando esse bit é útil ? Isso mesmo, após o processo de conexão TCP e a conexão for bem sucedida ! Durante o processo de conexão, o terceiro handshake falha , e o receptor deve enviar uma mensagem RST = 1 para forçar o fechamento desta conexão TCP! O que acontece depois que a conexão é bem-sucedida? Um dos dois lados da transmissão de saída apareceu, o host travou, etc., esse bit também foi útil! Essa pessoa é frequentemente questionada e deve ser memorizada.
    • SYN: Bit de sincronização, 1 significa que este pacote é um pedido de conexão (primeiro handshake) ou mensagem de recepção de conexão (segundo handshake), entendeu? Depois que a conexão for bem-sucedida ou o terceiro handshake, será 0.
    • FIN: O bit de terminação é usado para liberar a conexão de uma parte para a outra, então peço que, no decorrer de quatro ondas de mãos, a mensagem com FIN = 1 apareceu várias vezes e estava correta duas vezes, porque é uma comunicação full-duplex. Uma parte deve dizer à outra parte que não vou enviar nenhum dado novo.
  • Campo da janela: 2 bytes. Aponte quantos bytes de dados a outra parte pode enviar do espaço de buffer da camada de transporte atual . Então, eu pergunto a você, esses ** dados de cache incluem o cabeçalho? ** Claro que não está incluído!
  • Soma de verificação: 2B, verifique o cabeçalho e os dados. Memorizar
  • Ponteiro urgente: 2B, indicando quantos bytes de dados urgentes existem, contando da parte de dados.
  • Campo de opção: comprimento variável.
  • Parte de dados.
    Insira a descrição da imagem aqui

2. Você poderia descrever o processo do aperto de mão de três vias?

Insira a descrição da imagem aqui

  • O primeiro handshake : O cliente (cliente) envia o primeiro pacote para o servidor (servidor) com os bits de sinalização: SYN = 1, ACK = 0 e o número de sequência Seq = x. O cliente ( estado original CLOSED ) entra em: estado SYN-SEND , aguardando a confirmação do servidor;

  • O segundo handshake : o servidor recebe o pacote enviado pelo cliente e, em seguida, envia o segundo pacote. O pacote SYN = 1, ACK = 1 , o número de sequência de recebimento ack é x + 1, o número de sequência de envio Seq é y e o servidor insere SYN -Status do RCVD ;

  • O terceiro handshake : Após receber o pacote do servidor, o cliente envia o último pacote para o servidor.O bit flag SYN = 0, ACK = 1 , o número de sequência de envio Seq é x + 1 e ack é y + 1. Depois que esse pacote é enviado, o cliente e o servidor entram no estado ESTABLISHED um após o outro . Até agora, o handshake triplo foi concluído.

3. Por que há um terceiro handshake em vez de dois handshake?

  • O handshake bidirecional permite apenas que uma parte estabeleça um ISN , enquanto a outra parte o reconhece. Isso significa que apenas uma parte pode enviar dados .
  • O TCP é um protocolo de comunicação bidirecional , o que significa que qualquer uma das extremidades deve ser capaz de enviar dados de maneira confiável. Ambas as partes precisam estabelecer um ISN (ou seja, um número de sequência inicial gerado aleatoriamente ) e ambas as partes precisam reconhecer o ISN do outro e informar um ao outro este valor para obter a sincronização entre as duas partes e garantir uma transmissão confiável
  • Resumindo, uma das partes deve confirmar o número de sequência seq enviado pela outra parte para ser considerada uma conexão unilateral.Então, por exemplo, ambas as partes concordam que pelo menos três handshake são necessários, entendeu?

4. O que acontece se o terceiro handshake falhar?

  • Depois que a extremidade receptora estiver no estado SYN-RCVD, ela não receberá a mensagem ACK. Se o tempo limite expirar , não retransmitirá a mensagem ack. Em vez disso, enviará diretamente o segmento da mensagem com RST = 1 , entrará no estado FECHADO e começará novamente. Entre no estado LISTEN.
    Insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/weixin_31789689/article/details/108208865
Recomendado
Clasificación