目錄
1、分片和重裝配
1.1 分片
1.2 重裝配
2、IPv4數據報格式
3、IP地址分類
3.1 5類地址
3.2 幾類特殊的IP地址
4、子網與子網掩碼
4.1 子網連網
4.2 VLSM
4.3 CIDR
5、IP QoS
6、子網劃分方法
6.1 基本子網劃分,取網絡號
6.2 復雜子網劃分,取網絡號
6.3 給定IP地址和掩碼,計算網絡/子網廣播地址
6.4 復雜子網劃分,獲取有效子網數
IPv4協議( 4,IPv4)運行在網絡層上,可實現異構的網絡之間互聯互通。它是一種不可靠、無連接的協議。IPv4定義了在整個TCP/IP互聯網上數據傳輸所用的基本單元(由于采用的是無連接的分組交換,因此也成為了數據報),規(guī)定了互聯網上傳輸數據的確切格式;IP軟件完成路由選擇的功能,選擇一個數據發(fā)送的路徑;除了數據格式和路由選擇精確而正式的定義之外,還包括一組不可靠分組傳送思想的規(guī)則,這些規(guī)則指明了主機和路由器應用如何處理分組、何時及如何發(fā)出錯誤信息以及在什么情況下可以放棄分組。IP協議是TCP/IP互聯網設計中最基本的部分。
為了防止因出現網絡路由環(huán)路,而導致IP數據報在網絡中無休止地轉發(fā),IP協議在IP包頭設置了一個TTL位,用來存放數據報生存期(以跳為單位,每經過一個路由器為一跳),每經過一個路由器,計數器加1,超過一定的計數值,就將其丟棄。
1、分片和重裝配
在理想情況下,整個數據報被封裝在一個物理幀中,可以提高物理網絡上的效率。由于IP數據報經常在許多類型的物理網絡上傳送,而每種物理網絡所能夠傳送的幀的長度是有限的,例如以太網是1500字節(jié),FDDI是4470字節(jié),這個限制成為網絡最大傳送單元( Unit,MTU)。這就使得IP協議在設計上不得不處理這樣的矛盾:當數據報通過一個可傳送更大幀的網絡時,如果數據報大小限制為整個最小的MTU,就會浪費網絡帶寬資源;如果數據報大于最小的MTU,就可能出現無法封裝的問題。為了有效地解決這個問題,IP協議采用了分片和重裝配機制來解決。
1.1 分片
IP協議采用的是遇到MTU更小的網絡時再分片。
1.2 重裝配
為了能夠減少中途路由器的工作,降低出錯,重裝配工作是直到目的主機時才進行的,也就是分片后,遇到MTU更大的網絡時并不重新裝配,而且保持最小分組,直到目的主機接收完整后再一次性重裝配。它使用4個字段來處理分片和重裝配問題:
(1)第一個字段是報文ID字段,它唯一標識了某個站某個協議層發(fā)出的數據;
(2)第二個字段是數據長度,即字節(jié)數;
(3)第三個字段是偏置值,即分片在原來數據報中的位置以8字節(jié)的倍數計算;
(4)第四個字段是M標志,用來識別是否為最后一個分片。
整個分片的步驟為:
(1)對數據塊的分片必須在64位(8B)的邊界上劃分,因為除最后一段外,其他段長都是64位的整數倍;
(2)對得到的每一個分片都加上原來的數據報的IP頭,組成短報文;
(3)每一個短報文的長度字段修改為它實際包含的字節(jié)數;
(4)第一個短報文的偏置值設置為0,其他的偏置值為其前面所有報文長度只和除以8;
(5)最后一個報文的M標志置0(False),其他報文的M標志置為1(True)。
如下所示是一個分片的實例:
2、IPv4數據報格式
IP協議的數據報格式如下所示:
(1)版本:該字段長4位,表示IP的版本號,值為二進制0100表示IPv4
(2)頭部長度( ,IHL):該字段長4位,表示IP頭部的長度(即除了數據部分之外),以一個32位的字為基本單位,即4字節(jié)。該字段最小值為5,即20字節(jié);可取的最大值為15(二進制為1111),表示報頭為60字節(jié)。
IP分組首部必須是4字節(jié)的整數倍,不是整數倍時,則需要使用填充字段加以填充,這樣可以保證IP數據部分永遠在4字節(jié)的整數倍時開始,實現IP協議較為方便。
(3)服務類型(Type of ,ToS):該字段長度為8位,指定特殊數據處理方式。該字段分為兩部分:3位的優(yōu)先權字段(現在已忽略不用)和4位的ToS字段。后來該字段被IETF改名為區(qū)分服務( ,DS)。該字段的前6位構成了區(qū)分代碼點( Code Point,DSCP)和顯示擁塞通知( ,ECN)字段,DSCP用于定義64個不同服務類型,而ECN用于通知擁塞,具體如下圖所示:
(4)報文總長度(Total ):該字段長度為16位,單位是字節(jié),指的是首部加上數據之和的長度。所以數據報的最大長度為=65535字節(jié)(64KB)。由于有MTU限制(如以太網單個IP數據報就不能超過1500字節(jié)),所以超過1500字節(jié)的IP數據報就要分段,而總長度是所有分片報文的長度和。IP是一個網絡層的協議,需要考慮IP分組穿越不同網絡的情況,有時,一個IP分組的長度可能無法滿足某些高速網絡中的最小數據幀長的要求,此時需要IP分組最后進行填充。如果沒有總長度字段的指示,處理程序無法識別出哪里是IP分組的結束。
(5)標識符():該字段長度為16位,可以唯一地標識一個IP分組。同一數據報分段后,其標識符一致,這樣便于重裝成原來的數據報。
(6)標記字段(Flag):該字段長度為3位,第1位沒有定義,必須為0;第2位是不分段(DF)位,值為1表示不能分片,為0表示允許分片;第3位是更多分片(MF)位,值為1 表示之后還有分片,為0表示是最后一個分片。
(7)分片偏移字段( ):該字段長度為13位,表示數的單位是8字節(jié),即每個分片長度是8字節(jié)的整數倍。該字段指明當前分片在原始IP分組中的偏移地址。
(8)生存時間(Time to Live,TTL):該字段長度為8位,用來設置數據報最多可以經過的路由器數,用于防止無限制轉發(fā)。當IP分組通過一個路由器時,該分組的TTL將被減1,如果TTL為零,該IP分組將被丟棄,從而避免循環(huán)路由的問題。該字段由發(fā)送數據的源主機設置,通常為16、32、64、128個。
(9)協議字段():該字段長度為8位,指明IP層所封裝的上層協議類型,如ICMP(值為1)、IGMP(值為2)、TCP(值為6)、UDP(值為17)等。
(10)頭部校驗( ):該字段長度為16位,是根據IP頭部計算得到的校驗和碼,用于保證首部的完整性。該校驗碼沒有采用復雜的CRC編碼,而是對頭部中每個16比特進行二進制反碼求和(與ICMP、IGMP、TCP、UDP不同,IP報頭不對IP報頭后面的數據進行校驗)。另外,由于路由器經常修改TTL的數值,在中給出了一種方法,使得路由器在修改TTL時不需要重新計算整個首部的校驗和。
(11)源IP地址、目的IP地址:該字段長度均為32位,用來標明發(fā)送IP數據報文的源主機地址和接收IP報文的目標主機地址,都是IP地址。
(12)可選字段():該字段長度可變,從1字節(jié)到40字節(jié)不等,用來定義一些任選項,如記錄路徑、時間戳等。這些選項很少使用,并且不是所有主機和路由器都支持這些選項。可選項字段的長度必須是32位(4字節(jié))的整數倍,如果不足,必須填充0以達到此長度要求。
3、IP地址分類
IP協議給每一臺主機分配一個唯一的邏輯地址——IP地址。IP地址使用32位的二進制來表示,為了方便使用,經常將IP寫成10進制的形式,中間使用“.”符號將字節(jié)分開,這種表示方法叫做點分十進制表示法。IP地址分為網絡號和主機號兩部分,網絡號標識一個網絡,一般網絡號由互聯網信息中心()統一分配。主機號用來表示網絡中的一個主機,它一般由網絡中的管理員來具體分配。
(1)網絡地址:主機號全0表示網絡地址,不能做源、目標地址;
(2)廣播地址:主機號全1表示廣播地址,不能做源地址;
(3)子網掩碼:網絡號部分全為1,主機號部分全為0;用于計算網絡地址用,只需將IP地址和子網掩碼做與操作,就可得到網絡地址。
3.1 5類地址
根據IP地址的前4位將IP地址分為5類:A類用于大型網絡,B類用于中型網絡,C類用于小型網絡,D類用于組播,E類保留用于實驗。各類地址特征如下:
(1)A類地址:第一位固定為0,子網位8位,主機位24位
A類地址范圍:1.0.0.0~127.255.255.255
A類地址中的私有地址:10.X.X.X,即在互聯網上不適用,而只在局域網絡中的地址,網絡號為10,網絡數為1個,地址范圍為10.0.0.0~10.255.255.255。
A類地址中的保留地址:127.X.X.X,用作環(huán)回()地址ipv4地址的主要表示格式是,環(huán)回地址(典型的是127.0.0.1)向自己發(fā)送流量。發(fā)送到該地址的數據不會離開設備到網絡中,而是直接回送到本主機。該地址既可以作為網絡地址,又可以作為源地址,是一個虛IP地址。
(2)B類地址:前兩位固定為10,子網位16位,主機位16位
B類地址范圍:128.0.0.0~191.255.255.255
B類地址中的私有地址:172.16.0.0~172.31.255.255
B類地址中的保留地址:169.254.X.X,如果將PC機上的IP地址設為自動獲取,而PC機又沒有找到響應的DHCP服務,那么最后PC機可能得到保留地址中的一個IP。
(3)C類地址:前三位固定為110,子網位24位,主機位8位
C類地址范圍:192.0.0.0~223.255.255.255
C類地址中的私有地址:192.168.X.X,地址范圍為192.168.0.0~192.168.255.255。
(4)D類地址:前四位固定為1110,不分網絡地址和主機地址
D類地址范圍:224.0.0.0~239.255.255.255。其中,223.0.0.1代表所有主機與路由器;224.0.0.2代表所有組播路由器;224.0.0.5代表OSPF路由器;224.0.0.6代表OSPF指定路由器/備用指定路由器;224.0.0.7代表ST路由器;224.0.0.8代表ST主機;224.0.0.9代表RIP-2路由器;224.0.0.12代表DHCP服務器/中繼代理;224.0.0.14代表RSVP封裝;224.0.0.18代表虛擬路由器冗余協議(VRRP)。
(5)E類地址:前四位固定為1111,不分網絡地址和主機地址
E類地址范圍:240.0.0.0~255.255.255.255。
3.2 幾類特殊的IP地址
地址名稱
地址格式
特點
可否作為源地址
可否作為目標地址
有限廣播
255.255.255.255
廣播不被路由,會被送到相同物理網絡段上的所有主機
N
Y
直接廣播
主機字段全1,如192.1.1.255
廣播會被路由,并會發(fā)送到專門網絡上的每臺主機
N
Y
網絡地址
主機位全0,如192.168.1.0
表示1個子網
N
N
全零地址
0.0.0.0
代表任意主機
Y
N
環(huán)回地址
127.X.X.X
向自己發(fā)送數據
Y
Y
4、子網與子網掩碼
IPv4采用的是32位IP地址設計限制了地址空間的總容量,出現了IP地址緊缺的現象,而IPv6(采用128位IP地址設計)還不能夠很快地進入應用,這時就需要采取一些措施來避免IP地址的浪費。因此出現了子網連網和可變長子網掩碼(VLSM)兩種技術。
4.1 子網連網
子網連網,出自的定義。它的主要思想就是將IP地址劃分成3個部分:網絡號、子網號、主機號。也就是說,將原先的IP地址的主機號部分分成子網號和主機號兩部分。說到底,也就是利用主機號部分繼續(xù)劃分子網。子網可以用“子網掩碼”來識別。例如,可以將一個C類地址進行劃分子網,劃分如下圖所示:
將最后8位——原來的主機號,拿出兩位用來表示子網,則可以產生兩個子網(01和10,由于00代表網絡,11代表廣播不能用來表示具體的網絡),每個子網可包含62個主機(~,同樣的代表網絡,代表廣播被保留)。值得一提的是,這時子網掩碼就發(fā)生了變化,不是255.255.255.0(11 ),而是255.255.255.192(11 )。
在從C類地址中劃分子網的時候就可以參照下表進行:
主機號中用于表示子網號的位數
子網劃分后相對應的子網掩碼
總共可用的子網地址數
每個子網可用的主機地址數
2位
255.255.255.192
2
62
3位
255.255.255.224
6
30
4位
255.255.255.240
14
14
5位
255.255.255.248
30
6
6位
255.255.255.252
62
2
采用了子網連網技術后,雖然在一定程度上緩解了這個問題,但又引發(fā)一個新問題,即使得每個子網的主機數相等,難以有效地滿足實際的需要,又引起了新的IP地址浪費。VLSM技術正是針對這個問題行之有效的解決方案。
4.2 VLSM
VLSM( )是一種產生不同大小子網的網絡分配機制(在中有詳細說明)。VLSM用直觀大的方法在IP地址后面加上“/網絡及子網編碼位數”來表示。例如,192.168.123.0/26表示前26位表示網絡號和子網號,即子網掩碼為26位長,主機號6位長。利用VLSM技術,可以多次劃分子網,即分完子網后ipv4地址的主要表示格式是,繼續(xù)根據需要劃分子網。所以使用VLSM技術來節(jié)約IP地址,可以將其理解為把大網分解成小網。
4.3 CIDR
無類路由選擇協議( Inter ,CIDR)是為了應對VLSM而產生的,是一種路由技術,也就是說,如果使用VLSM技術進行子網劃分,那么在互連是使用的路由器就必須能夠支持CIDR。在一個有類別的網絡中(只區(qū)分A、B、C等大類的網絡),路由器決定一個地址的類別,并根據該類別識別網絡和主機,而在CIDR中,路由器使用前綴來描述有多少位是網絡位,剩下的位則是主機位。CIDR顯著提高了IPv4的可擴展性和效率,通過使用路由聚合(或稱超網)可有效地減小路由表的大小,節(jié)省路由器的內存空間,提高路由器的查找效率。該技術可以理解為把小網合并為大網。
5、IP QoS
QoS指一個網絡能夠利用各種基礎技術,為指定的網絡通信提供更好的額服務能力,是網絡的一種安全機制,是用來解決網絡延遲和阻塞問題的一種技術。
QoS機制的工作原理是,優(yōu)先于其他通信為某些通信分配資源。要做到這一點,首先必須識別不同的通信。通過“數據包分類”,將到達網絡設備的通信分為不同的“流”,然后每個流的通信被引向轉發(fā)接口上的相應“隊列”,每個接口上的隊列都根據一些算法接受“服務”。隊列服務算法決定了每個隊列通信被轉發(fā)的速度,進而決定分配給每個隊列和相應流的資源。
為提供網絡QoS,必須在網絡設備中預備或配置下列各項:
(1)消息分類,讓設備把通信分成不同的流;
(2)隊列和隊列服務算法,處理來自不同流的通信。
通常把這些一起稱為“通信處理機制”。單獨的通信處理機制并沒有用,它們必須按一種統一的方式在很對設備上預備或配置,這種方式為網絡提供了有用的端到端“服務”。因此,要提供有用的服務,既需要通信處理機制,也需要預備和配置機制。
QoS相關技術與服務有如下幾種。
1、集成服務()與資源預留協議(RSVP)
集成服務是在傳送數據之前,根據業(yè)務的QoS需求進行網絡資源隔離,從而為該數據流提供端到端的QoS保證。
資源預留協議是的核心,是一種信令協議,用來通知網絡節(jié)點預留資源。資源預留的過程從應用程序流的源節(jié)點發(fā)送Path消息開始,該消息會沿著流所經路徑傳到流的目的節(jié)點,并沿途建立路徑狀態(tài);目的節(jié)點收到該Path消息后,會向源節(jié)點回送Resv消息,沿途建立預留狀態(tài),如果源節(jié)點成功收到預期的Resv消息,則認為在該路徑上資源預留成功。如果資源預留失敗,資源預留協議會向主機發(fā)回拒絕消息。
能提供端到端的QoS保證。但對路由器的要求很高,當數據流數量很大時,路由器的處理能力會遭到很大的壓力。的可擴展性很差,能以在核心網絡實施。
2、區(qū)分服務()
區(qū)分服務是將用戶的數據流按照服務質量要求劃分等級,任何用戶的數據流都可以自由進入網絡,但是當網絡出現擁塞時,級別高的數據流在排隊和占用資源時比級別低的數據流有更高的優(yōu)先權。
主要通過以下兩個機制來完成不同QoS業(yè)務要求的分類。
(1)DS標記。起源于,但屬于相對簡單、粗劃分的控制系統。取代了IPv4的服務類型字段和IPv6的通信量類字段,并重新定義為DS。路由器根據DS字段的值來處理分組的轉發(fā)。因此,利用DS字段的不同數值就可以提供不同等級的服務質量。
在使用DS字段之前,用戶和網絡服務提供商(ISP)商定一個服務等級協定( Level ,SLA),通過SLA約定服務類別(吞吐量、分組丟失率、時延等)和每一類別所允許的通信量。
(2)每跳行為(Per Hop ,PHB)。當數據流通過網絡時,路由器會采用每跳行為來處理流內的分組。“行為”可以是“迅速轉發(fā)這個分組”或“丟棄這個分組”。每跳則強調行為只涉及到本路由器轉發(fā)的這一跳行為,而一下路由器的處理方式與本路由器無關。
6、子網劃分方法
6.1 基本子網劃分,取網絡號
A類保留第一個位,后面為0;B類保留前兩位,后面全0;C類保留前三位,后面全0.
6.2 復雜子網劃分,取網絡號
將掩碼為255的部分對應的部分照抄,然后非255的部分,將掩碼和IP地址均轉化為2進制作與運算。
6.3 給定IP地址和掩碼,計算網絡/子網廣播地址
根據規(guī)則:網絡/子網號是網絡/子網中的最小數據字,廣播地址是網絡/子網中的最大數字值,網絡中有效、可分配的地址則是介于網絡/子網號和廣播地址之間的IP地址。
(1)基本子網劃分,取廣播地址。掩碼為255的部分照抄,為0的部分改為255.
(2)復雜子網劃分,取廣播地址。對于255部分照抄,0部分轉為255,對于其他部分先用256減去該值得到x,然后找到與IP地址中對應數最接近x的倍數y,再將y-1即可。
6.4 復雜子網劃分,獲取有效子網數
例如,IP地址是140.140.0.0,子網掩碼是255.255.240.0。則先找到特別的掩碼位240,轉換成二進制數,因此得到主機位是4,則以為基數進行增長:140.140.0.0,140.140.16.0,140.140.32.0,140.140.48.0,...,140.140.248.0。