en	Naming and addressing
fr	Nommage et adressage

en	The network and the transport layers rely on addresses that are encoded as fixed size bit strings. A network layer address uniquely identifies a host. Several transport layer entities can use the service of the same network layer. For example, a reliable transport protocol and a connectionless transport protocol can coexist on the same host. In this case, the network layer multiplexes the segments produced by these two protocols. This multiplexing is usually achieved by placing in the network packet header a field that indicates which transport protocol should process the segment. Given that there are few different transport protocols, this field does not need to be long. The port numbers play a similar role in the transport layer since they enable it to multiplex data from several application processes.
fr	Les couches réseau et transport s'appuient sur des adresses qui sont codées sous forme de chaînes de bits de taille fixe. Une adresse de la couche réseau identifie de manière unique un hôte. Plusieurs entités de la couche transport peuvent utiliser le service de la même couche réseau. Par exemple, un protocole de transport fiable et un protocole de transport sans connexion peuvent coexister sur le même hôte. Dans ce cas, la couche réseau multiplexe les segments produits par ces deux protocoles. Ce multiplexage est généralement réalisé en plaçant dans l'en-tête du paquet réseau un champ qui indique quel protocole de transport doit traiter le segment. Étant donné qu'il existe peu de protocoles de transport différents, ce champ n'a pas besoin d'être long. Les numéros de port jouent un rôle similaire dans la couche transport puisqu'ils lui permettent de multiplexer les données de plusieurs processus d'application.

en	While addresses are natural for the network and transport layer entities, humans prefer to use names when interacting with network services. Names can be encoded as a character string and a mapping services allows applications to map a name into the corresponding address. Using names is friendlier for humans, but it also provides a level of indirection which is very useful in many situations.
fr	Alors que les adresses semblent intuitives pour les entités des couches réseau et transport, les humains préfèrent utiliser des noms lorsqu'ils interagissent avec les services réseau. Les noms peuvent être codés sous forme de chaîne de caractères et un service de mappage permet aux applications de faire correspondre un nom à l'adresse correspondante. L'utilisation des noms est plus conviviale pour les humains, mais elle fournit également un niveau d'indirection qui est très utile dans de nombreuses situations.

