通信协议的一些技巧

接口和通讯协议的几个关键点 ,1 如何区分不同的通讯设备; 2 如何在链路上发送和识别有效数据; 3  如何利用链路的物理特性,信号编码形式; 4  有效数据如何从一端传送到另一端; 5 如何进行链路流量控制和异常控制

       1 区分不同的通讯设备的关键是译码,就是分配地址。无论是PCI的简单地址译码还是Ethernet、TCP/IP的复杂地址编制机制,本质目的是识别通讯方身份

       2 链路上有效数据的识别让接受端识别那个数据是真正的数据,对并行总线协议一般采用data ready信号来表示,对packet传送方式则涉及到链路层的成帧机制。所以本质上PCI等并行总线和PCI-E等packet总线是一样的,虽然看上去它们没有数据链路层,实质是它的数据链路层比较简单而已。

       3 不同的通讯协议基于不同的物理媒介实现,包括并行PCB走线(简单并行、SerDes方式、源同步方式)、长距离双绞线、光纤、无线(各种频段)这么几种,如何让信息承载在相应的物理媒介上需要仔细考察媒介的特性。对PCB并行走线,简单的0/1编码足以传送信号,因为媒介很可靠,而对于Serdes接口便需要进行8B/10B编码;同样无线通讯更是需要进行各种编码,以克服无线媒介易受干扰、信号衰减等问题。

      4 有效数据从一端传到另一段涉及到路由和交换,简单的协议中,通讯的双方都在一个媒介下,因此这一层功能很难被人们注意到。到了Internet或者Ethernt中,便需要使用路由交换功能,因为很大的网络需要分层,从而保证可维护性。在目前的一些板级互联总线中也用到了交换机制,如RapdIO、PCI-E,协议也变的很复杂,其实它的本质就是识别数据往哪里送,和PCI总线是一样的,仅仅因为数据被封装在数据包中传送,人们便很喜欢用交换和路由这两个词汇。

       5 数据通讯是双发进行的,这样就不可避免对链路进行控制和管理。这包括差错控制、流量控制、链路维护初始化、通讯参数协调等。并行总线中,采用几个信号线就把这个功能搞定了,ready可以做流控;Error做差错控制;在Packet通讯协议中没有带外的信号线来搞定这些功能,所以就采用数据包的方式,显的十分复杂,其实是链路的特性决定的,这样便有各种的流控帧的存在。

你可能感兴趣的:(网络,internet,通讯)