點(diǎn)到點(diǎn)協(xié)議是為在兩個(gè)對(duì)等實(shí)體間傳輸數(shù)據(jù)包建立簡(jiǎn)單連接而設(shè)計(jì)的。這種連接提供了同時(shí)
的雙向的全雙工操作,并且假定數(shù)據(jù)包是按順序投遞的。PPP連接提供了一種廣泛的解決
辦法,方便地將多種多樣不忘的值作為最大接收單元的值。
2.填充域
在傳輸中,信息域可能會(huì)由附加任意數(shù)目的字節(jié)填充至最大接收單元長(zhǎng)度。這由每個(gè)協(xié)議負(fù)
責(zé)將信息域和填充域區(qū)分開來。
3.PPP連接操作
3.1概述
為了在點(diǎn)到點(diǎn)連接中建立通信,PPP連接的每一端都必須首先發(fā)送LCP數(shù)據(jù)包來配置和
測(cè)試數(shù)據(jù)連接。在連接建立后,對(duì)等實(shí)體還有可能需要認(rèn)證。 然后,PPP必須發(fā)送NC
P數(shù)據(jù)包來選擇一種或多種網(wǎng)絡(luò)層協(xié)議來配置。一旦被選中的網(wǎng)絡(luò)層協(xié)議被配置好后,該網(wǎng)
絡(luò)層的數(shù)據(jù)報(bào)就可以在鏈路上傳送了。 鏈路將保持可配置的狀態(tài)直到有LCP數(shù)據(jù)包和N
CP數(shù)據(jù)包終止連接,或者由
其他外部事件發(fā)生時(shí)(例如非活動(dòng)時(shí)鐘計(jì)時(shí)已滿或網(wǎng)絡(luò)管理人員的干涉)。
3.2狀態(tài)圖
在配置維持和終止點(diǎn)到點(diǎn)連接的過程中,PPP連接經(jīng)歷了幾個(gè)不同的階段,這些階段由以
下簡(jiǎn)化的狀態(tài)圖說明:
+------+ +-----------+ +--------------+
| | 連接 | | 已打開 | | 成功/無
| 死亡 |------->| 建立 |---------->| 認(rèn)證 |--+
| | | | | | |
+------+ +-----------+ +--------------+ |
^ | | |
| 失敗 | 失敗 | |
+<--------------+ +----------+ |
| | |
| +-----------+ | +---------+ |
| 斷開 | | | 正在關(guān)閉 | | |
+------------| 終止 |<---+<----------| 網(wǎng)絡(luò) |<-+
| | | |
+-----------+ +---------+
3.3連接死亡階段(物理層未準(zhǔn)備好)
一個(gè)連接的開始和結(jié)束都要經(jīng)歷此階段。當(dāng)一個(gè)外部事件(例如檢測(cè)到載波或網(wǎng)絡(luò)管理人員
配置)指示物理層已準(zhǔn)備好并可以使用時(shí),PPP將進(jìn)入建立連接階段。 在此階段,LC
P協(xié)議自動(dòng)機(jī)(后面將提到)處在初始或正在開始狀態(tài)。當(dāng)進(jìn)入到建立連接階段后會(huì)引發(fā)U
P事件通知LCP協(xié)議自動(dòng)機(jī)。
應(yīng)用注意事項(xiàng):
典型的,一個(gè)連接將在調(diào)制解調(diào)器連接斷開后自動(dòng)返回到此階段。在使用電話線的連接情況
下,這個(gè)階段將相當(dāng)?shù)亩蹋痰胶苌儆凶銐虻臅r(shí)間能用儀器檢測(cè)到它的存在。
3.4建立連接階段
鏈路控制協(xié)議(LCP)通過交換配置數(shù)據(jù)包建立連接。當(dāng)LCP協(xié)議自動(dòng)機(jī)進(jìn)入已打開狀
態(tài),并且發(fā)送和接收過配置確認(rèn)數(shù)據(jù)包時(shí),為建立連接的交換過程才完成。 所有的配置選
項(xiàng)都被假定為缺省值,除非在配置交互的過程中改變。關(guān)于LCP
配置選項(xiàng)的進(jìn)一步討論參見后面的章節(jié)。
有一點(diǎn)是非常重要的,就是那些只有與特定網(wǎng)絡(luò)層協(xié)議無關(guān)的選項(xiàng)才能被LCP配置。配置
單獨(dú)的網(wǎng)絡(luò)層協(xié)議是在網(wǎng)絡(luò)層協(xié)議階段由相應(yīng)的網(wǎng)絡(luò)控制協(xié)議來配置。
在此階段接收到的任何非LCP數(shù)據(jù)包將被靜默丟棄。 接收到LCP配置請(qǐng)求數(shù)據(jù)包將引
起PPP連接從網(wǎng)絡(luò)層協(xié)議階段或認(rèn)證階段返回到建立連接階段。
3.5認(rèn)證階段
在某些連接時(shí),在允許網(wǎng)絡(luò)層協(xié)議數(shù)據(jù)包交換之前希望對(duì)對(duì)等實(shí)體進(jìn)行認(rèn)證。 缺省時(shí),認(rèn)
證不是必要的。如果應(yīng)用時(shí)希望對(duì)等實(shí)體使用某些認(rèn)證協(xié)議進(jìn)行認(rèn)證,這種要求必須在建立
連接階段提出。
認(rèn)證階段應(yīng)該緊接在建立連接階段后。然而,可能有連接質(zhì)量的決定并行出現(xiàn)。應(yīng)用時(shí)絕對(duì)
不允許連接質(zhì)量決定數(shù)據(jù)包的交換使認(rèn)證有不確定的延遲。認(rèn)證階段后的網(wǎng)絡(luò)層協(xié)議階段必
須等到認(rèn)證結(jié)束后才能開始。如果認(rèn)證失敗,將轉(zhuǎn)而進(jìn)入終止連接階段。僅僅是連接控制協(xié)
議、認(rèn)證協(xié)議、連接質(zhì)量監(jiān)測(cè)的數(shù)據(jù)包才被允許在此階段中出現(xiàn)。所有其它在此階段中接收
到的數(shù)據(jù)包都將被靜默丟棄。
應(yīng)用注意事項(xiàng):
應(yīng)用時(shí)不能簡(jiǎn)單的因?yàn)槌瑫r(shí)或缺少回應(yīng)就認(rèn)為認(rèn)證失敗。應(yīng)該允許重傳,僅當(dāng)試圖認(rèn)證的次
數(shù)超過一定的限制時(shí)才進(jìn)入終止連接階段。
如果對(duì)方拒絕認(rèn)證,己方有權(quán)進(jìn)入終止連接階段。
3.6網(wǎng)絡(luò)層協(xié)議階段
一旦PPP完成了上述階段,每一個(gè)網(wǎng)絡(luò)層協(xié)議(例如IP、IPX、AppleTal
k)必須單獨(dú)的由相應(yīng)的網(wǎng)絡(luò)控制協(xié)議(NCP)配置。 每一個(gè)網(wǎng)絡(luò)控制協(xié)議可以隨時(shí)打
開或關(guān)閉。
應(yīng)用注意事項(xiàng):
因?yàn)榭赡芤婚_始就會(huì)使用需要花費(fèi)大量時(shí)間的連接質(zhì)量決定,所以當(dāng)?shù)却龑?duì)方進(jìn)行網(wǎng)絡(luò)控制
協(xié)議配置時(shí)應(yīng)該避免使用固定的超時(shí)限制。
當(dāng)一個(gè)網(wǎng)絡(luò)控制協(xié)議自動(dòng)機(jī)達(dá)到已打開的狀態(tài)時(shí),PPP連接上就可以傳送相應(yīng)的網(wǎng)絡(luò)層協(xié)
議數(shù)據(jù)包。當(dāng)接收到的任何所支持的網(wǎng)絡(luò)層協(xié)議數(shù)據(jù)包時(shí),只要相應(yīng)的網(wǎng)絡(luò)控制協(xié)議狀態(tài)自
動(dòng)機(jī)未進(jìn)入已打開狀態(tài),都將作靜默丟棄處理。
應(yīng)用注意事項(xiàng):
只要LCP協(xié)議狀態(tài)自動(dòng)機(jī)處于已打開的狀態(tài),任何接收到的不支持的協(xié)議數(shù)據(jù)包都將返回
協(xié)議拒絕包(后面將提到)。所支持的協(xié)議數(shù)據(jù)包都將靜默丟棄。在此階段,連接上流通的
包括LCP數(shù)據(jù)包、NCP數(shù)據(jù)包和網(wǎng)絡(luò)層協(xié)議數(shù)據(jù)包。
3.7終止連接階段
PPP連接可以隨時(shí)終止。原因可能是載波丟失、認(rèn)證失敗、連接質(zhì)量失敗、超時(shí)計(jì)數(shù)器溢
出,或者網(wǎng)絡(luò)管理員關(guān)閉連接。
LCP通過交換連接終止包來終止連接。當(dāng)連接正在被終止的時(shí)候,PPP會(huì)通知網(wǎng)絡(luò)層以
便它采取相應(yīng)的動(dòng)作。
在交換過終止請(qǐng)求包后,將通知物理層斷開以便使連接真正終止,尤其是在認(rèn)證失敗的時(shí)
侯。發(fā)送連接終止請(qǐng)求包的一方應(yīng)該等待接收到連接終止確認(rèn)包之后或超時(shí)計(jì)數(shù)器計(jì)滿之后
再斷開。收到連接終止確認(rèn)包的一方應(yīng)該等待對(duì)方首先斷開,并且決不能斷開直到至少有一
個(gè)超時(shí)計(jì)時(shí)器在發(fā)送了終止連接確認(rèn)包之后溢出。然后PPP應(yīng)該進(jìn)入連接死亡階段。 在
此階段所有接收到的非LCP數(shù)據(jù)包都將被靜默丟棄。
應(yīng)用注意事項(xiàng):
關(guān)閉時(shí)使用LCP就已足夠。并不需要每一個(gè)NCP都發(fā)送終止連接數(shù)據(jù)包。相反的,一個(gè)
NCP協(xié)議自動(dòng)機(jī)關(guān)閉并不能關(guān)閉整個(gè)PPP連接,即使這個(gè)NCP協(xié)議自動(dòng)機(jī)是當(dāng)前唯一
處于已打開狀態(tài)。
4. 選項(xiàng)協(xié)商自動(dòng)機(jī)
有限狀態(tài)自動(dòng)機(jī)由事件、動(dòng)作、狀態(tài)遷移定義。事件包括接收外部命令,諸如打開、關(guān)閉、
超時(shí)計(jì)時(shí)器溢出和接收到對(duì)方發(fā)送過來的數(shù)據(jù)包。動(dòng)作包括打開超時(shí)計(jì)數(shù)器和向?qū)Ψ桨l(fā)送數(shù)
據(jù)包。有些類型的數(shù)據(jù)包,諸如配置否定包和配置拒絕包,或者編號(hào)拒絕包和協(xié)議拒絕包,
或者回應(yīng)請(qǐng)求包、回應(yīng)回答包和丟棄請(qǐng)求包在自動(dòng)機(jī)的描述中都是不可區(qū)分的。正如后面將
要提到的,雖然這些不同類型的數(shù)據(jù)包會(huì)引起相同的狀態(tài)遷移,但它們確實(shí)起到了不同的作
用。
事件 動(dòng)作
Up = 低層已連接 tlu = 該層已連接
Down = 低層已斷開 tld = 該層已斷開
Open = 打開連接 tls = 該層已開始連接
Close= 關(guān)閉連接 tlf = 該層已關(guān)閉連接
TO+ = 超時(shí)計(jì)時(shí)器溢出且超時(shí)計(jì)數(shù)器值大于零 irc = 初始化超時(shí)計(jì)數(shù)器
TO- = 超時(shí)計(jì)時(shí)器溢出且超時(shí)計(jì)數(shù)器值小于零 zrc = 超時(shí)計(jì)數(shù)器清零
RCR+ = 收到正確的配置請(qǐng)求包 scr = 發(fā)送配置請(qǐng)求包
RCR- = 收到不正確的配置請(qǐng)求包
RCA = 收到配置確認(rèn)包 sca = 發(fā)送配置確認(rèn)包
RCN = 收到配置否定包/拒絕包 scn = 發(fā)送配置否定包/拒絕包
RTR = 收到終止請(qǐng)求包 str = 發(fā)送終止請(qǐng)求包
RTA = 收到終止確認(rèn)包 sta = 發(fā)送終止確認(rèn)包
RUC = 收到未知編碼包 scj = 發(fā)送編碼拒絕包
RXJ+ = 收到編碼拒絕包 (允許的)
或受到協(xié)議拒絕包
RXJ- = 收到編碼拒絕包 (糟糕的)
或受到協(xié)議拒絕包
RXR = 收到回應(yīng)請(qǐng)求包 ser = 發(fā)送回應(yīng)回答包
或者收到回應(yīng)回答包
或者收到丟棄請(qǐng)求包
4.1狀態(tài)轉(zhuǎn)移表
以下就是完整的狀態(tài)轉(zhuǎn)移表。狀態(tài)水平列出來的。低層仍然沒有準(zhǔn)備好。超時(shí)計(jì)時(shí)器也沒有
運(yùn)行在此狀態(tài)下。
當(dāng)?shù)蛯幼兊每捎脮r(shí),就發(fā)送配置請(qǐng)求包。
Closed狀態(tài)
在此狀態(tài)下,連接有效,但是沒有出現(xiàn)Open事件。超時(shí)計(jì)時(shí)器也沒有運(yùn)行在此狀態(tài)
下。 此時(shí)接收到配置請(qǐng)求包后,將發(fā)送終止請(qǐng)求包。接收到終止確認(rèn)包將被靜默丟棄以免
產(chǎn)生循環(huán)。
Stopped狀態(tài)
此狀態(tài)是在Closed狀態(tài)發(fā)生了Open事件后遷移而來的。當(dāng)自動(dòng)機(jī)在進(jìn)行了tlf
動(dòng)作后或發(fā)送了終止請(qǐng)求包后在等待Down事件時(shí)就進(jìn)入此狀態(tài)。超時(shí)計(jì)時(shí)器也沒有運(yùn)行
在此狀態(tài)下。 此時(shí)接收到配置請(qǐng)求包后,將做出合適的回答。接收到其他類型的包時(shí),就
發(fā)送終止確認(rèn)包。接收到終止確認(rèn)包將被靜默丟棄以免產(chǎn)生循環(huán)。
基本原理:
Stopped狀態(tài)是連接終止階段、連接配置失敗和其它自動(dòng)機(jī)的錯(cuò)誤模式的交匯之
處。 還存在著Down事件(由tlf動(dòng)作引發(fā))和RCR事件的競(jìng)爭(zhēng)的情況。當(dāng)R或拒
絕其它用戶的請(qǐng)求。自從連接被確認(rèn)為可用時(shí),就可以由一個(gè)Down事件和一個(gè)緊
接著的Open事件來通知LCP來模擬實(shí)現(xiàn)。應(yīng)該特別注意的是Close事件不能由其
它的原因引發(fā)。 此時(shí)將觸發(fā)一個(gè)Down事件,隨即緊接著一個(gè)Up事件。這樣做將使得
連接有次序的開始重新協(xié)商,自動(dòng)機(jī)由Closing狀態(tài)轉(zhuǎn)移到Stopping狀態(tài),
并且tlf動(dòng)作將斷開連接。自動(dòng)機(jī)將在Stopped狀態(tài)或Starting狀態(tài)中等
待下一次連接。
Timeout(TO+,TO-)事件
Timeout事件指示超時(shí)計(jì)時(shí)器溢出。當(dāng)發(fā)送出配置請(qǐng)求包和終止請(qǐng)求包后超時(shí)計(jì)時(shí)器
開始計(jì)時(shí)。TO+事件指示著超時(shí)計(jì)數(shù)器的值仍然大于零。其中超時(shí)計(jì)數(shù)器每減一,就表明
配置請(qǐng)求包或終止請(qǐng)求包就重傳一次。TO-事件指示著超時(shí)計(jì)數(shù)器的值小于零,再?zèng)]有任
何數(shù)據(jù)包需要重傳了。
Receive-Configure-Request(RCR+,RCR-)事件
RCR事件出現(xiàn)表明接收到了從對(duì)方發(fā)送來的配置請(qǐng)求包。配置請(qǐng)求包的到來表明對(duì)方希望
打開連接并且指定連接選項(xiàng)。配置請(qǐng)求包將在后面有更詳細(xì)的描述。
RCR+事件表明對(duì)方的配置請(qǐng)求是可以接受的,并且將傳送配置確認(rèn)包。
RCR-事件表明對(duì)方的配置請(qǐng)求是不能接受,并且將傳送相應(yīng)的配置否定包或配置拒絕
包。
應(yīng)用注意事項(xiàng):
這些事件可以在自動(dòng)機(jī)已處于Opened狀態(tài)的時(shí)候發(fā)生。這時(shí)必須立即準(zhǔn)備好重新協(xié)商
選項(xiàng)。
Receive-Configure-Ack(RCA)事件
RCA事件出現(xiàn)表明收到了對(duì)方κ褂茫眨鶚錄?魑?卮稹? 這個(gè)動(dòng)作的結(jié)果高度依賴于應(yīng)用
的需要。
This-Layer-Finished(tlf)動(dòng)作
tlf動(dòng)作表明低層的協(xié)議自動(dòng)機(jī)進(jìn)入了Intial狀態(tài),Closed狀態(tài),或Sto
pped狀態(tài),并且低層已不再為連接所用。當(dāng)?shù)蛯咏K止時(shí)應(yīng)使用Down事件作為回
答。
典型的,此動(dòng)作可能會(huì)被LCP用來提前進(jìn)入連接死亡階段,或者被NCP用來通知LCP
當(dāng)沒有任何NCP被打開時(shí)連接可能會(huì)終止。
這個(gè)動(dòng)作的結(jié)果高度依賴于應(yīng)用的需要。
Initialize-Restart-Count(irc)動(dòng)作
irc動(dòng)作初始化超時(shí)計(jì)數(shù)器為一合適的值(Max-Terminate或Max-Co
nfigure)。每傳送一次數(shù)據(jù)包,計(jì)數(shù)器就減一,并且包括第一次。
應(yīng)用注意事項(xiàng):
除了設(shè)置超時(shí)計(jì)數(shù)器之外,還必須為超時(shí)計(jì)時(shí)器設(shè)置超時(shí)事件的時(shí)間長(zhǎng)度。
Zero-Restart-Count(zrc)動(dòng)作
zrc動(dòng)作將超時(shí)計(jì)數(shù)器清零。
應(yīng)用注意事項(xiàng):
此動(dòng)作使有限自動(dòng)狀態(tài)機(jī)能夠在進(jìn)入最終所期望的狀態(tài)之前停止,允許由對(duì)方處理網(wǎng)絡(luò)流
量。除了設(shè)置超時(shí)計(jì)數(shù)器之外,還必須為超時(shí)計(jì)時(shí)器設(shè)置超時(shí)事件的時(shí)間長(zhǎng)度。
Send-Configure-Request(scr)動(dòng)作
scr動(dòng)作將發(fā)送配置請(qǐng)求包。這表明期望用指定的配置選項(xiàng)打開連接。當(dāng)配置選項(xiàng)包被發(fā)
送時(shí),超時(shí)計(jì)時(shí)器開始計(jì)時(shí)以防止它被丟失。每當(dāng)發(fā)送一個(gè)配置請(qǐng)求包時(shí),超時(shí)計(jì)數(shù)器就減
一。
Send-Configure-Ack(sca)動(dòng)作
sca動(dòng)作發(fā)送配置確認(rèn)包。它表明確認(rèn)了接收到的配置請(qǐng)求包中所有的配置選項(xiàng)。
Send-Configure-Nak(scn)動(dòng)作
scn動(dòng)作發(fā)送配置否定包或配置拒絕包。它表明否定了接收到的配置請(qǐng)求包中某些的配置
選項(xiàng)。 配置否定包被用于拒絕某一個(gè)配置選項(xiàng)值,并且還建議了一個(gè)新的可以接受的配置
選項(xiàng)值。而配置拒絕包被用于拒絕所有的配置選項(xiàng),典型的是因?yàn)檫@些選項(xiàng)不能被識(shí)別或被
運(yùn)用。關(guān)于如何使用配置否定包和配置拒絕包將在后面敘述鏈路控制協(xié)議數(shù)據(jù)包格式的章節(jié)
中詳細(xì)說明。
Send-Terminate-Request(str)動(dòng)作
str動(dòng)作發(fā)送終止請(qǐng)求包。它表明期望關(guān)閉連接。當(dāng)終止請(qǐng)求包被發(fā)送時(shí),超時(shí)計(jì)時(shí)器開
始計(jì)時(shí)以防止它被丟失。每當(dāng)發(fā)送一個(gè)配置請(qǐng)求包時(shí),超時(shí)計(jì)數(shù)器就減一。
Send-Terminate-Ack(sta)動(dòng)作
sta動(dòng)作發(fā)送終止確認(rèn)包。它表明確認(rèn)了接收到的終止請(qǐng)求包或者對(duì)雙方的協(xié)議自動(dòng)機(jī)起
到同步的作用。
Send-Code-Reject(scj)動(dòng)作
scj動(dòng)作發(fā)送編碼拒絕包。它表明接收到有不能識(shí)別編碼的數(shù)據(jù)包。
Send-Echo-Reply(ser)動(dòng)作
ser動(dòng)作發(fā)送回應(yīng)回答包。它表明確認(rèn)接收到了回應(yīng)請(qǐng)求包。
4.6避免循環(huán)
協(xié)議有效的避免了在協(xié)商配置選項(xiàng)時(shí)的循環(huán)。然而,協(xié)議并不能保證這種循環(huán)不再出現(xiàn)。在
協(xié)商任何選項(xiàng)時(shí),雙方有可能采取了相互矛盾決不相容的配置策略。但是雙方也有可能采取
了可以相容的配置策略,但這時(shí)可能需要花費(fèi)很多時(shí)間。應(yīng)用者要將此記在心中并應(yīng)應(yīng)用循
環(huán)監(jiān)測(cè)機(jī)制和更高層次的超時(shí)機(jī)制。
4.7計(jì)數(shù)器和計(jì)時(shí)器
超時(shí)計(jì)時(shí)器
自動(dòng)機(jī)并沒有運(yùn)用特殊的計(jì)時(shí)器。超時(shí)計(jì)時(shí)器被用來監(jiān)測(cè)配置請(qǐng)求包和終止請(qǐng)求包的傳送。
當(dāng)計(jì)時(shí)器計(jì)滿后將引發(fā)一個(gè)Timeout事件,并重新發(fā)送相應(yīng)的配置請(qǐng)求包或終止請(qǐng)求
包。超時(shí)計(jì)時(shí)器必須被配置,而且缺省值應(yīng)該為三秒鐘。
應(yīng)用注意事項(xiàng):
超時(shí)計(jì)時(shí)器的設(shè)置應(yīng)該基于連接的速度。缺省值是為低速連接(2400-9600bp
s)、高速交換連接(典型的如電話線)設(shè)計(jì)的。更高速的連接,或低交換速度連接應(yīng)該相
應(yīng)的增加重傳的次數(shù)。
取代固定的超時(shí)值,超時(shí)計(jì)時(shí)器應(yīng)該最初設(shè)為一個(gè)小的值然后再增加達(dá)到最終配置值。每一
個(gè)小于最終值的成功的值都應(yīng)該是前一個(gè)值的兩倍。初始值應(yīng)該足夠處理一個(gè)數(shù)據(jù)包,它通
常設(shè)置為兩倍于以連接速度在傳送間做一往返的時(shí)間還要加上一百毫秒,以允許對(duì)方在做作
回應(yīng)之前能夠處理數(shù)據(jù)包。
最大終止次數(shù)
它是為終止請(qǐng)求包計(jì)數(shù)的超時(shí)計(jì)數(shù)器所要求的一個(gè)值。它表明了在假定對(duì)方不能做出回答之
前且未接收到終止確認(rèn)包時(shí)發(fā)送終止請(qǐng)求包最大的發(fā)送次數(shù)。最大終止次數(shù)必須被配置,而
且缺省值應(yīng)該為重傳兩次。
最大配置次數(shù)
相似的量被推薦給了配置請(qǐng)求包。它表明在假定對(duì)方不能做出回答之前且未接收到配置確認(rèn)
包、配置否定包或配置拒絕包時(shí)發(fā)送配置請(qǐng)求包最大的發(fā)送次數(shù)。最大配置次數(shù)必須被配
置,而且缺省值應(yīng)該為重傳十次。
最大失敗次數(shù)
相似的量被推薦給了配置否定包。它表明了在假定未達(dá)成一致發(fā)送配置確認(rèn)包之前配置否定
包最大的發(fā)送次數(shù)。任何由對(duì)方配置否定包中所建議的而后又被加入到配置拒絕包中的選項(xiàng)
和本地所期望的選項(xiàng)在協(xié)商過程中都不再追加進(jìn)去。最大配置次數(shù)必須被配置,而且缺省值
應(yīng)該為五次。
5. 鏈路控制協(xié)議數(shù)據(jù)包格式
有三種類型的鏈路控制協(xié)議數(shù)據(jù)包:
1. 連接配置數(shù)據(jù)包用于建立和配置連接。(配置請(qǐng)求包,配置確認(rèn)包,配置否定包和配置
拒絕包)。
2. 連接終止數(shù)據(jù)包用于終止連接(終止請(qǐng)求包和終止確認(rèn)包)。
3. 連接維護(hù)數(shù)據(jù)包用于管理和調(diào)試連接(編碼拒絕包,協(xié)議拒絕包,回應(yīng)請(qǐng)求包,回應(yīng)回
答包和丟棄請(qǐng)求包)。為了簡(jiǎn)化起見,數(shù)據(jù)鏈路控制協(xié)議數(shù)據(jù)包格式中并沒有版本號(hào)域。對(duì)
于不能識(shí)別的協(xié)議和編碼都能以簡(jiǎn)單的可識(shí)別的鏈路控制協(xié)議數(shù)據(jù)包格式予以回應(yīng),因此對(duì)
其它的版本提供了一種確定性但效率低的的運(yùn)行機(jī)制。不管什么配置選項(xiàng)被確定為使能,所
有的連接配置包,連接終止包,編碼拒絕包(編碼號(hào)1-7)都假定沒有配置選項(xiàng)被協(xié)商。
實(shí)際上,每一個(gè)配置選項(xiàng)都被指定了一個(gè)缺省值。這樣做使得諸如鏈路控制協(xié)議的數(shù)據(jù)包總
是能夠識(shí)別,即使當(dāng)連接已結(jié)束但仍被錯(cuò)誤的認(rèn)為連接是打開的時(shí)候。
鏈路控制協(xié)議數(shù)據(jù)包被封裝在PPP幀格式的數(shù)據(jù)域中,且PPP幀的協(xié)議域的值是0xc
021。
鏈路控制協(xié)議數(shù)據(jù)包格式總結(jié)如下。按照從左至右的順序被傳送。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 編碼 | 標(biāo)識(shí) | 長(zhǎng)度 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 數(shù)據(jù) ...
+-+-+-+-+
編碼域
編碼域占一個(gè)八位字節(jié)。它標(biāo)識(shí)這是何種類型的鏈路控制協(xié)議數(shù)據(jù)包。當(dāng)接收到編碼域不可
識(shí)別的數(shù)據(jù)包時(shí),就發(fā)送編碼拒絕數(shù)據(jù)包。
最新的編碼域的值由最近公布的"Assigned Numbers"RFC文檔說明。與
本文檔相關(guān)的有以下的值:
1 配置請(qǐng)求(Configure-Request)
2 配置確認(rèn)(Configure-Ack)
3 配置否定(Configure-Nak)
4 配置拒絕(Configure-Reject)
5 終止請(qǐng)求(Terminate-Request)
6 終止確認(rèn)(Terminate-Ack)
7 編碼拒絕(Code-Reject)
8 協(xié)議拒絕(Protocol-Reject)
9 回應(yīng)請(qǐng)求(Echo-Request)
10 回應(yīng)回答(Echo-Reply)
11 丟棄請(qǐng)求(Discard-Request)
標(biāo)識(shí)域
標(biāo)識(shí)域編碼占一個(gè)八位字節(jié),它幫助請(qǐng)求和回答進(jìn)行匹配。當(dāng)收到的數(shù)據(jù)包中的標(biāo)識(shí)域是無
效的,它將被靜默丟棄并且不影響自動(dòng)機(jī)的狀態(tài)。
長(zhǎng)度域
標(biāo)識(shí)域編碼占兩個(gè)八位字節(jié),它標(biāo)識(shí)了鏈路控制協(xié)議數(shù)據(jù)包的長(zhǎng)度,包括編碼域,標(biāo)識(shí)域,
數(shù)據(jù)域等。此長(zhǎng)度不能超過連接的最大接收長(zhǎng)度。
超過長(zhǎng)度域的八位字節(jié)被視為填充字節(jié)并在接收時(shí)忽略。當(dāng)接收到長(zhǎng)度域無效的數(shù)據(jù)包時(shí),
它將被靜默丟棄并且不影響自動(dòng)機(jī)的狀態(tài)。
數(shù)據(jù)域
數(shù)據(jù)域有零個(gè)或多個(gè)八位字節(jié),正如長(zhǎng)度域中所指示的長(zhǎng)度。數(shù)據(jù)域中的格式由編碼域中的
值決定。
5.1配置請(qǐng)求
描述
當(dāng)希望打開一個(gè)連接時(shí),必須傳送配置請(qǐng)求包。選項(xiàng)域中由期望改變連接缺省值的配置選項(xiàng)
填充。配置選項(xiàng)不必包含使用缺省值的配置選項(xiàng)。
當(dāng)接收到了配置請(qǐng)求包時(shí),必須傳送合適的數(shù)據(jù)包作為回應(yīng)。
配置請(qǐng)求包的格式總結(jié)如下。按照從左至右的順序被傳送。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 編碼 | 標(biāo)識(shí) | 長(zhǎng)度 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 選項(xiàng) ...
+-+-+-+-+
編碼
1代表配置請(qǐng)求。
標(biāo)識(shí)
當(dāng)選項(xiàng)域中的內(nèi)容改變或當(dāng)接收到對(duì)前一次請(qǐng)求的無效回答時(shí),標(biāo)識(shí)域應(yīng)做改變。重傳時(shí),
標(biāo)識(shí)域則不應(yīng)改變。
選項(xiàng)
選項(xiàng)域長(zhǎng)度可變,包含有零個(gè)或多個(gè)希望協(xié)商的配置選項(xiàng)的列表。全部的配置選項(xiàng)將同時(shí)協(xié)
商。選項(xiàng)域的格式將在后面的章節(jié)詳細(xì)討論。
5.2配置確認(rèn)
描述
如果對(duì)方發(fā)送來的配置請(qǐng)求包中的配置選項(xiàng)都是可識(shí)別并且可接受,就可以發(fā)送配置確認(rèn)
包。其中已被確認(rèn)的選項(xiàng)的順序和選項(xiàng)自身都不能以任何方式修改。
接收到的配置確認(rèn)包中的標(biāo)識(shí)域必須同上一次發(fā)送的配置請(qǐng)求包中的標(biāo)識(shí)域匹配。此外,在
配置確認(rèn)包中選項(xiàng)必須同上一次發(fā)送的配置請(qǐng)求包中的選項(xiàng)完全一致。
配置請(qǐng)求包的格式總結(jié)如下。按照從左至右的順序被傳送。
0 1 2 用于通知對(duì)方己方可以接收更大
的數(shù)據(jù)包,或者要求對(duì)方發(fā)送更小的數(shù)據(jù)包。
它的缺省值是1500字節(jié)。如果要求更小的數(shù)據(jù)包,當(dāng)連接失去同步時(shí)應(yīng)用仍將按150
0字節(jié)接收信息域。
應(yīng)用注意事項(xiàng):
此選項(xiàng)說明了應(yīng)用的能力。對(duì)方并沒有要求使用最大的能力。舉例來說,當(dāng)MRU為204
8字節(jié),而對(duì)方?jīng)]有被要求發(fā)送2048字節(jié)大小的數(shù)據(jù)包。此時(shí)對(duì)方不需要使用配置否定
包表明它僅僅發(fā)送比2048字節(jié)小的數(shù)據(jù)包,因?yàn)閼?yīng)用始終要求支持至少
1500字節(jié)的數(shù)據(jù)包。最大接收單元配置選項(xiàng)格式小結(jié)如下。按照從左至右的順序被傳
送。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| 類型 | 長(zhǎng)度 | 最大接收單元 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
類型
1
長(zhǎng)度
4
最大接收單元
最大接收單元域有兩個(gè)八位字節(jié),它指定了信息域和填充域所能接受的最大字節(jié)數(shù)。它不包
括幀協(xié)議域,循環(huán)校驗(yàn)碼和任何因透明傳輸而需要的位或字節(jié)。
6.2認(rèn)證協(xié)議
描述
在進(jìn)行某些連接時(shí)可能希望在交換網(wǎng)絡(luò)層數(shù)據(jù)包之前要求對(duì)方來認(rèn)證自己。 這個(gè)配置選項(xiàng)
提供了協(xié)商用指定的認(rèn)證協(xié)議進(jìn)行認(rèn)證的方法。缺省情況下,認(rèn)證是不需要的。
應(yīng)用時(shí)不能在配置請(qǐng)求包中包含多個(gè)認(rèn)證協(xié)議配置選項(xiàng)。相反的,應(yīng)該首先配置最期望使用
的認(rèn)證協(xié)議。如果被配置否定包所否定,應(yīng)該在下一次配置請(qǐng)求中配置其次最期望使用使用
的認(rèn)證協(xié)議。
應(yīng)用發(fā)送配置請(qǐng)求包表明它希望對(duì)方對(duì)自己進(jìn)行認(rèn)證。如果對(duì)方發(fā)送來配置確認(rèn)包,表示它
同意使用指定的協(xié)議進(jìn)行erkins, D., "Requirements for an Internet
Standard Point-to-Point Protocol", RFC 1547, Carnegie Mellon University,
December 1993.??
評(píng)論
查看更多