1. 程式人生 > >SNMP 和 NetBios協議理解

SNMP 和 NetBios協議理解

原文連結地址https://www.cnblogs.com/hilow/p/3737695.html

一、簡單網路管理協議(SNMP,Simple Network Management Protocol)構成了網際網路工程工作小組(IETF,Internet Engineering Task Force)定義的Internet協議簇的一部分。

1.作用:
想象一個由伺服器,工作機,三層交換機等裝置組成的網路。如果我想在工作機中,通過一種方式能夠查詢三層交換機下接入裝置的ip,mac等資訊,怎麼做到呢? 我想知道伺服器當前運行了多少天,難道必須遠端登入主機才能知道嗎?當然不用,我們可以簡單的傳送一些事先協定好的資料給伺服器,伺服器也會按規定的資料格式返回自己的資訊。這個規定好的資料格式就是SNMP。其目標是管理網際網路上眾多廠家生產的軟硬體平臺。通過SNMP可以讀取設定任何支援SNMP協議的各種裝置。

2.用法:

想要體驗snmp協議提供的功能,可以使用開源的Net-snmp,它支援unix,unix-like,windows多種作業系統,提供命令列形勢的呼叫,或者c和perl形勢的lib。
windows下還有專門的snmp API可以呼叫,非常方便啊。
常用的  api  包括  SnmpMgrOpen(),SnmpMgrClose(), SnmpMgrRequest() , 可以從網上搜索相關資料學習。

3.原理:
兩個概念:
  OID項:是每個裝置某一引數的身份證號,有點類似作業系統中的 “路徑”,比如    /usr/bin/ping
  MIB庫:儲存了該引數的名稱、型別、取值意義等各項細節描述。
四個操作:
  GET:獲取指定 OID 值。
  GETNEXT:讀取當前OID 的下一個OID值,並將其作為新的“當前OID”。以達到只記一個OID便可遍歷所有值的功能。
  SET:設定指定OID值。
  TRAP:用於裝置主動向監控程式反饋結果,避免監控程式不停輪詢,也能及時得到敏感資料結果。

二、網路基本輸入輸出系統NetBIOS:Network Basic Input/Output System)的縮寫

1.作用:
通過NetBIOS協議,可以讀取 windows 主機使用者名稱列表,共享目錄名列表,級名列表,時間服務型別以及 MAC地址。
我們常用的windows系統在區域網中共享檔案的功能就是利用NetBIOS協議實現的。
比如,可以開啟網路上的芳鄰,找到當前網路中的機器,並檢視其中的共享檔案。
也可以在開始-》執行 視窗,輸入 \\192.168.1.10\shareDirectory 訪問共享檔案,而如果要把其中的 IP 192.168.1.10 換成目標機器的主機名稱(NetBIOS名),也是可以正常訪問的,這個功能也是依靠NetBIOS完成。(注:至於具體檔案傳輸時使用的什麼的資料協議,我還沒查到相關資料,不太確定)

2.用法:
共享檔案很簡單,右鍵資料夾,屬性,共享就可以了。或者開啟“網路上的芳鄰”,也能看到區域網中所有的主機(啟用NetBIOS,併成功在主瀏覽伺服器中註冊)

開源界有一個叫做 nbtscan 的命令列程式,可以獲取NetBIOS資訊獲取,支援windows,linux。

Windows中還提供  nbtstat 命令查詢涉及NetBIOS資訊的網路機器(windows下的nbtscan也是基於此完成)。
nbtstat -n 檢視本機NetBIOS資訊
nbtstat -A 192.168.1.106 檢視指定IP的 NetBIOS 資訊

3.原理:
我們只要在自己的電腦上輸入一條命令就能看到區域網中,其他電腦的詳細資訊,甚至能看到其共享檔案列表。這是怎麼做到的呢?
在一個域裡面有一臺主瀏覽器,主瀏覽器負責建立和維護網路共享資源列表。
當網路中有一臺電腦(非瀏覽器)開機時,會首先給主瀏覽器傳送一個登陸請求,主瀏覽器接受請求後,自動把此電腦資訊加入共享資源列表,此時通過網路上的芳鄰就能看到這臺開機的電腦資訊了。
當這臺電腦關機時,同樣會傳送一個登出訊息,這時網路上的芳鄰中也就看不到這臺電腦了;但是如果這臺電腦是非正常關機,那麼就會出現,可以在網路鄰居中看到,但卻無法訪問此電腦的共享資源。(一般,主瀏覽器需要連續三次,累計12*3=36分鐘沒有收到某臺計算機的仍然正常執行的資訊時,才認為該 主機已經關機)
主瀏覽器是由競選產生,主瀏覽器工作期間,共享資源列表的維護工作有主瀏覽器完成,但主瀏覽器會定時(15分鐘)將整個列表複製給被瀏覽器。
上述例子中,網路上的芳鄰的共享資源功能只是NetBIOS眾多功能的一種。

參考資料:

《網路掃描技術揭祕》李瑞民

netbios協議

http://www.pc6.com/infoview/Article_19479.html

netbios程式設計例項

http://blog.csdn.net/neicole/article/details/7587414

http://support.microsoft.com/kb/175935/zh-cn