Rede de consolidação perguntas da entrevista de programação (a)

1: A diferença entre o TCP e UDP

Primeiro, cinco entendimento clássico de rede protocolo de arquitetura: uma camada física, a camada de enlace de dados, camada de rede, camada de transporte e camada de aplicação . sinal de transmissão sempre atender determinado protocolo (protocolo), e comunicação entre computadores em diferentes níveis devem seguir protocolos para se comunicar computador. No IP da camada de rede de protocolo, protocolo ICMP, protocolo ARP, protocolo RARP e BOOTP. O protocolo TCP e o protocolo UDP na camada de transporte. Aplicação camada FTP, HTTP, TELNET, SMTP, DNS e outros protocolos.

O tcp e udp pedir este é o trabalho de dois acordos importantes na camada de transporte. Em que o TCP (Transmission Control Protocol, Transmission Control Protocol) é um protocolo de conexão, ou seja, antes do envio oficial e receber dados, você deve criar uma conexão confiável e uns aos outros. Uma conexão TCP deve passar por três "diálogo", a fim de configurar, perfil simples é:

1. Host A envia B para o pacote de solicitação de conexão de host: "Eu quero enviar-lhe dados, posso?" Este é o primeiro diálogo;

2. Host B para o host A envia concordou conexão e requerem sincronização (sincronização é um dois anfitriões no envio de um recibo, coordenação) pacotes: Este é o segundo diálogo "Sim, quando você enviar,?" ;

3. Host A envia um requisitos de sincronização de pacotes de confirmação do host B: "Eu agora enviar-lhe seguiu," Este é o terceiro diálogo.

A finalidade três "diálogo" é para enviar e receber pacotes de dados de sincronização, depois de três "diálogo", foi oficialmente host A envia dados para o host B.

O UDP (User Data Protocol, Protocolo de Datagrama de Utilizador) é correspondente com o protocolo TCP. É um protocolo de não-conexão orientado, não estabelece uma conexão com o outro, mas colocar o pacote é enviado diretamente para o passado!

diferença TCP e UDP entre Resumo:

1, o TCP orientado a conexão (primeira chamada, por exemplo, ligação de acesso telefónico é estabelecida); o UDP é sem ligação, isto é, sem o estabelecimento de uma ligação, antes de enviar os dados;

2, TCP fornece um serviço confiável, verifique mecanismo de retransmissão . Ou seja, conexão de transmissão de dados via TCP, e não perdeu, não repita livre de erros, e chegar fora de ordem; UDP melhor esforço, que não garante a entrega confiável;

. 3, o TCP fluxo de bytes e, na verdade, a corrente de dados de bytes de TCP como uma série de desestruturado; é para os pacotes UDP. UDP não controle de congestionamento, o congestionamento da rede ocorre sem a taxa de transmissão do host de origem é reduzido (útil para aplicações em tempo real como telefonia IP, vídeo conferências em tempo real e similares);

4, cada conexão TCP só pode ponto a ponto; UDP apoio um para um, um para muitos e muitos-para-muitos comunicação interativa;

5, o TCP cabeçalho de 20 bytes de sobrecarga; pequena sobrecarga cabeçalho UDP, apenas 8 bytes;

6, um canal de comunicação lógico é TCP fiável canal full-duplex, o UDP é um canal pouco fiáveis.

 

2: TCP ligação estabelecimento quando handshake três vezes, quatro vezes o processo específico agitou desconectado

3-way protocolo de handshake para estabelecer a conexão utilizada, em particular:
       O primeiro aperto de mão é o cliente de conexão para se conectar ao servidor; servidor aceitar o pedido do cliente depois de enviar uma mensagem para o cliente final, o que equivale a dizer que eu estava pronto, e você está conectado em mim, este é o segundo aperto de mão; 3-way handshake é enviado para o servidor do cliente, está na segunda mensagem de confirmação aperto de mão. Depois do cliente eo servidor começar a comunicar.
