点对点协议(Point-to-Point Protocol)
简介
点对点协议简称PPP协议,工作在数据链路层。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、 网桥和路由器之间简单连接的一种共通的解决方案。
PPP协议的组成
- 建立、配置数据链路连接的LCP(Link Control Protocol)
- 网络控制协议NCP(Network Control Protocol)
- 将IP数据报封装到串行链路的方法
帧格式
PPP协议的数据单元称为帧,格式如图

总体格式是首部+数据部分+尾部。
首部从左至右依次是帧定界符,表示帧开始;
地址字段,因为点对点协议仅作用于两个实体,发送方无需知道对方的地址,所以没有实际作用;
控制字段,也没有实际作用;
协议类型,指定信息部分的类型。
尾部从左至右依次是帧检验序列,用于校验帧在传输过程中是否出现差错;
帧定界符,表示帧的结束
如何解决数据链路层的三个基本问题
PPP是工作在数据链路层协议的,自然要解决数据链路层的三个基本问题
1. 封装成帧
根据PPP帧的帧格式,可以发现,帧首部和尾部各有一个定界符,这两个定界符封装了一个帧
2. 透明传输
PPP协议实现透明传输的方式有两种。第一种是字节填充的方式,在帧首部和尾部的定界符前面插入一个转义字符,
当信息部分出现了转义字符,则在转义字符前面再填充一个转义字符,另外,当信息部分出现了控制字符时,也会在其前面填充一个转义字符。
第二种就是零比特填充的方式,PPP帧定界符用二进制表示是01111110,中间有6个1,只要保证信息部分不出现连续的6个1就可以实现透明传输。
所以,在发送端,发送前会扫描整个信息字段,当发现有连续的5个1时就立即填充一个0。
在接收端,接受后也会扫描整个信息字段,一旦发现有连续的5个1,就把其后面的0删除。这样就保证了透明传输。
3. 差错检测
PPP帧的尾部有一个FCS,配合CRC实现差错检测,发现帧出现错误就丢弃
PPP链路建立过程
PPP协议一般用于用户拨号接入ISP,工作流程如下
1. LCP配置协商
用户点击“连接”,建立了物理层连接后,双方就要进行链路层上某些配置的协商,比如链路上的最大帧长、采用什么鉴别协议等。
2. 用户验证
这个阶段,ISP为了防止用户恶意使用网络资源,会对用户的账号密码进行校验,使用PAP(Password Authentication
Protocol)或者CHAP(Challenge-Handshake Authentication
Protocol)协议,其中PAP协议的安全性较低
3. NCP配置协商
当用户通过用户验证,双方就要用进行网络层上某些配置的协商,比如网络层采取什么协议,用户的IP地址是什么

