Principe de robustesse
L'Internet Engineering Task Force maintient une série numérotée de documents du Request For Comments (RFCs) qui définissent les protocoles qui dirigent l'Internet . Dans le RFC du 1981 qui définit le Transmission Control Protocol , RFC 793, américain Jon Postel de l'informaticien de du a énoncé : les réalisations de TCP de
suivront un principe général de la robustesse : être conservateur dans ce que vous faites, soit libéral dans ce que vous acceptez de d'autres.
La deuxième clause a été généralisée dans le principe de robustesse de (connu autrement en tant que loi de Postel de ) :
conservateur de
Be dans ce que vous faites ; être libéral dans ce que vous acceptez d'others.
Le principe suggère que les lotisseurs du logiciel d'Internet de écrivent soigneusement le logiciel qui adhère étroitement à RFCs existant mais acceptent et analysent l'entrée des clients qui ne pourraient pas être compatibles aux ces RFCs.
Le principe de Postel est souvent mal interprété en tant que messages de vérification discouraging pour la validité. Par exemple, un RFC suivant, RFC 3117, suggère que le principe de Postel soit suivi seulement lâchement, de peur que des erreurs ou les réalisations moins-que-souhaitables devraient être propagées généralement :
Counter-intuitively, principe de la robustesse de Postel (" ; être conservateur dans ce que vous envoyez, libéral dans ce qui vous l'accept" ;) mène souvent aux problèmes de déploiement. Pourquoi ? Quand une nouvelle exécution est au commencement mise en place, il est probable qu'elle rencontre seulement un sous-ensemble de réalisations existantes. Si ces réalisations suivent le principe de robustesse, alors les erreurs dans la nouvelle exécution iront probablement non détectées. La nouvelle exécution en voit alors, mais le déploiement non répandu. Répétitions de ce processus pour plusieurs nouvelles réalisations. Par la suite, les réalisations non-tout à fait-correctes fonctionnent dans d'autres réalisations qui sont moins libérales que l'ensemble initial de réalisations. Le lecteur devrait pouvoir figurer dehors ce qui se produit après. En conséquence, la cohérence explicite de contrôle dedans un protocole sont très utile, même si ils imposent des frais généraux d'exécution. added
Cependant, un arrangement plus profond du principe de Postel encourage de tels contrôles d'uniformité ou de validité. Tandis que des erreurs détectées par de tels contrôles devraient en effet être notées (et être peut-être même montrées à l'utilisateur), elles ne devraient pas avoir comme conséquence le rejet des messages inadmissibles à moins que nécessaire. Voir le RFC 1122 :
At chaque couche des protocoles, il y a une règle générale dont l'application peut mener à d'énormes avantages dans la robustesse et l'interopérabilité :libéral de
Be dans ce que vous acceptez, et conservateur dans ce qui vous send
le
Software devrait être écrit pour traiter chaque erreur imaginable, n'importe comment peu probable ; tôt ou tard un paquet entrera avec cette combinaison particulière des erreurs et des attributs, et à moins que le logiciel soit préparé, le chaos peut s'ensuivre. Généralement il est le meilleur de supposer que le réseau est rempli d'entités malveillantes qui introduiront les paquets conçus pour avoir le plus mauvais possible effet. Cette prétention mènera à la conception protectrice appropriée, bien que les la plupart des problèmes graves dans l'Internet aient été provoqués par les mécanismes unenvisaged déclenchés par des événements de bas-probabilité ; la seule méchanceté humaine n'aurait jamais pris si à détourné un cours !
le
Adaptability à changer doit être conçu dans tous les niveaux de logiciel de centre serveur d'Internet. Comme exemple simple, considérer des spécifications de protocole qui contiennent une énumération des valeurs pour un champ d'en-tête particulier -- par exemple, un type champ, un numéro d'accès, ou un code d'erreur ; on doit assumer que cette énumération est inachevée. Ainsi, si des spécifications de protocole définissent quatre codes d'erreur possibles, le logiciel ne doit pas se casser quand un cinquième code apparaît. un code non défini pourrait être noté (voir ci-dessous), mais il ne doit pas causer un échec.
pièce de The la deuxième du principe est presque comme importante : le logiciel sur d'autres centres serveurs peut contenir les insuffisances qui le rendent imprudent d'exploiter les dispositifs légaux mais obscurs de protocole. Il est imprudent de vaguer loin de l'évident et simple, de peur que les effets impropices résultent ailleurs. Un corollaire de ceci est " ; observer dehors pour le hosts" de conduite ; ; le logiciel de centre serveur devrait être préparé, survivre pas simplement à d'autres hôtes de conduite, mais coopérer également à limiter la quantité de rupture que de tels centres serveurs peuvent causer à la communication partagée facility. s'est ajoutée .
| Random links: | Clyde Griffiths | Dakhni | Analyse morphologique | Volleyball aux 2004 Jeux Olympiques d'été - volleyball de la plage des femmes | Powhatan en chef | Principio_de_la_robustez |