IP無連接協議的意義
對于IP協議,我們都知道它是和網絡地址息息相關的。那么我們如何正確定義IP協議的意義呢?這個協議在最初定制的時候,就是一個無連接協議。具體什么是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無連接協議將小包組裝成原來的包。