以前没有关注过这两个协议,因为我一直认为PPP协议和PPPoE协议属于底层协议。但是在一次抓包时候发现在校园网内的数据包都带有PPP协议层,因此去研究了一下。

1 PPP协议介绍

PPP 点对点协议(Point to Point Protocol)属于二层协议,隧道协议的一种。为在点对点连接上传输多协议数据包提供了一个标准方法。PPP 最初设计是为两个对等节点之间的 IP 流量传输提供一种封装协议。在 TCP/IP中它是一种用来同步调制连接的数据链路层协议(OSI 模式中的第二层),替代了原来非标准的第二层协议,即 SLIP。除了 IP 以外 PPP 还可以携带其它协议,包括 DECnet 和 Novell 的 Internet 网包交换(IPX)。

为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。

PPP协议主要包括三部分:LCP(Link Control Protocol)链路控制协议、NCP(Network Control Protocol)网络控制协议和PPP的扩展协议(如Multilink Protocol),比如认证协议,最常用的包括口令验证协议PAP(Password Authentication Protocol)和挑战握手验证协议CHAP(Challenge-Handshake Authentication Protocol)。

功能

  • PPP具有动态分配IP地址的能力,允许在连接时刻协商IP地址;
  • PPP支持多种网络协议,比如TCP/IP、NetBEUI、NWLINK等;
  • PPP具有错误检测能力,但不具备纠错能力,所以PPP是不可靠传输协议;
  • ppp支持数据压缩
  • PPP具有身份验证功能。
  • PPP可以用于多种类型的物理介质上,包括RS232串口链路、电话线ISDN线路、移动电话和光纤(例如SDH),PPP也用于Internet接入。

包格式介绍

PPP的帧格式
 

7E

FF

03

协议

信息

FCS

7E

字节

1

1

1

2

<=1500

2

1

PPP采用7EH作为一帧的开始和结束标志(F);其中地址域(A)控制域(C)取固定值(A=FFH,C=03H) ;协议域(两个字节)取0021H表示IP分组,取8021H表示网络控制数据,取C021H表示链路控制数据;帧校验域(FCS)也为两个字节,它用于对信息域的校验。若信息域中出现7EH,则转换为(7DH,5EH)两个字符。当信息域出现7DH时,则转换为(7DH,5DH)。当信息流中出现ASCII码的控制字符(即小于20H),即在该字符前加入一个7DH字符。

封装:一种封装多协议数据报的方法。PPP 封装提供了不同网络层协议同时在同一链路传输的多路复用技术。PPP 封装精心设计,能保持对大多数常用硬件的兼容性,克服了SLIP不足之处的一种多用途、点到点协议,它提供的WAN数据链接封装服务类似于LAN所提供的封闭服务。所以,PPP不仅仅提供帧定界,而且提供协议标识和位级完整性检查服务。

链路控制协议:一种扩展链路控制协议,用于建立、配置、测试和管理数据链路连接。

网络控制协议:协商该链路上所传输的数据包格式与类型,建立、配置不同的网络层协议;

配置:使用链路控制协议的简单和自制机制。该机制也应用于其它控制协议,例如:网络控制协议(NCP)。

为了建立点对点链路通信,PPP 链路的每一端,必须首先发送 LCP 包以便设定和测试数据链路。在链路建立,LCP 所需的可选功能被选定之后,PPP 必须发送 NCP 包以便选择和设定一个或更多的网络层协议。一旦每个被选择的网络层协议都被设定好了,来自每个网络层协议的数据报就能在链路上发送了。

看到总共多了8个字节,其中首尾字节都是帧的起始和结束标志位,A表示地址,C表示控制。
协议的两个字段,表示后面信息部分的数据协议是什么,包括:

  • 0x0021——信息字段是IP数据报
  • 0xC021——信息字段是链路控制数据LCP
  • 0x8021——信息字段是网络控制数据NCP
  • 0xC023——信息字段是安全性认证PAP
  • 0xC025——信息字段是LQR
  • 0xC223——信息字段是安全性认证CHAP

链路将保持通信设定不变,直到有 LCP 和 NCP 数据包关闭链路,或者是发生一些外部事件的时候(如,休止状态的定时器期满或者网络管理员干涉)。

工作流程

当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接(底层up)。PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。

这些分组及其响应选择一些 PPP 参数,和进行网络层配置(此前如有PAP或CHAP验证先要通过验证),NCP 给新接入的 PC机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。

通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。

和HDLC的区别

PPP是面向字符的,HDLC是面向位的。

PPP协议是一种点—点串行通信协议。PPP具有处理错误检测、支持多个协议、允许在连接时刻协商IP地址、允许身份认证等功能,还有其他。PPP提供了3类功能:成帧;链路控制协议LCP;网络控制协议NCP。PPP是面向字符类型的协议。

应用范围

