tcp/ip系列--IP協議

上一篇(tcp/ip系列--數據鏈路):https://blog.csdn.net/qq_19968255/article/details/83832035

一.IP即網際協議

TCP/IP的心臟是互聯網層(網絡層),這一層主要由IP和ICMP兩個協議組成。主要作用:實現終端節點之間的通信。

數據鏈路層的主要作用在互連同一種數據鏈路的節點之間進行包傳遞。而一旦跨越多種數據鏈路,就需要藉助網絡層。網絡層可以跨越不同的數據鏈路,即使在不同的數據鏈路也可以兩端節點數據包傳輸。

 

二.IP基礎知識

2.1簡介

三大作用模塊,IP尋址,路由(最終節點爲止的轉發)以及IP分包與組包。

2.2路由控制

將分組數據發送到最終目標地址的功能。

"跳"(Hop)指網絡中的一個區間。IP包正是在網絡中一個跳間被轉發。因此IP路由也叫做多跳路由。

路由控制表,爲了將數據包發送給目標主機,所有主機都維護着一張路由控制表。

數據鏈路的抽象化:

  • IP是實現多個數據鏈路之間通信的協議。數據鏈路根據種類的不同各有特點。數據鏈路地址可以被抽象化爲IP地址。
  • 不同數據鏈路有最大區別,各自的最大傳輸單位(MTU)不同。
  • 分片處理,將較大的IP包分成多個較小的IP包。

IP屬於面向無連接型,原因爲了簡化和提速

 

三.IP地址的基礎知識

IP地址(IPv4地址)由32位正整數來表示。

IP地址由"網絡標識(網絡地址)"和"主機標識(主機地址)"兩部分組成。例:192.168.128.10/24中"/24"表示從第一位開始到24位爲網絡標識。

IP地址分類:分別爲A類,B類,C類,D類,用比特位表示主機地址時,不可以全部爲0或全部爲1。因此全部爲0表示對應地址不可獲知情況下。而全部爲1的主機地址通常作爲廣播地址。

廣播地址用於在同一鏈路中相互連接的主機之間發送數據。IP地址中主機地址部分全部設置爲1,就成爲廣播地址。廣播分爲本地廣播和直接廣播兩種。

IP多播,多播用於將包發送給特定組內的所有主機。多播使用D類地址。因此從首位開始到第四位是"1110",就可以認爲是多播地址。而剩下的28位可以成爲多播組編號。

子網掩碼,直接使用A類等等地址分類,浪費資源。爲此,新的組合方式減少消耗。引入了子網以後,一個IP地址就有了兩種識別碼。一是IP地址本身,另一個是表示網絡部的子網掩碼。子網掩碼用二進制表示的話,也是一個32位的數字。它對應IP地址網絡標識部分的位全部爲"1",對應IP地址主機標識部分則全部"0"。

CIDR與VLSM,地址缺乏。放棄IP地址分類,採用任意長度分割IP地址的網絡標識和主機標識。這種方式CIDR。可變長子網掩碼(VLSM)。

全局地址與私有地址:

私有地址,10.0.0.0~10.255.255.255(10/8) A類,172.16.0.0~172.31.255.255 (172.16/12) B類,192.168.0.0 ~ 192.168.255.255 (192.168/16) C類,此地址之外爲全局IP。

全局地址,私有地址和全局IP通信,用NAT。

 

四.路由控制

發送數據包,通過路由轉發到達目標地址。

4.1路由控制表

記錄着網絡地址與下一步應該發送至路由的地址。

默認路由:

路由表中任何一個地址都能與之匹配記錄。標記0.0.0.0/0或default。並不是指IP地址0.0.0.0。

主機路由:

IP地址/32,主機路由,會使路由表膨大,負荷增加。

環回地址:

同一臺計算機上的程序之間進行網絡通信所使用的一個默認地址。

4.2路由控制表聚合

利用網路地址的比特分佈可以有效地進行分層配置。對內即使有多個子網掩碼,對外呈現出也是同一個網絡地址。

 

五.IP分割處理與再構成處理

數據鏈路不同,最大傳輸單元(MTU)則相異。

任何一臺主機都有必要對IP分片進行相應的處理。分片往往在網絡上遇到比較大的報文無法一下子發送出去時纔會進行處理。

路徑MTU發現,彌補分片機制不足。

 

六.IPv6

6.1簡介

