2.2 底層漫談與網路理論
因為我只著重於協定的分層,該是談談網路是如何真正的運作的時候了,並呈現一些如何打造 SOCK_DGRAM 封包的例子。就實務面,你或許可以跳過這一節,不過,這一節有很好的觀念背景,所以需要的人可以讀一讀。

嘿!孩子們,該是學習資料封裝(Data Encapsulation)的時候了。這很重要,它就是如此重要,即使你是在加州這裡上的網路課程,也只能學到皮毛。
基本上我們會講到這些內容:
封包的誕生、將封包打包[封裝]到第一個協定[所謂的 TFTP 協定]的 header 中[幾乎是最底層了],接著將全部的東西[包含 TFTP header]封裝到下一個協定中[所謂的 UDP],接著下一個協定[IP],最後銜接到硬體[實體]層上面的通訊協定[所謂的 Ethernet,乙太網路]。
當另一台電腦收到封包時,硬體會解開 Ethernet header,而 kernel 會解開 IP 與 UDP header,再來由 TFTP 程式解開 TFTP header,最後程式可以取得資料。
現在我最後要談個聲名狼藉的分層網路模型(Layered Network Model),亦稱 "ISO/OSI"。這個網路模型介紹了一個網路功能系統,有許多其它模型的優點。例如,你可以寫剛好一樣的 socket 程式,而不用管資料在實體上是怎麼傳送的[Serial、thin Ethernet、AUI 之類]。因為在底層的程式會幫你處理這件事。真正的網路硬體與拓樸對 socket 程式設計師而言是透明的。
不囉嗦,我將介紹這個成熟模型的分層。為了網路課程的測驗,要記住這些。
Application(應用層) Presentation(表現層) Session(會談層) Transport(傳輸層) Network(網路層) Data Link(資料鏈結層) Physical(實體層)
實體層就是硬體(serial、Ethernet 等)。而應用層你可以盡可能的想像,這是個使用者與網路互動的地方。