NetBios協議詳解及網路位置工作原理

來源:互聯網
上載者:User
Netbois(網路基本輸入/輸出系統)最初由IBM,Sytek作為API開發,使使用者軟體能使用區域網路的資源。自從誕生,Netbois成為許多其他網路應用程式的基礎。嚴格意義上,Netbios是接入網路服務的介面標準。
  Netbios原來是作為THE網路控制卡為IBM區域網路設計的,是通過特定硬體用來和網路作業系統串連的軟體層。Netbios經擴充,允許程式使用Netbios介面來操作IBM令牌環結構。Netbios已被公認為工業標準,通常參照Netbios-compatible LANs.
  它提供給網路程式一套方法,相互連訊及傳輸資料。基本上,Netbios允許程式和網路會話。它的目的是把程式和任何類型的硬體屬性分開。它也使軟體開發員可以免除以下負擔:開發網路錯誤修複,低層資訊定址和路由。使用Netbios介面,可以為軟體開發員做許多工作。

  Netbios使程式和區域網路操作能力之間的介面標準化。有它們,可以將程式細化到為osi模型的哪一層所寫,使程式能移植到其他網路上。在Netbios區域網路環境下,電腦通過名字被系統知道。網路中每台電腦都有通過不同方法編的永久性名稱。這些名稱將在下面做進一步討論。

  通過使用Netbios的資料報或廣播方式,在Netbios區域網路上的pc機建立會話彼此聯絡。會話允許更多的資訊被傳送,探測錯誤,和糾正。通訊是在一對一的基礎上的。資料報或廣播方式允許一台電腦和多台其他的電腦同時通訊,但資訊大小受限。使用資料報或廣播方式沒有探測錯誤和糾正。然而,資料報通訊可以不必建立一個會話。

  在這種環境下所有的通訊以一種稱為“網路控制區“的格式提交給NetBIOS。記憶體中這些塊的分配依賴於使用者程式。這些“網路控制區“分配到域中,分別為輸入/輸出保留。

在當今的環境中,NetBIOS是使用很普遍的協議。乙太網路,令牌環,IBM PC網都支援NetBIOS。在它原始版本中,它僅作為程式和網路介面卡的介面。從那以後,傳輸類功能加入NetBIOS,使它功能日益增多。

  在NetBIOS裡,連線導向(tcp)和無串連(udp)通訊均支援。它支援廣播和複播,支援三個分開的服務:命名,會話,資料報。

[1.0.2] NetBIOS 名稱

  NetBIOS名稱用來在網路上鑒別資源。程式用這些名稱開始和結束會話。你能用多個程式配置一台單獨的機器,每個程式都有獨特的NetBIOS名稱。每台支援應用的pc機也有使用者定義或通過內部方法獲得的NetBIOS站名。

  NetBIOS能包含至多16個阿爾法數字字母。在整個資源路由網路裡,字母的組合必須獨特。在一台使用NetBIOS的pc機在網路上能完全工作起來之前,pc必須先登記NetBIOS名稱。

以下看仔細啦,一台機器開機啦~~他在幹嘛??

  當用戶端A活躍時,用戶端A廣播它的名稱。當它成功廣播自己,並沒有其他人和它重名,用戶端就登記成功。登記過程如下:

1.在登陸上,用戶端A在所有地方廣播它自己和它的NetBIOS資訊6到10次(靠,這種辦法Who想出來個,餿的。。。。),確保其他網路成員收到資訊。(如果有機器沒有收到,那該機的網路位置裡這個用戶端A就隱藏了)

2.如果有另一用戶端B已用此名,另一用戶端B發布它自己的廣播,包括它正在使用的名字。請求登陸的用戶端A停止所有登記的企圖。

3.如無其他用戶端反對登記,請求登陸的用戶端A完成登記過程。如果有可用的名稱伺服器,那麼名稱伺服器會在它的資料庫裡記上一筆,某機的名稱是A,IP地址是XXX.XXX.XXX.XXX

