Dos problemas menores con respecto a los conectores directos

1, conector directo si el acuerdo se puede configurar para IPPRORO_TCP? UDP y paquete TCP no corresponde a la toma, en este momento no pasará a la toma original?

Respuesta:

(1) puede ser. Para la función de socket (), la toma de corriente de la programación es segundo parámetro SOCK_STREAM, y la programación para un socket de datagramas, el segundo parámetro es SOCK_DGRAM, en ambos casos, el tercer parámetro puede llenar 0, por lo que el sistema se ajustará automáticamente el protocolo correspondiente.

La programación del zócalo prima, el segundo parámetro es el SOCK_RAW, en este caso, el tercer parámetro debe indicar el protocolo apropiado, el tipo de protocolo tiene un valor común IPPROTO_IP, IPPROTO_ICMP, IPPROTO_TCP, IPPROTO y IPPROTO_RAW.

(2) no lo hace. Recibido UDP o TCP paquete no se pasa a cualquier conector, si un proceso quiere leer que contiene UDP paquetes, o TCP paquetes de IP de paquetes de datos, que debe leer los paquetes en la capa de enlace de datos (es decir, usando IPPROTO_IP opción de leer toda la IP de paquetes).

Al utilizar los conectores directos y opciones IPPROTO_UDP IPPROTO_TCP, sólo los paquetes TCP o UDP enviados (para decidir si el funcionamiento de la cabecera IP por el IP_HDRINCL), no puede recibir el protocolo TCP o UDP de paquetes, TCP y UDP como determinación paquete de protocolo por el núcleo, y encontrar el número de la dirección IP y el puerto que coincida con la conexión de socket para enviar el paquete de datos, mientras que el concepto original de la toma de corriente no es un puerto, y por lo tanto no pueden recibir un paquete TCP o UDP. socket Raw sólo puede obtenerse a través de todo el paquete IP IPPROTO_IP, a continuación, el extracto de datos TCP y UDP.

2, cuando la estructura de conector directo de la cabecera IP, la transmisión, o sendto? Si es así, entonces de enviar a, cabecera dirección IP y parámetros de configuración para incoherentes o la conexión, la cabecera IP de la dirección IP y se unen la estructura es inconsistente, cómo hacer frente a?

Respuesta:

(1) de interfaz prima conjuntos de datos de transmisión por lo general sendto, dirección de destino que han de transmitirse a la quinta parámetro. Si la llamada también de conexión, la dirección de destino ya ha sido establecido, cuando los datos de transmisión se pueden llamar directamente a enviar, el sendto por supuesto también ser utilizado, y el quinto parámetro se establece en NULL. Cuándo no es NULL, el sistema transmite los datos a la dirección de destino designada para

(2) fallará con WSAEINTR código de error. El objetivo es limitar el código malicioso no permiten ataques de denegación de servicio o enviar paquetes falsificados con direcciones IP falsa.

Supongo que te gusta

Origin www.cnblogs.com/cyx-b/p/12638191.html
Recomendado
Clasificación