Red de preguntas de la entrevista de programación de consolidación (a)

1: La diferencia entre TCP y UDP

En primer lugar, cinco clásica comprensión de la arquitectura de red de protocolo: una capa física, capa de enlace de datos, capa de red, capa de transporte y capa de aplicación . señal de transmisión siempre cumple con cierto protocolo (protocolo), y la comunicación entre ordenadores a diferentes niveles deben seguir los protocolos para comunicar ordenador. En el IP de capa de red de protocolo, el protocolo ICMP, protocolo ARP, el protocolo RARP, y los protocolos BOOTP. El protocolo TCP y el protocolo UDP en la capa de transporte. Aplicación capa FTP, HTTP, TELNET, SMTP, DNS y otros protocolos.

El TCP y UDP hacen esta es la obra de dos importantes acuerdos en la capa de transporte. En la que el TCP (Transmission Control Protocol, Protocolo de Control de Transmisión) es un protocolo basado en la conexión, es decir, antes del envío del oficio y recibir datos, debe crear una conexión fiable y entre sí. Una conexión TCP debe pasar por tres "diálogo" con el fin de configurar, perfil simple es:

1. Host A envía B al paquete de solicitud de conexión de host: "Quiero que le envíe los datos, ¿verdad?" Este es el primer diálogo;

2. host B al host A envía acordó conexión y requiere de sincronización (sincronización es un dos anfitriones en el envío de un recibo, coordinación) paquetes: Este es el segundo diálogo "Sí, cuando se envía,?" ;

3. El host A envía un paquete de confirmación de requisitos de sincronización de la serie B: "! Ahora te envío siguió," Este es el tercer diálogo.

El propósito de tres "diálogo" es para enviar y recibir paquetes de datos de sincronización, después de tres "diálogo", fue oficialmente host A envía datos al host B.

El (Protocolo de Datos de Usuario, User Datagram Protocol) UDP se corresponde con el protocolo TCP. Es un protocolo no orientado a conexión, que no establece una conexión entre sí, pero poner el paquete se envía directamente al pasado!

TCP y UDP diferencia entre Resumen:

1, TCP orientado a la conexión (por ejemplo, se establece la conexión de acceso telefónico primera llamada), el UDP es sin conexión, es decir, sin establecer una conexión antes de enviar datos;

2, TCP proporciona un servicio fiable, verificar mecanismo de retransmisión . Es decir, la conexión de transmisión de datos a través de TCP, libre de errores, no se pierde, no se repita, y llegar fuera de orden; UDP mejor esfuerzo, que no garantiza la entrega confiable;

. 3, de bytes TCP y, de hecho, los datos de flujo de bytes TCP como una serie de no estructurado; es para los paquetes UDP. UDP no control de la congestión, la congestión de la red se produce sin la velocidad de transmisión de la fuente de acogida se reduce (útil para aplicaciones en tiempo real tales como telefonía IP, videoconferencias en tiempo real y similares);

4, cada conexión TCP sólo puede apuntar a punto; UDP apoyo uno a uno, uno a muchos y muchos-a-muchos de comunicación interactiva;

5, la cabecera TCP de 20 bytes de sobrecarga; pequeña sobrecarga cabecera UDP, sólo el 8 bytes;

6, un canal de comunicación lógica es TCP canal dúplex completo fiable, UDP es un canal no fiable.

 

2: establecimiento de conexión TCP al apretón de manos tres veces, cuatro veces el proceso específico agitaban desconectado

3 vías protocolo de enlace para establecer la conexión utilizada, en particular:
       El primer apretón de manos es el cliente de conexión para conectarse al servidor; servidor acepte la petición del cliente después de enviar un mensaje al cliente final, lo que equivale a decir que yo estaba listo, y está conectado en mí, este es el segundo apretón de manos; 3-way handshake se envía al servidor del cliente, está en el segundo mensaje de confirmación de intercambio. Después de que el cliente y el servidor comenzar a comunicarse.
