Aggiornamento copyright e inizio aggiornameto parte sui socket.
authorSimone Piccardi <piccardi@gnulinux.it>
Sun, 13 Mar 2016 07:59:26 +0000 (07:59 +0000)
committerSimone Piccardi <piccardi@gnulinux.it>
Sun, 13 Mar 2016 07:59:26 +0000 (07:59 +0000)
26 files changed:
build.tex
errors.tex
fileadv.tex
filedir.tex
fileio.tex
gapil.tex
intro.tex
ipc.tex
macro.tex
netlayer.tex
network.tex
othersock.tex
preambolo.tex
pref.tex
process.tex
prochand.tex
ringraziamenti.tex
session.tex
signal.tex
sockadv.tex
sockctrl.tex
socket.tex
system.tex
tcpsock.tex
thread.tex
trasplayer.tex

index d124f854f0ec43d564dc79b24c649d28fb5234dc..0d3c46e7a0f748fc851a5dea791a2ec87661aff2 100644 (file)
--- a/build.tex
+++ b/build.tex
@@ -1,6 +1,6 @@
 %% build.tex
 %%
-%% Copyright (C) 1999-2015 Simone Piccardi.  Permission is granted to copy,
+%% Copyright (C) 1999-2016 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 "Un preambolo",
index 28af8f545ff3ee681ddf83fccaa0f1aa7e84afcc..11ed527b21959f2ae3d52e82e9345352141c41dc 100644 (file)
@@ -1,6 +1,6 @@
 %% errors.tex
 %%
-%% Copyright (C) 2000-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2016 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 "Un preambolo",
index 0251c7b551f7f38c016017639e242cffc322b8b0..8ac1a734b907f0d6d6ca001e211079069d231024 100644 (file)
@@ -1,6 +1,6 @@
 %% fileadv.tex
 %%
-%% Copyright (C) 2000-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2016 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 "Un preambolo",
index ae7b55778cb5916027147313b9f35a16923adf3a..f428ba8e31aa96a6d6126f41880229b266956a12 100644 (file)
@@ -1,6 +1,6 @@
 %% filedir.tex
 %%
-%% Copyright (C) 2000-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2016 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 "Un preambolo",
index 20c4c1d5e099b7e851b8b948f803c308df6e7a73..2c11011106a007099daab0112c4178c3455ebfee 100644 (file)
@@ -1,6 +1,6 @@
 %% fileio.tex (merge fileunix.tex - filestd.tex)
 %%
-%% Copyright (C) 2000-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2016 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 "Un preambolo",
index f15cf7b5026132632f55c48642be26ae4f12b963..375f1a435bb8acf696e063cdb10279a6763d4ad8 100644 (file)
--- a/gapil.tex
+++ b/gapil.tex
@@ -1,6 +1,6 @@
 %% gapil.tex
 %%
-%% Copyright (C) 2000-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2016 Simone Piccardi.  Permission is granted to
 %% copy, distribute and/or modify this document under the terms of the GNU Free
 %% Documentation License, Version 1.3 or any later version published by the
 %% Free Software Foundation; with the Invariant Sections being "Un preambolo",
@@ -128,7 +128,7 @@ hyperfootnotes=false]{hyperref}
 
 \begin{quote}
   
-  Copyright \copyright\ 2000-2015 Simone Piccardi.  Permission is granted to
+  Copyright \copyright\ 2000-2016 Simone Piccardi.  Permission is granted to
   copy, distribute and/or modify this document under the terms of the GNU Free
   Documentation License, Version 1.3 or any later version published by the
   Free Software Foundation; with the Invariant Sections being ``Un preambolo''
index fd6a41b4a41d56b646680a1faf2ad7dd5adf15bf..fc9c79122023f301515788b406a971e5beb3ad0a 100644 (file)
--- a/intro.tex
+++ b/intro.tex
@@ -1,6 +1,6 @@
 %% intro.tex
 %%
-%% Copyright (C) 2000-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-201 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 "Un preambolo",
diff --git a/ipc.tex b/ipc.tex
index bc8d542641a3fb6b7987dcb706cfc2c38b3853f2..e77748729db20375358e7b57f031282bb3b56c9d 100644 (file)
--- a/ipc.tex
+++ b/ipc.tex
@@ -1,6 +1,6 @@
 %% ipc.tex
 %%
-%% Copyright (C) 2000-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2016 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 "Un preambolo",
index 9e0fa9e440cbcedde723c74ad59b27fd9dbeeb02..3624bbe9993d541b2cf1505f37648d416f893394 100644 (file)
--- a/macro.tex
+++ b/macro.tex
@@ -1,6 +1,6 @@
 %% macro.tex
 %%
