- 基于CNAPS的流水號管理方法 推薦度:
- 相關推薦
基于CNAPS的流水號管理方法
基于CNAPS的流水號管理方法 四川大學計算機科學系 黃麗娟摘 要:中國國家現(xiàn)代化支付交易清算系統(tǒng)(China National Automation Payment System),簡稱CNAPS,是中國人民銀行在世界銀行貸款支持下正在建設中的中央銀行支付系統(tǒng),該系統(tǒng)的主要功能是對各商業(yè)銀行的資金進行最終的清算。文章分析了目前CNAPS系統(tǒng)可靠性,響應時間等方面的一些不完善之處,介紹了改善系統(tǒng)可靠性,縮短系統(tǒng)響應時間的方法,即流水號管理。
關鍵詞:CNAPS SB分行系統(tǒng) 資金清算 流水號 套接口
商業(yè)銀行(Special Bank)之間的資金收、付交易,必須經(jīng)過政府授權(quán)的中央銀行進行資金清算,以發(fā)揮中央銀行的宏觀調(diào)控功能,從而穩(wěn)定貨幣、穩(wěn)定市場。CNAPS系統(tǒng)即是由各級中央銀行組成, 因此SB分行系統(tǒng)必須和CNAPS系統(tǒng)通信,通過CNAPS系統(tǒng)完成資金的最終清算。CNAPS系統(tǒng)的可靠、有效運行,將關系到企業(yè)、個人的資金是否實現(xiàn)有效、及時、可靠的轉(zhuǎn)移,對維護和健全銀行體系,完善金融市場是至關重要的。
CNAPS系統(tǒng)中數(shù)據(jù)的傳送是全雙工的。一方面是CNAPS向SB發(fā)送信息或文件;另一方面SB也向CNAPS發(fā)送信息或文件。以下著重分析CNAPS向SB發(fā)送信息或文件時的情況,SB向CNAPS發(fā)送信息或文件時的情況與此類似。
1 目前CNAPS系統(tǒng)的一些不完善之處
目前在CNAPS向SB發(fā)送信息或文件的路徑上存在以下不足之處:接收端不能得到獨立的信息或文件;文件請求響應時間過長;傳輸層能提供的可靠性有限。
1) 不能得到獨立的信息和文件
兩個應用程序通過TCP連接交換8bit字節(jié)構(gòu)成的字節(jié)流。TCP不在字節(jié)流中插入記錄標識符。我們將這稱為字節(jié)流服務(byte stream service)。如果一方的應用程序先傳10字節(jié),又傳20字節(jié),再傳50字節(jié),連接的另一方將無法了解發(fā)方每次發(fā)送了多少字節(jié)。收方可以分4次接收這80個字節(jié),每次接收20個字節(jié)。一端將字節(jié)流放到TCP連接上,同樣的字節(jié)流將出現(xiàn)在TCP連接的另一端。TCP對字節(jié)流的內(nèi)容不作任何解釋。對字節(jié)流的解釋由TCP連接雙方的應用層解釋。當CNAPS向SB發(fā)送信息或文件時,SB得到的只是無記錄標識的字節(jié)流,而無法還原出獨立的信息或文件。
2)文件請求響應時間過長
在CNAPS系統(tǒng)中,SB作為客戶機,CNAPS作為服務器運行,客戶是指主動發(fā)起通信請求的應用程序,而服務器是被動等待接收通信請求的應用程序。所以在CNAPS向SB發(fā)送信息或文件的路徑上,CNAPS不會主動向SB發(fā)送信息或文件,它必須首先收到SB的請求。
在CNAPS向SB發(fā)送信息或文件的路徑上,SB向CNAPS發(fā)出信息或文件請求的同時啟動一個定時器,當定時器超時(仍未接收到正確的信息或文件)SB則認為這個請求丟失或損傷因而進行重傳。當CNAPS與SB傳送的數(shù)據(jù)單元是文件時,由于文件數(shù)據(jù)量很大,正常情況下都要經(jīng)過很長的時延才能從CNAPS端全部傳送到SB端, 因此定時器的時間應設置為比較大的值,SB往往要等待很長的時間才能判斷是否重發(fā)請求,SB的響應時間很長。特別是當CNAPS發(fā)送的文件有一小部分出錯,SB端TCP檢查到效驗和出錯時就會拋棄整個文件,接著SB定時器超時,SB重發(fā)請求,CNAPS再次重發(fā)整個文件,SB從發(fā)出第一次請求開始,需要經(jīng)歷很長的時間才能接收到完全正確的文件。
3)傳輸層能提供的可靠性是有限的
CNAPS系統(tǒng)的傳輸層采用的是TCP傳輸控制協(xié)議,理論上TCP協(xié)議是可靠的,然而實際的傳輸服務并非毫無錯誤,但在不可靠的網(wǎng)絡之上提供可靠的服務正是傳輸層要實現(xiàn)的目標。
傳輸層是增強網(wǎng)絡層提供的服務質(zhì)量,它必須彌補應用層用戶要求與網(wǎng)絡層所提供的服務之間的差別。用戶在建立連接時對各種服務參數(shù)(如殘余誤碼率)指定希望的、可接受的最低限度的值,傳輸層根據(jù)網(wǎng)絡服務的種類或它能夠獲得的服務來檢查這些參數(shù),決定能否提供所要求的服務。當傳輸層發(fā)現(xiàn)服務質(zhì)量參數(shù)的某些值是無法到達的,傳輸層甚至不去與目的機器連接,便直接通知應用層連接請求失敗。因此傳輸層能提供的可靠性是有限的。
2 CNAPS系統(tǒng)性能改善方法--流水號管理
改進了的CNAPS系統(tǒng)在CNAPS發(fā)送信息或文件的路徑上都增加了流水號管理的通信處理機制,進一步增強CNAPS系統(tǒng)可靠性,并縮短了文件請求/發(fā)送的響應時間。
一、 對接收方信息或文件不能獨立和文件請求響應時間過長的解決
在CNAPS發(fā)送信息或文件的路徑上,發(fā)送數(shù)據(jù)在CNAPS端,為保證SB端接收到獨立的信息或文件,通信上采用SB請求一次,CNAPS發(fā)送一次的辦法。
CNAPS給它生成的每個信息分配一個流水號,以標識該信息在CNAPS數(shù)據(jù)流中的位置。通信上SB請求一個流水號,CNAPS才發(fā)送流水號為對應值的信息。這樣各個信息就能分開。
在CNAPS向SB發(fā)送信息路徑上流水號的處理過程可分成三步:
1)當系統(tǒng)開始,鏈路建立后SB向CNAPS發(fā)初始化流水號請求,隨后CNAPS向SB發(fā)送初始化流水號回答,把SB的流水號初始化為0。不是系統(tǒng)開始,如出現(xiàn)故障鏈路斷開再次建立,鏈路建立后SB會向CNAPS發(fā)證實流水號請求,如CNAPS判斷SB的流水正確,CNAPS會發(fā)出證實流水號回答。
2)接著SB開始不斷地向CNAPS發(fā)送信息請求并從CNAPS接收信息,直到接收到CNAPS端無信息發(fā)送電文為止。當SB端接收到CNAPS的無信息發(fā)送電文,隔一段時間,SB又會向CNAPS發(fā)送信息請求。
3)當一天結(jié)束時,SB端會向CNAPS發(fā)送一個結(jié)束流水號請求,當SB接收到CNAPS的結(jié)束流水號回答后,SB斷開鏈路。
證實流水號請求和證實流水號回答(或初始化流水號請求和初始化流水號回答)這兩個步驟稱為流水號同步,通過流水號同步,SB可以知道已經(jīng)接收到CNAPS發(fā)送數(shù)據(jù)流的什么位置。(這類似于TCP的三步握手)。在TCP的三步握手協(xié)議中,因為數(shù)據(jù)傳輸是雙向的,所以要完成客戶和服務器的同步需要三個步驟。在CNAPS系統(tǒng)中,CNAPS發(fā)送信息路徑上數(shù)據(jù)是由CNAPS向SB端單向傳輸,因此在該路徑上CNAPS和SB的流水號同步只需兩個步驟。
下面是日初系統(tǒng)開始時, CNAPS向SB發(fā)送信息路徑上,CNAPS端有2個未發(fā)送信息時流水號的處理過程(文件接收路徑上流水號的處理過程與此類似):
CNAPS(日初流水號初始化為0) &nbs
p; SB(流水號為上日終止時的值50) 圖2-1 沒有電文丟失、重復等錯誤的理想情況(未到一天結(jié)束時)
圖2-1直線兩側(cè)數(shù)值是CNAPS端和SB端的流水號,斜線上表示是SB和CNAPS之間的傳送電文。CNAPS端流水號是指CNAPS已發(fā)送且被SB正確接收到的信息的個數(shù)(如CNAPS端流水號為3,表示CNAPS已發(fā)送出去3個信息且這時SB接收到的信息個數(shù)也是3)。SB流水號是指SB已正確接收到信息的個數(shù)。
CNAPS流水號的更新是在CNAPS接收到SB請求下一個流水號時,這時CNAPS就知道上一個流水號已被SB正確接收到了。SB端流水號的更新是當SB正確接收到了信息。
規(guī)定SB必須正確接收到一個流水號才能請求下一個流水號。 斜線上SB信息請求報文中請求的流水號為SB 端的流水號+1,即SB希望接收到的下一個CNAPS信息的流水號。
2) 在CNAPS向SB發(fā)送文件的路徑上
流水號處理過程與CNAPS向SB發(fā)送信息路徑上流水號處理類似。
把CNAPS生成的文件分成若干分塊,給予每個分塊一個流水號,以標志該文件分塊在CNAPS數(shù)據(jù)流中的位置(分塊大小的指標是保證SB文件分塊請求的響應時間可以接受)。通信上SB請求一個流水號,CNAPS才發(fā)送流水號為對應值的文件分塊。當文件傳輸過程中出現(xiàn)錯誤時,SB能及時發(fā)現(xiàn),只需要CNAPS重傳某個文件分塊,而不用整個文件重新傳送。由于文件分塊的數(shù)據(jù)量不大而且SB能及時處理錯誤,因此SB正確接收到整個文件的響應時間比不采用流水號管理時的響應時間大大縮短了。當一個文件接收完畢,SB才請求下一個文件,這樣每個文件也能獨立開來。流水號處理過程與圖2-1類似。
二、對傳輸層只能提供有限可靠性的解決
流水號管理中采用了類似于傳輸層TCP協(xié)議的一些機制,相當于在應用層進一步增強傳輸層可靠性。
1) 超時重傳機制
TCP協(xié)議中為了解決分組的丟失,采用的是超時重傳機制。客戶發(fā)出連接請求的同時啟動一個定時器,不管請求或者響應丟失,定時器總會超時溢出。一旦定時器超時,客戶再次發(fā)起連接請求,并重新啟動定時器。直到成功建立連接,或當重傳次數(shù)到達一定限度時,認為連接不可建立而放棄。
在CNAPS向SB發(fā)送信息或文件路徑上的流水號管理采用了類似TCP的超時重傳機制,SB發(fā)出信息或文件分塊請求的同時啟動一個定時器。當CNAPS返回的信息或文件分塊因線路噪聲損壞,SB方就會檢測到出錯,從而丟棄它們。在SB定時器時間到達時仍未收到正確的信息或文件分塊,SB就會斷開連接。
2) 序號機制
TCP協(xié)議中通過給數(shù)據(jù)流中每個八位組賦予序號并要求接收方記住所收八位組的序號來檢測重復現(xiàn)象。為了避免遲到的確認和重復確認帶來的混亂,TCP的"帶重傳的肯定確認"協(xié)議在確認信息中攜帶一個序號,這樣接收方就能正確地把分組與確認關聯(lián)起來。
在CNAPS向SB發(fā)送信息或文件路徑上對信息或文件分塊進行編號,這種編號稱為流水號,每個待發(fā)送數(shù)據(jù)都對應一個流水號的機制使得接收端能夠辨別接收數(shù)據(jù)是否重復。
4 結(jié)論
CNAPS系統(tǒng)在我國金融界舉足輕重的地位決定了必須從多方面保證它的可靠性,否則一個失誤可能會導致上百億元的資金流失。在CNAPS系統(tǒng)中運用流水號的管理方法是非常必要的,它可以進一步增強系統(tǒng)可靠性,縮短系統(tǒng)的響應時間。
[參考文獻]
[1] 周明天 汪文勇,《TCP/IP網(wǎng)絡原理與技術(shù)》,清華大學出版社,1993年12月
[2] 中國人民銀行支付與科技司,《中國國家現(xiàn)代化支付系統(tǒng)》,中國金融出版社,1995年8月
【基于CNAPS的流水號管理方法】相關文章:
基于CNAPS的流水號管理方法08-06
基于CNAPS的流水號管理方法08-06
基于CSSCI的200108-18
班級管理方法初探08-16
班級管理方法的初探08-17
基于你還愛我作文10-22
基于標準的教學設計08-06
基于高效的課堂展示08-25
為了學校 基于學校08-17