华为、华三、思科高级网络工程师必经之路(5)我们的爱如同TCP连接,始终可靠,永不掉线惠阳月嫂138

文章正文
发布时间:2025-01-12 19:54

1.PPP---点到点协议1.1 PPP的基本定义与功能

定义:

PPP 是一种在物理层和数据链路层之间工作、用于在两台设备之间传输数据帧的协议。它的目标是提供一个简单、灵活和可靠的方式来在多个类型的通信线路上进行数据传输。PPP支持多种网络层协议的封装,惠阳月嫂13825404095并能够在不可靠的物理媒体上建立和维护连接。

PPP协议的主要功能包括:

帧封装:PPP可以封装不同的网络层协议,如IP、IPX等。

链路管理:PPP在两台设备之间建立、配置和管理链路。

错误检测:PPP提供基本的错误检测机制,确保数据帧的传输可靠性。

身份验证:PPP支持多种身份验证机制,确保只有授权的设备能够建立连接。

数据压缩与加密:PPP支持通过扩展协议进行数据压缩和加密,以提高效率和安全性。

1.2PPP协议的优点:

PPP协议具备良好的兼容性,任何串行接口只要支持全双工通讯,就支持PPP协议

具备可移植性---PPPoE协议;将PPP移植到以太网中。

可以完成认证和授权过程。

没有重传机制,网络开销较小,速度快

1.3PPP的帧结构

PPP数据帧由多个字段组成,包括:

标志字段(Flag):一个单字节,值为0x7E,表示帧的开始和结束。所有PPP帧都以这个字节开始和结束。

地址字段(Address):一个字节,通常值为0xFF,表示广播地址。

控制字段(Control):一个字节,通常值为0x03,表示使用无确认方式的帧格式。

协议字段(Protocol):两个字节,用于指示数据部分的协议类型,例如,0x0021表示IP协议,0x8021表示IPv6协议。

数据字段(Data):数据部分,即实际传输的网络层数据。

帧校验序列(FCS,Frame Check Sequence):一个4字节的CRC(循环冗余校验)字段,用于检测数据在传输过程中是否发生了错误。

1.4PPP链路建立阶段

1. Dead(死亡)状态

描述:链路的初始状态,表示链路处于未激活状态,没有物理层连接。

转换条件:当物理层连接建立时,链路状态从 Dead 转换到 Establish。

2. Establish(建立)状态

描述:在这个状态下,链路开始进行协商,主要是通过 LCP(Link Control Protocol,链路控制协议)进行链路参数的协商。

转换条件:

如果 LCP 协商成功,链路状态从 Establish 转换到 Authenticate(如果配置了认证)或 Network(如果没有配置认证)。

如果 LCP 协商失败,链路状态从 Establish 转换到 Terminate。

3. Authenticate(认证)状态

描述:在这个状态下,链路进行认证,通常使用 PAP(Password Authentication Protocol,密码认证协议)或 CHAP(Challenge Handshake Authentication Protocol,挑战握手认证协议)。

转换条件:

如果认证成功,链路状态从 Authenticate 转换到 Network。

如果认证失败,链路状态从 Authenticate 转换到 Terminate。

4. Network(网络)状态

描述:在这个状态下,链路已经建立并且通过了认证(如果配置了认证),可以进行网络层协议(如 IP)的协商和数据传输。

转换条件:

如果网络层协议协商成功,链路保持在 Network 状态,进行数据传输。

如果网络层协议协商失败,链路状态从 Network 转换到 Terminate。

5. Terminate(终止)状态

描述:在这个状态下,链路正在关闭,释放资源。

转换条件:

当链路完全关闭后,链路状态从 Terminate 转换到 Dead。

6. Closing(关闭)状态

描述:一个过渡状态,表示链路正在从一个状态转换到另一个状态。

转换条件:

根据具体情况,从 Closing 状态可以转换到其他状态,如从 Closing 状态可以转换到 Terminate 状态。

7. Down(关闭)状态

描述:链路关闭后的状态,表示链路已经完全关闭,但物理层连接仍然存在。

转换条件:

如果链路需要重新建立,链路状态从 Down 转换到 Establish。

1.5PPP数据帧封装结构

image-20230228141647361

image-20230228141647361

1. 帧起始和结束标志(Flag)

标志:PPP 帧以一个字节的标志开始和结束,其十六进制值为0x7E。

作用:用于标识帧的开始和结束,确保接收方能够正确识别帧的边界。

image-20230228141647361

image-20230228141647361

2. 地址字段(Address)

地址:一个字节,通常设置为0xFF。

作用:在 PPP 中,地址字段没有实际意义,因为 PPP 是点对点连接,不存在多地址的情况。

image-20230228141647361

image-20230228141647361

3. 控制字段(Control)

控制:一个字节,通常设置为0x03。

作用:类似于地址字段,控制字段在 PPP 中也没有实际意义,主要是为了与其他协议兼容。

image-20230228141647361

image-20230228141647361

