Compartilhamento de tecnologia

Perguntas comuns em entrevistas sobre redes de computadores (1)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Perguntas comuns em entrevistas em redes de computadores envolvem muitos níveis, incluindo protocolos de rede, arquitetura de rede, segurança de rede, transmissão de dados, etc. Aqui estão explicações detalhadas de algumas perguntas comuns:

1. Qual é o modelo OSI de sete camadas? Qual é a função de cada camada?

Modelo OSI de sete camadasÉ um sistema padrão para interconexão entre computadores ou sistemas de comunicação formulado pela Organização Internacional de Padronização (ISO).

  1. Camada de aplicação: Fornece serviços interativos para aplicativos, como HTTP, FTP, SMTP e outros protocolos.
  2. camada de apresentação: Representação, segurança e compactação de dados, convertendo dados da camada de aplicação em um formato adequado para transmissão em rede.
  3. camada de sessão: Estabelecer, gerenciar, encerrar sessões, organizar e coordenar a comunicação entre dois processos de sessão.
  4. camada de transporte: Responsável por fornecer serviços de transmissão de dados para comunicação entre dois processos host, incluindo protocolos TCP e UDP, para obter transmissão confiável de dados.
  5. Camada de rede: Selecione nós de roteamento e comutação apropriados para garantir a transmissão oportuna de dados. O protocolo principal é o IP.
  6. camada de enlace de dados: Ao transmitir dados entre dois nós adjacentes, monte os datagramas IP entregues pela camada de rede em quadros e adicione as informações de controle necessárias.
  7. camada física: Realize a transmissão transparente de fluxos de bits entre nós de computador adjacentes, protegendo ao máximo as diferenças nos meios de transmissão e nos dispositivos físicos.

2. Qual é a diferença entre TCP e UDP?

TCP (Transmission Control Protocol) e UDP (User Datagram Protocol) são protocolos da camada de transporte. Suas principais diferenças incluem:

  1. Conectividade: TCP é um protocolo orientado a conexão e uma conexão precisa ser estabelecida antes que os dados sejam transmitidos, enquanto o UDP é um protocolo sem conexão e uma conexão não precisa ser estabelecida antes de enviar dados;
  2. confiabilidade: O TCP fornece transmissão confiável e garante a transmissão correta de dados por meio de mecanismos como números de sequência, respostas de confirmação e retransmissões de tempo limite. O UDP não fornece garantias de confiabilidade e os dados podem ser perdidos ou chegar fora de ordem;
  3. Eficiência de transmissão: Como o TCP precisa estabelecer uma conexão e realizar verificações de confiabilidade, sua eficiência de transmissão é relativamente baixa, enquanto o UDP não possui essas sobrecargas e possui maior eficiência de transmissão;
  4. Cenários de aplicação: TCP é adequado para cenários de aplicativos que exigem transmissão confiável, como transferência de arquivos, navegação na Web, etc.; UDP é adequado para cenários de aplicativos que exigem alto desempenho em tempo real e podem tolerar uma certa quantidade de perda de dados, como vídeo ao vivo; transmissões, jogos online, etc.

3. Qual é a diferença entre HTTP e HTTPS?

A principal diferença entre HTTP (Hypertext Transfer Protocol) e HTTPS (Hypertext Transfer Protocol Secure) é a segurança:

  1. segurança: HTTP transmite texto simples e os dados são facilmente interceptados e adulterados, enquanto HTTPS adiciona uma camada de protocolo SSL/TLS ao HTTP para criptografar e transmitir dados para garantir a segurança da transmissão de dados;
  2. O número da porta: HTTP usa a porta 80 por padrão; HTTPS usa a porta 443 por padrão.
  3. desempenho: como o HTTPS requer operações de criptografia e descriptografia, seu desempenho será reduzido em comparação ao HTTP.

4. Qual é o processo de handshake triplo TCP e onda quadridirecional?

Aperto de mão triplo TCPO processo é como se segue:

  1. O cliente envia um pacote SYN (número de sequência de sincronização) ao servidor e entra no estado SYN_SENT, aguardando confirmação do servidor.
  2. Após receber o pacote SYN, o servidor confirma o SYN do cliente (ack=j+1) e também envia um pacote SYN (ou seja, pacote SYN+ACK. Neste momento, o servidor entra no estado SYN_RCVD).
  3. Após receber o pacote SYN+ACK do servidor, o cliente envia um pacote de confirmação ACK (ack=k+1) ao servidor. Após o envio do pacote, o cliente e o servidor entram no estado ESTABELECIDO e completam o triplo. aperto de mão.

