<listing id="vjp15"></listing><menuitem id="vjp15"></menuitem><var id="vjp15"></var><cite id="vjp15"></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><menuitem id="vjp15"></menuitem></video></cite>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<var id="vjp15"><strike id="vjp15"><listing id="vjp15"></listing></strike></var>
<menuitem id="vjp15"><strike id="vjp15"></strike></menuitem>
<cite id="vjp15"></cite>
<var id="vjp15"><strike id="vjp15"></strike></var>
<var id="vjp15"></var>
<var id="vjp15"></var>
<var id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></var>
<menuitem id="vjp15"></menuitem><cite id="vjp15"><video id="vjp15"></video></cite>
<var id="vjp15"></var><cite id="vjp15"><video id="vjp15"><thead id="vjp15"></thead></video></cite>
<var id="vjp15"></var>
<var id="vjp15"></var>
<menuitem id="vjp15"><span id="vjp15"><thead id="vjp15"></thead></span></menuitem>
<cite id="vjp15"><video id="vjp15"></video></cite>
<menuitem id="vjp15"></menuitem>

利用面向非連接的協議的數據通信的制作方法_3

文檔序號:8265203閱讀:來源:國知局
輸入,并將數據變換為各自具有預定大小的包。如此被封包的數據存儲于數據發送器I1的傳送緩沖器113。數據發送器110的包傳送單元115將存儲于傳送緩沖器113中的數據包傳送給數據接收器120。
[0071]將數據接收器120的包接收單元121構成為接收由數據發送器110的包傳送單元115傳送的數據包。接收的數據包存儲于數據接收器120的接收緩沖器123。由存儲于接收緩沖器123中的數據包重新構成原來傳送的數據。
[0072]在示例性實施例中,數據包中包括頭(header)以及數據凈荷(data payload)。例如,在數據發送器110的封包單元111中以將頭附加于作為待傳送數據的一部分的數據凈荷的方式生成數據包。當由數據接收器120接收到數據包時,包含于接收的數據包的頭中的信息可被利用于數據接收器120管理該數據包。例如,數據包的頭可包括賦予給該數據包的序列號。
[0073]以下參照圖2而對由數據發送器110傳送的數據包的示例性結構進行更為詳細的論述。如圖2所示,示例性的數據包220包括(n-7)字節的數據凈荷以及數據凈荷之前的7字節的頭。數據包220的長度η可變。數據包220的7字節的頭所表示的信息用于以圖2所示的X個數據包的塊(以下簡稱數據塊)210為單位管理存儲于接收緩沖器123中的數據包。包含于數據塊210中的包的個數X可變。
[0074]在數據包220的頭中,第一個字節(字節O)表示數據包220的消息類型,隨后的兩個字節(字節I和字節2)表示數據包220所屬數據塊210的索引(Ind ex),隨后的兩個字節(字節3和字節4)表示數據包220在該數據塊210中具有的索引(例如i),隨后的兩個字節(字節5和字節6)表示包含于該數據塊210中的數據包的個數(例如X)。因此,當數據接收器120的包接收單元121接收到數據包220時,可以從數據包220的頭中導出數據包220將存儲于接收緩沖器123的位置。
[0075]再來參照圖1,以下對用于重新傳送已傳送的數據包中的丟失的數據包的過程進行說明。
[0076]數據接收器120的包丟失確認單元125用于構成并管理包接收與否信息,該信息表示是否已經從數據發送器I1接收到存儲于接收緩沖器123中的預定個數的數據包的集合(set)內的各數據包。例如,該信息可包含多個指示符(indicator),各指示符可表示是否已經從數據發送器110接收到數據包集合內的多個數據包中的對應的數據包。各指示符可以是所述的信息內的一個標志(Flag)或位(Bit)。可將包接收與否信息更新,以便每當在數據接收器120中接收到一個數據包時能夠表示該數據包已由數據接收器120接收。
[0077]圖3表示根據本發明的實施例而構成的用于表示是否接收到數據包集合內的各數據包的信息的結構。在示例性實施例中,為了表示是否接收到包含于圖2所示數據塊210的預定的子塊(sub-block)中的各數據包,包丟失確認單元125維持圖3所示64位塊切片(Block Slice)結構310。在塊切片結構310中,從位14到位63的50位為分別表示是否接收到包含于子塊中的數據包的標志。每當接收到包含于子塊中的數據包時,包丟失確認單元125將對應于該數據包的標志位設定為I。即,針對50個數據包的集合,一個塊切片包含表示其中的各數據包是否已由數據接收器120接收的信息。
[0078]在塊切片結構310中,從位O到位4的5位表示在數據塊210中子塊所具有的索弓I。例如,如果該5位的子塊的索引為0,則50位的包接收與否標志表示是否接收到從數據塊210的包O到包49的50個數據包,而如果子塊的索引為1,則包接收與否標志表示是否接收到從數據塊210的包50到包99的50個數據包。
[0079]塊切片結構310的位5在接收到所有包的情況下被設定為1,否則被設定為0,而位6在丟失了所有包的情況下被設定為1,否則被設定為O。塊切片結構310的位7是一個對目前正在接收中的子塊被設定為1、否則被設定為O的片段(f ragment)位,而位8至位13的6位表示子塊當中目前為止已經接收的數據包所具有的索引(例如,包220的包索引)中最大的索引。這一表示接收包的最大索引的6位在每當接收到數據包時便與所接收的數據包的索引經過對比,并根據其比較結果而得到更新。
[0080]再來參照圖1,對包丟失確認單元125的操作進行進一步的說明。
[0081]基于包含分別表示是否接收到數據包集合內的多個數據包中的對應的數據包的多個指示符的信息,包丟失確認單元125判定數據包集合內的數據包中是否存在丟失的數據包。另外,可以基于表示多個數據包中之前丟失的數據包的丟失信息以及多個數據包中之前接收的數據包的序列號中最大的序列號(例如,塊切片結構310中的接收包的最大索弓I)而判定是否存在丟失的數據包。進而,包丟失確認單元125可基于前述的包接收與否信息而識別出數據包集合內的數據包中丟失的數據包的個數為多少和/或丟失的數據包是什么。
[0082]包丟失確認單元125判定數據包集合內的數據包中是否存在丟失的數據包的操作可以包括對包接收與否信息內的指示符執行邏輯運算的操作。例如,包丟失確認單元125可利用圖4所示位運算(bit operat1n)而判定是否存在丟失的包。圖4作為一例,表示由數據接收器120依次接收到包O、包1、包3、以及包7時判定是否存在丟失的包的過程。為了方便,圖4表示了針對8個位的位運算。不難理解,并不是要具體限定公開的實施例中記載的作為位運算的運算對象的位個數。
[0083]進而,前述的邏輯運算可通過對包接收與否信息內的每一個指示符分別進行與其他指示符無關的處理的方式執行。在預定的實施例中,該邏輯運算可以是按位(bitwise)運算(例如,按位NOT運算、按位AND運算、按位XOR運算、按位OR運算等)。
[0084]這種邏輯運算可包括將所述的指示符取為一個運算對象(operand)的至少一個一元運算(unary operat1n)。與此同時(或者作為替代方案),所述的邏輯運算可包括至少一個二元運算(dyadic operat1n),所述至少一個二元運算將表示判定數據包集合內的數據包中是否存在丟失的數據包之前由所述多個數據包中丟失的包的丟失信息、或表示數據包集合內的接收的數據包的序列號中最大的序列號的信息與所述多個指示符一同取為兩個運算對象。例如,圖4所示的位運算包括:對表示目前為止接收到的包的位(以下也會統稱為“A”)執行按位NOT運算;對表示這樣的NOT運算的結果(以下也會統稱為“B”)以及之前丟失的包的位(以下也會統稱為“C”)執行按位XOR運算;對根據接收的包的最大索引(例如,塊切片結構310內的接收包的最大索引)的屏蔽位(以下也會統稱為“MASK”)以及這樣的XOR運算的結果(以下也會統稱為“D”)執行按位AND運算。如果所述的AND運算的結果(以下也會統稱為“Y”)大于0,則判定存在丟失的包。這種位運算可將判定是否發生包丟失所需的時間復雜度降低為O (I)水平。
[0085]參照圖4,以判定是否發生包丟失的過程為例進行說明。在圖4所示的例中,A、B、C、D、Y、以及MASK各自的位從右側到左側分別對應于O到8。當接收到包I時,由于目前為止接收的數據包為包O及包I,因此A為00000011,并由于不存在之前丟失的包,因此C為00000000O因此,D為11111100。根據接收的數據包的索引(即,O和I)中最大的索引(gp
I)而將MASK設定為00000011 (在MASK的位中從包O開始最大的索引的包所對應的位被設定為I)。結果,Y為00000000,即判定為沒有發生數據包的丟失。接著,如果接收到包3,則由于目前為止接收到的數據包為包O、包1、以及包3,因此A為00001011,并由于不存在之前丟失的數據包,因此C為00000000。因此,D為11110100。由于接收的數據包的索引中最大的索引為3,因此MASK為00001111。結果,Y為00000100,即判定為發生了數據包的丟失。然后,包丟失確認單元125可利用漢明重量(Hamming Weight)算法及查找第一位(Find First B it)算法等而識別出丟失了幾個數據包以及丟失了第幾個數據包。
[0086]再來參照圖1,對丟失的數據包的重復傳送過程繼續說明。
[0087]數據接收器120的確認響應消息傳送單元127在判定出存在丟失的數據包的情況下將預定的確認響應消息發送給數據發送器110。確認響應消息包括由包丟失確認單元125構成/更新的包接收與否信息。例如,確認響應消息傳送單元127可響應于已發生數據包丟失的判定而將包含有64位塊切片結構310的確認響應消息發送給數據發送器110,而此時塊切片結構310的片段位被設定為I。此外,確認響應消息傳送單元127在丟失了包
當前第3頁1 2 3 4 5 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
韩国伦理电影