天天看點

IP

IP是一個無連接配接的協定,主要就是負責在主機間尋址并為資料包設定路由,在交換資料前它并不建立會話。因為它不保證正确傳遞,另一方面,資料在被收到時,IP不需要收到确認,是以它是不可靠的。

有一些字段,在當資料從傳輸層傳下來時,會被附加在資料包中,我們來看一下這些字段:

源IP位址:用IP位址确定資料報發送者。

目标IP位址:用IP位址确定資料報目标。

協定:告知目的機的IP是否将包傳給TCP或UDP。

檢查和:一個簡單的數學計算,用來證明收到的包的完整性。

TTL生存有效時間:指定一個資料報被丢棄之前,在網絡上能停留多少時間(以秒計)。它避免了包在網絡中無休止循環。路由器會根據資料在路由器中駐留的時間來遞減TTL。其中資料報通過一次路由器,TTL至少減少一秒。

根據我們前面提到關于ARP的知識,如果IP位址目标為本地位址時,IP将資料包直接傳給那個主機;如果目标位址為遠端位址的話,IP在本地的路由表中查找遠端主機的路由(看來好象我們平時撥114一樣)。如果找到一個路由,IP用它傳送資料包。如果沒找到呢,就會将資料包發送到源主機的預設網關,也稱之為路由器。(很多時候一直在搞網關和路由器的定義,其實我覺得在學的時候不一定死摳概念,現在硬體和軟體結合的産品越來越多了,一時很厘清的,隻要我們運用的時候可以解決實際問題嘛。)

這樣當路由器收到一個包後,該包向上傳給IP:

(1)如果交通阻塞(聽起來蠻可怕的),包在路由器中停滞,TTL至少減1或更多。要是它降到0的話,包就會被抛棄。

(2)如果對于下一網絡來說包太大的話,IP會将它分割成若幹個小包。

(3)如果包被分解,IP為每個新包制造一個新頭,其中包括:一個标志,用來顯示其它小包在其後;一個小包ID,用來确定所有小包是一起的;一個小包偏移,用來告訴接收主機怎麼重新組合它們。

(4)IP計算一個新的檢驗和。

(5)IP擷取一個路由的目标硬體位址。

(6)IP轉發包。

在下一主機,包被發送到TCP或UDP。每個路由器都要重複該過程。直到包到達最終目的地。當包到達最終目的地後,IP将小包組裝成原來的包。

繼續閱讀