摘 要:PPP協(xié)議是廣域網(wǎng)最常用的數(shù)據(jù)鏈路層協(xié)議之一,鏈路建立協(xié)商是PPP協(xié)議的重要組成部分 。而網(wǎng)絡(luò)協(xié)議的軟件實(shí)現(xiàn)一直是計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用的一個(gè)重點(diǎn),PPP協(xié)議的軟件實(shí)現(xiàn)具有很大的應(yīng)用價(jià)值 。本文重點(diǎn)探討LCP建立協(xié)商原理的軟件實(shí)現(xiàn),并給出了具體的實(shí)現(xiàn)方法和具體流程 。
要害詞:LCP;鏈路建立;有限狀態(tài)機(jī);PPP協(xié)議
1 PPP協(xié)議簡介
PPP(Point-to-Point Protocol,點(diǎn)到點(diǎn)協(xié)議)是為在同等單元之間傳輸數(shù)據(jù)包這樣的簡單鏈路設(shè)計(jì)的鏈路層協(xié)議 。這種鏈路提供全雙工操作,并按照順序傳遞數(shù)據(jù)包 。設(shè)計(jì)目的主要是用來通過撥號(hào)或?qū)>€方式建立點(diǎn)對(duì)點(diǎn)連接發(fā)送數(shù)據(jù),使其成為各種主機(jī)、網(wǎng)橋和路由器之間簡單連接的一種共同的解決方案 。
PPP協(xié)議分為3個(gè)組成部分:
(1)一個(gè)將IP數(shù)據(jù)報(bào)封裝到串行鏈路的方法 。
PPP封裝提供了不同網(wǎng)絡(luò)層協(xié)議同時(shí)通過統(tǒng)一鏈路的多路技術(shù),使其保有對(duì)常用支持硬件的兼容性 。
(2)一個(gè)用來建立、配置和測試數(shù)據(jù)鏈路連接的鏈路控制協(xié)議LCP(Link ControlProtocol) 。通信的雙方可通過LCP包協(xié)商一些選項(xiàng) 。
(3)一套網(wǎng)絡(luò)控制協(xié)議(Network ControlProtocol) 。NCP是一族協(xié)議,負(fù)責(zé)解決物理連接上運(yùn)行什么網(wǎng)絡(luò)協(xié)議,以及解決上層網(wǎng)絡(luò)協(xié)議發(fā)生的問題 。他支持不同的網(wǎng)絡(luò)層協(xié)議,如IP,OSI的網(wǎng)絡(luò)層,DECCnet,以及AppleTalk等 。
PPP幀封裝格式如下:
PPP幀以標(biāo)志字符01111110開始和結(jié)束,地址字段長度為1 B,內(nèi)容為標(biāo)準(zhǔn)廣播地址11111111,控制字段為00000011 。協(xié)議字段長度為2 B,其值代表其后的數(shù)據(jù)字段所屬的網(wǎng)絡(luò)層協(xié)議 。數(shù)據(jù)字段包含協(xié)議字段中指定的協(xié)議的數(shù)據(jù)報(bào),長度為0~1 500 B 。CRC字段為整個(gè)幀的循環(huán)冗余校驗(yàn)碼,用來檢測傳輸中可能出現(xiàn)的數(shù)據(jù)錯(cuò)誤 。
對(duì)應(yīng)PPP協(xié)議的3個(gè)部分,PPP數(shù)據(jù)幀封裝也分為:IP數(shù)據(jù)報(bào)封裝、LCP控制數(shù)據(jù)封裝、NCP控制數(shù)據(jù)封裝 。當(dāng)PPP幀的協(xié)議字段為0x0021時(shí),信息字段就是IP數(shù)據(jù)報(bào);當(dāng)協(xié)議字段為0xC021時(shí),信息字段是LCP控制數(shù)據(jù);當(dāng)協(xié)議字段為0x8021,信息字段是NCP控制數(shù)據(jù) 。
2 鏈路建立和狀態(tài)機(jī)
2.1 PPP鏈路建立的概述
一次完整的PPP回話過程包括4個(gè)階段:鏈路建立階段、認(rèn)證階段、網(wǎng)絡(luò)層控制協(xié)議階段和鏈路終止階段 。本文討論和實(shí)現(xiàn)的是鏈路建立階段 。
鏈路建立過程如下:請(qǐng)求建立鏈接的一端用LCP配置信息包(Configure packets)建立連接 。對(duì)端收到配置信息包以后,假如認(rèn)為收到的配置請(qǐng)求及協(xié)商選項(xiàng)可以接受,將發(fā)送配置成功信息包(Configure-Ack packet),當(dāng)一個(gè)配置成功信息包被發(fā)送且被接收,就完成了鏈路建立 。在LCP建立完成以后,假如收到LCP配置請(qǐng)求包(LCP Configure-Request)鏈路將從網(wǎng)絡(luò)層協(xié)議階段或者認(rèn)證階段返回到鏈路建立階段 。
通常線路兩端要對(duì)如下的內(nèi)容進(jìn)行協(xié)商,這些內(nèi)容包含在LCP配置請(qǐng)求包中:
(1)Maximum-Receive-Unit最大-接收-單元)
(2)Authentication-Protocol(鑒定-協(xié)議)
(3)Quality-Protocol(質(zhì)量-協(xié)議)
(4)Magic-Number
(5)Protocol-Field-Compression(協(xié)議-域-壓縮)
(6)Address-and-Control-Field-Compression(地址-和-控制域-壓縮)
2.2 有限狀態(tài)機(jī)模型
PPP協(xié)議的LCP層的連接及協(xié)商過程比較復(fù)雜,通常使用狀態(tài)機(jī)模型來解釋PPP狀態(tài)的具體變遷情況 。
狀態(tài)機(jī)是一種記錄下給定時(shí)刻狀態(tài)的設(shè)備,并根據(jù)輸入,對(duì)每個(gè)給定的改變,改變其狀態(tài)或引發(fā)一個(gè)動(dòng)作 。有限態(tài)自動(dòng)機(jī)由事件、動(dòng)作和狀態(tài)轉(zhuǎn)換定義,通過狀態(tài)機(jī)可以具體解釋PPP協(xié)議中LCP鏈路建立的狀態(tài)轉(zhuǎn)換過程 。LCP操作的狀態(tài)機(jī)可以分為以下的要素:
推薦閱讀
- 通用多協(xié)議標(biāo)記交換工作原理
- 多協(xié)議標(biāo)志交換基本原理
- TCP/IP協(xié)議原理
- 在部分設(shè)備支持STP協(xié)議的網(wǎng)絡(luò)中實(shí)施STP
- IPv6在中國:下一代網(wǎng)絡(luò)新協(xié)議的應(yīng)用
- Cisco基于上下文的訪問控制協(xié)議可繞過漏洞
- MPOA ATM上的多協(xié)議模型
- 二 廣域網(wǎng)協(xié)議設(shè)置
- 一 廣域網(wǎng)協(xié)議設(shè)置
- 三 廣域網(wǎng)協(xié)議設(shè)置
