美章網 資料文庫 醫學數字與通訊協議實現策略范文

醫學數字與通訊協議實現策略范文

本站小編為你精心準備了醫學數字與通訊協議實現策略參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。

醫學數字與通訊協議實現策略

1DICOM上層協議(ULP)

ULP處于DICOM應用實體的底層,從開放系統互聯(OSI)分層模型看,它包括了對話層、表示層、應用層的應用控制服務元素(ACSE)部分[1].為了體現ULP跨越了多個OSI分層這一事實,圖1中用斜線部分表示它.ULP的作用主要包括兩方面:①提供應用層的公共服務元素ACSE,具體包括在對等應用實體間建立關聯,正常釋放關聯,異常中止關聯等功能;②為DIMSE提供網絡數據傳輸支持,也就是以ULP規定的協議數據包格式傳送或接收DIMSE的命令流與數據流.ULP是應用層調用網絡服務的功能接口,實際中廣泛使用基于傳輸控制協議/互聯網協議(TCP/IP)的4層結構模型,此時ULP直接調用TCP提供的網絡傳輸功能構建本層服務,供應用層調用.

2ULP提供的服務

ULP提供的4種服務及對應的服務對象.A-ASSOCIATE服務用來在對等應用實體間建立關聯,它是一個證實性服務.在關聯建立階段,雙方需要交換包括應用上下文、表示上下文、DIMSE特定的用戶信息等初始化信息,因此建立關聯也是個協商過程.一旦關聯建立,則雙方應用實體對本次關聯中的應用層服務項目的范圍及相關的參數就有了約定,這樣就保證了后繼DIMSE消息交互的順利進行.A-RELEASE服務用來在對等的應用實體間正常有序地結束關聯,它也是一個證實性服務.使用A-RELEASE結束關聯不會造成任何應用層數據的丟失,因此是一種優雅的中止方式.A-ABORT服務用來異常中止應用實體關聯,它是一個非證實性服務.A-ABORT擁有3個服務使用者,這意味著應用實體、DIMSE或ULP這3個層次中的任何實體一旦遇到異常情況都可利用A-ABORT強行中止應用關聯,本服務可能造成各層待傳數據與暫存數據的丟失.P-DATA-TF服務用來向對等應用實體傳送DIMSE命令流與數據流,它是一個非證實性服務.P-DATA-TF服務是應用實體獲取網絡傳輸服務的邏輯接口,應用實體的某一方一旦使用該服務把DIMSE消息流傳送出去,就可以認為對方應用實體能準確無誤地接收到此消息.3ULP的協議數據單元(PDU)及其實現ULP一共提供了7個PDU來實現上述4種服務.DICOM的所有通信最終就是依靠上述7個PDU來完成的[4].PDU承擔實現ULP的任務,而PDU本身必須依賴下層網絡提供的服務接口.雖然DICOM標準提供了基于OSI與TCP/IP兩種可能的實現方式,實際中,一般都采用基于TCP/IP的4層模式,因此首先必須充分了解TCP/IP提供的網絡服務和獲取這些服務的調用接口.在此基礎上,本文給出了有代表性的PDU實現實例.

3.1TCP/IP協議及套接字接口

TCP/IP是應用最廣泛的傳輸層/網絡層協議,也是事實上的工業標準[5].TCP是一種面向連接的可靠協議.在復雜的互聯網上,它完全屏蔽了任意兩個端點間進行通信的細節,提供了端對端有序、無差錯流式的數據傳輸功能.獲取TCP服務的編程接口是套接字.套接字鎖定了網絡層地址(IP地址)與傳輸層地址(端口號),它是對一個通信端點的抽象[6].ULP所有的PDU數據交互最終需要借套接字來實現.

3.2PDU實現實例

ULP中使用最頻繁的PDU是P-DATA-TF,所有的DIMSE消息都是通過它進行傳送和接收,P-DATA-TFPDU的最大長度必須符合應用關聯建立時雙方的協商結果.如圖3所示,每一個PDU封裝了若干個表示數據值(PDV),每一個PDV由一個字節的表示上下文ID、一個字節的消息控制頭與一個DIMSE命令或數據片段組成.表示上下文ID在關聯建立協商時確認,因此只在某次特定的應用關聯內有效,它指示本PDV所載DIMSE消息所屬的服務類.控制頭用來指示本PDV是命令還是數據,以及是否是本類型PDV(命令或數據)中的最后一個.一個DIMSE消息包可能被分為若干片段,每個P-DATA-TFPDU可以攜帶一個或若干個片段(受PDU最大長度值限制).表示上下文ID與消息控制頭保證了對方ULP實體能準確無誤地重組DIMSE消息包.

4ULP的實現

