TCP/IP 筆記之 IP協議

來源:互聯網
上載者:User
1、IP提供不可靠,不需連線的點對點傳輸方式。

不可靠(unreliable):僅提供最好的傳輸服務,並不保證能成功到達目的地。

無串連(connectionless):每個資料報的處理是獨立的,可以不按發送順序接收,每個報文都可以選擇不同的路線。

2、IP資料報的首部格式(一般為20B)

(1)、版本(4bit) 目前版本號碼是4,所以稱IPV4,(IPV6的地址是2的6+1次方,128bit)

(2)、首部長度(4bit)是首部佔4B的數目,由此可見首部最多是60B長

(3)、TOS欄位(1B):有3bit的優先順序欄位(現在不用了,000);4bit的TOS欄位,最後一bit恒為0

4bit的TOS欄位為:最小時延,最大輸送量,最高可靠性,最小費用。最多隻有一bit置1

(4)、總長度欄位(2B):以位元組為單位放的是這個ip資料報的總長度

(5)、標示(2B),標誌(3bit),片位移(13bit)欄位:在最後進行說明

(6)、TTL欄位(1B):time-to-live,資料報最多可以經過的路由器的數目

(7)、協議欄位(1B):上層的協議(ICMP:1, IGMP:2, TCP:6, UDP:17)

(8)、首部校正和(2B):計算時,置校正和欄位為0,然後把IP首部每16bit反碼求和,把結果填充該欄位;檢驗時,也是按首部16位反碼求和,如果結果全為1,則OK。
 
注意:由於TTL欄位的值每過一個路由器就減少1,因此校正和欄位每過一個路由器可能都有所變化。

(9)、由於IP首部長度欄位是4B的數目,所以選項欄位以32bit為界(不夠就加填充位元組)

3、IP路由選擇

(1)、過程,當IP層某個網路介面收到資料報時,首先檢查該報的IP地址是否是原生IP地址之一或者是廣播位址,如果是,處理;否則,如果IP層被設定為路由器功能,轉寄;沒有則丟棄

(2)、路由表項的主要內容:目的IP地址(可能是主機,也可能是網路地址),下一跳的路由器IP地址,標記,指定一個網路介面

(3)、路由選擇順序:先搜尋路由表,找與目的ip地址完全符合的表項;找與目的ip的網路地址匹配的表項;找表項為預設(default)的路由。

注意:如果中間路由器轉寄資料報時,如果是轉寄到下一跳的路由器地址,那麼該報的ip地址還是最終的目的地ip,但是目的mac地址改成下一跳路由器的mac地址。這種路由叫做間接路由。

4、子網定址:

(1)、子網劃分對外部路由器來說是屏蔽了的,也就是說外部路由器是看不到網路內部的子網組織形式;但對於子網內部的路由器是不透明的。

(2)、子網路遮罩 :用於瞭解一個ip地址那些是主機號,那些是網路號(網路號的判斷可以由ip的頭8bit,主機號的判斷由子網路遮罩中的0部分得到,而除了網路號和主機號,剩下的就是子網的號碼)

5、特殊的IP地址

(1)、A類地址127開頭的號碼,代表環回(慣例用的是127.0.0.1)

(2)、網路上的主機:全為0

(3)、網路上的特定主機:網路號為0,主機號為指定的主機號

(4)、廣播位址:(主機號全為1的時候):見廣播和多播

6、linux中查看ip相關的命令:ipconfig,netstat

7、IP分區(標示欄位,標誌欄位,片位移欄位的使用)

(1)、由於各個網路的mtu有所不同,當每個網路的mtu比ip包的長度小的時候,該路由器就對這個ip包進行分區。到了目的地之後,才進行重新組裝

(2)、分區時,複製這個ip包的首部,進行下面的修改: 標示欄位表明這個ip包的序號,所以在分區的過程中複製一份到分區的包中;標誌欄位的其中一個位元位表示還會有更多的片,除了最後一片外,該標誌欄位的這一個位元位為1;片位移欄位表示該片的資料距離原始包開始處的位置;此外,總長度欄位要變成該片的長度。

(3)標誌位還有一個位元是“不分區位”。如果該位為1,則出現該分區的情況時,不進行分區,而是丟棄該報,產生icmp差錯報文給源主機。

(4)、缺點:在傳輸的過程中,即使是丟失了一個分區都要重傳整個ip報文。udp一般容易導致分區,而tcp一般避免分區。

(5)、注意:分區時,僅複製ip報文的首部,所以上層協議(如udp的連接埠等資訊)只能在第一個分區中。(由此可見分區僅能分一次而已)。

(6)、分區的例子:

比如有個ip資料報長度為3056,在傳輸過程中,某網路的mtu = 1500,那麼進行分區:(該首部的標示欄位為14007)
以下的分區以如下格式輸出,僅列出ip報首部中改變的部分:

(標示,不可分區標誌,更多資料標誌,第三個標誌,片位移,該片的總長度)

分區1:(14007, 0, 1, 0, 0, 1500)(注意:這是第一分區,片位移為0,上層協議的資訊在該片中)
分區2:(14007, 0, 1, 0, 1500, 1500)
分區3:(14007, 0, 0, 0, 3000, 56)(注意:由於“更多資料”標誌為0,表示這個資料報的分區已經結束了)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.