NetBIOS
NetBIOS (NETwork Basic Input Output System) est une architecture réseau codéveloppée par IBM et Sytek (en) au début des années 1980. NetBIOS est utilisé principalement par Microsoft. Ce n'est pas un protocole réseau, mais un système de nommage et une interface logicielle qui permet d’établir des sessions entre différents ordinateurs d’un réseau.
NetBIOS a connu plusieurs implémentations :
- NBF (NetBIOS Frames Protocol, connu à tort sous le nom NetBEUI)
- NBX (NetBIOS over IPX/SPX)
- NBT (NetBIOS over TCP/IP)
Les deux premières ont disparu de nos jours.
Les noms NetBIOS sont appelés à disparaître en faveur des noms DNS. De plus, le partage de fichiers avec le protocole SMB peut à présent se passer de NetBIOS et fonctionner directement par-dessus TCP/IP.
Historique
NetBIOS a été développé en 1983 par Sytek Inc. comme interface de programmation pour les communications entre ordinateurs IBM PC sur un réseau local.
IBM a écrit en 1985 un émulateur NetBIOS nommé NetBEUI (Modèle:Lang). À cette occasion, IBM a étendu l'interface de programmation et défini le protocole NBF. NBF pouvait fonctionner par-dessus la couche IEEE Logical Link Control, donc à la fois par-dessus Token Ring d'IBM et par-dessus Ethernet.
En 1986, Novell a publié Advanced Novell NetWare 2.0 qui comportait son propre émulateur NetBIOS et pouvait fonctionner par-dessus IPX/SPX.
En 1987, une méthode pour encapsuler NetBIOS dans des paquets TCP et UDP, Modèle:Lang a été publiée. Elle a été décrite dans les Modèle:RFC et Modèle:RFC.
NetBIOS over TCP/IP
NetBIOS over TCP/IP utilise les ports :
- 135 Service de localisation utilisé par les appels de procédure à distance.
- 137 netbios-ns - Modèle:Lang
- 138 netbios-dgm - Modèle:Lang
- 139 netbios-ssn - Modèle:Lang
Modèle:Lang (port UDP 137)
Ce service sert à associer un nom d’ordinateur à une adresse IP.
Ce nom est limité à Modèle:Nombre, plus un caractère renseignant sur le type de machine : par exemple, avec l’interface graphique, on peut avoir un contrôleur de domaine et une machine cliente qui portent le même nom sur Modèle:Nombre ; en interne, le seizième caractère est attribué automatiquement et permet de différencier les deux.
Modèle:Lang (port UDP 138)
Description
Ce service permet d’échanger des messages en mode non connecté.
En-tête d’un paquet (en octets)
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 ...... 49 | 50 ...... 84 |
Type de message | Modèle:Lang | ID du datagramme | IP source | Port source | Longueur | Offset du paquet | Nom de l’émetteur | Nom du destinataire |
Modèle:Lang (port TCP 139)
Ce service permet d’échanger des messages en mode connecté jusqu’à Modèle:Nombre.
Quelques commandes utiles
nbtstat -a nomnetbios
: affiche la table correspondant à ce nom netbios
nbtstat -A 192.0.2.123
: affiche la table correspondant à cette adresse IP
nbtstat -n
: affiche la table locale
nbtstat -r
: affiche la table des noms résolus par le WINS et Modèle:Lang
nslookup -S nomnetbios
: idem sous UNIX