導航:首頁 > 網路安全 > 網路鏈路監測如何實現

網路鏈路監測如何實現

發布時間:2023-06-07 20:58:36

A. Sniffer是什麼怎麼

Sniffer,中文可以翻譯為嗅探器,是一種基於被動偵聽原理的網路分析方式。使用這種技術方式,可以監視網路的狀態、數據流動情況以及網路上傳輸的信息。當信息以明文的形式在網路上傳輸時,便可以使用網路監聽的方式來進行攻擊。將網路介面設置在監聽模式,便可以將網上傳輸的源源不斷的信息截獲。Sniffer技術常常被黑客們用來截獲用戶的口令,據說某個骨幹網路的路由器網段曾經被黑客攻入,並嗅探到大量的用戶口令。但實際上Sniffer技術被廣泛地應用於網路故障診斷、協議分析、應用性能分析和網路安全保障等各個領域。
本文將詳細介紹Sniffer的原理和應用。
一、Sniffer 原理
1.網路技術與設備簡介
在講述Sniffer的概念之前,首先需要講述區域網設備的一些基本概念。
數據在網路上是以很小的稱為幀(Frame)的單位傳輸的,幀由幾部分組成,不同的部分執行不同的功能。幀通過特定的稱為網路驅動程序的軟體進行成型,然後通過網卡發送到網線上,通過網線到達它們的目的機器,在目的機器的一端執行相反的過程。接收端機器的乙太網卡捕獲到這些幀,並告訴操作系統幀已到達,然後對其進行存儲。就是在這個傳輸和接收的過程中,嗅探器會帶來安全方面的問題。
每一個在區域網(LAN)上的工作站都有其硬體地址,這些地址惟一地表示了網路上的機器(這一點與Internet地址系統比較相似)。當用戶發送一個數據包時,這些數據包就會發送到LAN上所有可用的機器。
如果使用Hub/即基於共享網路的情況下,網路上所有的機器都可以「聽」到通過的流量,但對不屬於自己的數據包則不予響應(換句話說,工作站A不會捕獲屬於工作站B的數據,而是簡單地忽略這些數據)。如果某個工作站的網路介面處於混雜模式(關於混雜模式的概念會在後面解釋),那麼它就可以捕獲網路上所有的數據包和幀。
但是現代網路常常採用交換機作為網路連接設備樞紐,在通常情況下,交換機不會讓網路中每一台主機偵聽到其他主機的通訊,因此Sniffer技術在這時必須結合網路埠鏡像技術進行配合。而衍生的安全技術則通過ARP欺騙來變相達到交換網路中的偵聽。
2.網路監聽原理
Sniffer程序是一種利用乙太網的特性把網路適配卡(NIC,一般為乙太網卡)置為雜亂(promiscuous)模式狀態的工具,一旦網卡設置為這種模式,它就能接收傳輸在網路上的每一個信息包。
普通的情況下,網卡只接收和自己的地址有關的信息包,即傳輸到本地主機的信息包。要使Sniffer能接收並處理這種方式的信息,系統需要支持BPF,Linux下需要支持SOCKET一PACKET。但一般情況下,網路硬體和TCP/IP堆棧不支持接收或者發送與本地計算機無關的數據包,所以,為了繞過標準的TCP/IP堆棧,網卡就必須設置為我們剛開始講的混雜模式。一般情況下,要激活這種方式,內核必須支持這種偽設備Bpfilter,而且需要root許可權來運行這種程序,所以sniffer需要root身份安裝,如果只是以本地用戶的身份進入了系統,那麼不可能喚探到root的密碼,因為不能運行Sniffer。
也有基於無線網路、廣域網路(DDN, FR)甚至光網路(POS、Fiber Channel)的監聽技術,這時候略微不同於乙太網絡上的捕獲概念,其中通常會引入TAP (測試介入點)這類的硬體設備來進行數據採集。
3. Sniffer的分類
Sniffer分為軟體和硬體兩種,軟體的Sniffer有 Sniffer Pro、Network Monitor、PacketBone等,其優點是易於安裝部署,易於學習使用,同時也易於交流;缺點是無法抓取網路上所有的傳輸,某些情況下也就無法真正了解網路的故障和運行情況。硬體的Sniffer通常稱為協議分析儀,一般都是商業性的,價格也比較昂貴,但會具備支持各類擴展的鏈路捕獲能力以及高性能的數據實時捕獲分析的功能。
基於乙太網絡嗅探的Sniffer只能抓取一個物理網段內的包,就是說,你和監聽的目標中間不能有路由或其他屏蔽廣播包的設備,這一點很重要。所以,對一般撥號上網的用戶來說,是不可能利用Sniffer來竊聽到其他人的通信內容的。
4.網路監聽的目的
當一個黑客成功地攻陷了一台主機,並拿到了root許可權,而且還想利用這台主機去攻擊同一(物理)網段上的其他主機時,他就會在這台主機上安裝Sniffer軟體,對乙太網設備上傳送的數據包進行偵聽,從而發現感興趣的包。如果發現符合條件的包,就把它存到一個LOg文件中去。通常設置的這些條件是包含字「username」或「password」的包,這樣的包裡面通常有黑客感興趣的密碼之類的東西。一旦黑客截獲得了某台主機的密碼,他就會立刻進入這台主機。
如果Sniffer運行在路由器上或有路由功能的主機上,就能對大量的數據進行監控,因為所有進出網路的數據包都要經過路由器。
Sniffer屬於第M層次的攻擊。就是說,只有在攻擊者已經進入了目標系統的情況下,才能使用Sniffer這種攻擊手段,以便得到更多的信息。
Sniffer除了能得到口令或用戶名外,還能得到更多的其他信息,比如一個重要的信息、在網上傳送的金融信息等等。Sniffer幾乎能得到任何在乙太網上傳送的數據包。
二、Sniffer產品介紹
網路的安全性和高可用性是建立在有效的網路管理基礎之上的,網路管理包括配置管理、故障管理、性能管理、安全管理和計費管理五大部分。對於企業計算機網路來說,網路故障管理主要側重於實時的監控,而網路性能管理更看中歷史分析。
Sniffer網路分析儀是一個網路故障、性能和安全管理的有力工具,它能夠自動地幫助網路專業人員維護網路,查找故障,極大地簡化了發現和解決網路問題的過程,廣泛適用於Ethernet、Fast Ethernet、Token Ring、Switched LANs、FDDI、X.25、DDN、Frame Relay、ISDN、ATM和Gigabits等網路。
1.1 Sniffer產品的基本功能包括:
• 網路安全的保障與維護
1. 對異常的網路攻擊的實時發現與告警;
2. 對高速網路的捕獲與偵聽;
3. 全面分析與解碼網路傳輸的內容;
• 面向網路鏈路運行情況的監測
1. 各種網路鏈路的運行情況;
2. 各種網路鏈路的流量及阻塞情況;
3. 網上各種協議的使用情況;
4. 網路協議自動發現;
5. 網路故障監測;
• 面向網路上應用情況的監測
1. 任意網段應用流量、流向;
2. 任意伺服器應用流量、流向;
3. 任意工作站應用流量、流向;
4. 典型應用程序響應時間;
5. 不同網路協議所佔帶寬比例;
6. 不同應用流量、流向的分布情況及拓撲結構;
• 強大的協議解碼能力,用於對網路流量的深入解析
1. 對各種現有網路協議進行解碼;
2. 對各種應用層協議進行解碼;
3. Sniffer協議開發包(PDK)可以讓用戶簡單方便地增加用戶自定義的協議;
• 網路管理、故障報警及恢復
運用強大的專家分析系統幫助維護人員在最短時間內排除網路故障;
1.2 實時監控統計和告警功能
根據用戶習慣,Sniffer可提供實時數據或圖表方式顯示統計結果,統計內容包括:
 網路統計:如當前和平均網路利用率、總的和當前的幀數及位元組數、總站數和激活的站數、協議類型、當前和總的平均幀長等。
 協議統計:如協議的網路利用率、協議的數、協議的位元組數以及每種協議中各種不同類型的幀的統計等。
 差錯統計:如錯誤的CRC校驗數、發生的碰撞數、錯誤幀數等。
 站統計:如接收和發送的幀數、開始時間、停止時間、消耗時間、站狀態等。最多可統計1024個站。
 幀長統計:如某一幀長的幀所佔百分比,某一幀長的幀數等。
