概述
此学习笔记参考自王道考研
计算机网络——数据链路层
1.封装成帧
将网络层的分组加封帧首和帧尾,用于标定帧的开始和结束。
2.透明传输
假如在数据段中出现帧首和帧尾的信息,接受方会错误的判定帧开始和结束的位置,这时候需要在数据段中出现帧首和帧尾信息的前面加转义字符,或者在转义字符前也要加转义字符,转义字符就会使相应的信息“消失不见”,但又实实在在的传过去。
3.差错控制
检错: 常使用循环冗余法检测(CRC码);
纠错: 海明码。
4.流量控制和可靠传输
流量控制: 因为较高发送速度和较低接受速度的不匹配,需要控制发送方传输速度;
- 链路数据层的流量控制手段: 发送方没发送完一个帧就等待接受方确认,收到确认,发送方才能继续发送。主要手段有停止-等待协议和滑动窗口协议;
- 传输层的流量控制手段: 接收端会给发送端发送一个公告窗口;
5.信道划分
点对点信道: 一对一信道,不会发生碰撞,使用PPP协议控制;
广播信道: 一对多通信,一个节点发送的数据能被广播信道上的所有节点收到;所有节点在一条信道上发送数据,容易发生碰撞。有两种方式可做调节
- 信道多路复用技术;
- CSMA/CD协议;
6.信道多路复用技术
首先了解什么是多路复用技术?其实就是复用和分用,用一张图表示
1.频分复用技术FDM
用户占用不同的带宽(此处是频率带宽,单位是赫兹)资源;
2.时分复用技术TDM
将一个时间段等分位时分复用帧(TDM帧:标志一个周期,在一段时间内能发送多少比特),每个时分复用的用户在每个帧中占用固定序号的时隙,轮流占用通道。时分复用就像是并发,频分复用就像是并行。
3.统计时分复用技术STDM
不固定用户在时分复用帧的位置,一有数据就往统计时分复用帧里发送,帧满,就往目的端发送;提高信道利用率。假设现在1s要发送8000比特,时分复用的用户一人最高发送2000b/s,而统计时分复用1秒最多8000b。
4.码分复用技术CDM
为每个用户分配m bit 的码片,且各用户的码片要正交,拥有该码片的用户发送比特1时,就发送该码片,发送0时,就发送码片的反码;
如何合并: 码片线性相加;
如何分离: 接受端的码片和发送端的码片进行内积运算,结果为 0 的是其它用户发送的数据,结果为 1 的是用户发送的比特 1,结果为 -1 的是用户发送的比特 0。
7.CSMA/CD协议
CS:载波监听 在一个站发送数据前和发送数据时都要监听信道,看信道上是否有数据在发送;
MA:多点接入 说明这是总线型网络,多个计算机接在一条总线上;
CD:碰撞检测 检测冲突
CSMA/CD协议是半双工通信
1.思考为什么先听后发还会发生碰撞?
因为数据在信道上是以电磁波的形式发送的,电磁波发送速度快,但仍然会有时延。当一个站发送数据到另一个站,可能数据还在路上,但另一个站监听到信道是空闲的就会发送,与迎面而来的数据就会发生碰撞。用一张图表示
2.思考如何解决该碰撞
协议的目的同复用技术一样就是为了解决广播信道的冲突问题,那么该如何解决呢?我们在第一个数据发生碰撞的时候,要检测到碰撞,并选取一个重传时机 。我们假设在0.5个传播时延的时候发生碰撞,并没有选取重传时机,那么就会出现如下图的情况
那么该如何选取呢,采用截断二进制指数规避算法
- 确定基本退避时间为2倍的单程传播时延;
- 定义一个K表示重传次数,k=min{重传次数,10},意思是超过10 次就选用10;
- 从[0,1,2…2^k-1]中选取r,重传时间就是r倍的基本退避时间。
- k超过16 次,就会抛弃帧,并向高层报告。
3.最小帧长问题
如果帧过段,在检测出碰撞,但还未重发时,数据就已经发完了,所以引出了最小帧长问题。
8.ppp协议
1.只支持全双工链路;
2.检错但不纠错,无需流量控制,是点对点通信;
3.ppp协议是用户计算机和ISP(互联网服务提供商,互联网是主干网的互联网服务提供商(ISP)之间的相互连接而构成)相互通信的数据链路层协议;
4.三个组成部分
a. 将IP数据报封装到串行链路;
b.链路控制协议LCP:建立物理链路(填写账号,密码);
c.网络控制协议NCP:建立逻辑链路;
5.ppp协议的帧格式
FCS:是使用CRC(循环冗余)的检验序列;
9.局域网
1.局域网分为无线局域网和有线局域网,wifi是无线局域网的一种,以太网也是局域网;
2.MAC地址是网络适配器的唯一标识,有多少网络适配器,就有多少MAC;
3.以太网:
a.无连接:也就是没有握手过程;
b.不可靠:不给帧编号;接受方不回复确认;无差错接受,也就是有差错就丢弃,差错控制由高层做。要区别于可靠传输:有差错和无回复确认也不放弃,发送方会自动重传,发啥收啥;
最后
以上就是风趣钢笔为你收集整理的计算机网络—数据链路层归纳计算机网络——数据链路层的全部内容,希望文章能够帮你解决计算机网络—数据链路层归纳计算机网络——数据链路层所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复