# NetBIOS over TCP/IP
NetBIOS over TCP/IP (NBT ya da NetBT) eski bilgisayarlardaki NetBIOS API tabanlı uygulamaların modern TCP/IP ağlarında kullanılmalarını sağlayan ağ protokolü.
1980'lerin başında geliştirilen NetBIOS, çok küçük ağları hedef almıştı (yaklaşık bir düzine bilgisayar). Günümüzde bazı uygulamalar hala NetBIOS kullanıyor ve NetBIOS, NBF üzerinden çalıştırıldığında yüzlerce bilgisayardan oluşan ağlarda iyi bir ölçeklendirme yapamıyor. NBT ise doğru bir şekilde yapılandırıldığında, bu uygulamaların devasa TCP/IP ağlarında hiçbir değişikliğe gerek kalmadan çalıştırılmasına olanak sağlıyor.
NBT RFC 1001 ve RFC 1002 olarak tanımlanmıştır.


## Hizmetleri.
NetBIOS üç ayrı hizmet sunmaktadır:
  - İsim kaydı ve çözümlemesi için isim hizmeti (portlar: UDP/137 ve TCP/137)
  - Bağlantısız iletişim için veri birimi dağıtım hizmeti (port: UDP/138)
  - Bağlantı tabanlı iletişim için oturum hizmeti (port: TCP/139)


### İsim hizmeti.
NetBIOS'ta her bir katılımcı en fazla 15 karakterden oluşan benzersiz bir ad kullanarak ağa kaydolmalıdır. Eski ağlarda yeni bir uygulama bir isim almak istediği zaman "Bu ismi kullanan biri var mı?" diyen bir yayın yapmak ve gelecek olan cevabı beklemek zorundaydı. Eğer cevap gelmezse belirtilen ismin kullanılmadığı anlaşılırdı. Ancak, bu bekleme süresi birkaç saniye sürdüğünden isim kaydı uzun süren bir süreç halini alıyordu. Çünkü ismin başka bir uygulama tarafından kullanılmadığını anlamanın tek yolu herhangi bir geri dönüşün olmaması idi.
NBT ise tüm isim kayıtlarını saklayan merkezi bir depo veya bir "İsim Hizmeti "sağlar. Bu nedenle isim almak isteyen bir uygulama isim sunucusu (bilinen bir ağ adresi)na bağlanır ve ismin daha önce kayıtlı olup olmadığını sorar. Eğer isim veritabanında yoksa bu kullanılabilir olduğu anlamına gelir ve sunucu hemen cevap verir. Bu diğerine göre çok daha hızlı bir süreçtir. RFC 1001 ve 1002'ye göre isim hizmetinin adı "NetBIOS Naming Service "veya NBNS'dir. Microsoft WINS NBNS'nin bir uygulamasıdır.
İsim hizmetinin paket formatları DNS ile özdeştir. Temel farklılıklar NetBIOS'ta ek olarak "Düğüm Durumu" sorgusu, dinamik kayıt ve çakışma işaretleme paketleri olmasıdır. Bunlar UDP'de kapsüllenirler. Daha sonra NetBIOS ismini DNS gibi hiyerarşik hale getiren ve isteğe bağlı "Kapsam "bölümü uygulanır ancak bu nadiren kullanılan bir özelliktir.
Ayrıca, bir oturum başlatmak veya veri birimini yayın yapmak yerine belirli bir hosta göndermek için, NBT host'un IP adresini belirlemesi gerekir. Bu işlem bir "İsim Sorgusu" paketi yayını, ve/veya bunu NetBIOS isim sunucusuna göndererek yapılır. Gelen cevap host'un IP adresini içerir.
İlginç bir diğer nokta ise NBNS'nin ilk dinamik peer-to-peer dağıtılmış isim kayıt hizmetlerinden biri olduğudur.


### Veri birimi dağıtım hizmeti.
Veri birimi modu "bağlantısız"; NetBIOS veri birimleri UDP üzerinden gönderilir. Eğer bir veri birimi belirli bir NetBIOS adına gönderiliyorsa "Doğrudan Benzersiz" veya "Doğrudan Grup" paketi ile gönderilir. Eğer ağdaki tüm NetBIOS adlarına gönderiliyorsa bir "Yayın" paketi ile gönderilir.