-%% Copyright (C) 2000-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2016 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 "Un preambolo",
index f113a7e53299a2480fd39ed84c6654f3e3edcf1a..388ee59f95134a80ac1781ae6a71b22296eb336a 100644 (file)
@@ -1,6 +1,6 @@
 %% netlayer.tex
 %%
-%% Copyright (C) 2000-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2016 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 "Un preambolo",
index 6470c1fbef3e6cfef0dfa0d1aa42b189aa3c982e..575b4c512aa1dc3e972d1d8b60f91d4b18d0ac62 100644 (file)
@@ -1,6 +1,6 @@
 %% network.tex
 %%
-%% Copyright (C) 2000-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2016 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 "Un preambolo",
@@ -369,10 +369,10 @@ la procedura si può riassumere nei seguenti passi:
   un suo specifico formato. Per applicazioni generiche, come la posta o le
   pagine web, viene di solito definito ed implementato quello che viene
   chiamato un protocollo di applicazione (esempi possono essere HTTP, POP,
-  SMTP, ecc.), ciascuno dei quali è descritto in un opportuno standard (di
-  solito attraverso un RFC\footnote{l'acronimo RFC sta per \textit{Request For
-      Comment} ed è la procedura attraverso la quale vengono proposti gli
-    standard per Internet.}).
+  SMTP, ecc.), ciascuno dei quali è descritto in un opportuno standarddi
+  solito attraverso un RFC (l'acronimo RFC sta per
+  \itindex{Request~For~Comment~(RFC)} \textit{Request For Comment} ed è la
+  procedura attraverso la quale vengono proposti gli standard per Internet).
 \item I dati delle applicazioni vengono inviati al livello di trasporto usando
   un'interfaccia opportuna (i \textit{socket}, che esamineremo in dettaglio in
   cap.~\ref{cha:socket_intro}). Qui verranno spezzati in pacchetti di
@@ -527,8 +527,8 @@ seguenti:
   Combina per IPv6 le funzionalità di ICMPv4, IGMP e ARP.
 \item[\textsl{EGP}] \textit{Exterior Gateway Protocol}. È un protocollo di
   routing usato per comunicare lo stato fra gateway vicini a livello di
-  \textsl{sistemi autonomi}\footnote{vengono chiamati \textit{autonomous
-      systems} i raggruppamenti al livello più alto della rete.}, con
+  \textsl{sistemi autonomi} (vengono chiamati \textit{autonomous
+      systems} i raggruppamenti al livello più alto della rete), con
   meccanismi che permettono di identificare i vicini, controllarne la
   raggiungibilità e scambiare informazioni sullo stato della rete. Viene
   implementato direttamente sopra IP. 
@@ -773,11 +773,11 @@ alle eventuali implicazioni che possono avere, è il seguente:
 
 Quando un pacchetto IP viene inviato su una interfaccia di rete e le sue
 dimensioni eccedono la MTU viene eseguita la cosiddetta
-\textit{frammentazione}, i pacchetti cioè vengono suddivisi\footnote{questo
+\textit{frammentazione}, i pacchetti cioè vengono suddivisi in blocchi più
+piccoli che possono essere trasmessi attraverso l'interfaccia.\footnote{questo
   accade sia per IPv4 che per IPv6, anche se i pacchetti frammentati sono
   gestiti con modalità diverse, IPv4 usa un flag nell'header, IPv6 una
-  opportuna opzione, si veda sez.~\ref{sec:ipv6_protocol}.}) in blocchi più
-piccoli che possono essere trasmessi attraverso l'interfaccia.
+  opportuna opzione, si veda sez.~\ref{sec:ipv6_protocol}.}
 
 \begin{table}[!htb]
   \centering
@@ -799,6 +799,8 @@ piccoli che possono essere trasmessi attraverso l'interfaccia.
   \label{tab:net_mtu_values}
 \end{table}
 
