数据链路层
概述:
节点:运行链路层协议的设备(如:交换机、路由器、主机)
链路:沿着通信路径连接相邻节点的通信信道
提供的服务:
1.封装成帧:(ppp帧、Mac帧(以太网帧))
实现:①字符计数法(容易出错):每个帧开始的那个字节表示该帧的长度(一旦其中一个帧出错其他的帧也将出错)
②字符填充法(复杂):帧的开始字段SOH(00000001)结束字段EOT(00000100)在真正的结束字段与开始字段之间的结束(EOT)与开始(SOH)字段前加上ESC(字节填充字段)(如:SOH·······ESCEOT········EOT如果中间的EOT前没有ESC则该帧就会在中间的EOT结束而将后边的字段都丢弃)
③零比特填充法(常用):在发送端,扫描整个信息字段,只要连续5个1就立即填入1个0
在接收端,收到一个帧时,先找到标志字段(01111110)确定边界,再用硬件对比特流进行扫描。发现连续5个1时,就把后边的0删除
优点:保证了透明传输,在传输的比特流中可以传送任意比特组合,而不会引起对帧边界的判断错误。
④违规编码法(常用):在曼彻斯特编码中1用“高--低”电平表示、0用“低--高”电平表示,不会出现“高--高”、“低--低”两种电平状态,所以用这两种电平来定界帧的起始和终止。
2.链路接入:点对点链路(仅有一个发送方、一个接收方)、广播链路(多个节点共享一条链路)
3.可靠交付:可以无差错的经链路层移动每一个网络层数据报(多用于易于产生高差错率的链路)
4.差错检验与纠正:奇偶校验、循环冗余检验(CRC)、海明校验
5.流量控制:控制相邻两个节点之间数据链路上的流量
原因:当发送端的发送能力大于接收端的接收能力时,如果不对发送端进行流量控制,前面来不及接收的帧可能会被后面不断发送来的帧“淹没”或“覆盖”,从而造成帧的丢失。
流量控制方法:停止等待、滑动窗口
停止等待:发送端发送一个帧后,等待应答信号到达后再发送下一帧。接收端在接收到一帧后向发送端发送应答信号;接收方发送应答信号表示可以接收下一帧,接收方不发送应答信号,则发送方应一直等待。
缺点:信道利用率低
滑动窗口:发送方在没有收到对方的ACK(确认字符)的时候可以发送多个帧
实现的位置
主体部分:网络适配器
高层链路功能:在主机CPU上的软件实现(如组装链路层寻址信息和激活控制器硬件)
差错检验与纠正技术
差错的产生:
原因:由于噪声引起
1.全局性:线路本身电气特性所产生的随机噪声(热噪声)
解决:提高信噪比
2.局部性:由外界所产生的冲击噪声
解决:编码技术
差错控制:
-
奇偶校验:(只能检查出奇数个比特位错误)
(1)奇校验:填上一个比特位后1的个数为奇数个
(2)偶校验:填上一个比特位后1的个数为偶数个
-
循环冗余检测:(由硬件实现,速度快)
接收方收到的数据:要发送的数据后边加上帧检验序列FSC(冗余码)
冗余码:(1)在原数据后加0:假设生成多项式的阶为r,则加上r个0(如:10011表示成多项式:x^4+x+1阶为4)
(2)模2除法:原数据加0后模2除除数的余数为冗余码(FSC)
接受方如何检验:接收方将数据除相同的除数,余数为0则接收,为1则丢弃。
通常对帧无差错接受:凡是接收端数据链路层接受的帧均无差错
-
海明校验:
点对点链路(广域网)
协议:PPP协议、HDLC协议
PPP协议:一种用于广域网的数据链路层协议
PPP协议的组成:
(1) 一个将 IP 数据报封装到串行链路的方法。 (2) 链路控制协议 LCP (Link Control Protocol)。 (3) 网络控制协议 NCP (Network Control Protocol)。
ppp协议应满足的需求:简单 —— 这是首要的要求。 封装成帧 —— 必须规定特殊的字符作为帧定界符。 透明性 —— 必须保证数据传输的透明性。 多种网络层协议 —— 能够在同一条物理链路上同时支持多种网络层协议。 多种类型链路 —— 能够在多种类型的链路上运行。 差错检测 —— 能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。 检测连接状态 —— 能够及时自动检测出链路是否处于正常工作状态。 最大传送单元 —— 必须对每一种类型的点对点链路设置最大传送单元 MTU 的标准默认值,促进各种实现之间的互操作性。 网络层地址协商 —— 必须提供一种机制使通信的两个网络层实体能够通过协商知道或能够配置彼此的网络层地址。 数据压缩协商 —— 必须提供一种方法来协商使用数据压缩算法。
PPP协议帧:
首部字段和尾部字段都是标志字段F,规定为0x7E
首部的地址字段A规定为0xFF,控制字段C规定为0x03
当协议字段为0x0021时,PPP帧的信息字段就是IP数据报。若为0xC021,则信息字段是PPP链路控制协议LCP的数据,而0x8021表示网络层的控制信息
尾部FCS是使用CRC的帧校验序列FCS
广播链路(局域网)
MAC协议:
1.信道划分MAC协议:
①时分多路复用(TDM):将时间划分为时间帧,并把每个时间帧划分为N个时隙
造成每个节点的传输速率都为R/Nbps(假设一个信道的传输速率为Rbps);当只有一个节点需要传输信息时时分多路复用会显得十分的糟糕
②频分多路复用(FDM):将Rbps信道划分为不同的频段(每个频段具有R/N带宽),有效避免了信息的碰撞,同样具有与时分多路复用一样的缺陷即当只有一个节点需要发送信息时也只能使用R/N的带宽而不是全部的带宽。
③码分多址(CDMA):每个节点都有一种不同的编码,利用这些编码来传输数据时可以实现多个节点共同发送数据,并且相对应的接收方仍能正确接收发送方编码的数据比特。(具有抗干扰性)(广泛应用于蜂窝电话中)
2.随机接入MAC协议:
两个理想特性:(1)当只有一个节点活跃时,该活跃节点具有Rbps的吞吐量
(2)当有M个节点活跃时,每个活跃节点的吞吐量接近R/Mbps
ALOHA和CSMA协议具备第一个而不具备第二个
①时隙ALOHA:节点只在时隙开始时传输数据,所有节点均知道时隙开始的时间。解决了信道划分协议中只有一个节点传输效率低的问题,但是时隙ALOHA的最大效率知道0.37Rbps而不是Rbps;
②ALOHA:在时隙ALOHA 的基础上去掉“节点只在时隙开始的时候传输数据”,ALOHA 的碰撞概率更大,效率也仅为时隙ALOHA的一半
③载波侦听多路访问(CSMA\CD):
两个规则:
(1)载波侦听:一个节点在传输前先听信道。如果来自另一个节点的帧正向信道上发送,节点则等待知道检测到一小段时间没有传输,然后开始传输(如果其他人正在说话,等他们说完话为止,再开口)
(2)碰撞检测:当一个传输节点在传输时一直侦听此信道。如果它检测到另一个节点正在传输干扰帧,它就停止传输,在重复“侦听---当空闲时传输”循环之前等待一段时间(如果与他人同时说话,就停止说话)
传输过程:
(1)节点侦听到信道空闲则开始传输,如果侦听到信道忙则等到信道空闲时再开始传输
(2)如果在传输过程中没有检测到碰撞,则传输完成。如果检测到碰撞,则等待一个随机的时间量返回第一步;
随机的时间间隔计算(二进制后退法):在传输一个给定帧时,在该帧经历 了一连串n次碰撞后,节点随机地从[1,2,4,----,2^n-1]中选定一个K值。对于以太网,一个节点实际等待的时间量为K*512比特时间(即发送512比特进入以太网所需时间的K倍),n能够取到的最大值在10以内。
3.轮转访问MAC协议:
(1)轮询协议:节点之一被指定为主节点,然后按照某个方向循环传输数据
优点:传输数据时可以占用全部的信道
缺点:(1)当主节点无法正常工作时,该协议无法正常工作(2)增加了轮询时延
(2)令牌传递协议:在这种协议中没有主节点,而是一种为令牌的小的特殊帧,令牌以一种固定的方式在节点中传输,持有令牌的节点可以发送数据帧
优点:避免了轮询协议中主节点瘫痪后协议无法正常工作的情况
缺点:(1)一个节点崩溃可能导致整个信道崩溃(2)某个节点在传输完后忘记释放令牌,则必须调用某些恢复步骤来使令牌返回循环中
交换局域网
MAC地址:
并不是主机或路由器拥有MAC地址,而是它们的网络适配器(即网络接口)具有链路层地址(链路层交换机不具有MAC地址)
MAC帧(以太网帧):
具有目标Mac地址与原目标Mac地址,目标Mac地址是根据帧中的目标ip地址转换而来(ARP协议)。在帧经过路由器(不同的子网)时目标地址会发生改变而经过交换机(相同的子网)则不会发生改变。
如果某适配器发送的信息想让子网中所有接收端接收则目标MAC地址应为:FF-FF-FF-FF-FF-FF
地址解析协议(ARP):
在数据帧的传输过程中需要接收端的MAC地址,而发送端想要知道接收端的MAC地址接需要ARP通过接收端的IP地址来获取MAC地址
每个主机与路由器的内存中都有一张ARP表,表内包含了IP地址与MAC地址之间的映射(只有同一子网的部分IP与MAC)
同一子网中:
某主机要想获取同一子网中某个接收端的MAC地址而该MAC地址如果没有在ARP表中,则该主机会向子网中发送一个目标地址为:FF-FF-FF-FF-FF-FF的数据帧,目标接收端或者ARP表内有目标MAC地址的主机会给发送主机响应并发送目标MAC地址
不同子网中:
发送主机先向路由器上发送数据包,路由器根据数据包中的IP地址在路由器表中找到转发的正确接口,进入下一个子网,最终转发到目的子网的路由器上,最终查找目的子网的路由器中的ARP表,找到目的主机的MAC地址,路由器适配器将数据报封装到一个新的帧中,并且发送到目的主机,在新帧中的MAC地址就是目的主机的MAC地址了。
以太网技术:
1.以太网技术向网络层提供不可靠服务
2.以太网具有很多不同的特色,具有某种令人眼花缭乱的首字母缩写字,如:10BASE-T、10BASE-2、100BASE-LX和10GBASE-T。这些以及许多其他的以太网技术已经被IEEE 802.3 CSMA/CD(Ethernet)工作组标准化了。首字母缩写字的第一部分指该标准的速率:10、100、1000或10G,分别代表10Mbps、100Mbps、1000M(1G)bps和10Gbps以太网,“BASE”指基带以太网,这意味着该物理媒体仅承载以太网流量;最后一部分代表物理媒体本身,一般而言“T”指双绞铜线
3.拓扑结构:星型、网状、总线。
现在广为流行的是基于交换机的星型拓扑,采用的是存储转发分组交换
由于现在交换机都是全双工的,这会使得一台交换机和一个节点能够在同时向对方发送帧而没有干扰。所以,在基于交换机的局域网中不会发生碰撞,因此没有必要使用MAC协议
链路层交换机:
任务:接收链路层帧并将它们转发到出链路
交换机本身对子网中的路由器和主机是透明的(看不见的):主机/路由器在传输帧的过程中并不知道交换机的存在
由于交换机具有自学习能力,所以交换机是即插即用设备
双工的:任何交换机接口都能同时发送和接收
性质:
-
消除碰撞:在使用交换机(不使用集线器)构建的局域网中,没有因碰撞而浪费的带宽。交换机缓存帧并且不会在网段上同时传输对于一个帧。交换机最大聚合带宽是该交换机所有接口速率之和。因此,交换机提供了比使用广播链路局域网高得多的性能改善。
-
异质的链路:交换机将链路彼此隔离,因此局域网中的不同链路能够以不同的速率运行并且能够在不同的媒体上运行。因此,对于原来的设备和新设备混用,交换机是理想的。
-
管理:交换机也易于网络管理
交换机转发与过滤:
过滤:是决定一个帧应该转发到某个接口还是应当将其丢弃的交换机功能
转发:是决定一个帧应该被导向那个接口,并把该帧移动到那些接口的交换机功能
转发与过滤都借助于交换机表
交换机表:(1)一个MAC地址
(2)通向该MAC地址的交换机接口
(3)表项放置在表中的时间
转发与过滤过程:
假设目的地址为DD-DD-DD-DD-DD-DD的帧从接口x到达。交换机用MAC地址DD-DD-DD-DD-DD-DD索引它的表,有3种可能的情况:
1.表中没有对于DD-DD-DD-DD-DD-DD的表项,则交换机广播该帧
2.表中有一个表项DD-DD-DD-DD-DD-DD与接口x联系起来,则路由器过滤该项
3.表中有一个表项DD-DD-DD-DD-DD-DD与接口y\neqx。交换机通过将该帧放在接口y前面的输出缓存完成转发功能
交换机的自学习:
自学习能力的实现:1)交换机表初始为空
2)对于每个接口收到的每个入帧,交换机都会将其存储在表中:①在该帧源地址字段中的MAC地址;②该帧到达的接口;③当前时间
3)如果在一段时间内(称为老化期)后,交换机没有接收到以该地址作为源地址的帧,就在表中删除这个地址
路由器:
路由器:使用网络层地址(ip)转发分组的存储转发分组交换机。与交换机的不同在于路由器是第三层的分组交换机,而交换机是第二层的分组交换机(交换机使用的是MAC地址)
网络风暴:路由器可以防范网络风暴(路由器提供了防火墙保护)而交换机则不可以
分组转发速度:因为路由器需要上升到第三层所以路由器转发分组较慢,而交换机之需要上升到第二层。
即插即用:路由器连接到主机需要人为配置ip地址
虚拟局域网:
作用:将一个较大的局域网分成了一些较小的局域网
只是局域网给用户提供的一个服务,而不是一种新型的局域网
虚拟局域网在以太网帧中插入了一个4字节的VLAN标签
VLAN标签中前两个字节总是设置成0x8100,称为IEEE802.1Q类型
后两个字节中前四位没什么作用,后面的12是该虚拟局域网VLAN标识符VID它唯一标识了802.1Q帧属于哪一个VLAN