網路道荼、蓼

荼蘼花

250px-Rubus_rosifolius1荼蘼

荼

蓼

宋代 王淇
春暮游小園
一從梅粉褪殘妝,塗抹新紅上海棠。
開到荼縻花事了,絲絲夭棘出莓牆。

蘇軾子瞻,號東坡居士,多才多藝,詩詞文都有很大的成就,是歐陽修所倡導的北宋詩文革新運動的主將。宋神宗元豐三年

詩題杜 沂武 昌 , 以 酴 醾 花 菩 薩 泉 見 餉 , 二 首  其 一
酴醾不爭春寂寞開最晚
青蛟走玉骨 , 羽蓋蒙珠幰 。
不粧艷已絕 , 無風香自遠 。
淒涼吳宮闕 , 紅粉埋故苑 。
至今微月夜 , 笙簫來翠巘 。
餘妍入此花 , 千載尚清婉 。
怪君呼不歸 , 定為花所挽 。
昨宵雷雨惡 , 花盡君應返 。

荼蘼ㄊㄨˊ ㄇㄧˊ── 【 紅樓夢】一書裡麝月抽到的花簽 ──,是蔷薇懸钩子空心泡變種,又叫佛見笑,常生於山坡草叢、溪邊路邊和雜木林中,細枝披著鉤刺,小葉五七枚,花白四五月芬芳吐精香,入秋九月結果色鮮紅;宜作綠籬,或孤植青草地之旁。然而ㄊㄨˊ味ㄌㄧㄠˊ味,宋代 楊萬里 在《庸言》裡說『聖人仁及草木,而 后稷 薅荼蓼。』,泛指田野之旁沼澤之間的雜草。由於網際網路通訊規範 protocle 的博大精深,即使讀一點 點TCP/IP 都如荼‧蓼的苦菜一樣!怎就就不能像吃甘甜的ㄅㄧˊㄐㄧˋ一般呢?

甲骨文網

金文大篆

甘蔗

漁網

就讓我們從寶島的『甘蔗』說起,蔗的造字有著入土中汲取水源,彷彿乙太網路卡連上 Internet 的纜線插頭節節的運送水分轉化成糖,就好比網絡通訊堆疊層層封裝內容,它的 API 方便其它軟體應用一般;最後綠葉茂密能行光合作用;正像是網頁瀏覽器、臉書、谷歌 …… 的應用方興未艾。這枝『甘蔗』的就是 TCP Transmission Control Protocol 通訊控制規範,想確保通訊內容無誤依序抵達以及提供寫應用軟體的人方便的軟體界面。假如談到即時應用,比如網路影音或網路電話等等,常常會使用另一個稱作 UDP connectionless User Datagram Protocol 的協議,它只盡力傳送資訊,不能確保抵達,也不能保證有序的收到,把這一切都交給應用軟體自理。這樣的 UDP 有用嗎??

甘蔗的根汲取水源,那水是從哪裡來的呢?甘蔗並不管水是來自地下水源網絡或是人工的溝渠灌溉。這就是 IP Internet Protocol 網際網路規範作的事,向上提供 TCP 和 UDP 的資訊連線,向下隱藏不同網路硬體設備間的差異,讓大家都說同一國語言,定址每一個連接裝置以及分封轉送任意內容到任何連上際網網路的東西上!那什麼是分封轉送呢?首先這就得從大數學家歐拉 Euler  柯尼斯堡的『七橋問題』講起了!你能不過任何一座橋兩次一筆走完這七座橋嗎?

220px-Konigsberg_bridges

179px-7_bridges.svg

180px-Konigsburg_graph.svg

把『』字抽象化網路的概念就在『接點』與『路徑』。接點連接路徑,路徑通往其它接點。這個『接點』在網際網路上就是稱作『路由器』router 的設備,提供連上的接點暢通的路徑,能夠抵達 IP 所定址的任何公眾的網際網路地址 ── Public/Real IP ,比如說路邊一棟大樓的地址 ──,而在你使用的私人網域裡,有一種路由器它可以多人分享一個真實的 IP 地址 ── 這是因為連接設備提供了 Virtual 虛擬  IP ,就像在郵政地址上寫的某一棟樓的幾樓那室一樣 ──,事實上只用了一個連上網際網路的公眾地址, 一個由 ISP 網際網路服務供應商所提供的地址。這裡所說的這個連接設備也就是能自己知道幾樓那室 ── NAT Network address translation ──去轉送真實IP 的網路地址轉換Router

那『分封』Packet 又是什麼呢?如果你比較連接兩地鐵路公路的差異,最主要的就是一時之間,只能有一輛火車行經某一段鐵軌,這時其他火車都得等它先過;而公路上確能有多種汽車同時通行各個路段。假如連接某兩個接點的網際網路的路徑只有一條,那該是用火車的辦法,一個人通訊結束,另一個人才能開始用?當然不是,它用著汽車的方式,把每個人的通訊分成一小包 packet 一小包的傳送,這樣的分時分享方法就叫做分封。由於用著分封的方式,連接任兩個接點的網際網路的路徑可能有多條後發的小包可能先至也就不一定,這就是 TCP 和 UDP 的主要差異之一。再者每一小包上有一個稱作存活時間 TTL 的控制機制,每經過一個接點路由器它的數值就會被減一,這是為著不讓抵達不了── 比如斷了路徑的接點;公路上拋錨的車該將它拖走 ── 的分封小包,持續在網路上傳送浪費頻寬,所以當 TTL 歸零時路由器就會將小包丟棄;TCP 會試著維持已建立的連線,而 UDP 沒有連線機制故不會。當然我們此時也就能設想,如果一個網址同時很多人去拜訪,那就會『塞車』,如果這時有更多人想連上,它可能就會 DOS Denial Of Service 終止服務了。

前面說道,這樣的 UDP 有用嗎??比方說電視廣播吧,它只管廣播,並不理會用戶有沒有收到,也不檢查錯誤再次傳送;這是因為影音按著時間播放,時間已過去了的,沒有道理再次傳送。然而即使人想那樣作,那又要怎麼觀賞節目呢?所以說 UDP 有什麼用呢?就看自己如何想?又要怎麼用了?