既然說要通俗的解釋,那么我就嘗試用“人話”說說看吧。
在人類世界中,時間是一個時時刻刻都在起到重要參考的變量,我們在說話和交流的時候,就是在時間的維度下完成的。只不過我們交流的對象與自己處在同一個時間維度下。
SENT通訊就好比是兩個人,一個專職發(fā)送信息(張發(fā)),一個專職接收信息(李收)。我們不妨將這兩個人都置身于黑夜中,他們的信息傳遞工具為手電筒。當然,我們給兩個人都配備了秒表,這兩個秒表一個是地球造,另一個是火星造(我就是想說他們的秒表跳動是不同的)。
張發(fā)跟李收約定:我每次點亮手電筒的時候,你就按下秒表計時,我將信息都藏在時間里了。你按照我給你的密碼本對照去看每次點燈的時間長度查找對應的字母。于是,張發(fā)就不停的點燈,關燈,點燈關燈。李收也一直根據(jù)張發(fā)點燈關燈來掐表,然后對照密碼本去看是什么字母。
我們前面說了,張發(fā)和李收手里的秒表一個是地球造,一個是火星造。所以他們的時間是不同步的。為了解決這個問題,張發(fā)和李收又約定:我每次發(fā)送信息的時候都會持續(xù)點亮56秒,然后我再發(fā)送數(shù)據(jù)。這56秒是給你對表用的。
于是,李收每次在接收到張發(fā)的56秒數(shù)據(jù)的時候,都會去同步一下自己的秒表,這樣就能確保張發(fā)的地球時間刻度和李收火星時間刻度保持一致,查密碼本的時候才不會出錯。
但是,有時候以為飛鳥或者神雕的掠過,李收可能會看到張發(fā)的燈光“虛閃”了一下。這時候李收掐表就會出現(xiàn)錯亂。
為了解決這個問題,張發(fā)又和李收約定:我每次發(fā)送完信息之后,還會發(fā)送一個驗證碼,驗證碼是由前面的信息反算得到的。也就是說,張發(fā)每次發(fā)送的信息都會有一套計算方法(三下五除二)得到一組驗證碼,張發(fā)再將驗證碼發(fā)送出去。李收每次接收到信息之后,也會接收到驗證碼。李收也根據(jù)這套計算方法(三下五除二)將接收到的數(shù)據(jù)轉(zhuǎn)換得到一組驗證碼。李收再將自己計算得到的驗證碼和接收到的驗證碼作比較,如果一致,就說明信息正確。錯誤,就丟棄數(shù)據(jù)。
這就差不多是我能想到的最通俗的解釋了,總結起來就是:對表、掐表、驗證。
Powered by 單片機教程網(wǎng)