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