一种基于无连接的面向多用户多任务并发的数据透传方法
摘要文本
本发明公开了一种基于无连接的面向多用户多任务并发的数据透传方法,属于数据传输技术领域。本发明采用基于无连接的UDP与TFTP协议的双侧多端口非对称映射方法,并将方法应用于支持VPX、CPCI、ATCA和uTCA标准、支持前面板RJ45网口的CPU载板之上,能够实现机箱内多个载板与外部局域网络快速的、并发的、高效的数据透传。
申请人信息
- 申请人:中国电子科技集团公司第五十四研究所
- 申请人地址:050081 河北省石家庄市中山西路589号中国电子科技集团公司第五十四研究所卫通部
- 发明人: 中国电子科技集团公司第五十四研究所
专利详细信息
| 项目 | 内容 |
|---|---|
| 专利名称 | 一种基于无连接的面向多用户多任务并发的数据透传方法 |
| 专利类型 | 发明授权 |
| 申请号 | CN202311697160.1 |
| 申请日 | 2023/12/12 |
| 公告号 | CN117395321B |
| 公开日 | 2024/3/12 |
| IPC主分类号 | H04L69/16 |
| 权利人 | 中国电子科技集团公司第五十四研究所 |
| 发明人 | 贾钢; 孙晨华; 王力权 |
| 地址 | 河北省石家庄市中山西路589号中国电子科技集团公司第五十四研究所天伺部 |
专利主权项内容
1.一种基于无连接的面向多用户多任务并发的数据透传方法,其特征在于,应用于具有前后面板双网口的机箱设备上,机箱设备内设有N个载板,包括如下步骤:(1)机箱设备前面板应用程序启用端口front_portn并创建套接字front_socketn,n =1, 2, …, N;(2)循环N次调用bind函数,按序号依次将front_socketn同front_portn及机箱设备前面板网口IP地址front_ip绑定;(3)创建描述符集{fd1},将所有套接字front_socketn放入集合{fd1}内,启动对集合内各套接字对应端口数据包的监听;(4)机箱设备后面板应用程序例化后面板套接字back_socket和后面板端口back_port,将back_socket绑定back_port和后面板网口IP地址back_ip,后面板网口在back_port上监听N个载板的数据包;(5)对于上位机至载板方向的UDP数据包进行如下操作:上位机通过其本机端口号host_port向载板发送UDP数据包,以目的端口front_portn来区分载板,机箱设备前面板应用程序描述符集{fd1}内的某个套接字接收到数据包后,通过该套接字所绑定的端口号front_portn判断出其载板IP地址amc_ipn,随后将数据包连同amc_ipn一起转发至后面板应用程序;后面板应用程序将数据包目的地址修改为amc_ipn,最后通过back_port发送至对应载板的端口;(6)对于载板至上位机方向的UDP数据包进行如下操作:某载板通过本载板的端口向上位机发送UDP数据,机箱设备后面板网口在back_port端口接收到数据包后,解析出数据包的源IP地址,即amc_ipn,随后将数据包连同amc_ipn一起转发至前面板应用程序;前面板应用程序根据amc_ipn映射出描述符集{fd1}内套接字对应的端口号front_portn,随后使用该端口front_portn作为数据包的源端口并将该数据包发送至上位机端口;上位机接收到数据包后通过源端口号front_portn判断出数据包来自哪个载板;(7)对于每次请求,上位机都启动一个新的端口号用来发送ACK和数据,机箱设备前面板应用程序定义Dportn用来记录对应的上位机传输数据时的端口号,n = 1, 2, …, N;(8)前面板应用程序启用端口tfront_portn,并创建套接字tfront_socketn,按序号依次将tfront_socketn与tfront_portn和前面板IP地址front_ip绑定,n = 1, 2, …, N;(9)创建描述符集{fd2},依次将tfront_socketn套接字放入集合{fd2}内,启动对集合内各套接字对应端口数据包的监听;(10)机箱设备后面板应用程序例化back_socket1、back_socket2,启用端口back_port1、back_port2,将back_socket1、back_socket2分别绑定back_port1、back_port2以及back_ip;后面板网口在back_port1端口上监听N个载板的文件传输控制消息,在back_port2端口上监听N个载板的文件传输数据消息;(11)以上位机为TFTP文件服务器,以N个载板为客户端;当某载板请求文件上传或下载时,该载板的文件传输控制消息发送至机箱设备后面板back_port1端口,后面板应用程序解析出控制消息的载板IP地址amc_ipn,随后将控制消息连同解析出的amc_ipn与back_port1端口标识一起转发至前面板应用程序;前面板应用程序根据amc_ipn映射出描述符集{fd2}内的端口号tfront_portn,并通过back_port1端口标识判断该消息应该发至上位机的专用控制消息端口Cport,随后将控制消息目的地址修改为上位机IP地址host_ip,最后通过tfront_portn将控制消息发送至上位机TFTP专用控制消息端口Cport;(12)上位机收到文件传输控制消息后,开启一个新的端口用来传输ACK或数据,机箱设备前面板应用程序描述符集{fd2}内的某tfront_portn端口监测到数据包后解析出其源端口,由Dportn记录,并通过tfront_portn端口号判断出目的载板IP地址amc_ipn,随后将Dportn与amc_ipn地址相关联,最后将ACK或数据包连同解析出的amc_ipn一起转发至后面板;后面板应用程序将ACK或数据包的目的地址修改为amc_ipn地址,通过back_port2发送至对应的载板;(13)载板收到ACK或数据包后,向机箱设备后面板网口back_port2继续发送数据包或ACK,机箱设备后面板应用程序解析出源IP地址amc_ipn后,将数据包或ACK连同amc_ipn与back_port2端口标识转交至前面板应用程序,前面板应用程序根据amc_ipn,判断与之对应的Dportn,并根据back_port2端口标识判断上位机端口是数据端口而非控制端口,随后将数据包或ACK以Dportn为目的端口、以tfront_portn为源端口发送至上位机Dportn端口;上位机收到数据包或ACK后,通过源端口tfront_portn和目的端口Dportn判断出该消息或ACK来自哪个载板;(14)文件传输完毕后,机箱设备应用程序释放相应任务的对应端口。