精华内容
下载资源
问答
  • 同步传输和异步传输的区别及优缺点同步传输以数据块为单位进行数据传输,数据块与数据块之间的时间间隔是固定的,每个数据块带有时序信息,接收方可以用时序信息进行校验。异步传输一般以字符为单位,接收方通过字符...

    同步传输和异步传输的区别及优缺点

    同步传输以数据块为单位进行数据传输,数据块与数据块之间的时间间隔是固定的,每个数据块带有时序信息,接收方可以用时序信息进行校验。

    异步传输一般以字符为单位,接收方通过字符起始和停止码确定接收信息,不需要与发送方按照同一时序工作。

    同步传输是一种以数据块为传输单位的数据传输方式,该方式下数据块与数据块之间的时间间隔是固定的,必须严格地规定它们的时间关系。每个数据块的头部和尾部都要附加一个特殊的字符或比特序列,标记一个数据块的开始和结束,一般还要附加一个校验序列,以便对数据块进行差错控制。

    同步传输是以同步的时钟节拍来发送数据信号的,因此在一个串行的数据流中,各信号码元之间的相对位置都是固定的(即同步的)。

    在同步传输的模式下,数据的传送是以一个数据区块为单位,因此同步传输又称为区块传输。

    在传送数据时,需先送出2个同步字符,然后再送出整批的数据。

    同步传输的比特分组要大得多。它不是独立地发送每个字符,每个字符都有自己的开始位和停止位,而是把它们组合起来一起发送。我们将这些组合称为数据帧,或简称为帧。

    数据帧的第一部分包含一组同步字符,它是一个独特的比特组合,类似于前面提到的起始位,用于通知接收方一个帧已经到达,但它同时还能确保接收方的采样速度和比特的到达速度保持一致,使收发双方进入同步。

    帧的最后一部分是一个帧结束标记。与同步字符一样,它也是一个独特的比特串,类似于前面提到的停止位,用于表示在下一帧开始之前没有别的即将到达的数据了。

    同步传输对收发两端对时间的精确度要求高。 “同步通信”的通信双方必须先建立同步,即双方的时钟要调整到同一个频率。收发双方不停地发送和接收连续的同步比特流。但这时还有两种不同的同步方式。一种是使用全网同步,用一个非常精确的主时钟对全网所有结点上的时钟进行同步。另一种是使用准同步,各结点的时钟之间允许有微小的误差,然后采用其他措施实现同步传输。

    同步传输通常要比异步传输快速得多。接收方不必对每个字符进行开始和停止的操作。一旦检测到帧同步字符,它就在接下来的数据到达时接收它们。另外,同步传输的开销也比较少。例如,一个典型的帧可能有500字节(即4000比特)的数据,其中可能只包含100比特的开销。这时,增加的比特位使传输的比特总数增加2.5%,这与异步传输中25 %的增值要小得多。随着数据帧中实际数据比特位的增加,开销比特所占的百分比将相应地减少。但是,数据比特位越长,缓存数据所需要的缓冲区也越大,这就限制了一个帧的大小。另外,帧越大,它占据传输媒体的连续时间也越长。在极端的情况下,这将导致其他用户等得太久。

    综上,介绍了同步传输,同步传输是以同步的时钟节拍来发送数据信号的,因此在一个串行的数据流中,各信号码元之间的相对位置都是固定的(即同步的)。同步传输通常要比异步传输快速得多。

    异步传输将比特分成小组进行传送,小组可以是8位的1个字符或更长。发送方可以在任何时刻发送这些比特组,而接收方从不知道它们会在什么时候到达。一个常见的例子是计算机键盘与主机的通信。按下一个字母键、数字键或特殊字符键,就发送一个8比特位的ASCII代码。键盘可以在任何时刻发送代码,这取决于用户的输入速度,内部的硬件必须能够在任何时刻接收一个键入的字符。

    异步传输是数据传输的一种方式。由于数据一般是一位接一位串行传输的,例如在传送一串字符信息时,每个字符代码由7位二进制位组成。但在一串二进制位中,每个7位又从哪一个二进制位开始算起呢?异步传输时,在传送每个数据字符之前,先发送一个叫做开始位的二进制位。当接收端收到这一信号时,就知道相继送来7位二进制位是一个字符数据。在这以后,接着再给出1位或2位二进制位,称做结束位。接收端收到结束位后,表示一个数据字符传送结束。这样,在异步传输时,每个字符是分别同步的,即字符中的每个二进制位是同步的,但字符与字符之间的间隙长度是不固定的。

    异步传输一般以字符为单位,不论所采用的字符代码长度为多少位,在发送每一字符代码时,前面均加上一个“起”信号,其长度规定为1个码元,极性为“0”,即空号的极性;字符代码后面均加上一个“止”信号,其长度为1或者2个码元,极性皆为“1”,即与信号极性相同,加上起、止信号的作用就是为了能区分串行传输的“字符”,也就是实现了串行传输收、发双方码组或字符的同步。

    使用异步串口传送一个字符的信息时,对数据格式有如下约定:规定有空闲位、起始位、数据位、奇偶校验位、停止位。

    其中各位的意义如下:

    起始位:先发出一个逻辑”0”信号,表示传输字符的开始。

    数据位:紧接着起始位之后。资料位的个数可以是4、5、6、7、8等,构成一个字符。通常采用ASCⅡ码。从最低位开始传送,靠时钟定位。

    奇偶校验位:资料位加上这一位后,使得“1”的位数应为偶数(偶校验)或奇数(奇校验),以此来校验资料传送的正确性。

    停止位:它是一个字符数据的结束标志。可以是1位、1.5位、2位的高电平。

    空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。

    波特率:是衡量数据传送速率的指针。表示每秒钟传送的二进制位数。例如资料传送速率为120字符/秒,而每一个字符为10位,则其传送的波特率为10×120=1200位/秒=1200波特。

    注:异步通信是按字符传输的,接收设备在收到起始信号之后只要在一个字符的传输时间内能和发送设备保持同步就能正确接收。下一个字符起始位的到来又使同步重新校准(依靠检测起始位来实现发送与接收方的时钟自同步的)。

    异步传输存在一个潜在的问题,即接收方并不知道数据会在什么时候到达。在它检测到数据并做出响应之前,第一个比特已经过去了。这就像有人出乎意料地从后面走上来跟你说话,而你没来得及反应过来,漏掉了最前面的几个词。因此,每次异步传输的信息都以一个起始位开头,它通知接收方数据已经到达了,这就给了接收方响应、接收和缓存数据比特的时间;在传输结束时,一个停止位表示该次传输信息的终止。按照惯例,空闲(没有传送数据)的线路实际携带着一个代表二进制1的信号,异步传输的开始位使信号变成0,其他的比特位使信号随传输的数据信息而变化。最后,停止位使信号重新变回1,该信号一直保持到下一个开始位到达。例如在键盘上数字“1”,按照8比特位的扩展ASCⅡ编码,将发送“00110001”,同时需要在8比特位的前面加一个起始位,后面一个停止位。

    异步传输的实现比较容易,由于每个信息都加上了“同步”信息,因此计时的漂移不会产生大的积累,但却产生了较多的开销。在上面的例子,每8个比特要多传送两个比特,总的传输负载就增加25%。对于数据传输量很小的低速设备来说问题不大,但对于那些数据传输量很大的高速设备来说,25%的负载增值就相当严重了。因此,异步传输常用于低速设备。

    同步传输方式中发送方和接收方的时钟是统一的、字符与字符间的传输是同步无间隔的。

    异步传输方式并不要求发送方和接收方的时钟完全一样,字符与字符间的传输是异步的。

    区别点

    1,异步传输是面向字符的传输,而同步传输是面向比特的传输。

    2,异步传输的单位是字符而同步传输的单位是帧。

    3,异步传输通过字符起始和停止码抓住再同步的机会,而同步传输则是在数据中抽取同步信息。

    4,异步传输对时序的要求较低,同步传输往往通过特定的时钟线路协调时序。

    5,异步传输相对于同步传输效率较低。

    简单形容

    同步传输就是,数据没有被对方确认收到则调用传输的函数就不返回。

    接收时,如果对方没有发送数据,则你的线程就一直等待,直到有数据了才返回,可以继续执行其他指令

    异步传输就是,你调用一个函数发送数据,马上返回,你可以继续处理其他事,

    接收时,对方的有数据来,你会接收到一个消息,或者你的相关接收函数会被调用。

    形象形容

    异步传输: 你传输吧,我去做我的事了,传输完了告诉我一声

    同步传输: 你现在传输,我要亲眼看你传输完成,才去做别的事

    所有传输介质都易受干扰和由介质本身引进的问题的影响,如电阻和信号衰减。外来干扰可以由背景噪声、大气辐射、机器甚至故障设备引起。受干扰影响的比特数随传输速率的增力而增加,因为在干扰的时帧中涉及到更多的比特。要更正这些问题,需使用检错与纠错方法。

    在奇偶校验时,各组中1的数目必须总是相同(无论奇或偶),以表示一组比特正确无误地传输。逐个字符的检查叫做VRC (垂直冗余校验)。逐块检查叫做LRC(纵向冗余校验)。在传输开始之前,两个系统的奇偶校验方法必须达成一致。有偶校验(1的数目必须为偶数)、奇校验(1的数目必须为奇数)、空号奇偶校验(校验位始终为0)和传号奇偶校验(校验位始终为1)。

    异步通信指两个互不同步的设备通过计时机制或其他技术进行数据传输。异步通信中两个字符之间的时间间隔是不固定的,而在一个字符内各位的时间间隔是固定的。基本上,发送方可以随时传输数据,而接收方必须在信息到达时准备好接收。相反,同步传输是一个精确同步的位流,其中字符的起始是由计时机制来定位的。

    在大量使用异步与同步传输的大型机/终端环境中,异步传输用于传输来自用户周期性按键的终端的字符。接收系统知道等待下一次按键,即使这会花费较多的时间。相反,同步传输用作定期传输大量信息的大型系统之间的数据链路。协议为在公用电话系统上利用慢速链路而进行了优化,因此无关位将从传输中删除,并且时钟用于隔开字符。

    在异步通信中,字符作为比特串编码,由起始位(start bit)、数据位(data bit)、奇偶校验位(parity)和停止位(stop bit)组成。这种用起始位开始,停止位结束所构成的一串信息称为帧(frame)。校验比特有时用于检错和纠错。传输的“起始一停止”模式意味着对于每个新字符,传输都重新从头开始,而消除在上次传输过程中可能出现的任意计时差异。当差异确实出现时,检错和纠错机制能够请求重传。

    在传送一个字符时,由一位低电平的起始位开始,接着传送数据位,数据位的位数为5~8。在传输时,按低位在前,高位在后的顺序传送。奇偶校验位用于检验数据传送的正确性,也可以没有,可由程序来指定。最后传送的是高电平的停止位,停止位可以是1位、1.5位或2位。停止位结束到下一个字符的起始位之间的空闲位要由高电平2来填充(只要不发送下一个字符,线路上就始终为空闲位)。

    异步通信中典型的帧格式是:1位起始位,7位(或8位)数据位,1位奇偶校验位,2位停止位。

    在异步通信中,每接收一个字符,接收方都要重新与发送方同步一次,所以接收端的同步时钟信号并不需要严格地与发送方同步,只要它们在一个字符的传输时间范围内能保持同步即可,这意味着对时钟信号漂移的要求要比同步信号低得多,硬件成本也要低的多,但是异步传送一个字符,要增加大约20%的附加信息位,所以传送效率比较低。异步通信方式简单可靠,也容易实现,故广泛地应用于各种微型机系统中。

    综上,介绍了异步传输,异步传输是数据传输的一种方式。由于数据一般是一位接一位串行传输的,在传送每个数据字符之前,先发送一个叫做开始位的二进制位。当接收端收到这一信号时,就知道相继送来7位二进制位是一个字符数据。在这以后,接着再给出1位或2位二进制位,称做结束位。接收端收到结束位后,表示一个数据字符传送结束。这样,在异步传输时,每个字符是分别同步的,即字符中的每个二进制位是同步的,但字符与字符之间的间隙长度是不固定的。

    展开全文
  • 所以,要我请你吃饭就用同步的方法,要请我吃饭就用异步的方法,这样你可以省钱。--------------------------------------------------------------------------------------------------------------------举个例子...

    所以,要我请你吃饭就用同步的方法,要请我吃饭就用异步的方法,这样你可以省钱。

    --------------------------------------------------------------------------------------------------------------------

    举个例子 打电话时同步 发消息是异步

    综述版:

    异步通信”是一种很常用的通信方式。异步通信在发送字符时,所发送的字符之间的时间间隔可以是任意的。当然,接收端必须时刻做好接收的准备(如果接收端主机的电源都没有加上,那么发送端发送字符就没有意义,因为接收端根本无法接收)。发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。异步通信的好处是通信设备简单、便宜,但传输效率较低(因为开始位和停止位的开销所占比例较大)。

    异步通信也可以是以帧作为发送的单位。接收端必须随时做好接收帧的准备。这是,帧的首部必须设有一些特殊的比特组合,使得接收端能够找出一帧的开始。这也称为帧定界。帧定界还包含确定帧的结束位置。这有两种方法。一种是在帧的尾部设有某种特殊的比特组合来标志帧的结束。或者在帧首部中设有帧长度的字段。需要注意的是,在异步发送帧时,并不是说发送端对帧中的每一个字符都必须加上开始位和停止位后再发送出去,而是说,发送端可以在任意时间发送一个帧,而帧与帧之间的时间间隔也可以是任意的。在一帧中的所有比特是连续发送的。发送端不需要在发送一帧之前和接收端进行协调(不需要先进行比特同步)。 每个字符开始发送的时间可以是任意的t0 0 1 1 0 1 1 0起始位结束位t每个帧开始发送的时间可以是任意的以字符为单位发送以帧为单位发送帧开始帧结束

    “同步通信”的通信双方必须先建立同步,即双方的时钟要调整到同一个频率。收发双方不停地发送和接收连续的同步比特流。但这时还有两种不同的同步方式。一种是使用全网同步,用一个非常精确的主时钟对全网所有结点上的时钟进行同步。另一种是使用准同步,各结点的时钟之间允许有微小的误差,然后采用其他措施实现同步传输。

    串口进行通信的方式有两种:同步通信方式和异步通信方式。同步通信方式要求通信双方以相同的时钟频率进行,而且准确协调,通过共享一个单个时钟或定时脉冲源保证发送方和接收方的准确同步,效率较高;异步通信方式不要求双方同步,收发方可采用各自的时钟源,双方遵循异步的通信协议,以字符为数据传输单位,发送方传送字符的时间间隔不确定,发送效率比同步传送效率低。

    具体

    专业版:

    串行通信可以分为两种类型:同步通信、异步通信。

    1.异步通信的特点及信息帧格式:

    以起止式异步协议为例,下图显示的是起止式一帧数据的格式:

    20030414_105-b-1.gif

    图1

    起止式异步通信的特点是:一个字符一个字符地传输,每个字符一位一位地传输,并且传输一个字符时,总是以“起始位”开始,以“停止位”结束,字符之间没有固定的时间间隔要求。每一个字符的前面都有一位起始位(低电平,逻辑值),字符本身由5-7位数据位组成,接着字符后面是一位校验位(也可以没有校验位),最后是一位或一位半或二位停止位,停止位后面是不定长的空闲位。停止位和空闲位都规定为高电平(逻辑值1),这样就保证起始位开始处一定有一个下跳沿。

    从图中可看出,这种格式是靠起始位和停止位来实现字符的界定或同步的,故称为起止式协议。

    异步通信可以采用正逻辑或负逻辑,正负逻辑的表示如下表所示:逻辑0逻辑1

    正逻辑低电平高电平

    负逻辑高电平低电平

    异步通信的信息格式如下边的表所示

    起始位逻辑01位

    数据位逻辑0或15位、6位、7位、8位

    校验位逻辑0或11位或无

    停止位逻辑11位,1.5位或2位

    空闲位逻辑1任意数量

    注:表中位数的本质含义是信号出现的时间,故可有分数位,如1.5。

    例:传送8位数据45H(0100,0101B),奇校验,1个停止位,则信号线上的波形象图2所示那样:异步通信的速率:若9600bps,每字符8位,1起始,1停止,无奇偶,则实际每字符传送10位,则960字符/秒。

    20030414_105-b-2.gif

    图2

    2.异步通信的接收过程

    接收端以“接收时钟”和“波特率因子”决定一位的时间长度。下面以波特率因子等于16(接收时钟每16个时钟周期,使接收移位寄存器移位一次)、正逻辑为例说明,如图3所示。

    20030414_105-b-3.gif

    图3

    (1)开始通信时,信号线为空闲(逻辑1),当检测到由1到0的跳变时,开始对“接收时钟”计数。

    (2)当计到8个时钟时,对输入信号进行检测,若仍为低电平,则确认这是“起始位”B,而不是干扰信号。

    (3)接收端检测到起始位后,隔16个接收时钟,对输入信号检测一次,把对应的值作为D0位数据。若为逻辑1, 作为数据位1;若为逻辑0,作为数据位0。

    (4)再隔16个接收时钟,对输入信号检测一次,把对应的值作为D1位数据。….,直到全部数据位都输入。

    (5)检测校验位P(如果有的话)。

    (6)接收到规定的数据位个数和校验位后,通信接口电路希望收到停止位S(逻辑1),若此时未收到逻辑1,说明出现了错误,在状态寄存器中置“帧错误”标志。若没有错误,对全部数据位进行奇偶校验,无校验错时,把数据位从移位寄存器中送数据输入寄存器。若校验错,在状态寄存器中置奇偶错标志。

    (7)本幀信息全部接收完,把线路上出现的高电平作为空闲位。

    (8)当信号再次变为低时,开始进入下一幀的检测。

    3、异步通信的发送过程

    发送端以“发送时钟”和“波特率因子”决定一位的时间长度。

    (1)当初始化后,或者没有信息需要发送时,发送端输出逻辑1,即空闲位,空闲位可以有任意数量。

    (2)当需要发送时,发送端首先输出逻辑0,作为起始位。

    (3)接着,发送端首先发送D0位,直到各数据位发送完。

    (4)如果需要的话,发送端输出校验位。

    (5)最后,发送端输出停止位(逻辑1)。

    (6)如果没有信息需要发送时,发送端输出逻辑1,即空闲位,空闲位可以有任意数量。如果还有信息需要发送,转入第(2)步。

    对于以上发送、接收过程应注意以下几点:

    (1)接收端总是在每个字符的头部(即起始位)进行一次重新定位,因此发送端可以在字符之间插入不等长的空闲位,不影响接收端的接收。

    (2)发送端的发送时钟和接收端的接收时钟,其频率允许有一定差异,当频率差异在一定范围内,不会引起接收端检测错位,能够正确接收。并且这种频率差异不会因多个字符的连续接收而造成误差累计(因为每个字符的开始(起始位处)接收方均重新定位)。只有当发送时钟和接收时钟频率差异太大,引起接收端采样错位,才造成接收错误。

    (3)起始位、校验位、停止位、空闲位的信号,由“发送移位寄存器”自动插入。在接收方,“接收移位寄存器”接收到一帧完整信息(起始、数据、校验、停止)后,仅把数据的各位送至“数据输入寄存器”,即CPU从“数据输入寄存器”中读得的信息,只是有效数字,不包含起始位、校验位、停止位信息。

    1、同步通信方式的特点:

    采用同步通信时,将许多字符组成一个信息组,这样,字符可以一个接一个地传输,但是,在每组信息(通常称为帧)的开始要加上同步字符,在没有信息要传输时,要填上空字符,因为同步传输不允许有间隙。在同步传输过程中,一个字符可以对应5~8位。当然,对同一个传输过程,所有字符对应同样的数位,比如说n位。这样,传输时,按每n位划分为一个时间片,发送端在一个时间片中发送一个字符,接收端则在一个时间片中接收一个字符。

    同步传输时,一个信息帧中包含许多字符,每个信息帧用同步字符作为开始,一般将同步字符和空字符用同一个代码。在整个系统中,由一个统一的时钟控制发送端的发送和空字符用同一个代码。接收端当然是应该能识别同步字符的,当检测到有一串数位和同步字符相匹配时,就认为开始一个信息帧,于是,把此后的数位作为实际传输信息来处理。

    2、面向字符的同步协议(IBM的BSC协议)

    20030414_106-b-1.gif

    该协议规定了10个特殊字符(称为控制字符)作为信息传输的标志。其格式为

    SYN SOH 标题 STX 数据块 ETB/ETX 块校验

    SYN:同步字符(Synchronous character),每帧可加1个(单同步)或2个(双同步)同步字符。

    SOH:标题开始(Start of Header)。

    标题:Header,包含源地址(发送方地址)、目的地址(接收方地址)、路由指示。

    STX:正文开始(Start of Text)。

    数据块:正文(Text),由多个字符组成。

    ETB:块传输结束(end of transmission block), 标识本数据块结束。

    ETX:全文结束(end of text),(全文分为若干块传输)。

    块校验:对从SOH开始,直到ETB/ETX字段的检验码。

    3、面向bit的同步协议(ISO的HDLC)

    20030414_106-b-2.gif

    一帧信息可以是任意位,用位组合标识帧的开始和结束。 帧格式为:

    F场 A场 C场 I场 FC场 F场

    F场:标志场;作为一帧的开始和结束,标志字符为8位,01111110。

    A场:地址场,规定接收方地址,可为8的整倍位。接收方检查每个地址字节的第1位,如果为"0",则后边跟着另一

    个地址字节。若为"1",则该字节为最后一个地址字节。

    C场:控制场。指示信息场的类型,8位或16位。若第1字节的第1位为0,则还有第2个字节也是控制场。

    I场:信息场。要传送的数据。

    FC场:帧校验场。16位循环冗余校验码CRC。除F场和自动插入的"0"位外,均参加CRC计算。

    4、同步通信的"0位插入和删除技术"

    在同步通信中,一帧信息以一个(或几个)特殊字符开始,例如,F场=01111110B。

    但在信息帧的其他位置,完全可能出现这些特殊字符,为了避免接收方把这些特殊字符误认为帧的开始,发送方采用“0位插入技术",相应地,接收方采用"0位删除技术"。

    发送方的0位插入:除了起始字符外,当连续出现5个1时,发送方自动插入一个0。使得在整个信息帧中,只有起始字符含有连续的6个1。

    接收方的"0位删除技术":接收方收到连续6个1,作为帧的起始,把连续出现5个1后的0自动删除。

    5、同步通信的"字节填充技术"

    设需要传送的原始信息帧为:

    SOT DATA EOT

    节填充技术采用字符替换方式,使信息帧的DATA中不出现起始字符SOT和结束字符EOT。

    设按下表方式进行替换:

    DATA中的原字符   替换为

    SOT        ESC X

    EOT         ESC Y

    ESC         ESC Z

    其中,ESC=1AH,X、Y、Z可指定为任意字符(除SOT、EOT、ESC外)。

    发送方按约定方式对需要发送的原始帧进行替换,并把替换后的新的帧发送给接收方。例如图所示:

    20030414_106-b-3.gif

    接收方按约定方式进行相反替换,可以获得原始帧信息。

    6、异步通信和同步通信的比较

    (1)异步通信简单,双方时钟可允许一定误差。同步通信较复杂,双方时钟的允许误差较小。

    (2)异步通信只适用于点 点,同步通信可用于点 多。

    (3)通信效率:异步通信低,同步通信高。

    posted on 2006-12-18 23:43 junky 阅读(10599) 评论(0)  编辑  收藏 所属分类: 计算机科学,编程思想

    展开全文
  • 同步请求和异步请求的区别先解释一下同步和异步的概念同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯...

    同步请求和异步请求的区别

    先解释一下同步和异步的概念

    同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。

    异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。

    同步通信方式与异步通信的概念

    同步通信方式要求通信双方以相同的时钟频率进行,而且准确协调,通过共享一个单个时钟或定时脉冲源保证发送方和接收方的准确同步,效率较高;

    异步通信方式不要求双方同步,收发方可采用各自的时钟源,双方遵循异步的通信协议,以字符为数据传输单位,发送方传送字符的时间间隔不确定,发送效率比同步传送效率低。

    使用者用于调用WEB服务的通信选择:同步或异步。

    使用者可以同步或异步实现服务调用。从使用者的观点来看,这两种方式的不同之处在于:同步——使用者通过单个线程调用服务;该线程发送请求,在服务运行时阻塞,并且等待响应。

    异步——使用者通过两个线程调用服务;一个线程发送请求,而另一个单独的线程接收响应。

    术语同步 和异步 经常与顺序 和并发 混淆了。后面的这两个术语与执行单独的任务必须遵循的顺序有关,而同步和异步 与线程执行单个任务(如调用单个服务)的方式有关。理解同步和异步调用之间的不同的一种很好的方法是考虑崩溃恢复的后果:同步——如果使用者在服务运行的过程中阻塞时崩溃了,当它重新启动时,将无法重新连接到正在进行的调用,所以响应丢失了。使用者必须重复调用过程,并且期望这次不会崩溃。

    异步——如果使用者在发送了请求之后等待响应时崩溃了,当它重新启动时,可以继续等待响应,所以响应不会丢失。

    崩溃恢复不是同步和异步调用之间的唯一不同,但是如果您尝试确定某个调用采用哪一种方式,请考虑每一种调用如何处理崩溃恢复,这通常可以给您一个很好的答案.

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

    在 Java Web 开发中使用 Ajax 时,重要的是完整理解同步 和异步 通信模型的区别(请参阅 参考资料)。对异步通信模型支持的缺乏,会对客户端开发、与 Web 框架的集成、标记库的使用、IDE 的使用以及线程的行为有影响。

    在同步请求/响应通信模型中,总是浏览器(与 Web 服务器、应用服务器或 Web 应用程序相对)发起请求(通过 Web 用户)。接着,Web 服务器、应用服务器或 Web 应用程序响应进入的请求。在处理同步请求/响应对期间,用户不能继续使用浏览器。

    在异步请求/响应通信模型中,浏览器(通过 Web 用户)到 Web 服务器、应用服务器或 Web 应用程序的通信(以及反过来)是解耦的。在异步请求/响应对的处理中,Web 用户在当前异步请求被处理时还可以继续使用浏览器。一旦异步请求处理完成,异步响应就被通信(从 Web 服务器、应用服务器或 Web 应用程序)回客户机页面。典型情况下,在这个过程中,调用对 Web 用户没有影响;他们不需要等候响应。

    展开全文
  • 请求数据,等待服务响应,服务器把处理结果返回给你,这是完整的同步接口实例,但是也有写情况下也需要异步接口,比如当用户请求的结果比较慢,客户端又没有耐心等待他的返回。这时候 异步接...

    同步接口

    指发送一个请求,需要等待返回,然后才能够发送下一个请求,有个等待过程,如果超过超时限制会返回超时。

    异步接口

    指发送一个请求,不需要等待返回,随时可以再发送下一个请求,即不需要等待。

    通常情况下,我们使用的都是同步接口。请求数据,等待服务响应,服务器把处理结果返回给你,这是完整的同步接口实例,但是也有写情况下也需要异步接口,比如当用户请求的结果比较慢,客户端又没有耐心等待他的返回。这时候 异步接口就显得很有优势。

    一般异步接口会由两步分组成1.同步返回 2异步通知

    比较特色的例子就是支付宝支付接口,当你发起支付的时候,支付宝系统收到你的结果,通知你。

    支付成功后,异步接口确认处理完成。

    在php中,异步接口的实现如下

    1.客户端页面采用AJAX技术请求服务器

    优点:最简单,也最快,就是在返回给客户端的HTML代码中,嵌入AJAX调用,或者,嵌入一个img标签,src指向要执行的耗时脚本。

    缺点:一般来说Ajax都应该在onLoad以后触发,也就是说,用户点开页面后,就关闭,那就不会触发我们的后台脚本了。

    而使用img标签的话,这种方式不能称为严格意义上的异步执行。用户浏览器会长时间等待php脚本的执行完成,也就是用户浏览器的状态栏一直显示还在load。

    当然,还可以使用其他的类似原理的方法,比如script标签等等。

    2.popen()函数

    该函数打开一个指向进程的管道,该进程由派生给定的 command 命令执行而产生。打开一个指向进程的管道,该进程由派生给定的 command 命令执行而产生。

    所以可以通过调用它,但忽略它的输出。使用代码如下:

    pclose(popen("/home/xinchen/backend.php &", 'r'));

    优点:避免了第一个方法的缺点,并且也很快。

    缺点:这种方法不能通过HTTP协议请求另外的一个WebService,只能执行本地的脚本文件。并且只能单向打开,无法穿大量参数给被调用脚本。并且如果,访问量很高的时候,会产生大量的进程。如果使用到了外部资源,还要自己考虑竞争。

    3.CURL扩展

    $ch = curl_init();

    $curl_opt = array(CURLOPT_URL, 'http://www.example.com/backend.php',

    CURLOPT_RETURNTRANSFER, 1,

    CURLOPT_TIMEOUT, 1,);

    curl_setopt_array($ch, $curl_opt);

    curl_exec($ch);

    curl_close($ch);

    缺点:如你问题中描述的一样,由于使用CURL需要设置CUROPT_TIMEOUT为1(最小为1,郁闷)。也就是说,客户端至少必须等待1秒钟。

    4.fscokopen()函数

    fsockopen支持socket编程,可以使用fsockopen实现邮件发送等socket程序等等,使用fcockopen需要自己手动拼接出header部分

    可以参考: http://cn.php.net/fsockopen/

    使用示例如下:

    $fp = fsockopen("www.34ways.com", 80, $errno, $errstr, 30);

    if (!$fp) {

    echo "$errstr ($errno)
    \n";

    } else {

    $out = "GET /index.php / HTTP/1.1\r\n";

    $out .= "Host: www.34ways.com\r\n";

    $out .= "Connection: Close\r\n\r\n";

    fwrite($fp, $out);

    /*忽略执行结果

    while (!feof($fp)) {

    echo fgets($fp, 128);

    }*/

    fclose($fp);

    }

    缺点:fscokopen的问题和popen 一样,并发非常多时会产生很多子进程,当达到apache的连接限制数时,就会挂掉,我问题已经说了这种情况。

    5:其他方式

    比如tcp,udp,mqtt等方式。

    mqtt:直接发布消息,连接数一般都很大,能满足很多需求。发布速度快,比较稳定。当订阅收到消息后会自动处理。

    展开全文
  • 先解释一下同步和异步的概念同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。 异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。同步通信方式与异步...
  • 同步请求和异步请求的区别并发先解释一下同步和异步的概念同步是指:发送方发出数据后,等接收方发回响应之后才发下一个数据包的通信方式。异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的...
  • 同步和异步 同步:在主程序中执行,会阻止后续代码的运行,是通过返回值来获取结果 异步: 在一个独立的线程执行,不会阻止后续代码的运行,是通过回调函数来获取结果 文件操作 所有操作前都要先引入文件fs模块 ...
  • 分析计算机网络中同步和异步的概念
  • 同步和异步

    2021-03-20 19:33:37
    那么这里说的同步和异步到底是什么呢?如果你真的不懂,我希望你认真读完这篇文章。其实我个人觉得js官方的文档在使用两个词的时候并不准确,包括很多其他词汇,都只是听起来高深,但实际应用好像跟这些词没半毛钱...
  • PPP与HDLC 同步传输与异步传输

    千次阅读 2021-03-10 12:42:20
    HDLC(high-level data link control)高级数据链路控制协议 ppp(point-to-pint protocol)点对点通信协议 可以实现可靠传输 简单:不提供可靠传输 如今随着技术的发展,数据...
  • C# OPC DA 协议同步异步读取数据,支持局域网访问其他OPC server,详细见图片id=637263739441& id=637263739441&
  • 真逗,还有这样设计 TCP 的吗? PROTOCOL,一定要设计 PROTOCOL。...你发送几次,就应该返回几次包。...每个包的协议结构都应该符合预期,否则就是 Exception,就应该 close 重新 connect。######对哒~...
  • 同步调用和异步调用

    2021-01-14 11:44:53
    教科书《C#编程》第八章的引言这样写道:程序是为完成特定任务,用户某种语言编写的一组指令的集合,它是一段静态的代码,而进程是程序的一次执行的过程,是系统进行调度资源分配的一个独立的单元。先弄清楚进程...
  • 异步连接 连接池:同步连接+线程池 同步连接——阻塞IO 优点:代码书写同步,业务逻辑没割裂 缺点:阻塞直到Redis返回结果,效率低,需要多线程提升效率 异步连接——非阻塞IO 优点:不用阻塞当前线程,用回调...
  • 总得来说,同步异步出现在以下几个领域:1 计算机网络。数据通信技术中有同步通信与异步通信。同步通信简单的说就是你在发送数据时候我必须同时接受。这个过程有精确的时钟控制。而异步通信是你在发数据时候必须加上...
  • 2015-05-12 06:30:01阅读( 4 )通俗版:举个例子:普通B/S模式(同步)AJAX技术(异步)同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事异步: 请求通过事件触发->服务器处理...
  • 串口 同步和异步 理解 https://blog.csdn.net/cs74184235/article/details/48438727 本文主要三大块:一,串口同步和异步在底层通信上的区别(这部分点到为止,不是主要探讨内容,有个基本理解即可)。 二,串口...
  • 客户端利用XMLHTTP发送请求得到服务端应答数据,并用Javascript操作DOM最终更新页面-又称无刷新更新页面,有代替传统...XMLHttpRequest提供了两个方法opensend。open方法用于初始化XMLHttpRequest对象、指示请求...
  • (2)握手协议 (3)异步FIFO . . 2.一个简单的握手信号 使用握手信号“xreq”“yack”,“系统x”将数据发送给“系统y”。下面是使用握手信号传输数据的例子。 发送器“系统x”将数据放在数据总线上并发出...
  • C# OPC DA 协议同步异步读取数据,支持局域网访问其 他OPC server
  • 其中原始套接字允许对底层协议直接访问,一般用于检验新协议或者新设备问题,很少使用。套接字编程原理:延续文件作用思想,打开-读写-关闭的模式。C/S编程模式如下:服务器端:打开通信通道,告诉本地机器,愿意在...
  • NAND Flash的同步异步

    2021-06-11 09:02:58
    同步异步SDR与DDRSyncAsyncONFIToggle闪存的同步异步 SDR与DDR     SDR(single data rate),写数据使用上升沿或下降沿来触发。因为只用上升沿或下降沿,对信号的准确性要求较低。  ...
  • (2)握手协议 (3)异步FIFO . . 2.一个复杂的握手信号 如果频率较高的时钟域A中的信号D1 要传到频率较低的时钟域B,但是D1只有一个时钟脉冲宽度(1T),clkb 就有几率采不到D1了,如图1。 因此只有当D1 在很长一...
  • 异步共识

    2021-04-22 19:29:38
    考虑将异步共识(小飞象)融入系统中(1)什么是异步共识,与同步、半同步的区别 (2)异步共识的优缺点,什么情况下适合使用异步共识 异步共识 1、什么是异步共识 异步共识是指在共识协议的设计中,不对...
  • 首先我们要明确的是,同步和异步都是针对两个或者两个以上的事物来说的。比如当我们在网上购物看中一件物品,然后去浏览该商品详情的时候,首先页面会先发送一个请求,后台服务器查询对应商品的相关数据,然后前端...
  • HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件...
  • 1.同步和异步 同步:在主线程中执行,会阻止后续代码的执行,是通过返回值获取结果 异步:在一个独立的线程执行,不会阻止后续代码的执行,是通过回调函数获取结果 2.文件系统(fs) (1)查看文件状态 statSync...
  • 串口通信基本概念(一)——串行与并行通信,同步异步通信 一、串口通信简介 串口通信,顾名思义也就是利用串行接口进行通信。串行接口指串口按位(bit)发送接收字节。尽管比按字节(byte)传输的并行通信慢,...
  • FPGA零基础学习:在FPGA中,同步信号、异步信号亚稳态的理解 叁芯智能科技-郝旭帅团队打造“FPGA 设计与研发”学习系列, 可以让设计者从“小白”到“入门”再到“精通”。本系列从基础的数字电路为起点,避免...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 159,699
精华内容 63,879
关键字:

同步协议和异步协议