计算机网络——数据链路层(滑动窗口协议: 选择重传)(点对点协议 PPP)

news/2024/5/21 23:46:28/文章来源:https://blog.csdn.net/qq_50942093/article/details/126904926

目录

滑动窗口协议: 选择重传

选择重传协议

选择重传协议

点对点协议 PPP

PPP 的主要特点

PPP 协议有三个组成部分

PPP 协议的帧格式

PPP 有一个 2 个字节的协议字段

透明传输问题

PPP 的字符填充

PPP 的工作状态


滑动窗口协议: 选择重传

选择重传协议

GBN相对简单,但一个分组的差错可能引起大量分组的重传,这些分组可能已经被接收方正确接收了,但由于未按序到达而被丢弃。

显然GBN对这些分组的重传是对通信资源的极大浪费。

为进一步提高性能,可设法只重传出现差错的分组。这时接收窗口大小不再为1,以便接收失序到达的分组--选择重传协议。

选择重传协议

接收窗口大小>=1,接收到失序分组,如果序号在接收窗口中,先缓存,等到所缺分组收齐后再一并交付上层。

由于采用的是选择确认,只重传出现差错的分组。

发送窗口只有收到最左侧序号的确认才能右移,而接收窗口只有收到最左侧序号的数据分组才能右移。

点对点协议 PPP

在通信线路质量较差的年代,能实现可靠传输的高级数据链路控制(High-level Data Link Control,HDLC)成为了当时比较流行的数据链路层协议。HDLC是一个比较复杂的协议,实现了滑动窗口协议,并可支持点对点和点对多点两种连接方式。

对于现在误码率已非常低的点对点有线链路,HDLC已很少使用了,而简单得多的点对点协议(Point-to-Point Protocol,PPP)则是目前使用最广泛的点对点数据链路层协议。


 

用户计算机和ISP进行通信时,所使用的数据链路层协议通常就是PPP协议。

PPP协议是IETF在1992年制定的,经多次修订,现在已成为互联网的正式标准。

PPP 的主要特点

简单 ——不提供可靠传输服务。

封装成帧 ——规定特殊的字符作为帧定界符。

透明性 —— 能够保证数据传输的透明性。

多种网络层协议 —— 能够在同一条物理链路上同时支持多种网络层协议。

 多种类型链路 —— 能够在多种类型的点对点链路上运行。

差错检测 —— 能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。

检测连接状态 —— 能够及时自动检测出链路是否处于正常工作状态。

最大传送单元 ——对每种链路设置最大传送单元 MTU 的标准默认值。

网络层地址协商 ——提供机制使通信的两个网络层实体能够通过协商知道或能够配置彼此的网络层地址。

PPP 协议有三个组成部分

一个将上层数据(如 IP 数据报)封装到串行链路的方法。

一个链路控制协议 LCP (Link Control Protocol)用来建立、配置和测试数据链路连接。

一套网络控制协议 NCP (Network Control Protocol)每个网络控制协议支持不同的网络层协议。

PPP 协议的帧格式

标志字段 F = 0x7E (01111110) ,PPP帧的定界符,规定为0x7E, 表示一个帧的开始或结束。

地址字段 A 只置为 0xFF。地址字段实际上并不起作用。

控制字段 C 规定为 0x03。控制字段实际上也不起作用。

PPP 有一个 2 个字节的协议字段

当协议字段为 0x0021 时,PPP 帧的信息字段就是IP 数据报。

若为 0xC021, 则信息字段是 PPP 链路控制协议(LCP)数据。

若为 0x8021,则表示这是网络控制协议(NCP)数据。

透明传输问题

当 PPP 用在SONET/SDH等面向比特的同步传输链路时,协议规定采用硬件来完成比特填充。

当 PPP 用在面向字符的异步传输时,使用一种特殊的字符填充法,其转义符定义为0x7D。

PPP 的字符填充

将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列 (0x7D, 0x5E)。

若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2 字节序列 (0x7D, 0x5D)。

若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。

PPP 的工作状态

 

->当用户拨号接入ISP时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。

->PC机向路由器发送一系列的LCP分组,以便建立LCP连接,并协商一些配置选项。

->协商结束后就进入“鉴别”状态。若通信的双方鉴别身份成功,然后进行网络层配置。

->NCP给新接入的PC机分配一个临时的IP地址,使PC机成为互联网上的一个主机。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_9812.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【周末闲谈】谈谈数学转码这一年来的体会与反思

——我们走了太远,以至于忘了为何出发 前言 笔者本科读的是数学专业,就是每天和数学分析、高等代数、概率论、随机过程等等这些理论打交道的专业,这个专业出来工作好像一般有两个方向就是金融和计算机,我选择了计算机方向。主要…

2022 第五届 浙江省大学生网络与信息安全竞赛技能赛 预赛 Writeup,5题

文章目录1、Web:nisc_easyweb2、Web:nisc_学校门户网站3、Web:吃豆人吃豆魂4、MISC:好怪哦5、RE:ManyCheck1、Web:nisc_easyweb 题目描述: 打开网站,是一个php的初始页面。 思路…

springboot+微信小程序的点餐系统(开题报告+论文+答辩PPT+源码)

技术架构 SprongBootMysql微信小程序 简介 本点餐小程序是使用Java/JavaScript编程语言开发的,存储数据方面则用到了MySQL数据库。顾客可以使用小程序扫码功能扫描餐厅桌角的二维码就座,也可以点击排号等位由后台工作人员安排就座;通过首页…

通关GO语言10 Context:你必须掌握的多线程并发控制神器

