专利名称:一种堆叠系统设备通讯的方法
技术领域:
本发明属于以太网堆叠技术领域,具体涉及一种堆叠系统设备通讯的方法。
背景技术:
当交换机端口数量不足以满足网络应用需求的时候,在不改变原有网络规划拓扑的情况 下增加交换机的端口数,同时又不增加网管的负担。此时孕育交换机堆叠技术。堆叠技术不 同于交换机的简单级联,级联的设备在逻辑上是相互独立的,而交换机堆叠,从逻辑上来说, 它们相当于同一设备。为了实现交换机间的高效互联和统一管理,要求有一种高效、可靠消 息通信机制完成主机和备机、主机和从机的进程之间传递信息。
消息通信遵循一定层次结构,最常见层次划分见图1。其中,消息应用层为需要通信服
务的上层各功能模块;消息通信层充分发挥TCP协议功能,具体作法TCP报文数据部分嵌入
自己定义的报文,实现应用层转发;TCP/IP协议族及Socket接口利用IP协议进行路由选择,
利用TCP协议进行端-端控制,提供不定界流式服务,TCP/IP协议族及接口由操作系统协议
栈提供;Ethernet由BSP、驱动提供收包、发包完成链路层次上通讯。
这种层次划分在实际应用中,存在过多依赖操作系统的协议栈,通讯协议复杂,效率低, 需要建TCP连接,设立服务端和客户端,链路层收到报文上交协议栈,通讯层调用操作系统 提供Socket接口函数获取报文,进行应用层转发,报文层层解析消耗大量的CPU和内存资源。
发明内容
有鉴于此,本发明的目的在于提供一种效率高,节省CPU和内存资源的堆叠系统设备通
讯方法。
为此本发明堆叠系统设备通方法采用的通讯机制包括
将以太网帧的数据部分划分为若干个字节,确定报文格式,这些字节包括报文开始标志
Begin—Flag、报文结束标志End_Flag、消息参数头MSG-PUD Head和可变长消息体MSG-PdU payload。
该方法包括信道建立和消息传输步骤,其中在消息传输步骤中向非本地设备传送消息时 采用了在链路层对消息分片的方式,由消息通讯层根据消息长度进行分片处理。
计算分片数的公式为分片数=(消息长度+ MSG—MTU - 1)/MSG—MTU,其中MSG—MTU是 消息传送单元包含的以太网桢数据部分的字节数;并按照以下分片规则填充MSG-PDU payload 结构
1) 、分片数为1,第一片组成如下
Begin-Flag、 MSG-PDU Head、 MSG-PDU payload、 End-flag
2) 、分片数为2,各片的组成如下
第一片Begin-Flag、 MSG-PDU Head、 MSG-PDU payload 第二片MSG-PDU payload、 End-flag
3) 、分片数为3或者多于3片,各片的组成如下
第一片Begin-Flag、 MSG-PDU Head、 MSG-PDU payload 中间片MSG-PDU Head、 MSG-PDU payload 最后片MSG-PDU payload、 End-flag 本发明方法采用的通讯机制还包括
用设备号与进程号的二元组来唯一标识设备,向系统中的成员分配唯一的设备号 DeviceID,同时向设备内的进程分配唯一的进程号PID;
以太网帧数据部分的字节还包括消息发送头MsgHead—Snd和协议数据单元头PduHead;
将报文类型分为五种,即连接请求N0DE_C0NNECT、结点接收N0DE_ACCEPT、关闭请求 NODE—CL0SE、发送消息NODE—MSG和确认消息N0DE_C0NFIRM;
将消息通道的状态描述为四种状态即从等待主态、主工作态、从工作态、等待主接收态。
本发明方法消息传输步骤还可以包括在链路层对消息进行重传和确认的环节。其中报文 重传的实现方法为发送链表引入头指针、尾指针、当前指针,从头指针到当前指针这段区 间表示已发送,从当前指针到尾指针这段区间结点表示未发送,当前指针指向第一个待发送 报文,发送时,首先将发送标志置为1,如果发送成功指向下一个报文,如果发送不成功, 将发送标志置为0,等待下一次发送;报文确认的实现方法为接收端收到报文后,解析
PduHead中"发送的序列号"作为"接收序列号",用于对发送端的确认;如果在回复对端之
前,收到发送端的多个报文,则以最新收到发送端报文中"发送序列号"为"接收序列号"。
本发明方法的步骤还可以包括信道释放重建,信道释放的方法为主机在规定时间段没
有收到从机报文,主机发探测报文,要求对方必须回应,发一定次数的该报文如果对方没有
回应则拆除链接;信道释放的方法还可以为从机在工作状态向主机发起关闭请求,从机进 入从等待主态,主机接收到关闭请求后拆除链接
本发明方法不利用操作系统"TCP/IP协议族和Socket接口","消息通讯层"能实现 "TCP/IP协议族"部分功能,在链路层实现分片、重传、确认、端到端可靠的通讯,避免了 依赖操作系统TCP/IP协议族及Socket接口,本发明方法将消息通迅层作为独立单元,可以 随时加入系统或从系统中剥离,由于不采用TCP/IP协议,不需要服务端的监听客户端,节省 大量的CPU和内存资源,同时与具体链路介质无关,减少了对硬件的依赖。
-
图1为现有技术中的堆叠系统设备通讯方法的消息层次结构图; 图2为本发明堆叠系统设备通讯方法的报文格式说明图; 图3为本发明堆叠系统设备通讯方法的信道建立流程图; 图4为本发明堆叠系统设备通讯方法的分片、重传、确认流程图。
具体实施例方式
本发明堆叠系统设备通讯方法的通讯机制包括
a、 在现有技术的堆叠系统设备通讯方法中,"TCP/IP协议族"是用"IP地址"和"端 口号"的二元组来唯一标识一端,实现端到端的通讯。本发明用设备号和进程号的二元组来 唯一标识设备,实现设备内、设备间的进程通讯。设备号和进程号的分配要求为
al、系统中的成员分配唯一的设备号DeviceID,约定某个数字代表主设备、约定某个数 字代表备设备、约定某些数字代表从设备,约定数字决定设备在系统内的角色。
a2、设备内的进程分配唯一的进程号PID,进程一定在进程注册表中登记过,每个设备 有一张进程注册表,并且在各个设备上进程注册表进程号一致。
b、 对以太网帧的数据部分进行划分,引入自定义的报文格式,消息通讯层的简单协议报 文格式描述见图2,其中
bl、 Begir^Flag是报文开始标志,End_Flag是报文结束标志,用于实现分片和组包; b2、 MSG-PDU Head是消息参数头,含有事件号、接收设备号、接收进程号、发送设备
号、发送进程号,用于对消息体简要概括,方便转发;MSG-PDU payload是可变长消息体含
有MSG-PDU Head中各个字段,同时含有消息应用层传入数据部分。
b3、 MsgHead—Snd是消息发送头,必须含有发送标志、空闲标志、前一消息块、后一消
息块,这些信息用于重传、确认的实现。 B4、 PduHead是协议数据单元头,必须含有源设备号、目的设备号,报文类型、发送的 序列号和接收确认序列号,这些信息用于消息通道的报文转发。
c、 将报文类型分为五种即连接请求N0DE一C0NNECT、结点接收NODE—ACCEPT、关闭请求 NODE—CL0SE、发送消息NODE—MSG、确认消息N0DE_C0NFIRM,以表示报文作用。
d、 消息通道的状态描述为四种状态即从等待主态、主工作态、从工作态和等待主接收态, 以实现信道建立、消息传输、信道释放。
下面结合图3对本发明方法的信道建立步骤进行详细说明,这里约定主机作为服务器,
从机都作为客户端。
步骤301,从机消息通道进入"等待主机状态",准备信道建立;
步骤302,从机向主机发送连接请求NODE一CONNECT,报文中携带从机一些重要信息,如 设备号和MAC地址;
步骤303,从机发送"NODE—CONNECT"报文成功之后,从机消息通道置为"等待主接收 状态";
步骤304,主机一直工作在"主工作态",主机接收从机连接请求向从机回一个接收确 认消息"NODE—ACCEPT";
步骤305,判断从机是否接收到主机发回的接收确认消息"NODE—ACCEPT",如果没有接 收到或者超时,重复上述步骤重新建立信道;
步骤306,若接收到主机发回的接收确认消息"N0DE_ACCEPT",则从机进入"从工作状 态",与主机进行通信,至此消息通道建立。
下面结合图4对本发明方法的消息传输步骤作迸一步的详细描述
步骤401,消息应用层提供要发送消息事件号、消息内容、消息长度、目的设备号和目 的进程号,消息发送处理函数对这些信息进行组装同时对目的设备号和目的进程号进行合法 性检査;
步骤402,消息通讯层判断应用层传入的目的设备号,如果设备号是自己,则在本设备 内进行消息处理,否则将消息发送到相应设备;
步骤403,消息通讯层根据消息长度进行分片处理,计算分片数公式为分片数=(消息 长度+ MSGJ1TU - 1)/MSG一MTU,其中MSG—MTU是消息传送单元包含的以太网桢数据部分的字 节的数目;并按照以下分片规则填充MSG-PDU payload结构
1、分片数为1,第一片组成如下
Begin-Flag、 MSG-PDU Head、 MSG-PDU payload、 End-flag
2、 分片数为2,各片的组成如下
第一片Begin-Flag、 MSG-PDU Head、 MSG-PDU payload 第二片MSG-PDU payload、 End-flag
3、 分片数为3或者多于3片,各片的组成如下
第一片Begin-Flag、 MSG-PDU Head、 MSG-PDU payload 中间片MSG-PDU Head、 MSG-PDU payload 最后片MSG-PDU payload、 End-flag
同时提取MSG-PDU payload中的事件号、接收设备号、接收进程号、发送设备号、发送 进程号填充MSG-PDU Head;
步骤404,用发送标志、空闲标志、前一消息块、后一消息块填充MsgHeacLSnd;用源设 备号、目的设备号、发送的序列号、接收确认序列号、报文类型填充PduHead,其中发送序 列号表示源设备向目的设备发送多少个报文,接收序列号,表示接收到目的设备多少个报文。;
报文重传实现发送链表引入头指针、尾指针、当前指针,从头指针到当前指针这段区 间表示已发送,从当前指针到尾指针这段区间结点表示未发送。当前指针指向第一个待发送 报文;发送时,首先将发送标志置为1,如果发送成功指向下一个报文,如果发送不成功, 将发送标志置为0,等待下一次发送。
报文确认的实现接收端收到报文后,解析PduHead中"发送的序列号"作为"接收序 列号",用于对发送端的确认。如果在回复对端之前,收到发送端的多个报文,则以最新收到 发送端报文中"发送序列号"为"接收序列号"。
信道释放分正常释放和异常释放两种情形。正常释放是从机在工作状态向主机发起关闭 请求,从机进入从等待主态,主机接收到关闭请求后拆除链接;异常释放是主机在规定时间 段没有收到从机报文,主机发探测报文,要求对方必须回应,发一定次数的该报文如果对方 没有回应则拆除链接。主机所发该探测报文次数可以是三次。
本发明以上所述技术方案中凡是涉及从机的地方都可以用备机作为选择方案。
本发明提出的在链路层实现分片、重传、确认的可靠的端到端通讯方法,在链路层完成 现有技术中的堆叠系统设备通讯方法的操作系统"TCP/IP协议族及Socket接口"协议栈的 功能,在链路层对报文进行解析,向消息应用层分发,节省CPU、内存等宝贵资源。
权利要求
1、一种堆叠系统设备通讯的方法,其特征在于该方法采用的通讯机制包括将以太网帧的数据部分划分为若干个字节,这些字节包括报文开始标志Begin_Flag、报文结束标志End_Flag、消息参数头MSG-PUD Head和可变长消息体MSG-PdU payload;该方法包括信道建立和消息传输步骤,其中在消息传输步骤中向非本地设备传送消息时采用了在链路层对消息分片的方式,由消息通讯层根据消息长度进行分片处理。
2、 根据权利要求1所述的堆叠系统设备通讯的方法,其特征在于对消息进行分片处理时 计算分片数的公式为分片数=(消息长度+ MSG—MTU - 1)/MSG一MTU,其中MSG一MTU是消息 传送单元包含的所述以太网桢数据部分的字节的数目;并按照以下分片规则填充MSG-PDU payload结构1) 、分片数为1,第一片组成如下Begin-Flag、 MSG-PDU Head、 MSG-PDU payload、 End-flag2) 、分片数为2,各片的组成如下第一片Begin-Flag、 MSG-PDU Head、 MSG-PDU payload 第二片MSG-PDU payload、 End-flag3) 、分片数为3或者多于3片,各片的组成如下第一片Begin-Flag、 MSG-PDU Head、 MSG-PDU payload 中间片MSG-PDU Head、 MSG-PDU payload 最后片MSG-PDU payload、 End-flag
3、 根据权利要求1所述的堆叠系统设备通讯的方法,其特征在于该方法采用的通讯机制 还包括用设备号与进程号的二元组来唯一标识设备,向系统中的成员分配唯一的设备号 DeviceID,同时向设备内的进程分配唯一的进程号PID;所述以太网帧的数据部分的字节还包括消息发送头MsgHead一Snd和协议数据单元头 PduHead;将报文类型分为五种,即连接请求N0DE一C0NNECT、结点接收NODE一ACCEPT、关闭请求 NODE—CL0SE、发送消息NODE—MSG和确认消息NODE—CONFIRM;将消息通道的状态描述为四种状态即从等待主态、主工作态、从工作态、等待主接收态。
4、 根据权利要求1或2所述的堆叠系统设备通讯的方法,其特征在于所述消息传输的步 骤还包括报文重传、报文确认。
5、根据权利要求4所述的堆叠系统设备通讯的方法,其特征在于所述消息传输的步骤还 包括信道释放。
6、根据权利要求3所述的堆叠系统设备通讯的方法,其特征在于所述消息传输的步骤还包括报文重传,其实现方法为发送链表引入头指针、尾指针、当前指针,从头指针到当前指针这段区间表示已发送,从当前指针到尾指针这段区间结点表示未发送,当前指针指向第 一个待发送报文,发送时,首先将发送标志置为1,如果发送成功指向下一个报文,如果发送不成功,将发送标志置为o,等待下一次发送。
7、 根据权利要求3或6所述的堆叠系统设备通讯的方法,其特征在于所述消息传输的步 骤还包括报文确认,其实现方法为接收端收到报文后,解析PduHead中"发送的序列号" 作为"接收序列号",用于对发送端的确认;如果在回复对端之前,收到发送端的多个报文, 则以最新收到发送端报文中"发送序列号"为"接收序列号"。
8、 根据权利要求7所述的堆叠系统设备通讯的方法,其特征在于所述消息传输的步骤还 包括信道释放,信道释放的方法为主机在规定时间段没有收到从机报文,主机发探测报文, 要求对方必须回应,发一定次数的该报文如果对方没有回应则拆除链接。
9、 根据权利要求8所述的堆叠系统设备通讯的方法,其特征在于主机所发该探测报文次 数是三次。
10、 根据权利要求7所述的堆叠系统设备通讯的方法,其特征在于所述消息传输的步骤 还包括信道释放,信道释放的方法为从机在工作状态向主机发起关闭请求,从机进入从等 待主态,主机接收到关闭请求后拆除链接。
全文摘要
本发明公开了一种效率高,节省CPU和内存资源的堆叠系统设备通讯方法。该方法用设备号与进程号的二元组来唯一标识一端,向系统中的成员分配唯一的设备号DeviceID,同时向设备内的进程分配唯一的进程号PID;对以太网帧的DATA部分进行划分,引入自定义的报文格式,同时将报文类型分为五种。本发明方法采用在链路层对消息进行分片、重传和确认的方式进行消息传输,避免了依赖操作系统TCP/IP协议族及Socket接口,可节省大量的CPU和内存资源,同时与具体链路介质无关,减少了对硬件的依赖。本发明方法还包括信道释放重建步骤,释放分正常释放和异常释放两种情形。
文档编号H04L12/56GK101184032SQ20071016601
公开日2008年5月21日 申请日期2007年10月31日 优先权日2007年10月31日
发明者罗友松, 贾有春 申请人:中兴通讯股份有限公司