當某些指標超過規定的閾值時,Sniffer可以自動顯示或採用有聲形式的告警。
Sniffer可根據網路管理者的要求,自動將統計結果生成多種統計報告格式,並可存檔或列印輸出。
1.3 Sniffer實時專家分析系統
高度復雜的網路協議分析工具能夠監視並捕獲所有網路上的信息數據包,並同時建立一個特有網路環境下的目標知識庫。智能的專家技術掃描這些信息以檢測網路異常現象,並自動對每種異常現象進行歸類。所有異常現象被歸為兩類:一類是symptom(故障徵兆提示,非關鍵事件例如單一文件的再傳送),另一類是diagnosis(已發現故障的診斷,重復出現的事件或要求立刻採取行動的致命錯誤)。經過問題分離、分析且歸類後,Sniffer將實時地,自動發出一份警告、對問題進行解釋並提出相應的建議解決方案。
Sniffer與其他網路協議分析儀最大的差別在於它的人工智慧專家系統(Expert System)。簡單地說,Sniffer能自動實時監視網路,捕捉數據,識別網路配置,自動發現網路故障並進行告警,它能指出:
 網路故障發生的位置,以及出現在OSI第幾層。
 網路故障的性質,產生故障的可能的原因以及為解決故障建議採取的行動。
 Sniffer 還提供了專家配製功能,用戶可以自已設定專家系統判斷故障發生的觸發條件。
 有了專家系統,您無需知道那些數據包構成網路問題,也不必熟悉網路協議,更不用去了解這些數據包的內容,便能輕松解決問題。
