网络传输的两种方式——同步传输和异步传输的区别[通俗易懂]

网络传输的两种方式——同步传输和异步传输的区别[通俗易懂]在网络通信过程中,通信双方要交换数据,需要高度的协同工作。为了正确的解释信号,接收方必须确切地知道信号应当何时接收和处理,因此定时是至关重要的。在计算机网络中,定时的因素称为位同步。同步是要接收方按照发送方发送的每个位的起止时刻和速率来接收数据,否则会产生误差。通常可以采用同步或异步的传输方式对位进行同步处理。1.异步传输(AsynchronousTransmission):异步传输…

大家好,又见面了,我是你们的朋友全栈君。

在网络通信过程中,通信双方要交换数据,需要高度的协同工作。为了正确的解释信号,接收方必须确切地知道信号应当何时接收和处理,因此定时是至关重要的。
在计算机网络中,定时的因素称为位同步。同步是要接收方按照发送方发送的每个位的起止时刻和速率来接收数据,否则会产生误差。

通常可以采用同步或异步的传输方式对位进行同步处理。

1. 异步传输(Asynchronous Transmission):异步传输模式(Asynchronous Transfer Mode,缩略语为ATM)
异步传输一般以字符为单位,
起始位:先发出一个逻辑”0”信号,表示传输字符的开始。
空闲位:处于逻辑“1”状态,表示当前线路上没有资料传送。

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

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

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

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

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

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

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

另外,帧越大,它占据传输媒体的连续时间也越长。在极端的情况下,这将导致其他用户等得太久。

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

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

 同步与异步传输的区别

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

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

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

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

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

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

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

   异步传输就是,你调用一个函数发送数据,马上返回,你可以继续处理其他事,  接收时,对方的有数据来,你会接收到一个消息,或者你的相关接收函数会被调用。
形象点说

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

  同步传输: 你现在传输,我要亲眼看你传输完成,才去做别的事 用于异步通信的连接在OSI(开放系统互连)参考模型的物理层中被定义。

“异步通信”是一种很常用的通信方式。

异步通信在发送字符时,所发送的字符之间的时间间隔可以是任意的。当然,接收端必须时刻做好接收的准备(如果接收端主机的电源都没有加上,那么发送端发送字符就没有意义,因为接收端根本无法接收)。发送端可以在任意时刻开始发送字符,因此必须在每一个字符的开始和结束的地方加上标志,即加上开始位和停止位,以便使接收端能够正确地将每一个字符接收下来。

异步通信的好处是通信设备简单、便宜,但传输效率较低(因为开始位和停止位的开销所占比例较大)

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

位同步:

要求接收端根据发送端发送数据的起止时间和时钟频率,来校正自己的时间基准和时钟频率,这个过程叫位同步。可见,位同步的目的是使接收端接收的每一位信息都与发送端保持同步。
——————— 
作者:THISISPAN
来源:CSDN 
原文:https://blog.csdn.net/THISISPAN/article/details/7481127
版权声明:本文为博主原创文章,转载请附上博文链接!

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

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

    更加形象一点的解释:

   同步:比如我叫你去上课,如果你没有听到,我就在这一只叫你,知道你听到为止

   异步:我叫你去上课,然后我就直接去上课了,你或者没听到或者过一会再去上课或者立刻去上课

   至于官方的解释就不在多说了,到处都能找到,上边是自己的一点理解,希望会对大家有帮助!
