美章网 资料文库 流量设计论文:流量负载匀称系统设计透析范文

流量设计论文:流量负载匀称系统设计透析范文

本站小编为你精心准备了流量设计论文:流量负载匀称系统设计透析参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。

流量设计论文:流量负载匀称系统设计透析

作者:庞玲单位:四川行政学院计算机系

用户层通信接口模块

用户层通信接口模块建立Netlink套接字,同用户层建立连接,负责解析用户层发来的命令,将真实服务器流量信息和连接分配记录信息发到用户层,增加、删除或者修改真实服务器。调用netlink_kernel_create()函数建立Netlink内核层套接字。将连接转换记录消息链表填充到send_conn_load,调用函数send_to_usr()将end_conn_load发送到用户层。然后清空连接转换记录消息链表。

若操作码为1-3,则将消息负载中的真实服务器ID提取出来,活动状态值status设为1,调用modServer(),修改真实服务器链表中的对应真实服务器。若操作码为4-6,则将消息负载中的真实服务器ID提取出来,活动状态值status设为0,调用modServer(),修改真实服务器链表中的对应真实服务器。

用户层主控模块

模块功能描述。用户层主控模块负责初始化负载均衡服务器IP地址、用户层真实服务器链表。与数据库建立连接。建立并启动各个线程。程序处理流程。初始化负载均衡服务器IP地址,在ARP探测发送模块中会用到,调用db_connect()与Mysql数据库连接。

系统的设计与实现

1ARP探测发送模块

模块功能描述。ARP探测发送模块通过Libnet来构造ARP请求包,真实服务器链表各个真实服务器超时次数递减,每隔十秒将ARP请求包广播发送到同一网段。程序处理流程。设置源IP地址为负载均衡器的IP地址。初始化源MAC地址和目的MAC地址。目的MAC地址设置为{0xff,0xff,0xff,0xff,0xff,0xff}。然后初始化Libnet句柄,进入循环sleep(10),调用outdateServerList(),将用户层真实服务器各个真实服务器的超时次数减1。

2ARP回复接收模块

模块功能描述。ARP回复接收模块设置ARP过滤规则,用来循环捕获数据包,判断操作位,收到ARP回复,以便更新服务器状态,维护服务器链表。程序处理流程。在arp_protocol_packet_callback()函数中,对以太网协议进行分析,对ARP协议进行分析。判断operation_code操作位,如果是2,则是ARP回复数据包,通过调用函数renewServerList()来对用户层真实服务器链表进行维护。如果得到的ARP回复包源地址对应的真实服务器的状态位是0,则置1,将超时次数重新设置为5。

3内核层通信接口模块

模块功能描述。内核层通信接口模块通过Netlink和后台内核层通信,定时发送连接转换记录消息命令和真实服务器流量消息命令。从内核层接收连接转换记录信息、真实服务器流量信息。并将服务器流量信息通过TCP连接的socket接口发送到前台,同时将连接转换记录信息写到数据库。程序处理流程。

该模块分成两个线程执行,一个是Netlink用户层套接字建立,定时向内核层发送命令;另一个是从内核层接收消息,将连接转换记录信息写入数据库或者将真实服务器流量信息发送到前台。

在与内核层连接通信线程usr_to_kernel_connect_thread中,先创建Netlink用户层套接字,获取自身进程号。然后初始化用户层地址结构,绑定套接字和地址结构。接着初始化内核层地址结构。进入循环,每隔2秒向内核层发送消息负载结构命令字段分别为1和2,分别代表连接转换记录消息命令和真实服务器流量消息命令。循环退出关闭Netlink套接字。

在从内核层接收数据线程recv_from_kernel_thread中,先构造Netlink包头结构和通用消息结构。进入循环,调用函数recvmsg()从内核接收消息。读取Netlink数据字段,判断命令字段。若收到连接转换记录消息,则获取当前时间,遍历连接转换记录消息链表,提取各个字段,格式化执行语句,并写入数据库中。若收到真实服务器流量消息,则遍历真实服务器流量消息链表,将流量信息格式化写入缓冲区中,最后调用函数write()将缓冲区内容发送到前台客户端。

4系统前台功能模块的设计

流量分配统计实时显示模块。模块功能描述.与后台建立TCP连接,接收流量信息,对各个真实服务器流活跃的连接数(TCP、UDP、总连接数)以柱状图的形式进行动态显示。程序处理流程.该模块包括用户权限认证,查询用户信息列表和增加、删除用户信息。点击查询菜单,选择用户信息选项。主窗体mainForm菜单按钮“用户信息”单击事件触发,将该事件写入数据库操作日志表中。

点击配置菜单,选择用户管理选项。主窗体mainForm菜单按钮“用户管理”单击事件触发,将该事件写入数据库操作日志表中。通过权限认证以后输入用户名、密码和确认密码,点击增加或删除按钮,然后根据输入信息查询数据库进行正确性验证,增加或删除是否成功有对话框提示。

5真实服务器配置模块

模块功能描述。真实服务器配置模块中,先进行权限认证,查询真实服务器信息列表。输入ID和IP地址来添加和删除真实服务器。程序处理流程。点击查询菜单,选择服务器配置选项。主窗体mainForm菜单按钮“服务器配置”单击事件触发,将该事件写入数据库操作日志表中。

主窗体mainForm菜单按钮“服务器管理”单击事件触发,将该事件写入数据库操作日志表中。子窗体arrangeServer显示并激活为当前活动窗口。首先查询数据库,验证当前登录用户权限,只有管理员级的用户才可以配置真实服务器信息。通过权限认证以后输入真实服务器ID和IP地址,点击增加或删除按钮,然后根据输入信息查询数据库进行正确性验证,增加或删除是否成功有对话框提示。

6流量分配记录查询模块

模块功能描述。在流量分配记录查询模块中,用户根据源IP地址和目的IP地址查询历史流量分配记录。

程序处理流程。点击查询菜单,选择流量分配选项。主窗体mainForm菜单按钮“流量分配”单击事件触发,将该事件写入数据库操作日志表中。输入源IP地址或目的IP地址查询条件,根据组合查询条件查询数据库,将流量分配信息导出,用DataGridView控件和BindingNavigator逆序分页显示在窗体面板中。

7操作日志管理模块

本系统涉及到四个实体:用户,服务器,流量信息和操作日志。其中流量信息表示一条连接的分配记录。服务器表示真实流量分析服务器。它们的属性和联系如图1所示。

系统功能测试

如图2所示,TCP流量发送负载均衡测试,经过一段时间,虽然有些连接超时,流量递减,测试成功,说明系统能够完成设计要求。

结论

本系统经过测试系统运行状况良好,功能实现完整,操作界面简单、友好。本系统在现有研究成果的基础上,经过分析和探讨,提出了FTP被动方式响应端口队列、内存池管理、利用超时原理维护连接转换记录等在系统实现中的关键技术,这些也是本系统的创新之处。