引用
- 谢希仁《计算机网络》
- 博客
2.1 http://www.cnblogs.com/haitao-fan/archive/2012/04/07/2436120.html
2.2 http://www.cnblogs.com/gtarcoder/p/6259105.html
Edit By MaHua
点对点协议(Point-to-Point Protocol)的更多相关文章
- 数据链路层-点对点协议PPP
在通信质量较差的年代,在数据链路层使用可靠传输协议曾是一个好的办法.因此,能实现可靠传输的高级数据链路控制HDLC(High-Level Data Link Control)就称为当时比较流行的数据链 ...
- word20161217
p-node / p 节点 package / 程序包 packet / 数据包 packet assembler/disassembler, PAD / 分组拆装器 packet header / ...
- 论山寨手机与Android联姻 【7】 MTK手机软件系统
MTK feature phone的基本功能是通话和短信,要了解MTK手机软件系统,首先需要简要回顾几个移动网络通讯的基本概念. Figure 38. GSM-GPRS Architecture Co ...
- TCP/IP协议理解
TCP/IP协议理解 一. 协议分层 由于ISO标准中的网络模型是个7层模型,但是由于7层模型对于当时的网络厂商来说太过复杂,很多厂家采用了简化的4层模型来实现网络设备,4层模型也就成了事实的网 ...
- 常用下载方式的区别-BT下载、磁力链接、电驴
出处:https://www.jianshu.com/p/72b7a64e5be1 打开 115 离线下载的窗口,看到支持这么多种链接,你都清楚他们是什么原理嘛?接下来我们一个一个说. 一.HTTP( ...
- Linux内核配置选项
http://blog.csdn.net/wdsfup/article/details/52302142 http://www.manew.com/blog-166674-12962.html Gen ...
- PPP(点对点协议(Point to Point Protocol)
1.简介PPP(点到点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议.这种链路提供全双工操作,并按照顺序传递数据包.设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成 ...
- PPTP(Point to Point Tunneling Protocol),即点对点隧道协议。
PPTP PPTP(Point to Point Tunneling Protocol),即点对点隧道协议.该协议是在PPP协议的基础上开发的一种新的增强型安全协议,支持多协议虚拟专用网(VPN),可 ...
- 数据链路层 点对点协议 PPP
点对点协议 PPP 一. PPP 协议应满足的需求 简单.提供不可靠的数据报服务,比IP协议简单,不需要纠错,不需要序号,不需要流量控制. 工作方式:接收方每收到一个帧就进行CRC校验,如正确就接受该 ...
随机推荐
- HDU 1052 Tian Ji -- The Horse Racing(贪心)
题目来源:1052 题目分析:题目说的权值匹配算法,有点误导作用,这道题实际是用贪心来做的. 主要就是规则的设定: 1.田忌最慢的马比国王最慢的马快,就赢一场 2.如果田忌最慢的马比国王最慢的马慢,就 ...
- oracle数据库 网页管理360浏览器登录不上
使用谷歌浏览器可以登陆,然后在使用360之类的浏览器 就可以登录了
- 网络基础-交换机、路由器、OSI7层模型
第1章 网络基础 1.1 网络的诞生 网络的诞生使命:通过各种互联网服务提升全球人类生活品质. 让人类的生活更便捷和丰富,从而促进全球人类社会的进步.并且丰富人类的精神世界和物质世界,让人类最便捷地获 ...
- html5的canvas绘制线条,moveTo和lineTo详解
今天在看html5,里面新增的属性有一个canvas,它相当于一个画布你可以用js在里面画你想要的效果!我在w3c的手册里面看到用moveTo和lineTo绘制线条讲的不是很清楚,尤其是moveTo和 ...
- C指针——简单总结
简介: 指针变量在使用前,必须指向具体的有效的内存单元 指针变量在使用前不但要定义还要初始化 四个方面:指针的类型,指针指向的类型,指针的值或者指针所指向的内存区,指针本身所占的内存区 int *pt ...
- 《python编程从入门到实践》第七章笔记
用户输入和while循环 1.函数input():让程序停止运行,等待用户输入一些文本.接受一个参数,既即要向用户显示的提示或说明. 2.将数值输入用于计算和比较前,务必将其转换为数值表示. 3.fo ...
- 解决cmd 运行python socket怎么终止运行
在cmd里启动python写了一个socket服务端的程序,但是启动之后由于监听连接的是一个死循环 这时想终止运行,发现按ctrl+c,ctrl+z,ctrl+d都不能终止 用ctrl+break解决
- SpringMVC使用注解@RequestMapping映射请求
pringMVC通过使用@RequestMapping注解,实现指定控制器可以处理哪些URL请求. 控制器的类定义及方法定义处都可以标注@RequestMapping: 类定义处:提供初步的请求映射信 ...
- POJ:2785-4 Values whose Sum is 0(双向搜索)
4 Values whose Sum is 0 Time Limit: 15000MS Memory Limit: 228000K Total Submissions: 26974 Accepted: ...
- Pandas库入门
pandas库的series类型