IP無連接協(xié)議的意義
對于IP協(xié)議,我們都知道它是和網(wǎng)絡地址息息相關的。那么我們?nèi)绾握_定義IP協(xié)議的意義呢?這個協(xié)議在最初定制的時候,就是一個無連接協(xié)議。具體什么是IP無連接協(xié)議讓我們從后文來慢慢體會。
IP是一個無連接的協(xié)議,主要就是負責在主機間尋址并為數(shù)據(jù)包設定路由,在交換數(shù)據(jù)前它并不建立會話。因為它不保證正確傳遞,另一方面,數(shù)據(jù)在被收到時,IP不需要收到確認,所以它是不可靠的。
有一些字段,在當數(shù)據(jù)從傳輸層傳下來時,會被附加在數(shù)據(jù)包中,我們來看一下這些字段:
源IP地址:用IP地址確定數(shù)據(jù)報發(fā)送者。
目標IP地址:用IP地址確定數(shù)據(jù)報目標。
協(xié)議:告知目的機的IP是否將包傳給TCP或UDP。
檢查和:一個簡單的數(shù)學計算,用來證實收到的包的完整性。
TTL生存有效時間:指定一個數(shù)據(jù)報被丟棄之前,在網(wǎng)絡上能停留多少時間(以秒計)。它避免了包在網(wǎng)絡中無休止循環(huán)。路由器會根據(jù)數(shù)據(jù)在路由器中駐留的時間來遞減TTL。其中數(shù)據(jù)報通過一次路由器,TTL至少減少一秒。
根據(jù)我們前面提到關于ARP的知識,如果IP無連接協(xié)議的地址目標為本地地址時,IP將數(shù)據(jù)包直接傳給那個主機;如果目標地址為遠程地址的話,IP在本地的路由表中查找遠程主機的路由(看來好象我們平時撥114一樣)。如果找到一個路由,IP用它傳送數(shù)據(jù)包。如果沒找到呢,就會將數(shù)據(jù)包發(fā)送到源主機的缺省網(wǎng)關,也稱之為路由器。(很多時候一直在搞網(wǎng)關和路由器的定義,其實我覺得在學的時候不一定死摳概念,現(xiàn)在硬件和軟件結合的產(chǎn)品越來越多了,一時很分清的,只要我們運用的時候可以解決實際問題嘛。)
這樣當路由器收到一個包后,該包向上傳給IP無連接協(xié)議:
(1)如果交通阻塞(聽起來蠻可怕的),包在路由器中停滯,TTL至少減1或更多。要是它降到0的話,包就會被拋棄。
(2)如果對于下一網(wǎng)絡來說包太大的話,IP會將它分割成若干個小包。
(3)如果包被分解,IP無連接協(xié)議為每個新包制造一個新頭,其中包括:一個標志,用來顯示其它小包在其后;一個小包ID,用來確定所有小包是一起的;一個小包偏移,用來告訴接收主機怎么重新組合它們。
(4)IP計算一個新的檢驗和。
(5)IP獲取一個路由的目標硬件地址。
(6)IP轉(zhuǎn)發(fā)包。
在下一主機,包被發(fā)送到TCP或UDP。每個路由器都要重復該過程。直到包到達最終目的地。當包到達最終目的地后,IP無連接協(xié)議將小包組裝成原來的包。