IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 计算机网络-数据链路层 -> 正文阅读

[网络协议]计算机网络-数据链路层

带宽是指网络设备所支持的最高速度,与信号在介质中的传播速度无关,
由发送方的发送能力确定?
网络运营商提供的带宽,是通过链路上路由器的出口带宽决定的,
如果路由器出口带宽不够,数据在路由器中等待,则由数据链路层的协议,
发送端会自动将发送速度降下来,从而实现了流量控制。

某一链路带宽为1Mb/s, 则发送方在1us内可向链路发1bit数据,
也就是发送时延=数据长度/信道带宽(发送速率)

什么是端到端,什么是点到点?
端到端,指从发送方到接收方;点到点,指节点到节点。

中继器:
1. 模拟信号和数字信号都可以放大?
2. 不会存储转发
集线器:
多个口,将信号从多个口传出,连在集线器上的工作主机平分带宽
不会隔离冲突域。什么是冲突域?

数据链路层的流量控制是点对点的,而传输层的流量控制是端对端的。

数据链路层的功能:

为网络层提供服务,将网络层的数据“可靠的”传输到相邻节点的目标机网络层(这里的可靠是指?)。
将物理层提供的可能出错的物理连接改造成“逻辑上无差错的数据链路”,使之对网络层表现为一条无差错的链路。
(1) 为网络层提供服务:
无连接无确认(通信质量好,有线传输链路)
无连接有确认
面向连接有确认(通信质量差的无线传输链路)
(2) 组帧:
将上层的数据加上头和尾,发送到物理层。头和尾用于帧定界。
(头和尾的长度是多少?)
帧的数据部分有个最大长度限制,称为MTU
组帧的四种方法:

  • 字符计数法: 帧首部有个字段表示帧的数据长度。
    缺点,一个错,全部都错

  • 字符填充法
    使用SOH和EOT两个字节分别来表示帧的开始和结束,在碰到帧的原始数据中包含有控制字节时,
    在原始数据中的控制字节前加一个转义字符,接受端去除转义字符

  • 零比特填充法
    使用01111110来表示帧的开始和结束,只有这个字节有连续的6个1.
    在帧的数据部分,一旦碰到连续的5个1,就在后面添0;接收端先寻找界定符,然后如果5个1后为0,则删除0。
    这样在寻找帧界定符时,肯定不会找到帧的数据部分。
    实现了透明传输,不会引起对帧边界的判断错误

  • 违规编码法
    在曼彻斯特编码中,一个比特中使用低-高或高-低来表示1或0,那使用违规的高-高、低-低来表示帧的开始和结束。

差错控制:

- 为什么有差错?
	差错来自于噪声,
- 差错的结果
	帧错(丢失、重复、失序)
	位错(比特位出错)

对于比特错的情况,有差错控制,包括检错编码和纠错编码(都是针对一组比特位进行的编码)
	- 检错编码:奇偶校验码、CRC循环冗余码
	- 纠错编码:海明码
	(这都要求接收端对收到的数据检查并做出回应?)

经过比特位错的检错和纠错编码,保证了接收到的帧都是无差错的,但还不能保证可靠传输,即“发送端发什么,接收端就收到什么”,因为这只是比特位的检错机制。

