同步异步1:有线网络中的同步异步
2016-02-19 01:23
489 查看
有线网络中存在同步和异步的差别,当时学习的时候这里并不是特别的清晰。目前觉得《深入理解计算机网络》这本书对这个部分的解析还是可以的:
首先同步和异步是指的物理层的属性,同时该同步和异步也会MAC层的封装造成影响(实际上MAC层协议也是针对物理层属性进行设计的),比如在HDLC封装的情况下,物理层一定是同步链路。
在该书中,对同步和异步的区别简单而言,一个是从帧的角度进行数据传输,而另外一个是从“编码字符”进行传输的,一次只传输一个字符,该字符有可能是ASCII编码,也有可能是unicode编码。
同步传输的基本单元是帧,如果从这个层面上而言,当前网络大部分都是基于同步网络的。相对于异步传输,同步传输的效率会高很多,尤其是数据块的长度越长的时候,其效率越高。比如巨帧就是为了效率而扩展数据块的。从直观上来看,这里所述的同步帧的格式,也是当前主流的一些二层帧格式的框架,比如802.3的帧,或者802.11的帧。一个同步帧由同步字符,数据块,校验字符,与结束字符组成,第一个同步字符,从802.3来看就是Preamble部分,用来找SFD的,也就是帧同步。802.11里面也存在类似的部分,比如802.11b的PLCP
preamble,或者802.11 a/g中间的preamble中的STF字段(其中T0~T7),这一块是用来做帧同步的。数据块就是用来放数据的,一般就是对应的MPDU。然后校验字符,一般就是FCS部分。最后一个部分目前理解不深,结束字符。当前接收帧的过程不确定是数个数的方法还是找结尾的方法,因为一般的帧头部都是按照TLV结构,即有了length之后,直接数多少个Bit看数据帧有没有接收完即可,不一定要采用固定结尾的方法。尤其在802.11中,该数据帧的length部分既出现在MAC以及上层中,也在PLCP部分也有。在802.11接收过程中,首先接收物理层头部,即可以获取其中的length,然后再等接收完完整上层数据帧后,在进行解析。以上所述即不确定最后一个EOB部分有没有在当前协议中广泛采用,即使不使用,也是可以接收完整个帧的。
异步传输的基本单元是“编码字符”。一个一个编码字符按照顺序进行发送,这些编码字符传输的过程中,不需要一个个挨着进行传输,换言之,我们可以把该“编码字符”理解成一个小数据帧。这个方法适合一些同步性能不好,或者信道质量不好的情况。按书上所述,这里是不需要同步的,实际上这里理解应该是不需要帧同步,或者成为符号同步的,貌似在异步情况下,这两个同步的概念应该类似。在一些信道环境差的情况下,异步传输可能效果会好一些,比如说在802.11中一个帧只有在完整发送完之后,等待看有没有ACK从而判断数据帧有没有错误,如果采用异步传输的方式,由于每一个“编码字符”都是独立的,从而很快就能发现错误,从而避免问题。在一些无线研究中,也有参考类似的机制。不过异步传输的缺点是,传输效率低,每一个字符都要额外的起始位和停止位,如果把这两个去除的话,那么性能有很高的提高。异步传输的一个典型应用应该就是ATM,不过目前对ATM特质理解还不深,有待学习。
首先同步和异步是指的物理层的属性,同时该同步和异步也会MAC层的封装造成影响(实际上MAC层协议也是针对物理层属性进行设计的),比如在HDLC封装的情况下,物理层一定是同步链路。
在该书中,对同步和异步的区别简单而言,一个是从帧的角度进行数据传输,而另外一个是从“编码字符”进行传输的,一次只传输一个字符,该字符有可能是ASCII编码,也有可能是unicode编码。
同步传输
同步传输的基本单元是帧,如果从这个层面上而言,当前网络大部分都是基于同步网络的。相对于异步传输,同步传输的效率会高很多,尤其是数据块的长度越长的时候,其效率越高。比如巨帧就是为了效率而扩展数据块的。从直观上来看,这里所述的同步帧的格式,也是当前主流的一些二层帧格式的框架,比如802.3的帧,或者802.11的帧。一个同步帧由同步字符,数据块,校验字符,与结束字符组成,第一个同步字符,从802.3来看就是Preamble部分,用来找SFD的,也就是帧同步。802.11里面也存在类似的部分,比如802.11b的PLCP
preamble,或者802.11 a/g中间的preamble中的STF字段(其中T0~T7),这一块是用来做帧同步的。数据块就是用来放数据的,一般就是对应的MPDU。然后校验字符,一般就是FCS部分。最后一个部分目前理解不深,结束字符。当前接收帧的过程不确定是数个数的方法还是找结尾的方法,因为一般的帧头部都是按照TLV结构,即有了length之后,直接数多少个Bit看数据帧有没有接收完即可,不一定要采用固定结尾的方法。尤其在802.11中,该数据帧的length部分既出现在MAC以及上层中,也在PLCP部分也有。在802.11接收过程中,首先接收物理层头部,即可以获取其中的length,然后再等接收完完整上层数据帧后,在进行解析。以上所述即不确定最后一个EOB部分有没有在当前协议中广泛采用,即使不使用,也是可以接收完整个帧的。
异步传输
异步传输的基本单元是“编码字符”。一个一个编码字符按照顺序进行发送,这些编码字符传输的过程中,不需要一个个挨着进行传输,换言之,我们可以把该“编码字符”理解成一个小数据帧。这个方法适合一些同步性能不好,或者信道质量不好的情况。按书上所述,这里是不需要同步的,实际上这里理解应该是不需要帧同步,或者成为符号同步的,貌似在异步情况下,这两个同步的概念应该类似。在一些信道环境差的情况下,异步传输可能效果会好一些,比如说在802.11中一个帧只有在完整发送完之后,等待看有没有ACK从而判断数据帧有没有错误,如果采用异步传输的方式,由于每一个“编码字符”都是独立的,从而很快就能发现错误,从而避免问题。在一些无线研究中,也有参考类似的机制。不过异步传输的缺点是,传输效率低,每一个字符都要额外的起始位和停止位,如果把这两个去除的话,那么性能有很高的提高。异步传输的一个典型应用应该就是ATM,不过目前对ATM特质理解还不深,有待学习。
相关文章推荐
- 网络编程第一篇之Select模式
- 【网络】多线程--NSThread、GCD、NSOperationQueue
- 开源流媒体服务器EasyDarwin支持epoll网络模型,大大提升流媒体服务器网络并发性能
- 开源流媒体服务器EasyDarwin支持epoll网络模型,大大提升流媒体服务器网络并发性能
- 【Tomcat】HTTP错误代码详细介绍
- iOS 网络请求封装
- 使用Flat Network Provider搭建扁平网络教程
- URL,URLConnection,HttpURLConnection的简单应用
- 厦门巨游网络科技有限公司(HOTPOWER)承接游戏UI外包
- java33.HTTP通信------使用Http的Post方式与网络交互通信
- 黑马程序员——网络编程
- okHttp学习(待完善)
- 蓝懿ios网络请求bock
- Android妙用SPDY协议提高移动端网络请求性能
- 基于HTML5的3D网络拓扑树呈现
- HttpServletRequest和 HttpServletResponse对象的一些使用
- 上下界网络流学习小计
- [bzoj3455]供电网络
- 上下界网络流学习小记
- HttpServletRequest