--------------------- 
作者:u014180504 
来源:CSDN 
原文:https://blog.csdn.net/u014180504/article/details/47102643 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

 PS1: 两者之间区别重要是异步不需要等待回应,传递完数据即完成。(2年前#3楼)

PS2: 阻塞是指客户端向服务器端发起请求,每次只能有一个连接被占用,其余连接在当前线程没有处理完之前都要等待。反之亦然。 非阻塞也容易理解,一个线程可以负载多个连接,新来的客户端可以不用等待。 同步传输属于前者,同步传输的过程简单说就是发出一个请求,然后就是无限等待反馈,没有得到反馈就一直等待下去,这样就可能会遇到这种情况,“假死”现象,其实大部分时候并没有真正死机,而是线程一直在等待,我们可以将同步传输想成一个比较固执的人,非要等到一个结果才肯罢休! 而异步传输就不同了,他是一个随遇而安的人,没有结果就算了!异步传输就不会出现假死现象,因为异步传输是发送完请求之后就直接发送另一个请求了去了,不会等待,所以是非阻塞的 个人理解,希望会对你有帮助(3年前#2楼)

 

网络传输的两种方式——同步传输和异步传输的区别[通俗易懂]
解析:

1、不管是同步还是异步,字符的发送时间和接受时间要一样。如一个字符发送为1秒,接受也需要为1秒(小于一秒的话,利用软件延时)

2、同步异步最大的不同是:异步传输时,间隙可以不同步。比如,帧1传输完后 隔5秒传输帧2.间隙为5秒。再接受方,接受完帧1后,可以隔10秒再开始接受帧2. 而同步传输,间隙也必须一致。
——————— 
作者:云上笛暮 
来源:CSDN 
原文:https://blog.csdn.net/pengpengjy/article/details/74726349 
版权声明:本文为博主原创文章,转载请附上博文链接!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125317.html原文链接:https://javaforall.net

(2)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • jQuery EasyUI+ashx实现数据库的CIUD操作

    jQuery EasyUI+ashx实现数据库的CIUD操作对上一个小项目做一个回顾总结,涉及到了jQueryEasyUI+ashx实现数据库的CIUD操作,和大家分享一下。基本思路是用easyui做前端,ashx做后端,中间使用json格式交换数据,其中json主要使用Newtonsoft.Json来序列化和反序列化,为简单起见,后端没有分层,数据都是靠拼接sql,使用一个简单封装的DBHelper来时间数据库的操作。1、数据库表tb_Provid

    2025年6月14日
    3
  • Haar特征提取算法的实现

    Haar特征提取算法的实现自己动手 丰衣食足 系列 nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp Haar 特征是一种很早就被提出的图像特征提取算法 后面还经过了几次改进 Haar 特征能够很好地运用于人脸识别技术 当然很多目标检测技术中对目标图像的特征提取也可以使用 Haar 特征 当我们使用 opencv 自带的 cascade 分类器时可以选择 Haar 特征作为训练样本数据的特征描述子 然后将特征描述子作为样本数据送入 cascade 分类器中 就可以通过 Adab

    2025年7月10日
    4
  • uc/os-II的内存改进与实现TLSF算法的详解,移植实现(二)[通俗易懂]

    uc/os-II的内存改进与实现TLSF算法的详解,移植实现(二)[通俗易懂]上一节讲到了TLSF的数据结构,下面继续哈。TLSF用两个层次的分类对不同尺寸的内存块进行分类。第一层次的类别目录为2n,n为4,5,……,31的整数,称为FLI(First-levelSegregatedFit)。每一个FLI类别又根据第二层的SLI细分为2SLI个子类别。第二层的每个类别,都对应一条属于该类别尺寸范围内的内存块链表。为了加快分配与合并内存块的速度,链表是不排序的。所有的

    2022年6月24日
    34
  • 263企业邮箱在foxmail上的成功设置(smtpwcom/popwcom.xxoo.com)

    263企业邮箱在foxmail上的成功设置(smtpwcom/popwcom.xxoo.com)263企业邮箱在foxmail上设置了好几天,终于成功了!长话短说,我使用的263邮箱没有以@263.com结尾的(化名@xxoo.com结尾),设置时不管使用smtp/pop.xxoo.com还是使用smtpcom/popcom.xxoo.com都没用,后来中间加个w就有用

    2022年7月17日
    37
  • contemptible_bank conflict

    contemptible_bank conflict本作品采用知识共享署名-非商业性使用-相同方式共享4.0国际许可协议进行许可。本作品(李兆龙博文,由李兆龙创作),由李兆龙确认,转载请注明版权。

    2022年9月21日
    0
  • adfs是什么_培训与开发的概念

    adfs是什么_培训与开发的概念(如您转载本文,必须标明本文作者及出处。如有任何疑问请与我联系me@nap7.com)ADFS相关开发技术的中文资料相对匮乏,之前在弄这个东西的时候搞的比较辛苦,因此总结此文档,以解后人之忧。本文会首先介绍与联合身份验证有关的概念及相关的系统设计意图,随后会对ADFS联合身份验证的配置过程、结构及处理流程进行阐述。然后会基于已有的系统提出一个支持多ADFS联合身份验证的改进实例…

    2025年7月14日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号