【数据链路层的可靠传输通常使用确认和超时重传两种机制来完成 】
数据链路层的流量控制:接受方收不下,就不回复确认。
传输层的流量控制:接受端给发送端一个窗口公告。
(这三个协议都是用来实现可靠传输的,因此也能用在传输层?)
流量控制与可靠传输
在数据链路层中流量控制机制和可靠传输机制是交织在一起的,根据确认和重传机制,在实现了可靠传输时,就自动实现了流量控制。
底层信道可能出现丢包问题,因此需要确认机制。
流控/可靠传输方法: 停等协议、滑动窗口协议(后退N帧、选择重传)。
(1) 停止等待协议:
发送-确认-发送-确认……,信道利用率低
正常与异常情况:
- 正常, 发送-确认,再发送,再确认
- 异常,
- 发送帧错误或丢失
- 确认ack丢失
- 确认ack延迟
发送数据需要存在副本,发送完需要有计时器,超过计时需要重传
发送的帧是否需要编号?因为帧是一个一个发的,等前一个的确认明确收到到才发送下一帧,
在出现帧的确认延迟时,假设刚发出去一帧,收到了之前已发送帧的确认帧,
按道理讲应该立即丢弃,什么都不做,那么是如何完成的呢?
应该是确认帧中包含一个序号,收到时比较此序号和当前序号,发现小则忽略?
视频中讲,发送帧的序号只有0和1,对应的ack则是ack0和ack1.
由于停止等待协议整个周期内发送数据时间占比过低,大部分时间都在等待帧确认,
因此改进采用流水线技术,连续发送多个帧,必须要:
增大帧序号范围
需要缓存多个帧
则引申出来了两个滑动窗口协议

 (2)后退N帧协议-GBN
 	发送窗口为N,接收窗口为1
 	发送窗口分为四部分:已发送已确认(在窗口外),已发送等确认(窗口内),能发送还未发送(窗口内),不能发送(窗口外)
 	基本的发送流程: 发送、确认、发送窗口和接收窗口前移(对于发送方,收到了窗口下限帧的确认才前移;对于接收方,收到窗口下限的帧才前移)

 	注意点:
 		GBN中采用累计确认,接收方不必每个帧都回复确认,可以等一会回复一个最新的帧的确认。
 		这个N号帧的确认,表明N号帧和它之前的帧,都被接收方成功接收。

 		出现超时时,发送方会重传所有已发送未确认的帧。

 		接收方维护一个期望帧序号,expectseqnum,下一个按序接收的帧序号。
 		只有在正确且按序收到N号帧时会回复ack,其余情况丢弃该帧且重新回复一个最近已按序接收帧的ack。

 		如果发送的滑动窗口特别大,则窗口内可发送的数据越多;
 		则某个帧重发时,重发帧的数量也越多;
 		如果采用n个比特对帧进行编号,则发送窗口W的范围是 1 <= W <= 2**W - 1,相当于窗口内帧序号要保留一位,
 			不然如果本次用完下次从0开始则有可能是重发的0或者是序号用完了的新帧0
 	重点:
 		1. 累积确认(偶尔捎带确认)
 		2. 接受方只按顺序接收帧,不按序则丢弃
 		3. 确认序号是已接收最大序号的帧
 		4. 接收窗口为1,发送窗口最大为2**n - 1

 	缺点: 一个帧出差,后续的帧都需要重传

 	(3) 选择重传协议-SR
 		由累积确认改为单个确认,增大接收窗口,设置好接收缓存,缓存乱序到达的帧。
 		这样出错时只需要重传该帧即可。

 		SR有发送窗口和接收窗口,发送窗口和GBN一样,也是分为已发送已确认(在窗口外),已发送等确认(窗口内),能发送还未发送(窗口内),不能发送(窗口外)四种状态,接收窗口有已接收(窗口外)、未接收(窗口内)、已接收并缓存(窗口内)、等待接收(窗口内)、不能接收(窗口外)这些状态。
 		发送窗口中的帧乱序到达,只有窗口底部帧到达时,才会将数据交付给上层网络层,并移动窗口。


 		注意点:
 			1. 发送窗口的移动
 				收到窗口内帧的回复ack,如果是窗口下界,则移动窗口到相连的已接收到ack且缓存的帧位置
 			2. 接收方,对于窗口内的帧来者不拒,如果不是下界则缓存;窗口外的帧直接回复ack(这里的窗口外是指当前窗口外的已接收数据,且不能是太久远的数据?)
 			3. 接收窗口的移动
 				乱序收到数据缓存,直到收到窗口下届帧,才移动窗口
 		接收窗口和发送窗口大小一致,最大值为2**(n-1),n为表示帧序号的比特位,主要是为了区别新帧和旧帧

介质访问控制

两种传输链路: 
	- 点对点链路, 两节点通过一链路相连,没有第三者。 应用广域网,如ppp协议
	- 广播式链路, 所有主机共享通信链路(发出的数据被所有主机接收?),应用:早期的总线网、无线局域网,常用于局域网,典型拓扑结构:总线型、星型(逻辑总线型)

静态访问控制: 通过复用技术使得多个信号组合在一条物理信道上进行传输,多个终端共享信道资源,提高信道利用率
	有频分、时分、波分、码分复用技术