en	Because names are at a higher level than addresses, they allow (both in the example of programming above, and on the Internet) to treat addresses as mere technical identifiers, which can change at will. Only the names are stable.
fr	Étant donné que les noms sont à plus haut niveau que les adresses, ils permettent (à la fois dans l'exemple de programmation au-dessus, et sur internet) de traiter les adresses comme de simples identifiants techniques qui peuvent changer à volonté. Seuls les noms restent stables.

en	The first solution that allowed applications to use names was the :term:`hosts.txt` file. This file is similar to the symbol table found in compiled code. It contains the mapping between the name of each Internet host and its associated address [#fhosts]_. It was maintained by SRI International that coordinated the Network Information Center (NIC). When a new host was connected to the network, the system administrator had to register its name and address at the NIC. The NIC updated the :term:`hosts.txt` file on its server. All Internet hosts regularly retrieved the updated :term:`hosts.txt` file from the SRI_ server. This file was stored at a well-known location on each Internet host (see :rfc:`952`) and networked applications could use it to find the address corresponding to a name.
fr	La première solution permettant aux applications d'utiliser des noms était le fichier :term:`hosts.txt`. Ce fichier est similaire à la table des symboles que l'on trouve dans un code compilé. Il contient la correspondance entre le nom de chaque hôte Internet et son adresse associée [#fhosts]_. Il était maintenu par SRI International qui coordonnait le Network Information Center (NIC). Lorsqu'un nouvel hôte était connecté au réseau, l'administrateur système devait enregistrer son nom et son adresse auprès du NIC. Le NIC mettait à jour le fichier :term:`hosts.txt` sur son serveur. Tous les hôtes Internet récupéraient régulièrement le fichier :term:`hosts.txt` mis à jour sur le serveur SRI_. Ce fichier était stocké à un emplacement bien connu sur chaque hôte Internet (voir :rfc:`952`) et les applications en réseau pouvaient l'utiliser pour trouver l'adresse correspondant à un nom.

en	A :term:`hosts.txt` file can be used when there are up to a few hundred hosts on the network. However, it is clearly not suitable for a network containing thousands or millions of hosts. A key issue in a large network is to define a suitable naming scheme. The ARPANet initially used a flat naming space, i.e. each host was assigned a unique name. To limit collisions between names, these names usually contained the name of the institution and a suffix to identify the host inside the institution (a kind of poor man's hierarchical naming scheme). On the ARPANet few institutions had several hosts connected to the network.
fr	Un fichier :term:`hosts.txt` peut être utilisé lorsqu'il y a jusqu'à quelques centaines d'hôtes sur le réseau. Cependant, il n'est clairement pas adapté à un réseau contenant des milliers ou des millions d'hôtes. Un problème clé dans un grand réseau est de définir un schéma de nommage approprié. L'ARPANet utilisait initialement un espace de nommage plat, c'est-à-dire que chaque hôte se voyait attribuer un nom unique. Pour limiter les collisions entre les noms, ces noms contenaient généralement le nom de l'institution et un suffixe permettant d'identifier l'hôte à l'intérieur de l'institution (une sorte de schéma de nommage hiérarchique du pauvre). Sur ARPANet, quelques institutions avaient plusieurs hôtes connectés au réseau.

en	However, the limitations of a flat naming scheme became clear before the end of the ARPANet and :rfc:`819` proposed a hierarchical naming scheme. While :rfc:`819` discussed the possibility of organizing the names as a directed graph, the Internet opted for a tree structure capable of containing all names. In this tree, the top-level domains are those that are directly attached to the root. The first top-level domain was `.arpa` [#fdnstimeline]_. This top-level name was initially added as a suffix to the names of the hosts attached to the ARPANet and listed in the `hosts.txt` file. In 1984, the `.gov`, `.edu`, `.com`, `.mil` and `.org` generic top-level domain names were added. :rfc:`1032` proposed the utilization of the two letter :term:`ISO-3166` country codes as top-level domain names. Since :term:`ISO-3166` defines a two letter code for each country recognized by the United Nations, this allowed all countries to automatically have a top-level domain. These domains include `.be` for Belgium, `.fr` for France, `.us` for the USA, `.ie` for Ireland or `.tv` for Tuvalu, a group of small islands in the Pacific or `.tm` for Turkmenistan. The set of top-level domain-names is managed by the Internet Corporation for Assigned Names and Numbers (:term:`ICANN`). :term:`ICANN` adds generic top-level domains that are not related to a country and the `.cat` top-level domain has been registered for the Catalan language. There are ongoing discussions within :term:`ICANN` to increase the number of top-level domains.
fr	Cependant, les limites d'un schéma de nommage plat sont apparues clairement avant la fin de l'ARPANet et :rfc:`819` a proposé un schéma de nommage hiérarchique. Alors que la norme :rfc:`819` envisageait la possibilité d'organiser les noms sous la forme d'un graphe dirigé, Internet a opté pour une structure arborescente capable de contenir tous les noms. Dans cette arborescence, les domaines de premier niveau sont ceux qui sont directement rattachés à la racine. Le premier domaine de premier niveau était `.arpa` [#fdnstimeline]_. Ce nom de premier niveau a été initialement ajouté comme suffixe aux noms des hôtes attachés à l'ARPANet et listés dans le fichier `hosts.txt`. En 1984, les noms de domaine génériques de premier niveau `.gov`, `.edu`, `.com`, `.mil` et `.org` ont été ajoutés. La norme :rfc:`1032` proposait l'utilisation des codes pays à deux lettres :term:`ISO-3166` comme noms de domaine de premier niveau. Puisque :term:`ISO-3166` définit un code de deux lettres pour chaque pays reconnu par les Nations Unies, cela permettait à tous les pays d'avoir automatiquement un domaine de premier niveau. Ces domaines incluent `.be` pour la Belgique, `.fr` pour la France, `.us` pour les États-Unis, `.ie` pour l'Irlande ou `.tv` pour Tuvalu, un groupe de petites îles du Pacifique ou `.tm` pour le Turkménistan. L'ensemble des noms de domaine de premier niveau est géré par l'Internet Corporation for Assigned Names and Numbers (:term:`ICANN`). :term:`ICANN` ajoute des domaines de premier niveau génériques qui ne sont pas liés à un pays et le domaine de premier niveau `.cat` a été enregistré pour la langue catalane. Des discussions sont en cours au sein de :term:`ICANN` pour augmenter le nombre de domaines de premier niveau.

en	Each top-level domain is managed by an organization that decides how sub-domain names can be registered. Most top-level domain names use a first-come first served system, and allow anyone to register domain names, but there are some exceptions. For example, `.gov` is reserved for the US government, `.int` is reserved for international organizations and names in the `.ca` are mainly `reserved <http://en.wikipedia.org/wiki/.ca>`_ for companies or users that are present in Canada.
fr	Chaque domaine de premier niveau est géré par une organisation qui décide comment les noms de sous-domaines peuvent être enregistrés. La plupart des noms de domaine de premier niveau utilisent un système de premier arrivé, premier servi, et permettent à quiconque d'enregistrer des noms de domaine, mais il existe quelques exceptions. Par exemple, `.gov` est réservé au gouvernement américain, `.int` est réservé aux organisations internationales et les noms dans le `.ca` sont principalement `réservés <http://en.wikipedia.org/wiki/.ca>`_ aux entreprises ou aux utilisateurs qui sont présents au Canada.

en	The syntax of the domain names has been defined more precisely in :rfc:`1035`. This document recommends the following :term:`BNF` for fully qualified domain names (the domain names themselves have a much richer syntax).
fr	La syntaxe des noms de domaine a été définie plus précisément dans :rfc:`1035`. Ce document recommande la :term:`BNF` suivante pour les noms de domaine pleinement qualifiés (les noms de domaine eux-mêmes ont une syntaxe beaucoup plus riche).

en	BNF of the fully qualified host names
fr	BNF du nom d'hôte pleinement qualifié

en	This grammar specifies that a host name is an ordered list of labels separated by the dot (`.`) character. Each label can contain letters, numbers and the hyphen character (`-`) [#fidn]_. Fully qualified domain names are read from left to right. The first label is a hostname or a domain name followed by the hierarchy of domains and ending with the root implicitly at the right. The top-level domain name must be one of the registered TLDs [#ftld]_. For example, in the above figure, `www.computer-networking.info` corresponds to a host named `www` inside the `computer-networking` domain that belongs to the `info` top-level domain.
fr	Cette grammaire spécifie qu'un nom d'hôte est une liste ordonnée d'étiquettes séparées par le caractère point (`.`). Chaque étiquette peut contenir des lettres, des chiffres et le caractère tiret (`-`) [#fidn]_. Les noms de domaine entièrement qualifiés sont lus de gauche à droite. Le premier label est un nom d'hôte ou un nom de domaine, suivi de la hiérarchie des domaines et se terminant par la racine implicitement à droite. Le nom de domaine de premier niveau doit être l'un des TLD enregistrés [#ftld]_. Par exemple, dans la figure ci-dessus, `www.computer-networking.info` correspond à un hôte nommé `www` dans le domaine `computer-networking` qui appartient au domaine de premier niveau `info`.

en	Some visually similar characters have different character codes
fr	Il existe des caractères similaires visuellement qui ont des character codes différents

en	The Domain Name System was created at a time when the Internet was mainly used in North America. The initial design assumed that all domain names would be composed of letters and digits :rfc:`1035`. As Internet usage grew in other parts of the world, it became important to support non-ASCII characters. For this, extensions have been proposed to the Domain Name System :rfc:`3490`. In a nutshell, the solution that is used to support Internationalized Domain Names works as follows. First, it is possible to use most of the Unicode characters to encode domain names and hostnames, with a few exceptions (for example, the dot character cannot be part of a name since it is used as a separator). Once a domain name has been encoded as a series of Unicode characters, it is then converted into a string that contains the ``xn--`` prefix and a sequence of ASCII characters. More details on these algorithms can be found in :rfc:`3490` and :rfc:`3492`.
fr	Le système de noms de domaine a été créé à une époque où Internet était principalement utilisé en Amérique du Nord. La conception initiale supposait que tous les noms de domaine seraient composés de lettres et de chiffres :rfc:`1035`. Lorsque l'utilisation d'Internet s'est développée dans d'autres parties du monde, il est devenu important de prendre en charge les caractères non ASCII. Pour cela, des extensions ont été proposées au système de noms de domaine :rfc:`3490`. En résumé, la solution utilisée pour prendre en charge les noms de domaine internationalisés fonctionne comme suit. Tout d'abord, il est possible d'utiliser la plupart des caractères Unicode pour coder les noms de domaine et les noms d'hôte, à quelques exceptions près (par exemple, le caractère point ne peut pas faire partie d'un nom puisqu'il est utilisé comme séparateur). Une fois qu'un nom de domaine a été encodé comme une série de caractères Unicode, il est ensuite converti en une chaîne de caractères qui contient le préfixe ``xn--`` et une séquence de caractères ASCII. Vous trouverez plus de détails sur ces algorithmes dans :rfc:`3490` et :rfc:`3492`.

en	This hierarchical naming scheme is a key component of the Domain Name System (DNS). The DNS is a distributed database that contains mappings between fully qualified domain names and addresses. The DNS uses the client-server model. The clients are hosts or applications that need to retrieve the mapping for a given name. Each :term:`nameserver` stores part of the distributed database and answers the queries sent by clients. There is at least one :term:`nameserver` that is responsible for each domain. In the figure below, domains are represented by circles and there are three hosts inside domain `dom` (`h1`, `h2` and `h3`) and three hosts inside domain `a.sdom1.dom`. As shown in the figure below, a sub-domain may contain both host names and sub-domains.
fr	Ce système de dénomination hiérarchique est un élément clé du système de noms de domaine (DNS). Le DNS est une base de données distribuée qui contient les correspondances entre les noms de domaine entièrement qualifiés et les adresses. Le DNS utilise le modèle client-serveur. Les clients sont des hôtes ou des applications qui doivent récupérer la correspondance pour un nom donné. Chaque :term:`nameserver` stocke une partie de la base de données distribuée et répond aux requêtes envoyées par les clients. Il y a au moins un :term:`nameserver` qui est responsable de chaque domaine. Dans la figure ci-dessous, les domaines sont représentés par des cercles et il y a trois hôtes dans le domaine `dom` (`h1`, `h2` et `h3`) et trois hôtes dans le domaine `a.sdom1.dom`. Comme le montre la figure ci-dessous, un sous-domaine peut contenir à la fois des noms d'hôtes et des sous-domaines.

en	A :term:`nameserver` that is responsible for domain `dom` can directly answer the following queries :
fr	Un :term:`nameserver` qui est responsable du domaine `dom` peut directement répondre aux requêtes suivantes :

en	the address of any host residing directly inside domain `dom` (e.g. `h2.dom` in the figure above)
fr	l'adresse de tout hôte résidant directement dans le domaine `dom` (par exemple `h2.dom` dans la figure ci-dessus)

en	the nameserver(s) that are responsible for any direct sub-domain of domain `dom` (i.e. `sdom1.dom` and `sdom2.dom` in the figure above, but not `z.sdom1.dom`)
fr	le ou les serveurs de noms qui sont responsables de tout sous-domaine direct du domaine `dom` (c'est-à-dire `sdom1.dom` et `sdom2.dom` dans la figure ci-dessus, mais pas `z.sdom1.dom`)

en	To retrieve the mapping for host `h2.dom`, a client sends its query to the name server that is responsible for domain `.dom`. The name server directly answers the query. To retrieve a mapping for `h3.a.sdom1.dom` a DNS client first sends a query to the name server that is responsible for the `.dom` domain. This nameserver returns the nameserver that is responsible for the `sdom1.dom` domain. This nameserver can now be contacted to obtain the nameserver that is responsible for the `a.sdom1.dom` domain. This nameserver can be contacted to retrieve the mapping for the `h3.a.sdom1.dom` name. Thanks to this structure, it is possible for a DNS client to obtain the mapping of any host inside the `.dom` domain or any of its subdomains. To ensure that any DNS client will be able to resolve any fully qualified domain name, there are special nameservers that are responsible for the root of the domain name hierarchy. These nameservers are called :term:`root nameserver`.
fr	Pour récupérer le mappage de l'hôte `h2.dom`, un client envoie sa requête au nameserver qui est responsable du domaine `.dom`. Le nameserver répond directement à la requête. Pour récupérer un mappage pour `h3.a.sdom1.dom`, un client DNS envoie d'abord une requête au nameserver qui est responsable du domaine `.dom`. Ce nameserver renvoie le nameserver responsable du domaine `sdom1.dom`. Ce nameserver peut maintenant être contacté pour obtenir le nameserver responsable du domaine `a.sdom1.dom`. Ce nameserver peut être contacté pour récupérer le mapping du nom `h3.a.sdom1.dom`. Grâce à cette structure, il est possible pour un client DNS d'obtenir le mappage de n'importe quel hôte à l'intérieur du domaine `.dom` ou de l'un de ses sous-domaines. Pour garantir que tout client DNS sera en mesure de résoudre tout nom de domaine pleinement qualifié, il existe des nameservers spéciaux qui sont responsables de la racine de la hiérarchie des noms de domaine. Ces nameservers sont appelés :term:`root nameserver`.

en	Each root nameserver maintains the list [#froot]_ of all the nameservers that are responsible for each of the top-level domain names and their addresses [#frootv6]_. All root nameservers cooperate and provide the same answers. By querying any of the root nameservers, a DNS client can obtain the nameserver that is responsible for any top-level-domain name. From this nameserver, it is possible to resolve any domain name.
fr	Chaque root nameserver maintient la liste [#froot]_ de tous les nameservers qui sont responsables de chacun des noms de domaine de premier niveau et de leurs adresses [#frootv6]_. Tous les root nameservers coopèrent et fournissent les mêmes réponses. En interrogeant l'un des root nameserver, un client DNS peut obtenir le nameserver responsable de n'importe quel nom de domaine de premier niveau. À partir de ce nameserver, il est possible de résoudre n'importe quel nom de domaine.

en	To be able to contact the root nameservers, each DNS client must know their addresses. This implies, that DNS clients must maintain an up-to-date list of the addresses of the root nameservers. Without this list, it is impossible to contact the root nameservers. Forcing all Internet hosts to maintain the most recent version of this list would be difficult from an operational point of view. To solve this problem, the designers of the DNS introduced a special type of DNS server : the DNS resolvers. A :term:`resolver` is a server that provides the name resolution service for a set of clients. A network usually contains a few resolvers. Each host in these networks is configured to send all its DNS queries via one of its local resolvers. These queries are called `recursive queries` as the :term:`resolver` must recursively send requests through the hierarchy of nameservers to obtain the `answer`.
fr	Pour pouvoir contacter les root nameserver, chaque client DNS doit connaître leurs adresses. Cela implique que les clients DNS doivent maintenir une liste à jour des adresses des root nameserver. Sans cette liste, il est impossible de contacter les root nameserver. Forcer tous les hôtes Internet à maintenir la version la plus récente de cette liste serait difficile d'un point de vue opérationnel. Pour résoudre ce problème, les concepteurs du DNS ont introduit un type spécial de serveur DNS : les résolveurs DNS. Un :term:`résolveur` est un serveur qui fournit le service de résolution de noms pour un ensemble de clients. Un réseau contient généralement quelques résolveurs. Chaque hôte de ces réseaux est configuré pour envoyer toutes ses requêtes DNS via l'un de ses résolveurs locaux. Ces requêtes sont appelées "requêtes récursives" car le :term:`resolver` doit envoyer des requêtes de manière récursive à travers la hiérarchie des nameservers pour obtenir la "réponse".

en	DNS resolvers have several advantages over letting each Internet host query directly nameservers. Firstly, regular Internet hosts do not need to maintain the up-to-date list of the addresses of the root servers. Secondly, regular Internet hosts do not need to send queries to nameservers all over the Internet. Furthermore, as a DNS resolver serves a large number of hosts, it can cache the received answers. This allows the resolver to quickly return answers for popular DNS queries and reduces the load on all DNS servers [JSBM2002]_.
fr	Les résolveurs DNS présentent plusieurs avantages par rapport au fait de laisser chaque hôte Internet interroger directement les nameservers. Premièrement, les hôtes Internet ordinaires n'ont pas besoin de maintenir à jour la liste des adresses des root servers. Deuxièmement, les hôtes Internet ordinaires n'ont pas besoin d'envoyer des requêtes aux nameservers sur tout l'Internet. Enfin, comme un résolveur DNS dessert un grand nombre d'hôtes, il peut mettre en cache les réponses reçues. Cela permet au résolveur de renvoyer rapidement les réponses aux requêtes DNS populaires et de réduire la charge sur tous les serveurs DNS [JSBM2002]_.

en	Benefits of names
fr	Avantages d'utiliser des noms

en	if the server process moves to another physical server, all clients must be informed about the new server address
fr	si le processus serveur est déplacé vers un autre serveur physique, tous les clients doivent être informés de la nouvelle adresse du serveur

en	if there are many concurrent clients, the load of the server will increase without any possibility of adding another server without changing the server addresses used by the clients
fr	s'il y a beaucoup de clients simultanés, la charge du serveur augmentera sans qu'il soit possible d'ajouter un autre serveur sans changer les adresses de serveur utilisées par les clients

en	Footnotes
fr	Notes de pied de page

en	The :term:`hosts.txt` file is not maintained anymore. A historical snapshot from April 1984 is available from http://ftp.univie.ac.at/netinfo/netinfo/hosts.txt
fr	Le fichier :term:`hosts.txt` n'est plus maintenu. Une snapshot historique d'avril 1984 est disponible à l'adresse http://ftp.univie.ac.at/netinfo/netinfo/hosts.txt

en	See http://www.donelan.com/dnstimeline.html for a time line of DNS related developments.
fr	Voir http://www.donelan.com/dnstimeline.html pour une chronologie des développements liés au DNS.

en	This specification evolved later to support domain names written by using other character sets than us-ASCII :rfc:`5890`. This extension is important to support languages other than English, but a detailed discussion is outside the scope of this document.
fr	Cette spécification a évolué par la suite pour prendre en charge les noms de domaine écrits en utilisant d'autres jeux de caractères que us-ASCII :rfc:`5890`. Cette extension est importante pour la prise en charge de langues autres que l'anglais, mais une discussion détaillée sort du cadre de ce document.

en	The official list of top-level domain names is maintained by :term:`IANA` at http://data.iana.org/TLD/tlds-alpha-by-domain.txt Additional information about these domains may be found at http://en.wikipedia.org/wiki/List_of_Internet_top-level_domains
fr	La liste officielle des noms de domaine de premier niveau est tenue à jour par :term:`IANA` à l'adresse http://data.iana.org/TLD/tlds-alpha-by-domain.txt. Des informations supplémentaires sur ces domaines sont disponibles à l'adresse http://en.wikipedia.org/wiki/List_of_Internet_top-level_domains

en	A copy of the information maintained by each root nameserver is available at http://www.internic.net/zones/root.zone
fr	Une copie des informations maintenues par chaque serveur de noms racine est disponible à l'adresse http://www.internic.net/zones/root.zone

en	It is interesting to note that to prevent any homograph attack, Google Inc. registered the `g00gle.com` domain name but does not apparently use it.
fr	Il est intéressant de noter que pour prévenir toute attaque par homographe, Google Inc. a enregistré le nom de domaine `g00gle.com` mais ne l'utilise apparemment pas.