基于TCP/IP协议的网络负载均衡软件的设计与实现

时间:2022-09-17 01:00:24

基于TCP/IP协议的网络负载均衡软件的设计与实现

摘要:随着以太网技术的发展,用户对业务的实效性和QoS的需求也越来越高。要解决这类问题,首先需要面对网络上传输的信息内容与传输链路协调管理的问题。特别是当网络传输大量的不同级别、不同需求的数据,一旦重要数据长时间延时或所需传输链路带宽不足甚至被占用或突然中断,将会造成极大的损失。针对多WAN口接入、网络负载均衡的运用,首先对传输的数据信息分类,然后根据所获取的每个WAN口链路状态数据,对传输的数据按比例进行分段并通过不同的计算机端口发送,最后通过不同的链路进行传输。

关键词:多WAN口接入;网络负载均衡;数据分类

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2014)16-3754-03

Abstract: With the development of Ethernet technology, user demand for business effectiveness and QoS are also increasing. To solve this problem, you first need to face the information content transmitted over the network and the transmission link coordinated management issues. Especially when a large number of different levels of network transmission, the different needs of the data, once the prolonged delay of important data or insufficient bandwidth required for transmission link is occupied or even sudden interruption will cause great losses. For multi-WAN port access, the use of network load balancing, the first transmission of data classification, and then based on each WAN port link state data obtained, the data transfer proportionally segmented by different computer port transmission, and finally transmitted via different links.

Key words: Multi-WAN port access, Network Load-balancing, data classification

随着计算机网络的发展,其复杂性和异构性也随之增加,尤其是路由技术的出现,使得计算机网络的管理更加重要和复杂[1-2]。其中网络负载均衡可以提供扩展网络带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用[1-2]。该文以Java Socket通信技术设计出一种基于TCP/IP协议的计算机网络负载均衡平台,为以后网络的管理打下坚实基础。

1 系统设计

1.1搭建硬件系统环境

该系统需要数据客户端、数据服务端、网络管理服务端、mini2440ARM开发板、多WAN口路由器。

1)数据客户端

主要是向mini2440ARM开发板的网络管理服务器发送请求及向数据服务端发送数据。

2) 数据服务端

主要是负责接收数据客户端发送的信息。

3) mini2440 ARM开发板

基于s3c2440芯片的嵌入式开发板,并采用专业稳定的CPU内核电源芯片和复位芯片来保证系统运行时的稳定性。mini2440的PCB采用沉金工艺的四层板设计,专业等长布线,保证关键信号线的信号完整性,提供Linux和WindowsCE 5.0/6.0嵌入式系统。信令服务器部署在mini2440 ARM开发板上,主要是负责接收数据客户端发送的请求、反馈处理结果及管理多WAN口路由器。

4) 多WAN口路由器

以它为桥梁,连接数据客户端、mini2440ARM开发板和数据服务端。首先,它要接收来自数据客户端的请求,并发送给mini2440ARM开发板上部署的网络管理服务端,其次,还要接收mini2440ARM开发板的反馈数据并传输给数据客户端,然后接收来自数据客户端的传输的数据,并发送给数据服务端。

其硬件系统架构如图1。

1.2软件架构

根据系统软件的要求,将整个系统平台框架分为两部分。第一部分为数据管理系统,其主要任务是采集、管理、发送数据、接受数据。另一部分为网络管理系统,ARM开发板上的网络管理服务端分析数据客户端发送的请求,得到数据客户端发送的请求数据属性(源地址、目的地址、数据类型、服务等级、是否分段)并保存,然后根据当前链路状态,为其分配可用链路并反馈。

1.3数据管理系统设计

数据管理系统主要任务是负责数据采集、管理、发送和接受。其主要模块包括:数据采集模块;数据管理模块;数据发送模块;数据接受模块以及定时刷新模块。

数据管理系统工作流程如图2所示。

