异步通信和同步通信

同步通信

同步通信是一种比特同步通信技术,要求发收双方具有同频同相的同步时钟信号,只需在传送报文的最前面附加特定的同步字符,使发收双方建立同步,此后便在同步时钟的控制下逐位发送/接收。
相对于同步通信,异步通信在发送字符时,所发送的字符之间的时隙可以是任意的。但是接收端必须时刻做好接收的准备(如果接收端主机的电源都没有加上,那么发送端发送字符就没有意义,因为接收端根本无法接收)。发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。异步通信的好处是通信设备简单、便宜,但传输效率较低(因为开始位和停止位的开销所占比例较大)。

没有数据发送时,传输线处于MARK状态。为了表示数据传输的开始,发送方先发送一个或两个特殊字符,该字符称为同步字符。当发送方和接收方达到同步后,就可以一个字符接一个字符地发送一大块数据,而不再需要用起始位和停止位了,这样可以明显地提高数据的传输速率。采用同步方式传送数据时,在发送过程中,收发双方还必须用一个时钟进行协调,用于确定串行传输中每一位的位置。接收数据时,接收方可利用同步字符使内部时钟与发送方保持同步,然后将同步字符后面的数据逐位移入,并转换成并行格式,供CPU读取,直至收到结束符为止。

常用的芯片有8251、8274、mc6850以及支持FREESCALE的POWERPC核的CPU。同步通信实现的硬件和软件成本较高,也是同步通信未广泛应用的原因之一。

变电站时钟同步通信技术是基于IEEE1588标准中的PTP精确时钟同步协议来进行的。
异步通信
    异步通信是一种很常用的通信方式。相对于同步通信,异步通信在发送字符时,所发送的字符之间的时隙可以是任意的,当然,接收端必须时刻做好接收的准备(如果接收端主机的电源都没有加上,那么发送端发送字符就没有意义,因为接收端根本无法接收)。发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。内部处理器在完成了相应的操作后,通过一个回调的机制,以便通知发送端发送的字符已经得到了回复。异步通信在有限信道中传输效率高,缺点是设备复杂、信道利用率较低(因为开始位和停止位的开销所占比例较大),但随着光网络的发展,这些已不是根本问题。
       异步通信也可以是以帧作为发送单位。接收端必须随时做好接收帧的准备。这时,帧的首部必须设有一些特殊的比特组合,使得接收端能够找出一帧的开始。这也称为帧定界。帧定界还包含确定帧的结束位置。这有两种方法。一种是在帧的尾部设有某种特殊的比特组合来标志帧的结束。或者在帧首部中设有帧长度的字段。需要注意的是,在异步发送帧时,并不是说发送端对帧中的每一个字符都必须加上开始位和停止位后再发送出去,而是说,发送端可以在任意时间发送一个帧,而帧与帧之间的时间间隔也可以是任意的。在一帧中的所有比特是连续发送的。发送端不需要在发送一帧之前和接收端进行协调(不需要先进行比特同步)。

      异步通信与同步通信
      异步通信与同步通信的特点
       MQ 在支持同步通讯的同时,提供了基于消息队列存储 - 转发机制的异步通讯模式,应用程序只需将消息交给 MQ,就由 MQ 负责将消息安全、可靠地发送出去,不再需要应用和人工的干预,真正实现了数据传输自动化,这一特点能够使应用程序独立于通信对方和网络的可用性。与我们常见的同步通信相比,异步通信模式有以下特点:
       通信的达成只依赖于发送方和消息中间件,接收方以及网络的意外情况不造成影响。
      因为不必实现同步握手,异步通信通常效率更高。
      因为不必等待响应,异步通信倾向于实现更短的交易处理,节省系统资源占用。
      异步通信有利于提高系统并发度,提高系统吞吐能力。
      异步通信有利于实现松散耦合的系统结构。
       与异步通信相比,同步通信想法更为简单而且更容易实现――发起方在系统中等待直到对方响应,这样可以避免复杂的发送 / 确认 / 重传机制的设计,但同时也造成了低效率和对资源占用大的缺点,同步通信目前是一种常见的廉价通信实现方式。
       需要说明的是这里谈论的同步 / 异步是底层消息传输的模式,与其最终提供的服务模式无关:同步业务服务可以通过同步通信实现,也可以通过异步通信实现。比如我们常见的电话业务,一般我们都认为是一种同步的服务,但电信公司实际实施时,如果是通过交换机,在通话双方之间建立一个电路连接,那就是一种同步通信实现;如果电信公司采用的是 IP 电话,通过网络把声音打成若干数据包在 Internet 上发送,在收话方没有感觉到的时间内再按顺序组合把语音还原出来,那就是使用的异步底层通信实现。我们进行应用方案设计时要充分意识到两种通信模式的特点,考虑各种选择的可能性和优劣。
      异步通信实现同步应用设计
      由于同步 / 异步通信有各自的特点,所以通过异步通信来实现同步应用时,有一些特殊的方法需要考虑。异步通信基础上实现同步应用,是通过若干异步消息分段实现的,以最简单的双方模式为例,A 发送给 B 一个异步消息,B 接收后完成特定处理,再返回给 B 一个异步消息,如果这个处理过程足够快,就能够实现一个请求 / 应答模式的同步应用。这种模式下,应用中 UOW 的范围,和同步应用下是有很大不同的,应用设计中要充分考虑到这种区别。
       在同步模式下,在 A 和 B 的所有操作都可以放在一个 UOW 中,通过两阶段提交协议实现数据一致;在异步模式,应用会分成几个 UOW,第一个是应用程序在本地队列管理器中的操作,第二个是两个队列管理器间的数据传输,这个 UOW 是系统完成的,对于应用是透明的,第三个 UOW 是远程应用在远程队列管理器中的操作。应用设计时要充分意识到这些区别。
        由于交易一致性控制,一个 MQ 应用中在队列中进行的改变,只在它 COMMIT 后,其他应用程序才能看到,所以在进行请求 / 应答模式的 MQ 应用程序中,请求程序发送请求消息后,要在适当的位置下 COMMIT,完成这个 UOW,然后在到应答队列里去等待对方完成 UOW 后的返回。应答程序也要与请求程序类似,也要合理地控制 UOW 的范围,使得返回消息能够恰当地被请求程序得到。
        在使用 MQ 进行要求同步通讯的程序设计时,会碰到原来可能会做单一 UOW 的应用,在 MQ 下的异步应用设计下要划分成若干个 UOW,这就涉及到如何在多 UOW 下保证数据整体的一致性。这种需求,一般可以通过合理的冲正设计来实现。



  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值