Introduction à qmail | ||
---|---|---|
Précédent | Chapitre 3. Mise en place de SMTP, POP3, UCSPI et QMTP | Suivant |
UCSPI signifie Unix Client-Server Program Interface. Un outil UCSPI est un programme qui sait communiquer avec un certain medium de communication (par exple TCP). Il fournit de plus deux descripteurs de fichiers, l'un pour lire et l'autre pour écrire sur le medium. On peut alors lui associer un programme qui lira et écrira sur ces descripteurs sans se soucier du medium. Celà permet de créer à partir d'un programme UNIX quelconque une application client/serveur sur le medium en question. L'avantage est que le programme ainsi enveloppé ne se soucie plus du medium qu'il utilise, c'est désormais le problème de l'enveloppe UCSPI.
Les outils UCSPI sont de deux types : les clients et les serveurs
Un client UCSPI se connecte à un serveur à un certain port et communique avec le programme qu'on lui spécifie via les descripteurs 6 et 7. Le client n'établit aucune connexion supplémentaire et meurt avec le programme.
Un serveur UCSPI attend les connexions des clients sur un certain port et comunique avec le programme qu'on lui spécifie via les descripteurs 0 et 1. Il permet d'avoir plusieurs connexions simultanées.
Je vous conseille fortement la lecture du texte http://pobox.com/~djb/proto/ucspi.txt de Dan Bernstein dont je me suis largement inspiré.
Un exemple est UCSPI-TCP écrit par Dan Bernstein qui est constitué de tcpclient et tcpserver. En gros, on peut dire qu'ils permettent de faire pour un port et un programme particulier ce que fait inetd à la différence qu'ils sont très performants et paramétrables. Voici l'URL de UCSPI-TCP : http://pobox.com/~djb/ucspi-tcp.html.
UCSPI-TCP va se révéler très pratique dans le système qmail. Il permétra de transformer les programmes qmail-smtpd, qmail-qmtpd et qmail-pop3d qui ne connaissent rien à TCP en de véritables serveurs sur certains ports TCP indépendament d'inetd. On gagnera ainsi en configurabilité et surtout en performances pures.
TCPcontrol quand à lui est un contrôleur d'accès écrit par Dan Bernstein destiné à être utilisé avec UCSPI-TCP. C'est ce que l'on appelle un «TCP wrapper». Voir http://pobox.com/~djb/tcpcontrol.html. Il est à tcpserver ce que tcpd est à inetd. Consultez sa documentation pour en savoir plus. Je n'ai pas utilisé TCPcontrol dans la suite. Vous pouvez lire avec profit la FAQ de qmail qui explique comment s'en servir pour le port SMTP.
Précédent | Page principale | Suivant |
POP3 par qmail-pop3d via inetd | Niveau précédent | SMTP par qmail-smtpd via UCSPI-TCP |