TCP/IP协议--ARP协议(有了IP地址为什么还需要ARP协议)
如何才能知道自己PC的IP地址?一個很簡單的方法是使用ipconfig/all命令,如下圖:
?????? 如果你的PC中安裝有多個網(wǎng)卡,那么相對于每塊網(wǎng)卡Ethernet? adapter項所顯示的內(nèi)容都會有所不同,相信大多數(shù)PC上顯示的都是“本地連接”,這是中文版WIDNOWS XP系統(tǒng)中以太網(wǎng)卡的默認(rèn)命名。此處Physical Address項目所顯示的就是“本地連接”的MAC地址。
在以太網(wǎng)中,如果主機A需要向主機B發(fā)送數(shù)據(jù),在發(fā)送前必須先解決一個問題——我怎么才能知道主機B“位置”呢?可能有人會說我知道主機B的IP地址啊……,但實際上,在以太網(wǎng)環(huán)境中數(shù)據(jù)的傳輸所依懶的是MAC地址而非IP地址,而將已知IP地址轉(zhuǎn)換為MAC地址的工作是由ARP協(xié)議來完成的。
ARP協(xié)議是“Address Resolution Protocol”(地址解析協(xié)議)的縮寫。在局域網(wǎng)中,網(wǎng)絡(luò)中實際傳輸?shù)氖恰皫?#xff0c;幀里面是有目標(biāo)主機的MAC地址的。在以太網(wǎng)中,一個主機和另一個主機進(jìn)行直接通信,必須要知道目標(biāo)主機的MAC地址。但這個目標(biāo)MAC地址是如何獲得的呢?它就是通過地址解析協(xié)議獲得的。所謂“地址解析”就是主機在發(fā)送幀前將目標(biāo)IP地址轉(zhuǎn)換成目標(biāo)MAC地址的過程。ARP協(xié)議的基本功能就是通過目標(biāo)設(shè)備的IP地址,查詢目標(biāo)設(shè)備的MAC地址,以保證通信的順利進(jìn)行。
在每臺安裝有TCP/IP協(xié)議的電腦里都有一個ARP緩存表,表里的IP地址與MAC地址是一一對應(yīng)的,我們可以使用arp –a命令查看當(dāng)前緩存表,如下圖:?
我們以主機A(192.168.1.5)向主機B(192.168.1.1)發(fā)送數(shù)據(jù)為例。當(dāng)發(fā)送數(shù)據(jù)時,主機A會在自己的ARP緩存表中尋找是否有目標(biāo)IP地址。如果找到了,也就知道了目標(biāo)MAC地址,直接把目標(biāo)MAC地址寫入幀里面發(fā)送就可以了;如果在ARP緩存表中沒有找到相對應(yīng)的IP地址,主機A就會在網(wǎng)絡(luò)上發(fā)送一個廣播,目標(biāo)MAC地址是“FF.FF.FF.FF.FF.FF”,這表示向同一網(wǎng)段內(nèi)的所有主機發(fā)出這樣的詢問:“192.168.1.1的MAC地址是什么?”網(wǎng)絡(luò)上其他主機并不響應(yīng)ARP詢問,只有主機B接收到這個幀時,才向主機A做出這樣的回應(yīng):“192.168.1.1的MAC地址是00-aa-00-62-c6-09”。這樣,主機A就知道了主機B的MAC地址,它就可以向主機B發(fā)送信息了。同時它還更新了自己的ARP緩存表,下次再向主機B發(fā)送信息時,直接從ARP緩存表里查找就可以了。ARP緩存表采用了老化機制,在一段時間內(nèi)如果表中的某一行沒有使用,就會被刪除,這樣可以大大減少ARP緩存表的長度,加快查詢速度。
下面我們通過一個實例來簡單說明一下ARP協(xié)議是如何工作的:如下圖,小編首先使用arp –d命令將ARP緩存表清空,第二步Ping一個IP地址192.168.99.252,第三步使用arp –a命令查看ARP緩存表,這時表中出現(xiàn)了一條? 192.168.99.252? 00-19-21-0a-95-9d? dynamic? 記錄,該條記錄的類型為Dynamic,意思是說,這條記錄是動態(tài)產(chǎn)生的。ARP記錄也會出現(xiàn)靜態(tài)的記錄條目,相應(yīng)的類型為static。正如前面所說的,ARP緩存表具有老化機制,幾分鐘后小編再次使用arp –a命令查看緩存表,剛才的那條記錄已經(jīng)不存在了。??
下圖是小編使用wireshark(一個抓包工具)抓到的剛才ARP數(shù)據(jù)包的信息,由于在本機ARP緩存表中沒有IP地址192.168.99.252相對應(yīng)的MAC地址記錄,所以在通訊之前系統(tǒng)會向網(wǎng)絡(luò)中首先發(fā)送一個廣播包——所有字符都為”f”的MAC地址,用來詢問192.168.99.252的MAC地址是什么?局域網(wǎng)中所有的PC都將收到這個廣播包,但只有IP地址為192.168.99.252的PC才會對此請求作出回應(yīng)——告之192.168.99.204我的MAC地址是00:19:21:0a:95:9d,其它PC則將數(shù)據(jù)包直接丟棄,在發(fā)送方知到了目的主機的MAC地址后便可以進(jìn)行通訊了。
總結(jié)
以上是生活随笔為你收集整理的TCP/IP协议--ARP协议(有了IP地址为什么还需要ARP协议)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java集合框架总结之思维导图
- 下一篇: 扩展的欧几里得算法