4. 协议字段(Protocol)

协议:两个字节,用于标识帧中信息部分所承载的数据类型。

作用:通过协议字段,PPP 可以承载多种网络层协议的数据,例如 IP(0x0021)、IPX(0x002B)等。

image-20230228141647361

image-20230228141647361

5. 信息部分(Information)

信息:可变长度,最多不超过 1500 字节。

作用:承载网络层数据报(如 IP 数据报),是 PPP 帧的主要数据部分。

image-20230228141647361

image-20230228141647361

6. 帧校验序列(FCS)

FCS:两个字节,用于检测帧在传输过程中是否出现错误。

作用:通过循环冗余校验(CRC)算法计算得到,接收方通过校验 FCS 来判断帧的完整性。

image-20230228141647361

image-20230228141647361

7. 字节填充(Byte Stuffing)

填充:在 PPP 帧中,如果信息部分的数据中出现了与标志字段相同的值(0x7E),则需要进行字节填充,将0x7E替换为0x7D 0x5E。

作用:确保帧的标志字段不会在信息部分中出现,避免接收方误判帧的边界。

image-20230228141647361

image-20230228141647361

8. 透明传输

透明:PPP 通过字节填充和其他机制实现透明传输,即可以传输任意数据而不会影响帧的结构。

1.6LCP协议报文类型

LCP协议报文类型分为三类:链路配置报文、链路终止报文、链路维护报文。

如下图所示:

image-20230228173914499

image-20230228173914499

1.7LCP建立

代码语言:javascript

复制

1、MRU值=1500--->PPP数据帧所允许携带的最大数据单元。 2、认证--->1、是否进行认证;2、使用何种方式进行认证。 3、魔术字:用以检测链路中是否存在环路。

1.8LCP协商阶段:

以A和B两台设备为例:

A设备正常发送出Request报文,在没有收到回复之前,每隔3秒重传一次该报文,连续重传10次。

如果还未收到对方发送的回复信息,则认为对端不可用,停止报文发送。

如果正常接收到对端的ACK回复信息,则表明B设备认可A设备的链路参数配置。但是此时链路会话还未建立成功。

B设备向A发送Request报文,等待A设备认可B设备的链路参数配置。

当双方均认可对方的参数后,LCP协商成功。

1.9 认证阶段

PPP协议的认证,是通过调用AAA(认证、授权、计费)来完成的。

补充说明:

PPP协议的认证是单向的,也可以是双向的。 ---一般采用单向认证。

PPP会话的认证是一次性会话的方式,当第一次链路建立完成后,后续修改认证方式不会影响链路的通讯

2.PAP---密码认证协议

被认证方需要将认证的账户名和密码以明文的形式发送给认证方

image-20240318211740269

image-20240318211740269

2.1认证方以及被认证方配置

代码语言:javascript

复制

[r2]aaa [r2-aaa]local-user huawei password cipher 123456 ---创建用户信息 [r2-aaa]local-user huawei service-type ppp ---规定服务协议 [r2-Serial1/0/0]ppp authentication-mode pap ---规定该串口的认证模式为PAP 被认证方配置 [r1-Serial1/0/0]ppp pap local-user huawei password cipher 123456

2.2CHAP---挑战握手协议

--->认证不再传递明文信息,而是采用对比摘要值的方式来进行认证

2.2.1认证过程:

1、认证方先发送挑战报文,里面包含了认证方的用户名和一个随机值。

2、被认证方根据报文中的用户名查找对应密码信息,然后将密码和发送来的随机值一起做HASH运算得到摘要值,最后将自己的用户名和摘要值通过应答报文发送给认证方。

哈希:

1、任意长度的输入转换为固定长度的输出。---MD5:将任意长度的输入转换为128位的输出。

2、相同输入,相同输出。

3、不可逆。

4、蝴蝶效应

2.2.2认证方以及被认证方:

代码语言:javascript

复制

认证方: [r2-aaa]local-user nanjing password cipher 111 [r2-aaa]local-user nanjing service-type ppp [r2-Serial1/0/0]ppp authentication-mode chap 被认证方: [r1-Serial1/0/0]ppp chap user nanjing [r1-Serial1/0/0]ppp chap password cipher 111

一条PPP链路的两端可以使用不同的认证协议认证对端,但是被认证方必须支持认证方要求使用的认证协议,并且配置正确的用户名和密码信息

3.网络层协议协商阶段---NCP协商3.1IPCP---互联网协议控制协议;

IP地址是否可用。---检测对端IP地址是否与本端冲突。属于授权的过程。

3.2协商过程

静态地址协商

一旦认可了对方的IP地址,则将会自动学习到达该地址的主机路由

动态地址协商

image-20240323143619138

image-20240323143619138

image-20240323143619138

image-20240323143619138

3.3动态地址协商配置:

代码语言:javascript

复制

配置方: [r1-Serial1/0/0]remote address 1.1.1.1 获取方: [r2-Serial1/0/0]ip address ppp-negotiate