数据链路层的功能是:为网络层提供服务、链路管理、帧定界、帧同步与透明传输、流量控制和差错控制。
可靠传输是通过确认和超时重传两种机制来保证可靠传输
流量控制:
1、停止等待协议:发送发每发送一帧数据都要等待接受方的应答信号才发送下一帧
理解:发送方发送数据(这时候的数据还在发送缓存中,以防止发生错误后的重传),设置计时器(稍大于数据报一个来回的时间),如果成功接受到了对方的确认帧,缓存中的数据可以扔掉,继续发送下一帧数据,如果确认帧丢失或者对方检测到数据有错直接把数据扔掉,没有给确认帧,那么在计时器时间到后,重新发送缓存中的数据,重复以上过程,直到成功发送。这种方法的效率比较低,因为在确认帧来的过程中,接收方闲着,这时候完全可以在处理后面来的数据,也就有了,后退N协议和选择重传协议。
2、后退N协议:发送方一次可发送N帧,按序接受,重传从最后一个确认的帧
理解:发送方一次可以发送N个帧,接受端的窗口为1,当发送方发送完0号帧后,可以继续发送后面的帧,这时候的帧还在发送缓存中,而且每个帧都要设置计时器。如果接受方收到了0,1,2号帧,这时候可以发送0,1,2号的确认帧,也可以只发送2号的确认帧说明前面的都成功接受,也可以用2号帧的确认帧对0,1号进行捎带确认。如果2号帧出错,则只发送1号帧的确认帧,即使成功接收到了后面5、6号帧也要丢弃掉,这时候代表接受方,期望1号之后的所有帧。这个方法的坏处在于还得重传成功传输的帧。在质量差的信道中传输的数据利用率不高。这时候就有了选择重传协议。
3、选择重传协议:发送方一次可发送N帧,可以不按序接受,指重传没有确认的帧
理解:发送方发送N个帧,哪个没有确认重传哪个,接受端在接受完全部的帧后才交给上层处理。
工作在数据链路层的设备:网桥和交换机
网桥:将两个或多个以太网通过网桥连接起来,成为一个覆盖范围更大的以太网,而原来的每个以太网就可称为一个网段。网桥工作在数据链路层的MAC子层没有流量控制功能,可以使以太网各个网段称为隔离开的碰撞域。
网桥处理数据的对象是帧,所以他是工作在数据链路层的设备,中继器、放大器处理数据的对象是信号,所以他们是工作在物理层的设备。
网络1和网络2通过网桥记性连接,如果网络1中的主机要发送数据,网桥检查数据的目的地,如果在网络1中,则直接丢弃,如果在网络2中则通过跟网络2相连接的端口转发给网络2。他们之间的转发时通过MAC地址转发的,因为网桥通过工作在数据链路层的MAC子层。帧的传播在该子网中的主机都能接收到,其它子网收不到,是因为网桥的隔离冲突域,IP报文在数据链路层也是通过MAC地址转发。因为没有目的IP的MAC地址,才有了ARP协议获取MAC地址。
如果每个网段的带宽是10Mb/s那么两个网段就是20Mb/s。因为并不是所有的主机都会用网桥,分时处理系统原理。
网桥的特点:
网桥可以进行数据链路层上的协议转换,(一般具有存储转发情况下的设备都具有不同协议的转换能力)
网桥具有路径选择功能,可分为透明网桥(选择的是不是最佳路由,生成树算法无环)和源路由网桥(选择的是最佳路由,这个最佳路由不一定是最少的路由,可能时间最短的路由)
桥接通器的主要限制是在任意时刻通常只能执行一个帧的转发操作,于是就出现了局域网交换机,又称以太网交换机。从本质上说,以太网交换机就是一个多端口的网桥,工作在数据链路层。
交换机的原理是,它检测从以太端口来的数据帧的源和目的地的MAC(介质访问层)地址,然后与系统内部的动态查找表进行比较,若数据帧的MAC地址不在查找表中,则将该地址加入查找表中,并将数据帧转发给相应的目的端口。
有两种转发方式:直通式和存储转发方式
直通式:帧在接收后只检查目的地址,几乎能马上就被转发出去,不适用速率不同的网段
存储转发方式:先将接收到的帧缓存到高速缓存器,检查数据正确性
相同点:按MAC地址转发,都能隔离冲突域,不能隔离广播域。