+%TODO aggiornare la tabella con dati più recenti
+
 \itindbeg{Path~MTU}
 
 La MTU più piccola fra due stazioni viene in genere chiamata \textit{path
index 3f2e28ab401a89c97cd8c5d1fe180ffe5ac1a8a9..af8d97a609501cc993616438e8759ea588024d47 100644 (file)
@@ -1,6 +1,6 @@
 %% othersock.tex
 %%
-%% Copyright (C) 2004-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2004-2016 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 "Un preambolo",
index 4170b116cd16773abd0ec1a3f3688969ec05fd04..499857a5e4d265487093cae77de50d1f29dcc937 100644 (file)
@@ -1,6 +1,6 @@
 %% preambolo.tex
 %%
-%% Copyright (C) 2000-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2016 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 "Un preambolo",
index 9d1f356f7a254030f68df281e51e0af1ce1357aa..2baacde3945b3e5bd713ecbc3f97c9a68226f452 100644 (file)
--- a/pref.tex
+++ b/pref.tex
@@ -1,6 +1,6 @@
 %% pref.tex
 %%
-%% Copyright (C) 2000-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2016 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 "Un preambolo",
index ba1a4cf16f9428aab8a2cb7b79b0aad57913ec76..7f46bcdad3de19c62f410d0f02d9806f9f369dc9 100644 (file)
@@ -1,6 +1,6 @@
 %% process.tex
 %%
-%% Copyright (C) 2000-2015 by Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2016 by 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 "Un preambolo",
index db19575bea6e4217ce2ba72b69ac7abad259b33f..2fb0f7c09e21a4396f284e3d111f176d4d727cdc 100644 (file)
@@ -1,6 +1,6 @@
 %% prochand.tex
 %%
-%% Copyright (C) 2000-2015 by Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2016 by 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 "Un preambolo",
index ea4a28cd004dc3c78b648a42e5355bc83d2d908f..e4a25928d9f867b8cea01a65c9af52b63cca64d8 100644 (file)
@@ -1,6 +1,6 @@
 %% ringraziamenti.tex
 %%
-%% Copyright (C) 2000-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2016 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 "Un preambolo",
index bec30f9d5ba7cd138edd841b750362813f0cb97f..6561859ff0a46c3d7e5673f78fb286443b60898c 100644 (file)
@@ -1,6 +1,6 @@
 %% session.tex
 %%
-%% Copyright (C) 2000-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2016 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 "Un preambolo",
index f78b3dbb110ef0ea06df41938eab4b620eaec8fe..f5cbac3fe60468cfc06bbd325b118ce4cd592850 100644 (file)
@@ -1,6 +1,6 @@
 %% signal.tex
 %%
-%% Copyright (C) 2000-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2016 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 "Un preambolo",
index 91f41d424c615cf0de0d61be8ce829bc9f012ad8..ac904bd281f4da8b444e1f806b32091686729043 100644 (file)
@@ -1,6 +1,6 @@
 %% sockadv.tex
 %%
-%% Copyright (C) 2004-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2004-2016 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 "Un preambolo",
index 7d0d957b47f70cffaebc7a221d3564ea8cc14b65..44bb3a1f04b4feee4d6165be4eb7682ebf03a681 100644 (file)
@@ -1,6 +1,6 @@
 %% sockctrl.tex
 %%
-%% Copyright (C) 2004-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2004-2016 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",
index 52d4809000ebe950948325cbdaaafc443970157c..a8c697b378b86b3d8755a92f3b018b6e846bd8ef 100644 (file)
@@ -1,6 +1,6 @@
 %% socket.tex
 %%
-%% Copyright (C) 2000-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2016 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 "Un preambolo",
@@ -227,7 +227,7 @@ comunicazione.
        \constd{PF\_PPPOX}    &24& PPPoX socket                  &    \\
        \constd{PF\_WANPIPE}  &25& Wanpipe API socket            &    \\
        \constd{PF\_LLC}      &26& Linux LLC                     &    \\
-       \constd{PF\_CAN}      &29& Controller Are network        &    \\
+       \constd{PF\_CAN}      &29& Controller Are Network        &    \\
        \constd{PF\_BLUETOOTH}&31& Bluetooth socket              &    \\
        \hline
   \end{tabular}
@@ -342,27 +342,27 @@ appena elencati.
     &\const{SOCK\_STREAM} &\const{SOCK\_DGRAM}     &\const{SOCK\_RAW}& 
       \const{SOCK\_RDM}&\const{SOCK\_SEQPACKET} \\
      \hline
-    \const{PF\_LOCAL}     &  si & si  &      &     &     \\
+    \const{PF\_UNIX}     &  si & si  &  --  & -- &  si\footnotemark \\
      \hline
-%    \const{PF\_UNIX}&\multicolumn{5}{|l|}{sinonimo di \const{PF\_LOCAL}.}\\
-%     \hline
-    \const{PF\_INET}      & TCP & UDP & IPv4 &     &     \\
+    \const{PF\_LOCAL}&\multicolumn{5}{|c|}{sinonimo di \const{PF\_UNIX}}\\
      \hline
-    \const{PF\_INET6}     & TCP & UDP & IPv6 &     &     \\
+    \const{PF\_INET}      & TCP & UDP & IPv4 & --  & --  \\
      \hline
-    \const{PF\_IPX}       &     &     &      &     &     \\
+    \const{PF\_INET6}     & TCP & UDP & IPv6 & --  & -- \\
      \hline
-    \const{PF\_NETLINK}   &     &  si &  si  &     &     \\
+    \const{PF\_IPX}       & --  & --  &  --  & --  & -- \\
      \hline
-    \const{PF\_X25}       &     &     &      &     &  si \\
+    \const{PF\_NETLINK}   & --  & si  &  si  & --  & -- \\
      \hline
-    \const{PF\_AX25}      &     &     &      &     &     \\
+    \const{PF\_X25}       & --  & --  &  --  & --  & si \\
      \hline
-    \const{PF\_ATMPVC}    &     &     &      &     &     \\
+    \const{PF\_AX25}      & --  & --  &  --  & --  & -- \\
      \hline
-    \const{PF\_APPLETALK} &     & si  &  si  &     &     \\
+    \const{PF\_ATMPVC}    & --  & --  &  --  & --  & -- \\
      \hline
-    \const{PF\_PACKET}    &     & si  & si   &     &     \\    
+    \const{PF\_APPLETALK} & --  & si  &  si  & --  & -- \\
+     \hline
+    \const{PF\_PACKET}    & --  & si  &  si  & --  & -- \\
      \hline
   \end{tabular}
   \caption{Combinazioni valide di dominio e tipo di protocollo per la 
@@ -370,11 +370,14 @@ appena elencati.
   \label{tab:sock_sock_valid_combinations}
 \end{table}
 
+\footnotetext{supportati a partire dal kernel 2.6.4 per socket che conservano
+  i limiti dei messaggi e li consegnano in sequenza ordinata.}
+
 In tab.~\ref{tab:sock_sock_valid_combinations} sono mostrate le combinazioni
 valide possibili per le principali famiglie di protocolli. 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.
+\textsl{si} qualora il protocollo non abbia un nome definito, mentre si sono
+lasciate vuote le caselle per le combinazioni non supportate.
 
 
 \section{Le strutture degli indirizzi dei socket}
@@ -474,12 +477,22 @@ indirizzo; per questo motivo, anche se l'uso di un puntatore \ctyp{void *}
 sarebbe più immediato per l'utente (che non dovrebbe più eseguire il casting),
 è stato mantenuto l'uso di questa struttura.
 
+Se si usa una struttura \struct{sockaddr} per allocare delle variabili
+generiche da usare in seguito per degli indirizzi si pone il problema che
+niente assicura che i dati necessari per le varie famiglie di indirizzi
+possano rientrare nella dimensione del campo \var{sa\_data}, anzi, come
+vedremo in sez.~\ref{sec:sock_sa_ipv6}, nel caso di indirizzi IPv6 questa
+non è proprio sufficiente. Per questo l'interfaccia di programmazione dei
+socket prevede la defizione di una speciale struttura
+\struct{sockaddr\_storage} per la quale è assicurato che la dimensione sia
+sufficiente per qualunque
+
 
 \subsection{La struttura degli indirizzi IPv4}
 \label{sec:sock_sa_ipv4}
 
 I socket di tipo \const{PF\_INET} vengono usati per la comunicazione
-attraverso internet; la struttura per gli indirizzi per un socket internet (se
+attraverso Internet; la struttura per gli indirizzi per un socket Internet (se
 si usa IPv4) è definita come \struct{sockaddr\_in} nell'header file
 \headfiled{netinet/in.h} ed ha la forma mostrata in
 fig.~\ref{fig:sock_sa_ipv4_struct}, conforme allo standard POSIX.1g.
@@ -490,12 +503,12 @@ fig.~\ref{fig:sock_sa_ipv4_struct}, conforme allo standard POSIX.1g.
     \includestruct{listati/sockaddr_in.h}
   \end{minipage} 
   \caption{La struttura \structd{sockaddr\_in} degli indirizzi dei socket
-    internet (IPv4) e la struttura \structd{in\_addr} degli indirizzi IPv4.}
+    Internet (IPv4) e la struttura \structd{in\_addr} degli indirizzi IPv4.}
   \label{fig:sock_sa_ipv4_struct}
 \end{figure}
 
-L'indirizzo di un socket internet (secondo IPv4) comprende l'indirizzo
-internet di un'interfaccia più un \textsl{numero di porta} (affronteremo in
+L'indirizzo di un socket Internet (secondo IPv4) comprende l'indirizzo
+Internet di un'interfaccia più un \textsl{numero di porta} (affronteremo in
 dettaglio il significato di questi numeri in sez.~\ref{sec:TCP_port_num}).  Il
 protocollo IP non prevede numeri di porta, che sono utilizzati solo dai
 protocolli di livello superiore come TCP e UDP. Questa struttura però viene
@@ -511,7 +524,7 @@ uguale a zero) o con la \textit{capability} \const{CAP\_NET\_BIND\_SERVICE}
 possono usare la funzione \func{bind} (che vedremo in
 sez.~\ref{sec:TCP_func_bind}) su queste porte.
 
