網絡層--IP協議簡要筆記

IP協議是“不可靠無連接”的傳輸協議,作爲TCP/UDP的基礎協議,其作用和地位不可置疑,以下做簡要的筆記,注意本文主要是針對IPV4;
參考《TCP/IP詳解 卷1 協議》


一. 協議定義和組成

這裏寫圖片描述
如上圖所示,IP協議首部至少包含20個字節,這20個字節中描述了IP協議包的基本信息;
1.版本(4bit):描述IP協議的版本;
2.首部長度(4bit):4bit表示最多15個32bit字(即60個字節=20字節+額外的字節);
3.服務類型(TOS,8bit):“優先權子字段(3bit,基本廢棄)”、“TOS子字段(4bit,分別代表最小時延、最大吞吐量、最高可靠性、最小費用)”、“未用位(1bit)”;
4.協議總長度(16bit):表示最多65535個字節;
5.標識(16bit):用於標識IP包的唯一性,每生成一個數據包,該數字自增;
6.分片標誌(3bit):用於告訴IP層,該IP包在是否分片(若分片則等所有包到了才處理);
7.分片偏移(13bit):用於告訴IP層,該IP包在完整IP包中分片偏移;
7.生存時間(TTL,8bit):數據包最多可以經過的路由層數(通常爲32或者64),每經過一層路由ttl–,當ttl爲0時,路由器發送icmp報文通知主機;
8.協議(8bit):用於表示該IP包用於什麼協議,注意該編碼時網絡層自身的編碼,和上層如傳輸層的編碼無關;
9.首部校驗和(16bit):將首部每兩個字節取反求和(其中的16位檢驗碼部分置0計算),用於校驗首部的正確性;
10. 源IP和目的IP(各32bit)

注意:在網絡數據流中,IP包是以大端(big endian)的形式封裝


二. 其他的一些相關知識

  1. 鏈路層中最小的數據幀長爲46字節,但並不要求能夠接收超過576個字節,因此IP層就出現了分片的需求;而TCP包在傳輸層就對用戶數據進行了分片,即這個對TCP的傳輸效率影響不大;而應用層中使用UDP的高層協議如TFTP,則限制了用戶數據長度爲512個字節;但現實是,大多數的實現允許超過8192(8K)個字節的IP數據報;
  2. IP層在內存中維護着一個路由表,用於快速進行ARP查詢;
  3. NAT中Ping的處理,是利用icmp中的標識符完成類似於tcp/udp端口的作用;

三. IP層中路由的基本知識

1.網絡地址和主機地址共同組成了IP地址(IP地址&地址掩碼=網絡地址,ip地址-網絡地址=主機地址);
2.對於接收到的IP包,IP層首先判斷自身是否目的地址或者該包是否廣播包,如果是的話,則交給指定的協議模塊進行處理,如果否定的話,若開啓路由模式則根據路由表對IP包進行轉發,否則拋棄這個IP包;
3.路由表中每一項有以下信息
(1)目的IP地址,分爲網絡地址和完整的主機地址,目的地址主機號爲0時,則表示網絡地址(表示發給該網絡的所有主機),若主機號非0,則表示特定主機地址(發給特定主機);
(2)下一站路由器的IP地址;
(3)標誌:一個表示網絡地址還是主機地址,另一個表示下一站理由器是真正的路由器還是直連的接口;
(4)數據包傳輸指定的網絡接口;

4.IP路由表選擇策略
(1)先搜索和目的IP地址完全匹配的表目,並將數據包發給下一站的路由器或直連的網絡接口;
(2)再搜索和目的網絡地址完全匹配的表目,並將數據包發給下一站的路由器或直連的網絡接口;
(3)上述兩種都不成功時,則找默認表目進行處理;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章