Desconectar las conexiones de apretón de manos de 4 vías, como sigue:
       Un extremo envía una solicitud de conexión cerca de desconectar el primer apretón de manos (típicamente Client); cerrar las otras necesidades finales para ser confirmada después de recibir la solicitud de desconexión, envía un mensaje este es el segundo apretón de manos, sino que también transmite después de transmitir el mensaje de acuse de recibo al mensaje de pares de cierre para cerrar la conexión con el terminal, este es el primer protocolo de enlace de 3 vías, el primer extremo de la transmisión en el desconectado después de recibir el mensaje, en un estado TIME_WAIT estado importante, que es a menudo el entrevistador le preguntó a la pregunta, la última vez después del saludo inicial se recibe desde el extremo de transmisión conectada al mensaje. Confirmación del mensaje.

Específica enlace de tres vías y cuatro se ve agitando dentro de la colección del blog correspondiente!

 

3: control de flujo y control de congestión

razones de control de congestión: Para mayor comodidad, se supone que el host A al host B a los datos de transmisión. Sabemos que los dos anfitriones en el momento de la transmisión de paquetes de datos, si el remitente no ha recibido aún una respuesta ACK receptor, entonces el remitente pensará que envía un paquete se pierde, entonces retransmite los paquetes perdidos . Sin embargo, la situación real es posible en este momento demasiados host utiliza los recursos de canal, congestión de la red, y los paquetes de datos transmitidos Una atrapado en la mitad del camino, no hay retraso en alcanzar B. A errónea de este tiempo, la pérdida de paquetes se produce, la retransmisión del paquete. El resultado no es sólo una pérdida de recursos del canal, sino también hacer que la red sea más congestionado. Por lo tanto, tenemos que el control de congestión. El llamado control de congestión es evitar que la inyección excesiva de datos en la red, esto podría hacer un enlace o un router en la red no esté sobrecargada.

Control de flujo: En general, siempre quiere una transmisión de datos más rápido. Sin embargo, si el remitente envía los datos demasiado rápido, puede ser demasiado tarde para recibir un destinatario, que dará lugar a la pérdida de datos. El llamado control de flujo es permitir que la velocidad de transmisión del remitente no es demasiado rápido, el tiempo para que el destinatario recibe.

control de flujo y control de congestión TCP se puede decir que ser uno. Las principales diferencias son las siguientes:

Control de flujo:

(1) se consigue mediante una ventana deslizante. ventana corredera ventana se divide en el extremo emisor y una ventana lateral de recepción. La ventana tiene un límite de tamaño, el tamaño de la ventana del extremo receptor es el número máximo de bytes utilizados para determinar qué terminal extremo emisor es recibida actualmente se pueden recibir. El tamaño de la ventana en el protocolo TCP con antelación, tamaño 16. Sin embargo, en el protocolo facultativo de la TCP, el factor de escala puede también definir la ventana, por lo que el tamaño de la ventana real puede exceder de 64 KB. Es decir, la ventana es en realidad el tamaño del búfer de recepción.
(2) mantener la ventana de transmisión ha sido recibida por el número de serie del remitente envía el ACK final, y ha enviado el número más grande de modo que usted puede saber la cantidad de datos nueva se puede enviar.
(3) mantiene una ventana de recepción tiene el número de secuencia ACK, y un número de secuencia de paquete a todos recibido.
(4) Cuando el tamaño de una conexión particular en el proceso de comunicación, el tamaño es sin cambios. Y un mecanismo de ventana deslizante, el tamaño de la ventana deslizante en el extremo de transmisión está representada por el tamaño de los datos que puede transmitirse en el extremo receptor se representa por el tamaño de los datos pueden ser recibidos, que son dinámicos.


Control de congestión:

(1) se consigue mediante la ventana de congestión.

(2) comprende un control de congestión generalmente comienzo lento, evitación de la congestión en dos etapas.

(3) fase de comienzo lento se incrementa de 1 para iniciar el proceso de definir el tamaño del índice.

Después de definir un aumento lineal en el tamaño del proceso (4) la fase de evitar la congestión, y se encontró que la pérdida después de la ventana de congestión a 1, y reducir a la mitad el tamaño de la proceso definido.

 