PPP是一种多协议成帧机制,它适合于调制解调器、HDLC位序列线路、SONET和其它的物理层上使用。它支持错误检测、选项协商、头部压缩以及使用HDLC类型帧格式(可选)的可靠传输。

PPP提供了三类功能:

1 成帧:可以毫无歧义的分割出一帧的起始和结束。

2 链路控制:有一个称为LCP的链路控制协议,支持同步和异步线路,也支持面向字节的和面向位的编码方式,可用于启动路线、测试线路、协商参数、以及关闭线路。

3 网络控制:具有协商网络层选项的方法,并且协商方法与使用的网络层协议独立。

任何第3层的协议要通过拨号或者专用链路穿越广域网时,都必须封装一种数据链路层的协议(比如,PPP、SLIP——串行链路Internet协议、ARAP——AppleTalk远程接入协议)。尽管某些公司仍然使用Novell IPX和AppleTalk协议为主机提供远程接入,但是TCP/IP已经成为了今天企业网中使用的主要协议。

两种认证方式

一种是PAP,一种是CHAP。相对来说PAP的认证方式安全性没有CHAP高。PAP在传输password是明文的,而CHAP在传输过程中不传输密码,取代密码的是hash(哈希值)。PAP认证是通过两次握手实现的,而CHAP则是通过3次握手实现的。PAP认证是被叫提出连接请求,主叫响应。而CHAP则是主叫发出请求,被叫回复一个数据包,这个包里面有主叫发送的随机的哈希值,主叫在数据库中确认无误后发送一个连接成功的数据包连接

常见问题

1)什么是LCP?

链路控制协议(LCP) LCP 建立点对点链路,是 PPP 中实际工作的部分。LCP 位于物理层的上方,负责建立、配置和测试数据链路连接。LCP 还负责协商和设置 WAN 数据链路上的控制选项,这些选项由 NCP 处理。

2)NCP是什么?

PPP允许多个网络协议共用一个链路,网络控制协议 (NCP) 负责连接PPP(第二层)和网络协议 (第三层)。对于所使用的每个网络层协议,PPP 都分别使用独立的 NCP来连接。例如,IP 使用 IP 控制协议 (IPCP),IPX 使用 Novell IPX 控制协议 (IPXCP)。

2 PPPoE

PPPoE是Point-to-Point Protocol over Ethernet的简称,可以使以太网的主机通过一个简单的桥接设备连到一个远端的接入集中器上。通过pppoe协议,远端接入设备能够实现对每个接入用户的控制和计费。我们平常的拨号上网就是PPPoE,所以实际是基于PPP协议。另外PPPoA 有时也被使用(PPP over ATM)。

PPPoE服务器是一些企业级路由器提供的一项功能,能够在局域网中实现和电信营运商提供的ADSL相类似的服务。

目前流行的宽带接入方式ADSL就使用了PPPoE协议。随着低成本的宽带技术变得日益流行,DSL(Digital Subscriber Line)数字用户线技术更是使得许多计算机在互联网上连接。但是这也增加了DSL服务提供商们对于网络安全的担心。通过ADSL方式上网的计算机大都是通过以太网卡(Ethernet)与互联网相连的。同样使用的还是普通的TCP/IP方式,并没有附加新的协议。另外一方面,调制解调器的拨号上网,使用的是PPP协议,即Point to Point Protocol,点到点协议,该协议具有用户认证通知IP地址的功能。PPP over Ethernet(PPPoE)协议,是在以太网络中转播PPP帧信息的技术,尤其适用于ADSL等方式。

PPPoE的报文就是在PPP的报文前面再加上以太网的报头,使得PPPoE可以通过简单桥接设备连入远端接入设备。但这里我们发现PPPoE报文中的PPP内容与原始的PPP并不相同。

也可参考整个PPPoE的报文(包括Ethernet Frame):

由来

modem接入技术面临一些相互矛盾的目标,既要通过同一个用户前置接入设备连接远程的多个用户主机,又要提供类似拨号一样的接入控制,计费等功能,而且要尽可能地减少用户的配置操作。 PPPOE的目标就是解决上述问题,1998年后期问世的以太网上点对点协议(PPPoverEthernet)技术是由Redback网络公司、客户端软件开发商RouterWare公司以及Worldcom子公司UUNET Technologies公司在IETFRFC的基础上联合开发的。通过把最经济的局域网技术-以太网和点对点协议的可扩展性及管理控制功能结合在一起,网络服务提供商和电信运营商便可利用可靠和熟悉的技术来加速部署高速互联网业务。它使服务提供商在通过数字用户线、电缆调制解调器或无线连接等方式,提供支持多用户的宽带接入服务时更加简便易行。同时该技术亦简化了最终用户在选择这些服务时的配置操作。

作用

PPPoE服务器可以通过给内网用户分配账号来实现对内网用户网络使用的管理,结合有些路由器具备的上网行为管理功能带宽管理功能,通常还能对用户的进行上网行为的管理,如禁止使用IM软件、P2P软件;限制游戏,下载,网页提交,代理服务等,同时也可以限制用户上下行带宽,对带宽弹性管理,分时段、分地址段管理以上所有上网行为。

