1. 程式人生 > >通俗理解同步通訊與非同步通訊

通俗理解同步通訊與非同步通訊

網路上對同步傳輸與非同步傳輸的文章一大把,各種圖示解說也很多,但看完終歸有點一頭霧水,當然了,要想真正透徹地理解這些專業性的概念,最好的方式還是在實踐中找到這些概念的體現。

同步傳輸與非同步傳輸雖然從名字上來看是兩個完全不同的方式,但要知道,他們的目的是相同的,其實他們都是在進行位同步的動作,只不過一個選擇了直搗黃龍,而另一個是迂迴作戰。所以首先應該明確一個思想,如果想理解這兩種方式只要理解了他們是在如何進行同步就可以了。

非同步通訊:

非同步通訊中的接收方並不知道資料什麼時候會到達,收發雙方可以有各自自己的時鐘。傳送方傳送的時間間隔可以不均,接收方是在資料的起始位和停止位的幫助下實現資訊同步的。這種傳輸通常是很小的分組,比如一個字元為一組,為這個組配備起始位和結束位。所以這種傳輸方式的效率是比較低的,畢竟額外加入了很多的輔助位作為負載,常用在低速的傳輸中。

舉個例子,我們的鍵盤按下一個按鍵,發出一個字元訊號,非同步傳輸機制就會為它加上前後的輔助同步資訊,幫助接收方識別到我們按下了哪一個按鍵。因為我們敲擊鍵盤的節奏不固定,所以非同步是一種很適合的方式。

同步通訊:

同步通訊中雙方使用頻率一致的時鐘,它的分組相比非同步則大得多,稱為一個數據幀,通過獨特的bit串作為啟停標識。傳送方要以固定的節奏去傳送資料,而接收方要時刻做好接收資料的準備,識別到前導碼後馬上要開始接收資料了。同步這種方式中因為分組很大,很長一段資料才會有額外的輔助位負載,所以效率更高,更加適合對速度要求高的傳輸,當然這種通訊對時序的要求也更高。

總結一下,非同步傳輸其實是通過字元資料前後的開始和停止碼進行再同步,彌補自己剛才注意不集中的不足;而同步方式則是一個規矩的好學生,時刻候命準備工作。非同步是你扔出去一個內容,對方靠著內容前後他能嗅到的異樣在人潮之中發現了它,把這個內容存下來;而同步是對方在時刻等著你釋出號令,你告訴對方我要傳送了哦,然後雙方一拍即合。