- Unix Socket
Dans le user space il y a les couches : application, présentation et session.
Les sockets font l'interface entre les application et le réseau elles se situent au-dessus de la couche
transport,  dans les couches session, présentation et application.  
Création d'un Socket : 
Sous linux tout est traité  comme fichier, après la création d'une socket (socket()) dans le user space on obient un nouveau file descriptor associé a cette socket iSockfd .
Prototype : int socket (int domain, int type, int protocol) ; 
Domain :  AF_UNIX protocoles internes d’UNIX.
Adressage :  pour Unix c'est le nom d'un fichier, la structure est dans le fichier /usr/include/sys/un.h 
struct sockaddr_un {
short sun_family; /* AF_UNIX */char sun_path[108]; /* path name */
};
Pour chaque socket créé linux lui associe une structure struct socket au niveau user space (8 membres) et  struct sock au niveau kernel.
Type:
SOCK_STREAM et SOCK_DGRAM  sont  les plus utilisés :
-SOCK_STREAM : mode connecté  pour  TCP, SCTP, BLUETOOTH..
-SOCK_DGRAM: mode non connecté UDP.
-SOCK_RAW: for RAW sockets.
Connexion :
int connect (int sockfd, struct sockaddr *servaddr, int addrlen) ;
sockfd : est le file descriptor  par socket() ;servaddr : est un pointeur sur une structure d’adresse sockaddr_un qui indique
l’adresse de destination.
addrlen : taille de la structure d’adresse.
Commandes : 
Désactiver ou activer le bind local  echo "1" >  /proc/sys/net/ipv4/ip_nonlocal_bind
 
Statistique sur les sockets : netstat -ae
Les sockets attachés a un processus : ls -l /proc/[pid]/fd|grep socket|cut -d: -f3|sed 's/\[//;s/\]//'  
 
 