-Il membro \var{sin\_addr} contiene un indirizzo internet, e viene acceduto sia
+Il membro \var{sin\_addr} contiene un indirizzo Internet, e viene acceduto sia
 come struttura (un resto di una implementazione precedente in cui questa era
 una \dirct{union} usata per accedere alle diverse classi di indirizzi) che
 direttamente come intero. In \headfile{netinet/in.h} vengono definite anche
@@ -721,7 +734,7 @@ Al solito il campo \var{sll\_family} deve essere sempre impostato al valore
 e deve essere indicato in \textit{network order}, facendo uso delle costanti
 simboliche definite in \file{linux/if\_ether.h}. Il campo \var{sll\_ifindex} è
 l'indice dell'interfaccia, che, in caso di presenza di più interfacce dello
-stesso tipo (se ad esempio si hanno più schede ethernet), permette di
+stesso tipo (se ad esempio si hanno più schede Ethernet), permette di
 selezionare quella con cui si vuole operare (un valore nullo indica qualunque
 interfaccia).  Questi sono i due soli campi che devono essere specificati
 quando si vuole selezionare una interfaccia specifica, usando questa struttura
@@ -730,7 +743,7 @@ con la funzione \func{bind}.
 I campi \var{sll\_halen} e \var{sll\_addr} indicano rispettivamente
 l'indirizzo associato all'interfaccia sul protocollo di collegamento e la
 relativa lunghezza; ovviamente questi valori cambiano a seconda del tipo di
