<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## IP協議 兩個計算機在英特網中傳遞數據時,先是通過ip找到目標計算機所在的網絡。然后再子網絡的內部,通過廣播的方式找到該子網絡中的哪個設備。 * **分層實現:**對網路協議進行分層以后,數據鏈路層的實現不需要考慮數據之間的轉發,網絡層的實現不需要考數據鏈路層的影響。 * **分工合作:**IP地址是會隨著主機接入網絡的不同而發生改變的,而MAC一般不會改變。這樣的話,我們可以使用IP地址進行尋址,當數據報和目的主機處于同一網絡時,就使用MAC地址進行數據交付。 ## IP報文 * **生存時間(TTL,Time To Live)**:占用8位二進制位,它指定了數據報可以在網絡中傳輸的最長時間。實際應用中把生存時間字段設置成了數據報可以經過的最大路由器數。TTL的初始值由源主機設置(通常為32、64、128或256),一旦經過一個處理它的路由器,它的值就減1。當該字段為0時,數據報就丟棄,并發送ICMP報文通知源主機,因此可以防止進入一個循環回路時,數據報無休止地傳輸下去。 * **上層協議標識**:占用8位二進制位,IP協議可以承載各種上層協議,目標端根據協議標識就可以把收到的IP數據報送到TCP或UDP等處理此報文的上層協議了。 ## ARP協議 前面說到IP地址用來尋址,當目的地址和數據報處于同一網絡時,MAC地址用來交付數據報。現在有一個問題,主機A要給主機B發送消息,消息經過一系列地轉發,終于找到了主機B的IP地址。但是,我們都知道,數據在鏈路層的傳輸是需要MAC地址的,僅僅知道B的IP地址是無法進行通信的。請看下面這張圖: ![](https://img.kancloud.cn/d6/7d/d67d916ebb8c73c7842539b19514b5f8_1240x892.jpeg) 這個時候,ARP協議就派上用場了。ARP全稱是地址解析協議(Address Resolution Protocol),其基本功能為透過目標設備的IP地址,查詢目標設備的MAC地址,以保證通信的順利進行,它是IPv4中網絡層必不可少的協議。 **如同交換機工作在數據鏈路層一樣,路由器是工作在網絡層的。交換機有CAM表,路由器也有路由表。** 現在路由器要給主機B發送一條消息,必須得知道主機B的MAC地址才能進行通信。這個時候路由器會發送一個ARP請求,該請求是以廣播的形式發送的,每一臺連接到該路由器的主機都收到得到這條消息。但是只有主機B檢查到自己的IP地址符合要求。于是主機B發送給路由器一條ARP響應,把自己的MAC的地址告訴了路由器。就像下面圖示的那樣: ![](https://img.kancloud.cn/a2/6a/a26aec4edca72d59f982a6be1d73e434_1588x988.jpeg) 每次路由器發送一個ARP請求的時候,就會增加一條數據,這一條數據記錄了IP地址對應的MAC地址,這樣路由器下次再給該主機發送消息的時候就不用廣播了。當然如同交換機的CAM表中的數據有生存了時間一樣,路由表中的數據也有生存時間。試想一下,如果數據一直存在,那么路由器豈不是需要花大量的存儲空間來緩存已經失效的數據。
                  <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>

                              哎呀哎呀视频在线观看