网络监听listen技术是什么原理?
原理
Ethernet協(xié)議的工作方式是將要發(fā)送的數(shù)據(jù)包發(fā)往連接在一起的所有主機(jī)。在包頭中包括有應(yīng)該接收數(shù)據(jù)包的主機(jī)的正確地址,因?yàn)橹挥信c數(shù)據(jù)包中目標(biāo)地址一致的那臺(tái)主機(jī)才能接收到信息包,但是當(dāng)主機(jī)工作在監(jiān)聽(tīng)模式下的話不管數(shù)據(jù)包中的目標(biāo)物理地址是什么,主機(jī)都將可以接收到。許多局域網(wǎng)內(nèi)有十幾臺(tái)甚至上百臺(tái)主機(jī)是通過(guò)一個(gè)電纜、一個(gè)集線器連接在一起的,在協(xié)議的高層或者用戶來(lái)看,當(dāng)同一網(wǎng)絡(luò)中的兩臺(tái)主機(jī)通信的時(shí)候,源主機(jī)將寫有目的的主機(jī)地址的數(shù)據(jù)包直接發(fā)向目的主機(jī),或者當(dāng)網(wǎng)絡(luò)中的一臺(tái)主機(jī)同外界的主機(jī)通信時(shí),源主機(jī)將寫有目的的主機(jī)IP地址的數(shù)據(jù)包發(fā)向網(wǎng)關(guān)。但這種數(shù)據(jù)包并不能在協(xié)議棧的高層直接發(fā)送出去,要發(fā)送的數(shù)據(jù)包必須從TCP/IP協(xié)議的IP層交給網(wǎng)絡(luò)接口,也就是所說(shuō)的數(shù)據(jù)鏈路層。網(wǎng)絡(luò)接口不會(huì)識(shí)別IP地址的。在網(wǎng)絡(luò)接口由IP層來(lái)的帶有IP地址的數(shù)據(jù)包又增加了一部分以太幀的幀頭的信息。在幀頭中,有兩個(gè)域分別為只有網(wǎng)絡(luò)接口才能識(shí)別的源主機(jī)和目的主機(jī)的物理地址這是一個(gè)48位的地址,這個(gè)48位的地址是與IP地址相對(duì)應(yīng)的,換句話說(shuō)就是一個(gè)IP地址也會(huì)對(duì)應(yīng)一個(gè)物理地址。對(duì)于作為網(wǎng)關(guān)的主機(jī),由于它連接了多個(gè)網(wǎng)絡(luò),它也就同時(shí)具備有很多個(gè)IP地址,在每個(gè)網(wǎng)絡(luò)中它都有一個(gè)。而發(fā)向網(wǎng)絡(luò)外的幀中繼攜帶的就是網(wǎng)關(guān)的物理地址。
Ethernet中填寫了物理地址的幀從網(wǎng)絡(luò)接口中,也就是從網(wǎng)卡中發(fā)送出去傳送到物理的線路上。如果局域網(wǎng)是由一條粗網(wǎng)或細(xì)網(wǎng)連接成的,那么數(shù)字信號(hào)在電纜上傳輸信號(hào)就能夠到達(dá)線路上的每一臺(tái)主機(jī)。再當(dāng)使用集線器的時(shí)候,發(fā)送出去的信號(hào)到達(dá)集線器,由集線器再發(fā)向連接在集線器上的每一條線路。這樣在物理線路上傳輸?shù)臄?shù)字信號(hào)也就能到達(dá)連接在集線器上的每個(gè)主機(jī)了。當(dāng)數(shù)字信號(hào)到達(dá)一臺(tái)主機(jī)的網(wǎng)絡(luò)接口時(shí),正常狀態(tài)下網(wǎng)絡(luò)接口對(duì)讀入數(shù)據(jù)幀進(jìn)行檢查,如果數(shù)據(jù)幀中攜帶的物理地址是自己的或者物理地址是廣播地址,那么就會(huì)將數(shù)據(jù)幀交給IP層軟件。對(duì)于每個(gè)到達(dá)網(wǎng)絡(luò)接口的數(shù)據(jù)幀都要進(jìn)行這個(gè)過(guò)程的。但是當(dāng)主機(jī)工作在監(jiān)聽(tīng)模式下的話,所有的數(shù)據(jù)幀都將被交給上層協(xié)議軟件處理。
當(dāng)連接在同一條電纜或集線器上的主機(jī)被邏輯地分為幾個(gè)子網(wǎng)的時(shí)候,那么要是有一臺(tái)主機(jī)處于監(jiān)聽(tīng)模式,它還將可以接收到發(fā)向與自己不在同一個(gè)子網(wǎng)(使用了不同的掩碼、IP地址和網(wǎng)關(guān))的主機(jī)的數(shù)據(jù)包,在同一個(gè)物理信道上傳輸?shù)乃行畔⒍伎梢员唤邮盏健?br /> 在UNIX系統(tǒng)上,當(dāng)擁有超級(jí)權(quán)限的用戶要想使自己所控制的主機(jī)進(jìn)入監(jiān)聽(tīng)模式,只需要向Interface(網(wǎng)絡(luò)接口)發(fā)送I/O控制命令,就可以使主機(jī)設(shè)置成監(jiān)聽(tīng)模式了。而在Windows9x的系統(tǒng)中則不論用戶是否有權(quán)限都將可以通過(guò)直接運(yùn)行監(jiān)聽(tīng)工具就可以實(shí)現(xiàn)了。
在網(wǎng)絡(luò)監(jiān)聽(tīng)時(shí),常常要保存大量的信息(也包含很多的垃圾信息),并將對(duì)收集的信息進(jìn)行大量的整理,這樣就會(huì)使正在監(jiān)聽(tīng)的機(jī)器對(duì)其它用戶的請(qǐng)求響應(yīng)變的很慢。同時(shí)監(jiān)聽(tīng)程序在運(yùn)行的時(shí)候需要消耗大量的處理器時(shí)間,如果在這個(gè)時(shí)候就詳細(xì)的分析包中的內(nèi)容,許多包就會(huì)來(lái)不及接收而被漏走。所以監(jiān)聽(tīng)程序很多時(shí)候就會(huì)將監(jiān)聽(tīng)得到的包存放在文件中等待以后分析。分析監(jiān)聽(tīng)到的數(shù)據(jù)包是很頭疼的事情。因?yàn)榫W(wǎng)絡(luò)中的數(shù)據(jù)包都非常之復(fù)雜。兩臺(tái)主機(jī)之間連續(xù)發(fā)送和接收數(shù)據(jù)包,在監(jiān)聽(tīng)到的結(jié)果中必然會(huì)加一些別的主機(jī)交互的數(shù)據(jù)包。監(jiān)聽(tīng)程序?qū)⑼籘CP會(huì)話的包整理到一起就相當(dāng)不容易了,如果你還期望將用戶詳細(xì)信息整理出來(lái)就需要根據(jù)協(xié)議對(duì)包進(jìn)行大量的分析。Internet上那么多的協(xié)議,運(yùn)行進(jìn)起的話這個(gè)監(jiān)聽(tīng)程序?qū)?huì)十分的大哦。
當(dāng)前網(wǎng)絡(luò)中所使用的協(xié)議都是較早前設(shè)計(jì)的,許多協(xié)議的實(shí)現(xiàn)都是基于一種非常友好的,通信的雙方充分信任的基礎(chǔ)。在通常的網(wǎng)絡(luò)環(huán)境之下,用戶的信息包括口令都是以明文的方式在網(wǎng)上傳輸?shù)?#xff0c;因此進(jìn)行網(wǎng)絡(luò)監(jiān)聽(tīng)從而獲得用戶信息并不是一件難點(diǎn)事情,只要掌握有初步的TCP/IP協(xié)議知識(shí)就可以輕松的監(jiān)聽(tīng)到你想要的信息的。前些時(shí)間美籍華人China-babble曾提出將望路監(jiān)聽(tīng)從局域網(wǎng)延伸到廣域網(wǎng)中,但這個(gè)想法很快就被否定了。如果真是這樣的話我想網(wǎng)絡(luò)必將天下大亂了。而事實(shí)上在廣域網(wǎng)里也可以監(jiān)聽(tīng)和截獲到一些用戶信息。只是還不夠明顯而已。在整個(gè)Internet中就更顯得微不足道了。監(jiān)聽(tīng)的協(xié)議分析
我們的研究從監(jiān)聽(tīng)程序的編寫開(kāi)始,用Linux C語(yǔ)言設(shè)計(jì)實(shí)現(xiàn)。
數(shù)據(jù)剖析
監(jiān)聽(tīng)
以太網(wǎng)上的數(shù)據(jù)幀主要涉及Tcp/ip協(xié)議,針對(duì)以下幾個(gè)協(xié)議的分析:IP,ARP,RARP,IPX,其中重點(diǎn)在于ip和 arp協(xié)議,這兩個(gè)協(xié)議是多數(shù)網(wǎng)絡(luò)協(xié)議的基礎(chǔ),因此把他們研究徹底,就對(duì)大多數(shù)的協(xié)議的原理和特性比較清楚了。 由于各種協(xié)議的數(shù)據(jù)幀個(gè)不相同,所以涉及很多的數(shù)據(jù)幀頭格式分析,接下來(lái)將一一描述。
在linux 下監(jiān)聽(tīng)網(wǎng)絡(luò),應(yīng)先設(shè)置網(wǎng)卡狀態(tài),使其處于雜混模式以便監(jiān)聽(tīng)網(wǎng)絡(luò)上的所有數(shù)據(jù)幀。然后選擇用Linux socket 來(lái)截取數(shù)據(jù)幀,通過(guò)設(shè)置socket() 函數(shù)參數(shù)值,可以使socket截取未處理的網(wǎng)絡(luò)數(shù)據(jù)幀,關(guān)鍵是函數(shù)的參數(shù)設(shè)置。
參考文章:網(wǎng)絡(luò)監(jiān)聽(tīng)技術(shù)
總結(jié)
以上是生活随笔為你收集整理的网络监听listen技术是什么原理?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 为什么两个数异或结果在与其中一个数异或得
- 下一篇: socket如何定义端口号才能避免和其他