-collegamento che si usa, ad esempio, nel caso di ethernet, questi saranno il
+collegamento che si usa, ad esempio, nel caso di Ethernet, questi saranno il
 MAC address della scheda e la relativa lunghezza. Essi vengono usati, insieme
 ai campi \var{sll\_family} e \var{sll\_ifindex} quando si inviano dei
 pacchetti, in questo caso tutti gli altri campi devono essere nulli.
@@ -747,7 +760,6 @@ pacchetto inviato ad un'altra stazione (e ricevuto su un'interfaccia in modo
 promiscuo), \constd{PACKET\_OUTGOING} per un pacchetto originato dalla propria
 macchina che torna indietro sul socket.
 
-
 Si tenga presente infine che in fase di ricezione, anche se si richiede il
 troncamento del pacchetto, le funzioni \func{recv}, \func{recvfrom} e
 \func{recvmsg} (vedi sez.~\ref{sec:net_sendmsg}) restituiranno comunque la
@@ -772,11 +784,12 @@ lunghezza effettiva del pacchetto così come arrivato sulla linea.
 \label{sec:sock_addr_func}
 
 In questa sezione tratteremo delle varie funzioni usate per manipolare gli
-indirizzi, limitandoci però agli indirizzi internet.  Come accennato gli
+indirizzi, limitandoci però agli indirizzi Internet.  Come accennato gli
 indirizzi e i numeri di porta usati nella rete devono essere forniti nel
 cosiddetto \textit{network order}, che corrisponde al formato \textit{big
-  endian}, anche quando la proprio macchina non usa questo formati, cosa che
-può comportare la necessità di eseguire delle conversioni.
+  endian} (vedi sez.~\ref{sec:endianness}), anche quando la proprio macchina
+non usa questo formato, cosa che può comportare la necessità di eseguire delle
+conversioni.
 
 
 \subsection{Le funzioni per il riordinamento}
@@ -786,32 +799,33 @@ Come già visto in sez.~\ref{sec:endianness} il problema connesso
 all'\textit{endianness} è che quando si passano dei dati da un tipo di
 architettura all'altra i dati vengono interpretati in maniera diversa, e ad
 esempio nel caso dell'intero a 16 bit ci si ritroverà con i due byte in cui è
