從一個驅動的代碼中看到了 request / indication / response / confirm 等函數,不知是什么功能,上網找了找才發現原來是《計算機網絡》中有關服務原語的概念。摘抄如下:
服務原語包含四種類型:
請求(request):一個實體希望得到完成某些操作的服務
指示(indication):通知一個實體,有某個事件發生
響應(response):一個實體希望響應一個事件
證實(confirm):返回對先前請求的響應
原語一般都攜帶參數。
證實型(confirmed)和非證實型(unconfirmed)服務的區別:
證實型服務包含所有4種服務原語。
非證實型服務只包含請求和指示2種服務原語。
服務原語工作示例
- COENNCT.request:呼叫方請求建立連接
- CONNECT.indication:被呼叫方指示有人請求建立連接
- CONNECT.response:被呼叫方表示接受/拒絕建立連接請求
- CONNECT.confirm:通知呼叫方建立連接的請求是否被接受
- DATA.request:請求發送數據
- DATA.indication:指示數據的到達
- DISCONNECT.request:請求釋放連接
- DISCONNECT.indication:指示對方釋放了連接
服務與協議的關系
服務是各層向它上層提供的一組原語,定義了兩層之間的接口。
協議是同層對等實體之間交換數據幀、分組和報文的格式及意義等信息的一組規則。
服務確定了能為上一層提供的操作。
協議實現為上一層提供服務的具體方法。