4、當A機順利關機時,重新廣播釋放剛才註冊的這個名字,同一網段上的電腦收到後把這個名字在網路位置裡就麻油了。(靠,暈倒死順利關機。。。。。不正常呢?別急呀)如果網上有Wins伺服器的話,客戶機非順利關機一定時間以後,Wins也會登出這個名字。如果麻油wins服務的話,您就對著網路位置裡的表徵圖撞大運吧~~,當心噢,這時候查詢名字肯定是廣播~~,如果你網上有個幾十台機器,廣播個N篇,再等回答 

  問題真的解決了嗎?要知道廣播包是很容易出問題的,尤其在機器數量較多的網路裡,這就是網路位置常常找不到人的原因之一,並且廣播不能穿過路由,所以不同子網的機器在網路位置裡是看不見地。(如果有wins伺服器存在而且節點類型不是B,那還....稍好一點,不廣播了。具體方式可參閱wins結點類型的相關資料)

  其實即使有些機器沒有收到註冊請求,也就是網路位置裡看不看見沒什麼大關係,只要A不恰好和B同名,如果有WINS服務那就更好了,你和他同名也沒關係,WINS會更新紀錄或拒絕A登記這個名字。當你試圖和A機進行基於NetBios的通訊,比如傳只檔案什麼的,那首先會查詢NetBios名字,如果找到就開始通訊。

  在NetBIOS環境中有兩類名稱:獨特的和集合的。獨特的名稱必須在網路中獨特。集合的名稱不必在網路中獨特,所有同名過程屬於同一集合。每個NetBIOS節點包含一張該節點當前使用名稱的表。

NetBIOS命名允許16個字母用在NetBIOS名稱中。而微軟只允許15個字母用在NetBIOS名稱中,第十六個為NetBIOS尾碼。NetBIOS尾碼用在Microsoft networking 軟體中,區別安裝的功能,登記的裝置和服務。

[注意:smb 和nbt(在tcp/ip上的NetBIOS)緊密的工作在一起,且都使用137,138,139連接埠。137連接埠是NetBIOS名稱UDP,138連接埠是NetBIOS資料報UDP,139連接埠是NetBIOS會話tcp]嘿嘿,知道點安全常識的這個連接埠號碼不會沒聽說過吧,要網路位置還是要安全自已考慮清楚噢~~

以下是Microsoft WindowsNT目前使用的NetBIOS尾碼表。尾碼是16進位。

名稱 數字 類型 用途
=========================================================================
=
00 U Workstation Service
01 U Messenger Service
<\\_MSBROWSE_> 01 G Master Browser
03 U Messenger Service
06 U RAS Server Service
1F U NetDDE Service
20 U File Server Service
21 U RAS Client Service
22 U Exchange Interchange
23 U Exchange Store
24 U Exchange Directory
30 U Modem Sharing Server Service
31 U Modem Sharing Client Service
43 U SMS Client Remote Control
44 U SMS Admin Remote Control Tool
45 U SMS Client Remote Chat
46 U SMS Client Remote Transfer
4C U DEC Pathworks TCPIP Service
52 U DEC Pathworks TCPIP Service
87 U Exchange MTA
6A U Exchange IMC
BE U Network Monitor Agent
BF U Network Monitor Apps
03 U Messenger Service
00 G Domain Name
1B U Domain Master Browser
1C G Domain Controllers
1D U Master Browser
1E G Browser Service Elections
1C G Internet Information Server
00 U Internet Information Server
[2B] U Lotus Notes Server
IRISMULTICAST [2F] G Lotus Notes
IRISNAMESERVER [33] G Lotus Notes
Forte_$ND800ZA [20] U DCA Irmalan Gateway Service

獨特的(u):該名僅有一個IP地址分給它。在網路裝置中,一個名稱的多次出現看來會被登記,但尾碼是唯一的,使整個名稱唯一。

集合的(g):普通集合,一個名稱可有多個IP地址。

多址的(M):名稱是唯一的,但由於在同一電腦上有多個網路介面,這種配置應該被允許登記。地址的最大數目是25。

Internet集合(I):這是組名的特殊配置,用在操作WINDOSNT的網域名稱。

網域名稱(D):在NT4.0中新引進的。