PPP协议和PPPoE协议相关推荐

  1. 3.7 PPP协议和HDLC协议

    3.7 PPP协议和HDLC协议

  2. 计算机网络(二十)-广域网-PPP协议和HDLC协议

    一.广域网 广域网,通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个城市或国家,远距离通信,形成国际性的远程网络. 广域网的通信子网主要使用分组交换技术.广域网的通信子网可以利用 ...

  3. 二十五、广域网,PPP协议和HDLC协议

    文章目录 1.广域网 2.PPP协议 2.1 PPP协议应满足的要求 2.2 PPP协议无需满足的要求 2.3 PPP协议的三个组成部分 2.4 PPP协议的状态图 2.5 PPP协议的帧格式 3.H ...

  4. 计算机网络——数据链路层局域网、以太网、PPP协议和HDLC协议、链路层设备

    文章目录 前言 一.局域网简介 1.局域网的基本概念和特点 2.局域网的主要要素 3.局域网的分类与 IEEE 802 标准 4.LLC 子层和 MAC 子层 二.以太网 三.无线局域网 四.PPP ...

  5. 【计算机网络】数据链路层——PPP协议和HDLC协议/数据链路层设备

    文章目录 PPP协议和HDLC协议 PPP协议 HDLC协议 站 数据操作方式 HDLC帧 PPP协议和HDLC协议区别 数据链路层设备 网桥的概念及其基本原理 透明网桥 源路由网桥 两种网桥的比较 ...

  6. 计算机网络 -广域网WAN (PPP协议和HDLC协议)

    文章目录 广域网WAN PPP协议 PPP协议需要实现的三个功能 PPP协议帧格式 HDLC协议 PPP协议 and HDLC协议 广域网WAN 广域网覆盖层次:物理层,链路层,网络层 局域网覆盖层次 ...

  7. 广域网协议:PPP协议和HDLC协议—Vecloud微云

    点到点协议( Point to Point Protocol,简写PPP)是在点到点链路上传输数据报的一种方法. PPP是一种面向位的协议,可在同步或异步链路上运行. PPP使用高级数据链路控制( H ...

  8. 计算机网络——链路层之PPP协议和HDLC协议

    文章目录 一 PPP协议 1.广域网 2.PPP协议的特点 3.PPP协议应该满足的要求 4.PPP协议的三个组成部分 5.PPP协议的状态图 6.PPP协议的帧格式 二 HDLC协议 一 PPP协议 ...

  9. 广域网(PPP协议和HDLC协议)

    文章目录 前言 一.广域网介绍 二.PPP协议 三.HDLC协议 总结 前言 提示:以下是本篇文章正文内容 一.广域网介绍 广域网(WAN,Wide Area Network),通常跨接很大的物理范围 ...

最新文章

  1. linux系统UDP的socket通信编程
  2. 将1bpp的bmp图像存储为1bpp或者2bpp的tiff格式
  3. 线性表的定义和基本运算之线性结构
  4. matlab怎么画二维热力图_Tableau画日历热力图
  5. [OI学习笔记]最小生成树之Prim算法
  6. 是什么原因引起的“ Invalid Session”错误?
  7. LIRe提供的6种图像特征描述方法的评测
  8. Android Sqlite 工具类封装
  9. 带圈数字符号0-100和unicode编码
  10. pngimg 可以商用吗_设计师你还在担心素材版权吗?大量免费可商用素材在这里...
  11. java socket 连接异常_JAVA Socket连接服务器时可能抛出的异常
  12. 知识点 - 快速沃尔什变换
  13. 洛谷P4238:【模板】多项式求逆
  14. 比亚迪--一文看懂--家用新能源汽车产品线
  15. 2022总结,强风吹拂
  16. python 成语接龙1-爬去四字成语
  17. 解决webstorm调试js时Evaluate脚本获取dom属性丢失问题
  18. Python 随堂练习
  19. 【C/C++】从API学习STL algorithm 001(for_each、find、find_if、find_end、find_first_of 快到碗里来(◕ᴗ◕✿)
  20. android 单位pt,Android APPUI设计师必知:pt sp dp之间的关系

热门文章

  1. 记录一些之前学的APPUI设计知识
  2. PTA乙级 1108 String复读机——20分
  3. Pygame实战:升级后的2048小游戏—解锁新花样,根本停不下来【附源码】
  4. 2020-07-23 正则表达式生成工具
  5. 2018东北大学计算机考研专业课,东大考研辅导班:东北大学2018年计算机技术考研上岸经验分享...
  6. 配置 CentOS 7 man 命令帮助显示简体中文
  7. 搭建个人的Leanote云笔记本
  8. hihoCoder - 1353 满减优惠
  9. Thinking in java-35 String 字符串
  10. ​我的第三本译作《机器学习即服务》上架啦