“第一座天塹,叫‘延遲’(latency)。”
“聲音通信,我們能容忍延遲。
國際長途電話,信號通過衛星傳輸,會有零點幾秒的延遲,我們說話會感覺有點‘滯后’,但交流還能繼續。
可是,計算機之間的協同工作,要求的是微秒甚至納秒級別的同步!你讓首都的計算機和邊疆的計算機通過衛星對話,一個信號來回,零點幾秒就過去了。
這在人類感覺里是一瞬間,但在計算機的世界里,已經過去了幾個世紀!它們根本無法‘同步’!這就像一個交響樂團,指揮在北京揮動了指揮棒,而遠在千里之外的小提琴手,要等半秒鐘才能看到。
這樣的樂團,能合奏出一首完整的曲子嗎?不能!它只會制造出一片混亂的噪音!”
“第二座天塹,叫‘差錯’(error)。”
“剛才我已經提到了數據出錯的致命性。
那么,我們如何保證數據在幾千公里的旅途中,不出一點點差錯?銅制電纜有電阻,有電磁干擾;微波通信有大氣衰減,有天氣影響;衛星通信更是要穿過最復雜的電離層,時時刻刻受到宇宙射線的影響。
這些干擾,對于模擬的聲音信號來說,只是增加了‘雜音’;但對于數字信號來說,卻是致命的‘比特翻轉’!我們怎么去發現錯誤?靠人去聽嗎?不可能!靠機器去校驗?我們現在的技術,連最簡單的‘奇偶校驗’在長距離傳輸上都做得磕磕絆絆。
更別提更高級的‘糾錯碼’了,那還停留在數學家的論文里!發現錯誤后怎么辦?要求對方重發一遍?好,那你又回到了第一座天塹‘延遲’的陷阱里。
為了保證不出錯,你可能要反復重傳,結果一個簡單的數據,半天都送不到!這還叫什么‘高速’網絡?”
“第三座,也是最根本的一座天塹,叫‘協議’(protocol)!”
這個詞對于在場的大多數人來說,都非常陌生。
陳老看出了大家的困惑,他換了一種更通俗的說法。
“‘協議’,就是規則,就是秩序!就是我們所有人坐在這里開會,要說同一種語,要遵守發的次序,一個人說完,下一個人再說。
否則,大家一起開口,誰也聽不清誰在說什么。”
“林舟同志,你設想的,是讓全國幾十臺,未來幾百上千臺計算機,連接在同一個網絡里。
那么,誰先‘說話’?誰后‘說話’?a想和b說話,怎么才能不干擾到c和d的通話?如果a和b同時想和c說話,c應該先聽誰的?信息在網絡里,應該走哪條路?如果一條路堵塞了,能不能自動換一條路?這些,全部都需要一套極其復雜、嚴密、精巧的規則,也就是‘協議’來規定。
這套規則,要讓每一臺接入網絡的計算機都無條件地、毫秒不差地遵守。”
他環視全場,聲音里充滿了巨大的無奈:“同志們啊,我們連制定一套全國統一的工業標準都如此艱難,現在卻要去制定一套讓機器遵守的、比法律條文還要嚴謹百倍的‘通信法典’?誰來制定?依據是什么?我們甚至……甚至連描述這套規則的‘語’都還沒有發明出來!”
說到這里,陳老的情緒也有些激動了,他摘下眼鏡,用手背揉了揉酸澀的眼睛。