计算机网络_数据链路层
数据链路层概述
封装成帧 差错检测 可靠传输
使用广播信道的数据链路层(共享式局域网)
以太网的媒体接入控制协议CSMA/CD
无线局域网
802.11局域网的媒体接入控制协议CSMA/CA
封装成帧
封装成帧使指数据链路层给上层交付的协议数据单元添加帧头和帧尾使之成为帧
- 帧头和帧尾中包含有重要的控制信息
- 帧头和帧尾的作用之一就是帧定界
透明传输时指数据木链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样
面向字节的物理链路使用字节填充的方法实现透明传输
面向比特的物理链路使用比特填充的方法实现透明传输
为了提高的传输效率,应当使帧的数据部分的长度尽可能大些
考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU.
差错检测
实际的通信链路都不是理想的,比特在传输过程种可能会产生差错 : 1可能会变成0.这称为比特差错
在一段时间内,传输错误的比特占有传输比特总数的比率称为误码率BER
使用差错检测码来检测数据在传输过程种是否禅城了比特差错,使数据链路层所要解决的重要问题之一
差错检测
奇偶校验
在待发送的数据后面添加1位奇偶校验码,使整个数据中"1"的个数为奇数或偶数
如果有奇数个位发生误码,则奇数性发生变化,可以检查出误码
如果有偶数个位发生误码,则奇偶性不发生变化,不能检查出误码
循环冗余校验
收发双方约定好一个生成多项式
法送方基于待发送的数据和生成多项式计算出差错检测码.将其添加到待传输数据的后面一起传输
接收方通过生成多项式来计算收到的数据是否产生误码
检错码只能检测出帧在传输过程中出现了差错,但并不能定位错误,因此无法纠正错误
想要纠正传输中的差错,可以使用冗余信息更多的纠错码进行向前纠错,但纠错码的开销比较大,在计算机网络中较少使用
循环冗余校验CRC有很好的检错能力,虽然计算比较复杂,但非常易于用硬件实现 因此被广泛引用与数据链路层
在计网中通常采用我们后续课程中将要讨论的检错重传的方式来纠正传输中的差错,或者仅仅是丢弃检测到差错的帧,这取决于数据链路层向其上层提供的是可靠传输服务还是不可靠传输服务
可靠传输的基本概念
使用差错检测技术,接收方的数据链路层就哭呀检测出帧在传输过程中是否产生误码
数据链路层向上层提供的服务类型
不可靠传输服务 : 仅仅丢弃有误码的帧,其他什么也不做
可靠传输服务 : 想办法实现发送端发送什么,接收端就手收到什么
一般情况下,有线链路的误码率比较低为了减小开销,并不要求数据链路称向上提供可靠传输服务,即使出现了误码,可靠传输的问题由其上层处理
无线链路易受干扰.误码率比较高,因此要求数据链路层必须向上提供可靠传输服务
比特差错只是传输差错的一种
从整个计网体系结构来看,传输差错还包括分组丢失分组丢失,分组失序以及分组重复.
分组丢失,分组失序以及分租重复这些传输差错 一般不会出现在数据链路层,而会出现在其上层
可靠传输服务并不仅限于数据链路层,其他各层均可选择实现可靠传输
可靠传输的实现比较复杂,开销也大
TCP向其上层提供面向连接的可靠传输服务
UDP向其上层提供法无连接,不可靠传输服务
IP向其上层提供无连接,不可靠传输服务
802,11无线局域网要求数据链路层实现可靠传输以太网不要求数据链路层实现可靠传输服务
可靠传输的实现机制
停止-等待协议SW
- 接收端检测到数据分组有误码时,将其丢弃并等待发送的超时重传,但对于误码率较高的点对点链路,为使发送方尽早重传,也可给发送方发送NAK分组
- 为了让接收方能够判断所收到的数据是否是重复的,需要给数据分组编号,由于停止-等待协议的等待特性,只需1个比特编号就够了,即编号0和1
- 为了让发送方能够判断所收到的ACK分组是否是重复的,需要给ACK分组编号,所用比特数量与数据分组编号所用比特数量一样,数量链路层一般不会出现ACK分组迟到的情况,因此在数据链路称实现停止-等待协议可以不用给ACK分组编号
- 超时计时器设置的重传时间应仔细选择,一般可将重传时间选为略大于"从发送方到接收方的平均往返时间"
1.在数据链路层点对点的往返时间比较确定,重传时间比较好确定
2.然而在运输层,由于端到端往返时间非常不确定,设置合适的重传时间有时并不容易 - 当往返时延RTT远大于数据帧发送时延TO时,信道利用率非常低
- 若出现重传,则对于传送有用的数据信息来说,信道利用率还要低
- 为了克服停止-等待协议信道利用率很低的缺点,就产生了另外两种协议,即后退N帧协议GBN和选择重传协议SR.
回退N帧协议GBN
回退N帧协议在流水线传输的基础上利用发送窗口来限制发送方连续发送数据分组的数量,时一种连续ARO协议
在协议得工作过程中发送窗口不断向前滑动,因此这类协议又称之为滑动窗口协议
由于回退N帧协议的特性当通信线路质量不好时,其信道利用率并不比停止-等待协议高
选择重传协议SR
/发送方
- 发送方可在未收到接收方确认分组的情况下,将序号落在发送窗口内的多个数据分组全部发送出去.
- 发送方只有按序收到对已发送数据分组的确认时,发送窗口才能向前相应滑动;若收到未按序到达的确认分组时,对其进行记录,以防止其相应数据分组的超时重发,但发送窗口不能向前滑动
/接收方
- 接收方可接收未按序到达但没有误码并且序号落在接收窗口内的数据分组
- 为了使发送方仅重传出现差错的分组,接收方不能再采用累计确认,而需要对每个正确接收到的数据分组进行逐一确认
- 接收方只有再按序接收数据分组后,接收窗口才能向前相应滑动
点对点协议PPP
PPP协议的标准文档(RFC1661,RFC1662)
PPP协议为再点对点链路传输各种协议数据报提供了一个标准方法,主要由以下三部分组成
- 对各种协议数据报的封装方法
- 链路控制协议LCP 用于建立,配置以及测试书局链路的链接
- 一套网络控制协议NCPs 其中的每一个协议支持不同的网络层协议
PPP帧的透明传输 - 面向字节的异步链路使用字节填充法
- 面向比特的同步链路使用比特填充法
PPP协议的工作状态
媒体接入控制的基本概念
共享信道要着重考虑的一个问题就是如歌协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC
静态划分信道
媒体接入控制 动态接入控制 随机接入 CSMA/CD协议
CSMA/CD 协议的工作原理
多点接入MA :多个主机连接在一条总线上,竞争使用总线
载波监听CS : 发送帧前线检测总线,若总线空闲96比特时间,则立即发送 :若总线忙 :则持续检测总线知道总线空闲96比特时间后在重新发送
碰撞检测到CD 边发送边检测碰撞,若检测到碰撞,则立即停止发送,退游一段随机时间都再重新发送
上述过程可以比喻为 : 先听后说,边听边说: 一旦冲突 立即停说 等待时机 重写再说
计算机网络_数据链路层相关推荐
- 2_计算机网络_数据链路层-交换机-以太网-vlan-trunk
文章目录 1.数据链路层 1.1 功能和协议 1.2 Ethernet 以太网 mac地址 mac地址表 帧格式 2.交换机 3.ARP协议 工作原理 ARP缓存表 广播风暴 局域网扫描脚本 4.虚拟 ...
- 计算机网络cdm名词解释,计算机网络_名词解释
计算机网络_名词解释 名词解释 写出术语的英文全称及中文含义 1.FDM:Frequency Division Multiplexing P50 频分复用:用户在分配到一定的频带后,在通信过程中自始至 ...
- 3.1.1计算机网络(数据链路层 差错控制 循环冗余码 海明码 流量控制)
目录 数据链路层 数据链路层基本概念 数据链路层功能概述 封装成帧 透明传输 组帧的四种方法: 1.字符计数法 2.字符填充法 3.零比特填充法 4.违规编码法 差错控制 差错从何而来? 数据链路 ...
- 计算机网络:数据链路层
计算机网络:数据链路层 数据链路层是 OSI 分层模型的第二层.该层是最复杂的层之一,具有复杂的功能和责任.数据链路层隐藏底层硬件的详细信息,并将自身表示到上层作为通信介质. 数据链路层在某种意义上直 ...
- 【计算机网络】数据链路层(五)—— 广域网(PPP 协议与 HDLC 协议)
[计算机网络]数据链路层(五)-- 广域网(PPP 协议与 HDLC 协议) 一.广域网 二.PPP 协议 PPP协议应满足的要求 PPP协议的三个组成部分 PPP协议的帧格式 三.HDLC 协议 H ...
- 计算机网络笔记——数据链路层
计算机网络笔记--数据链路层 3. 数据链路层 3.1 数据链路层的功能 3.2 组帧 字符计数法 字符填充的首尾界符法 比特填充的首尾标志法(零比特填充法) 物理编码违例法 3.3 差错控制 3.3 ...
- 计算机网络_子网掩码与子网划分
计算机网络_子网掩码与子网划分 IP地址相关:计算机网络-域名与IP地址详解 子网掩码的作用 指明哪些是网络号部分,哪些是主机号部分 帮助路由器判断接收端主机是否在同一个网段中. 在本机路由表中通过接 ...
- 【计算机网络】数据链路层 : 总结 ( 封装成帧 | 流量控制与可靠传输 | 差错控制 | 介质访问控制 | 局域网 | 广域网 | 数据链路层设备 ) ★★★
文章目录 一.数据链路层 功能 二.封装成帧 ★ 三.流量控制 和 可靠传输 ★★ 1.停止等待协议 ★ 2.后退 N 帧 ( GBN ) 协议 ★ 3.选择重传 ( SR ) 协议 ★ 四.差错控制 ...
- 计算机网络总结——数据链路层
本篇文章是对 湖科大计算机网络微课堂 中数据链路层的笔记总结,希望对大家有所帮助. 文章目录 3.1数据链路层概述 3.2封装成帧 (1)封装成帧 (2)透明传输: 3.3差错检测 (1)奇偶校验 ( ...
最新文章
- java steam 排序_java8 stream自定义分组求和并排序的实现
- 【NLP】FedNLP: 首个联邦学习赋能NLP的开源框架,NLP迈向分布式新时代
- 5.2 使用pytorch搭建GoogLeNet网络 笔记
- oracle plsql异常,【Oracle篇】异常处理和PLSQL
- Vue2.0源码阅读笔记(三):计算属性
- 呼吸灯程序(非阻塞)
- Linux系统分区概念
- js 下载文件、音频、视频
- Pro Tools播放引擎设置详解
- Google adsense单价降低的原因-失误的无效点击过滤
- 怎样给计算机设置屏幕锁,怎么给电脑设置锁屏密码
- 日媒:争夺中国人才,跨国公司败北
- 杨超越的经历故事性太强了,现实版的娱乐圈爽文
- VScode+texlive配置环境
- HarmonyOS与Android的全面对比
- office版本比较
- Silverlight书籍推荐阅读排行榜【续】
- 长时间戴太阳镜可使视力下降
- 安装cmake 3.6
- 进程守护方案http://www.jianshu.com/p/89d06594dc5d
热门文章
- Swift获取当前网络状态Wifi/5G/4G/3G/2G
- shp文件导入postgresql数据库
- 如何为word增加页码,且第一页不显示页码?
- JVM第十二章-垃圾回收器
- 《大明王朝》赵贞吉的拉扯
- 3.8编写程序 ,要求用户从键盘输入一个年份,程序输出改年出生的人的生肖。中国生肖基于12年一个周期,Java
- Brew doctor warns about “Warning: A newer Command Line Tools release is available”
- 删除xml或者图像文件夹多余的文件
- 【类ChatGPT】本地CPU部署中文羊驼大模型LLaMA和Alpaca
- Sorry, you have been blocked !vultr 又被 openai 屏蔽了,只能换个 vps 了