Desligar as ligações handshake quatro vias, como se segue:
       Uma extremidade envia um pedido de ligação estreita para desligar o primeiro aperto de mão (tipicamente Cliente); estreitas as outras necessidades finais para ser confirmada depois de receber o pedido de desligar, envia uma mensagem este é o segundo aperto de mão, mas também transmitida depois de transmitir a mensagem de confirmação para a mensagem de pares fechar para fechar a conexão com o terminal, este é o primeiro handshake três vias, a primeira extremidade da transmissão no desligado depois de receber a mensagem, em um estado TIME_WAIT estado importante, que é muitas vezes o entrevistador fez a pergunta, a última vez após o aperto de mão inicial é recebida a partir do final de transmissão ligada à mensagem. Reconhecimento da mensagem.

Específica handshake de três vias e quatro acenando ver dentro da coleção do blog correspondente!

 

3: controle de fluxo e controlo de congestão

razões de controle de congestionamento: Por conveniência, assumimos que o host A para o host B para dados de transmissão. Sabemos que os dois anfitriões no momento da transmissão de pacotes de dados, se o remetente ainda tem de receber um retorno ACK destinatário, em seguida, o remetente vai pensar que envia um pacote é perdido, em seguida, retransmite os pacotes perdidos . No entanto, a situação real é possível neste momento muitos host está usando recursos de canal, o congestionamento da rede, e os dados transmitidos pacotes Um preso no meio do caminho, não há atraso em alcançar B. A enganado este tempo, perda de pacotes ocorre, a retransmissão do pacote. O resultado não é apenas um desperdício de recursos de canal, mas também tornar a rede mais congestionado. Portanto, precisamos de controle de congestionamento. O chamado controle de congestionamento é para evitar injeção excessiva de dados na rede, isso pode fazer uma ligação ou um roteador na rede não está sobrecarregada.

O controle de fluxo: Em geral, sempre querem uma transmissão de dados pouco mais rápido. No entanto, se o remetente envia os dados muito rapidamente, pode ser tarde demais para receber um destinatário, ele irá resultar em perda de dados. O controle de fluxo de chamada é permitir que a taxa de transmissão do remetente não é muito rápido, o tempo para que o destinatário recebe.

controle de fluxo TCP e controle de congestionamento pode ser dito para ser um. As principais diferenças são as seguintes:

controle de fluxo:

(1) é conseguido por uma janela deslizante. janela de correr janela é dividida em final de envio e uma janela lateral de recepção. Janela tem um limite de tamanho, o tamanho da janela do lado receptor é o número máximo de bytes usados para contar o terminal final de envio está atualmente recebido pode ser recebido. O tamanho da janela no protocolo TCP antecipadamente, o tamanho de 16. No entanto, no protocolo opcional do TCP, o factor de escalonamento pode também definir a janela, de modo que o tamanho real da janela pode exceder 64 KB. Significado da janela é, na verdade, o tamanho da memória tampão de recepção.
(2) manter a janela de transmissão foi recebido pelo número de série do remetente envia o final ACK, e enviou o maior número de modo que você pode saber a quantidade de dados novos podem ser enviados.
(3) mantém uma janela de recepção tem o número de sequência de ACK, e um número de sequência de pacote para todos recebidos.
(4) Quando o tamanho de uma ligação particular no processo de comunicação, o tamanho é inalterada. E um mecanismo de janela deslizante, o tamanho da janela de correr na extremidade de transmissão é representado pelo tamanho dos dados transmissíveis na extremidade de recepção é representado pelo tamanho dos dados podem ser recebidos, os quais são dinâmicas.


Controle de congestionamento:

(1) é conseguido pela janela de congestionamento.

(2) compreende um controlo de congestão geralmente arranque lento, evitar o congestionamento em duas fases.

(3) fase de arranque lento é aumentado de um para iniciar o processo de definir o tamanho do índice.

Depois de definir um aumento linear sobre o tamanho do processo (4) a fase evitar o congestionamento, e a perda foi encontrado depois da janela de congestionamento para um, e reduzir para metade o tamanho do processo definido.

 

