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
NetBIOS menyediakan layanan input/output untuk mendukung aplikasi klien/server dalam sebuah jaringan. Dari pandangan arsitektural,
NetBIOS mendefinisikan dua hal berikut ini:
Mekanisme Interprocess Communication (IPC) atau Application Programming Interface (API) yang mengizinkan aplikasi-aplikasi yang mendukung
NetBIOS agar dapat berkomunikasi secara jarak jauh melalui jaringan dan melakukan permintaan terhadap layanan dari tingkat yang lebih bawah pada tumpukan protokol (protocol stack).
Sebuah protokol yang beroperasi pada lapisan transport dan lapisan sesi dalam model referensi tujuh lapis OSI yang mengizinkan fungsi-fungsi seperti pembuatan sesi dan penghancurannya, dan juga registrasi nama
NetBIOS, pembaruan nama
NetBIOS, dan resolusi nama
NetBIOS.
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.
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.
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
=
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
=
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
=
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.