2011-02-11 11 views
7

Acabo de comenzar con la programación de la red. Al mirar la función de socket, algunos usan PF_INET y otros usan AF_INET. Visto en wikipedia, dice que dicho diseño se utilizó para permitir el uso de diferentes familias de direcciones por diferentes familias de protocolos. ¿Hay alguna familia de protocolos de este tipo que admita varios tipos de direcciones?programación de red: función de socket: familia de direcciones Vs familia de protocolos

También me encontré con este error cuando yo estaba buscando para la familia Dirección Vs familia Protocolo:

Address family not supported by protocol family 

¿Quiere esto decir que hay protocolos que soporta múltiples familias de direcciones?

me encontré con este statement

you shouldn't necessarily expect to be able to use NS addresses with ARPA Internet protocols 

¿Cuáles son las direcciones NS?

Gracias.

Respuesta

3

La documentación de Windows para socket dice que la familia de direcciones es el primer argumento; la página man de mi cuadro de Linux dice que esa debería ser la familia de protocolos. La versión de Linux parece algo más correcta desde una perspectiva de plataforma independiente: en teoría, el socket tiene una familia de protocolos y las direcciones tienen familias de direcciones, y las dos deberían ser compatibles.

En la práctica, sin embargo, las macros PF_ y AF_ para los protocolos incorporados tienen los mismos valores (tanto en Linux como en Windows). Me imagino que es una historia similar para la mayoría de sistemas operativos, ya que todas las familias de protocolos comunes tienen una familia de direcciones. (Uno pensaría que IP tendría dos, pero no. Hay familias de protocolos separadas para IPv4 e IPv6.) Esto (junto con el tipado relativamente débil de C) les permite ser utilizados de manera bastante intercambiable.

Tenga en cuenta que no hay garantía de que este sea el caso para todos los SO, o para protocolos compatibles con un controlador de terceros, etc. En esos casos, debe consultar la documentación de su plataforma en particular.

En cuanto a lo que "se ocupa de NS" son, lo que puedo decir, que son parte de la prehistoria Network Systems protocol (sorta una familia de protocolos como TCP/IP, pero distinta e incompatible y sin usar por los ordenadores modernos) de Xerox. No los verá en uso a menos que esté trabajando con sistemas arcaicos; por qué eso se mantuvo como un ejemplo está más allá de mí.

Cuestiones relacionadas