sincronização Como multi-thread: 4

Entrevista Comitê Central Standing geralmente envolve multi-threaded, então o que é multi-threaded síncrona e assíncrona? sincronização multi-thread : o equivalente a vários segmentos para acessar o mesmo pedaço de recursos, ao mesmo tempo, mas cada vez que apenas um segmento de acesso, ou seja, será bloqueado. A solução tem uma sincronização thread (que também é frequentemente solicitado) seção crítica, zona de exclusão mútua, eventos, semáforos quatro maneiras

O evento diferença (Evento) área crítica (Seção Crítica), mutex (Mutex), semáforo (semáforo)
1), área crítica: o acesso multi-threaded série de recursos públicos ou através de um pedaço de código, mais rápido para controlar o acesso de dados. A qualquer momento para permitir apenas um acesso thread para recursos compartilhados, se houver vários tópicos que tentam acessar recursos públicos, então não é um fio entra, os outros tópicos que tentam recursos públicos de acesso serão suspensos, e espera até entrar na seção crítica fio seção crítica após ser liberado sair, os outros tópicos pode pegar.
2), a extensão mútua: mecanismo de exclusão recíproca para o objecto. Apenas com rosca mutex têm acesso a recursos públicos, porque só um objeto mutex, eles são capazes de garantir que os recursos públicos não são acessados simultaneamente por vários segmentos. segurança pública compartilhamento de recursos exclusivo apenas para alcançar a mesma aplicação partilha de recursos de segurança pública, mas também para alcançar aplicações diferentes. exclusivo complexo do que a zona crítica. Porque não só permite uso exclusivo seguro de recursos compartilhados em diferentes segmentos do mesmo aplicativo, e pode conseguir o compartilhamento seguro de recursos entre segmentos de diferentes aplicações.
3), semáforo: Ele permite que vários segmentos acessar o mesmo recurso ao mesmo tempo, mas a necessidade de limitar o número máximo de threads ao mesmo tempo para acessar esse recurso. Semáforo objetos forma sincronizada com o fio em frente de vários métodos diferentes, os sinais permite que vários fios para utilizar um recurso partilhado, que é o mesmo que o funcionamento da operação do sistema PV. Ele observou que o número máximo de threads simultâneos acesso a recursos compartilhados. O número máximo de threads que permite que vários segmentos acessar o mesmo recurso ao mesmo tempo, mas ao mesmo tempo precisam restringir o acesso a este recurso.

conceitos PV de operação e semáforos são feitas pelos cientistas holandeses EWDijkstra. Semaphore S é um inteiro representando o número de recursos disponíveis para os processos concorrentes entidade usada quando S é maior do que zero, mas menor que zero indica que S é o número de processos à espera de utilizar recursos compartilhados.
   P Aplicação Operação de recursos:
  (1) S menos 1;
  (2) Se o S Guardar uma ainda maior do que zero, então o processo continua;
  (3) depois de se S é decrementado por 1 é menor que zero após o processo é bloqueado entra no sinal correspondente à fila, e, em seguida, transferido para o processo de programação.
  
  libertação V Operação de recursos:
  (1) S mais 1;
  (2) Se S for maior que zero, então o processo continua;
  (3) Se S for menor que zero, a partir da fila de sinal de espera para um processo de despertar, e, em seguida, voltar para o original processar para continuar ou programação processo de transferência.

4) o evento: para sincronizar segmentos por meio de notificar o operador também pode facilitar a realização de operações de prioridade em comparação múltiplos segmentos.

