<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                從概念上說, IP路由選擇是簡單的,特別對于主機來說。如果目的主機與源主機直接相連(如點對點鏈路)或都在一個共享網絡上(以太網或令牌環網),那么IP數據報就直接送到目的主機上。否則,主機把數據報發往一默認的路由器上,由路由器來轉發該數據報。大多數的主機都是采用這種簡單機制。 在本節和第9章中,我們將討論更一般的情況,即IP層既可以配置成路由器的功能,也可以配置成主機的功能。當今的大多數多用戶系統,包括幾乎所有的Unix系統,都可以配置成一個路由器。我們可以為它指定主機和路由器都可以使用的簡單路由算法。本質上的區別在于主機從不把數據報從一個接口轉發到另一個接口,而路由器則要轉發數據報。內含路由器功能的主機應該從不轉發數據報,除非它被設置成那樣。在9.4小節中,我們將進一步討論配置的有關問題。 在一般的體制中,IP可以從TCP、UDP、ICMP和IGMP接收數據報(即在本地生成的數據報)并進行發送,或者從一個網絡接口接收數據報(待轉發的數據報)并進行發送。IP層在內存中有一個路由表。當收到一份數據報并進行發送時,它都要對該表搜索一次。當數據報來自某個網絡接口時, IP首先檢查目的IP地址是否為本機的IP地址之一或者IP廣播地址。如果確實是這樣,數據報就被送到由IP首部協議字段所指定的協議模塊進行處理。如果數據報的目的不是這些地址,那么(1)如果IP層被設置為路由器的功能,那么就對數據報進行轉發(也就是說,像下面對待發出的數據報一樣處理);否則(2)數據報被丟棄。 路由表中的每一項都包含下面這些信息: ? 目的I P地址。它既可以是一個完整的主機地址,也可以是一個網絡地址,由該表目中的標志字段來指定(如下所述)。主機地址有一個非0的主機號(見圖1-5),以指定某一特定的主機,而網絡地址中的主機號為0,以指定網絡中的所有主機(如以太網,令牌環網)。 ? 下一站(或下一跳)路由器(next-hop router)的IP地址,或者有直接連接的網絡IP地址。下一站路由器是指一個在直接相連網絡上的路由器,通過它可以轉發數據報。下一站路由器不是最終的目的,但是它可以把傳送給它的數據報轉發到最終目的。 ? 標志。其中一個標志指明目的IP地址是網絡地址還是主機地址,另一個標志指明下一站路由器是否為真正的下一站路由器,還是一個直接相連的接口(我們將在9.2節中詳細介紹這些標志)。 ? 為數據報的傳輸指定一個網絡接口。 IP路由選擇是逐跳地(hop-by-hop)進行的。從這個路由表信息可以看出, IP并不知道到達任何目的的完整路徑(當然,除了那些與主機直接相連的目的)。所有的IP路由選擇只為數據報傳輸提供下一站路由器的I P地址。它假定下一站路由器比發送數據報的主機更接近目的, 而且下一站路由器與該主機是直接相連的。 IP路由選擇主要完成以下這些功能: 1) 搜索路由表,尋找能與目的IP地址完全匹配的表目(網絡號和主機號都要匹配)。如果找到,則把報文發送給該表目指定的下一站路由器或直接連接的網絡接口(取決于標志字段的值)。 2) 搜索路由表,尋找能與目的網絡號相匹配的表目。如果找到,則把報文發送給該表目指定的下一站路由器或直接連接的網絡接口(取決于標志字段的值)。目的網絡上的所有主機都可以通過這個表目來處置。例如,一個以太網上的所有主機都是通過這種表目進行尋徑的。這種搜索網絡的匹配方法必須考慮可能的子網掩碼。關于這一點我們在下一節中進行討論。 3) 搜索路由表,尋找標為“默認(default)”的表目。如果找到,則把報文發送給該表目指定的下一站路由器。 如果上面這些步驟都沒有成功,那么該數據報就不能被傳送。如果不能傳送的數據報來自本機,那么一般會向生成數據報的應用程序返回一個“主機不可達”或“網絡不可達”的錯誤。 完整主機地址匹配在網絡號匹配之前執行。只有當它們都失敗后才選擇默認路由。默認路由,以及下一站路由器發送的ICMP間接報文(如果我們為數據報選擇了錯誤的默認路由),是IP路由選擇機制中功能強大的特性。我們在第9章對它們進行討論。為一個網絡指定一個路由器,而不必為每個主機指定一個路由器,這是IP路由選擇機制的另一個基本特性。這樣做可以極大地縮小路由表的規模,比如Internet上的路由器有只有幾千個表目,而不會是超過100萬個表目。 #### **舉例** 首先考慮一個簡單的例子:我們的主機bsdi有一個IP數據報要發送給主機sun。雙方都在同一個以太網上(參見扉頁前圖)。數據報的傳輸過程如圖3-3所示。 ![](https://box.kancloud.cn/2016-04-12_570c98915b98f.png) 當IP從某個上層收到這份數據報后,它搜索路由表,發現目的IP地址(140.252.13.33)在一個直接相連的網絡上(以太網140.252.13.0)。于是,在表中找到匹配網絡地址(在下一節中,我們將看到,由于以太網的子網掩碼的存在,實際的網絡地址是140.252.13.32,但是這并不影響這里所討論的路由選擇)。 數據報被送到以太網驅動程序,然后作為一個以太網數據幀被送到sun主機上(見圖2-1)。IP數據報中的目的地址是sun的IP地址(140.252.13.33),而在鏈路層首部中的目的地址是48bit的sun主機的以太網接口地址。這個48bit的以太網地址是用ARP協議獲得的,我們將在下一章對此進行描述。 ![](https://box.kancloud.cn/2016-04-12_570c989170dfe.png) 當sun收到數據報后,它發現數據報的目的IP地址并不是本機的任一地址,而sun已被設置成具有路由器的功能,因此它把數據報進行轉發。經過搜索路由表,選用了默認表目。根據sun的默認表目,它把數據報轉發到下一站路由器netb,該路由器的地址是140.252.1.183。 數據報是經過點對點SLIP鏈路被傳送的,采用了圖2-2所示的最小封裝格式。這里,我們沒有給出像以太網鏈路層數據幀那樣的首部,因為在SLIP鏈路中沒有那樣的首部。 當netb收到數據報后,它執行與sun主機相同的步驟:數據報的目的地址不是本機地址,而netb也被設置成具有路由器的功能,于是它也對該數據報進行轉發。采用的也是默認路由表目,把數據報送到下一站路由器gateway(140.252.1.4)。位于以太網140.252.1上的主機netb用ARP獲得對應于140.252.1.4的48bit以太網地址。這個以太網地址就是鏈路層數據幀頭上的目的地址。 路由器gateway也執行與前面兩個路由器相同的步驟。它的默認路由表目所指定的下一站路由器IP地址是140.252.104.2(我們將在圖8-4中證實,使用Traceroute程序時,它就是gateway使用的下一站路由器)。 對于這個例子需要指出一些關鍵點: 1) 該例子中的所有主機和路由器都使用了默認路由。事實上,大多數主機和一些路由器可以用默認路由來處理任何目的,除非它在本地局域網上。 2) 數據報中的目的IP地址始終不發生任何變化(在8.5節中,我們將看到,只有使用源路由選項時,目的IP地址才有可能被修改,但這種情況很少出現)。所有的路由選擇決策都是基于這個目的IP地址。 3) 每個鏈路層可能具有不同的數據幀首部,而且鏈路層的目的地址(如果有的話)始終指的是下一站的鏈路層地址。在例子中,兩個以太網封裝了含有下一站以太網地址的鏈路層首部,但是SLIP鏈路沒有這樣做。以太網地址一般通過ARP獲得。 在第9章,我們在描述了ICMP之后將再次討論IP路由選擇問題。我們將看到一些路由表的例子,以及如何用它們來進行路由決策的。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看