- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
流量设计论文:流量负载匀称系统设计透析
作者:庞玲 单位:四川行政学院计算机系
用户层通信接口模块
用户层通信接口模块建立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菜单按钮“用户信息”单击事件触发,将该事件写入数据库操作日志表中。
点击配置菜单,
文档评论(0)