1.4 OSI全協議七層解碼
Sniffer的軟體非常豐富,可以對在各種網路上運行的400多種協議進行解碼,如TCP/IP、Novell Netware、DECnet、SunNFS、X-Windows、HTTP、TNS SLQ*Net v2(Oracle)、Banyan v5.0和v6.0、TDS/SQL(Sybase)、X.25、Frame Realy、PPP、Rip/Rip v2、EIGRP、APPN、SMTP等。還廣泛支持專用的網路互聯橋/路由器的幀格式。
Sniffer可以在全部七層OSI協議上進行解碼,目前沒有任何一個系統可以做到對協議有如此透徹的分析;它採用分層方式,從最低層開始,一直到第七層,甚至對ORACAL資料庫、SYBASE資料庫都可以進行協議分析;每一層用不同的顏色加以區別。
Sniffer對每一層都提供了Summary(解碼主要規程要素)、Detail(解碼全部規程要素)、Hex(十六進制碼)等幾種解碼窗口。在同一時間,最多可以打開六個觀察窗口。
Sniffer還可以進行強制解碼功能(Protocl Forcing),如果網路上運行的是非標准協議,可以使用一個現有標准協議樣板去嘗試解釋捕獲的數據。
Sniffer提供了在線實時解碼分析和在線捕捉,將捕捉的數據存檔後進行解碼分析二種功能。
二、Sniffer的商業應用
Sniffer被 Network General公司注冊為商標,這家公司以出品Sniffer Pro系列產品而知名。目前最新版本為Sniffer Portable 4.9,這類產品通過網路嗅探這一技術方式,對數據協議進行捕獲和解析,能夠大大幫助故障診斷和網路應用性能的分析鑒別。
Network General 已經被NetScout公司收購。
三、Sniffer的擴展應用
1、專用領域的Sniffer
Sniffer被廣泛應用到各種專業領域,例如FIX (金融信息交換協議)、MultiCast(組播協議)、3G (第三代移動通訊技術)的分析系統。其可以解析這些專用協議數據,獲得完整的解碼分析。
2、長期存儲的Sniffer應用
由於現代網路數據量驚人,帶寬越來越大。採用傳統方式的Sniffer產品很難適應這類環境,因此誕生了伴隨有大量硬碟存儲空間的長期記錄設備。例如nGenius Infinistream等。
3、易於使用的Sniffer輔助系統
由於協議解碼這類的應用曲高和寡,很少有人能夠很好的理解各類協議。但捕獲下來的數據卻非常有價值。因此在現代意義上非常流行如何把協議數據採用最好的方式進行展示,包括產生了可以把Sniffer數據轉換成Excel的BoneLight類型的應用和把Sniffer分析數據進行圖形化的開源系統PacketMap等。這類應用使用戶能夠更簡明地理解Sniffer數據。
4、無線網路的Sniffer
傳統Sniffer是針對有線網路中的區域網而言,所有的捕獲原理也是基於CSMA/CD的技術實現。隨著WLAN的廣泛使用,Sniffer進一步擴展到802.11A/B/G/N的無線網路分析能力。無線網路相比傳統網路無論從捕獲的原理和接入的方式都發生了較大改變。這也是Sniffer技術發展趨勢中非常重要的部分.

