本站小編為你精心準(zhǔn)備了流量設(shè)計(jì)論文:流量負(fù)載勻稱系統(tǒng)設(shè)計(jì)透析參考范文,愿這些范文能點(diǎn)燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。
作者:龐玲單位:四川行政學(xué)院計(jì)算機(jī)系
用戶層通信接口模塊
用戶層通信接口模塊建立Netlink套接字,同用戶層建立連接,負(fù)責(zé)解析用戶層發(fā)來(lái)的命令,將真實(shí)服務(wù)器流量信息和連接分配記錄信息發(fā)到用戶層,增加、刪除或者修改真實(shí)服務(wù)器。調(diào)用netlink_kernel_create()函數(shù)建立Netlink內(nèi)核層套接字。將連接轉(zhuǎn)換記錄消息鏈表填充到send_conn_load,調(diào)用函數(shù)send_to_usr()將end_conn_load發(fā)送到用戶層。然后清空連接轉(zhuǎn)換記錄消息鏈表。
若操作碼為1-3,則將消息負(fù)載中的真實(shí)服務(wù)器ID提取出來(lái),活動(dòng)狀態(tài)值status設(shè)為1,調(diào)用modServer(),修改真實(shí)服務(wù)器鏈表中的對(duì)應(yīng)真實(shí)服務(wù)器。若操作碼為4-6,則將消息負(fù)載中的真實(shí)服務(wù)器ID提取出來(lái),活動(dòng)狀態(tài)值status設(shè)為0,調(diào)用modServer(),修改真實(shí)服務(wù)器鏈表中的對(duì)應(yīng)真實(shí)服務(wù)器。
用戶層主控模塊
模塊功能描述。用戶層主控模塊負(fù)責(zé)初始化負(fù)載均衡服務(wù)器IP地址、用戶層真實(shí)服務(wù)器鏈表。與數(shù)據(jù)庫(kù)建立連接。建立并啟動(dòng)各個(gè)線程。程序處理流程。初始化負(fù)載均衡服務(wù)器IP地址,在ARP探測(cè)發(fā)送模塊中會(huì)用到,調(diào)用db_connect()與Mysql數(shù)據(jù)庫(kù)連接。
系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
1ARP探測(cè)發(fā)送模塊
模塊功能描述。ARP探測(cè)發(fā)送模塊通過(guò)Libnet來(lái)構(gòu)造ARP請(qǐng)求包,真實(shí)服務(wù)器鏈表各個(gè)真實(shí)服務(wù)器超時(shí)次數(shù)遞減,每隔十秒將ARP請(qǐng)求包廣播發(fā)送到同一網(wǎng)段。程序處理流程。設(shè)置源IP地址為負(fù)載均衡器的IP地址。初始化源MAC地址和目的MAC地址。目的MAC地址設(shè)置為{0xff,0xff,0xff,0xff,0xff,0xff}。然后初始化Libnet句柄,進(jìn)入循環(huán)sleep(10),調(diào)用outdateServerList(),將用戶層真實(shí)服務(wù)器各個(gè)真實(shí)服務(wù)器的超時(shí)次數(shù)減1。
2ARP回復(fù)接收模塊
模塊功能描述。ARP回復(fù)接收模塊設(shè)置ARP過(guò)濾規(guī)則,用來(lái)循環(huán)捕獲數(shù)據(jù)包,判斷操作位,收到ARP回復(fù),以便更新服務(wù)器狀態(tài),維護(hù)服務(wù)器鏈表。程序處理流程。在arp_protocol_packet_callback()函數(shù)中,對(duì)以太網(wǎng)協(xié)議進(jìn)行分析,對(duì)ARP協(xié)議進(jìn)行分析。判斷operation_code操作位,如果是2,則是ARP回復(fù)數(shù)據(jù)包,通過(guò)調(diào)用函數(shù)renewServerList()來(lái)對(duì)用戶層真實(shí)服務(wù)器鏈表進(jìn)行維護(hù)。如果得到的ARP回復(fù)包源地址對(duì)應(yīng)的真實(shí)服務(wù)器的狀態(tài)位是0,則置1,將超時(shí)次數(shù)重新設(shè)置為5。
3內(nèi)核層通信接口模塊
模塊功能描述。內(nèi)核層通信接口模塊通過(guò)Netlink和后臺(tái)內(nèi)核層通信,定時(shí)發(fā)送連接轉(zhuǎn)換記錄消息命令和真實(shí)服務(wù)器流量消息命令。從內(nèi)核層接收連接轉(zhuǎn)換記錄信息、真實(shí)服務(wù)器流量信息。并將服務(wù)器流量信息通過(guò)TCP連接的socket接口發(fā)送到前臺(tái),同時(shí)將連接轉(zhuǎn)換記錄信息寫到數(shù)據(jù)庫(kù)。程序處理流程。
該模塊分成兩個(gè)線程執(zhí)行,一個(gè)是Netlink用戶層套接字建立,定時(shí)向內(nèi)核層發(fā)送命令;另一個(gè)是從內(nèi)核層接收消息,將連接轉(zhuǎn)換記錄信息寫入數(shù)據(jù)庫(kù)或者將真實(shí)服務(wù)器流量信息發(fā)送到前臺(tái)。
在與內(nèi)核層連接通信線程usr_to_kernel_connect_thread中,先創(chuàng)建Netlink用戶層套接字,獲取自身進(jìn)程號(hào)。然后初始化用戶層地址結(jié)構(gòu),綁定套接字和地址結(jié)構(gòu)。接著初始化內(nèi)核層地址結(jié)構(gòu)。進(jìn)入循環(huán),每隔2秒向內(nèi)核層發(fā)送消息負(fù)載結(jié)構(gòu)命令字段分別為1和2,分別代表連接轉(zhuǎn)換記錄消息命令和真實(shí)服務(wù)器流量消息命令。循環(huán)退出關(guān)閉Netlink套接字。
在從內(nèi)核層接收數(shù)據(jù)線程recv_from_kernel_thread中,先構(gòu)造Netlink包頭結(jié)構(gòu)和通用消息結(jié)構(gòu)。進(jìn)入循環(huán),調(diào)用函數(shù)recvmsg()從內(nèi)核接收消息。讀取Netlink數(shù)據(jù)字段,判斷命令字段。若收到連接轉(zhuǎn)換記錄消息,則獲取當(dāng)前時(shí)間,遍歷連接轉(zhuǎn)換記錄消息鏈表,提取各個(gè)字段,格式化執(zhí)行語(yǔ)句,并寫入數(shù)據(jù)庫(kù)中。若收到真實(shí)服務(wù)器流量消息,則遍歷真實(shí)服務(wù)器流量消息鏈表,將流量信息格式化寫入緩沖區(qū)中,最后調(diào)用函數(shù)write()將緩沖區(qū)內(nèi)容發(fā)送到前臺(tái)客戶端。
4系統(tǒng)前臺(tái)功能模塊的設(shè)計(jì)
流量分配統(tǒng)計(jì)實(shí)時(shí)顯示模塊。模塊功能描述.與后臺(tái)建立TCP連接,接收流量信息,對(duì)各個(gè)真實(shí)服務(wù)器流活躍的連接數(shù)(TCP、UDP、總連接數(shù))以柱狀圖的形式進(jìn)行動(dòng)態(tài)顯示。程序處理流程.該模塊包括用戶權(quán)限認(rèn)證,查詢用戶信息列表和增加、刪除用戶信息。點(diǎn)擊查詢菜單,選擇用戶信息選項(xiàng)。主窗體mainForm菜單按鈕“用戶信息”單擊事件觸發(fā),將該事件寫入數(shù)據(jù)庫(kù)操作日志表中。
點(diǎn)擊配置菜單,選擇用戶管理選項(xiàng)。主窗體mainForm菜單按鈕“用戶管理”單擊事件觸發(fā),將該事件寫入數(shù)據(jù)庫(kù)操作日志表中。通過(guò)權(quán)限認(rèn)證以后輸入用戶名、密碼和確認(rèn)密碼,點(diǎn)擊增加或刪除按鈕,然后根據(jù)輸入信息查詢數(shù)據(jù)庫(kù)進(jìn)行正確性驗(yàn)證,增加或刪除是否成功有對(duì)話框提示。
5真實(shí)服務(wù)器配置模塊
模塊功能描述。真實(shí)服務(wù)器配置模塊中,先進(jìn)行權(quán)限認(rèn)證,查詢真實(shí)服務(wù)器信息列表。輸入ID和IP地址來(lái)添加和刪除真實(shí)服務(wù)器。程序處理流程。點(diǎn)擊查詢菜單,選擇服務(wù)器配置選項(xiàng)。主窗體mainForm菜單按鈕“服務(wù)器配置”單擊事件觸發(fā),將該事件寫入數(shù)據(jù)庫(kù)操作日志表中。
主窗體mainForm菜單按鈕“服務(wù)器管理”單擊事件觸發(fā),將該事件寫入數(shù)據(jù)庫(kù)操作日志表中。子窗體arrangeServer顯示并激活為當(dāng)前活動(dòng)窗口。首先查詢數(shù)據(jù)庫(kù),驗(yàn)證當(dāng)前登錄用戶權(quán)限,只有管理員級(jí)的用戶才可以配置真實(shí)服務(wù)器信息。通過(guò)權(quán)限認(rèn)證以后輸入真實(shí)服務(wù)器ID和IP地址,點(diǎn)擊增加或刪除按鈕,然后根據(jù)輸入信息查詢數(shù)據(jù)庫(kù)進(jìn)行正確性驗(yàn)證,增加或刪除是否成功有對(duì)話框提示。
6流量分配記錄查詢模塊
模塊功能描述。在流量分配記錄查詢模塊中,用戶根據(jù)源IP地址和目的IP地址查詢歷史流量分配記錄。
程序處理流程。點(diǎn)擊查詢菜單,選擇流量分配選項(xiàng)。主窗體mainForm菜單按鈕“流量分配”單擊事件觸發(fā),將該事件寫入數(shù)據(jù)庫(kù)操作日志表中。輸入源IP地址或目的IP地址查詢條件,根據(jù)組合查詢條件查詢數(shù)據(jù)庫(kù),將流量分配信息導(dǎo)出,用DataGridView控件和BindingNavigator逆序分頁(yè)顯示在窗體面板中。
7操作日志管理模塊
本系統(tǒng)涉及到四個(gè)實(shí)體:用戶,服務(wù)器,流量信息和操作日志。其中流量信息表示一條連接的分配記錄。服務(wù)器表示真實(shí)流量分析服務(wù)器。它們的屬性和聯(lián)系如圖1所示。
系統(tǒng)功能測(cè)試
如圖2所示,TCP流量發(fā)送負(fù)載均衡測(cè)試,經(jīng)過(guò)一段時(shí)間,雖然有些連接超時(shí),流量遞減,測(cè)試成功,說(shuō)明系統(tǒng)能夠完成設(shè)計(jì)要求。
結(jié)論
本系統(tǒng)經(jīng)過(guò)測(cè)試系統(tǒng)運(yùn)行狀況良好,功能實(shí)現(xiàn)完整,操作界面簡(jiǎn)單、友好。本系統(tǒng)在現(xiàn)有研究成果的基礎(chǔ)上,經(jīng)過(guò)分析和探討,提出了FTP被動(dòng)方式響應(yīng)端口隊(duì)列、內(nèi)存池管理、利用超時(shí)原理維護(hù)連接轉(zhuǎn)換記錄等在系統(tǒng)實(shí)現(xiàn)中的關(guān)鍵技術(shù),這些也是本系統(tǒng)的創(chuàng)新之處。