TCP acena quatro vezesO processo é como se segue:

  1. O cliente envia um FIN para encerrar a transferência de dados do cliente para o servidor e o cliente entra no estado FIN_WAIT_1.
  2. Depois que o servidor recebe o FIN, ele envia um ACK ao cliente. O número de sequência de confirmação é o número de sequência recebido + 1 (o mesmo que SYN, um FIN ocupa um número de sequência) e o servidor entra no estado CLOSE_WAIT.
  3. O servidor fecha a conexão com o cliente, envia um FIN para o cliente e o servidor entra no estado LAST_ACK.
  4. Após receber o FIN, o cliente envia um ACK ao servidor, confirmando que o número de sequência é o número de sequência recebido + 1, e o cliente entra no estado TIME_WAIT. O servidor fecha a conexão após receber o ACK. Se o cliente ainda não receber resposta após aguardar 2MSL, ele entra no estado CLOSED.

5. Por que o TCP exige três handshakes em vez de dois?

A principal razão pela qual o TCP requer um handshake triplo em vez de um handshake bidirecional é garantir que ambas as partes tenham a capacidade de receber e enviar dados, estabelecendo assim uma conexão confiável. Especificamente:

  • O primeiro handshake: o cliente envia um pacote SYN e o servidor confirma a capacidade de envio do cliente.
  • Segundo handshake: o servidor envia um pacote SYN+ACK e o cliente confirma as capacidades de recebimento e envio do servidor.
  • O terceiro handshake: o cliente envia um pacote ACK e o servidor confirma a capacidade de recebimento do cliente.

Se houver apenas dois handshakes, pode ocorrer a seguinte situação: o cliente envia uma solicitação de conexão, mas não recebe a confirmação porque a mensagem de solicitação de conexão é perdida, então o cliente retransmite a solicitação de conexão. Posteriormente, foi recebida a confirmação e a conexão foi estabelecida. Após a conclusão da transmissão dos dados, a conexão é liberada e o cliente envia um total de dois segmentos de solicitação de conexão, dos quais o primeiro é perdido e o segundo chega ao servidor. Porém, o primeiro segmento perdido permaneceu por muito tempo em alguns nós da rede e foi adiado até um certo tempo após a liberação da conexão antes de chegar ao servidor. Nesse momento, o servidor erroneamente pensou que o cliente havia emitido um novo. solicitação de conexão, então um segmento de mensagem de confirmação é enviado ao cliente, concordando em estabelecer a conexão. Como o cliente não enviou uma solicitação de dados neste momento, o servidor aguardará o envio dos dados pelo cliente, resultando em desperdício de recursos.

6. Quais são os métodos de solicitação HTTP comumente usados? Quais são as diferenças e usos entre eles?

Os métodos de solicitação HTTP comumente usados ​​incluem GET, POST, PUT, DELETE, CONNECT, OPTIONS e TRACE, entre os quais GET e POST são os dois mais comumente usados.

  • PEGAR : Usado para enviar uma solicitação para obter dados no servidor. Os parâmetros estão incluídos na URL e são adequados para cenários onde a quantidade de dados solicitados não é grande e os requisitos de segurança não são altos.
  • PUBLICAR : usado para enviar dados ao recurso especificado pela URL. Os parâmetros são passados ​​através do corpo da solicitação, o que é adequado para cenários onde uma grande quantidade de dados é enviada ou onde os requisitos de segurança são elevados.

Outros métodos de solicitação, como PUT e DELETE, são usados ​​para modificar dados no servidor, excluir recursos no servidor, etc. Cada um desses métodos de solicitação tem seus próprios usos específicos e cenários aplicáveis.

O texto acima é uma explicação detalhada de perguntas comuns em entrevistas em redes de computadores. Essas questões cobrem muitos aspectos, como protocolos de rede, arquitetura de rede e transmissão de dados, e são uma parte importante do exame do conhecimento de redes de computadores dos candidatos.