From 9efe28fd24b23b1fca69f4c5296cb29e4372438c Mon Sep 17 00:00:00 2001 From: Simone Piccardi Date: Sun, 18 Jul 2004 21:24:00 +0000 Subject: [PATCH] Revisione delle date del copyright e di alcune tabelle, messe altre quattro righe sulle funzioni del resolver. --- Makefile | 2 +- biblio.bib | 31 ++++++++++++++++- errors.tex | 2 +- fileadv.tex | 2 +- filedir.tex | 84 +++++++++++++++++++++++----------------------- fileintro.tex | 4 +-- filestd.tex | 2 +- fileunix.tex | 2 +- gapil.tex | 4 +-- intro.tex | 2 +- ipc.tex | 2 +- macro.tex | 2 +- netlayer.tex | 6 ++-- network.tex | 2 +- process.tex | 22 ++++++------ prochand.tex | 2 +- ringraziamenti.tex | 2 +- session.tex | 2 +- signal.tex | 2 +- sockctrl.tex | 80 +++++++++++++++++++++++++++++-------------- socket.tex | 2 +- system.tex | 2 +- tcpsock.tex | 8 ++--- trasplayer.tex | 2 +- 24 files changed, 164 insertions(+), 107 deletions(-) diff --git a/Makefile b/Makefile index a6a12e6..a3f6a9f 100644 --- a/Makefile +++ b/Makefile @@ -47,5 +47,5 @@ install: scp html/*.html piccardi@firenze.linux.it:public_html/gapil/ clean: rm -f *.dvi *.log *.ps *.html *.aux *.toc *.rel *.ilg *.rip *.ind \ - *.pdf *.out *.idx *~ listati/*.html img/*.ps img/*.pdf + *.pdf *.out *.idx *~ listati/*.html img/*.ps img/*.eps img/*.pdf diff --git a/biblio.bib b/biblio.bib index 79f88b4..6b2d952 100644 --- a/biblio.bib +++ b/biblio.bib @@ -218,7 +218,6 @@ } @Booklet{UnixFaq, title = {Unix Programming Frequently Asked Questions}, - OPTkey = {}, author = {Andrew Gierth}, OPThowpublished = {http://www.erlenstar.demon.co.uk/unix/faq_toc.html}, OPTaddress = {}, @@ -227,3 +226,33 @@ OPTnote = {}, OPTannote = {} } +@Book{AGL, + title = {Amministrare GNU/Linux}, + author = {Simone Piccardi}, + editor = {Truelite Srl}, + publisher = {Truelite Srl}, + year = {2004}, + OPThowpublished = {http://sources.truelite.it/sw/documentazione/docs/corso.pdf}, + OPTkey = {}, + OPTaddress = {}, + OPTmonth = {}, + OPTyear = {}, + OPTnote = {}, + OPTannote = {} +} +@Book{DNSbind, + author = {Cricket Liu and Paul Albitz}, + editor = {O'Reilly}, + title = {DNS and BIND}, + publisher = {O'Reilly}, + year = {1998}, + OPTkey = {}, + OPTvolume = {}, + OPTnumber = {}, + OPTseries = {}, + OPTaddress = {}, + OPTedition = {3rd}, + OPTmonth = {}, + OPTnote = {}, + OPTannote = {} +} diff --git a/errors.tex b/errors.tex index f0e099e..cca05d0 100644 --- a/errors.tex +++ b/errors.tex @@ -1,6 +1,6 @@ %% errors.tex %% -%% Copyright (C) 2000-2003 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2004 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Prefazione", diff --git a/fileadv.tex b/fileadv.tex index 52d06ce..d3425dc 100644 --- a/fileadv.tex +++ b/fileadv.tex @@ -1,6 +1,6 @@ %% fileadv.tex %% -%% Copyright (C) 2000-2003 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2004 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Prefazione", diff --git a/filedir.tex b/filedir.tex index 6a9befc..65ae8d6 100644 --- a/filedir.tex +++ b/filedir.tex @@ -1,6 +1,6 @@ %% filedir.tex %% -%% Copyright (C) 2000-2003 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2004 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Prefazione", @@ -369,27 +369,27 @@ direttamente sul suo contenuto. \textbf{Funzione} & \textbf{Segue il link} & \textbf{Non segue il link} \\ \hline \hline - \func{access} & $\bullet$ & \\ - \func{chdir} & $\bullet$ & \\ - \func{chmod} & $\bullet$ & \\ - \func{chown} & & $\bullet$ \\ - \func{creat} & $\bullet$ & \\ - \func{exec} & $\bullet$ & \\ + \func{access} & $\bullet$ & -- \\ + \func{chdir} & $\bullet$ & -- \\ + \func{chmod} & $\bullet$ & -- \\ + \func{chown} & -- & $\bullet$ \\ + \func{creat} & $\bullet$ & -- \\ + \func{exec} & $\bullet$ & -- \\ \func{lchown} & $\bullet$ & $\bullet$ \\ - \func{link} & & \\ - \func{lstat} & & $\bullet$ \\ - \func{mkdir} & $\bullet$ & \\ - \func{mkfifo} & $\bullet$ & \\ - \func{mknod} & $\bullet$ & \\ - \func{open} & $\bullet$ & \\ - \func{opendir} & $\bullet$ & \\ - \func{pathconf} & $\bullet$ & \\ - \func{readlink} & & $\bullet$ \\ - \func{remove} & & $\bullet$ \\ - \func{rename} & & $\bullet$ \\ - \func{stat} & $\bullet$ & \\ - \func{truncate} & $\bullet$ & \\ - \func{unlink} & & $\bullet$ \\ + \func{link} & -- & -- \\ + \func{lstat} & -- & $\bullet$ \\ + \func{mkdir} & $\bullet$ & -- \\ + \func{mkfifo} & $\bullet$ & -- \\ + \func{mknod} & $\bullet$ & -- \\ + \func{open} & $\bullet$ & -- \\ + \func{opendir} & $\bullet$ & -- \\ + \func{pathconf} & $\bullet$ & -- \\ + \func{readlink} & -- & $\bullet$ \\ + \func{remove} & -- & $\bullet$ \\ + \func{rename} & -- & $\bullet$ \\ + \func{stat} & $\bullet$ & -- \\ + \func{truncate} & $\bullet$ & -- \\ + \func{unlink} & -- & $\bullet$ \\ \hline \end{tabular} \caption{Uso dei link simbolici da parte di alcune funzioni.} @@ -1622,47 +1622,47 @@ nell'ultima colonna di \tabref{tab:file_file_times}. \hline \hline \func{chmod}, \func{fchmod} - & & &$\bullet$& & & & \\ + & -- & -- &$\bullet$& -- & -- & -- & \\ \func{chown}, \func{fchown} - & & &$\bullet$& & & & \\ + & -- & -- &$\bullet$& -- & -- & -- & \\ \func{creat} - &$\bullet$&$\bullet$&$\bullet$& &$\bullet$&$\bullet$& con + &$\bullet$&$\bullet$&$\bullet$& -- &$\bullet$&$\bullet$& con \const{O\_CREATE} \\ \func{creat} - & &$\bullet$&$\bullet$& &$\bullet$&$\bullet$& + & -- &$\bullet$&$\bullet$& -- &$\bullet$&$\bullet$& con \const{O\_TRUNC} \\ \func{exec} - &$\bullet$& & & & & & \\ + &$\bullet$& -- & -- & -- & -- & -- & \\ \func{lchown} - & & &$\bullet$& & & & \\ + & -- & -- &$\bullet$& -- & -- & -- & \\ \func{link} - & & &$\bullet$& &$\bullet$&$\bullet$& \\ + & -- & -- &$\bullet$& -- &$\bullet$&$\bullet$& \\ \func{mkdir} - &$\bullet$&$\bullet$&$\bullet$& &$\bullet$&$\bullet$& \\ + &$\bullet$&$\bullet$&$\bullet$& -- &$\bullet$&$\bullet$& \\ \func{mkfifo} - &$\bullet$&$\bullet$&$\bullet$& &$\bullet$&$\bullet$& \\ + &$\bullet$&$\bullet$&$\bullet$& -- &$\bullet$&$\bullet$& \\ \func{open} - &$\bullet$&$\bullet$&$\bullet$& &$\bullet$&$\bullet$& con + &$\bullet$&$\bullet$&$\bullet$& -- &$\bullet$&$\bullet$& con \const{O\_CREATE} \\ \func{open} - & &$\bullet$&$\bullet$& & & & con + & -- &$\bullet$&$\bullet$& -- & -- & -- & con \const{O\_TRUNC} \\ \func{pipe} - &$\bullet$&$\bullet$&$\bullet$& & & & \\ + &$\bullet$&$\bullet$&$\bullet$& -- & -- & -- & \\ \func{read} - &$\bullet$& & & & & & \\ + &$\bullet$& -- & -- & -- & -- & -- & \\ \func{remove} - & & &$\bullet$& &$\bullet$&$\bullet$& se esegue + & -- & -- &$\bullet$& -- &$\bullet$&$\bullet$& se esegue \func{unlink}\\ \func{remove} - & & & & &$\bullet$&$\bullet$& se esegue + & -- & -- & -- & -- &$\bullet$&$\bullet$& se esegue \func{rmdir}\\ \func{rename} - & & &$\bullet$& &$\bullet$&$\bullet$& per entrambi + & -- & -- &$\bullet$& -- &$\bullet$&$\bullet$& per entrambi gli argomenti\\ \func{rmdir} - & & & & &$\bullet$&$\bullet$& \\ + & -- & -- & -- & -- &$\bullet$&$\bullet$& \\ \func{truncate}, \func{ftruncate} - & &$\bullet$&$\bullet$& & & & \\ + & -- &$\bullet$&$\bullet$& -- & -- & -- & \\ \func{unlink} - & & &$\bullet$& &$\bullet$&$\bullet$& \\ + & -- & -- &$\bullet$& -- &$\bullet$&$\bullet$& \\ \func{utime} - &$\bullet$&$\bullet$&$\bullet$& & & & \\ + &$\bullet$&$\bullet$&$\bullet$& -- & -- & -- & \\ \func{write} - & &$\bullet$&$\bullet$& & & & \\ + & -- &$\bullet$&$\bullet$& -- & -- & -- & \\ \hline \end{tabular} \caption{Prospetto dei cambiamenti effettuati sui tempi di ultimo diff --git a/fileintro.tex b/fileintro.tex index 7d58c31..0d9de52 100644 --- a/fileintro.tex +++ b/fileintro.tex @@ -1,6 +1,6 @@ -% fileintro.tex +%% fileintro.tex %% -%% Copyright (C) 2000-2003 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2004 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Prefazione", diff --git a/filestd.tex b/filestd.tex index d5c5ce1..0a623a0 100644 --- a/filestd.tex +++ b/filestd.tex @@ -1,6 +1,6 @@ %% filestd.tex %% -%% Copyright (C) 2000-2003 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2004 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Prefazione", diff --git a/fileunix.tex b/fileunix.tex index 782afc9..548220b 100644 --- a/fileunix.tex +++ b/fileunix.tex @@ -1,6 +1,6 @@ %% fileunix.tex %% -%% Copyright (C) 2000-2003 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2004 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Prefazione", diff --git a/gapil.tex b/gapil.tex index 251237e..5d0a88f 100644 --- a/gapil.tex +++ b/gapil.tex @@ -1,6 +1,6 @@ %% gapil.tex %% -%% Copyright (C) 2000-2003 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2004 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Prefazione", @@ -84,7 +84,7 @@ \begin{quote} - Copyright \copyright\ 2000-2003 Simone Piccardi. Permission is granted to + Copyright \copyright\ 2000-2004 Simone Piccardi. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with the Invariant Sections being ``Prefazione'', diff --git a/intro.tex b/intro.tex index 28719d4..2a9c973 100644 --- a/intro.tex +++ b/intro.tex @@ -1,6 +1,6 @@ %% intro.tex %% -%% Copyright (C) 2000-2003 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2004 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Prefazione", diff --git a/ipc.tex b/ipc.tex index 04fe2cd..762eae1 100644 --- a/ipc.tex +++ b/ipc.tex @@ -1,6 +1,6 @@ %% ipc.tex %% -%% Copyright (C) 2000-2002 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2004 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Prefazione", diff --git a/macro.tex b/macro.tex index 41a118e..df71dc7 100644 --- a/macro.tex +++ b/macro.tex @@ -1,6 +1,6 @@ %% macro.tex %% -%% Copyright (C) 2000-2003 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2004 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Prefazione", diff --git a/netlayer.tex b/netlayer.tex index e75dda7..16d252d 100644 --- a/netlayer.tex +++ b/netlayer.tex @@ -1,6 +1,6 @@ %% ipprot.tex %% -%% Copyright (C) 2000-2003 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2004 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Prefazione", @@ -32,7 +32,7 @@ nuova versione denominata IPv6. \label{sec:ip_protocol} L'attuale \textit{Internet Protocol} (IPv4) viene standardizzato nel 1981 -dall'\href{http://www.ietf.org/rfc/rfc0719.txt}{RFC~719}; esso nasce per +dall'\href{http://www.ietf.org/rfc/rfc719.txt}{RFC~719}; esso nasce per disaccoppiare le applicazioni della struttura hardware delle reti di trasmissione, e creare una interfaccia di trasmissione dei dati indipendente dal sottostante substrato di rete, che può essere realizzato con le tecnologie @@ -212,7 +212,7 @@ apparecchio elettronico sarebbe stato inserito all'interno della rete. Per questo motivo si iniziò a progettare una nuova versione del protocollo L'attuale Internet Protocol (IPv4) viene standardizzato nel 1981 -dall'\href{http://www.ietf.org/rfc/rfc0719.txt}{RFC~719}; esso nasce per +dall'\href{http://www.ietf.org/rfc/rfc719.txt}{RFC~719}; esso nasce per disaccoppiare le applicazioni della struttura hardware delle reti di trasmissione, e creare una interfaccia di trasmissione dei dati indipendente dal sottostante substrato di rete, che può essere realizzato con le tecnologie diff --git a/network.tex b/network.tex index 7c67b41..29dec6c 100644 --- a/network.tex +++ b/network.tex @@ -1,6 +1,6 @@ %% network.tex %% -%% Copyright (C) 2000-2003 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2004 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Prefazione", diff --git a/process.tex b/process.tex index b21dc6b..08a5e6d 100644 --- a/process.tex +++ b/process.tex @@ -1,6 +1,6 @@ %% process.tex %% -%% Copyright (C) 2000-2003 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2004 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Prefazione", @@ -1140,16 +1140,16 @@ in tab.~\ref{tab:proc_env_func}. \textbf{SVr4} & \textbf{BSD} & \textbf{Linux} \\ \hline \hline - \func{getenv} & $\bullet$ & $\bullet$ & $\bullet$ & - $\bullet$ & $\bullet$ & $\bullet$ \\ - \func{setenv} & & & & - & $\bullet$ & $\bullet$ \\ - \func{unsetenv} & & & & - & $\bullet$ & $\bullet$ \\ - \func{putenv} & & opz. & $\bullet$ & - & $\bullet$ & $\bullet$ \\ - \func{clearenv} & & opz. & & - & & $\bullet$ \\ + \func{getenv} & $\bullet$ & $\bullet$ & $\bullet$ + & $\bullet$ & $\bullet$ & $\bullet$ \\ + \func{setenv} & -- & -- & -- + & -- & $\bullet$ & $\bullet$ \\ + \func{unsetenv}& -- & -- & -- + & -- & $\bullet$ & $\bullet$ \\ + \func{putenv} & -- & opz. & $\bullet$ + & -- & $\bullet$ & $\bullet$ \\ + \func{clearenv}& -- & opz. & -- + & -- & -- & $\bullet$ \\ \hline \end{tabular} \caption{Funzioni per la gestione delle variabili di ambiente.} diff --git a/prochand.tex b/prochand.tex index 86c7a7d..177155d 100644 --- a/prochand.tex +++ b/prochand.tex @@ -1,6 +1,6 @@ %% prochand.tex %% -%% Copyright (C) 2000-2003 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2004 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Prefazione", diff --git a/ringraziamenti.tex b/ringraziamenti.tex index 9861b1f..5d3c92e 100644 --- a/ringraziamenti.tex +++ b/ringraziamenti.tex @@ -1,6 +1,6 @@ %% ringraziamenti.tex %% -%% Copyright (C) 2000-2002 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2004 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Prefazione", diff --git a/session.tex b/session.tex index c5cdeae..32fccd8 100644 --- a/session.tex +++ b/session.tex @@ -1,6 +1,6 @@ %% session.tex %% -%% Copyright (C) 2000-2003 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2004 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Prefazione", diff --git a/signal.tex b/signal.tex index 625a65b..89b20ca 100644 --- a/signal.tex +++ b/signal.tex @@ -1,6 +1,6 @@ %% signal.tex %% -%% Copyright (C) 2000-2003 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2004 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Prefazione", diff --git a/sockctrl.tex b/sockctrl.tex index eec51ec..512c380 100644 --- a/sockctrl.tex +++ b/sockctrl.tex @@ -37,10 +37,14 @@ propriet La risoluzione dei nomi è associata tradizionalmente al servizio del \textit{Domain Name Service} che permette di identificare le macchine su internet invece che per numero IP attraverso il relativo \textsl{nome a - dominio}. In realtà per DNS si intendono spesso i server che forniscono su -internet questo servizio, mentre nel nostro caso affronteremo la problematica -dal lato client, di un qualunque programma che necessita di compiere questa -operazione. + dominio}.\footnote{non staremo ad entrare nei dettagli della definizione di + cosa è un nome a dominio, dandolo per noto, una introduzione alla + problematica si trova in \cite{AGL} (cap. 9) mentre per una trattazione + approfondita di tutte le problematiche relative al DNS si può fare + riferimento a \cite{DNSbind}.} In realtà per DNS si intendono spesso i +server che forniscono su internet questo servizio, mentre nel nostro caso +affronteremo la problematica dal lato client, di un qualunque programma che +necessita di compiere questa operazione. \begin{figure}[htb] \centering @@ -170,12 +174,12 @@ carattere ``\texttt{:}'' e prosegue con la lista dei \textsl{servizi} su cui le relative informazioni sono raggiungibili, scritti nell'ordine in cui si vuole siano interrogati. -Ogni servizio è specificato a sua volta da un nome, come \texttt{file}, -\texttt{dns}, \texttt{db}, ecc. che identifica la libreria dinamica che -realizza l'interfaccia con esso. Per ciascun servizio se \texttt{NAME} è il -nome utilizzato dentro \file{/etc/nsswitch.conf}, dovrà essere presente -(usualmente in \file{/lib}) una libreria \texttt{libnss\_NAME} che ne -implementa le funzioni. +Ogni servizio è specificato a sua volta da un nome, come \texttt{file}, +\texttt{dns}, \texttt{db}, ecc. che identifica la libreria dinamica che +realizza l'interfaccia con esso. Per ciascun servizio se \texttt{NAME} è il +nome utilizzato dentro \file{/etc/nsswitch.conf}, dovrà essere presente +(usualmente in \file{/lib}) una libreria \texttt{libnss\_NAME} che ne +implementa le funzioni. In ogni caso, qualunque sia la modalità con cui ricevono i dati o il supporto su cui vengono mantenuti, e che si usino o meno funzionalità aggiuntive @@ -194,27 +198,40 @@ Prima di trattare le funzioni usate normalmente nella risoluzione dei nomi a dominio conviene trattare in maniera più dettagliata il meccanismo principale da esse utilizzato e cioè quello del servizio DNS. Come accennato questo, benché in teoria sia solo uno dei possibili supporti su cui mantenere le -relative informazioni, in pratica costituisce il meccanismo principale +informazioni, in pratica costituisce il meccanismo principale con cui vengono +risolti i nomi a dominio. Per questo motivo esistono una serie di funzioni di +libreria che servono specificamente ad esseguire delle interrogazioni verso un +server DNS, funzioni che poi vengono utilizzate per realizzare le funzioni +generiche di libreria usate anche dal sistema del \textit{resolver}. +Il sistema del DNS è in sostanza di un database distribuito organizzato in +maniera gerarchica, la manutenzione dei dati è mantenuta in tanti server +distinti ciascuno dei quali si occupa della risoluzione del proprio +\textit{dominio}; i nomi a dominio sono poi organizzati in una struttura ad +albero analoga a quella dell'albero dei file in un sistema unix-like, con +domini di primo livello (come i \texttt{.org}), secondo livello (come +\texttt{.truelite.it}), ecc. In questo caso le separazioni sono fra i vari +livelli sono definite dal carattere ``\texttt{.}'' ed i nomi devono essere +risolti da destra verso sinistra. Il meccanismo funziona con il criterio della +\textsl{delegazione}, un server responsabile per un dominio di primo livello +può delegare la risoluzione degli indirizzi per un suo dominio di secondo +livello ad un altro server, il quale a sua volta potrà delegare la risoluzione +di un eventuale sottodominio di terzo livello ad un altro server ancora. -Per questo motivo il \textit{resolver} prevede delle funzioni che permettono -sia di eseguire direttamente delle interrogazione ad un server DNS, che di -controllare le modalità con cui queste vengono eseguite; diventa così -possibile modificare da programma buona parte dei parametri controllati da -\file{/etc/resolv.conf}. +In realtà un server DNS contiene comunque una serie di altre informazioni; +ciascuna voce nel database viene chiamata \textit{resource record}, e viene +vi è associato un certo \textsl{tipo}, identificato da una sigla. -Per capire meglio il contenuto della struttura \struct{hostent} conviene -spendere alcune parole sul funzionamento del DNS. Questo in sostanza è un -database distribuito organizzato in maniera gerarchica, interrogando il quale -si possono avere una serie di informazioni, la principale delle quali è la -corrispondenza fra un nome (a dominio) ed indirizzo IP. Un server DNS -contiene comunque una serie di altre informazioni; ciascuna voce nel database -viene chiamata \textit{resource record} e vi è associato un certo -\textsl{tipo}, identificato da una sigla. Per quanto ci interessa i tipi di -\textit{resource record} che vengono utilizzati dal \textit{resolver} sono -sostanzialmente i seguenti: + +interrogando il quale si possono avere una serie di informazioni, +la principale delle quali è appunto la corrispondenza fra un nome (a dominio) +ed indirizzo IP. + + +Per quanto ci interessa i tipi di \textit{resource record} che vengono +utilizzati dal \textit{resolver} sono sostanzialmente i seguenti: \begin{basedescript}{\desclabelwidth{1.2cm}\desclabelstyle{\nextlinelabel}} \item[\texttt{A}] indica la corripondenza fra un nome a dominio ed un indirizzo IPv4, ad esempio la corrispondenza fra \texttt{dodds.truelite.it} @@ -236,6 +253,17 @@ sostanzialmente i seguenti: + + + +Per questo motivo il \textit{resolver} prevede delle funzioni che permettono +sia di eseguire direttamente delle interrogazione ad un server DNS, che di +controllare le modalità con cui queste vengono eseguite; diventa così +possibile modificare da programma buona parte dei parametri controllati da +\file{/etc/resolv.conf}. + + + \subsection{La risoluzione dei nomi a dominio} \label{sec:sock_gethostbyname} diff --git a/socket.tex b/socket.tex index 5426a0d..dee4a6c 100644 --- a/socket.tex +++ b/socket.tex @@ -1,6 +1,6 @@ %% socket.tex %% -%% Copyright (C) 2000-2003 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2004 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Prefazione", diff --git a/system.tex b/system.tex index 8986058..3351dc4 100644 --- a/system.tex +++ b/system.tex @@ -1,6 +1,6 @@ %% system.tex %% -%% Copyright (C) 2000-2003 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2004 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Prefazione", diff --git a/tcpsock.tex b/tcpsock.tex index 03955c5..a023c9e 100644 --- a/tcpsock.tex +++ b/tcpsock.tex @@ -1,6 +1,6 @@ %% tcpsock.tex %% -%% Copyright (C) 2000-2003 Simone Piccardi. Permission is granted to +%% Copyright (C) 2000-2004 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Prefazione", @@ -1227,7 +1227,7 @@ descritta in \secref{sec:TCP_conn_term}, si pu Avendo introdotto le funzioni di base per la gestione dei socket, potremo vedere in questa sezione un primo esempio di applicazione elementare che implementa il servizio \textit{daytime} su TCP, secondo quanto specificato -dall'\href{http://www.ietf.org/rfc/rfc0867.txt}{RFC~867}. Prima di passare +dall'\href{http://www.ietf.org/rfc/rfc867.txt}{RFC~867}. Prima di passare agli esempi del client e del server, inizieremo riesaminando con maggiori dettagli una peculiarità delle funzioni di I/O, già accennata in \secref{sec:file_read} e \secref{sec:file_write}, che nel caso dei socket è @@ -1312,7 +1312,7 @@ byte non letti in caso di end-of-file prematuro. Il primo esempio di applicazione delle funzioni di base illustrate in \secref{sec:TCP_functions} è relativo alla creazione di un client elementare per il servizio \textit{daytime}, un servizio elementare, definito -nell'\href{http://www.ietf.org/rfc/rfc0867.txt}{RFC~867}, che restituisce +nell'\href{http://www.ietf.org/rfc/rfc867.txt}{RFC~867}, che restituisce l'ora locale della macchina a cui si effettua la richiesta, e che è assegnato alla porta 13. @@ -1634,7 +1634,7 @@ da parte di un server che risponde fornendo altri dati in uscita. Il servizio \textit{echo} è uno dei servizi standard solitamente provvisti direttamente dal superserver \cmd{inetd}, ed è definito -dall'\href{http://www.ietf.org/rfc/rfc0862.txt}{RFC~862}. Come dice il nome il +dall'\href{http://www.ietf.org/rfc/rfc862.txt}{RFC~862}. Come dice il nome il servizio deve riscrivere indietro sul socket i dati che gli vengono inviati in ingresso. L'RFC descrive le specifiche del servizio sia per TCP che UDP, e per il primo stabilisce che una volta stabilita la connessione ogni dato in diff --git a/trasplayer.tex b/trasplayer.tex index f02165b..a327154 100644 --- a/trasplayer.tex +++ b/trasplayer.tex @@ -1,6 +1,6 @@ %% tcpprot.tex %% -%% Copyright (C) 2002-2003 Simone Piccardi. Permission is granted to +%% Copyright (C) 2002-2004 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Prefazione", -- 2.30.2