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