3-3 通訊連線管理
鏈路層必須建立兩個工作站之間的通訊連線,雙方再由這條連線互相傳遞訊框。但依照上層通訊軟體的需求,可能需要不同等級的傳輸品質。一般鏈路層都有提供下列三種服務類別:
以下將分別介紹這三種服務類別的連線動作,但並非所有通訊協定都依照這些步驟製作。各種通訊協定會依照其特性或環境需求而有所差異,但皆以上列連線類別為基礎。 3-3-1 非連接服務 『非連接服務』(ConnectionLess Service, CL)表示通訊雙方未建立連線便開始傳送訊框,由該訊框自己建立連線傳送,傳送完後連線便自動消失。既然未事先建立連線,所以不保證是否可以傳送成功,因此又稱為『不可靠連線』(Unreliable Connection)。如圖 3-6 所示,通訊兩方(DL_A 及 DL_B)傳送資料之前並未建立連線,直接將資料發送給對方。發送端(DL_A)直接將訊框(DL_CL_Data.request)發送到網路上;接收端由網路上收到該訊框(DL_CL_Data.indication)。一般鏈路層做連線管理時所發送的各種訊息(控制訊號),都採用非連接方式傳送,因為當時並不一定已完成連線的建立。另外,廣播訊息也採用非連接方式: 圖 3-6 非連接服務之通訊連線 3-3-2 連接導向服務 『連接導向服務』(Connection-oriented Service, CS)是通訊雙方建立連線後才開始傳送訊框,因能保證訊框可以到達接收端,所以又稱為『可靠性連線』(Reliable Connection)。圖 3-7 為連接導向服務的通訊連線的時序圖,其可區分為三個時相(Phase):連線建立時相、資料傳送時相與連線終止時相,以下分別介紹之。 圖 3-7 連接導向服務之通訊連線 (A) 連線建立時相(Connection Establish Phase) 發送端的鏈路層(DL_A)送出要求連線訊息(DL_CS_Conn.request)給接收端(DL_B),對方接收到該訊號(DL_CS_Conn.indication)以後,則回應同意(Acknowledge, Ack)或不同意(Non-acknowledge, Nak)訊息,並將其包裝成回應訊息(DL_CS_Conn.response),回覆給發送端。然後,發送端再由收到的回應訊息(DL_CS_Conn.confirm)判斷對方是否同意連線。如果所收到的回應訊息是確定的(Ack),則表示雙方連線已建立成功。當發送端送出要求連線訊號時,並不能保證該訊息是否可安全傳送到對方。因此,在發送端送出訊息後便啟動計時器(Timer),如在逾時(time out)前未收到回應,便判斷該訊號已經遺失,或對方工作站根本不存在,接著必須決定是否需要重新要求連線。 (B) 資料傳送時相(Data Transfer Phase) 當雙方連線成功後就可以開始傳送資料。首先,發送端將會送出資料訊框(DL_CS_Data.request),並啟動計時器;接收端在收到該訊息(DL_CS_Data.indication)後,會回應該訊號是否正確(DL_CS_Data.response)。發送端由回應訊息(DL_CS_Data.confirm)內判斷該訊框在傳送當中是否安全送達到接收端(或是有發生錯誤?)。 處理連接導向的資料傳送程序比較複雜,因為傳送端可以一次連續發送數筆訊框,但接收端如何來確認是否已全部接收到?又當傳送端將訊框發送後,便啟動自身的計時器。如逾時後未收到任何回應,則表示該訊框在傳輸中遺失,而必須重新傳送;如有收到回應,則重置(Reset)計時器,再繼續傳送訊框。但也有可能接收端的回應訊號傳輸過慢,計時器已逾時還未到達傳送端,造成傳送端重複傳送該訊框,導致接收端所收到的訊框順序不對。因此,訊框在傳送當中可能發生列三個主要問題:
關於上述訊框傳送中所可能發生的問題,必須利用一個特殊的機制(流量控制)來處理。一般通訊協定都採用滑動視窗法,我們在下一節將會介紹它。 (C) 連線終止時相(Connection Terminal Phase) 當資料傳送完畢後,任何一方都可以要求終止連線。如圖 3-7 發送端送出要求終止連線訊號(DL_CS_Disc.request),對方收到要求終止連線訊息(DL_CS_ Disc.indication)後,決定是否斷線並回應訊息(DL_CS_Disc.response)給發送端(一般都必須無條件同意斷線)。發送端由對方回應訊息(DL_CS_Disc.confirm)判斷對方是否同意終止連線,如對方確認(Ack)終止連線,或在計時器逾時之前沒有收到回應,便釋放該連線。 3-3-3 非連接附確認服務 『非連接附確認服務』(Connectionless with Acknowledge Service, CA)如同非連接服務,在雙方未建立連線的時候,就開始傳送資料(DL_CA_Data.request),並啟動計時器。但要求接收端收到該訊框(DL_CA_Data.indication)後必須即時回應(DL_CA_Data.response)給發送端。發送端由對方回應之訊息(DL_CA_Data.confirm)來判別對方是否有正確收到資料。非連接附確認服務一般應用在需要反應較快的資料訊框傳送,如需要快速傳送、或資料量較少的連線,使用連接導向服務反而會浪費許多連線的時間,此時使用非連接附確認服務較為理想。 圖 3-8非連接附確認服務之通訊連線
|
翻轉工作室:粘添壽
電腦網路與連結技術:
翻轉電子書系列:
|