網路控制協議
出自 MBA智库百科(https://wiki.mbalib.com/)
網路控制協議(Network Control Protocol,NCP)
目錄 |
什麼是網路控制協議[1]
網路控制協議是一組獨立定義的協議,它們負責在PPP建立過程中協商網路層屬性。NCP層協議一般是在WAN連接的一端丟失了特定協議的成功操作的信息時被使用。例如,如果一個用戶要撥號進入Cisco路由器,該用戶的機器一般不知道要使用哪個IP地址,因此必須通過NCP/IPCP協商從Cisco路由器獲得一個地址。然而,當在專用連接上使用PPP時,網路管理者分配所有的網路層屬性,因此NCP的能力並不重要。
網路控制協議種類[2]
PPP的設計意圖是定義一個能夠在點到點線路上運送多種網路協議的數據報(Datagram)的數據鏈路層協議。在Intemet體繫結構中沒有OSI/RM中服務的概念,因此,PPP還必須涉及與網路層間的數據交換問題,必須具備就數據鏈路層支持的網路協議進行協商併進行相應配置的能力。這就是在PPP中需要涉及網路控制協議(NCP)的原因,應當指出:NCP是數據鏈路層支持對多種網路協議進行配置協商的手段,因此,使用網路控制協議一詞很容易誤解為網路層的控制協議,讀者應當正確理解其實質。LCP為數據鏈路的建立與終止、控制、配置協商等提供了一種通用機制,因此,在NCP的定義中借用了這種機制,借用了LCP的PDU格式(只是協議代碼為表1中的NCP編碼),甚至PDU名稱也借用LCP的名稱。從這種意義上講,NCP主要是對相關協商內容的定義。
IETF為多種網路協議定義了相應的NCP,例如:支持IP協議的NCP被稱為IPCP(IP Control Protocol),支持Novell網的IPX的NCP叫做IPXCP等等。在PPP運作過程中,當進人網路層協議處理階段時,首先通過LCP就鏈路測試和配置進行協商,然後利用NCP進行網路配置協商。PPP允許在其上的網路層有多種網路協議,因此.可根據需要利用相應的NCP進行多次協商。以下是對IPCP作簡要的介紹。
IPCP的責任是在PPP鏈路兩端配置、激活和停止IP模塊。IPCP格式與LCP幾乎完全相同(參看圖1),
- 圖1 LCP的協議數據單元PDU的格式
不同之處在於:
①協議欄位 LCP的該欄位為二—十進位“C021”,而IPCP的該欄位為“8201”;
②PDU編碼欄位 LCP使用代碼“1”一“12”,而IPCP只借用了其中的“1”一“7”,即Configure-Request、Configure-Ack、Configure-NAK、configure-Reject、Terrrdnate-Request、Terminate-Ack和Code-ReJect。應當註意,這一欄位是在協議欄位界定之下的特定PDU的編碼,因此,儘管同名,LCP協商的內容與數據鏈路層有關,而NCP協商的內容卻是與相關的網路層協議有關。
RFCll72定義了兩類協商選項:IP-Addresses和Compression-Type;而RFCl332(1PCP)則增加了一個選項:IP-Address,但建議不再使用IP-Addresses。]P-Addresses建議者試圖對鏈路兩端的“源一的”IP“地址對”進行協商,而IP-Address僅就請求方使用的IP地址進行協商;由於前者在實踐中遇到許多實際問題,FRCl332中建議使用後者。
- 圖2 配置類LCP-PDU中配置參數格式
這3種協商的NCP的PDU格式直接借用圖1中的LCP格式(協議欄位為“8201”表示為IPCP),其數據欄位採用圖2類似的格式;表1列出兩種NCP的PDU協商配置參數欄位格式
協商類型 | Type代碼 | Length | 配置參數/位元組數 |
IP-ComprgsiOn | 2 | 6位元組 | ComprssiOn Protocol/2.Max-Slot-Id/1,Comp-Slot-Id/l |
IP-Address | 3 | 6位元組 | IP-Address/4 |
表1中,Compression Protocol在使用RFCll44規定Van Jacobson演算法壓縮TCP/IP頭(註:UDP/TCP頭不適合壓縮)時,則該欄位中代碼為“002D”(二一十進位),“Slot”是TCP/11)P實現中用於存放TCP/IP頭的緩存,每個Slot存放一個TCP/IP頭,故Slot數量關係到能緩存TCP/IP報文的數量,因此被列入協商對象;Slot-Id可取值為0一Max-Slot-Id,Comp-slot-Id用於表示該欄位是否允許被壓縮(0表示不能,l表示可以)。