例如,客户端软件可以根据数据的大小将其按照每条链路质量比例进行分段,比如一个200M的数据,2条链路质量比例为2:3,那么新闻稿件可以分成80M、120M的2段,分别通过2条链路进行传输。如上图2所示,两段分别从不同链路进行传输,一段用链路1进行传输,一段用链路2进行传输。

1) 数据采集模块。数据管理系统利用Swing JfileChooser[3-4]组件获得数据路径,DataInputStream[3-4]输入流通过其路径采集数据。开始时,数据客户端一直处于侦听状态,当有事件触发时,侦听程序便开始读取数据。主要功能是采集数据的功能。

2) 数据管理模块。将采集的数据缓存在字节数组里面,然后对其进行封装,添加其他属性,如ID号、名称、大小、是否分段等,同时把这些属性转换成约定好的二进制数据命令发送给网络管理服务端,以便其能够顺利完成分段、分配链路等工作,最后根据网路服务端的反馈数据内容,进行数据的分段、分配计算机端口号等工作。

3) 数据发送模块。经过数据采集模块采集到的原始数据,进行封装、分段等相应的处理,并将处理后的数据利用Socket DataOutputStream[3-4]输出流通过不同的计算机端口发送给多WAN口路由器,然后路由器根据端口号将这些数据通过指定的链路发送给数据服务端。

4) 数据接受模块。数据服务端利用Socket DataInputStream[3-4]输入流接收数据客户端发送的数据,然后根据每段数据的属性内容进行组合,再通过DataOutputStream[3-4]输出流形成完整的数据。开始时,数据服务端一直处于侦听状态,当有事件触发时,侦听程序便开始读取数据。主要是接受数据的功能。

5) 定时刷新模块。当系统运行一段时间后,设置定时刷新模块不断刷新数据缓存,将系统内发送成功的数据从数据缓存中删除。

1.4网络管理系统设计

网络管理系统的流程图如图3所示。

1)请求管理模块。利用C Socket的输入流获得数据客户端的请求数据。开始时,网络服务端请求管理模块一直处于侦听状态,当有事件触发时,侦听程序便开始读取请求数据,并存入缓存中。

2) 链路管理模块。通过内部软件接口,从链路检测软件程序获取当前所有链路的质量信息,每隔一段时间更新链路信息缓存。

3) 反馈管理模块。从请求数据缓存中读取所有请求数据,从链路信息缓存中读取链路信息,然后根据相关算法计算后生成控制命令,然后通过telnet配置多WAN口路由器,如特定端口号的tcp数据从指定链路传输。之后,将一系列结果信息反馈给数据客户端。

2 模拟实验与分析

实验设备包括4台PC机(3台作为数据客户端、1台作为数据服务主机)、2台多WAN口路由器和1块ARM开发板。

通过系统实验测试,平台各项功能运行正常,所有设备通过路由器形成组网,数据管理系统可对网络数据进行采集、管理、发送和接受,网络管理系统能够通过客户端的请求所携带的内容得到当前每台主机将要传输的数据属性,同时根据所获取的链路状态数据,生成相关命令,通过telnet配置路由器,最后反馈给数据客户端。

3 结束语

该平台能够结合计算机网络的路由技术,处理来自用户的数据信息,根据信息的内容,便于为用户分配有效的可用链路,并能根据分析结果对网络资源进行协调与整合,保证网络的运行性能,为计算机网络在未来的广泛有效的应用打下坚实的基础。

参考文献:

[1] 谢希仁.计算机网络[M].北京:电子工业出版社, 2011.

[2] BehrouzA.Forouzan. TCP/IP PROTOCOL SUITE[M].北京:清华大学出版社,2009.

[3] 孙卫琴.Java网络编程精解[M].北京:电子工业出版社,2007.

[4] Bruce Eckel.Thinking in Java[M].北京:机械工业出版社,2007.

上一篇:《人工智能技术》教学与实践 下一篇:浅谈学生的习惯养成教育