好,繼續。

「可靠」這邊,因為我自己是做資訊科學,所以其實我對於別的領域工程可靠性並沒有研究,所以我接下來就只能從資訊科學的角度來講。

我們在資訊科學裡面,我不曉得你知不知道有一個協定叫做「TCP(Transmission Control Protocol)」,等於在網際網路上面最常用的一種協定,電腦最常互相討事情的一種方法,就是把二台電腦連上去的方法。這一個TCP在設計的時候就是有一個「可靠性原則」,業界叫做「Postel法則」,這個法則非常簡單地講是「Be conservative in what you do; be liberal in what you accept from others. 」,就是你自己做的事情盡可能容易預測、盡可能地保守,但對於接受到別人所做的事情盡可能地開放、盡可能地什麼都接受,所以翻成中文的話,我不知道耶!可能就是自我要求比較高,但要求別人比較沒有那麼高,就是「嚴以律己,寬以待人」。

這個東西為什麼會變成我們在二份很重要的RFC(設計網際網路的標準文件),3117跟7282裡面都把這個當作重要的因素,是因為要求自己是做得到,但在網路,尤其是網際網路異質性的環境,「inter-」的意思是你把各種不同性質的網路連在一起,在這個時候可靠有二種方式,一種是我們剛剛講的「瀑布式」的,就是你要求所有連上的網路都要用相同版本的作業系統,基本上再用相同版本網路堆疊都要說相同的話,那就是所謂「同質性的解決方式」。

但是為什麼我們現在的internet是用TCP,而不是用TCP之前的很多同質性AT&T系統或Telex系統或別的系統,是因為那一些系統的可靠性是建立在不可靠的基礎上,好比你有一個新的版本出現,就希望全世界都馬上更新到那個版本,那是不可能的;反而是這一種異質性或多元性的這一種軟的可靠性、bottom up的可靠性,被證明在四十年的網際網路發展裡面這樣才是真的可靠,也就是要求自己可靠,並不是要求別人。同樣的,我會說這是一個次文化,不是所有的工程師都有這樣的文化,尤其我們做資通訊,資通訊的「通」部分,我們會特別在這一種定義下的可靠性。

這有問題嗎?再追問嗎?