<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-17  評論-64  文章-79  trackbacks-1

    ??

    ?? ? ???? 首先要感謝網絡安全資深專家盧湖川博士以及 VC 網絡版的 limin 朋友提供的資料以及幫助 ^_^

    經常看到論壇有人問起關于數據包的截獲、分析等問題,幸好本人也對此略有所知,所以就想寫一系列的文章來詳細深入的探討關于數據包的知識,,我希望通過這一系列的文章,能使得關于數據包的知識得以普及,所以這系列的每一篇文章我都會有由淺入深的解釋、詳細的分析、以及編碼步驟,另外附上帶有詳細注釋的源碼 ( 為了照顧大多數朋友,我提供的都是 MFC 的源碼 )

    不過由于也是初學者,疏漏之處還望不吝指正。

    本文凝聚著筆者心血,如要轉載,請指明原作者及出處,謝謝! ^_^

    ?

    OK,. Let’s go !? Have fun ! q^_^p

    ?

    第一篇 ????? ??? 手把手教你玩轉 ARP

    ?? 目錄:

    ??? 一??? 關于 ARP 協議的基礎知識

    ???? 1.??????? ARP 的工作原理

    ???? 2.??????? ARP 包的格式

    作者:

    ??? CSDN? VC/MFC 網絡編程 PiggyXP ?^_^

    ?

    一. ???????????? 關于 ARP 協議的基礎知識

    1 ARP 的工作原理

    本來我不想在此重復那些遍地都是的關于 ARP 的基本常識,但是為了保持文章的完整性以及照顧初學者,我就再啰嗦一些文字吧,資深讀者可以直接跳過此節。

    ?

    我們都知道以太網設備比如網卡都有自己全球唯一的 MAC 地址,它們是以 MAC 地址來傳輸以太網數據包的,但是它們卻識別不了我們 IP 包中的 IP 地址,所以我們在以太網中進行 IP 通信的時候就需要一個協議來建立 IP 地址與 MAC 地址的對應關系,以使 IP 數據包能發到一個確定的地方去。這就是 ARP(Address Resolution Protocol ,地址解析協議 )

    ?

    講到此處,我們可以在命令行窗口中,輸入

    ???? arp –a

    來看一下效果,類似于這樣的條目

    210.118.45.100??? 00-0b-5f-e6-c5-d7??? dynamic

    就是我們電腦里存儲的關于IP地址與MAC地址的對應關系,dynamic表示是臨時存儲在ARP緩存中的條目,過一段時間就會超時被刪除(xp/2003系統是2分鐘)

    ?

    這樣一來,比如我們的電腦要和一臺機器比如210.118.45.1通信的時候,它會首先去檢查arp緩存,查找是否有對應的arp條目,如果沒有,它就會給這個以太網絡發ARP請求包廣播詢問210.118.45.1的對應MAC地址,當然,網絡中每臺電腦都會收到這個請求包,但是它們發現210.118.45.1并非自己,就不會做出相應,而210.118.45.1就會給我們的電腦回復一個ARP應答包,告訴我們它的MAC地址是xx-xx-xx-xx-xx-xx,于是我們電腦的ARP緩存就會相應刷新,多了這么一條:

    210.118.45.1?? xx-xx-xx-xx-xx-xx?? dynamic

    ?

    為什么要有這么一個ARP緩存呢,試想一下如果沒有緩存,我們每發一個IP包都要發個廣播查詢地址,豈不是又浪費帶寬又浪費資源?

    ? ?? 而且我們的網絡設備是無法識別ARP包的真偽的,如果我們按照ARP的格式來發送數據包,只要信息有效計算機就會根據包中的內容做相應的反應.

    ?

    試想一下,如果我們按照ARP響應包的相應的內容來刷新自己的ARP緩存中的列表,嘿嘿,那我們豈不是可以根據這點在沒有安全防范的網絡中玩些ARP包的小把戲了?在后面的文章里我就手把手來教你們如何填充發送ARP包,不過先別急,我們再繼續學點基礎知識^_^

    ?

    2 ARP包的格式

    ?

    ???? 既然我們要來做一個我們自己的ARP包,當然首先要學習一下ARP包的格式。

    ?

    ???? 從網絡底層看來,一個ARP包是分為兩個部分的, 前面一個是物理幀頭,后面一個才是 ARP

    ???????? 首先,物理幀頭,它將存在于任何一個協議數據包的前面,我們稱之為 DLC Header ,因為這個幀頭是在數據鏈路層構造的,并且其主要內容為收發雙方的物理地址,以便硬件設備識別。 ?

    DLC Header

    字段

    長度(Byte)

    默認值

    備注

    接收方MAC

    6

    ?

    廣播時, ff-ff-ff-ff-ff-ff

    發送方MAC

    6

    ?

    ?

    Ethertype

    2

    0x0806

    0x0806 ARP幀的類型值

    ?????????????????????????? 1 物理幀頭格式

    ?

    ???? 1是需要我們填充的物理幀頭的格式,我們可以看到需要我們填充的僅僅是發送端和接收端的物理地址罷了,是不是很簡單呢?

    ? ???? 接下來我們看一下ARP幀的格式. ?

    ARP Frame

    字段

    長度(Byte)

    默認值

    備注

    硬件類型

    2

    0x1

    以太網類型值

    上層協議類型

    2

    0x0800

    上層協議為IP協議

    MAC 地址長度

    1

    0x6

    以太網MAC地址長度為 6

    IP 地址長度

    1

    0x4

    IP 地址長度為 4

    操作碼

    2

    ?

    0x1 表示ARP請求包,0x2表示應答包

    發送方MAC

    6

    ?

    ?

    發送方IP

    4

    ?

    ?

    接收方MAC

    6

    ?

    ?

    接收方IP

    4

    ?

    ?

    填充數據

    18

    ?

    因為物理幀最小長度為64字節,前面的42字節再加上4CRC校驗字節,還差18個字節

    ???????????????????????????? 2 ARP幀格式

    ?

    我們可以看到需要我們填充的同樣也只是MAC,IP,再加上一個12的操作碼而已。

    posted on 2007-02-16 15:39 飛鳥 閱讀(332) 評論(0)  編輯  收藏 所屬分類: VC
    主站蜘蛛池模板: 国产人成亚洲第一网站在线播放| 亚洲一级毛片免费观看| 日本人成在线视频免费播放| avtt天堂网手机版亚洲| 国产传媒在线观看视频免费观看| 中文字幕一区二区三区免费视频| 亚洲成a人片毛片在线| www亚洲精品少妇裸乳一区二区 | 国产91免费视频| 免费的黄网站男人的天堂| 亚洲成a人片在线观看中文动漫| 免费无码又爽又刺激毛片| 国产在线播放线91免费| 亚洲精品无码少妇30P| 久久精品国产99精品国产亚洲性色| 无码专区永久免费AV网站| 最新久久免费视频| 亚洲AV无码成人网站在线观看| 亚洲国产精品人久久| 亚洲国产成人久久精品99| 91香蕉视频免费| 无码日韩精品一区二区免费暖暖| 爱情岛亚洲论坛在线观看 | 亚洲欧洲视频在线观看| 精品国产日韩亚洲一区| 在线视频免费观看www动漫| 性xxxxx大片免费视频| 中美日韩在线网免费毛片视频| tom影院亚洲国产一区二区| 亚洲成在人天堂在线| 亚洲美女在线国产| 啦啦啦高清视频在线观看免费 | 亚洲综合一区国产精品| 久久91亚洲精品中文字幕| 国产精品国产自线拍免费软件| 真人做人试看60分钟免费视频| 国产无遮挡无码视频免费软件| 日韩精品免费一线在线观看| 亚洲欧美日韩综合俺去了| 亚洲一级片在线播放| 亚洲精品在线播放视频|