為了快速探索一台伺服器上登記的NETBIOS名稱和服務,用以下命令:
nbstat -a [ipaddress]
nbstat -a [host]

[1.0.3] NetBIOS 會話

  NetBIOS 會話服務提供給使用者程式一種連線導向,可靠的,完全雙重的資訊服務。NetBIOS要求一個是用戶端程式,一個是伺服器端程式。NetBIOS會話的建立需要雙方預定的合作。一個程式必須先發出listen命令,其他程式才可以發出call命令。listen命令參考在它的NetBIOS名稱表中的名稱(或windows伺服器中的),也參考用於作為會話另一端的遠端程式的名稱。如果聆聽者不在聆聽,call命令將不會成功。如果call成功,各程式將接到會話id,以作為會話建立的確認。

send和receive命令操作傳輸資料。在會話最後,各程式將執行掛起命令。沒有為會話服務的實際流量控制,因為假定區域網路足夠快,能夠傳輸需要的資料。

[1.0.4] NetBIOS 資料報

  資料報可以發送到特定的地點,或組中所有成員,或廣播到整個區域網路。與其它資料服務相比,NetBIOS資料報是無串連,非可靠的。Send_Datagram 命令需要調用者設定目的名。如果目的名是組名,組中每個成員都收到資料。Receive_Datagram 命令的調用者必須確定它接收資料的本地名。除了實際資料外,Receive_Datagram也返回傳送者的名稱。如果NetBIOS收到資料,但卻沒有Receive_Datagram 命令在等待,資料將被丟棄。

  Send_Broadcast_Datagram 命令發送資訊給本地網上每個NetBIOS系統。當BetBIOS節點收到廣播資料,發布Receive_Broadcast_Datagram 命令的每個進程都收到資料。如果當廣播資料被收到時,沒有這些命令在運行,資料將被丟棄。

  NetBIOS使應用程式能和另一個裝置建立會話,使網路轉寄站和處理協議處理收到、發送到另一台機器的請求。NetBIOS實際上不操作資料。NetBIOS定義規定了用來到達這些服務的協議的網路介面,而非協議本身。曆史上,NetBIOS曾與叫做NetBEUI的協議(網路擴充使用者介面)捆綁。介面和協議的結合有時引起混淆,但它們是不同的。

  網路通訊協定為定位、串連到網路上特定的服務提供至少一種方法。這通常由將節點和服務名轉化為網路地址(名稱解析)完成。在串連用TCP/IP建立前,NetBIOS服務名必須解析成IP地址。大多數NetBIOS的TCP
/IP實現,用廣播或LMHOSTS檔案完成名稱地址的解析。在Microsoft環境中,你最可能使用叫做WINS的NetBIOS
名稱伺服器。

[1.0.5] NetBEUI 解釋

  NetBEUI是網路作業系統使用的NetBIOS協議的加強版本。它規範了在NetBIOS 中未標準化的傳輸幀,還加了額外的功能。傳輸層磁碟機經常被Microsofts LAN Manager(微軟區域網路操作器)使用。NetBEUI執行OSI LLC2 協議。NetBEUI是原始的PC網路通訊協定和IBM為LanManger(區域網路操作器)伺服器設計的介面。本協議稍後被微軟採用作為它們的網路產品的標準。它規定了高層軟體通過NetBIOS幀協議發送、接收資訊的
方法。本協議運行在標準802.2資料鏈協議層上。

[1.0.6] NetBIOS 範圍

  NetBIOS範圍ID為建立在TCP/IP(叫做NBT)模組上的NetBIOS提供額外的命名服務。NetBIOS範圍ID的主要目的是隔離單個網路上的NetBIOS通訊和那些有相同NetBIOS範圍ID的節點。NetBIOS範圍ID是附加在NetBIOS名稱上的字串。兩個主機上的NetBIOS範圍ID必須匹配,否則兩主機無法通訊。NetBIOS範圍ID允許電腦使用相同的電腦名稱,不同的範圍ID。範圍ID是NetBIOS名稱的一部分,使名稱唯一。

NETBIOS是不可路由的服務,如果要實現不同網段的主機名稱服務,需要設定WINS來解析。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.