Groupe de travail Réseau	V. Cerf	
Request for Comments :  794	ARPA	
Remplace : IEN 125	septembre 1981	
Traduction Claude Brière de L'Isle		

Préemption

Dans les systèmes à circuit commuté, une fois qu'un utilisateur a acquis un circuit, la bande passante de communication de ce circuit lui est dédiée, même si il n'est pas utilisé. Lorsque le système sature, les demandes d'établissement de circuit supplémentaires sont bloquées. Pour permettre aux utilisateur à haute préséance d'obtenir l'accès à des ressources de circuit, des systèmes comme AUTOVON associent une préséance à chaque instrument de téléphonie. Ces instruments à haute préséance peuvent préempter les ressources de circuit, ce qui cause la coupure des usagers à préséance inférieure.

Dans les systèmes à commutation de message tels que AUTODIN I, le trafic entrant est mémorisé sur des disques (ou des tambours ou des bandes) et traité dans l'ordre de préséance. Si un message de haute préséance est entré dans le système, il est traité et transmis aussi rapidement que possible. Lorsque le message à haute préséance arrive au commutateur de message de destination, il peut préempter l'utilisation des appareils de sortie sur le commutateur, interrompant l'impression d'un message de préséance inférieure.

Dans les systèmes à commutation de paquet, il n'y a que peu ou pas de stockage dans le système de transport de sorte que la préséance a peu d'impact sur les délais de traitement d'un paquet. Cependant, lorsque un système à commutation de paquets arrive à saturation, il rejette le trafic offert. La préséance peu être utilisée dans les systèmes à commutation de paquet saturés pour trier le trafic mis en file d'attente pour entrer dans le système.

En général, la préséance est un outil pour décider comment allouer les ressources lorsque les systèmes sont saturés. Dans les systèmes à commutation de circuits, la ressource est le circuit ; dans les systèmes de commutation de messages, la ressource est le processeur de commutation de messages ; et dans la commutation par paquets, la ressource est le système de commutation de paquets lui-même.

Cette capacité peut être réalisée dans AUTODIN II sans ajouter de nouveau mécanisme à TCP (excepté de rendre les préséances des demandes de connexion entrantes visibles au processus qui utilisent TCP). Pour permettre une préemption d'accès à un terminal particulier, le logiciel (c'est-à-dire, THP) qui prend en charge l'accès du terminal au TAC peut être configuré de telle sorte qu'il ait toujours un LISTEN pointé sur ce terminal,même si le terminal a une connexion en fonctionnement. Par exemple dans les systèmes ARPANET TENEX, l'usager TELNET permet à un utilisateur d'avoir de nombreuses connexions ouvertes en même temps – l'usager peut commuter entre elles à volonté. Dans la mesure où cela peut être fait sans violer les exigences de sécurité, on pourrait imaginer une multi connexion THP qui laisse toujours un LISTEN en cours pour les demandes de connexion entrantes. Si une connexion est établie, le THP peut décider, sur la base de sa préséance, si il va ou non préempter une connexion existante pour commuter l'utilisateur sur celle à plus forte préséance.

Si l'usager travaille avec plusieurs connexions de préséance différente à la fois, le THP va clore ou interrompre la connexion de plus faible préséance en faveur de la connexion préemptrice de plus forte préséance. Le THP ferait alors un nouveau LISTEN sur l'accès de ce terminal pour le cas où serait tentée une nouvelle connexion de préséance supérieure.

Une des raisons de suggérer ce modèle est que les processus sont les usagers de TCP (en général) et que TCP lui-même ne peut pas faire que les processus soient créés au nom d'une demande de connexion entrante. Il pourrait être réalisé des mises en œuvre dans lesquelles TCP accepte les demandes de connexion entrantes et, sur la base du numéro d'accès de destination, crée les processus de serveur appropriés. En termes de préemption d'accès sur un terminal distant, il semble cependant plus intelligent de laisser s'interposer dans la préemption le processus qui fait l'interface entre le terminal et le système. Si le terminal n'est pas connecté ou est débranché, il n'y a pas lieu de créer un processus pour servir la demande de connexion entrante de haute préséance.

Par exemple, supposons qu'un logiciel FTP soit en fonction entre l'hôte X et l'hôte Y. L'hôte Z décide de faire un transfert FTP en urgence absolue (flash-override) à l'hôte X. Il ouvre une connexion à haute préséance via son TCP et le "SYN" sort sur l'accès FTP pour l'hôte X.

FTP laisse toujours un LISTEN en cours pour préempter les utilisateurs distants à préséance inférieure si il ne peut pas servir un pu plusieurs utilisateurs (mais il garde quand même un LISTEN en cours). De cette façon, le FTP est naturellement dans un état qui permet à la demande de connexion de préséance élevée d'être service de façon appropriée, et le FTP peut prendre l'initiative des éliminations qui sont nécessaires pour tenir compte de la préemption.

En général, cette stratégie permet que les processus qui utilisent TCP s'accommodent le la préemption dans le contexte des applications qu'ils prennent en charge.

Un processus non préemptable est celui qui n'a pas de LISTEN en cours alors qu'il sert un (ou plusieurs) utilisateurs.

Les actions à entreprendre pour traiter la préemption des connexions TCP seront spécifiques des traitements d'application, et cette stratégie d'un second (ou N+1ème) LISTEN est bien adaptée à la situation.

La préemption peut aussi être nécessaire au site qui initie une demande de connexion à haute préséance. Supposons qu'un utilisateur à haute préséance veuille ouvrir une connexion FTP de l'hôte Z à l'hôte X. Mais toutes les ressources FTP et/ou TCP sont saturées lorsque cet utilisateur essaye de démarrer le processus d'utilisateur FTP. Dans ce cas, le système d'exploitation devrait être au courant de la préséance de l'utilisateur et devrait préempter localement les ressources en son nom (par exemple en déconnectant des utilisateurs de préséance inférieure).

Ceci est une question de système, qui n'est pas spécifique de TCP. la mise en œuvre de la préemption à la source pourrait présenter de grosses différences. La préséance peut être associée à un utilisateur ou à un terminal. Le mise en œuvre de TCP peut préempter localement les ressources pour servir les utilisateurs à haute préséance. Le système d'exploitation peut prendre toutes les décisions de préemption.