本站小編為你精心準備了流量設計論文:流量負載勻稱系統設計透析參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。
作者:龐玲單位:四川行政學院計算機系
用戶層通信接口模塊
用戶層通信接口模塊建立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被動方式響應端口隊列、內存池管理、利用超時原理維護連接轉換記錄等在系統實現中的關鍵技術,這些也是本系統的創新之處。