计算机网络 第三章 数据链路层 ppp协议

在前面我们是了解了数据链路层要解决的三个问题封装成帧,透明传输,差错检测;对于封装成帧,协议不同封装出来的帧格式不同,使用帧定界的点对点传输需要解决透明传输问题,对于解决方法在前面一节我们只是给出了使用转义字符填充,对于差错检测,学习了奇偶校验和CRC循环冗余校验。

这一节要学习的是数据链路层中的点对点协议,该协议是在ISP和用户之间通信所使用的数据链路层协议。

一、ppp协议

ppp是在ISP和用户之间通信所使用的数据链路层协议。,也可以被叫做是PPPoE协议。

先来看下ppp协议的组成

  • 封装成帧
  • LCP 是链路控制协议,在用户和ISP进行连接的时候,就需要LCP链路控制协议来进行连接。
  • NCPS 是不同网络控制协议,因为网络层用到的协议不同,向下层交付的数据类型就不同,就需要被交付方数据链路层能够有效的识别出上层交付的数据类型。

封装成帧

在ppp协议中,封装成帧就是在网络层交付的网络层链路数据单元加上帧的首部信息和尾部信息

  • 在ppp协议中帧的标志,即帧的定界符为0x7E
  • 地址和控制字段无意义
  • p字段是表示上层接受交付的数据类型,因为网络层的协议不同,交付的数据会有所差异。
  • FCS字段存储CRC的校验码
  • 帧的数据部分是不超过1500字节的

透明传输

在ppp协议中,数据的传输方式有两种,第一种是面向字节的异步链路,一种是面向比特的同步链路,传输方式的不同,实现透明传输的方式也不同,对于面向字节的采用字节填充法,对于面向比特的同步链路采用比特填充法。

字节填充, 对于ppp协议,它的字节填充做出以下规定

  • 在数据部分遇见帧定界符7E,将其变为7D5E
  • 对于遇见转义字符7D,将其变为7D5D,其实不难发现,ppp协议中当遇见转义字符或者帧定界符的时候,都是在前方插入7D,然后转义字符或者帧定界符减去0x20
  • 当出现小于0x20的ASSIC码时,也需要在其其那方插入7D,同时让其加0x20。

比特填充,对于面向比特传输的ppp协议,由于帧定界符时0x7E,也就是01111110B,为实现透明传输,只需要在数据部分出现连续的五个1的话,就插入一个0,以破环连续的六个1的情况。

差错检测

ppp协议的差错检测使用CRC冗余码校验,FCS字段用于存储循环冗余校验码

  • 发送方的数据到达发送发主机的数据链路层时,计算循环冗余校验码,存储在FCS字段,封装成帧
  • 接收方接受到物理链路传输的数据,通过帧定界符分割出一个帧,然后检验帧中的数据是否出错,不出错就接受,出错就不接受,直接丢弃。

LCP链路控制协议

LCP是如何运作的?为什么需要LCP协议?

是因为用户刚刚和ISP建立连接的时候其实就是ISP接了一根物理的网线到自己的家里,这时就实现了链路的建立(物理上的连接) ,然后我们作为用户开始和ISP进行通信,此时就会使用到LCP链路控制协议,即用户向ISP发送LCP分组,就是协议字段是0xC021,就表示发送LCP分组;发送LCP分组的目的就是为了进行LCP协商,LCP分组里面就是一些配置选项,协商通过后,就会进入鉴别状态,此时状态已经是建立LCP链路 了,此时就会进入到网络层的协议,进行NCP配置协商,其实也就是为了实现不同的网络层协议交付的数据,都能使用同一个ppp协议来封装,配置完成后就会进入链路打开的状态,这样完成了两个点之间的连接控制,也就是链路控制协议的作用;其具体过程如下

相关推荐
承渊政道4 小时前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
讯捷蓝达5 小时前
戴尔R720xd服务器卡死在 “Configuring Memory...Done“,换了内存还是卡?问题根本不在内存
运维·服务器
数字新视界8 小时前
动环监控信创适配在智能机房管理中的应用价值与未来展望
大数据·服务器·数据库·动环监控系统·动力与环境监控系统
爱和冰阔落8 小时前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
lisanmengmeng9 小时前
alertmanger 标签 rules 打上分组标签
linux·运维·服务器
严肃小白兔9 小时前
Cloudflare 更新 API Token 管理:从最小权限到自动化凭据安全
网络·安全·自动化
Android系统攻城狮9 小时前
Linux FFmpeg深度解析之av_write_frame调用流程与实战(三十三)
linux·运维·服务器·ffmpeg·音视频进阶·ffmpeg音视频
上火的金鱼妹9 小时前
k8s生产实际问题排查(网关,数据库读写等)
运维·服务器
Linux-lucky21 小时前
45-Linux学习之旅之防火墙与WEB加固
linux·前端·网络·学习·ubuntu
爱莉希雅&&&1 天前
GitLab 完整学习笔记
linux·运维·服务器