Cómo sincronización multi-hilo: 4

Entrevista Comité Central Permanente por lo general implica multi-hilo, a continuación, lo que es multi-hilo síncrona y asíncrona? sincronización multi-hilo : el equivalente de múltiples hilos para acceder a la misma pieza de recursos, al mismo tiempo, pero cada vez sólo un hilo de acceso, es decir, serán bloqueados. La solución tiene una sincronización hilo (que también se le pide frecuentemente) sección crítica, zona de exclusión mutua, eventos, semáforos cuatro maneras

El evento diferencia (Evento) área crítica (sección crítica), mutex (exclusión mutua), semáforo (Semáforo)
1), área crítica: la serie acceso multi-hilo a los recursos públicos o por medio de una pieza de código, más rápido para el control de acceso a datos. En cualquier momento para permitir que un solo acceso de rosca a los recursos compartidos, si hay varios temas que tratan a los recursos de acceso público, entonces no se entra en un hilo, se suspenderán los otros hilos intentando tener acceso a los recursos públicos, y espera hasta entrar en la sección crítica a hilo dejar sección crítica después de ser liberado, los otros hilos pueden agarrar.
2), el mutex: mecanismo de exclusión mutua para el objeto. Sólo con rosca mutex tener acceso a los recursos públicos, ya que sólo un objeto de exclusión mutua, que son capaces de asegurar que los recursos públicos no se puede acceder simultáneamente por varios subprocesos. La seguridad pública distribución de los recursos exclusiva sólo para lograr la misma aplicación compartiendo los recursos de seguridad pública, sino también para lograr diferentes aplicaciones. Exclusivo complejo de la zona crítica. Debido a que no sólo permite el uso exclusivo seguro de los recursos compartidos en diferentes hilos de la misma aplicación, y se puede lograr el intercambio seguro de los recursos entre los hilos de diferentes aplicaciones.
3), semáforo: Permite múltiples hilos tienen acceso al mismo recurso al mismo tiempo, pero la necesidad de limitar el número máximo de hilos al mismo tiempo para acceder a este recurso. Semáforo objetos sincronizado manera con la rosca delante de varios métodos diferentes, las señales permite a varios subprocesos para utilizar un recurso compartido, que es el mismo que el funcionamiento de la operación del sistema PV. Se observó que el número máximo de subprocesos simultáneos acceso a los recursos compartidos. El número máximo de hilos que permite que varios subprocesos tienen acceso al mismo recurso al mismo tiempo, pero al mismo tiempo la necesidad de restringir el acceso a este recurso.

PV conceptos de operación y semáforos son hechas por los científicos holandeses EWDijkstra. Semáforo S es un número entero que representa el número de recursos disponibles para los procesos concurrentes entidad utilizados cuando S es mayor que cero, pero menor que cero indica que S es el número de procesos esperando para utilizar los recursos compartidos.
   P Aplicación Operación de recursos:
  (1) S menos 1;
  (2) Si la S Guardar una aún mayor que cero, entonces el proceso continúa;
  (3) después de Si S se decrementa en 1 es menor que cero después de que el proceso está bloqueado entra la señal de correspondiente a la cola, y después se transfiere al proceso de programación.
  
  liberación V Funcionamiento de recursos:
  (1) S plus 1;
  (2) Si S es mayor que cero, entonces el proceso continúa;
  (3) Si S es menor que cero, de la cola de la señal de espera de un proceso de despertador, y luego de regreso a la original proceso para continuar o programación proceso de transferencia.

4) el evento: para sincronizar hilos a modo de notificar al operador también puede facilitar el logro de las operaciones de prioridad en la comparación de múltiples hilos.

