1. 简述

首先对这3中协议做一个简单的描述:
协议 协议类型 描述
PPP 点对点链路层协议 应用最广泛的点对点协议,可应用在多种网络,改善了SLIP协议的不足
PPPoE 点对点链路层协议 对PPP协议进行扩展,将PPP用于以太网
L2TP 二层隧道协议 对PPP协议进行了扩展,可应用在多种网络中,主要将其PPP协议用于互联网

所以,无论PPPoE还是L2TP, 他们都是对PPP协议进行了扩展(PPPoE协议使得PPP协议可以应用在以太网上;L2TP协议使得PPP协议数据在互联网上能够传输),这两个协议都具有PPP协议的各种安全特点:如认证,IP地址分配等。
这里可能引入一个问题:以太网和互联网不一样吗
实际上真有区别:

  • 以太网:更强调是一种局域网硬件技术,如果从网络方面说属于多点访问网络(通过MAC地址区分不同设备),即可以通过该硬件技术访问多个设备(终端、网站);
  • 互联网:更强调一种设备相连的技术,将不同的设备互联的技术,互联后的设备统称为互联网。不过现在特指互联全球的大网络(Internet的意译)。
  • 因特网:Internet的音译,它是互联网最典型的应用。

2. 对比分析

2.1 串行线路协议SLIP

在学习PPP协议的时候,经常绕不开SLIP协议的一些缺点和不足,如会遇到“PPP协议改善了SLIP协议的缺点”。因此这里不详细介绍SLIP协议内容,只做一个简单介绍,然后说明其协议的缺点和不足。

2.1.1 SLIP协议报文封装


1) IP数据报以一个称作END(0xc0)的特殊字符结束,一般数据报文的开始也有一个END(0xc0),两个END之间为真正的数据报文
2) 如果IP报文中的某个字符为END, 那么需要连续传输两个字节0xdb0xdc来代替它
3) 如果IP报文中的某个字符为SLIP中的ESC字符(0xdb),那么需要连续传输两个字节0xdb0xdd来代替它。

2.1.2 SLIP协议的缺陷

  • 在串行链路上对IP报文进行封装的点对点协议,这就要求发送报文的节点需要提前知道对端的IP地址,否则IP报文头部信息是不完整的,即使对端设备收到该报文,但是检测目的IP不是本端IP,协议栈会自动将该报文进行丢弃;
  • 数据帧中没有类型字段(类似以太网中的类型字段)。如果一条串行线路使用SLIP协议,那么它就不能同时使用其他的协议, 只能封装IP报文
  • SLIP协议不存在差错检测机制,连最基本的校验和都不具备。
  • SLIP协议对于一些交互报文(比较短的分组数据),通常需要封装IP头部和TCP头部40字节,这样导致小分组报文通讯效率很低,因此出现了压缩SLIP协议(CSLIP),它可以将IP头部和TCP头部压缩至3~5个字节。

2.2 点对点协议PPP

PPP协议是目前使用最为广泛的数据链路层协议,可以应用在多种网络中。

  • PPP协议不提供数据加密功能,但是在认证用户时可以对用户密码进行加密。

2.2.1 PPP协议的特点

