V相关协议学习笔记(持续更新中...)

网络协议学习笔记

OSI七层模型

PPP 协议

概述

PPP(Point-to-Point Protocal),用户计算机与 ISP(图像信号处理器)进行通信时,所使用的数据链路层协议。PPP是点对点数据链路层协议,也广泛应用于 广域网路由器 之间的专用线路。

PPP(Point-to-Point Protocol)和PPPoE(Point-to-Point Protocol over Ethernet)是两种不同的协议。

PPP 是一种用于在两个点之间进行通信的协议,常用于 dial-up 网络和 VPN 连接。PPP 协议提供了多种功能,包括身份验证、数据压缩和加密等,但是它不提供路由功能。

PPPoE 则是一种在以太网上运行 PPP 的协议。它使用了以太网帧来封装 PPP 数据包,并使用一种特殊的服务器/客户端模型来管理 PPP 连接。PPPoE 常用于 ADSL、光纤宽带等拨号上网方式,也可以用于小区宽带网络中。

因此,PPPoE 可以看作是在以太网上运行 PPP 的一种方式,而 PPP 则是一种通用的协议,不仅可以在以太网上运行,也可以在其他类型的网络上运行。

PPP最初的设计目的,是为两个对等结点之间的IP传输提供一种封装协议。

组成

PPP协议为在点对点链路传输各种协议数据包提供了一个标准方法,主要由以下三部分构成:

  • 封装成帧:对各种协议数据报的封装方法
  • 链路控制协议LCP:用于建立、配置以及测试数据链路的连接
  • 一套网络控制协议NCPs:其中的每个协议支持不同的网络层协议

帧格式

  • Flag字段为 帧定界 标志,用来标示PPP帧的 开始与结束,取值固定为 0x7E
  • Address字段,用来标示接收方的地址,由于点到点链路的接收方是唯一的,取值固定为 0XFF
  • Control字段,取值固定为 0x03,标示无序号信息
  • Protocol字段,用来标识PPP帧封装的协议数据类型
字段值 协议
0x0021 IP
0x0029 Appletalk
0x8021 IPCP
0xC021 LCP
0xC023 RAP
0xC025 LQR
0xC223 CHAP
  • Information字段,长度不固定,最大长度等于MRU值,默认为1500B
  • FCS(Frame Checksum)为 帧校验和字段,用来检测PPP帧的完整性(CRC计算)
工作流程

在建立、保持和终止PPP链路的过程中,PPP链路需要经过5个阶段,除认证阶段外,其它4个阶段都是必要过程。

  1. 链路不可用阶段(Dead)
  2. 链路建立阶段(Establish)
  3. 认证阶段(Authenticate)
  4. 网络层协议阶段(Network)
  5. 链路终止阶段(Terminate)

工作流程图

LCP 协议

概述

LCP(Link Control Protocol,链路控制协议):用于建立、配置、维护和终止PPP链路。

LCP负责PPP的链路管理,和网络层协议无关。

报文格式

当 PPP帧 中 Protocol字段为 0xC021 时,表示 Information 字段数据为 LCP报文。

报文格式

  • Code,代码字段(也称类型字段),用来标识LCP中链路控制报文的类型。
  • Identifier,标识符字段,是报文的唯一标识。Identifier字段用于匹配请求和回复
  • Length,长度字段,指出该报文的长度,包括 Code,Identifier,Length和Data
  • Data,数据字段,零或多个八位字节,由Length字段表明,格式由Code字段决定
报文种类
类型 功能 报文类型 报文代码
链路配置 建立和配置链路 Configure-Request 1
Configure-Ack 2
Configure-Nak 3
Configure-Reject 4
链路终止 终止链路 Terminate-request 5
Terminate-Ack 6
链路维护 管理和调试链路 Code-Reject 7
Protocol-Reject 8
Echo-Request 9
Echo-Reply 10
Discard-Request 11

链路配置报文

Configure-Request 的 Code 字段值为 0x01,Data字段值为一到多个选项(Options)列表,选项列表中的参数可同时协商。

链路配置报文

  • Type为类型字段,用于区分协商不同参数
Type值 对应参数 功能
0x00 Reserved 保留
0x01 Maximun Receive Unit 最大接收单元
0x02 Asynchronous Control Character Map 异步控制字符映射
0x03 Authentication Protocol 认证协议
0x04 Quality Protocol 质量协议
0x05 Magic Number 幻数
0x06 Protocol Field Compression 协议域压缩
0x07 Address and Control Field Compression 地址及控制域压缩
  • Length字段指出该配置选项(包括Type、Length和Data字段)的长度
  • Data字段为零或多个字节,其中包括配置选项的特定详细信息

Configure-Request 报文示例: Configure-Request 报文

  • 若接收的Configure-Request中的每一个配置选项的值都可接受,则回送 Configure-Ack(配置确认)报文,回送的Configure-Ack中的 Identifier字段 必须与最后接收的Configure-Request相匹配。此外,Configure-Ack中的 配置选项 必须完全匹配最后接收的Configure-Request。
  • 若收到的每个配置选项都可以识别,但是配置选项的值不能接受,接收方必须回送 Configure-Nak(配置否认)。配置选项部分仅用不能接受的配置选项进行填充,回送的Configure-Nak中的 Identifier字段 必须与最后接收的Configure-Request相匹配。
  • 若收到的部分配置选项是 不可识别或不能接受,则回送 Configure-Reject(配置拒绝确认)。配置选项部分仅用不可识别或不能接受的配置选项进行填充,回送的Configure- Reject中的Identifier字段必须与最后接收的Configure-Request相匹配。

链路终止报文

链路终止报文

链路维护报文

链路维护报文

工作过程

链路建立和配置流程

工作流程

链路终止流程

链路终止流程

链路维护流程

链路维护

NCP 协议

概述

NCP(Network Control Protocol,网络控制协议)用于建立、配置网络层协议,进行参数协商。

不同的网络层协议会使用不同的 NCP协议

  • IP协议使用IPCP(Internet Protocol Control Protocol,IP控制协议)
  • Appletalk协议使用Appletalk NCP进行协商
  • Novell的 IPX协议使用IPE(Internet Packet Exchange,互联网包交换协议)进行协商
IPCP 协议

若PPP帧中Protocol字段取值 0x8021,表示PPP帧正在使用IPCP协商相关通信参数。

IPCP会完成 协商IP地址 等工作,其后在该PPP链路上传送IP数据包;若IP数据包传送完毕,若要 关闭IP协议,仍需通过IPCP协商终止;若要释放链路,则需借助LCP协议。

报文格式

IPCP 报文格式

与LCP报文格式几乎一样

工作流程

在这里插入图片描述

IPCP Configure-Request报文示例:

在这里插入图片描述

PPTP

L2TP

IPSec

MPLS

SSL

Open

IPSec-SSL

WireGuard

posted @ 2025-08-07 18:05  酷比灯  阅读(88)  评论(0)    收藏  举报