一種基于信令傳輸的tcp長連接的實現方法及裝置的制造方法
【技術領域】
[0001] 本發明涉及通信技術領域,尤其涉及一種基于信令傳輸的TCP長連接的實現方法 及裝置。
【背景技術】
[0002] 信令傳輸場景是一個非常特殊的TCP (Transmission Control Protocol,傳輸控 制協議)連接場景,它具有超高連接數和超低網絡傳輸的特點。MCP (Main control, Cache, Proxy) ++是MCP框架的C++語言版本,是一種高性能網絡編程框架,它根據epoll模型維護 TCP的連接。
[0003] 然而經過測試,現有的MCP++框架為每個TCP長連接耗費約0. 5邸內存。算上 內核態的消耗,單個TCP長連接消耗約3. 5邸內存。根據巧oil的實現,在64位環境下, epoll在內核中需要為每個fd(文件描述符)消耗leOBytes的內存。并且,根據linux內 核2. 6. 32.43中對TCP協議找的實現,內核為每個應用層中打開的socket (套接字)維 護st;ructsocket_alloc數據結構,它包含struct socket和structinode結構,分別對應 socket在tcp中的表示和vfs中的inode數據結構。在網絡層中,還需要struct sock數 據結構來表示socket。對于TCP每個連接收發的數據,使用S化uctsk_buff來記錄收發 數據信息,并從內核中分配相應的空間來存放數據。存放數據的內核空間的分配單位是 page。當TCP連接的數據接收和發送完成后,sk_buff和數據page也相應的釋放。在無數 據收發時,內核中不會消耗額外的內存空間。因此,內核中socket相關的內存消耗都是描 述socket的數據結構。相關的數據結構都是從內核的si油高速緩沖區中申請和釋放的。 通過查看系統的slab信息,可W計算得出socket相關數據結構(包括巧oil)內核態的消 耗為2. 7邸(包括巧oil的消耗)。再加上si油數據結構對齊造成的額外開銷,socket相 關數據結構總共消耗3邸。W"TCP"數據結構為例:每個si油的size = 768032邸/964004 =8邸,每個si油存儲5個對象,每個對象1. 44邸,則每個si油因為對齊而浪費的空間是 8邸-1. 44巧=0. 8邸。對應每個對象浪費0. 8邸/5 = 0. 16邸。W此推算,上述si油結構總 共浪費的空間如表1所示。
[0004] 表1SLAB結構總共浪費的空間
[0005]
[0006] 此外,當某個socket有數據發送時候,在struct sock中有"struct page*sk_ sn血sg_page"變量指向額外的一個page,用來作為發送緩存,只有當該sock關閉的時候 才釋放該page。經過測試證明,進程打開的socket無數據發送時,單個socket消耗3邸; 有數據發送時,額外消耗4邸。送樣一來內核中為每個socket連接需要消耗的內存空間為 3邸+4邸=7邸。
[0007] 海量TCP長連接通常數W萬計(20000 W上),結合上述測試結果不難發現,當數W 萬計的TCP長連接并發時,現有的MCP++框架為處理送些連接將會產生巨大的內核態內存 消耗,而基于TCP長連接的特性,處理的最終結果將只能是服務器若機。因此,現有的MCP++ 在處理TCP長連接過程中所產生的內核態內存消耗巨大,無法實現海量TCP長連接。
【發明內容】
[0008] 有鑒于此,本發明提供一種基于信令傳輸的TCP長連接的實現方法及裝置,可減 少處理TCP長連接而產生的內核態內存消耗,實現信令傳輸場景下的海量TCP長連接。
[0009] 本發明實施例提供的基于信令傳輸的TCP長連接的實現方法,包括:獲取服務器 的標識信息,查詢預置的配置參數數據庫,獲取與所述標識信息對應的目標參數,所述目標 參數用于減小處理TCP長連接而產生的內核態內存消耗;根據所述目標參數,對所述服務 器進行系統內核的參數配置;根據配置結果監聽TCP長連接請求,對監聽到的TCP長連接請 求進行處理,并將處理結果返回給對端。
[0010] 本發明實施例提供的基于信令傳輸的TCP長連接的實現裝置,包括:獲取模塊,用 于獲取服務器的標識信息,查詢預置的配置參數數據庫,獲取與所述標識信息對應的目標 參數,所述目標參數用于減小處理TCP長連接而產生的內核態內存消耗;配置模塊,用于根 據所述獲取模塊獲取的所述目標參數,對所述服務器進行系統內核的參數配置;處理模塊, 用于根據所述配置模塊的配置結果監聽TCP長連接請求,對監聽到的TCP長連接請求進行 處理,并將處理結果返回給對端。
[0011] 本發明實施例提供的基于信令傳輸的TCP長連接的實現方法及裝置,通過采用獲 取與服務器的型號對應的用于減小處理TCP長連接而產生的內核態內存消耗的目標參數, 并根據該目標參數對該服務器進行系統內核的參數配置,然后根據配置結果處理TCP長連 接送樣優化參數的方式,可W較小的成本代價達到減小處理TCP長連接而產生的內核態內 存消耗的技術效果,從而實現信令傳輸場景下的海量TCP長連接。
[0012] 為讓本發明的上述和其他目的、特征和優點能更明顯易懂,下文特舉較佳實施例, 并配合所附圖式,作詳細說明如下。
【附圖說明】
[0013] 圖1為本發明實施例提供的基于信令傳輸的TCP長連接的實現方法及裝置的應用 環境圖;
[0014] 圖2示出了一種服務器的結構示意圖;
[0015] 圖3為本發明第一實施例提供的基于信令傳輸的TCP長連接的實現方法的流程示 意圖;
[0016] 圖4為本發明第二實施例提供的基于信令傳輸的TCP長連接的實現方法的流程示 意圖;
[0017] 圖5為本發明第Η實施例提供的基于信令傳輸的TCP長連接的實現裝置的結構示 意圖;
[0018] 圖6為本發明第四實施例提供的基于信令傳輸的TCP長連接的實現裝置的結構示 意圖。
【具體實施方式】
[0019] 為更進一步闡述本發明為實現預定發明目的所采取的技術手段及功效,W下結合 附圖及較佳實施例,對依據本發明的【具體實施方式】、結構、特征及其功效,詳細說明如后。
[0020] 圖1為本發明實施例提供的基于信令傳輸的TCP長連接的實現方法及裝置的應用 環境圖。如圖3所示,客戶端100、服務器200位于有線或無線網絡中,通過該有線網絡或無 線網絡,客戶端100與服務器200進行數據交互。
[0021] 其中,客戶端100可W包括支持網絡功能的:智能手機、平板電腦、電子書閱讀器、 MP3播放器(Moving Pierre Experts Group Audio Layer III,動態影像專家壓縮標準音 頻層面 3)、MP4 (Moving Pic1:ure Experts Group Audio Layer IV,動態影像專家壓縮標準 音頻層面4)播放器、膝上型便攜計算機、車載電腦、可穿戴設備、臺式計算機、機頂盒、智能 電視、一體機等等。
[0022] 上述的有線網絡可W但不限于包括;采用同軸電纜、雙絞線或光纖來連接的計 算機網絡。上述的無線網絡可W使用各種通信標準、協議及技術,包括但并不限于全球 移動通信系統(Global System for Mobile Communication, GSM)、增強型移動通信技術 巧nhanced Data GSM linvironment,邸GE),寬帶碼分多址技術(wideband code division multiple access, W-CDMA),碼分多址技術(Code division access, CDMA)、時分多址技 術(time division multiple access, TDMA),藍牙,無線保真技術(Wireless, Fidelity, WiFi)(如美國電氣和電子工程師協會標準IE邸802. 11a,IE邸802. 1化,I邸E802. llg和/ 或 IE邸802. lln)、網絡電話(Voice over internet protocol, VoIP)、全球微波互聯接入 (Worldwide Interoper油ility for Microwave Access,Wi-Max)、其他用于郵件、即時通訊 及短消息的協議,W及任何其他合適的通訊協議,甚至可包括郝些當前仍未被開發出來的 協議。
[0