NetBIOS (singkatan dari istilah dalam bahasa Inggris: Network Basic Input/Output System) adalah sebuah spesifikasi yang dibuat oleh International Business Machine (sebenarnya dibuat oleh Sytek Inc. untuk IBM) dan Microsoft yang mengizinkan aplikasi-aplikasi terdistribusi agar dapat saling mengakses layanan jaringan, tanpa memperhatikan protokol transport yang digunakan. Versi NetBIOS paling baru adalah NetBIOS versi 3. Implementasi versi awal dari NetBIOS hanya mengizinkan jumlah node yang terhubung hingga 72 node saja. Versi-versi selanjutnya memperluas jumlah node yang didukung hingga ratusan node dalam sebuah jaringan. NetBIOS yang berjalan di atas protokol TCP/IP (NetBIOS over TCP/IP) didefinisikan dalam RFC 1001, RFC 1002, dan RFC 1088.

Selayang pandang

sunting

NetBIOS menyediakan layanan input/output untuk mendukung aplikasi klien/server dalam sebuah jaringan. Dari pandangan arsitektural, NetBIOS mendefinisikan dua hal berikut ini:

NetBIOS memiliki overhead yang lebih besar dibandingkan mekanisme IPC lainnya, karena NetBIOS dapat berubah bentuk tergantung dari protokol jaringan di mana ia berjalan. Tabel berikut ini menyebutkan beberapa protokol yang umum dan bentuk protokol saat dikombinasikan dengan NetBIOS.

Nama protokol jaringan Nama protokol jaringan saat dikombinasikan dengan NetBIOS
NetBEUI NetBEUI Frame Protocol (NBF)
NWLink IPX/SPX-Compatible Transport NWLink NetBIOS
TCP/IP NetBIOS over TCP/IP (NBT)

NetBIOS merupakan bagian dari platform jaringan berbasis Windows NT. Setiap mesin Windows NT membutuhkan sebuah nama NetBIOS yang unik agar dapat berkomunikasi dengan mesin lainnya yang terhubung ke jaringan.

NetBIOS telah mulai ditinggalkan dalam Windows 2000 dan seterusnya karena sistem-sistem operasi tersebut menggunakan standar industri DNS, yang digunakan untuk menamai host dan melakukan resolusi nama. Windows NT memang mendukung DNS, tetapi bukan merupakan sebuah kewajiban. Meskipun demikian, dukungan terhadap NetBIOS masih diteruskan agar dapat mendukung host-host yang masih menggunakan sistem operasi lama, semacam Windows 95/98/Me.

Meski dukungan terhadap NetBIOS diteruskan dalam sistem operasi Windows NT 5.x, ada beberapa hal yang dapat menjadikan sistem-sistem lama tidak dapat menggunakan NetBIOS sebagai protokol untuk menghubungi sistem-sistem tersebut, yakni:

  • Windows NT 5.x mendukung penggunaan nama host hingga 64 karakter, sementara NetBIOS hanya mendukung penggunaan nama NetBIOS hingga 15 karakter saja. Sistem operasi lama akan memotong 64 karakter nama host tersebut ke dalam 15 karakter, yang kemungkinan akan menyebabkan tabrakan/kolisi.
  • Penamaan DNS dapat menggunakan karakter dash (-) sebagai nama host/domain, tetapi tidak boleh menggunakan karakter underscore (_) untuk merepresentasikan spasi sementara Nama NetBIOS menggunakan karakter underscore untuk merepresentasikan spasi. DNS dalam Windows NT 5.x mendukung penggunaan karakter Unicode, sehingga sistem-sistem lama yang belum mendukungnya agak susah untuk mengakses host Windows NT 5.x.

Layanan NetBIOS (NetBIOS Services)

sunting

NetBIOS menawarkan tiga buah layanan NetBIOS, yakni sebagai berikut:

  • NetBIOS Name service: merupakan layanan yang digunakan untuk melakukan registrasi dan resolusi nama NetBIOS.
  • NetBIOS Session service: merupakan layanan yang digunakan untuk membuat sesi koneksi yang berbasis connection-oriented.
  • NetBIOS Datagram distribution service: merupakan layanan yang digunakan untuk menyampaikan datagram secara connectionless.

