計算機網絡設計與安全技術 課件6 ARP協議分析與程序設計_第1頁
計算機網絡設計與安全技術 課件6 ARP協議分析與程序設計_第2頁
計算機網絡設計與安全技術 課件6 ARP協議分析與程序設計_第3頁
計算機網絡設計與安全技術 課件6 ARP協議分析與程序設計_第4頁
計算機網絡設計與安全技術 課件6 ARP協議分析與程序設計_第5頁
已閱讀5頁,還剩9頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

《計算機網絡設計與安全技術》第6章ARP協議分析與程序設計1學習內容:(1)ARP協議格式;(2)ARP協議包分析;(3)ARP協議編程。學習目標:(1)熟練掌握ARP協議的工作原理和應用方法;(2)具備ARP協議模擬運行的程序設計能力。26.1ARP協議格式3

在網絡通信中,必須解決IP地址與MAC地址的映射問題,這種映射稱為地址解析,有靜態映射和動態映射兩種方法。相應的協議是地址解析協議ARP(AddressResolutionProtocol),工作在網絡層,負責將IP地址解析為MAC地址。

在實際應用中,一般將靜態映射和動態映射方法結合起來,這可以提高ARP的工作效率。實現的關鍵是在本地主機建立一個ARP高速緩存(ARPcache),里面包含所在局域網上的部分主機和路由器的IP地址到物理地址的映射表,這些都是該主機目前知道的一些地址。隨著時間的推移,該表的信息將動態地更新。46.1.1

ARP包格式由于物理幀長度范圍是[64B,1500B],而ARP幀結構固定為28B,CRC字段為4B,因此,不足64B的部分需要填充數據。ARP幀結構中的目的MAC不起作用,可填充為任意值。此時,ARP包中的填充數據要填充0。ARP幀格式56.1.2

ARP的工作原理66.2

ARP協議包分析6.2.1ARP命令操作

通過執行ARP命令,可以顯示和修改本地主機的ARP表信息。ARP命令格式7本地主機ARP表的地址映射信息86.2.2ARP包分析過程通過執行Ping命令示例,測試與主機IP地址的連通性。然后,顯示過濾出ARP包。96.2.3

ARP包間接交付如果源主機A和目的主機B不在同一網絡內,則需要經歷間接交付過程。在主機A的網絡層運行的IP進程,首先判斷A和B是不是在同一個局域網內。若是,直接交付主機B(使用ARP協議)。若不是,主機A把該數據包交給本地路由器(ARP)。然后,中間路由器一步步轉發,最后到達目的網絡。目的網絡路由器進行直接交付(使用ARP協議)。在這種情況下,ARP協議的執行可能會面對三種情況:(1)主機到路由器:要解析目的路由器的MAC地址;(2)路由器到路由器:要解析目的路由器的MAC地址;

(3)路由器到主機:要解析目的主機的MAC地址。106.2.4

ARP包實例正常的ARP請求包正常的ARP應答包116.3

ARP協議編程

若要實現ARP協議包的收發任務,則必須完成以下程序模塊:選擇網卡、構造ARP請求包、數據幀的發送、ARP包的接收及其解析、獲得ARP表信息并顯示等。6.3.1

通過ARP協議由IP地址獲取MAC地址usingSystem.Management;publicstringgetMac()//只能獲取本機的MAC地址{

ManagementClassmc=newManagementClass("Win32_NetworkAdapterConfiguration");

ManagementObjectCollectionmoc2=mc.GetInstances();

foreach(ManagementObjectmoinmoc2)

{

if((bool)mo["IPEnabled"]==true)

{

returnmo["MacAddress"].ToString();

mo.Dispose();

}

}

return"";}12可獲取局域網任意客戶機的MAC地址usingSystem.Runtime.InteropServices;usingSystem.Text;

[DllImport("Iphlpapi.dll")]staticexternintSendARP(Int32DestIP,Int32SrcIP,refInt64MacAddr,refInt32PhyAddrLen);

[DllImport("Ws2_32.dll")]staticexternInt32inet_addr(stringipaddr);

///<summary>///SendArp獲取MAC地址///</summary>///<paramname="RemoteIP">目標機器的IP地址(如)///<returns>目標機器的MAC地址</returns>publicstaticstringGetMacAddress(stringRemoteIP){

StringBuildermacAddress=newStringBuilder();

try

{

Int32remote=inet_addr(RemoteIP);

Int64macInfo=newInt64();

Int32length=6;

SendARP(remote,0,refmacInfo,reflength);

stringtemp=Convert.ToString(macInfo,16).PadLeft(12,'0').ToUpper();

intx=12;

for(inti=0;i<6;i++)

{

if(i==5)

{

macAddress.Append(temp.Substring(x-2,2));

}

else

{

macAddress.Append(temp.Substring(x-2,2)+"-");}

x-=2;

}

returnmacAddress.ToString();

}

catch

{

returnmacAddress.ToString();

}}136.3.2完整的ARP包收發程序設計本程序使用了Winpcap庫函數。ARP模擬程序運行界面:本章小結ARP協議是TCP/IP協議集中網絡層的重要協議,用于IP地址到MAC地址的解析。數據包從網絡層轉到局域網主機,ARP協議起到了重要作用。

本章首先介紹了ARP

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論