網絡終端及其數據包的發送方法
【技術領域】
[0001]本發明涉及網絡通信技術領域,具體而言,涉及一種數據包的發送方法以及使用該方法進行網絡請求連接的終端。
【背景技術】
[0002]在利用移動終端上網時,往往需要把應用程序產生的較多的數據包依次發送給對應的網絡(網絡服務器),移動終端的便攜性使得所連接的網絡信號經常變化甚至有時變得非常差,很容易導致長時間接收不到網絡對數據包的響應,此外多個移動終端同時連接所述網絡,也極易使得移動終端長時間接收不到網絡對數據包的響應。然而移動終端在長時間接收不到網絡的響應時會重復發送這些數據包,導致例如內存、處理器、帶寬等大量的網絡資源被長時間占用。
【發明內容】
[0003]有鑒于此,本發明實施例提供一種網絡終端及其數據包的發送方法,避免數據包在未被響應之前因重發而占用大量的網絡資源。
[0004]本發明采用的一個技術方案是:提供一種數據包的發送方法,包括:建立緩存區,以存儲各個應用程序向網絡發送的數據包;檢測當前緩存區中數據包的第一字節之和,并判斷第一字節之和是否大于或等于預置的第一容量閾值;在判定字節之和大于或等于第一容量閾值時,向網絡重復發送一個字節最小的數據包,并判斷網絡對字節最小的數據包的響應時間是否小于或等于預置的時間閾值;若是,則按照存儲于緩存區的時間順序,將緩存區中的數據包依次發送給網絡。
[0005]其中,將緩存區中的數據包依次發送給網絡的步驟之后,還包括:檢測當前緩存區中數據包的第二字節之和,并在第二字節之和小于或等于預置的第二容量閾值時,停止向網絡重復發送字節最小的數據包,并通知應用程序繼續生成數據包,第二容量閾值小于第一容量閾值。
[0006]其中,在建立緩存區的步驟之前,所述方法包括:預置應用程序在發送出數據包之后且被網絡響應之前禁止再次發送數據包。
[0007]其中,向網絡重復發送一個字節最小的數據包的步驟之前,所述方法還包括:通知所有應用程序停止向網絡發送數據包,或者緩存區停止存儲接收到的應用程序發送的數據包。
[0008]其中,將緩存區中的數據包依次發送給網絡的步驟之后,所述方法還包括:刪除已經被網絡響應的數據包。
[0009]本發明采用的另一個技術方案是:提供一種網絡終端,包括:收發模塊,用于接收各個應用程序向網絡發送的數據包;存儲模塊,用于存儲收發模塊接收到的數據包;處理模塊,用于檢測當前存儲模塊中數據包的第一字節之和,并判斷第一字節之和是否大于或等于預置的第一容量閾值;收發模塊還用于在處理模塊判定字節之和大于或等于第一容量閾值時,向網絡重復發送一個字節最小的數據包;處理模塊進一步用于判斷網絡對字節最小的數據包的響應時間是否小于或等于預置的時間閾值,若是,則處理模塊按照數據包存儲于存儲模塊的時間順序,控制收發模塊將存儲模塊中的數據包依次發送給網絡。
[0010]其中,在控制收發模塊將存儲模塊中的數據包依次發送給網絡之后,處理模塊進一步用于檢測當前存儲模塊中數據包的第二字節之和,并在判定第二字節之和小于或等于預置的第二容量閾值時,控制收發模塊停止向網絡重復發送字節最小的數據包,并控制收發模塊通知應用程序繼續生成數據包,第二容量閾值小于第一容量閾值。
[0011]其中,處理模塊還用于控制收發模塊在應用程序在發送出數據包之后且被網絡響應之前禁止再次發送數據包。
[0012]其中,在控制收發模塊停止向網絡重復發送字節最小的數據包之前,處理模塊還用于控制收發模塊通知所有應用程序停止向網絡發送數據包,或者控制收發模塊停止接收應用程序發送的數據包。
[0013]其中,在控制收發模塊將存儲模塊中的數據包依次發送給網絡之后,處理模塊進一步用于控制存儲模塊刪除已經被網絡響應的數據包。
[0014]本發明實施例通過建立緩存區以存儲應用程序向網絡發送的數據包,并在檢測到緩存區中數據包的字節之和大于或等于預置的容量閾值時向網絡重復發送一個字節最小的數據包,而后在網絡的響應時間小于或等于預置的時間閾值時,才將數據包按照時間順序依次發送給網絡,能夠避免數據包在未被響應之前重發,避免占用大量的網絡資源。
【附圖說明】
[0015]圖1是本發明的數據包的發送方法一實施例的流程圖;
[0016]圖2是本發明的數據包的發送方法另一實施例的流程圖;
[0017]圖3是本發明的網絡終端一實施例的原理框圖。
【具體實施方式】
[0018]為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合附圖,對本發明實施例的技術方案進行清楚、完整地描述。
[0019]圖1是本發明的數據包的發送方法一實施例的流程圖。如圖1所示,本實施例的數據包的發送方法包括以下步驟:
[0020]步驟Sll:建立緩存區,以存儲各個應用程序向網絡發送的數據包。
[0021]緩存區可以為移動終端內存的一部分,所述內存既包括物理內存也包括云存儲,緩存區的作用是將移動終端發送給網絡的數據包進行暫時存儲,即網絡僅能從緩存區接收應用程序產生的數據包。
[0022]對于數據包在緩存區中的存儲格式可以為:應用程序的名稱一數據包的內容一被存儲的時間,例如,對于應用程序為微信,其發送的數據包在緩存區中可保存為:微信一數據包的字符串一時間。
[0023]所述移動終端可以為PDA (Personal Digital Assistant,個人數字助理或平板電腦)、便攜式通信裝置等任何具有網絡連接功能的終端,所述網絡可以為4G(The 4thGenerat1n mobile communicat1n technology,第四代移動通信技術)網絡等遠程通信網絡,也可以為W1-Fi網絡等無線局域網絡,對應地,所述緩存區或者所述內存可以實現為前述任一舉例的移動終端的軟盤、U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等的一種或多種,當然也并不局限于此。
[0024]步驟S12:檢測當前緩存區中數據包的字節之和,并判斷字節之和是否大于或等于預置的容量閾值。
[0025]在判定所述字節之和大于或等于所述第一容量閾值時,表示當前網絡不通暢,網絡中響應數據包的速度小于應用程序生成數據包的速度,此時若繼續接收緩存區轉發的應用程序繼續生成的數據包,則極易導致網絡堵塞且影響網絡的正常使用,此時需要通知所有應用程序停止向網絡發送數據包,或者所述緩存區停止存儲接收到的應用程序發送的數據包,當然,也可以在步驟Sll的建立緩存區之前,預置所有應用程序禁止重發數據包,即預置所有應用程序在發送出一個數據包之后且所述數據包被網絡響應之前禁止發送下一個數據包,具體實現方式為將所有應用程序接收響應的時間設置成無窮大。
[0026]而在判定所述字節之和小于所述第一容量閾值時,表示當前網絡相對通暢,可繼續執行步驟S12。
[0027]步驟S13:向網絡重復發送一個字節最小的數據包。
[0028]步驟S14:判斷網絡對所述字節最小的數據包的響應時間是否小于或等于預置的時間閾值。
[0029]根據網絡反饋的數據包上的標識即可判斷是否為網絡對所述字節最小的數據包的響應。
[0030]若判定網絡對所述字節最小的數據包的響應時間大于預置的時間閾值,則繼續執行步驟S13。若判定網絡對所述字節最小的數據包的響應時間小于或等于預置的時間閾值,則執行步驟S15。
[0031]步驟S15:按照存儲于緩存區的時間順序,將緩存區中的數據包依次發送給網絡。
[0032]若收到網絡響應的數據包,則根據響應的數據包上的標識在緩存區中刪除對應格式存儲的數據包,并根據響應的數據包上的標識將其發送給對應的應用程序,以完成應用程序此次的網絡請求。
[0033]由上述可知,本實施例在數據包未被響應之前無需重復發送,可避免因字節較大的數據包以及多個數據包的重復發送導致的占用例如內存、處理器、帶寬等大量網絡資源的問題。
[0034]圖2是本發明的數據包的發送方法另一實施例的流程圖。在上述實施例的描述基礎上但與之不同的是,本實施例考慮到將緩存區中的數據包依次發送給網絡的之后,何種情況下通知應用程序繼續生成數據包。如圖2所示,本實施例的數據包的發送方法包括:
[0035]步驟S21:預置所有應用程序在發送出一個數據包之后且所述數據包被網絡響應之前禁止發送下一個數據包。
[0036]步驟S22:建立緩存區,以存儲各個應用程序向網絡發送的數據包。
[0037]步驟S23:檢測當前緩存區中數據包的第一字節之和,并判斷第一字節之和是否大于或等于預置的第一容量閾值。
[00