网络协议分析(Network Protocol Analysis)之点到链路控制协议LCP
LCP用于配置、维护和终止PPP链路。
一、链路配置
发送方 向 回应方发送Configure-Request报文,发起链路建立和配置过程,其中可以包含多种选项。回应方可能的回应包括三种:
1、若所有选项都可以识别且被接受,则返回确认(Configure-Ack)。
2、若所有选项都可识别,但只有部分能接受,则返回否认(Configure-Nak),其中包含拒绝的选项。
3、若有部分选项不可识别或不被接受,则返回拒绝(Configure-Reject),其中包含不可识别和拒绝的选项。
通信双方可以开展多次配置协商。如果对方不识别某些选项,则随后的协商将不包含它们,此外,回应方返回的否认或拒绝报文中可能包含其接受的配置选项值,以便发起方以此为依据,修改配置项。
一个报文中可以包含一个或多个选项,LCP定义了6种选项:
1.最大接收单元
最大接受单元(Maximum Receive Unit,MRU)用以想对方通告可以接收的最大报文长度。
2.认证协议
用以通告对方使用认证协议。包括两种PAP和CHAP(在上篇PPP协议中有提到)。
3.质量协议
用以想对方通告使用的链路质量监控协议。
4.幻数(Magic Number)
用以防止贿赂。器思想是,当PPP通信实体发现自己最近发出的报文中包含的幻数总是与最近收到的幻数相同时,可判定出现了回路。
5.协议域压缩PFC
PFC(Protocol Field Compression)用以通知对方可以接收“协议”字段经过压缩的PPP帧。
6.地址及控制域压缩ACFC
ACFC(Address and Control Field Compression)用以通知对方可以接收“地址”和“控制”字段经过压缩的PPP帧。
二、链路终止
当通信一方想要终止链路时,向对方发送Terminate-Request报文,对方用Terminate-Ack相应。
三、链路维护
链路维护报文用于错误通告及链路状态检测。LCP规定了5种链路维护报文。
1.Code-Reject
表示无法识别报文的类型字段。若收到该类错误,应立即终止链路。
2.Protocol-Reject
表示无法识别的PPP帧的“协议”字段。若收到该类错误,应停止发送该类型的协议报文。
3.Echo-Request和Echo-Reply
这两种报文用于链路质量和性能测试。
4.Discard-Requst
这是一种辅助的错误调试和实验报文,没有实质的用途。