-suddiviso scambiati di posto.  Per questo motivo si usano delle funzioni di
-conversione che servono a tener conto automaticamente della possibile
-differenza fra l'ordinamento usato sul computer e quello che viene usato nelle
-trasmissione sulla rete; queste funzioni sono \funcd{htonl}, \funcd{htons},
-\funcd{ntohl} e \funcd{ntohs} ed i rispettivi prototipi sono:
-\begin{functions}
-  \headdecl{netinet/in.h}
-  \funcdecl{unsigned long int htonl(unsigned long int hostlong)} 
-  Converte l'intero a 32 bit \param{hostlong} dal formato della macchina a
-  quello della rete.
-  \funcdecl{unsigned short int htons(unsigned short int hostshort)}
-  Converte l'intero a 16 bit \param{hostshort} dal formato della macchina a
-  quello della rete.
+suddiviso scambiati di posto.  
 
-  \funcdecl{unsigned long int ntohl(unsigned long int netlong)}
-  Converte l'intero a 32 bit \param{netlong} dal formato della rete a quello
-  della macchina.
+Per questo motivo si usano delle funzioni di conversione che servono a tener
+conto automaticamente della possibile differenza fra l'ordinamento usato sul
+computer e quello che viene usato nelle trasmissione sulla rete; queste
+funzioni sono \funcd{htonl}, \funcd{htons}, \funcd{ntohl} e \funcd{ntohs} ed i
+rispettivi prototipi sono:
 
-  \funcdecl{unsigned sort int ntohs(unsigned short int netshort)}
-  Converte l'intero a 16 bit \param{netshort} dal formato della rete a quello
-  della macchina.
-  
-  \bodydesc{Tutte le funzioni restituiscono il valore convertito, e non
-    prevedono errori.}
-\end{functions}
+\begin{funcproto}{
+\fhead{netinet/in.h}
+\fdecl{unsigned long int htonl(unsigned long int hostlong)}
+\fdesc{Converte l'intero a 32 bit \param{hostlong} dal formato della macchina a
+  quello della rete.} 
+\fdecl{unsigned short int htons(unsigned short int hostshort)}
+\fdesc{Converte l'intero a 16 bit \param{hostshort} dal formato della macchina a
+  quello della rete.}
+\fdecl{unsigned long int ntohl(unsigned long int netlong)}
+\fdesc{Converte l'intero a 32 bit \param{netlong} dal formato della rete a quello
+  della macchina.}
+\fdecl{unsigned sort int ntohs(unsigned short int netshort)}
+\fdesc{Converte l'intero a 16 bit \param{netshort} dal formato della rete a quello
+  della macchina.}
+}
+
+{Tutte le funzioni restituiscono il valore convertito, e non prevedono
+  errori.}
+\end{funcproto}
 
 I nomi sono assegnati usando la lettera \texttt{n} come mnemonico per indicare
 l'ordinamento usato sulla rete (da \textit{network order}) e la lettera
index 198832d4afe323748dd55f5f0df8fcdc7f43b0d5..e70cb35b01d5296ba0120f16ddfc88c633a93657 100644 (file)
@@ -1,6 +1,6 @@
 %% system.tex
 %%
-%% Copyright (C) 2000-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2016 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 "Un preambolo",
index 71463a12314eb76dba376ed1026555953315290e..ff4aa49a7029aa17aea6f67ac9d8a8914a5acf0c 100644 (file)
@@ -1,6 +1,6 @@
-bg%% tcpsock.tex
+%% tcpsock.tex
 %%
-%% Copyright (C) 2000-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2000-2016 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 "Un preambolo",
index b9179906cba9aff5e311e2a86f2f8b3a6185e78d..8d3354077a235bd219f8847e28972417ad70dc7e 100644 (file)
@@ -1,6 +1,6 @@
 %% thread.tex
 %%
-%% Copyright (C) 2007-2015 Simone Piccardi.  Permission is granted to
+%% Copyright (C) 2007-2016 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 "Un preambolo",
index d48daebb899759cb9b6b16902849f92359e9cb62..42a36f0c71a7528788bae11961dc0ff3b504c782 100644 (file)
@@ -1,6 +1,6 @@
 %% tcpprot.tex
 %%
-%% Copyright (C) 2002-2015 Simone Piccardi.  Permission is granted to copy,
+%% Copyright (C) 2002-2016 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 "Un preambolo",