混雜模式
混雜模式
[@more@]乙太網(Ethernet)具有共享介質的特徵,資訊是以明文的形式在網路上傳輸,當網路介面卡設定為監聽模式(混雜模式,Promiscuous)時,由於採用乙太網廣播通道爭用的方式,使得監聽系統與正常通訊的網路能夠並聯連線,並可以捕獲任何一個在同一衝突域上傳輸的資料包。IEEE802.3 標準的乙太網採用的是持續 CSMA 的方式,正是由於乙太網採用這種廣播通道爭用的方式,使得各個站點可以獲得其他站點傳送的資料。運用這一原理使資訊捕獲系統能夠攔截的我們所要的資訊,這是捕獲資料包的物理基礎。
乙太網是一種匯流排型的網路,從邏輯上來看是由一條匯流排和多個連線在匯流排上的站點所組成各個站點採用上面提到的 CSMA/CD 協議進行通道的爭用和共享。每個站點(這裡特指計算機透過的介面卡)網路卡來實現這種功能。網路卡主要的工作是完成對於匯流排當前狀態的探測,確定是否進行資料的傳送,判斷每個物理資料幀目的地是否為本站地址,如果不匹配,則說明不是傳送到本站的而將它丟棄。如果是的話,接收該資料幀,進行物理資料幀的 CRC 校驗,然後將資料幀提交給LLC 子層。
網路卡具有如下的幾種工作模式:
1) 廣播模式(Broad Cast Model):它的實體地址(MAC)地址是 0Xffffff 的幀為廣播幀,工作在廣播模式的網路卡接收廣播幀。
2)多播傳送(MultiCast Model):多播傳送地址作為目的實體地址的幀可以被組內的其它主機同時接收,而組外主機卻接收不到。但是,如果將網路卡設定為多播傳送模式,它可以接收所有的多播傳送幀,而不論它是不是組內成員。
3)直接模式(Direct Model):工作在直接模式下的網路卡只接收目地址是自己 Mac地址的幀。
4)混雜模式(Promiscuous Model):工作在混雜模式下的網路卡接收所有的流過網路卡的幀,信包捕獲程式就是在這種模式下執行的。
網路卡的預設工作模式包含廣播模式和直接模式,即它只接收廣播幀和發給自己的幀。如果採用混雜模式,一個站點的網路卡將接受同一網路內所有站點所傳送的資料包這樣就可以到達對於網路資訊監視捕獲的目的。
Sniffer類的軟體一般都採用將網路卡設定成混雜模式來獲取資料包,設為混雜模式之後,因為網路卡會接收所有能夠接收到的資料,所以這個時候的資料量非常大,所以在設定為混雜模式同時,一般要設定過濾條件。sniffer之類的軟體將網路卡設定為混雜模式,只是供自己監聽資料(根據使用者的要求自動設定過濾條件),在這類軟體退出之後會自動將網路卡還原為正常工作模式。
具體到程式設計實現上,這種對網路卡混雜模式的設定是透過原始套接字(raw socket)來實現的,這也有別於通常經常使用的資料流套接字和資料包套接字。在建立了原始套接字後,需要透過setsockopt()函式來設定IP頭操作選項,然後再透過bind()函式將原始套接字繫結到本地網路卡。為了讓原始套接字能接受所有的資料,還需要透過ioctlsocket()來進行設定,而且還可以指定是否親自處理IP頭。至此,實際就可以開始對網路資料包進行嗅探了,對資料包的獲取仍象流式套接字或資料包套接字那樣透過recv()函式來完成。但是與其他兩種套接字不同的是,原始套接字此時捕獲到的資料包並不僅僅是單純的資料資訊,而是包含有 IP頭、 TCP頭等資訊頭的最原始的資料資訊,這些資訊保留了它在網路傳輸時的原貌。透過對這些在低層傳輸的原始資訊的分析可以得到有關網路的一些資訊。由於這些資料經過了網路層和傳輸層的打包,因此需要根據其附加的幀頭對資料包進行分析。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23168012/viewspace-1045777/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- web基礎(四)嚴格模式與混雜模式Web模式
- linux 下怎樣檢視網路卡是否支援混雜(promisc)模式Linux模式
- 面試— !Doctype的作用,嚴格模式和混雜模式的區別、以及如何觸發兩種模式面試模式
- 複雜混亂系統的三種應對方式
- 【雜談】策略模式模式
- 其他混雜檢視 | 全方位認識 sys 系統庫
- 設計模式雜談設計模式
- Server 層混雜資訊字典表 | 全方位認識 information_schemaServerORM
- 谷歌無人駕駛汽車是存在“混駕”模式的谷歌模式
- 其他混雜儲存過程 | 全方位認識 sys 系統庫儲存過程
- PHP 設計模式(雜項)PHP設計模式
- JavaScript 設計模式 :用組合模式寫出複雜元件JavaScript設計模式元件
- 百度搜尋中“魚龍混雜”的加盟資訊,如何靠AI 解決?AI
- 魚龍混雜,社會的邊緣 聊聊電子遊戲中的“灰色自由地帶”遊戲
- 魚龍混雜的低程式碼市場,企業選型需關注哪些重點?
- 快速迭代業務背景下:設計模式混編的一次嘗試設計模式
- 如何使用建造者模式構造複雜物件?模式物件
- 混編ObjectiveC++ObjectC++
- 教育原始碼市場魚龍混雜,應如何避雷?如何選擇教育培訓網站原始碼?原始碼網站
- 報表工具魚龍混雜?不知道怎麼選?無法滿足這10點,都是坑!
- 外觀模式-簡化子系統的複雜性模式
- MASS雜湊模式系統開發流程詳情模式
- 操作複雜物件結構——訪問者模式(四)物件模式
- 操作複雜物件結構——訪問者模式(三)物件模式
- 操作複雜物件結構——訪問者模式(二)物件模式
- “薅羊毛”漏洞分析 | 我是如何到處“混吃混喝”的
- OC和Swift混編Swift
- 線上教育機構魚龍混雜,消費者應該如何辨別網路課堂的好壞?
- 騰訊混元大模型全面降價!混元-lite即日起免費大模型
- 複雜物件的組裝與建立——建造者模式(三)物件模式
- 複雜物件的組裝與建立——建造者模式(二)物件模式
- 複雜物件的組裝與建立——建造者模式(一)物件模式
- 設計模式系列之建造者模式(Builder Pattern)——複雜物件的組裝與建立設計模式UI物件
- 滴滴出行因違規收集個人資訊被下架:必須整治魚龍混雜的應用市場
- 世鏈財經|國外區塊鏈媒體魚龍混雜,如何選擇優質媒體平臺區塊鏈
- iZotope Neoverb 智慧混響助手
- java基礎易混點Java
- 奇怪的session混亂問題Session