目录
1.数据链路层基本概念
2.组帧
2.1.字符计数法
2.2.字符填充法
2.3.零比特填充法
2.4.违规编码法
3.差错控制
3.1.检错编码
3.1.1.奇偶检验码
3.1.2.CRC循环冗余码
3.2.检错编码(海明码)
4.滑动窗口
4.1.停止等待协议
4.2.后退N帧协议
4.3.选择重传协议
5.介质访问控制
5.1.信道划分介质访问控制
5.2.随机访问介质访问控制
5.2.1.ALOHA协议(不听就说)
5.2.2.CSMA协议(先听再说)
5.2.3.CSMA / CD协议(先听再说,边听边说)
5.2.4.CSMA / CA协议
5.2.5.CSMA / CD 和CSMA / CA的相同点和区别
5.3.轮询访问介质访问控制——令牌传递协议
6.局域网
6.1.局域网的基本概念和体系结构
6.2.以太网
6.3.无线局域网
6.4.VLAN
7.广域网及相关协议
7.1.广域网和局域网区别
7.2.PPP协议(点对点)
8.交换机
8.1.交换机的原理和特点
8.2.交换机的两种方式
8.3.交换机的自学习
1.链路:两个结点间的物理通道
2.数据链路:两个结点间的逻辑通道
3.帧:链路层的协议数据单元,封装网络层数据报
4.数据链路层使用物理层提供的服务的基础上为网络层提供服务,最基本的就是将本机的网络层交付的数据报可靠的传输到对方主机的网络层。将物理层提供的可能出错的物理连接改造成逻辑上无差错的数据链路(对网络层而言)
功能:
①为网络层提供服务:无确认无连接,有确认无连接,有确认有链接(有连接一定有确认)
②链路管理:连接的建立、维持和释放
③组帧
④流量控制:点对点(相邻接点),传输层的流量控制为端对端(两个主机间)
⑤差错控制
5.信道利用率 = (L / C) / T
L:T时间内发送的数据量
C:数据传输速率
T:发送周记
6.信道吞吐率 = 信道利用率 * 发送方的发送速率
封装成帧:为数据报增加尾部和首部(作用:帧定界)组成帧,数据报为帧的数据部分
帧同步:接收方可以从他们收到的二进制比特流中分辨出帧的开始和结束
透明传输:不管传输的是什么样的比特流,链路层都能传输;由此引申出,若传输的数据中含有和某些控制信息一样的数据时,要采取措施使得接收方不会因此而影响接受
取每个帧的第一个字符为计数字符,标记该帧中一共有几个字符
缺点:若计数字符的传输出现了问题,则无法区分后续帧
使用转义字符,发送帧时,在除了真正表示帧开始和帧结束的前面不加转义字符外,该帧中碰见的所有的控制信息前都加上该转义字符。接收端收到数据时,碰到转义字符就知道后面跟着的是数据,而不是控制信息
开始和结束的标志为01111110,因此,发送方在发送的数据中每累计碰到5个连续的1时,就在后面加上0
性能优于字符填充法
用编码中不会用到的两种方式分别标记开始和结束
例如:曼彻斯特编码——高低为1,低高为0,则可以采用高高为开始,低低为结束
奇校验码——添加校验元(0或者1)使得数据中1的个数为奇数
偶校验码——添加校验元(0或者1)使得数据中1的个数为偶数
例如:采用偶校验:01101 则添加1;011011 则添加0
缺点:仅能测出奇数位出错的情况,且只知道错了,不知道哪错
1.基本概念
双方约定生成多项式为 r + 1 位
①发送方先将d位的数据先加上 r 位的0,与该生成多项式进行异或运算,得到的余数就为 r 位FCS,将其加入到要发送的d位数据之后,形成最终的d + r位数据
②接收方接到d + r位数据后,除以生成多项式,若余数为0,则没出错;余数不为0,则出错丢弃
2.例如发送数据为1101 0110 11,采用CRC校验,生成多项式是1001 1,则最后发送的数据是
①1101 0110 11加生成多项式的位数 - 1位的0,得到1101 0110 1100 00
②1101 0110 1100 00与1001 1进行异或得到CRC1110
③将发送的数据加上CRC,得到最后结果1101 0110 1111 10
1.概念
任意两个编码的比特值不同的总位数的最小值为码距(000、001的海明距离为1)
检验d位错:码距 ≥ d + 1
纠正d位错:码距 ≥ 2d + 1
2.工作流程
例:数据为1100
①确定校验码位数r
(1)设数据有m位,校验码为r位
m = 4
(2)检验码有2 ^ r种取值(二进制)
(3)2 ^ r ≥ m + r + 1 (m + r为每位发生错误的情况,1为数据没有出错的情况)(暴力穷举)
满足该不等式的r = 3→总位数为7
②确定校验码和数据的位置
将校验码放在2 ^ n的位置,数据则按序填充
二进制 | 111 | 110 | 101 | 100 | 011 | 010 | 001 |
序号 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
值 | 1 | 1 | 0 | x4 | 0 | x2 | x1 |
③求出具体校验码
(1)每个校验码负责校验表中与自己的二进制含有相同位置1的数据(包括自己)
x4负责校验1XX:7,6,5,4
x2负责校验X1X:7,6,3,2
x1负责校验XX1:7,5,3,1
(2)采用奇/偶校验,设采用偶校验
x4:7、6、5为110→x3为0
x2:7、6、3为110→x2为0
x1:7、5、3为100→x1为1
序号 | 7 | 6 | 5 | 4 | 3 | 2 | 1 |
值 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |
④检错并纠错
(1)检错
若接受数据为1110 001:
x4负责校验1XX:7,6,5,4→0、1、1、1 ×
x2负责校验X1X:7,6,3,2→0、0、1、1 √
x1负责校验XX1:7,5,3,1→1、0、1、1 ×
(2)纠错(满足偶校验)
x4、7、6、5、4→x4 0 1 1 1→x4 = 1
x2、7、6、3、2→x2 0 0 1 1→x2 = 0
x1、1、0、1、1→x1 1 0 1 1→x1 = 1
x4、x2、x1 所表示的二进制数为101,即5,因此,5出错
滑动窗口能进行流量控制(确认机制)、可靠传输(发送方自动重传)
发送窗口 = 1(交替用帧0,帧1标识),接收窗口 = 1(交替使用ACK0,ACK1),
1.无差错情况:发送端发一个帧,接收端接受到后返回一个确认帧,发送端接受到确认帧后再发送下一个帧
2.有差错情况:
①数据帧丢失:设置一个计时器,设置当超过某一时间(大于RTT)还未收到确认帧,则发送端重新传送该帧
(1)发送该帧后,需要保存副本
(2)确认帧和数据帧必须编号
②确认帧丢失:超时重传该帧,当接收端收到该帧的时候重新返回确认帧,并且把该帧丢弃
③确认帧迟到:丢弃确认帧
缺点:信道利用率太低
1.发送窗口最大为(2 ^ n) - 1,接收窗口为1(增加序号范围)
2.如果超时,重传所有已经发送但是未确认的帧(发送方需要缓存多个分组)
3.采用累计确认(偶尔捎带确认)的方式,返回确认帧ACKn即表示n号数据及其之前的所有数据都已经收到
4.接收方只会按序接收,若收到正确但不是所期待的帧,则直接丢弃,并返回最近收到的按序接收的帧的确认帧(防止最近一个确认帧丢失)(接收方不需要缓存)
总结:虽然提高了信道利用率(连续发送帧),但是效率依然不高(重传时需要重传已经发送的帧)
1.发送窗口 = 接收窗口 = 2 ^ ( n - 1)
发送方:
2.接收到ACKn后,将序号n改为已收到。若n为此时发送窗口的下界,则发送窗口向前移动到未确认的最小序号处(逐一确认,后退N帧是累加确认)
3.每个帧都有独立的超时计时器,若超时,则重传该帧(区别于后退N帧协议的所有帧,选择重传协议仅重传出错帧)
接收方:
4.接收方收到接收窗口序号内的帧。若是下界,则返回该帧的ACK,接收窗口向前移动到未收到数据的最小序号处;若不是下界,则返回该帧的确认帧,并将该帧缓存(接收方有缓存),直到该帧及该帧之前的所有序号都接收到的时候,接收窗口向前移动到该帧下一位(逐一确认,后退N帧是累加确认)
1.若收到的是比下界更小的帧,则返回该帧的确认帧(可能是上一次传送的确认帧丢失,重新告诉发送方该帧已经接收)
2.若收到的是比上界更大的帧,则直接丢弃
注:此处的上下界是指对接收窗口而言,并非单纯数值意义上的大小关系,即若此时接受窗口序号为6、7、0、1,接收窗口的下界为6,上界为1(可以理解为循环队列,按序接收到数据帧后,就循环向后移动)
点对点链路:其他人收不到信息。PPP、广域网
广播式链路:所有主机共享通信介质(其他人能收到)。局域网。总线型、星行拓扑
将使用介质的每个设备与同一信道上的不同数据(使用多路复用技术)隔离开来,并在接收端进行分离,再将其送往对应的信道
实际上就是把广播式链路逻辑上改造成点对点链路
1.频分多路复用FDM——frequency
同一时间不同用户占用不同的频率
2.时分多路复用TDM——time
将时间划分为等长的若干周期,每个用户占用一个时间周期(不同时间)
3.波分多路复用WDM
光的频分多路复用
4.码分多路复用CDM——code
设A的码片序列为0001 1011,B的码片序列为0010 1110,则
A:-1 -1 -1 +1 +1 -1 +1 +1 ——发送比特1
A:+1 +1 +1 -1 -1 +1 -1 -1——发送比特0(反码)
B:-1 -1 +1 -1 +1 +1 +1 -1——发送比特1
B:+1 +1 -1 +1 -1 -1 -1 +1——发送比特0(反码)
设A站发出的码片向量为S,B站发出的码片向量为T,不同站的码片序列规格化内积为0
任何一个码片与自身的规格化内积为1,与自身反码的规格化内积为-1
1.传输到公共信道后进行ST的线性叠加,即S-T
2.若想得到来自A站的数据,则让S与S - T进行规格化内积,结果为1,则是数据为1;结果为-1,则数据为0(B站同理,T与S - T进行规格化内积)(其他的站点信号经过内积则为0)
所有用户可以随时发送信息,占用全部带宽
1.纯ALOHA协议
A.不监听信道,想发就发
B.若一段时间内未收到确认,则视为发生冲突,等待随机一段时间后重新传输(发送过程中不知道是否发生冲突)
2.时隙ALOHA协议
A.将时间划分为若干段等长的时隙,只能在每个时隙的开始才能发送数据(控制想发就发的随意性)
B.冲突则在下一个时隙开始的时候重新发送
3.纯ALOHA协议和时隙ALOHA协议对比
A.纯ALOHA协议效率比时隙ALOHA协议低,吞吐量也更低
B.时隙ALOHA协议需要等到时间片开始的时候才能发送,而纯ALOHA协议想发就发
CS——监听 MA——多点接入
1.发送帧之前,监听信道,但是若开始传输,直到传输结束都无法直到是否发生冲突
2.1-坚持CSMA
A.空闲直接传输
B.忙则一直监听,一空闲就传输
C.冲突则等待一个随机长的时间再监听(ALOHA区别)
缺点:B导致如果有两个及以上的站点需要传输数据,则会产生冲突
3.非坚持CSMA
A.空闲直接传输
B.忙则等待一个随机时间再监听(1-坚持CSMA区别)
优点:B使得冲突发生的可能性降低(1-坚持CSMA区别)
缺点:B同样也使得可能会导致所有站点都处于等待期,因而降低信道利用率
4.p-坚持CSMA
A.空闲则以p概率直接传输,以1-p概率推迟至下一个时隙,若仍然为空闲则重复上述操作
B.忙则监听一直监听等待空闲,并再以p概率发送
C.冲突则等到下一个时间点监听并重复AB
优点:既能减少冲突(相对1-坚持CSMA),又能减少空闲时间(相对非坚持CSMA)
CD——碰撞检测 半双工网络
τ为端到端单程传播时延
1.发送数据之前和发送数据时都需要检测是否有其他计算机在传输数据
2.在通道中发送数据,若碰到其他站点发送的数据(产生冲突),则会对其产生影响(接收端可以通过此现象检测是否发生冲突)
3..最迟2τ(争用期/冲突窗口/碰撞窗口)的时间检测到自己发送的数据没和别人碰撞(只要超过2τ没检测到碰撞,则一定不发生冲突)
4.最短0的时间检测到自己发送的数据发生碰撞
5.采用截断二进制算法选择重传时机:
A.当重传次数k <= 10 时,选择 k 和10 的最小值;当k > 10时,选择k = 10
B.从0,1,2,3...2^k - 1中随机选择一个数n,重传时间为n倍的基本退避时间,即2τn
C.重传到16次时,抛弃该帧,并向高层报错
6.最小帧长 = 总线传播时延 * 数据传输速率 * 2(最短帧长为64B,未到则填充)
CA——collision avoidance 避免碰撞
CSMA / CA用于无线网(存在隐蔽站)
1.发送数据前,先检测信道是否空闲
2.空闲则发送RTS(request to send)(避解决隐蔽站),包括源地址、目的地址、数据将持续发送的时间,忙则等待
3.接收方收到RTS后,返回CTS(clear to send)(解决隐蔽站)
4.发送方接收到CTS后,预约信道(发送方告知其他站点自己需要发送多久数据)(避免碰撞的方法),并开始发送数据帧
5.接收方接收到数据后,用CRC进行确认,正确则返回ACK帧(避免碰撞)
6.发送方收到ACK帧后,开始下一个数据帧的传输,若一段时间未收到ACK帧,则重新传输(采用二进制指数退避算法确定随机延迟时间)
相同点:先听再说,边听边说
不同点:
1.CSMA/CD为有线(半双工),CSMA/CA为无线(全双工)
2.CSMA/CD检测冲突,CSMA/CA避免冲突,但两者都是有上限的重传
1.既不产生冲突,又可以占全部带宽
2.令牌:特殊的MAC控制帧,不含任何信息。用于控制信道使用,确保同一时刻只有一个结点独占信道
3.令牌循环的在各个主机中传递,并且限定持有时间(防止传输数据过大)。若有主机需要传送数据,则修改令牌标志位,并附上数据和目的主机,其他的主机在接收令牌时若不是目的主机则传递给下一个,直到传递到目的主机后,目的主机复制该数据
4.存在问题:令牌开销;等待延迟;单点故障
5.物理:星形拓扑;逻辑:环形拓扑
IEEE 802.3 CSMA/CD
IEEE 802.11 无线局域网
数据链路层分为逻辑链路控制子层LLC和介质访问控制子层MAC
LLC:负责识别网络层协议,然后对它们进行封装。靠近网络层,为网络层提供服务
MAC:负责对数据帧进行封装和处理,帧的寻址和识别,帧的接收和发送,链路的管理,帧的差错控制等。靠近物理层
1.以太网采用CSMA/CD
2.以太网标准IEEE 802.3
3.提供无连接,不可靠服务
A.无连接:发送方和接收方无需建立连接
B.不可靠:发送方无须编号,接收方无须确认,差错帧直接丢弃,差错纠正由上层进行
C.只实现无差错接收,不实现可靠传输
4.逻辑上总线,物理上星形
5.以太网MAC帧
A.对于数据进行加头(目的地址、源地址、类型)加尾(FCS)
B.类型:指出MAC的数据应该交往上层的哪个协议处理
C.数据的大小范围为46B-1500B:46B的下限是最小帧长64B - 头尾加起来18B;最大帧长为MTU = 1500B
D.FCS:校验码
6.高速以太网:支持全双工或半双工
A.100BAST-T:双绞线上传输100Mb/s基带信号的星形拓扑,仍然使用CSMA/CD协议
B.吉比特以太网:光纤或双绞线上传输,1Gb/s
MAC帧头的格式:
设A给B发送数据,A靠近AP1基站,B靠近AP2基站
地址1:接收地址RA。MAC(AP2)
地址2:发送端TA。MAC(AP1)
地址3:目的地址DA。MAC(B)
地址4:源地址SA。MAC(A)
1.将局域网内设备划分成与物理地址无关的逻辑组,每个VLAN是单独的广播域/子网(能隔离冲突域和广播域)
2.交换机上生成的不同的VLAN相互通信需要借助路由器
3.基于接口的VLAN技术:VLAN表上存的是端口地址
基于MAC的VLAN技术:VLAN表上存的是MAC地址
4.不同交换机的VLAN地址通信需要添加上VLAN标签(软件方式):在以太网MAC帧的基础上添加4字节的VLAN标签,成为802.1Q帧,该标签的后12位为VLAN标识符VID,唯一标识该以太网帧属于哪个VLAN
5.802.1Q帧只在交换机通信间使用,交换机和主机的通信(不管是发送方到交换机,还是交换机到接收端)使用的还是以太网MAC帧
广域网的通信子网采用分组交换技术
1.广域网覆盖物理层、数据链路层和网络层
局域网覆盖物理层和数据链路层
2.广域网:点对点通信
局域网:多点接入型技术,总线型
1.只支持全双工
2.封装成帧:添加帧定界符
3.透明传输:无论传输的数据是什么,都能传输过去
4.多种网络协议:封装的IP数据报可以采用多种协议
5.差错检测:错就丢弃(但不提供纠错,不用实现可靠传输)
6.最大传输单元为0 - 1500B(全双工通信,不使用CSMA/CD,因此,无须最小帧长)
7.无需进行流量控制
8.链路控制协议LCP:建立并维护数据链路连接
9.网络控制协议NCP:PPP可以支持多种网络层协议,为网络层协议建立和配置逻辑连接
1.它能够检测数据帧的源地址和目的地址的MAC地址,然后与它的查找表进行比较,若不在源地址查找表中,则将该地址加入查找表中,(自学习)并且将数据帧发送给相应的目的端口
2.若带宽为10Mb/s,拥有N个端口的交换机的总容量为N * 10 Mb/s(独占传输媒体带宽)
3.交换机隔离冲突域,不隔离广播域
1.直通式交换机:只检查目的地址(6B)就立即转发,延迟低,但可靠性低,无法支持不同速率的端口交换
2.存储转发式交换机:将帧存入高速缓存,并检查是否正确,可靠性高,可以支持不同速率的端口交换,但延迟高,
设初始状态转发表为空:
1.A给B传输数据,交换机会查找自己的转发表中是否有B的MAC地址,然后将该帧的源地址A和端接口1写入转发表,并向除接口1外的所有接口广播这个帧
2.CD接收后因为目的地址不对,直接丢弃,故只有B收到
3.转发表中写入(A,1)后,所有目的地址为A的帧都直接从接口1转发