PPP协议修改了SLIP协议的所有缺陷

  • 具备动态分配IP地址的功能(在连接时刻通过NCP进行协商分配的);
  • 报文中添加了协议字段,支持同一链路上使用不同协议进行通信
  • 提供差错检验机制(计算FCS校验和
  • 报文压缩
    新增功能:
  • 提供了认证、授权以及监控计费功能
  • 允许链路层参数协商,用来建立、维护、测试链路状态(LAC模块)
  • 允许网络层参数协商,决定网络层采用的协议(NCP模块)

运营商比较钟情于PPP协议,有个很重要的原因便是PPP协议支持认证的功能,认证功能简单的说就是对用户名和密码进行验证,认证之后可以对特定的用户上网流量进行计费

2.2.2 PPP协议格式

2.3 PPPoE协议

PPPoE协议是以太网上的点对点协议,是将PPP协议封装在以太网框架中的一种网络隧道协议

2.3.1 PPPoE协议特点

PPPoE协议的目的是为了将以太网的易扩展性PPP协议的认证、计费、成熟安全(此安全并非加密,而是技术很成熟)等优势相结合,它通过将PPP协议进行PPPoE封装,使其可以应用在以太网上,实现了传统以太网不能提供的身份认证、加密以及压缩等功能。
它可以通过数字用户线(DSL)和调制解调器(modem)给用户提供互联网接入功能,这可以极大的利用现存的通信基础设施(如电话线,光纤等),同时还可以进行认证和计费,因此得到极大的应用。

2.3.2 PPPoE协议格式和阶段


2.4 链路层隧道协议L2TP

2.4.1 L2TP简介

L2TP协议也是对PPP协议的扩展,或者说是基于PPP协议。它为在非点对点的网络上(如以太网)建立点对点的PPP会话连接,协议本地不提供加密功能,如果需要加密需要结合IPsec,但提供认证功能(PPP协议提供的特性)。它可以扩展PPP模型(允许二层链路端点和PPP会话点驻留在不同设备上),如果在以太网上则扩展了PPPoE的连接范围。最常见用途是公司分支机构或出差人员通过公网访问总部公司内部网络,如下图所示:
本来用户通过PPPoE拨号将PPP会话连接到运营商的RouterA(NAS)上,现在使用L2TP隧道技术可以将PPP会话端点延伸到公司总部的RouterB上,从而实现访问公司内网的功能。

2.4.2 L2TP报文格式


3. 总结

  • PPP:可以应用在多种网络,提供认证计费等功能
  • PPPoE: 将PPP协议应用在以太网上,可以充分利用其认证和计费功能,方便运营商收取费用
  • L2TP: 提供一种带认证的隧道技术,将PPP会话的端点扩展至互联网上的其他网络中。

PPP协议、PPPoE协议、L2TP协议的关系的更多相关文章

  1. L2TP协议简介

    传送门:L2TP代码实现 1. L2TP 概述 L2TP(Layer 2 Tunneling Protocol,二层隧道协议)是 VPDN(Virtual Private Dial-up Networ ...

  2. L2tp协议简单解析

    1.L2TP简介 L2TP(Layer 2 Tunneling Protocol,二层隧道协议)是VPDN(Virtual PrivateDial-up Network,虚拟私有拨号网)隧道协议的一种 ...

  3. L2TP协议

    L2TP协议 L2TP(Layer 2 Tunneling Protocol) 第二层隧道协议.该协议是工业标准的Internet隧道协议. L2TP实现的两种方式 LAC (L2TP Access ...

  4. VPN 隧道协议PPTP、L2TP、IPSec和SSLVPN的区别

    最近软矿频繁地介绍了各种VPN,有免费的PacketiX.NET和Hotspot Shield,有付费的Astrill VPN,iVPN和PureVPN.在介绍这些VPN的时候,常常会说到PPTP.L ...

  5. http协议,tcp协议,ip协议,dns服务之前的关系和区别

    长期以来都有一个问题,大家都在说http协议,tcp协议,ip协议,他们之间到底什么区别,有什么用,没人告诉我,最近看了这本<图解http>明白了一些,以下图片摘自这本书 一.理解一个传输 ...

  6. 两张图说明http协议,tcp协议,ip协议,dns服务之间的关系和区别

    一.理解一个传输流再去扩展 用http举例来说,首先作为发送端的客户端在应用层(http协议)发出一个想看某个web页面的http请求. 接着,为了传输方便,在传输层(tcp协议)把从应用层处收到的数 ...

  7. OSPF协议原理及配置3-邻居关系的建立

    OSPF协议原理及配置3-邻居关系的建立   OSPF协议的邻居关系是通过交换Hello报文建立的,所以我们先对OSPF的报文的种类,及Hello报文的结构做一了解. 1 OSPF协议有5种协议报文( ...

  8. OSPF协议原理及配置4-邻接关系的建立和LSDB同步

    OSPF协议原理及配置4-邻接关系的建立和LSDB同步   进入ExStart状态后,广播和NBMA型网络要等待4倍的Hello时间,确定DR和BDR.然后建立邻接关系,并交互链路状态通告,以使用LS ...

  9. TCP协议总结--停止等待协议,连续ARQ协议,滑动窗口协议

    前言:在学习tcp三次握手的过程之中,由于一直无法解释tcpdump命令抓的包中seq和ack的含义,就将tcp协议往深入的了解了一下,了解到了几个协议,做一个小结. 先来看看我的问题: 这是用tcp ...

随机推荐

  1. Java 17 将要发布,补一下 Java 13 中的新功能

    本文章属于Java 新特性教程 系列,已经收录在 Github.com/niumoo/JavaNotes ,点个赞,不迷路. 自从 Oracle 调整了 Java 的版本发布节奏之后,Java 版本发 ...

  2. 我,35岁Android开发,高龄入职鹅厂,试用期未过被劝退......今年实惨

    今天,笔者盘点.综合分享一位腾讯员工的"心声".这份心声中干货还是不少的,主要关于腾讯的一些职场生活--希望这些"干货"能对你有所帮助. 什么部门?给补偿吗? ...

  3. netty系列之:文本聊天室

    目录 简介 聊天室的工作流程 文本处理器 初始化ChannelHandler 真正的消息处理逻辑 总结 简介 经过之前的系列文章,我们已经知道了netty的运行原理,还介绍了基本的netty服务搭建流 ...

  4. springboot整合javafx

    原文(原码)参考地址: https://github.com/roskenet/springboot-javafx-support https://github.com/spartajet/javaf ...

  5. 算法竞赛中的常用JAVA API:PriorityQueue(优先队列)(转载)

    算法竞赛中的常用JAVA API:PriorityQueue(优先队列) PriorityQueue 翻译过来就是优先队列,本质是一个堆, 默认情况下堆顶每次都保留最小值,每插入一个元素,仍动态维护堆 ...

  6. Python脚本文件中使用中文

    Python做图形用户界面(GUI)开发时经常要在界面上显示中文,需要做如下处理(详见[1]和[2]2.3节): 在py文件的首行写上:# -- coding:utf-8 -- 保存py文件时要存为u ...

  7. Python日志记录

    官方文档:https://docs.python.org/2/library/logging.html logging.basicConfig()函数中可通过具体参数来更改logging模块默认行为, ...

  8. JVM钩子函数的使用

    一.问题引入 背景 在编写一个需要持续在后台运行的程序的时候遇到了这样的场景:我的程序在主函数中创建了一个线程池周期性地执行任务,我希望主线程和线程池都持续运行,但如果收到外部的关闭信号时,主线程和线 ...

  9. pikachu Unsafe Filedownload 不安全的文件下载

    不安全的文件下载概述文件下载功能在很多web系统上都会出现,一般我们当点击下载链接,便会向后台发送一个下载请求,一般这个请求会包含一个需要下载的文件名称,后台在收到请求后 会开始执行下载代码,将该文件 ...

  10. XSS挑战20关

    第一关: 没有过滤,直接构造payload过关: http://127.0.0.1/xssgame/level1.php?name=test%3Cscript%3Ealert%28111%29%3C/ ...