NetBIOS – Co je to, Porty


NetBIOS je softwarový interface (API) pro přístup k síťové komunikaci na úrovni relační (session) vrstvy.

NetBIOS vznikl v roce 1984 ve firmě IBM. Používá se dodnes mj. v produktech PC-Net, IBM LAN Server. Později jej převzal MS do svých sítí MS-Net (LAN Manager, Windows95 a NT peer-to-peer). NetBIOS najdeme i u jiných výrobců síťových OS (Novell, některé UNIXy).

Funkce NetBIOS jsou nezávislé na nižších vrstvách (a tedy formátu paketů). Pro transport může být využito protokolu NetBEUI, TCP/IP nebo IPX/SPX. NetBIOS počítá jak se spojovaným, tak s nespojovaným provozem a umožňuje vysílání datagramů typu unicast, multicast i broadcast.

netbios

NetBIOS nepracuje vůbec s adresami uzlů ze síťové vrstvy, namísto toho využívá logických jmen (řetězec až 16 znaků), které si mohou jednotlivé nódy libovolně volit a registrovat. Na jednom adaptéru smí být zaregistrováno nejvýše 254 logických jmen:

  • stanice, která si hodlá přiřadit určité jméno, informuje broadcastem ostatní stanice sítě
  • pokud tyto nepošlou v určeném časovém limitu negativní odpověď (požadované jméno již vlastní), může stanice prohlásit logické jméno za své

Mimo jmen jednoznačných, které může být v daném okamžiku přiřazeno pouze jediné stanici, pracuje NetBIOS také se jmény skupinovými. Skupinové jméno může být přiřazeno více stanicím a používá se pro vysílání typu multicast.
Z principu registrace jmen, který zahrnuje všesměrové vysílání, je zřejmé, že:

  • ve větších sítích LAN mohou nastat problémy se zahlcováním sítě broadcasty
  • NetBIOS není možné bez přidaných řešení použít v sítích WAN z důvodu filtrování broadcastů routery

Proto bylo v RFC 1001 a RFC 1002 definován provoz NetBIOS přes TCP/IP který používá point-to-point komunikaci se jmenným serverem (WINS nebo Dynamic DNS). Jména se registrují a vyhledávají u jmenného serveru a ten i brání jejich duplicitě.

Jednotlivé nódy byly dle funkčnosti rozděleny do čtyř kategorií:

  • p-node : používá point-to-point komunikaci se jmenným serverem
  • b-node : používá broadcast komunikaci
  • m-node : nejprve zkouší b-node, když nenajde pak p-node
  • h-node : nejprve zkouší p-node, pokud nenajde tak b-node

Adresace, tabulka jmen

Jelikož komunikace pomocí NetBIOS probíhá na relační vrstvě, nepracuje se zde vůbec s adresami uzlů ze síťové vrstvy, které by byly (alespoň v rámci jednoho protokolu) jednoznačné. Namísto toho se využívá logických jmen v podobě řetězců (až 16 znaků), které si mohou stanice libovolně volit a registrovat. Princip spočívá v tom, že stanice, která si hodlá přiřadit určité jméno, informuje o tomto záměru (prostřednictvím rozhraní NetBIOS a s využitím všesměrového vysílání) ostatní stanice sítě. Jestliže tyto nic nenamítají (tj. nepošlou v určeném časovém limitu negativní odpověď), např. proto, že požadované jméno již vlastní, může stanice prohlásit logické jméno za své. Takto si může jedna stanice registrovat několik jmen (počet dán kapacitou vnitřní tabulky jmen). NetBIOS definuje, že na jednom adaptéru smí být zaregistrováno nejvýše logických 254 jmen.

Pokud chce stanice vyslat datagram (nebo navázat relaci) na zadané jméno, postará se ovladač NetBIOS o zjištění konkrétní adresy stanice, jež má toto jméno registrováno, tak, že rozešle broadcast datagram s dotazem. Na tento dotaz odpoví pouze stanice, jež toto jméno vlastní a to datagramem obsahujícím její skutečnou adresu (jejíž formát je pochopitelně závislý na použitém transportním protokolu). Jestliže bylo dotazováno jméno skupinové, příjde odpovědí více.

Mimo jmen jednoznačných, které může být v daném okamžiku přiřazeno jediné stanici, pracuje NetBIOS také se jmény skupinovými (group names). Skupinové jméno může být přiřazeno více stanicím (tj. být současně obsaženo ve více lokálních tabulkách registrovaných jmen) a používá se pro vysílání typu multicast.

Z hlediska implementačního je při registraci každému jménu přiděleno číslo (index do (lokální) tabulky jmen), kterým se na toto jméno odkazujeme při volání ostatních služeb, jež vyžadují jméno jako parametr. Jméno s indexem 1 vždy odpovídá fyzické adrese adaptéru.

Z principu registrace jmen, který zahrnuje všesměrové vysílání, je zřejmé, že NetBIOS nebude možné (alespoň bez zvláštních řešení) použít v sítích WAN.