ULP借助于ULP的PDU來實現,而PDU依靠套接字來完成實際的網絡數據傳輸,這只是靜態的描述.在一定的上下文環境下,ULP實現還包括對PDU的解釋以及在解釋基礎上PDU之間的交互,所有的服務功能通過解釋與交互體現出來.ULP負責把PDU中的連續字節流解釋成為有意義的協議控制信息,并分離出DIMSE流(如果存在的話).以處理應用關聯請求為例,該服務涉及的PDU中沒有DIMSE負載,實際上只有P-DATA-TFPDU中才包含ULP不能解釋的DIMSE流,因此需要向DIMSE層遞交.顯然,A-RELEASE與A-ABORT的實現要比A-ASSOCIATE簡單,因為它們本層的控制信息很少,且不需要向鄰接上層遞交數據.如圖4所示,一旦請求DICOM服務的客戶端完成TCP連接,它立即發送A-ASSOCIATE-RQPDU,該PDU是一個有序的數據流塊,按照ULP規定存放著各種協商數據,服務器端從該PDU數據流中取出相關內容獲得語義解釋,就可決定是否接受本次關聯請求以及本次關聯中的服務內容.表示上下文表征應用層協議中定義的抽象語法和能滿足抽象語法的傳輸語法之間的聯系,每個抽象語法和能對它進行編碼的傳輸語法組合起來就構成一個表示上下文.用戶信息包括最大PDU長度、實現類UID、實現版本名稱等.

5ULP實現的優化

一個優秀的協議實現,必須考慮執行效率.一個良好的設計除了做到快速分配存儲空間外,尤其要避免分組在各個協議軟件之間移動時的數據復制[7].對于DICOM協議這種以醫學圖像為主要傳輸對象.數據流量特別大的應用協議,協議實現效率在很大程度上取決于數據在不同層移動時的復制頻度,避免數據移動時的復制操作是ULP實現優化總的著眼點.DICOM應用層數據的移動過程如圖5所示,從打包過程看,應用層數據至少移動了4次,即應用層-PDV-PDU-TCP內部緩存-TCP數據包.如果每次移動都伴隨數據復制,雖然流程清晰但是實現效率一定較低.注意到底層TCP支持的是面向無邊界的數據流,我們可以把數據在形式上打包封裝發送的過程等效為封裝頭信息與封裝體信息的次序發送,因此并不需要形成真正在內存中連續存放的PDV或PDU數據包.為了避免ULPPDU數據到TCP內部緩存的復制,可以使用套接字接口新支持的重疊I/O機制,它把調用者提供的數據緩存區的內容直接填充到TCP數據包而繞過TCP內部緩存.同樣在接收時,可以把TCP數據包中的數據直接復制到調用者提供的緩存區.可見,在滿足ULP封裝規范要求的前提下,DIMSE消息數據可以做到直接傳入TCP數據包,這樣大大提高了數據發送效率.拆包過程是去掉各種封裝頭提取DIMSE消息數據的過程.封裝頭中存放著足夠的控制信息,用來指導后繼動作(比如命令集是否接收完,數據集是否接收完,還剩多少數據尚待接收等等),可以使用一個包括首地址指針與數據長度的結構來描述一個數據片段,那么整個DIMSE消息數據就是一個上述結構的指針鏈表.這種存儲塊鏈表避免了接收時的數據復制,如果應用層需要,把它轉化或部分轉化為平面空間存儲也很容易.在上述打包與拆包的實現過程中,為了避免數據復制,代價是需要多次調用底層的套接字接口.盡管這種調用開銷與大量的數據復制開銷相比是值得的,但還是有辦法克服這個不足:利用套接字提供的分散與聚集I/O機制,使若干個孤立存儲區的內容可以通過一次套接字調用發送或接收,避免了多次調用孤立存儲區的開銷.例如,某病人進行X射線放射熒光成像(RF),一般一次生成7~8個RF圖像,每個圖像約為2MB大小,共計14~16MB,現在使用DICOM3•0中的C-STORE服務類把圖像數據通過網絡發送到某個歸檔服務器,表3給出了兩種實現方式的比較.

6結論

按照本文對DICOM3•0ULP設計與實現的理解,已經開發出完整的ULP實現模塊,并與美國Picker公司D-MaxDigitalSystem提供的DI-COM3•0接口順利進行了通信,實現了它的一致性聲明中包含的所有應用層服務,從而證明了本文所述ULP設計與實現方案的可行性與有效性.

主站蜘蛛池模板: 亚洲aⅴ男人的天堂在线观看 | 美女扒开屁股给男人看无遮挡| 国产精品久久久久久久久99热| a网站在线观看| 无敌影视手机在线观看高清 | 乱子伦一级在线现看| 欧美韩国日本在线观看| 制服丝袜日韩中文字幕在线| 韩国一级做a爱性色毛片| 欧洲亚洲国产精华液| 人妻中文字幕在线网站| 老司机午夜在线视频免费观| 国产成人8X视频网站入口| 2018国产大陆天天弄| 夜夜爱夜夜爽夜夜做夜夜欢| 一级毛片免费观看不卡视频| 日本24小时www| 久久精品国产精品| 欧美一区视频在线| 亚洲欧美国产高清va在线播放| 五月婷婷六月天| 蜜桃AV噜噜一区二区三区| 国产成人黄网在线免| 337p日本欧洲亚洲大胆色噜噜 | 韩国一级做a爱性色毛片| 国产热の有码热の无码视频| 777成影片免费观看| 在线看成品视频入口免| www.波多野结衣.com| 成人免费淫片在线费观看| 丰满饥渴老女人hd| 日本熟妇乱人伦XXXX| 九九久久精品无码专区| 欧洲美女与动性zozozo| 亚洲国产欧美在线看片一国产| 毛片免费全部免费观看| 亚洲视频一区二区三区| 玉蒲团2之玉女心经| 免费在线h视频| 粉嫩虎白女P虎白女在线| 午夜影院在线观看|