爲了根本解決IPv4地址耗盡的問題而被標準化的網際協議。IPv4的地址長度爲4個8位字節,即32比特。而IPv6地址長度則是原來的4倍,即128比特,一般寫成8個16位字節。

6.2特點

  • IP地址的擴大與路由控制表聚合。
  • 性能提升,包首部長度採用固定的值(40字節),不再採用首部檢驗碼。路由器不再做分片處理(通過路徑MTU發現只由發送端主機進行分片處理)。
  • 支持即插即用功能,即使沒有DHCP服務器也可以實現自動分配IP地址。
  • 採用認證與加密功能,應對僞造IP地址的網絡安全功能以及防止線路竊聽功能(IPsec)。
  • 多播、Mobile IP成爲擴展功能。

6.3地址

舉例,連續0,用兩個冒號(::)隔開。

 

結構

6.4全局單播地址

世界上唯一的一個地址。

6.5鏈路本地單播地址

同一個數據鏈路內唯一的地址,它用於不經過路由器,在同一個鏈路中通信。通常接口ID保存64比特版的MAC地址。

6.6唯一本地地址

唯一本地地址是不進行互聯網通信時所使用的地址。

6.7IPv6分段處理

IPv6的分片處理只在作爲起點的發送端主機上進行,路由器不參與分片。

 

七.IPv4首部

版本:4比特構成,表示標識IP首部的版本號。

首部長度:4比特構成,表示IP首部大小。

區分服務(TOS:Type Of Service):8比特構成,用來表明服務質量,這個值通常由應用指定。

DSCP段與ECN段:DSCP(差分服務代碼點)是TOS的一部分,進行質量控制,3~5位的值爲0,0~2位則被稱作類別選擇代碼點。

ECN(顯示擁塞通告)用來報告網絡擁堵情況,由兩個比特構成。第6位的ECT用以通告上層TCP層協議是否處理ECN。如果出現網絡擁堵的情況,將CE位設置爲1。

總長度:IP首部與數據部分合起來的總字節數。該字段長16比特。

標識:由16比特構成,用於分片重組。同一個分片的標識值相同,不同分片的標識值不同。

標誌:有3比特構成,表示包被分片的相關信息。

片偏移:由13比特構成,用來標識被分片的每一個分段相對於原始數據的位置。

生存時間:8比特構成,以秒爲單位記錄當前包在網絡上應該生存的期限。實際中它是指可以中轉多少個路由器。

協議:由8比特構成,表示IP首部的下一個首部隸屬於哪個協議。

首部校驗和:由16比特(2個字節)構成,主要用來確保IP數據報不被破壞。

源地址:32比特(4個字節)構成,發送端ip地址。

目的地址:32比特(4個字節)構成,接收端ip地址。

可選項:長度可變,通常只在進行實驗或診斷時使用。(安全級別,源路徑,路徑記錄,時間戳)。

填充:填充物。在有可選項的情況下,首部長度可能不是32比特的整數倍。通過向字段填充0,調整爲32比特的整數倍。

數據:存入數據,將IP上層協議的首部也作爲數據進行處理。

 

八.IPv6首部格式

IPv6中爲了減輕路由器的負擔,省略了首部校驗和字段。因此路由器不再需要計算校驗和,從而也提高了包的轉發率。

版本:與IPv4一樣,由4比特構成。IPv6其版本號爲6,因此在這個字段上的值爲"6"。

通信量類:相當於IPv4的TOS字段,也有8比特構成。

流標號:20比特構成,準備用於服務質量(QoS)控制。只有流標號、源地址以及目標地址三項完全一致時,才被認爲是一個流。

有效載荷長度:包的數據部分。IPv4的TL(Total Length)指包括首部在內所有長度。然而IPv6中的這個不包括首部,只表示數據部分的長度。

下一個首部:相當於IPv4中的協議字段。由8比特構成。

跳數限制:由8比特構成。與IPv4中的TTL意思相同。

源地址:128比特構成。表示發送端IP地址。

目標地址:128比特構成。表示接收端IP地址。

IPv6擴展首部:IPv6的首部長度固定,無法將可選項加加入其中。取而代之的是通過擴展首部對功能進行了有效擴展。擴展首部通常介於IPv6首部與TCP/UDP首部中間。在IPv4中可選項長度固定爲40字節,但是在IPv6中沒有這樣的限制。

 

參考《圖解TCP/IP》

 

 

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