Sumário:
  1) o papel de uma seção mutex e crítica é muito semelhante, mas pode ser nomeado mutex, o que significa que pode usar através de processo. Portanto, criar uma necessidade mutex mais recursos, de modo que apenas por palavras usadas em processos internos utilizando seções críticas trará a vantagem da velocidade e pode reduzir a quantidade de consumo de recursos. Porque uma vez que o mutex mutex é cross-processo é criado, você pode abri-lo pelo nome.
  2) extensão mútua (Mutex), semáforo (semáforo), evento (Evento) pode ser sincronizada através de processos usando a manipulação de dados, e outros objectos e operação de sincronização de dados não tem nada a fazer, mas, em termos de processos e segmentos, se processos e threads estado de execução havia estado sinal, após a saída sinalizou estado. Assim você pode usar WaitForSingleObject para aguardar o processo e linha para saída.
  3) Você pode especificar o recurso é forma exclusiva usando um mutex, mas se há um caso pela seguinte mutex não pode lidar, como agora um usuário compra um sistema de banco de dados três licenças de acesso simultâneo, de acordo com o número de usuários licenciados para acesso de compra para determinar o número de threads / processos podem executar operações de banco de dados, ao mesmo tempo, desta vez usando o mutex se não há nenhuma maneira para completar este requisito, o objeto do semáforo pode ser dito para ser um contador de recursos.

 

5: A diferença entre os processos e segmentos

Tópico refere-se a uma entidade de agendamento dentro da unidade de execução no processo, mas também o processo. A diferença com o processo de:

(1) a programação: tópicos como a unidade básica de programação e processo de alocação como a unidade básica de recursos próprios.

(2) simultaneidade: não somente entre os processos podem executar concorrentemente através de múltiplos segmentos no mesmo processo também pode ser executado concorrentemente.

(3) tem os recursos: o processo é uma unidade independente com os recursos, o segmento não tem os recursos do sistema, mas os recursos de acesso pode pertencer ao processo.

(4) em cima: Ao criar ou desfazer o processo, porque o sistema deve ser recalculado e recuperação de recursos, levando à sobrecarga do sistema é significativamente maior do que o custo de criar ou revogada quando o segmento.

 

6: O que, quais as vantagens e desvantagens existem formas de comunicação entre processos.

1) pipe: tubo é um modo de comunicação half-duplex, os fluxos de dados apenas uma forma, mas apenas pode ser utilizado em um processo que tem uma relação genética entre. processo de parentesco geralmente refere-se ao processo de relacionamento pai e filho.

2) um named pipe (FIFO): named pipe é comunicação half-duplex, mas permite nenhuma relação genética entre os processos, o oleoduto é comunicação FIFO.

3) semáforo: semáforo é um contador, vários processos podem ser usados ​​para controlar o acesso a recursos compartilhados. Ele é frequentemente usado como um mecanismo de bloqueio para impedir o acesso a recursos compartilhados é um processo, outros processos também pode acessar o recurso. Por conseguinte, o principal, bem como meios de sincronização entre processos entre os diferentes fios dentro do mesmo processo.

4) a mensagem da fila: fila de mensagens é uma lista encadeada de mensagens, pelo identificador de fila de mensagens armazenadas no kernel. Mensagem de sinalização fila superar a menos informação, apenas o tubo transportador de fluxo de bytes simples tampão tamanho é limitado, e outras deficiências.

5) sinal (Sinal): é um meio de sinal mais sofisticados de comunicação, um evento usado para notificar o processo de recepção tenha ocorrido.

6) de memória partilhada (memória partilhada): Memória Partilhada é memória mapeada um período que pode ser acedida por outros processos, esta memória partilhada criado por um processo, mas pode ser acedido por vários processos. IPC compartilhado de memória é a maneira mais rápida, é para a outra comunicação inter-processo em execução baixa eficiência projetado especificamente. Ele é muitas vezes associada com outros mecanismos de comunicação, tais como semáforos, utilizados em conjunto para conseguir a sincronização e comunicação entre os processos.
7) um encaixe (socket): tomada é um mecanismo de comunicação entre processos, com vários outros mecanismos de comunicação é que ele pode ser utilizado para a comunicação entre os processos em diferentes máquinas.

 

Publicado 61 artigos originais · ganhou elogios 9 · vê 30000 +

Acho que você gosta

Origin blog.csdn.net/qq_33204444/article/details/93514684
Recomendado
Clasificación