2016年1月10日 星期日

TCP的連接啟蒙 - 林沛滿

聽說現在的年輕人可以用手機交到異性朋友,可惜在我們那個年代,手機的主要功能只有兩個 - 電話和簡訊。人們憑直覺決定該打電話還是發簡訊,卻很少去深究這兩者的本質差別。

打電話時要先撥號,等接通之後才開始講話。如果有人還沒撥號就對著電話自言自語,旁人一定會覺得很詭異。而發簡訊時根本不用考慮對方在幹嘛,直接發出去就是了。這兩種方式的本質差別就是,打電話時要先「建立連接」(即撥號),而簡訊不需要。建立連接需要花費一些時間,但也意味著更加可靠。我們可以在電話上確保對方已經聽明白。而簡訊就不行了,發送之後並不知道對方是否即時收到,也不知道有沒有產生誤解。有一個笑話這樣調侃簡訊所以引發的事故 - 出差的丈夫一大早就給妻子發了簡訊「I had a wonderful night, and really wish you were here」。不幸的是,他少打了最後一個「e」,這個誤會估計需要一個面對面的連接才能化解。

網路的傳輸層和手機一樣用於傳遞訊息。他也有兩種方式 -  TCP和UDP,其中TCP是以連接為基礎的,而UDP不需要連接。他們各自支援一些應用層協定,但也有些協定是兩者都支援的,例如DNS。

沒有留言:

張貼留言