动态访问控制: 信道并非在通信时固定划分给用户,分为随机访问控制和轮询访问控制。
	随机访问: 所有用户可随机发送信息,发送时占用全部带宽(与静态划分信道共享带宽不同)
		- ALOHA协议(不听就说)
			纯ALOHA,不监听信道,不按时间槽发送,随机重发,即想发就发。
			(发送端根据电平变化检测是否有冲突,有则不回复确认,发送端超时未收到回复则认为冲突立即重发数据帧)
		- 时隙ALOHA协议()
			将发送时间片分为多个时间槽,只能在时间片的开始发送数据帧
		- CSMA协议(先听再说)
			发送前监听信道,空闲则发送,忙则等待
			有1坚持、非坚持、p坚持
			(发送端仍然根据是否有确认帧返回判断是否冲突)
		- CSMA-CD协议(先听再说,边听边说), 检测碰撞
			发送前监听信道,边发送边检测信道上信号电压的变化(属于半双工网络)
			检测是否发生碰撞,是接收端收到帧后进行检测,如果数据帧在传播过程中有碰撞,则会检测出来,丢弃此帧。
			发送端发送数据后,数据在路程中发生了来自接收端发送帧的碰撞,则发送端最迟经历2T时间收到接收端的碰撞帧,也就检测到了碰撞。

			不能检测到碰撞后就立即重发
			截断二进制指数规避算法,重传需要退出的时间随重传次数的增大而增大,减少发生碰撞的概率,重传上限16次

			为了使得在检测到碰撞时,帧并未发送结束,从而使得CSMA-CD协议有意义,则需要定义最小帧长。
			那么就要求 数据帧的传输时延 >= 2T, 即最小帧长 = 总线传播时延 * 数据传输速率 * 2 = 2T * 数据传输速率

			以太网规定的最小帧长是64字节
		- CSMA-CA协议(先听再说), 避免碰撞
			CD协议应用于有线网络,总线型网络,CA协议应用于无线局域网
			有礼貌?

			发送数据前,先检测信道是否空闲
			空闲时,先发出RTS,等待CTS帧(相当于先建立连接,为了解决隐蔽站的问题),同时预约信道(发送方告知其他站点自己要传多久数据)

			与CD的区别:
				介质不同
				监听信道的方式不同
				一个检测碰撞,一个避免碰撞
	轮询访问介质访问控制
		既不产生冲突,又要发送时占全部带宽。
		- 轮询协议,主节点轮流“邀请”从属节点发送数据
			问题 1 轮询开销 2 等待延迟 3 单点故障
		- 令牌传递协议
			令牌在环形网络中传递,需要发送数据的主机获取到令牌,将数据帧附加到令牌上,然后传递令牌。
			实现了某一时刻只有一个节点独占信道,无碰撞。
			每个节点都可以在一定的时间内(令牌持有时间)获得发送数据的权利,并不是无限制的持有令牌。

			问题:
				1. 令牌开销 2. 等待延迟 3. 单点故障
			应用于令牌环网(物理上星型,逻辑上环形)
			常用于网络负载重、通信量大的网络

CSMA-CD协议没有确认机制,如果没有检测到冲突就认为帧已被正确接收,假如真的没有被接收,上面的传输层会自动重传(基于传输层的确认机制)
CSMA-CA协议有确认机制,

局域网

使用广播信道,各站为平等关系,共享传输信道

决定局域网的三个要素: 拓扑结构、传输介质和介质访问控制方法

拓扑结构:星型、总线型、环形、树形
传输介质: 有线(光纤、双绞线、同轴电缆),无线(电磁波)
机制访问控制方法: CSMA-CD(总线型、树形局域网),令牌总线、令牌环

分类: 
	- 以太网: 逻辑拓扑总线型,使用CSMA-CD协议
	- 令牌环网: 逻辑环形拓扑
	- FDDI网: 逻辑环形拓扑
	- ATM网: 较新的单元交换技术,使用53固定字节长度的单元进行交换
	- 无线局域网:采用IEEE 802.11标准

以太网

基带总线局域网规范,使用CSMA-CD协议,因此提供无连接、不可靠的服务
无连接: 发送和接收方直接无握手过程
不可靠:不对发送方的数据帧编号,接受方不向发送方进行确认,差错帧直接丢弃,差错纠正由高层负责
只实现无差错接收,不实现可靠传输

MAC帧的组成
目的地址 | 源地址 | 类型 | 数据    | FCS
6		|    6  |  2   | 46~1500 | 4

以太网MAC帧长最小64,所以数据部分最小为64-6-6-2-4=46字节

无线局域网

802.11的MAC帧格式
  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-15 12:07:43  更:2021-10-15 12:07:47 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年6日历 -2024/6/29 19:45:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码