利用面向非連接的協(xié)議的數(shù)據(jù)通信的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的實施例涉及一種數(shù)據(jù)通信,尤其涉及一種利用面向非連接的協(xié)議(connect1nless-oriented protocol)而執(zhí)行數(shù)據(jù)通信的技術(shù)。
【背景技術(shù)】
[0002]計算機網(wǎng)絡(luò)使各計算機之間的通信成為可能。例如,計算機網(wǎng)絡(luò)包括局域網(wǎng)(Local Area Network:LAN)、廣域網(wǎng)(Wide Area Network:WAN)、因特網(wǎng)、無線網(wǎng)、混合設(shè)備網(wǎng)等。
[0003]在這種計算機網(wǎng)絡(luò)中,數(shù)據(jù)能夠以一個以上的包的形態(tài)傳送。由接收到的所有包重新構(gòu)成原來傳送的數(shù)據(jù)。在一些例中,包的序列號(sequence number)對于數(shù)據(jù)的重新構(gòu)成比較重要。
[0004]在預定的網(wǎng)絡(luò)環(huán)境(例如無線網(wǎng)絡(luò)環(huán)境)中,包往往容易在傳送的過程中由于網(wǎng)絡(luò)上的干擾、傳送信道的特性等而丟失(lost)。因此,為了將數(shù)據(jù)以包的形態(tài)可靠地傳送,網(wǎng)絡(luò)上的計算機之間例如會使用傳輸控制協(xié)議(Transmiss1n Control Protocol:TCP)0TCP為可用于傳輸層(transport layer)的協(xié)議。TCP為面向連接(connect1n-oriented)的協(xié)議,其在收發(fā)數(shù)據(jù)的計算機之間的消息在通過各計算機的應用而發(fā)生交換的時間內(nèi)實現(xiàn)連接的建立(establishment)及維持。
[0005]相反,作為傳輸層的另一協(xié)議的用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol:UDP)為面向非連接的協(xié)議。UDP通過將數(shù)據(jù)從數(shù)據(jù)發(fā)送器發(fā)送給數(shù)據(jù)接收器而執(zhí)行通信,且并不伴隨預先發(fā)送表示要從數(shù)據(jù)發(fā)送器傳送數(shù)據(jù)的信號的步驟或確認數(shù)據(jù)接收器的狀態(tài)的步驟。這種UDP本身并不提供由數(shù)據(jù)發(fā)送器確認數(shù)據(jù)接收器是否正常接收數(shù)據(jù)的機制,故與TCP相比UDP不能保障具有可靠性的傳送。
【發(fā)明內(nèi)容】
[0006]不需要執(zhí)行建立并解除用于數(shù)據(jù)傳送的連接的過程的UDP適于更加有效而簡便的數(shù)據(jù)傳送,例如可在無線網(wǎng)絡(luò)環(huán)境中實現(xiàn)比TCP更快的數(shù)據(jù)傳送。
[0007]為了在這種基于UDP的數(shù)據(jù)傳送中提高可靠性,可使用重新傳送機制。這種重新傳送機制的例中包括自動重復請求(Automatic Repeat reQuest:ARQ)方式(例如Go-Back-N ARQ方式以及選擇拒絕(Selective-Reject)ARQ方式等)。ARQ方式利用已傳送的包的序列號而檢測出由數(shù)據(jù)發(fā)送器傳送的包當中的沒有被數(shù)據(jù)接收器接收的包(即丟失的包),并響應于丟失的包的檢測而從數(shù)據(jù)接收器向數(shù)據(jù)發(fā)送器發(fā)送否定確認響應(Negative ACKnowledgement:NACK),從而請求丟失的包的重新傳送。
[0008]在ARQ方式中,如果已經(jīng)從數(shù)據(jù)接收器發(fā)送了對應于某一包的NACK卻沒有傳遞至數(shù)據(jù)發(fā)送器而丟失,則可能成為問題。通常,在數(shù)據(jù)發(fā)送器再次接收到對應于該包的NACK之前、或者在數(shù)據(jù)發(fā)送器在傳送該包之后的預定時間內(nèi)沒有接收到用于表示接收到該包的確認響應(ACKnowledgement:ACK)而發(fā)生超時(timeout)之前,不會重新傳送該包。因此,如果用于表示沒有接收到某一包的NACK消息丟失,則在執(zhí)行該包的重新傳送為止可能需要相當多的時間。
[0009]并且,在ARQ方式中,在對應于某一包的ACK已經(jīng)由數(shù)據(jù)接收器發(fā)送卻沒有傳遞至數(shù)據(jù)發(fā)送器而丟失的情況下,即使該包已被接收,數(shù)據(jù)發(fā)送器在超時以后還將進行不必要的重新傳送。
[0010]公開的實施例在借助于UDP之類的面向非連接的協(xié)議的數(shù)據(jù)通信中采用重新傳送機制,并且針對數(shù)據(jù)包的集合,用包含有表示各數(shù)據(jù)包是否已被數(shù)據(jù)接收器接收的信息的新的確認響應消息(acknowledgement message)代替普遍的ACK/NACK而使用。例如,前述的信息可以是根據(jù)數(shù)據(jù)包的接收而得到更新,從而能夠在所述的數(shù)據(jù)包集合的所有數(shù)據(jù)包都被接收之前一直維持顯示是否接收到該集合內(nèi)的各數(shù)據(jù)包的一種累積信息(cumulative informat1n)。這種機制可防止在現(xiàn)有的ARQ方式中由于ACK/NACK的丟失而導致包的重新傳送被延遲或重復性地重新傳送包的情況。
[0011]根據(jù)公開的實施例,確認響應消息既可以在發(fā)生了數(shù)據(jù)包丟失的情況下發(fā)送,也可以在丟失的數(shù)據(jù)包得到重新傳送而被接收的情況下發(fā)送。因此,發(fā)送確認響應消息的頻率比現(xiàn)有的ARQ方式中發(fā)送ACK/NACK的頻率低。
[0012]根據(jù)公開的實施例,直到發(fā)送確認響應消息為止,有關(guān)是否接收到數(shù)據(jù)包集合內(nèi)的各數(shù)據(jù)包的累積的信息包含于該確認響應消息內(nèi)。因此,與現(xiàn)有技術(shù)中的ARQ方式相比,即使某一確認響應消息丟失,也可以在短時間內(nèi)執(zhí)行本應根據(jù)丟失的確認響應消息而在數(shù)據(jù)發(fā)送器中執(zhí)行的操作。這是由于作為丟失的確認響應消息的后續(xù)的確認響應消息被數(shù)據(jù)接收器所接收時,可基于包含于后續(xù)的確認響應消息中的所述的信息而執(zhí)行該操作。
[0013]本發(fā)明是為了解決如上所述的技術(shù)問題而提出的,其目的在于防止在現(xiàn)有的ARQ方式中由于ACK/NACK的丟失而導致包的重新傳送延遲或重復性地重新傳送包的情況。
[0014]并且,本發(fā)明的另一目的在于使確認響應消息從數(shù)據(jù)接收器發(fā)送到數(shù)據(jù)發(fā)送器的次數(shù)的期望值小于現(xiàn)有技術(shù)中的ARQ方式下的ACK/NACK。
[0015]而且,本發(fā)明的又一目的在于實現(xiàn)即使丟失了確認響應消息,也能夠在短時間內(nèi)執(zhí)行本應根據(jù)丟失的確認響應消息執(zhí)行的操作。
[0016]根據(jù)一個示例性實施例,提供一種數(shù)據(jù)通信方法,利用面向非連接的協(xié)議(connect1nless-oriented protocol),包括如下步驟:隨著從數(shù)據(jù)發(fā)送器接收到多個數(shù)據(jù)包中的至少一個數(shù)據(jù)包,針對構(gòu)成為分別表示所述多個數(shù)據(jù)包中對應的數(shù)據(jù)包的接收與否的標志位(flag bit)而執(zhí)行至少一個按位運算(bitwise operat1n),從而判定所述多個數(shù)據(jù)包中是否存在丟失的數(shù)據(jù)包;進行所述判定的結(jié)果,如果判定為存在丟失的數(shù)據(jù)包,便將包含所述標志位的確認響應消息(acknowledgement message)發(fā)送給所述數(shù)據(jù)發(fā)送器。
[0017]根據(jù)所述數(shù)據(jù)通信方法的一個方面,所述數(shù)據(jù)通信方法還包括如下步驟:當通過所述數(shù)據(jù)發(fā)送器的重新傳送而接收到所述丟失的數(shù)據(jù)包時,根據(jù)接收重新傳送的所述數(shù)據(jù)包而將包含有更新的所述標志位的其他確認響應消息發(fā)送給所述數(shù)據(jù)發(fā)送器。
[0018]根據(jù)另一個示例性實施例,提供一種數(shù)據(jù)通信方法,利用面向非連接的協(xié)議,包括如下步驟:當從數(shù)據(jù)接收器接收到包含有分別表示多個數(shù)據(jù)包中對應的數(shù)據(jù)包是否被所述數(shù)據(jù)接收器所接收的標志位的確認響應消息時,執(zhí)行針對所述標志位的至少一個按位運算,從而識別所述多個數(shù)據(jù)包中丟失的數(shù)據(jù)包;將識別的所述數(shù)據(jù)包重新傳送給數(shù)據(jù)接收器。
[0019]根據(jù)所述數(shù)據(jù)通信方法的一個方面,所述數(shù)據(jù)通信方法還包括如下步驟:設(shè)定可利用于所述重新傳送的時間段;在所述時間段內(nèi)反復地重新傳送識別的所述數(shù)據(jù)包。
[0020]根據(jù)另一個示例性實施例,提供一種數(shù)據(jù)接收器,利用面向非連接的協(xié)議而執(zhí)行數(shù)據(jù)通信,包括:包丟失確認單元,隨著從數(shù)據(jù)發(fā)送器接收到多個數(shù)據(jù)包中的至少一個數(shù)據(jù)包,針對構(gòu)成為分別表示所述多個數(shù)據(jù)包中對應的數(shù)據(jù)包的接收與否的標志位而執(zhí)行至少一個按位運算,從而判定所述多個數(shù)據(jù)包中是否存在丟失的數(shù)據(jù)包;確認響應消息傳送單元,進行所述判定的結(jié)果,如果存在丟失的數(shù)據(jù)包,便將包含所述標志位的確認響應消息發(fā)送給所述數(shù)據(jù)發(fā)送器。
[0021]根據(jù)所述數(shù)據(jù)接收器的一個方面,當通過所述數(shù)據(jù)發(fā)送器的重新傳送而接收到所述丟失的數(shù)據(jù)包時,所述確認響應消息傳送單元還將包含根據(jù)接收重新傳送的所述數(shù)據(jù)包而更新的所述標志位的其他確認響應消息發(fā)送給所述數(shù)據(jù)發(fā)送器。
[0022]根據(jù)另一個示例性實施例,提供一種數(shù)據(jù)發(fā)送器,利用面向非連接的協(xié)議而執(zhí)行數(shù)據(jù)通信,包括:重新傳送處理單元,當從數(shù)據(jù)接收器接收到包含有分別表示多個數(shù)據(jù)包中對應的數(shù)據(jù)包是否被所述數(shù)據(jù)接收器所接收的標志位的確認響應消息時,執(zhí)行針對所述標志位的至少一個按位運算,從而識別所述多個數(shù)據(jù)包中丟失的數(shù)據(jù)包;包傳送單元,將識別的所述數(shù)據(jù)包重新傳送給數(shù)據(jù)接收器。
[0023]根據(jù)所述數(shù)據(jù)發(fā)送器的一個方面,所述重新傳送處理單元還設(shè)定可利用于所述重新傳送的時間段,所述包傳送單元還將在所述時間段內(nèi)反復地重新傳送識別的所述數(shù)據(jù)包。
[0024]根據(jù)另一個示例性實施例,提供一種數(shù)據(jù)通信方法,包括如下步驟:構(gòu)成分別表示是否從數(shù)據(jù)發(fā)送器接收到多個數(shù)據(jù)包中對應的數(shù)據(jù)包的多個指示符;執(zhí)行針對所述多個指示符的邏輯運算,從而判定所述多個數(shù)據(jù)包中是否存在丟失的數(shù)據(jù)包;進行所述判定的結(jié)果,如果存在丟失的數(shù)據(jù)包,便將包含所述多個指示符的確認響應消息