2011-02-11 3 views
7

Ho appena iniziato con la programmazione di rete. Quando si guarda la funzione socket, alcuni usano PF_INET e altri usano AF_INET. Guardato in wikipedia, si dice che tale design è stato utilizzato per consentire l'utilizzo di diverse famiglie di indirizzi da diverse famiglie di protocolli. Esistono oggi tali famiglie di protocolli che supportano più tipi di indirizzo?programmazione di rete: Funzione socket: Famiglia indirizzo Vs Famiglia di protocolli

Inoltre mi sono imbattuto in questo errore quando ero alla ricerca di Indirizzo famiglia Vs famiglia Protocollo:

Address family not supported by protocol family 

significa questo ci sono i protocolli che supportano più famiglie di indirizzo?

mi sono imbattuto in questo statement

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

Quali sono gli indirizzi NS?

Grazie.

risposta

3

La documentazione di Windows per socket indica che la famiglia di indirizzi è il primo argomento; la pagina man sul mio box Linux dice che quella dovrebbe essere la famiglia di protocolli. La versione di Linux sembra leggermente più corretta da una prospettiva indipendente dalla piattaforma: in teoria, il socket ha una famiglia di protocolli e gli indirizzi hanno famiglie di indirizzi, e le due dovrebbero essere compatibili.

In pratica, tuttavia, le macro PF_ e AF_ per i protocolli incorporati hanno gli stessi valori (sia in Linux che in Windows). Immagino che sia una storia simile per la maggior parte dei sistemi operativi, dal momento che tutte le famiglie di protocolli comuni hanno una famiglia di indirizzi. (Si potrebbe pensare che l'IP ne avrebbe due, ma no: esistono diverse famiglie di protocolli per IPv4 e IPv6.) Questo (insieme alla digitazione relativamente debole di C) consente loro di essere usati in modo abbastanza intercambiabile.

Si noti che non c'è alcuna garanzia che questo sia il caso per tutti i sistemi operativi, o per i protocolli supportati da alcuni driver di terze parti, ecc. In questi casi, è necessario consultare la documentazione per la propria piattaforma specifica.

Per quanto riguarda gli "indirizzi NS", per quanto posso dire, fanno parte della tecnologia preistorica Xerox Network Systems protocol (una famiglia di protocolli tipo TCP/IP, ma distinti, incompatibili e inutilizzati dai PC moderni). Non li vedrai in uso a meno che tu non stia lavorando con sistemi arcaici; perché questo è stato tenuto come esempio è al di là di me.