B. 網路中有哪些協議可用作鏈路檢測

關於鏈路檢查,不知你說的哪個層面的。
1、對於用戶側,若僅僅是個adsl之類的,等到modem中,看上下行協商的速率參數就行了,1M是1024K,依次累加。若是線路有環,一般撥號提示電話占線。
2、對於運營商級別的網路,可以通過設備埠狀態,網管來檢測,環路檢測不好發現,但是華為老款交換機(如:S2403等,具有環路發現功能。
3、lldp是鏈路層設備檢測協議,不能檢測運營商線路。

C. 如何用C語言檢測網路是否連接上、已連接、已斷開狀態

如果對方斷開連接的話,那麼readNum = recv ( socketId, rcvBuf, rcvBufSize, 0 );
readNum返回值應該是0,可以根據返回值判斷

還有一種辦法,就是做一個心跳檢測,定時發送消息,如果發送失敗就知道對方不在了

D. 數據鏈路層的差錯的檢測和恢復(奇偶校驗碼,CRC校驗,校驗和),各種運算

在原始的物理傳輸線路上傳輸數據信號是有差錯的,存在一定的誤碼率,數據鏈路層存在的目的就是給原始二進制位流增加一些控制信息 ,實現如何在有差錯的線路上進行無差錯傳輸

數據設定為M位,冗餘位設定為R位,如果位數滿足即認為不出錯,如果位數不滿足即肯定出錯

差錯產生的原因
信道的電氣特性引起信號幅度,頻率,相位的畸變,信號反射,串擾,閃電,大功率電機的啟停等

計算機網路中出現的差錯是連續的還是離散的差錯? → 是連續的突發性的差錯
比如傳了一個這樣的位串0001101001,連續的差錯:比如一共出錯了3位,連續的出錯在一起。離散的差錯:一共出錯了3位,不是連續出的,是分散出的

保證幀正確,按序送交上層(順序要對,不能重復也不能跳幀)。在接收方能夠判斷接收的數據是否正確,若錯誤還可能要恢復錯誤

糾錯控制主要由接收方做,能檢查出錯並定位到是哪兒出錯了

接收方通過反饋機制告訴發送方出錯,發送方通過重發的方式恢復差錯

☆自動糾錯比檢錯反饋重發機制代價大,在發生數據丟失的情況下,只是自動糾錯機制無法進行差錯恢復,還是需要檢錯反饋重發機制

一個幀包括m個數據位,r個校驗位(是冗餘位,和m位的有效數據是無關的),稱為n位碼字(n=m+r),我們希望r盡量短,並且盡量有一個固定長度

加入了冗餘位,使接收方知道有差錯發生,但不知道什麼差錯,然後請求重發

加入了足夠多的冗餘位,使接收方不僅知道有差錯發生,並知道哪些位發生差錯

兩個編碼的海明距離: 兩個編碼不相同位的個數
例:0000000000與0000011111的海明距離是5
編碼方案的海明距離: 編碼方案中任兩個編碼海明距離的最小值
ASCII這樣的連續編碼的海明距離都是1

為檢測d位錯,編碼方案的海明距離應至少為d+1
當發生d位錯時,不會由一種合法編碼變為另一種合法編碼,也就是想要由一種合法編碼變為另一種合法編碼,需要d+1以上出錯

對接收方來講,它判定一個編碼是否出錯的唯一依據是這個編碼是否是一個合法的編碼。即使接收方收到了一個合法的編碼,它也無法判斷是否是一個合法編碼,因為它不知道這個合法編碼原本就是合法的,還是出錯以後也依然是一個合法編碼。因此需要海明距離應至少為d+1

在數據鏈路層一般是不用這種檢錯方法的,因為檢錯率太低

若接收方收到的位元組奇偶結果不正確,就可以知道傳輸中發生了錯誤
增加奇偶校驗位後海明距離由1變為2,因此根據「為檢測d位錯,編碼方案的海明距離應至少為d+1」,可以檢查出一位二進制位的差錯
用這種方法,有一位出錯時,就會由合法編碼(奇校驗時1的個數為奇數,偶校驗時1的個數為偶數)變成一種非合法編碼(奇數校驗時1的個數為偶數,偶校驗時1的個數為奇數)

為糾正d位錯,編碼方案的海明距離應至少為2d+1
當發生d位錯時,出錯編碼仍然最接近於原始的正確編碼

例:現在有一個編碼方案,這個編碼方案之中只有4種合法編碼↓
0000000000
0000011111
1111100000
1111111111
它們之間的海明距離為5,按照定理,能夠糾正2位錯
假設接收方收到了這樣的編碼:0001100000,很明顯這是個非法編碼,怎麼樣糾正
呢?我們知道出錯的位數是≤ 2位的,它和第一種的海明距離為2,和第二種為7,和
第三種為3,和第四種為8,離它最近的是第一種編碼。它採用這種就近恢復的原則將
出錯的編碼恢復到原始編碼

數據鏈路層用的最多的一種檢錯方法
但是高層(網路層,傳輸層)是不用這種檢錯方法的,而用檢驗和的方法

生成多項式G(x)
發方,收方事前約定。這里的約定是數據鏈路層的協議已經定義該協議使用什麼生成多項式
生成多項式的高位和低位必須為1
生成多項式必須比傳輸信息對應的多項式短
(現在最多用的是CRC-32,生成多項式是32位,能否保證生成多項式比傳輸的對應的多項式短呢?從原始數據來講保證不了,但是到數據鏈路層時加了傳輸層的頭,網路層的頭之後肯定能保證大於32位。比如現在的Internet網路,例如在傳輸層使用TCP加20個位元組,在網路層IP又加了20個位元組,已經超過32位了,所以肯定能保證)
理論上來講生成多項式的階越高,檢錯率越高
硬體實現CRC校驗

四個多項式已經成為國際標准

CRC碼(增加的r位冗餘位檢錯碼,即校驗和)加在幀尾(效率比較高),使帶CRC碼的幀的多項式能被G(x)除盡:接收方接收時,用G(x)去除它,若有餘數,則傳輸出錯

• 模2加法運算定義為:(對應於邏輯異或)
0+0=0 0+1=1 1+0=1 1+1=0
例如0101+0011=0110
• 模2減法運算定義為:(對應於邏輯異或)
0-0=0 0-1=1 1-0=1 1-1=0
例如0110-0011=0101
• 模2乘法運算定義為:
0x0=0 0x1=0 1x0=0 1x1=1

• 模2除法運算定義為:
0 ÷1=0 1÷1=1
利用模2減求余數,余數最高位為1,則商1,否則商0,每商1位則余數減少1位,
直到余數位數少於除數位數

按位與運算:
按位與運算符」&」是雙目運算符。其功能是參與運算的兩數各對應的二進位相與。只有對應的兩個二進位均為1時,結果位才為1,否則為0。參與運算的數以補碼方式出現

例如: 9 & 5
00001001(9的二進制補碼)
&
00000101 (5的二進制補碼)
00000001
可見9 & 5 =1

最高位作為符號位,若符號位為0,則表示正數,若符號位為1,則表示負數
其餘各位代表數值本身的絕對值(以二進製表示)
絕對值相同的正數和負數,它們除了符號位不同外,其他各位都相同

一個數如果值為正,則它的反碼與原碼相同
一個數如果值為負,則將其符號位置為1,其餘各位為對原碼相應數據位取反
(取反:二進制中有0和1兩種狀態,取反就是取與當前狀態相反的狀態,1取反等於0,0取反等於1)

正數的補碼與反碼,原碼相同
負數的補碼則將其最高位置為1,其餘各位為對原碼的相應數據位取反,再對整個數加1
即 X為負數時,【X】補 = 【X】反+1

(+0)補 = 00000000
(-0)反 = 11111111
(-0)補 = 11111111 + 1 = 100000000→進位1捨去→00000000

假設用一個位元組表示一個數,補碼的表示範圍為:-128 ----- +127
用反碼表示的最小值為:-128,其反碼為:10000000
用反碼表示的最大值為:+127,其反碼為:01111111

按位或運算符」|」是雙目運算符。其功能是參與運算的兩數各對應的二進位相或。只要對應的兩個二進位有一個為1時,結果位就為1.參與運算的兩個數均以補碼出現
例如:9|5
00001001
| 00000101
00001101(十進制為13)
可見9|5=13

~為單目運算符,具有右結合性。其功能是對參與運算的數的各二進位按位求反
例如:~9
~(0000000000001001)結果為:1111111111110110

按位異或運算符」 ^ 」是雙目運算符。其功能是參與運算的兩數各對應的二進位相異或。當兩對應的二進位相異時,結果為1。參與運算數仍以補碼出現
例如:9^5
00001001
^ 00000101
00001100(十進制為12)

左移運算符」 << 」是雙目運算符。其功能是把 」 << 」左邊的運算數的各二進位全部左移若干位,由」 << 」右邊的數指定移動的位數,高位丟棄,低位補0
例如:a=00000011(十進制3),a << 4,結果為:00110000(十進制48)

右移運算符」 >> 」是雙目運算符。其功能是把」 >> 」左邊的運算數的各二進制全部右移若干位,」 >> 」右邊的數指定移動的位數
例如:a=15(00001111),a >>2,結果為00000011(十進制3)

計算方法例:

※CRC碼計算還有一個好處:
我們希望不管m是多少位的,但是冗餘位r是越短越好,而且最好位數是固定的。用這CRC碼的好處就是生成多項式是多少階的,那麼最後的余數(冗餘位)的位數就是多少位。如果是n階的,那麼最後就是4位

循環冗餘校驗法檢驗不出來的錯的情況:收到的位串雖然是錯誤的,但是恰巧能被生成多項式整除,這個時候檢測不出來

適用於高層協議,如IP,TCP,UDP等
校驗碼放在前面或後面影響都不大,所以絕大多數是放在前面的
檢錯率低於循環冗餘校驗法
在↓例子中,如果第1位和第9位同時出錯,或者第2位和第10位同時出錯···出錯,那麼它們取反相加的數是不變的,這個時候是檢查不出錯的。但是網路當中連續突發的錯占絕大部分,這種跳躍性的出錯概率很小,所以檢驗和的檢錯率還是比較高的
高層不用冗餘校驗法的原因是,冗餘校驗法主要採用除的計算方式,比累加的(校驗和)計算方式效率要低,而數據鏈路層用這種方法可以用硬體實現,但是網路層和傳輸層一般只能通過軟體實現,那麼效率就降低了。而且數據鏈路層已經提供了比較可靠的支持,所以高層就可以用這種檢錯率相對低一點的檢錯法

檢驗欄位初值置0,數據拆分成與檢驗欄位等長的分片,不足部分補0,將所有分片逐位取反,並連續累加,丟棄最高進位,計算結果置於檢驗欄位。接收端執行相同的過程(分段處理,取反累加,把累加出的校驗和與校驗碼欄位當中保存的校驗和進行比對,如果是完全一致就沒錯),並將計算結果和傳輸過來的檢驗和進行比較以確定是數據是否出現差錯

閱讀全文

與網路鏈路監測如何實現相關的資料

熱點內容
蘋果網路支付買不了怎麼辦 瀏覽:709
網路安全宣傳周貴陽公安 瀏覽:800
飛行模式無線網路 瀏覽:20
被拉黑連不了網路怎麼辦 瀏覽:169
貓復位後沒有網路怎麼辦 瀏覽:440
電力監控系統網路安全管理體系 瀏覽:57
網路共享如何操作 瀏覽:559
中國電信通用網路密碼 瀏覽:458
手機在人群中網路很差是什麼原因 瀏覽:276
如何看待網路寶寶 瀏覽:111
哪個網站可以查看網路參數 瀏覽:392
海信小聚顯示網路未連接 瀏覽:241
蘋果電腦軟體怎麼設置無線網路 瀏覽:166
網路連接被中斷 瀏覽:736
安卓手機還原網路系統怎麼還原 瀏覽:466
光貓誤刪了網路設置上不了網 瀏覽:821
網路高級設置怎麼選 瀏覽:478
系統更新了wifi連不上網路 瀏覽:123
數字音響連接網路需要什麼設備 瀏覽:667
無線網路設置網速 瀏覽:38

友情鏈接