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