天天看點

會話和同步原理

        “會話”,是指使用者之間的資訊交換過程。使用者之間為完成資訊交換需要按一定規則在會話層實體之間建立起來的一種暫時的聯系,即“會話連接配接”。在會話連接配接過程中,可能需要把使用者之間的資訊交換分成若幹個邏輯工作段,這個邏輯分段就是所謂的“活動”。活動的内容具有相對的獨立性和完整性。在每個活動中可以含有一個或多個“會話單元”,會話單元一般是一組意義上相對完整的資料塊傳輸。

   在這裡首先要明白幾個基本概念:

l              令牌(Token)

    令牌是會話連接配接的屬性,表示會話連接配接使用者使用會話服務的權力。其特點是:擁有令牌的使用者才可使用與該屬性相關的服務;令牌在一個時間點隻配置設定給一個使用者。保證使用者調用某種服務時的獨占性,防止可能出現的競争和沖突。這就有點像令牌環網的工作原理一樣。

l              同步與對話單元(synchronization,dialogue unit)

    同步是對會話層實體的一種控制方法,保證會話互動的時序性。通過同步技術可對使用者資料進行語義上的分段,便于接收方可對所接收的資訊進行驗證。并在發生了錯誤或不符合協定的事件的情況下,使會話實體傳回到一個已知狀态的過程。

l              活動(activity)

    活動用于差別資料傳送的不同邏輯工作段。每次活動可以看成一次獨立的資料傳送,或者可看成會話服務使用者間傳送資料中的一個特定階段。對應用層來說,一個活動相當于一次應用協定資料單元APDU的交換。活動包含的資訊可以是雙向的,而一個對話單元隻能是單向的。

    會話層的另一個服務是同步。所謂同步就是使會話服務使用者對會話的進展情況有一緻的了解。在會話被中斷後可以從中斷處繼續下去,而不必從頭恢複會話。這種對會話程序的了解是通過設定同步點來獲得的。會話層允許會話使用者在傳輸的資料中自由設定同步點、并對每個同步點賦予同步序号,以識别和管理同步點。這些同步點是插在使用者資料流中一起傳輸給對方的。當接收方通知發達方它收到一個同步點,發送方就可确信接收方已将此同步點之前發送的資料全部收妥。會話層中定義了兩類同步點:

l              主同步點

    它用于在連續的資料流中劃分出對話單元,一個主同步點是一個對話單元的結束和下一個對話單元的開始。隻有持有主同步令牌的會話使用者才能有權申請設定主同步點。

l              次同步點

    次同步點用于在一個對話單元内部實作資料結構化,隻有持有次同步點令牌的會話使用者才有權申請設定次同步點。

主同步點與次同步點有一些不同。在重新同步時,隻可能回到最近的主同步點。每一個插入資料流中的主同步點都被明确地确認。次同步點不被确認。

        “活動”與“同步點”密切相關。當一個活動開始的時候,同步順序号複位到1,并設定一個主同步點;在一個活動内有可能設定另外的主同步點或次同步點。

    現舉一個檔案傳輸會話連接配接示例進行說明。過程如圖10-2所示。

圖10-2  會話控制流程示例

    在進行檔案傳輸,首先需要建立“會話連接配接”,通知通信對方“會話開始”,會話連接配接建立後,通信雙方才可進行檔案傳輸。可以把每傳輸一個檔案作為一個“活動”,發送方在開始傳輸該檔案時,通知接收方“活動開始”。為使接收方接收同步,每發送一段資料後,設定一個“次同步點”,使得接收方可以檢查資料接收的正确性;發送一組相對完整的資料後,設定一個“主同步點”,接收方收到主同步點資訊後,給予确認,表示在這之前的資料已完全正确接收。在一個檔案傳輸結束時,通知接收方本次“活動結束”,如要繼續發送下一檔案,則通知接收方“新的活動開始”,繼續發送檔案。直至本次連接配接需要傳輸的檔案都傳輸完畢,通知接收方“會話結束”,拆除會話連接配接。

            “活動開始”和“主同步點”同時也作為恢複點,如果傳輸過程中出現故障,傳輸中斷,則等再次連接配接時,可以恢複最近一次活動,并從最後的主同步點開始重新同步,繼續傳輸資料。引入“活動”和“同步”技術的目的是使使用者可以了解會話的程序,便于控制和管理,在出現傳輸故障時,可從指定的同步點處進行恢複,減少差錯重傳的資料量。

本文轉自王達部落格51CTO部落格,原文連結http://blog.51cto.com/winda/6441如需轉載請自行聯系原作者

茶鄉浪子

繼續閱讀