路由器簡介_ARP原理
發表時間:2023-07-11 來源:明輝站整理相關軟件相關文章人氣:
[摘要]最簡單的網絡可以想象成單線的總線, 各個計算機可以通過向總線發送分組以互相通信。 但隨著網絡中的計算機數目增長, 這就很不可行了, 會產生許多問題: 1、帶寬資源耗盡。 2、每臺計算機都浪...
最簡單的網絡可以想象成單線的總線, 各個計算機可以通過向總線發送分組以互相通信。 但隨著網絡中的計算機數目增長, 這就很不可行了, 會產生許多問題:
1、帶寬資源耗盡。
2、每臺計算機都浪費許多時間處理無關的廣播數據。
3、網絡變得無法管理, 任何錯誤都可能導致整個網絡癱瘓。
4、每臺計算機都可以監聽到其他計算機的通信。
把網絡分段可以解決這些問題, 但同時你必須提供一種機制使不同網段的計算機可以互相通信, 這通常涉及到在一些ISO網絡協議層選擇性地在網段間傳送數據, 我們來看一下網絡協議層和路由器的位置。

我們可以看到, 路由器位于網絡層。 本文假定網絡層協議為IPv4, 因為這是最流行的協議, 其中涉及的概念與其他網絡層協議是類似的。
一、路由與橋接
路由相對于2層的橋接/交換是高層的概念, 不涉及網絡的物理細節。 在可路由的網絡中, 每臺主機都有同樣的網絡層地址格式(如IP地址), 而無論它是運行在以太網、令牌環、FDDI還是廣域網。 網絡層地址通常由兩部分構成:網絡地址和主機地址。
網橋只能連接數據鏈路層相同(或類似)的網絡, 路由器則不同, 它可以連接任意兩種網絡, 只要主機使用的是相同的網絡層協議。
二、連接網絡層與數據鏈路層
網絡層下面是數據鏈路層, 為了它們可以互通, 需要“粘合”協議。 ARP(地址解析協議)用于把網絡層(3層)地址映射到數據鏈路層(2層)地址, RARP(反向地址解析協議)則反之。
雖然ARP的定義與網絡層協議無關, 但它通常用于解析IP地址;最常見的數據鏈路層是以太網。 因此下面的ARP和RARP的例子基于IP和以太網, 但要注意這些概念對其他協議也是一樣的。
1、地址解析協議
網絡層地址是由網絡管理員定義的抽象映射, 它不去關心下層是哪種數據鏈路層協議。 然而, 網絡接口只能根據2層地址來互相通信, 2層地址通過ARP從3層地址得到。
并不是發送每個數據包都需要進行ARP請求, 回應被緩存在本地的ARP表中, 這樣就減少了網絡中的ARP包。 ARP的維護比較容易, 是一個比較簡單的協議。
2、簡介
如果接口A想給接口B發送數據, 并且A只知道B的IP地址, 它必須首先查找B的物理地址, 它發送一個含有B的IP地址的ARP廣播請求B的物理地址, 接口B收到該廣播后, 向A回應其物理地址。

注意, 雖然所有接口都收到了信息, 但只有B回應該請求, 這保證了回應的正確且避免了過期的信息。 要注意的是, 當A和B不在同一網段時, A只向下一跳的路由器發送ARP請求, 而不是直接向B發送。

下圖為接收到ARP分組后的處理, 注意發送者的對被存到接收ARP請求的主機的本地ARP表中, 一般A想與B通信時, B可能也需要與A通信。

3、IP地址沖突
ARP產生的問題中最常見的是IP地址的沖突, 這是由于兩個不同的主機IP地址相同產生的, 在任何互聯的網絡中, IP地址必須是唯一的。 這時會收到兩個ARP回應, 分別指出了不同的硬件地址, 這是嚴重的錯誤, 沒有簡單的解決辦法。
為了避免出現這類錯誤, 當接口A初試化時, 它發送一個含有其IP地址的ARP請求, 如果沒有收到回應, A就假定該IP地址沒有被使用。 我們假定接口B已經使用了該IP地址, 那么B就發送一個ARP回應, A就可以知道該IP地址已被使用, 它就不能再使用該IP地址, 而是返回錯誤信息。 這樣又產生一個問題, 假設主機C含有該IP地址的映射, 是映射到B的硬件地址的, 它收到接口A的ARP廣播后, 更新其ARP表使之指向A的硬件地址。 為了解決這個錯誤, B再次發送一個ARP請求廣播, 這樣主機C又更新其ARP表再次指向B的硬件地址。 這時網絡的狀態又回到先前的狀態, 有可能C已經向A發送了應該發送給B的IP分組, 這很不幸, 但是因為IP提供的是無保證的傳輸, 所以不會產生大的問題。
4、管理ARP緩存表
ARP緩存表是對的列表, 根據IP地址索引。 該表可以用命令arp來管理, 其語法包括:
向表中添加靜態表項 -- arp -s
從表中刪除表項 -- arp -d
顯示表項 -- arp -a
ARP表中的動態表項(沒有手動加入的表項)通常過一段時間自動刪除, 這段時間的長度由特定的TCP/IP實現決定。
5、靜態ARP地址的使用 www.arpun.com
靜態ARP地址的典型使用是設置獨立的打印服務器, 這些設備通常通過telnet來配置, 但首先它們需要一個IP地址。 沒有明顯的方法來把此信息告訴該設備, 好象只能使用其串口來設置。 但是, 這需要找一個合適的終端和串行電纜, 設置波特率、奇偶校驗等, 很不方便。
假設我們想給一個打印服務器設置IP地址P-IP, 并且我們知道其硬件地址P-hard, 在工作站A上創建一個靜態ARP表項把P-IP映射到P-hard, 這樣, 雖然打印服務器不知道自己的IP地址, 但是所有指向P-IP的數據就將被送到P-hard。 我們現在就可以telnet到P-IP并配置其IP地址了, 然后再刪除該靜態ARP表項。

有時會在一個子網里配置打印服務器, 而在另一個子網里使用它, 方法與上面類似。 假設其IP地址為P-IP, 我們分配一個本網的臨時IP地址T-IP給它, 在工作站A上創建臨時ARP表項把T-IP映射到P-hard, 然后telnet到T-IP, 給打印服務器配以IP地址P-IP。 接下來就可以把它放到另一個子網里使用了, 別忘了刪除靜態ARP表項。

6、代理ARP
可以通過使用代理ARP來避免在每臺主機上配置路由表, 在使用子網時這特別有用, 但注意, 不是所有的主機都能理解子網的。 基本的思想是即使對于不在本子網的主機也發送ARP請求, ARP代理服務器(通常是網關)回應以網關的硬件地址, 見下圖, 注意與上面的圖比較一下。
代理ARP簡化了主機的管理, 但是增加了網絡的通信量(不是很明顯), 并且可能需要較大的ARP緩存, 每個不在本網的IP地址都被創建一個表項, 都映射到網關的硬件地址。 在使用代理ARP的主機看來, 世界就象一個大的沒有路由器物理網絡。

上面是電腦上網安全的一些基礎常識,學習了安全知識,幾乎可以讓你免費電腦中毒的煩擾。