解釋會話層的函式。
會話層服務由構成會話層的函式單元集提供。會話層可以理解為一個通用的工具包,使用者從中選擇要使用的工具。
會話層提供的功能如下:
會話建立
會話層的主要功能是提供和建立通訊使用者之間的連線,稱為會話。它可以以可靠且有序的方式透過這些會話傳輸資料。
它可以在兩臺計算機之間建立會話以進行通訊、檔案傳輸、遠端登入或其他目的。它可以建立面向連線的會話和無連線的會話,但對於面向使用者的會話層來說,無連線的會話沒有用。
會話連線類似於傳輸連線。會話建立請求必須確保傳輸連線的建立。會話釋放時,傳輸連線也會釋放。會話到傳輸連線的對映有三種方式。
一對一對映、多對一對映和一對多對映。在一對一對映中,一個會話使用一個傳輸連線。在多對一對映中,連續的會話使用相同的傳輸連線,而在一對多對映中,一個會話跨越多個傳輸連線。
普通資料傳輸
這是會話層的必備功能。使用者實體之間的資料交換可以是雙向交替(半雙工)或雙向同時(全雙工)。在半雙工模式下,只有一個使用者有獨佔權利啟動資料傳輸。相比之下,在另一種情況下,可以雙向同時進行資料傳輸。
對話管理
在某些情況下,會話連線是全雙工的,但上層有時以半雙工模式通訊。在這種情況下,會話層必須跟蹤輪到誰說話,這被稱為對話管理。資料令牌用於實現對話管理。
建立半雙工會話時,透過初始協商確定哪一方首先收到令牌。擁有令牌的使用者可以傳輸資料,而另一個使用者保持靜默。當令牌持有者完成傳輸後,它將令牌傳遞給其他使用者,一旦另一個使用者收到令牌,它就可以傳輸資料。在全雙工操作的情況下,資料傳輸不使用令牌。
會話釋放
要釋放會話連線,可以使用以下四種變體之一:
- 使用者中止
- 提供者中止
- 有序釋放
- 協商釋放
在使用者中止中,會話連線可以由任何一個使用者釋放,而不是中止。類似地,在提供者中止中,會話由提供者或提供者中止。使用者之間存在雙向互動;因此,在釋放連線之前,傳輸的資料將被傳遞到其目的地。
為了以這種方式釋放,任何使用者或提供者都可以請求釋放會話連線,而另一個使用者必須接受釋放。在協商釋放中,擁有釋放令牌的使用者可以啟動釋放會話連線的請求。另一個使用者可以根據條件和要求接受或拒絕會話釋放請求。如果被接受,則會話被釋放。
在使用者中止和提供者中止中,會話在未通知其他實體的情況下被中止,從而丟失傳輸資料。同時,有序釋放和協商釋放的情況並非如此。提供者中止發生在致命錯誤的情況下。
同步
同步確保在任何時間點會話服務使用者之間具有相同的互動狀態。如果發生錯誤或不一致,則會話實體將返回到已知狀態。提供此服務是因為傳輸層只遮蔽通訊錯誤,而不是上層錯誤。
為了實現這個目標,同步點被插入到互動中。傳送方插入一個序列號作為同步點,接收方透過傳送回序列號來確認接收。
它與確認不同,因為確認是指協議資料單元的接收。主同步點和次同步點用於將通訊例項構成對話單元或對話單元內。
前者立即得到確認,而後者可能不會。兩者都使用標準序列號,並且各自的令牌控制它們。
重新同步
有時需要將對話狀態恢復到先前定義的狀態。這被稱為反向同步或重新同步。會話層實體也提供它。
重新同步有三種選擇:設定、放棄和重新啟動。傳送會話使用者繼續持有資料以實現同步,只要它可能需要它。當發生重新同步時,所有令牌都將恢復到設定同步點時的原始位置。
活動管理
會話層允許使用者區分會話期間執行的活動。使用者可以將訊息流分割成邏輯單元。這些邏輯單元稱為活動,將訊息流分割成活動稱為活動管理。
報告
會話層的一個特性是其用於意外錯誤的報告功能。這是一種通用機制,如果使用者遇到問題,它允許向對等方報告問題。此報告同樣適用於使用者檢測到的錯誤、協議錯誤或其他一些意外錯誤。