.点到点协议.pdf
文本预览下载声明
下载
第7章 点到点协议
和S L I P一样,P P P也是通过串行链接收发数据报时采用的协议,但解决了前者存在的两大不
足,它让通信双方自行对诸如启动时的 I P地址、最大传输单元等选项进行协商,并提供客户机
验证。针对每个功能,P P P都有一个单独的协议。下面,我们将简要介绍一下P P P协议的基本构
成。如果想进一步了解PPP ,强烈推荐大家参阅RFC-1548 中的PPP规格,以及相关的参考丛书。
P P P 的底层是“高级数据链路控制协议”(High-Level Data Link Control Protocol, HDLC )。
H D L C定义了单帧P P P 的边界,并提供了一个1 6位的校验和。与更为原始的 S L I P封装模式相反,
P P P 帧能够保存自其他协议( I P协议除外)包,比如N o v e l l 的I P X协议和Apple Ta l k协议。P P P
协议是怎样做到这一点的呢?答案是:在基本 H D L C 帧内增添一个协议字段。所谓基本 H D L C
帧,就是验证包类型是否由某个帧负责传送的帧。
链接控制协议(Link Control Protocol,LCP) ,位于H D L C 的顶部,用于协商数据链接选项,
比如“最大接收单元”(M R U )等。最大传输单元表示链接方同意接收的数据报的最大字节数。
在配置P P P链接时,一个重要步骤是客户机验证。尽管它不是强制实施的,但对拨号线路
来说,却是必不可少的。通常,被呼叫方(即服务器)要求客户机证明它知道密钥,并藉此
对客户机的身份进行验证。如果呼叫方不能提供正确的密钥,连接就会中断。利用 P P P 时,验
证是双向的:也就是说,呼叫方也可以要求服务器验明它自己的身份。这两个验证过程彼此
并不相干。不同类型的身份验证,采用的协议是不同的,这一点,我们将在后续小节进行讨
论。一个叫做“密码验证协议”(Password Authentication,PA P ),另一个叫做“盘问握手验证
协议”(Challenge Handshake Authentication Protocol,CHAP )。
对通过数据链路路由的每个网络协议(比如I P和Apple Ta l k )来说,我们都可以利用相应的
网络控制协议来对它们进行动态配置。例如,在打算通过链路发送I P数据报时,两端的P P P必须
先对彼此使用的IP地址进行协商。这时所用的控制协议就是IPCP ,即“Internet协议控制协议”。
除了通过链路发送标准的 I P数据报外,P P P还支持I P数据报的Van Jacobson 报头压缩。这
种压缩技术将 T C P包的报头缩小到 3个字节。另外,它还用于 C S L I P ,即人们常说的V J报头压
缩。是否使用这种压缩,同样要在启动时,通过 I P C P进行协商。
7.1 PPP打开
在L i n u x 中,P P P 的作用分为两大类:其一,位于内核的低级 H D L C驱动程序;其二,处
理不同控制协议的用户空间 pppd daemon 。编写本书时,P P P 的当前版本是L i n u x - p p p - 1 . 0 . 0 ,
其中包含内核P P P模块p p p d和一个程序,该程序名为 c h a t ,用于拨号远程系统。
注意 当前P P P 协议支持属于内核专用,诸如 pppd daemon 之类的支持程序位于
metalab.unc.edu/Pub/Linux/system/network/serial/ppp/ (当前版本是ppp-2.3.4 )。
P P P 内核驱动程序是迈克·克拉翰编写的。 p p p d衍生于一个免费的 P P P执行程序,适用于
S u n和3 8 6 B S D机器,是德鲁·帕金斯和其他人一起编写的。由艾尔·侬伊尔移植到 L i n u x 中。
70 第一部分 Linux 网络管理员指南
下载
像S L I P一样,P P P 是通过一种特殊的线路规则来实现的。要把串行线路当作 P P P链接使用,
应该像以往一样,先通过 M o d e m 建立一条链接,再把该线路转换为 P P P模式。这种模式下,
收到的所有数据都被传递到 P P P 驱动程序,驱动程序再对收到的这些 H
显示全部