Resumen:
  1) el papel de una sección mutex y crítico es muy similar, pero puede ser nombrado mutex, que significa que puede utilizar a través de proceso. Por lo tanto crear un mutex necesitan más recursos, por lo que si sólo para palabras que se usan en los procesos internos mediante secciones críticas traerá la ventaja de la velocidad y puede reducir la cantidad de consumo de recursos. Debido a que una vez que se crea el mutex mutex es a través del proceso, se puede abrir por su nombre.
  2) mutex (exclusión mutua), semáforo (semáforo), evento (Event) puede ser sincronizado a través de procesos utilizando la manipulación de datos, y otros objetos y operación de sincronización de datos no tiene nada que hacer, pero en términos de procesos e hilos, si procesos e hilos estado de ejecución fue de ningún estado de la señal, después de la salida una señal de estado. Así que usted puede utilizar WaitForSingleObject que esperar a que el proceso y el hilo a la salida.
  3) Se puede especificar el recurso es de forma exclusiva mediante el uso de un mutex, pero si hay un caso por el siguiente mutex no puede manejar, como ahora es un usuario adquiere un sistema de base de datos de tres licencias de acceso simultáneo, de acuerdo con el número de usuarios con licencia para acceder a la compra para determinar el número de hilos / procesos se pueden realizar operaciones de base de datos al mismo tiempo, esta vez utilizando el mutex si no hay manera de cumplir con este requisito, el objeto del semáforo puede decirse que es un contador de recursos.

 

5: La diferencia entre los procesos y los hilos

Tema refiere a una entidad de programación dentro de la unidad de ejecución en el proceso, sino también el proceso. La diferencia con el proceso:

(1) la programación de: hilos como la unidad básica de la programación y proceso de asignación como la unidad básica de los recursos propios.

(2) de concurrencia: no sólo entre los procesos pueden ejecutar simultáneamente a través de múltiples hilos en el mismo proceso también se puede ejecutar concurrentemente.

(3) tienen los recursos: el proceso es una unidad independiente con los recursos, el hilo no tiene los recursos del sistema, pero los recursos de acceso pueden pertenecer al proceso.

(4) encima de la cabeza: Al crear o deshacer el proceso, debido a que el sistema debe ser recalculado y recuperación de recursos, que conduce a la sobrecarga del sistema es significativamente mayor que el coste de crear o revocado cuando el hilo.

 

6: ¿Qué, qué ventajas y desventajas hay formas de comunicación entre procesos.

1) de tubo: tubo es un modo de comunicación semidúplex, los flujos de datos de una sola manera, pero sólo se puede utilizar en un proceso que tiene una relación genética entre. proceso de parentesco por lo general se refiere al proceso de la relación padre-hijo.

2) una tubería con nombre (FIFO): tubería con nombre es la comunicación semidúplex, pero no permite ninguna relación genética entre los procesos, la tubería es la comunicación FIFO.

3) semáforo: Semáforo es un contador, varios procesos pueden utilizarse para controlar el acceso a recursos compartidos. A menudo se utiliza como un mecanismo de bloqueo para impedir el acceso a los recursos compartidos es un proceso, otros procesos también pueden acceder al recurso. Por lo tanto, el principal, así como medios de sincronización entre procesos entre los diferentes hilos dentro del mismo proceso.

4) el mensaje de cola: cola de mensajes es una lista enlazada de mensajes, por identificador de cola de mensajes almacenada en kernel. Mensaje de señalización de cola de superar la menos información, sólo el flujo de bytes llanura tubo portador tampón tamaño está limitado, y otras deficiencias.

5) señal (sinal): Signal es un medio más sofisticados de comunicación, se ha producido un evento para notificar al proceso de recepción.

6) de memoria compartida (memoria compartida): La memoria compartida es memoria mapeada un período que se puede acceder por otros procedimientos, esta memoria compartida creado por un proceso, pero se puede acceder por múltiples procesos. IPC memoria compartida es la manera más rápida, que es para la otra comunicación entre procesos corriendo baja eficiencia diseñado específicamente. A menudo se asocia con otros mecanismos de comunicación tales como semáforos, utilizados conjuntamente para lograr la sincronización y la comunicación entre procesos.
7) un zócalo (socket): socket es un mecanismo de comunicación entre procesos, con varios otros mecanismo de comunicación es que puede ser utilizado para la comunicación entre procesos en diferentes máquinas.

 

Publicado 61 artículos originales · ganado elogios 9 · Vistas a 30000 +

Supongo que te gusta

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