双同步通信 (BISYNC)
双同步通信 (BISYNC) 是一种使用同步传输在设备之间传输数据的通信协议。在 BISYNC 中,数据以固定长度的块(称为帧)传输,每个帧的开头和结尾都有起始位和停止位。起始位和停止位用于同步发送方和接收方,以便它们能够准确地读取和解释帧中的数据。
BISYNC 使用一组复杂的控制字符来管理数据流并维护发送方和接收方之间的同步。例如,“ENQ”(查询)字符用于请求接收方发送“ACK”(确认)字符以确认它已准备好接收数据。类似地,“NAK”(否定确认)字符用于指示接收方已检测到数据中的错误,并请求发送方重新传输帧。
BISYNC 在 20 世纪 60 年代和 70 年代得到广泛使用,特别是在大型机和小型机中,以及在控制系统和工业自动化中。如今,它不太常见,因为它已被 TCP/IP 等更高效、更现代的协议所取代。
双同步通信 (BISYNC) 使用 EBCDIC 或 ASCII 编码方法进行字符表示,使用 3270 终端作为与主机通信的接口,以及一种同步通信方法,这意味着数据以固定块的形式发送。
帧类型
在双同步通信 (BISYNC) 中,数据以称为帧的固定长度块传输。有几种类型的帧用于不同的目的。一些常见的帧类型包括 -
数据帧 - 这些帧包含在设备之间传输的实际数据。数据帧通常包括报头和尾部,其中包含有关数据的信息,例如其长度和目标。
控制帧 - 这些帧用于管理数据流并维护发送方和接收方之间的同步。控制帧可以包含诸如 ENQ(查询)和 ACK(确认)之类的字符,这些字符用于请求和确认接收方已准备好接收数据。
错误检查帧 - 这些帧包含用于检查传输数据完整性的信息。例如,循环冗余校验 (CRC) 或校验和可用于检测数据中的错误。
连接帧 - 这些帧用于建立和终止设备之间的连接。连接帧中使用的控制字符可能包括 SOH(标题开始)和 EOT(传输结束)
除了这些标准类型的帧外,BISYNC 还允许使用特定于应用程序的帧,这些帧可以由特定应用程序定义和使用以满足其独特的需求。
需要注意的是,特定 BISYNC 实现使用的帧类型可能因其使用的应用程序和硬件而异。
多块数据帧
在双同步通信 (BISYNC) 中,多块数据帧是一种数据帧,用于在一次传输中传输多个数据块。这通常用于提高数据传输效率,因为它允许在单个消息中发送多个数据块,而不是必须单独发送每个块。
多块数据帧通常包括一个报头,其中包含有关要传输的块总数、每个块的长度和其他相关信息。报头后面是实际的数据块,这些数据块作为一系列固定长度的帧传输。多块数据帧的末尾由一个尾部标记,该尾部包含一个块结束指示符或校验和,以指示块的结束并允许进行错误检查。
当接收器接收到多块数据帧时,它使用报头中的信息来确定正在传输多少个数据块,并正确地将这些块组装成其原始形式。还执行错误检查以确保数据的完整性。
当需要传输大量数据时,多块数据帧特别有用,因为它们可以更有效地利用可用带宽。但是,需要注意的是,使用多块数据帧会增加通信过程的复杂性,因为发送方和接收方必须协调多个数据块的传输和组装。
BISYNC 的控制字符
在双同步通信 (BISYNC) 中,控制字符用于管理数据流并维护发送方和接收方之间的同步。BISYNC 中使用的一些常见控制字符包括 -
ENQ(查询)- 发送方使用此字符请求接收方发送 ACK(确认)字符以确认它已准备好接收数据。
ACK(确认)- 接收方响应 ENQ 字符发送此字符以指示它已准备好接收数据。
NAK(否定确认)- 接收方发送此字符以指示它已检测到数据中的错误,并请求发送方重新传输帧。
SYN(同步空闲)- 在没有传输其他数据时,此字符用作填充字符。它有助于接收方保持同步。
STX(文本开始)- 此字符标记数据帧的开始,表示实际传输数据的开始。
ETX(文本结束)- 此字符标记数据帧的结束,表示实际传输数据的结束。
SOH(标题开始)和 EOT(传输结束)用于连接帧以建立或终止设备之间的连接。
LRC(纵向冗余校验)或 CRC(循环冗余校验)用于错误检查帧以确保数据的完整性。
特定 BISYNC 实现中使用的控制字符集可能因其使用的硬件和应用程序而异。并且这些字符表示为 8 位二进制代码。
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP