Diretório do artigo
- Question1: Qual é a arquitetura de rede OSI de sete camadas (ou arquitetura de rede TCP / IP de quatro camadas ou arquitetura moderna de rede de cinco camadas)?
- Resposta 1:
- Question2: Explique brevemente o princípio do TCP / IP?
- Answer2:
- Question3: Explique brevemente o formato do cabeçalho TCP?
- Resposta3:
- Question4: Fale sobre o handshake de três vias do TCP e quatro mãos onduladas?
- Resposta4:
- Question5: Fale sobre o protocolo HTTP e seu princípio / processo de transmissão?
- Resposta5:
- Question6: Fale sobre o status HTTP comum e seu significado?
- Resposta6:
- Question7: Fale sobre sua compreensão do HTTPS?
- Resposta7:
- Question8: Fale sobre o princípio da CDN?
- Resposta8:
Os blogs orientados para entrevistas são apresentados no estilo Q / A.
Question1: Qual é a arquitetura de rede OSI de sete camadas (ou arquitetura de rede TCP / IP de quatro camadas ou arquitetura moderna de rede de cinco camadas)?
Resposta 1:
Três métodos de divisão são possíveis, como mostrado na figura a seguir:
Tomando o modelo OSI de sete camadas como exemplo, como mostrado na figura:
- Camada física: define principalmente os padrões de equipamentos físicos, como o tipo de interface de cabo de rede, o tipo de interface de fibra óptica e a taxa de transmissão de vários meios de transmissão. Sua principal função é transmitir o fluxo de bits (ou seja, é convertido de 1, 0 para a intensidade atual da transmissão e, após atingir o destino, é convertido para 1, 0, o que chamamos frequentemente de conversão analógico-digital e conversão analógico-digital). Os dados nesta camada são chamados de bits.
- Camada de enlace de dados: os dados recebidos da camada física são principalmente encapsulados e decapsulados pelo endereço MAC (endereço da placa de rede). Essa camada de dados costuma ser chamada de quadro. O dispositivo que trabalha nesta camada é o comutador e os dados são transmitidos através do comutador.
- Camada de rede: encapsula e decapsula principalmente o endereço IP (por exemplo, 192.168.0.1) dos dados recebidos da camada inferior. O dispositivo que trabalha nessa camada é um roteador e os dados nessa camada são chamados de pacote de dados.
- Camada de transporte: define alguns protocolos de transmissão de dados e números de porta (porta 80 da WWW, etc.), como: TCP (protocolo de controle de transmissão, baixa eficiência de transmissão, confiabilidade forte, usado para transmitir dados com requisitos de alta confiabilidade e grande volume de dados) , UDP (User Datagram Protocol, exatamente o oposto dos recursos TCP, usados para transmitir dados com baixos requisitos de confiabilidade e pequeno volume de dados, como dados de bate-papo QQ são transmitidos dessa maneira). O principal objetivo é transmitir os dados recebidos da camada inferior em segmentos e reorganizá-los após atingir o endereço de destino. Essa camada de dados costuma ser chamada de segmento.
- Camada de sessão: estabeleça um caminho de transmissão de dados através da camada de transmissão (número da porta: porta de transmissão e porta de recebimento). Inicie uma sessão principalmente ou aceite uma solicitação de sessão entre seus sistemas (os dispositivos precisam se conhecer podem ser IP, MAC ou nome do host).
- Camada de apresentação: principalmente para interpretar, criptografar e descriptografar dados recebidos, compactar e descompactar etc. (ou seja, converter o que o computador pode reconhecer em algo que o homem possa reconhecer (como imagens, som etc.))
- A camada de aplicação é principalmente alguns aplicativos de terminal, como FTP (vários downloads de arquivos), WEB (navegador IE), QQ e similares (você entende o que podemos ver na tela do computador. )
Question2: Explique brevemente o princípio do TCP / IP?
Answer2:
O protocolo TCP / IP não é um nome coletivo dos dois protocolos TCP e IP, mas refere-se a toda a família de protocolos TCP / IP na Internet. Em termos de camadas de protocolo: Modelo, o TCP / IP consiste em quatro camadas: camada de interface de rede, camada de rede, camada de transporte e camada de aplicativo.
Camada de acesso à rede (Camada de acesso à rede) A Camada de acesso à rede
( Camada de acesso à rede) não é descrita em detalhes no modelo de referência TCP / IP, apenas para que o host use um determinado protocolo para se conectar à rede.
Camada da Internet A Camada da
Internet é uma parte essencial de toda a arquitetura, cuja função é permitir que o host envie pacotes para qualquer rede e faça com que os pacotes cheguem independentemente ao destino. Esses pacotes podem passar por redes diferentes, e a ordem de chegada e a ordem de transmissão também podem ser diferentes. Se a camada superior precisar enviar e receber sequencialmente, deverá lidar com a ordem dos pacotes. A camada da Internet usa o protocolo Internet (IP).
Camada de transporte (Tramsport Layer-TCP / UDP)
A camada de transporte (Tramsport Layer) permite que entidades de mesmo nível nas máquinas de origem e de destino tenham conversas. Dois protocolos de ponta a ponta são definidos nessa camada: Protocolo de controle de transmissão (TCP, Protocolo de controle de transmissão) e Protocolo de datagrama de usuário (UDP, Protocolo de datagrama de usuário). O TCP é um protocolo orientado à conexão que fornece serviços confiáveis de transmissão e conexão de mensagens para aplicativos da camada superior. Para esse fim, além da transmissão básica de dados, também possui funções como garantia de confiabilidade, controle de fluxo, multiplexação, prioridade e controle de segurança. O UDP é um protocolo para transmissão sem conexão e não confiável, usado principalmente para aplicativos que não requerem as funções de seqüenciamento TCP e controle de fluxo.
Camada de aplicação A camada de
aplicação contém todos os protocolos de alto nível, incluindo: protocolo de terminal virtual (TELNET, Telecommunications NETwork), protocolo de transferência de arquivos (FTP, protocolo de transferência de arquivos), protocolo de transferência de e-mail (SMTP, correio simples) Protocolo de transferência), serviço de nome de domínio (DNS, Domain Name Service), protocolo de transferência de notícias on-line (NNTP, Net News Transfer Protocol), protocolo de transferência de hipertexto (HTTP, HyperText Transfer Protocol), etc.
Question3: Explique brevemente o formato do cabeçalho TCP?
Resposta3:
O formato do cabeçalho TCP é mostrado abaixo:
- Número da porta de origem (16 bits): (junto com o endereço IP do host de origem) identifica um processo de aplicativo no host de origem.
- Número da porta de destino (16 bits): (juntamente com o endereço IP do host de destino) identifica um processo de aplicativo no host de destino. Esses dois valores mais o endereço IP do host de origem e o endereço IP do host de destino no cabeçalho IP determinam exclusivamente uma conexão TCP.
- Número de sequência seq (32 bits): usado para identificar o fluxo de bytes de dados enviados da origem TCP para o destino TCP, representando o número de sequência do primeiro byte de dados nesse segmento. Se você pensar em um fluxo de bytes como um fluxo unidirecional entre dois aplicativos, o TCP contará cada byte com um número de sequência. O número de série é um número não assinado de 32 bits e o número de série começa em 0 após atingir a 32ª potência de 2-1. Quando uma nova conexão é estabelecida, o sinalizador SYN se torna 1 e o campo do número de sequência contém o número de sequência inicial (ISN) da conexão selecionada pelo host.
- Número de confirmação ack (32 bits): Contém o próximo número de sequência esperado pelo final do envio. Portanto, o número de sequência de confirmação deve ser o número de sequência do byte de dados que foi recebido com êxito da última vez mais um. O campo do número da sequência de confirmação é válido apenas quando o sinalizador ACK é 1. O TCP fornece serviços full-duplex para a camada de aplicativo, o que significa que os dados podem ser transmitidos independentemente em ambas as direções. Portanto, cada extremidade da conexão deve manter o número de sequência dos dados transmitidos em cada direção.
- Comprimento do cabeçalho TCP (4 bits): fornece o número de palavras de 32 bits no cabeçalho; na verdade, indica onde os dados são iniciados. Este valor é necessário porque o comprimento do campo opcional é variável. Este campo ocupa 4 bits, portanto, o TCP possui um cabeçalho de até 60 bytes. No entanto, não há campo opcional e o comprimento normal é 20 bytes.
- Bit reservado (6 bits): reservado para uso futuro, deve ser definido como 0 no momento.
- Sinalizadores de controle (6 bits): existem 6 bits de sinalizador no cabeçalho TCP e vários deles podem ser configurados para 1 ao mesmo tempo. Em ordem:
(1) URG: 1 indica que o ponteiro de emergência é válido e 0 indica que o valor do ponteiro de emergência é ignorado.
(2) ACK: 1 indica que o número de confirmação é válido e 0 indica que a mensagem não contém informações de confirmação e o campo número de confirmação é ignorado.
(3) PSH: 1 significa dados com o sinalizador PUSH, indicando que o receptor deve dar esse segmento à camada de aplicação o mais rápido possível, sem esperar que o buffer seja preenchido.
(4) RST: É usado para redefinir a conexão incorreta devido a uma falha no host ou por outros motivos. Também pode ser usado para rejeitar segmentos ilegais e solicitações de conexão. Em geral, se você receber um pacote com um RST 1, certos problemas devem ter ocorrido.
(5) SYN: número de sequência da sincronização, 1 significa solicitação de conexão, usada para estabelecer a conexão e sincronizar o número de sequência (sincronizar).
(6) FIN: É usado para liberar a conexão.Um valor 1 indica que o remetente não tem dados para enviar, ou seja, para fechar o fluxo de dados local. - Tamanho da janela (16 bits): o número de bytes de dados, indicando o número de bytes que a fonte desta mensagem pode receber do número de confirmação, ou seja, o tamanho da janela de recebimento da fonte. O tamanho da janela é um campo de 16 bits, portanto, o tamanho máximo da janela é 65535 bytes.
- Soma de verificação (16 bits): esta soma de verificação é calculada como uma palavra de 16 bits para todo o segmento TCP, incluindo o cabeçalho TCP e os dados TCP. Este é um campo obrigatório, que deve ser calculado e armazenado pelo final do envio e verificado pelo final do recebimento.
- Ponteiro de emergência (16 bits): o ponteiro de emergência é válido apenas quando o sinalizador URG está definido como 1. O modo de emergência do TCP é uma maneira do remetente enviar dados de emergência para o outro lado.
- Opções: o campo opcional mais comum é o tamanho de pacote mais longo, também conhecido como MSS (Tamanho Máximo do Segmento). Cada parte conectada geralmente indica essa opção no primeiro segmento da comunicação (o segmento em que o sinalizador SYN está definido para estabelecer uma conexão), que indica o comprimento máximo do segmento que a extremidade local pode receber. O tamanho da opção não é necessariamente um múltiplo inteiro de palavras de 32 bits; portanto, os bits de preenchimento são adicionados para tornar o comprimento do cabeçalho um número inteiro de palavras.
- Dados: a parte dos dados do segmento TCP é opcional. Quando uma conexão é estabelecida e uma conexão é encerrada, somente o cabeçalho TCP é trocado entre os dois segmentos. Se uma parte não tiver dados para enviar, também utilizará o cabeçalho sem dados para confirmar os dados recebidos. Em muitos casos de manipulação de tempos limite, também é enviado um segmento sem dados.
Question4: Fale sobre o handshake de três vias do TCP e quatro mãos onduladas?
Resposta4:
O TCP se comunicará três vezes antes da transmissão, que geralmente é chamado de "handshake de três vias". Quando os dados são desconectados após a transmissão, eles são comunicados quatro vezes, o que geralmente é chamado de "quatro mãos acenadas".
Aperto de mão três
processo handshake de três vias é como se segue:
O primeiro handshake: Host A envia o código bit SYN = 1, SEQ número gerado aleatoriamente = 1234567 pacote para o servidor, pelo hospedeiro B sabe SYN = 1, A estabelece um requisitos de ligação;
Segunda Handshake: O host B confirma as informações on-line após receber a solicitação e envia o número de confirmação = (
seq + 1 do host A ), syn = 1, confirmação = 1, gera aleatoriamente um pacote com seq = 7654321.
Terceiro handshake: host A Após receber, verifique se o número de confirmação está correto, ou seja, o número seq + 1 enviado pela primeira vez e se o código de bit ack é 1, se estiver correto, o host A enviará o número de confirmação = (seq + 1 do host B), ack = 1. Depois de receber, o host B confirma que o valor seq e ack = 1, então a conexão foi estabelecida com sucesso.
Acene quatro vezes
O TCP estabelece uma conexão com três handshake e desconecta com quatro handshake. Isso ocorre devido ao meio fechamento do TCP. Como a conexão TCP é full-duplex (ou seja, os dados podem ser transmitidos nas duas direções simultaneamente), ao fechar, cada direção deve ser fechada separadamente. Esse fechamento unidirecional é chamado de meio fechamento. Quando uma parte conclui sua tarefa de envio de dados, ela envia um FIN para notificar a outra parte de que encerrará a conexão nessa direção.
As quatro ondas são mostradas abaixo:
1) Feche a conexão cliente-servidor: Primeiro, o cliente A envia um FIN para fechar a transmissão de dados cliente-servidor e aguarda a confirmação do servidor. O bit de sinalização de terminação FIN = 1 e o número de sequência seq = u.
2) O servidor recebe este FIN, envia de volta um ACK, o número de confirmação ack é o número de sequência recebido mais um.
3) Feche a conexão do servidor com o cliente: envie também um FIN ao cliente.
4) Após receber o FIN, o segmento do cliente envia de volta uma mensagem ACK para confirmar e define o número de sequência de confirmação seq como o número de sequência recebido mais 1. A primeira parte a executar o desligamento executará um desligamento ativo, enquanto a outra parte executará um desligamento passivo.
Nota : Depois que o host A envia FIN, ele entra no estado de espera de término.Depois que o servidor B recebe o segmento de liberação da conexão do host A, ele envia imediatamente uma confirmação para o host A. Em seguida, o servidor B entra no estado de espera de espera. Notifique o processo de aplicativo de alto nível que a conexão de A a B foi liberada. Este é o estado "meio desligado". Ou seja, A não pode ser enviado para B, mas B pode ser enviado para A. No momento, se B não tiver datagrama para enviar para A, seu processo de aplicativo notificará o TCP para liberar a conexão e, em seguida, envia-o para A para liberar o segmento de conexão e aguarda confirmação. Depois que A enviar a confirmação, digite time-wait.Note que, no momento, a conexão TCP não foi liberada.Em seguida, após o 2MSL definido pelo timer de espera, A entra no estado fechado.
Question5: Fale sobre o protocolo HTTP e seu princípio / processo de transmissão?
Resposta5:
HTTP é um protocolo sem estado. Sem estado significa que não há necessidade de estabelecer uma conexão persistente entre o cliente (navegador da web) e o servidor, o que significa que quando um cliente envia uma solicitação ao servidor e o servidor retorna uma resposta, a conexão é fechada O servidor não retém informações sobre a conexão.O HTTP segue o modelo de solicitação / resposta. O cliente (navegador) envia uma solicitação ao servidor e o servidor processa a solicitação e retorna uma resposta apropriada. Todas as conexões HTTP são estruturadas como um conjunto de solicitações e respostas.
1: Resolução de endereço,
como solicitar esta página com um navegador cliente: http://localhost.com:8080/index.htm O nome do protocolo, nome do host, porta, caminho do objeto e outras partes são decompostos. Os resultados obtidos são os seguintes:
nome do protocolo : nome do
host http :
porta localhost.com :
caminho do objeto 8080 : /index.htm
Nesta etapa, o DNS do sistema de nomes de domínio é necessário para resolver o nome de domínio localhost.com para obter o endereço IP do host.
2: Encapsular o pacote de dados da solicitação HTTP
Combine a parte acima com as informações da máquina para encapsulá-la em um pacote de dados da solicitação HTTP.
3: Encapsular no pacote TCP e estabelecer conexão
Encapsular no pacote TCP e estabelecer conexão TCP (handshake de três vias TCP).
4: O cliente envia uma solicitação e o
cliente envia um comando de solicitação: Após o estabelecimento da conexão, o cliente envia uma solicitação ao servidor.O formato da solicitação é: identificador uniforme de recursos (URL), número da versão do protocolo, seguido por informações MIME, incluindo modificação da solicitação Caracteres, informações e conteúdo do cliente.
5:
Após o servidor receber a solicitação do servidor, são fornecidas as informações de resposta correspondentes.O formato é uma linha de status, incluindo o número da versão do protocolo da informação, um código de sucesso ou erro, seguido pelas informações MIME, incluindo informações do servidor, informações da entidade e possíveis Conteúdo.
6: O servidor fecha a conexão TCP O
servidor fecha a conexão TCP: Geralmente, quando o servidor da Web envia os dados da solicitação ao navegador, ele fecha a conexão TCP e, se o navegador ou o servidor adiciona essa linha de código às informações do cabeçalho Manter viva, a conexão TCP permanecerá aberta após o envio, para que o navegador possa continuar enviando solicitações pela mesma conexão. Manter a conexão economiza o tempo necessário para estabelecer uma nova conexão para cada solicitação e também economiza largura de banda da rede.
Question6: Fale sobre o status HTTP comum e seu significado?
Resposta6:
Tipo de resposta da mensagem
Código de status | Detalhes |
---|---|
100 | Continuar |
101 | Protocolo de comutação |
Tipo de resposta bem-sucedida
Código de status | Detalhes |
---|---|
200 OK (sucesso) | |
201 | Criado |
202 | Aceito (criado) |
203 | Informações Não Autorizadas |
204 | Sem conteúdo |
205 | Redefinir conteúdo |
206 | Conteúdo parcial |
Tipo de redirecionamento
Código de status | Detalhes |
---|---|
300 | Múltipla Escolha |
301 | Movido permanentemente |
302 | Encontrado (mudança temporária) |
303 | Ver outros |
304 | Não modificado |
305 | Usar proxy |
306 | não utilizado (não utilizado) |
307 | Redirecionamento temporário |
308 | Redirecionamento permanente |
Tipo de erro do cliente
Código de status | Detalhes |
---|---|
400 | Solicitação incorreta |
401 | Não autorizado |
402 | Pagamento Necessário |
403 | Proibido (sem acesso) |
404 | Não encontrado |
405 | Método não permitido |
406 | Não aceitável |
407 | Autenticação de proxy necessária |
408 | Tempo limite da solicitação |
409 | Conflito |
410 | Desaparecido (descontinuado) |
411 | Comprimento necessário (requer cabeçalho de comprimento do conteúdo) |
412 | Falha na pré-condição |
413 | Entidade de solicitação muito grande |
414 | URI de solicitação muito longo (o URL de solicitação é muito longo) |
415 | Tipo de mídia não suportado |
416 | Intervalo solicitado não satisfatório (Intervalo solicitado não satisfatório) |
417 | Expectativa falhada |
Tipo de erro do lado do servidor
Código de status | Detalhes |
---|---|
500 | Erro interno do servidor |
501 | Implementado |
502 | Gateway incorreto |
503 | Serviço Indisponível |
504 | Tempo limite do gateway |
505 | Versão HTTP não suportada |
Question7: Fale sobre sua compreensão do HTTPS?
Resposta7:
O HTTPS (nome completo: Hypertext Transfer Protocol sobre Secure Socket Layer) visa a segurança: canal HTTP, que é simplesmente uma versão segura do HTTP. Ou seja, a camada SSL é adicionada em HTTP e a base de segurança do HTTPS é SSL. O número da porta usada é 443. O processo é mais ou menos o seguinte:
步骤一:建立连接获取证书
SSL 客户端通过 TCP 和服务器建立连接之后(443 端口),并且在一般的 tcp 连接协商(握手)过程中请求证书。即客户端发出一个消息给服务器,这个消息里面包含了自己可实现的算法列表和其它一些需要的消息,SSL 的服务器端会回应一个数据包,这里面确定了这次通信所需要的算法,然后服务器向客户端返回证书。(证书里面包含了服务器信息:域名。申请证书的公司,公共秘钥)。
步骤二:证书验证
Client 在收到服务器返回的证书后,判断签发这个证书的公共签发机构,并使用这个机构的公共秘钥确认签名是否有效,客户端还会确保证书中列出的域名就是它正在连接的域名。
步骤三:数据加密和传输
如果确认证书有效,那么生成对称秘钥并使用服务器的公共秘钥进行加密。然后发送给服务器,服务器使用它的私钥对它进行解密,这样两台计算机可以开始进行对称加密进行通信。
Question8:谈一谈 CDN 原理?
Answer8:
CND 一般包含分发服务系统、负载均衡系统和管理系统。
1、分发服务系统
其基本的工作单元就是各个 Cache 服务器。负责直接响应用户请求,将内容快速分发到用户;同时还负责内容更新,保证和源站内容的同步。
根据内容类型和服务种类的不同,分发服务系统分为多个子服务系统,如:网页加速服务、流媒体加速服务、应用加速服务等。每个子服务系统都是一个分布式的服务集群,由功能类似、地域接近的分布部署的 Cache 集群组成。
在承担内容同步、更新和响应用户请求之外,分发服务系统还需要向上层的管理调度系统反馈各个Cache 设备的健康状况、响应情况、内容缓存状况等,以便管理调度系统能够根据设定的策略决定由哪个 Cache 设备来响应用户的请求。
2、负载均衡系统
O sistema de balanceamento de carga é a espinha dorsal de todo o sistema CDN. Responsável por agendar todas as solicitações do usuário e determinar o endereço de acesso final fornecido aos usuários.
Use classificação. O sistema de programação bipolar mais básico inclui o balanceamento de carga global (GSLB) e o balanceamento de carga local (SLB).
O GSLB determina os nós que atendem aos usuários com base no endereço do usuário e no conteúdo da solicitação do usuário, principalmente com base no princípio da proximidade. Geralmente, é implementado através da resolução DNS ou redirecionamento da camada de aplicativo (redirecionamento Http 3XX).
O SLB é o principal responsável pelo balanceamento de carga no nó. Quando uma solicitação do usuário é agendada do GSLB para o SLB, o SLB redireciona a solicitação do usuário de acordo com o status de trabalho e a distribuição de conteúdo de cada dispositivo de Cache no nó. A implementação do SLB inclui agendamento de quatro camadas (LVS), agendamento de sete camadas (Nginx) e agendamento de carregamento de link.
3. Sistema de Gestão
Dividido em subsistema de gerenciamento de operações e gerenciamento de rede.
O sistema de gerenciamento de rede implementa o gerenciamento de dispositivos, o gerenciamento de topologia, o monitoramento de links e o gerenciamento de falhas do sistema CDN, além de fornecer aos administradores um gerenciamento centralizado da visualização de recursos de toda a rede, geralmente na web.
O gerenciamento de operações é o gerenciamento de negócios do sistema CDN e é responsável por lidar com algumas das tarefas de coleta, agrupamento e entrega necessárias para a interação com o sistema externo no nível de negócios. Incluindo gerenciamento de usuários, gerenciamento de produtos, gerenciamento de cobrança, análise estatística, etc.