NetBIOS是網絡基本的輸入/輸出系統,是一個應用於程序接口,用於數據源與目的地之間的數據交換。即能夠訪問支持計算機應用程序和設備通信時要用到的各種服務,具有明確而簡單的通信協議,必須用特殊的命令序列來調用NetBIOS服務。
首先我們來了解一下NetBIOS的基本知識。
一.NetBIOS 的基礎
1。在網絡層次中,NetBIOS是處於表示層和會話層之間,是參考模型的高層。因此其接口程序的應用在很大程度上並且從本質上與較低層次的各種活動隔離開。它支持IEEE802.2 的邏輯鏈路控制(LLC)協議。現在NetBIOS正迅速地成為不同操作系統環境下普遍使用的數據通信平台,這些操作系統包括PC DOS,OS/2,UNIX 和Windows。
2。NetBIOS的出現是在1984年8月IBM PC的網絡適配器中,是由Sytek公司為IBM設計的。它采用寬帶同軸電纜,提供每秒2MB的數據傳輸突發率,使用了流行的工業標准CSMA/CD(多訪問載波偵聽/載波檢測)作為訪問協議,這種協議首次出現在IEEE 802.3 以太網標准中。
3。NetBIOS的應用服務:NetBIOS提供四種應用服務,它們分別為:命名支持,數據報支持,會話支持和通用命令。
(1).命名支持:每個NetBIOS 網絡積適配器在網絡中都使用一個或多個網絡名來標識自己,以區別於其他的網絡適配器。網絡名由16個字符組成。
(2).數據報支持:當一個適配器在網絡中激活後,在計算機上的應用程序就可以用NetBIOS與駐留在同一個或不同計算機上的其他應用通信。它們之間的應用通信可以使用數據報來進行。
數據報是一條短信息,它的長度隨NetBIOS實現方法的不同而不同,不能保證數據的正確傳輸。也不接收來自接收方的指示,如:在存在,未加電或不接收數據報,這樣 在網絡發生故障時,發出的數據報可能不會被任何計算機接收到。
數據報有兩種類:廣播型和定向型。廣播型是完全不區分接收者的數據報,可以使用NetBIOS的Send Broadcast Datagram命令來發送數據,接收方可調用NetBIOS Receive Broadcaset Datagram命令來接收數據。定向型是指定數據報接收者的組名,任何一方都可以調用NetBIOS Send Datagram命令發送數據,接收方可以調用NetBIOS Receive Datagram命令來接收發送過來的數據。
(3).會話支持:在NetBIOS應用通信中的第二種形式是會話通信了,它支持可以在兩個應用程序之間創建一個可靠的雙向數據通信連接,並能保持較長時間。這種連接有時也稱為虛電路。相互通信的應用可以駐留在同一台計算機上(本地會話)或駐留在不同的計算機上(遠程會話)。
會話通信比數據報通信的優點有:對於每個被發送的信息,發送前能得知對方接收准備情況,而數據報通信只提供信息的發送狀態。
可以使用NetBIOS的Listen命令來創建會話,Listen命令引用NetBIOS命令表中的一個名字。另一端則使NetBIOS Call 命令,Call命令要用到其NetBIOS命名表中的名字,這個名字必須與另一端的的應用程序所用的名字相匹配,這樣兩邊的名字相匹配是兩個應用創建會話的依據,在Listen 命令和 Call 命令執行完後,就建立會話了。注意的是:首先調用 Listen命令,然後再調用 Call 命令,這個順序不能顛倒。
會話創建後,每個客戶端都收到一個會話已創建的指示,得到一個字節的無符號返回值,表示會話與適配器之間的聯。創建會話後,每個客戶端都可以調用NetBIOS的Send和Receive命令來傳輸和接收數。
(4).通用命令:NetBIOS的通用命令提供了五項NetBIOS服務,分別是:Reset(復位適配器),Adapter Status(顯示適配器狀態),Cancel and Unlink(撤消及斷開命令),Find Name(匹配名字)和 Trace(跟蹤命令)。
1).Reset 命令強迫適配器進入初始化狀態,終止所有的會話,並刪除NetBIOS 命名表中除永久節點名以外的所有名字。
2).Adapter Status 命令用來查詢NetBIOS適配器,以獲取有關操作信息,如:發現LAN 錯誤數和適配器NetBIOS命名表,用於知道遠程計算機和適配器是否都被掛起,還是只有計算機被掛起。這是對遠程適配器的狀態進行查詢的一個很好的實現方法。
3).Cancel and Unlink:Cancel 命令是使應用程序結束尚未執行完的命令。Unlink命令是允許RPL引導的PC Network LAN 適配器,從RPL服務器上脫開,它只對基本適配器有效,通常返回一個 0 值,表明請求成功。4).Find Name 命令用於找出一個由Find Name 命令指定的符號名的適配器,在多個適配器共用一個組名時,它們都可以同時都應答,但是只有一個應答將返回給發出請求的應用端。
5).Trace 命令將激活對所有發向NetBIOS 接口的命令進行跟蹤,其基本用途是為診斷程序提供支持。