前言
整個互聯網的實現都是建立在上面五層分層模型的基礎上的,上面的每一層都要依靠下面的分層模型支持。每一層都是為了完成某個特定的功能,計算機之間要想建立通信都需要遵循約定好的協議,因此每一層都有約定好的協議(protocol)
物理層
物理層指的是把電腦連接起來的物理手段,常用的方式有光纜、電纜、雙絞線、無線電波等,它們的作用是負責傳送0和1的電信號
數據鏈路層
單純的電信號0和1計算機是無法直接解讀的,於是需要規定一種協議表示每個信號的意義,占據主導地位的是以太網協議,它規定了一組電信號構成一個數據包(叫做幀),每一幀都包含標頭和數據兩部分。"標頭"包含數據包的發送者、接受者、數據類型等等;"數據"則是數據包的具體內容
有了數據包,接下來還需要知道接收方的地址。以太網規定,接入網絡的的所有設備都必須有網卡接口,每個網卡都有一個唯一的MAC地址,數據包的傳輸是從一塊網卡傳到另一塊網卡
有了MAC地址,接下來要想辦法把數據傳輸過去。如果計算機在同一個子網內,可以通過ARP協議得到對方的MAC地址,然后通過廣播的方式把數據包發送給子網內的所有計算機,計算機通過對比MAC地址信息,決定是否接受數據包。
網絡層
以太網通過MAC地址的方式發送數據包會有一個缺陷,即如果兩台計算機不在同一個子網內,廣播是傳不過去的。於是網絡層引入了一套新的地址,能夠區分不同計算機是否屬於同一個子網,這套地址叫做“網絡地址”,簡稱“網址”。現在每台計算機都有MAC地址和網絡地址,兩個地址本身沒有聯系的,MAC地址是綁定在網卡上的,而網絡地址則是管理員分配的
規定網絡地址的協議叫做IP協議,目前使用最廣泛的是IPv4,它為每一台計算機分配IP地址,用於確定哪些地址在同一個子網絡。
傳輸層
有了MAC地址和IP地址,互聯網上的任意兩台計算機之間都可以建立通信。現在的問題是計算機上的很多應用程序都需要聯網,需要有一種方式確定數據包是要發送給哪個程序的,於是就有了端口。端口是每一個使用網卡程序的編號,不同的程序根據特定的端口號獲取對應的數據包
傳輸層的作用就是建立端口和端口的通信,而網絡層的作用是建立主機之間的通信。有了端口和主機,就可以實現軟件之間的通信
傳輸層使用的最廣泛的協議是TCP協議,這個協議要比同屬傳輸層的UDP協議復雜,但是它們保證不會出現數據包丟失的情況
應用層
應用層的很多協議大家應該都聽說過,比如FTP、HTTP這些都是應用層協議。它主要的作用是為了規定數據的格式,由於TCP協議可以傳輸任何數據,因此必須有不同的協議規定諸如電子郵件、網頁、FTP數據的格式。