全光网技术“宇林”
单双工与流控
在数据通信中有很多种方式,当数据传输的两方或多方建立连接时,会根据实际情况决定以何种方式进行数据传输,那么数据传输方式一般有哪些方式呢?
1、单工通信
【资料图】
指数据传输只支持数据在一个方向上传输,任何时候不能改变信号的传输方向。
2、全双工通信
全双工的系统允许二台设备间同时进行双向数据传输。一般的电话、手机就是全双工的系统,因为在讲话时同时也可以听到对方的声音。
2、半双工通信
半双工的系统允许二台设备之间的双向数据传输,但不能同时进行。因此同一时间只允许一设备传送资料,若另一设备要传送资料,需等原来传送资料的设备传送完成后再处理。它实际上是一种切换方向的单工通信。
以上三种通信方式如下图所示:
讲完以上几种通信方式后,我们再来说一说一种交换设备中常用的“流量控制”技术,一般简称“流控”。
数据在传输过程中容易出现数据丢失的现象,例如:两台计算机通过串口传输数据时,或者台式机与单片机之间进行通信时,可能由于两端计算机的处理速度不同,出现接收端的数据缓冲区已满,而发送端依然继续发送数据,则导致数据丢失。流控制的出现就是为了解决这种数据丢失的问题。
通常在全双工的工作状态下,其两端的设备都可以同时进行数据的传输,因此处于全双工的工作状态下,流控不会有特殊的变化,此时的流控会采用发送PAUSE帧进行流量控制措施。而PAUSE帧就是以太网在全双工模式下所发送的流量控制帧。
在半双工的工作状态下,因为其工作状态只能是一个方向的数据流通完毕后才可以让另一端的数据进行流通,所以使用以太网全双工模式下的流控pause帧就不能使用了。这时“流控”方式一般使用一种叫“背压”(backpressure)的技术,即根据接收方能够接收的速率来调整发送方的发送速率,在发送方的发送速率过高时,会模拟以太网发生冲突,以停止发送方发送数据。
除了发送PAUSE帧和背压的方式进行流控之外还有其他几种进行流量控制的方法:
l 节流(Throttling):即为在数据过多的情况下将其他处理不了的数据直接丢弃。
l 打包:即为将其上游的多个小包裹合并为一个大包裹发送至下游,以减少需要处理的包裹数量。
l 阻塞:即为将整个调用链的线程堵住。一般是用于整个调用链处于一个线程上使用。
以上就是数据通信中关于单双工方式及流控的相关知识,大家了解后就可以从原理上进行区分了。