在上一节课中我留了一个作业,也就是让你自己练习使用 sync.Map,相信你已经做出来了。现在我为你讲解 sync.Map 的方法。 Store:存储一对 key-value 值。 Load:根据 key 获取对应的 value 值,并且可以判断 key 是否存在…

GO面试题集锦

GO面试题集锦 目录GO面试题集锦slice 扩容机制slice 为什么不是线程安全的map 底层原理map 扩容机制map 遍历为什么无序map 为什么不是线程安全的Map 如何查找Map 冲突解决方式Map 负载因子为什么是 6.5Map 和 Sync.Map 哪个性能好Channel 底层实现原理Channel 有什么特点Chann…

docker实战教程(七):镜像的分层概念

联合文件系统(UnionFS) 联合文件系统是一种分层、轻量级并且高性能的文件系统,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下。联合文件系统是docker镜像的基础。镜像可以通过分层来进行继承,基于基础镜像(没有父镜像…

Zookeeper简介

文章目录Zookeeper简介zookeeper能做什么zookeeper的数据模型zookeeper工作机制zookeeper集群的选举机制1、第一次启动选举机制2、非第一次启动选举机制搭建zookeeper的集群Zookeeper简介 zookeeper能做什么 master节点选举:主节点挂了以后,从节点就会…

基于 ANFIS 的非线性回归(Matlab代码实现)

💥💥💥💞💞💞欢迎来到本博客❤️❤️❤️💥💥💥 👨‍🎓博主课外兴趣:中西方哲学,送予读者: 👨‍&a…

字符串函数以及内存函数的模拟实现(超详细,全面理解字符串函数!!!)

目录 一、strlen 1.参数指向的字符串必须要以 \0 结束。 2.注意strlen函数的返回值为size_t,是无符号的 3.模拟实现strlen 二、strcpy 1.源字符串中的 \0 拷贝到目标空间 2.源字符串必须以 \0 结束 3.目标空间必须足够大,以确保能存放源字符串 4…

@Conditional

条件装配:满足Conditional指定的条件,则进行组件注入 @Configuration//告诉springboot这是一个配置类 public class MyConfig {@Bean("tom")public Stu stu01(){return new Stu("汤姆");}@ConditionalOnBean(name="tom")//当容器中有tom组件时…

windows工具:推荐一款可以截长图(滚动截图)的工具FSCapture

windows工具:推荐一款可以截长图(滚动截图)的工具前言一、FSCapture是什么?二、使用方法1.下载地址和安装2.使用方法前言 有的时候你画的框架图太大,已经超过了一屏,想要导出图片,用普通窗口截…

汇编常用寄存器以及寻址方式

寄存器概览 常用寄存器 AX accumulator 累加寄存器 BX base 基址寄存器 CX count 计数寄存器 DX data 数据寄存器 SP stack pointer 堆栈寄存器 BP base pointer 基址指针寄存器 SI source index 源变址寄存器 DI destination index 目的变址寄存器 IP instruction pointer 指…

ch4 报错修正 Sophus使用

ch4 报错& 修正 (1) # 添加Eigen头文件 include_directories( "/usr/include/eigen3" )(2) #include "sophus/so3.hpp" #include "sophus/se3.hpp"(3) 大量报错但都…

定制qga(作业截图)

文章目录一、qga介绍二、证明qga命令可以正常使用三、创建qga安装包四、总步骤一、qga介绍 qemu guest agent简称qga, 是运行在虚拟机内部的一个守护程序(qemu-guest-agent.service), 他可以管理应用程序,执行宿主机发…

声呐直线阵正交混频实验(HEU信息与信号处理创新实践项目一)

写在前面 这个实验原要求是要实现 969696 通道的正交混频变换(后来老师说只要不是单通道都行),因此必须使用 FIRFIRFIR IP核(手搓FIR一两个通道还行,96通道就太费劲了),所以实验成功的关键就是…

BNU002期-学术沙龙-写好综述

文章目录综述的介绍什么是综述为什么要读综述为什么要写综述怎样写综述综述案例中的问题对于综述写作问题的分类如何避免综述写作问题讨论综述问题框架环节并完善做个升华:谈谈科研和读综述的乐趣本文引用资料的链接补充综述的介绍 本文围绕 什么是综述 我创设这…

微服务基础---认识微服务

1.1认识微服务 1.1.1微服务架构演变 单体架构 将业务的所有功能都集中在一个项目中进行开发,打成一个包部署. 优点:架构简单、部署成本低缺点:耦合度高 分布式架构 根据业务功能对系统进行拆分,每个业务模块作为独立项目开发&am…

软件流程和管理(八):Ethics

目录 1. Ethics 1.1 道德(Ethics)是什么? 1.2 关于计算机伦理的错误假设 1.3 为什么你要关心建立道德技能和知识 1.4 信息技术的道德责任 1.5 澳大利亚计算机协会的道德准则 1.6 组织中的道德是很重要的 1.7 道德:实用指…

zephyr线程生命周期

ephyr中线程是使用CPU的最小单位,线程从创建后由zephyr内核进行调度,根据运行和等待资源的状况在几个状态中切换,直到线程终止退出生命周期。 线程状态 线程在其生命周期中有下面6种状态: New 创建:线程被创建起来但…

实验2:Open vSwitch虚拟交换机实践

(一)基本要求1.ovs-vsctl基础操作实践:创建OVS交换机,以ovs-xxxxxxxxx命名,其中xxxxxxxxx为本人学号。在创建的交换机上增加端口p0和p1,设置p0的端口号为100,p1的端口号为101,类型均为internal;为了避免网络接口上的地址和本机已有网络地址冲突,需要创建虚拟网络空间…