NetBIOS Name Service

sunting

Agar dapat memulai sesi koneksi NetBIOS atau menyampaikan datagram NetBIOS, sebuah aplikasi harus melakukan registrasi nama NetBIOS miliknya dengan menggunakan layanan NetBIOS Name Service. Panjang sebuah nama NetBIOS hanyalah 16 byte. Umumnya, byte ke-16 digunakan untuk mendeskripsikan "jenis", dengan teknik yang serupa dengan nomor port dalam TCP/IP. Dalam NetBIOS over TCP/IP, layanan NetBIOS Name Service beroperasi dalam port UDP 137. Port TCP 137 juga dapat digunakan, tetapi jarang.

Perintah-perintah yang dimiliki oleh layanan ini antara lain:

  • Add Name: malakukan registrasi terhadap sebuah nama NetBIOS.
  • Add Group Name: melakukan registrasi terhadap sebuah nama group NetBIOS.
  • Delete Name: melakukan penggagalan registrasi nama terhadap sebuah nama NetBIOS atau nama group NetBIOS yang telah teregistrasi terlebih dahulu.
  • Find Name: mencari sebuah nama NetBIOS di dalam jaringan.

NetBIOS Session Service

sunting

Layanan ini dapat digunakan oleh dua buah node untuk membuat sebuah koneksi dan dapat melakukan "percakapan", sehingga mengizinkan pesan-pesan yang besar untuk ditangani dan menyediakan fungsi pendeteksian kesalahan dan pemulihannya. Dalam protokol NetBIOS over TCP/IP, layanan ini berjalan di dalam port TCP 139.

Perintah-perintah yang terdapat di dalam layanan ini antara lain:

  • Call: membuka sebuah sesi koneksi ke sebuah nama NetBIOS yang terdapat di dalam komputer di dalam jaringan.
  • Listen: mendengarkan jaringan untuk mencari apakah terdapat percobaan untuk membuka sebuah sesi koneksi terhadap sebuah nama NetBIOS.
  • Hang Up: menutup sebuah sesi koneksi.
  • Send: mengirimkan sebuah paket ke komputer yang diajak "bercakap-cakap" dalam sesi koneksi yang bersangkutan.
  • Send No Ack: mengirimkan sebuah paket ke komputer yang diajak bercakap-cakap, seperti halnya perintah Send dengan satu perbedaan yakni perintah ini tidak membutuhkan acknowledgment.
  • Receive: menunggu kedatangan sebuah paket yang dikirimkan oleh komputer yang mengirimkan paket dengan menggunakan perintah Send atau Send No Ack.

NetBIOS Datagram Distribution Service

sunting

Layanan NetBIOS Datagram Distribution Service merupakan sebuah mekanisme penyampaian data secara connectionless. Mengingat setiap pesan akan dikirimkan secara independen, maka pesan-pesan tersebut haruslah berukuran lebih kecil. Layanan ini juga tidak menawarkan layanan pendeteksian kesalahan dan pemulihannya, sehingga merupakan tanggung jawab aplikasi untuk melakukannya. Dalam NetBIOS over TCP/IP, layanan ini berjalan di atas port UDP 138.

Layanan ini memiliki beberapa perintah, yakni sebagai berikut:

  • Send Datagram: mengirimkan sebuah datagram ke sebuah nama NetBIOS yang terdapat pada komputer jarak jauh.
  • Send Broadcast Datagram: mengirimkan datagram ke semua nama NetBIOS yang terdapat di dalam jaringan yang sama.
  • Receive Datagram: menunggu kedatangan sebuah paket yang dikirimkan dengan menggunakan perintah Send Datagram dari komputer lain.
  • Receive Broadcast Datagram: menunggu kedatangan sebuah paket yang dikirimkan dengan menggunakan perintah Send Broadcast Datagram dari komputer lain.