From: Simone Piccardi Date: Thu, 12 Apr 2001 22:44:42 +0000 (+0000) Subject: Iniziata sezione sulle strutture degli indirizzi dei socket X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=commitdiff_plain;h=6b10a81a8b1fc4cd623d6b3b1f7852117de55605;p=gapil.git Iniziata sezione sulle strutture degli indirizzi dei socket --- diff --git a/main.tex b/main.tex index 9fe6813..26ae6aa 100644 --- a/main.tex +++ b/main.tex @@ -32,13 +32,13 @@ \author{Simone Piccardi} - \begin{document} \pagenumbering{roman} \maketitle + \newcommand{\clearemptydoublepage}{\newpage{\pagestyle{empty} \cleardoublepage}} diff --git a/socket.tex b/socket.tex index 076793f..95e68bd 100644 --- a/socket.tex +++ b/socket.tex @@ -93,7 +93,7 @@ viene messo a zero (con l'eccezione dei \textit{raw socket}). \item \texttt{EPROTONOSUPPORT} Il tipo di socket o il protocollo scelto non sono supportati nel dominio. \item \texttt{ENFILE} Il kernel non ha memoria sufficiente a creare una - nuova strutture per il socket. + nuova struttura per il socket. \item \texttt{EMFILE} Si è ecceduta la tabella dei file. \item \texttt{EACCES} Non si hanno privilegi per creare un socket nel dominio o con il protocollo specificato. @@ -191,42 +191,77 @@ glibc chiama \textit{styles}) definiti come \texttt{int} in \texttt{socket.h}: \item \texttt{SOCK\_PACKET} Obsoleto, non deve essere usato. \end{list} - Si tenga presente che non tutte le combinazioni di famiglia di protocolli e tipo di socket sono valide, in quanto non è detto che nella famiglia esista un protocollo per tutti gli stili di comunicazione indicati qui sopra. Una -tabella che mostra le combianazioni valide è la seguente: +tabella che mostra le combinazioni valide è la seguente: \begin{table}[htb] \footnotesize \centering \begin{tabular}{l|c|c|c|c|c|} - &\multicolumn{1}{c}{\texttt{SOCK\_STREAM}}& + \multicolumn{1}{c}{} &\multicolumn{1}{c}{\texttt{SOCK\_STREAM}}& \multicolumn{1}{c}{\texttt{SOCK\_DGRAM}} & \multicolumn{1}{c}{\texttt{SOCK\_RAW}} & \multicolumn{1}{c}{\texttt{SOCK\_PACKET}}& \multicolumn{1}{c}{\texttt{SOCK\_SEQPACKET}} \\ + \cline{2-6} \texttt{PF\_UNIX} & si & si & & & \\ + \cline{2-6} \texttt{PF\_INET} & TCP & UDP & IPv4 & & \\ + \cline{2-6} \texttt{PF\_INET6} & TCP & UDP & IPv6 & & \\ + \cline{2-6} \texttt{PF\_IPX} & ? & & & & \\ + \cline{2-6} \texttt{PF\_NETLINK} & & & si & & \\ + \cline{2-6} \texttt{PF\_X25} & & & & & \\ + \cline{2-6} \texttt{PF\_AX25} & & & & & \\ + \cline{2-6} \texttt{PF\_ATMPVC} & ? & & & & \\ + \cline{2-6} \texttt{PF\_APPLETALK} & ? & & & & \\ + \cline{2-6} \texttt{PF\_PACKET} & & & & & \\ + \cline{2-6} \end{tabular} \caption{Combinazioni valide di dominio e tipo di protocollo per la funzione \texttt{socket}.} \label{tab:sock_sock_valid_combinations} \end{table} +Dove per ogni combinazione valida si è indicato il tipo di protocollo, o la +parola \textsl{si} qualora non il protocollo non abbia un nome definito, +mentre si sono lasciate vuote le caselle per le combinazioni non supportate. - -\section{Le strutture degli indirizzi} +\section{Le strutture degli indirizzi dei socket} \label{sec:sock_sockaddr} -La gran parte dei +Benché esse non vengano utilizzate nella creazione di un socket le strutture +degli indirizzi sono usate da quasi tutte le altre funzioni concernenti +socket, per cui in questa sezione le tratteremo in dettaglio. + + +I nomi di tutte queste strutture iniziano per \texttt{sockaddr\_} e ciascuna +famiglia di protocolli ha una sua peculiare, che viene identificata dal +suffisso finale aggiunto al nome precedente. + + +\subsection{La struttura generica} +\label{sec:sock_sa_gen} + +\subsection{La struttura degli indirizzi IPv4} +\label{sec:sock_sa_ipv4} + +\subsection{La struttura degli indirizzi IPv6} +\label{sec:sock_sa_ipv6} + +\subsection{La struttura degli indirizzi locali} +\label{sec:sock_sa_local} + + + \section{Le funzioni di conversione degli indirizzi} @@ -252,7 +287,7 @@ client e un server TCP, riprendendo quanto visto in \ref{sec:net_cli_sample} e Per capire il funzionamento delle funzioni della interfaccia dei socket che operano con TCP (le varie \texttt{connect}, \texttt{accept}, \texttt{close} -che abbiamo visto negli esempi iniziali e su cui torneremo più avatni) è +che abbiamo visto negli esempi iniziali e su cui torneremo più avanti) è fodamentale capire come funziona la creazione e la conclusione di una connessione TCP.