PPP协议、PPPoE协议、L2TP协议的关系
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, 那么需要连续传输两个字节0xdb和0xdc来代替它
3) 如果IP报文中的某个字符为SLIP中的ESC字符(0xdb),那么需要连续传输两个字节0xdb和0xdd来代替它。
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协议的关系的更多相关文章
- L2TP协议简介
传送门:L2TP代码实现 1. L2TP 概述 L2TP(Layer 2 Tunneling Protocol,二层隧道协议)是 VPDN(Virtual Private Dial-up Networ ...
- L2tp协议简单解析
1.L2TP简介 L2TP(Layer 2 Tunneling Protocol,二层隧道协议)是VPDN(Virtual PrivateDial-up Network,虚拟私有拨号网)隧道协议的一种 ...
- L2TP协议
L2TP协议 L2TP(Layer 2 Tunneling Protocol) 第二层隧道协议.该协议是工业标准的Internet隧道协议. L2TP实现的两种方式 LAC (L2TP Access ...
- VPN 隧道协议PPTP、L2TP、IPSec和SSLVPN的区别
最近软矿频繁地介绍了各种VPN,有免费的PacketiX.NET和Hotspot Shield,有付费的Astrill VPN,iVPN和PureVPN.在介绍这些VPN的时候,常常会说到PPTP.L ...
- http协议,tcp协议,ip协议,dns服务之前的关系和区别
长期以来都有一个问题,大家都在说http协议,tcp协议,ip协议,他们之间到底什么区别,有什么用,没人告诉我,最近看了这本<图解http>明白了一些,以下图片摘自这本书 一.理解一个传输 ...
- 两张图说明http协议,tcp协议,ip协议,dns服务之间的关系和区别
一.理解一个传输流再去扩展 用http举例来说,首先作为发送端的客户端在应用层(http协议)发出一个想看某个web页面的http请求. 接着,为了传输方便,在传输层(tcp协议)把从应用层处收到的数 ...
- OSPF协议原理及配置3-邻居关系的建立
OSPF协议原理及配置3-邻居关系的建立 OSPF协议的邻居关系是通过交换Hello报文建立的,所以我们先对OSPF的报文的种类,及Hello报文的结构做一了解. 1 OSPF协议有5种协议报文( ...
- OSPF协议原理及配置4-邻接关系的建立和LSDB同步
OSPF协议原理及配置4-邻接关系的建立和LSDB同步 进入ExStart状态后,广播和NBMA型网络要等待4倍的Hello时间,确定DR和BDR.然后建立邻接关系,并交互链路状态通告,以使用LS ...
- TCP协议总结--停止等待协议,连续ARQ协议,滑动窗口协议
前言:在学习tcp三次握手的过程之中,由于一直无法解释tcpdump命令抓的包中seq和ack的含义,就将tcp协议往深入的了解了一下,了解到了几个协议,做一个小结. 先来看看我的问题: 这是用tcp ...
随机推荐
- 数据库比对工具SQL(表、字段、触发器、索引、视图、存储过程)
做一个数据库比对小工具,把SQL做一个笔记 SELECT object_id AS ID --表ID,'表' sType,Name --表名FROM sys.tablesORDER BY Name-- ...
- 计算机网络part2——物理层
物理层概述 1.物理层基本概念 物理层解决如何在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体. 主要任务:确定与传输媒体接口有关的一些特性 特性: 机械特性 电气特性 功能特性 规 ...
- C++ 结构体案例2 升序打印数组中的元素
1 //结构体案例 2 2 #include<iostream> 3 #include<string> 4 #include<ctime> 5 using name ...
- 【LeetCode】424. 替换后的最长重复字符
424. 替换后的最长重复字符 知识点:字符串,滑动窗口: 题目描述 给你一个仅由大写英文字母组成的字符串,你可以将任意位置上的字符替换成另外的字符,总共可最多替换 k 次.在执行上述操作后,找到包含 ...
- 前端 | Nuxt.js axios baseURL,proxy 代理
平时用 Vue 写前端时,对于 axios 请求的常规操作一般是 统一定义好一个 axios 对象,使用 axios.defaults.baseURL 设置 baseURL 也不是不能直接把服务器地址 ...
- Mysql中的Join详解
一.Simple Nested-Loop Join(简单的嵌套循环连接) 简单来说嵌套循环连接算法就是一个双层for 循环 ,通过循环外层表的行数据,逐个与内层表的所有行数据进行比较来获取结果,当执行 ...
- 题解 u
传送门 这里AC解法因为手残 tag2[min(r+l, n+1)][min(c+l+1, n+1)]+=s; 写成 tag2[min(r+l, n+1)][c+l+1]+=s; 惨遭RE,以后注意查 ...
- wpf 中的矩形的歪斜
<Grid> <Rectangle x:Name="rect12" Width="100" Opacity="1" Hei ...
- git 拉取代码指定分支
问题背景: 新项目还在开发阶段,没有正式对外发布,所以开发同事合并代码到develop上(或者其他名称分支上),而不是到master分支上 通过git拉取代码的时候,默认拉取的是master分支,如下 ...
- uwp 之多媒体开发
xml code ----------------------------------------------------- <Page x:Class="MyApp.MainPage ...