在现代计算机网络中,高效地在设备之间共享信息是至关重要的。本文将介绍一种在局域网(LAN)中非常高效的通信协议。这种协议的核心功能依赖于节点之间的令牌传递。为了更好地理解,可以将网络比作一个共享对象,而令牌则是访问这个对象的钥匙。
这种协议具有以下特点:
让深入探讨协议中的每种消息类型。
RECON消息是跟踪网络变化的另一个重要特性。在以下情况下可以触发此消息:
令牌是网络中节点或设备的标识符。当节点进入网络时,它会发送一个RECON消息。这个消息将通知网络网络配置的变化,并重新启动令牌传递。
假设节点1开始令牌传递,它将向从其当前地址的下一个地址开始的目标节点发送ITT消息。在示例中,它将是0x0B。它持续发送ITT,直到收到网络中任何节点的响应。
如所见,节点0x02响应了来自0x0a的请求。现在令牌在0x02节点,因此它开始解析令牌以找出网络中的另一个节点。当ITT消息到达目的地0x05时,节点三响应并承担令牌解析的任务。然后它识别出另一个节点,即0x0a。因此,令牌传递继续进行,直到网络中的所有节点都被识别出来。对于设置,初始的令牌传递已经完成,有一个网络0x0A <-> 0x02 <-> 0x05 <-> 0x0a。
在完成网络并识别网络中的节点之后,令牌传递继续进行,以实现高效的数据传输。例如,如果0x0a想要向0x05发送一些数据,它只有在拥有令牌时才能发送数据。正如之前所说,令牌是网络基础设施和资源的钥匙。
在节点向另一个节点发送数据包之前,它需要知道接收器是否可以接收传入的数据包。当节点拥有令牌时,它会向接收节点发送一个FBE请求。接收器可以选择发送ACK或NAK。
这是发送数据帧到接收节点的消息协议。数据可以是任何东西。该帧包含源节点地址、目标节点地址、长度和实际数据。接收器可以ACK或NAK传输。
由接收节点发送给发送者,表示接受发送的信息。
由接收节点发送给发送者,表示拒绝发送的信息。
// 发送ITT消息
function sendITT(destinationAddress) {
// 代码实现
}
// 处理RECON消息
function handleRECON() {
// 代码实现
}
// 发送FBE请求
function sendFBE(requestingNode, receivingNode) {
// 代码实现
}
// 发送PAC数据包
function sendPAC(sourceNode, destinationNode, data) {
// 代码实现
}
// 处理ACK消息
function handleACK() {
// 代码实现
}
// 处理NAK消息
function handleNAK() {
// 代码实现
}