目錄
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協定(Internet Protocol Version 4,IPv4)運作在網絡層上,可實作異構的網絡之間互聯互通。它是一種不可靠、無連接配接的協定。IPv4定義了在整個TCP/IP網際網路上資料傳輸所用的基本單元(由于采用的是無連接配接的分組交換,是以也成為了資料報),規定了網際網路上傳輸資料的确切格式;IP軟體完成路由選擇的功能,選擇一個資料發送的路徑;除了資料格式和路由選擇精确而正式的定義之外,還包括一組不可靠分組傳送思想的規則,這些規則指明了主機和路由器應用如何處理分組、何時及如何發出錯誤資訊以及在什麼情況下可以放棄分組。IP協定是TCP/IP網際網路設計中最基本的部分。
為了防止因出現網絡路由環路,而導緻IP資料報在網絡中無休止地轉發,IP協定在IP標頭設定了一個TTL位,用來存放資料報生存期(以跳為機關,每經過一個路由器為一跳),每經過一個路由器,計數器加1,超過一定的計數值,就将其丢棄。
1、分片和重裝配
在理想情況下,整個資料報被封裝在一個實體幀中,可以提高實體網絡上的效率。由于IP資料報經常在許多類型的實體網絡上傳送,而每種實體網絡所能夠傳送的幀的長度是有限的,例如以太網是1500位元組,FDDI是4470位元組,這個限制成為網絡最大傳送單元(Maximum Transmission Unit,MTU)。這就使得IP協定在設計上不得不處理這樣的沖突:當資料報通過一個可傳送更大幀的網絡時,如果資料報大小限制為整個最小的MTU,就會浪費網絡帶寬資源;如果資料報大于最小的MTU,就可能出現無法封裝的問題。為了有效地解決這個問題,IP協定采用了分片和重裝配機制來解決。
1.1 分片
IP協定采用的是遇到MTU更小的網絡時再分片。
1.2 重裝配
為了能夠減少中途路由器的工作,降低出錯,重裝配工作是直到目的主機時才進行的,也就是分片後,遇到MTU更大的網絡時并不重新裝配,而且保持最小分組,直到目的主機接收完整後再一次性重裝配。它使用4個字段來處理分片和重裝配問題:
(1)第一個字段是封包ID字段,它唯一辨別了某個站某個協定層發出的資料;
(2)第二個字段是資料長度,即位元組數;
(3)第三個字段是偏置值,即分片在原來資料報中的位置以8位元組的倍數計算;
(4)第四個字段是M标志,用來識别是否為最後一個分片。
整個分片的步驟為:
(1)對資料塊的分片必須在64位(8B)的邊界上劃分,因為除最後一段外,其他段長都是64位的整數倍;
(2)對得到的每一個分片都加上原來的資料報的IP頭,組成短封包;
(3)每一個短封包的長度字段修改為它實際包含的位元組數;
(4)第一個短封包的偏置值設定為0,其他的偏置值為其前面所有封包長度隻和除以8;
(5)最後一個封包的M标志置0(False),其他封包的M标志置為1(True)。
如下所示是一個分片的執行個體:
2、IPv4資料報格式
IP協定的資料報格式如下所示:
(1)版本:該字段長4位,表示IP的版本号,值為二進制0100表示IPv4
(2)頭部長度(Internet Header Length,IHL):該字段長4位,表示IP頭部的長度(即除了資料部分之外),以一個32位的字為基本機關,即4位元組。該字段最小值為5,即20位元組;可取的最大值為15(二進制為1111),表示報頭為60位元組。
IP分組首部必須是4位元組的整數倍,不是整數倍時,則需要使用填充字段加以填充,這樣可以保證IP資料部分永遠在4位元組的整數倍時開始,實作IP協定較為友善。
(3)服務類型(Type of Service,ToS):該字段長度為8位,指定特殊資料處理方式。該字段分為兩部分:3位的優先權字段(現在已忽略不用)和4位的ToS字段。後來該字段被IETF改名為區分服務(Differentiated Services,DS)。該字段的前6位構成了區分代碼點(Differentiated Services Code Point,DSCP)和顯示擁塞通知(Explicit Congestion Notification,ECN)字段,DSCP用于定義64個不同服務類型,而ECN用于通知擁塞,具體如下圖所示:
(4)封包總長度(Total Length):該字段長度為16位,機關是位元組,指的是首部加上資料之和的長度。是以資料報的最大長度為=65535位元組(64KB)。由于有MTU限制(如以太網單個IP資料報就不能超過1500位元組),是以超過1500位元組的IP資料報就要分段,而總長度是所有分片封包的長度和。IP是一個網絡層的協定,需要考慮IP分組穿越不同網絡的情況,有時,一個IP分組的長度可能無法滿足某些高速網絡中的最小資料幀長的要求,此時需要IP分組最後進行填充。如果沒有總長度字段的訓示,處理程式無法識别出哪裡是IP分組的結束。
(5)辨別符(Identifier):該字段長度為16位,可以唯一地辨別一個IP分組。同一資料報分段後,其辨別符一緻,這樣便于重裝成原來的資料報。
(6)标記字段(Flag):該字段長度為3位,第1位沒有定義,必須為0;第2位是不分段(DF)位,值為1表示不能分片,為0表示允許分片;第3位是更多分片(MF)位,值為1 表示之後還有分片,為0表示是最後一個分片。
(7)分片偏移字段(Fragment Offset):該字段長度為13位,表示數的機關是8位元組,即每個分片長度是8位元組的整數倍。該字段指明目前分片在原始IP分組中的偏移位址。
(8)生存時間(Time to Live,TTL):該字段長度為8位,用來設定資料報最多可以經過的路由器數,用于防止無限制轉發。當IP分組通過一個路由器時,該分組的TTL将被減1,如果TTL為零,該IP分組将被丢棄,進而避免循環路由的問題。該字段由發送資料的源主機設定,通常為16、32、64、128個。
(9)協定字段(Protocol):該字段長度為8位,指明IP層所封裝的上層協定類型,如ICMP(值為1)、IGMP(值為2)、TCP(值為6)、UDP(值為17)等。
(10)頭部校驗(Header Checksum):該字段長度為16位,是根據IP頭部計算得到的校驗和碼,用于保證首部的完整性。該校驗碼沒有采用複雜的CRC編碼,而是對頭部中每個16比特進行二進制反碼求和(與ICMP、IGMP、TCP、UDP不同,IP報頭不對IP報頭後面的資料進行校驗)。另外,由于路由器經常修改TTL的數值,在RFC1141中給出了一種方法,使得路由器在修改TTL時不需要重新計算整個首部的校驗和。
(11)源IP位址、目的IP位址:該字段長度均為32位,用來标明發送IP資料封包的源主機位址和接收IP封包的目标主機位址,都是IP位址。
(12)可選字段(Options):該字段長度可變,從1位元組到40位元組不等,用來定義一些任選項,如記錄路徑、時間戳等。這些選項很少使用,并且不是所有主機和路由器都支援這些選項。可選項字段的長度必須是32位(4位元組)的整數倍,如果不足,必須填充0以達到此長度要求。
3、IP位址分類
IP協定給每一台主機配置設定一個唯一的邏輯位址——IP位址。IP位址使用32位的二進制來表示,為了友善使用,經常将IP寫成10進制的形式,中間使用“.”符号将位元組分開,這種表示方法叫做點分十進制表示法。IP位址分為網絡号和主機号兩部分,網絡号辨別一個網絡,一般網絡号由網際網路資訊中心(InterNIC)統一配置設定。主機号用來表示網絡中的一個主機,它一般由網絡中的管理者來具體配置設定。
(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,用作環回(Loopback)位址,環回位址(典型的是127.0.0.1)向自己發送流量。發送到該位址的資料不會離開裝置到網絡中,而是直接回送到本主機。該位址既可以作為網絡位址,又可以作為源位址,是一個虛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 | 廣播會被路由,并會發送到專門網絡上的每台主機 | N | Y |
網絡位址 | 主機位全0,如192.168.1.0 | 表示1個子網 | N | N |
全零位址 | 0.0.0.0 | 代表任意主機 | Y | N |
環回位址 | 127.X.X.X | 向自己發送資料 | Y | Y |
4、子網與子網路遮罩
IPv4采用的是32位IP位址設計限制了位址空間的總容量,出現了IP位址緊缺的現象,而IPv6(采用128位IP位址設計)還不能夠很快地進入應用,這時就需要采取一些措施來避免IP位址的浪費。是以出現了子網連網和可變長子網路遮罩(VLSM)兩種技術。
4.1 子網連網
子網連網,出自RFC950的定義。它的主要思想就是将IP位址劃分成3個部分:網絡号、子網号、主機号。也就是說,将原先的IP位址的主機号部分分成子網号和主機号兩部分。說到底,也就是利用主機号部分繼續劃分子網。子網可以用“子網路遮罩”來識别。例如,可以将一個C類位址進行劃分子網,劃分如下圖所示:
将最後8位——原來的主機号,拿出兩位用來表示子網,則可以産生兩個子網(01和10,由于00代表網絡,11代表廣播不能用來表示具體的網絡),每個子網可包含62個主機(000001~111110,同樣的000000代表網絡,111111代表廣播被保留)。值得一提的是,這時子網路遮罩就發生了變化,不是255.255.255.0(11111111 11111111 11111111 00000000),而是255.255.255.192(11111111 11111111 11111111 11000000)。
在從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 |
采用了子網連網技術後,雖然在一定程度上緩解了這個問題,但又引發一個新問題,即使得每個子網的主機數相等,難以有效地滿足實際的需要,又引起了新的IP位址浪費。VLSM技術正是針對這個問題行之有效的解決方案。
4.2 VLSM
VLSM(Variable Length Subnet Masking)是一種産生不同大小子網的網絡配置設定機制(在RFC1878中有詳細說明)。VLSM用直覺大的方法在IP位址後面加上“/網絡及子網編碼位數”來表示。例如,192.168.123.0/26表示前26位表示網絡号和子網号,即子網路遮罩為26位長,主機号6位長。利用VLSM技術,可以多次劃分子網,即分完子網後,繼續根據需要劃分子網。是以使用VLSM技術來節約IP位址,可以将其了解為把大網分解成小網。
4.3 CIDR
無類路由選擇協定(Classless Inter Domain Routing,CIDR)是為了應對VLSM而産生的,是一種路由技術,也就是說,如果使用VLSM技術進行子網劃分,那麼在互連是使用的路由器就必須能夠支援CIDR。在一個有類别的網絡中(隻區分A、B、C等大類的網絡),路由器決定一個位址的類别,并根據該類别識别網絡和主機,而在CIDR中,路由器使用字首來描述有多少位是網絡位,剩下的位則是主機位。CIDR顯著提高了IPv4的可擴充性和效率,通過使用路由聚合(或稱超網)可有效地減小路由表的大小,節省路由器的記憶體空間,提高路由器的查找效率。該技術可以了解為把小網合并為大網。
5、IP QoS
QoS指一個網絡能夠利用各種基礎技術,為指定的網絡通信提供更好的額服務能力,是網絡的一種安全機制,是用來解決網絡延遲和阻塞問題的一種技術。
QoS機制的工作原理是,優先于其他通信為某些通信配置設定資源。要做到這一點,首先必須識别不同的通信。通過“資料包分類”,将到達網絡裝置的通信分為不同的“流”,然後每個流的通信被引向轉發接口上的相應“隊列”,每個接口上的隊列都根據一些算法接受“服務”。隊列服務算法決定了每個隊列通信被轉發的速度,進而決定配置設定給每個隊列和相應流的資源。
為提供網絡QoS,必須在網絡裝置中預備或配置下列各項:
(1)消息分類,讓裝置把通信分成不同的流;
(2)隊列和隊列服務算法,處理來自不同流的通信。
通常把這些一起稱為“通信處理機制”。單獨的通信處理機制并沒有用,它們必須按一種統一的方式在很對裝置上預備或配置,這種方式為網絡提供了有用的端到端“服務”。是以,要提供有用的服務,既需要通信處理機制,也需要預備和配置機制。
QoS相關技術與服務有如下幾種。
1、內建服務(IntServ)與資源預留協定(RSVP)
內建服務是在傳送資料之前,根據業務的QoS需求進行網絡資源隔離,進而為該資料流提供端到端的QoS保證。
資源預留協定是IntServ的核心,是一種信令協定,用來通知網絡節點預留資源。資源預留的過程從應用程式流的源節點發送Path消息開始,該消息會沿着流所經路徑傳到流的目的節點,并沿途建立路徑狀态;目的節點收到該Path消息後,會向源節點回送Resv消息,沿途建立預留狀态,如果源節點成功收到預期的Resv消息,則認為在該路徑上資源預留成功。如果資源預留失敗,資源預留協定會向主機發回拒絕消息。
IntServ能提供端到端的QoS保證。但IntServ對路由器的要求很高,當資料流數量很大時,路由器的處理能力會遭到很大的壓力。IntServ的可擴充性很差,能以在Internet核心網絡實施。
2、區分服務(DiffServ)
區分服務是将使用者的資料流按照服務品質要求劃分等級,任何使用者的資料流都可以自由進入網絡,但是當網絡出現擁塞時,級别高的資料流在排隊和占用資源時比級别低的資料流有更高的優先權。
DiffServ主要通過以下兩個機制來完成不同QoS業務要求的分類。
(1)DS标記。DiffServ起源于IntServ,但屬于相對簡單、粗劃分的控制系統。DiffServ取代了IPv4的服務類型字段和IPv6的通信量類字段,并重新定義為DS。路由器根據DS字段的值來處理分組的轉發。是以,利用DS字段的不同數值就可以提供不同等級的服務品質。
在使用DS字段之前,使用者和網絡服務提供商(ISP)商定一個服務等級協定(Service Level Agreement,SLA),通過SLA約定服務類别(吞吐量、分組丢失率、時延等)和每一類别所允許的通信量。
(2)每跳行為(Per Hop Behavior,PHB)。當資料流通過網絡時,路由器會采用每跳行為來處理流内的分組。“行為”可以是“迅速轉發這個分組”或“丢棄這個分組”。每跳則強調行為隻涉及到本路由器轉發的這一跳行為,而一下路由器的處理方式與本路由器無關。
6、子網劃分方法
6.1 基本子網劃分,取網絡号
A類保留第一個位,後面為0;B類保留前兩位,後面全0;C類保留前三位,後面全0.
6.2 複雜子網劃分,取網絡号
将掩碼為255的部分對應的部分照抄,然後非255的部分,将掩碼和IP位址均轉化為2進制作與運算。
6.3 給定IP位址和掩碼,計算網絡/子網廣播位址
根據規則:網絡/子網号是網絡/子網中的最小資料字,廣播位址是網絡/子網中的最大數字值,網絡中有效、可配置設定的位址則是介于網絡/子網号和廣播位址之間的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,轉換成二進制數11110000,是以得到主機位是4,則以為基數進行增長:140.140.0.0,140.140.16.0,140.140.32.0,140.140.48.0,...,140.140.248.0。