Router

網際網路路由需要幫助

  • May 22, 2011

尋找一些好的video lectures / book / articles東西,它以簡單的方式解釋了數據包是如何在 Internet 中移動的。搜尋了網路,但找不到一個好的。想知道數據包是如何移動的,MAC 地址的重要性,IP 和 MAC 地址的關係。尋找分步指南。諸如從通電到 Bash 提示之類的東西

我在之前的一篇文章中寫過關於IPv4 子網劃分和路由的文章。我沒有在那裡談論第 2 層/第 3 層的互動,所以我被困在醫院等待朋友的孩子出生,我將繼續在這裡稍微說明一下。

IP 是第 3 層協議,當 IP 數據報放入物理(第 1 層)介質時,它會被封裝到第 2 層協議中。地址解析協議 (ARP) 有助於促進第 2 層通信,以封裝主機之間的第 3 層流量。(ARP 可用於除 IP 之外的第 3 層協議和除乙太網之外的第 2 層協議,但出於本範例的目的,我堅持使用 IP over Ethernet。)

作為一個簡單的例子,想像兩台主機的 IP 地址和子網遮罩配置為使得兩台主機都在同一個子網中。這些主機連接到同一個乙太網廣播域。這些主機可以通過乙太網廣播進行通信,但是這會導致對廣播介質的使用效率低下(交換機將幀泛洪到所有目的地,雖然依賴於乙太網交換機而不是轉發單播流量作為一種安全機制是可笑的)。乙太網介質的最有效使用將是每個主機通過定址到另一個主機的單播媒體訪問控制 (MAC) 地址的數據包與另一個主機進行通信。ARP 允許主機“學習”彼此的 MAC 地址,以促進這種單播通信。

  • 主機A:IP地址10.0.0.1/24,MAC地址00:01:de:ad:be:ef
  • 主機B:IP地址10.0.0.2/24,MAC地址00:01:0b:ad:f0:0d

主機 A 有一個要傳送給主機 B 的數據報。主機 A 查詢其先前學習的 MAC 到 IP 地址映射的記憶體(稱為ARP 記憶體),並沒有找到與數據報的目標地址 (10.0.0.2) 匹配的條目。主機 A 發送一個 ARP 數據包,定址到乙太網廣播目標地址 (ff:ff:ff:ff:ff:ff),本質上是“詢問”問題“誰分配了 IP 地址 10.0.0.2?”。因為這是一個廣播數據包,乙太網交換機將此幀泛洪到所有目的地。

主機 B 接收到這個數據包,檢測到它自己的 IP 地址在這個廣播 ARP 數據包(“問題”)的“目標協議地址”欄位中,並用一個 ARP 數據包響應,地址是主機 A 的 MAC 地址(它它從廣播 ARP 請求中“學習”,從主機 A 的 MAC 地址發送),並將其自己的 MAC 地址替換為 ARP 數據包的“目標硬體地址”欄位。

主機 A 接收來自主機 B 的 ARP 響應。利用響應中包含的資訊,它就有足夠的知識將 IP 數據報(當封裝成乙太網幀時)定址到主機 B 的 MAC 地址。這導致來自主機的單播流量A 主持 B。

為了避免每個數據報都需要進行 ARP 交換,每個主機都會在一段時間內維護一個它“學習”的 IP 到 MAC 映射的記憶體。記憶體通常具有最大可能大小,並且映射的到期會阻止表填充。映射的到期還允許主機與不同的 MAC 地址進行通信(可能是由於更換了網路介面卡或其他原因)。典型的 ARP 記憶體過期時間從不到一分鐘到幾分鐘不等。

在由路由器分隔的主機的情況下,ARP 過程與上述過程相同,只是它發生在發送主機和將要向其發送數據包以進行最終傳遞的路由器之間。通常,主機會為其預設網關進行 ARP(因為大多數主機沒有配置多個靜態路由,而是只配置了一個到預設網關的路由器)。一旦主機擁有其預設網關的 IP 到 MAC 映射,並且發往其他子網中主機的 IP 數據報將被封裝在定址到預設網關路由器的 MAC 地址的乙太網幀中。

引用自:https://serverfault.com/questions/272343