日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IP转发

發布時間:2024/3/12 编程问答 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IP转发 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

當主機通信的目的地是直接相連的主機(例如點到點鏈接)或共享網絡(例如以太網),IP數據報直接發送到目的地,不需要或者不適用路由器。否則,主機將數據報發送到一臺路由器,由該路由器將數據報交付到目的地,這個過程可能要經過多個路由。這就是IP轉發。

大多數主機既可配置為路由器,也可配置為主機。主機與路由器的處理IP數據報的區別在于:主機不轉發那些不是由它生成的數據報,路由器會這樣做。在整個IP轉發方案中,IP協議可接收一個數據報,它可來自同一主機上的其他協議(TCP、UDP等),也可來自一個網絡接口。IP層包括一些位于內存中的信息,通常稱為路由表或轉發表,每次轉發一個數據報時需要從中查找信息。當一個網絡接口接收到一個數據報時,IP模塊首先檢查目的地址是否為自己的IP地址(與自己的某個網絡接口相關的IP地址),或是它可以接收其流量的一些其他地址,例如IP廣播或組播地址如果是的話,數據報交付給由IPv4頭部的協議字段或IPv6頭部的下一個頭部字段中指定的協議模塊(IP頭部內容詳見→傳送門1: IP數據報,傳送門2: IPv6擴展頭部)。如果不是:(1) 如果IP層配置為一臺路由器,則作為輸出的數據報處理,轉發該數據報;(2) 數據報被丟棄。在某些情況下,ICMP消息可能發送回源節點,以表明發生了一個錯誤。

轉發表

IP協議標準并沒有規定轉發表所需的精確數據,這個選擇工作留給IP協議的實現者。但IP轉發表通常需要包含幾個關鍵信息:

·目的地:一個32位IPv4地址字段或128位的IPv6字段,用于與一個掩碼操作結果相匹配。針對涵蓋所有目的地的“默認路由”的情況,目的地可以簡單地設為零;對于僅描述一個目的地的“主機路由”的情況,目的地可設為完整長度的IP地址。

·掩碼:一個32位IPv4字段或128位的IPv6字段,用作數據報目的IP地址按位與操作的掩碼。掩碼結果與轉發表條目中的多個目的地進行比較。

·下一跳:它是下一個IP實體(路由器或主機)的32位IPv4地址或128位IPv6地址,數據報將被轉發到該地址。下一跳實體通常在一個網絡中由執行轉發查找的系統所共享,這意味著它們共享同一網絡前綴。

·接口:接口包含一個由IP層使用的標識符,以確定將數據報發送到下一跳的網絡接口。例如802.11無線接口、有線的以太網接口或一個與串行端口的PPP接口。如果轉發IP系統也是IP數據報的發送方,該字段用于選擇輸出數據報的源IP地址。

目的地掩碼網關(下一跳)接口
0.0.0.00.0.0.010.0.0.110.0.0.100
10.0.0.0255.255.255.25510.0.0.10010.0.0.100

IP轉發逐跳進行,路由器和主機不包含到任何目的地的完整轉發路徑(除了那些直接連接主機或路由器的目的地)。IP轉發只提供數據報發送的下一跳實體的IP地址。它假設下一跳比當前“更接近”目的地,并且自己與下一跳實體之間沒有環路。路由協議有多種,例如RIP、OSPF、BGP和IS-IS。

轉發過程

當一臺主機或路由器中的IP層需要向下一跳的路由器或主機發送一個數據報時,它首先檢查數據報中的目的IP地址,在轉發表中使用該地址來執行最長前綴匹配算法:對轉發表的每一個條目,將其中的掩碼m與目的地址D進行按位與操作,得到的結果與條目中的目的地字段d進行比較,若相等則滿足匹配條件。所有條目中選出最長前綴(掩碼m中設置1的位數最多)作為下一跳IP地址。如果在轉發表中沒有發現匹配的條目,則這個數據報無法交付。

通常情況下,如果在本地出現無法交付的數據報,則向生成數據報的應用程序返回一個“主機不可達”錯誤。在一臺路由器上,ICMP消息通常返回給發送數據報的主機。

在某些情況下,可能有多個條目是匹配的(即1的位數一樣)。在這種情況下,協議標準沒有規定終端系統的具體行為,而是由具體操作系統的協議實現來決定。通常是簡單地選擇第一個匹配的結果。更復雜的系統可能嘗試在多個路由上平衡負載或拆分流量。

直接交付和間接交付

當所有系統使用相同的網絡前綴(例如處于同一以太網中),可以采用直接交付;另一種為間接交付。

直接交付不需要路由器,IP數據報封裝在一個鏈路層幀中,它可以直接識別數據來源或目的地。間接交付涉及路由器,數據轉發到這臺路由器,并使用該路由器的鏈路層地址作為目的地址。直接交付中,路由器的IP地址沒有出現在IP數據報中(除非路由器自己是源主機或目的主機,或者使用源路由時)。

在直接交付中,匹配路由條目中的網關(下一跳地址)包含發送主機的網絡接口(沒有涉及路由器),說明采用直接交付來發送數據報。這個數據報被封裝在一個低層幀中,并發送給目的主機。如果目的主機的低層地址未知,可能需要使用ARP協議(對于IPv4)或鄰居發現協議(對于IPv6)操作,以確定正確的低層地址。如果已經知道該地址,數據報中的目的地址是目的主機的IP地址,并將其放入低層頭部的目的IP地址字段中。

在間接交付中,IP地址對應于前面的源主機和目的主機,但低層地址不對應。實際上,低層地址決定哪臺機器在每跳的基礎上接收包含數據報的幀。在使用源路由的情況下,路由器對數據報進行網絡地址轉換(NAT),以使它在Internet中可路由。對數據報進行NAT處理,目的是生成新的源地址以便轉發。

IP單播轉發關鍵

·前面說到過默認路由的設置,實際上在Internet邊緣,大多數主機和路由器會使用一個對所有地址而不是而不是本地網絡中的目的地址的默認路由,這是因為只有一個借口可連接Internet的其他部分。

·在傳統的Internet中,數據報中的源IP地址和目的IP地址從不改變。除非是在使用源路由的情況下(間接交付中有提到),或沿著傳輸路徑遇到其他功能(例如NAT),否則情況永遠如此。

·不同的低層頭部用于每種鏈路上的尋址,低層的目的地址(如果存在)總是包含下一跳的低層地址。因此,當數據報沿著到目的地的每個跳步移動時,低層頭部經常發生變化。

?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?本文部分內容摘自《TCP/IP詳解:卷1(中文版)第2版》

總結

以上是生活随笔為你收集整理的IP转发的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。