[發(fā)明專利]一種分布式系統(tǒng)中消息的傳遞方法有效
| 申請(qǐng)?zhí)枺?/td> | 201110328318.9 | 申請(qǐng)日: | 2011-10-25 |
| 公開(公告)號(hào): | CN102368700A | 公開(公告)日: | 2012-03-07 |
| 發(fā)明(設(shè)計(jì))人: | 張攀勇;袁重橋;趙力;邵宗有;劉新春;苗艷超;王勇 | 申請(qǐng)(專利權(quán))人: | 曙光信息產(chǎn)業(yè)(北京)有限公司 |
| 主分類號(hào): | H04L1/18 | 分類號(hào): | H04L1/18;H04L1/16;H04L12/24 |
| 代理公司: | 北京安博達(dá)知識(shí)產(chǎn)權(quán)代理有限公司 11271 | 代理人: | 徐國(guó)文 |
| 地址: | 100084 *** | 國(guó)省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 分布式 系統(tǒng) 消息 傳遞 方法 | ||
1.一種分布式系統(tǒng)中消息的傳遞方法,其特征在于:
在通信通路的兩端分別維護(hù)一個(gè)消息序號(hào)和預(yù)期消息序列號(hào),在連接第一次建立的時(shí)候,通信雙方首先通過控制消息同步消息序號(hào)為0,同時(shí)通信雙方同步預(yù)期消息序列號(hào)為0;
對(duì)于每次發(fā)送的消息,首先獲取連接的消息序號(hào),將該消息序號(hào)填充到發(fā)送消息的控制消息頭部中,發(fā)送消息成功后,更新發(fā)送消息的發(fā)送時(shí)間,將該消息放入待確認(rèn)發(fā)送消息隊(duì)列中,等待來自接收方的確認(rèn);
接收方在接收到消息之后,檢查消息頭上的消息序號(hào)是否與當(dāng)前的預(yù)期消息序號(hào)匹配;
發(fā)送方在接收到接收方返回的確認(rèn)消息,根據(jù)消息號(hào)將待發(fā)送隊(duì)列上消息號(hào)小于等于該消息號(hào)的消息,確認(rèn)發(fā)送完成,通知上層發(fā)送完成,同時(shí)更新待發(fā)送方的待確認(rèn)消息號(hào)為確認(rèn)消息號(hào);如果確認(rèn)消息號(hào)在待發(fā)送隊(duì)列上未找到待確認(rèn)消息,則認(rèn)為該消息已被確認(rèn),直接丟棄該確認(rèn)消息;
發(fā)送方的待發(fā)送隊(duì)列中的請(qǐng)求如果在固定時(shí)間中沒有被應(yīng)答,則認(rèn)為發(fā)送消息丟失,重新發(fā)送該消息,等待應(yīng)答消息;
在出現(xiàn)故障之后,發(fā)送方和接收方協(xié)商待確認(rèn)消息號(hào)以及發(fā)送消息號(hào),如果發(fā)現(xiàn)接收方的待確認(rèn)消息號(hào)大于發(fā)送方的待確認(rèn)消息號(hào),則表示存在已經(jīng)接收,但是發(fā)送方未確認(rèn)的消息號(hào),發(fā)送方同步待確認(rèn)消息號(hào)為接收方的待確認(rèn)消息號(hào),同時(shí)將待發(fā)送消息隊(duì)列中消息號(hào)在接收方預(yù)期消息號(hào)和發(fā)送方發(fā)送消息號(hào)-1之間的消息進(jìn)行重發(fā)。
2.如權(quán)利要求1所述的方法,其特征在于:在檢查消息頭上的消息序號(hào)是否與當(dāng)前的預(yù)期消息序號(hào)匹配時(shí),
如果消息序號(hào)小于預(yù)期消息序號(hào),則認(rèn)為該消息已經(jīng)發(fā)送完成,丟棄收到的消息,并向發(fā)送方返回確認(rèn)消息,確認(rèn)號(hào)為當(dāng)前預(yù)期消息序號(hào)-1;
如果消息序號(hào)大于預(yù)期消息序號(hào),則將該消息插入待接收消息隊(duì)列中,等待預(yù)期消息;
如果消息序號(hào)等于預(yù)期消息號(hào),則將該消息提交給接收方處理,搜索待接收消息隊(duì)列,是否存在預(yù)期消息號(hào)之后連續(xù)的消息,如果存在,一并提交給接收方處理,更新最新的預(yù)期消息號(hào)為提交的最新消息號(hào)N+1;最后向發(fā)送方返回確認(rèn)消息,確認(rèn)消息號(hào)為提交的最新的消息號(hào)N。
3.如權(quán)利要求1所述的方法,其特征在于:所述發(fā)送方在消息發(fā)送之間,使用消息校驗(yàn)算法計(jì)算消息校驗(yàn)值,并將該校驗(yàn)值附加到發(fā)送消息頭中,進(jìn)行消息發(fā)送。
4.如權(quán)利要求3所述的方法,其特征在于:所述校驗(yàn)算法采用MD5或CRC。
5.如權(quán)利要求1所述的方法,其特征在于:所述接收方在接收到消息之后,直到消息完全接收到接收緩沖區(qū)的內(nèi)存之后,才開始計(jì)算消息的校驗(yàn)值,如果發(fā)現(xiàn)計(jì)算出來的消息校驗(yàn)值和消息頭中間攜帶的發(fā)送方校驗(yàn)值不匹配,則認(rèn)為消息在傳遞路徑上傳輸錯(cuò)誤,直接將該消息丟棄,不進(jìn)行差錯(cuò)控制步驟中的接收操作,發(fā)送NAK消息給發(fā)送方,攜帶該錯(cuò)誤的消息號(hào)。
6.如權(quán)利要求1所述的方法,其特征在于:所述發(fā)送方在接收到NAK消息,則獲知接收方接收該消息錯(cuò)誤,在待確認(rèn)發(fā)送消息隊(duì)列中找到消息號(hào)相同的消息,進(jìn)行消息重發(fā),繼續(xù)等待發(fā)送消息的消息確認(rèn)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于曙光信息產(chǎn)業(yè)(北京)有限公司,未經(jīng)曙光信息產(chǎn)業(yè)(北京)有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110328318.9/1.html,轉(zhuǎn)載請(qǐng)聲明來源鉆瓜專利網(wǎng)。