### Oturum hizmeti.
Oturum modu iki bilgisayarın "haberleşmesi" ve hata tespiti için bir bağlantı kurmasını sağlar.
Oturum paket değiş-tokuşu ile sağlanır. Bilgisayar oturumu başlatmak için karşıdaki bilgisayarın 139 numaralı portundan TCP bağlantısı kurar. Bağlantı sağlanırsa, bilgisayar oturumu kurar ve bağlantı üzerinden oturum kuran uygulamaya ait NetBIOS adı ve oturumun kurulacağı NetBIOS adını, bir "Oturum İsteği" paketi ile beraber gönderir. Oturum kurulan bilgisayar oturum kurulabileceğini belirten bir "Olumlu Oturum Yanıtı" ile veya oturum kurulamayacağını (çünkü o bilgisayar bu adla kurulan oturumları dinlemiyor olabilir veya o adla bir oturum oluşturmak için herhangi bir kaynak mevcut değildir) belirten bir "Olumsuz Oturum Yanıtı" ile cevap verir.
Veri oturum kuruluyken Oturum Mesajı paketleri ile gönderilir.
Tüm oturum hizmeti paketlerinin akış kontrolü ve yeniden iletimi, paketlerin iletileceği veri akışının, bağlantı katmanı paketlerine sığacak kadar küçük IP veri birimlerine bölünmesi TCP tarafından sağlanır.
Oturum TCP bağlantısı kapatılarak sonlanır.


## Güvenlik açıkları.
SMB (Server Message Block) ve NetBIOS over TCP/IP protokolleri ağ hakkında büyük miktarda detaylı ve hayati öneme sahip bilgiyi açığa çıkarabilir. Özellikle NetBIOS saldırgana  ağın haritasını çıkartma imkânı sunabilir. Bu tür senaryolarda her iki servisi de devre dışı bırakmak ağın güvenliğini oldukça yükseltecektir.


## NetBIOS'ta sorun giderme.
### Nbtstat.
Nbtstat NetBIOS isim çözümleme problemlerini çözmeye yardımcı olmak için tasarlanmıştır. Bir ağ düzgün şekilde çalışıyorsa NetBIOS over TCP/IP (NetBT) NetBIOS isimlerini IP adreslerine çevirir. Bunu NetBIOS isim çözümleme için yerel önbellek araması, WINS sunucu sorgusu, yayın, LMHOSTS araması, Host araması ve DNS sunucu sorgusunu da kapsayan birkaç seçenekle yapar.
Nbstat önceden yüklenmiş değerleri bir büyük-küçük harfe duyarlı anahtarlama ile kaldırır ve düzeltir. Nbstat NetBIOS over TCP/IP için bir hata tespit aracıdır. Microsoft Windows'un değişik sürümlerinde mevcuttur.
Yol: C:\Windows\System32\nbstat.exe
Platform: 32-bit
Komut işlemcisi: C:\Windows\System32\cmd.exe, C:\Windows\SysWOW64\cmd.exe değil.
Nbtstat'ta yerel önbellek araması, WINS sunucu sorgusu, yayın, LMHOSTS araması ve Host araması gibi seçeneklerin dahil edildiği değişik komutlar vardır.


#### Sözdizimi.
 nbtstat [-a UzakAd] [-A IPAdresi] [-c] [-n] [-r] [-R] [-RR] [-s] [-S] [Aralık]
Ortak parametreler:
nbtstat -c: NetBIOS isim önbelleği içeriğini, NetBIOS isim tablosunu ve çözümlenmiş IP adreslerini gösterir.
nbtstat -n: Sistemde yerel olarak kayıt edilmiş isimleri gösterir.
nbtstat -r: Yayın tarafından çözümlenen ve bir WINS sunucusunu sorgulayan tüm NetBIOS isimlerinin sayısını görüntüler.
nbtstat -R: Uzak önbellek adı tablosunu temizler ve yeniden yükler.
nbtstat -RR: WIN'lere isim bırakma paketleri gönderir ve "Refresh "başlatır.
nbtstat -s: Geçerli NetBIOS oturumlarını ve durumlarını listeler.
nbtstat -S: Hedef IP adresleri ile birlikte oturum tablosunu listeler.