網絡通信概述
OSI(Open System Interconnection)是一個開放性的通行系統互連參考模型,共包含七層協議。從上到下分別是應用層、表示層、會話層、傳輸層、 網絡層、數據鏈路層、物理層。
網絡七層結構介紹
詳細介紹
物理層(physical layer)
所謂的物理層,是指光纖、電纜或者電磁波等真實存在的物理媒介。這些媒介可以傳送物理信號,比如亮度、電壓或者振幅。對于數字應用來說,我們只需要兩種物理信號來分別表示0和1,比如用高電壓表示1,低電壓表示0,就構成了簡單的物理層協議。針對某種媒介,電腦可以有相應的接口,用來接收物理信號,并解讀成為0/1序列。
數據鏈路層(link layer)
在數據鏈路層,信息以幀(frame)為單位傳輸。所謂的幀,是一段有限的0/1序列。連接層協議的功能就是識別0/1序列中所包含的幀。比如說,根據一定的0/1組合識別出幀的起始和結束。在幀中,有收信地址(Source, SRC)和送信地址(Destination, DST),還有能夠探測錯誤的校驗序列(Frame Check Sequence)。當然,幀中最重要的最重要是所要傳輸的數據 (payload)。這些數據往往符合更高層協議,供網絡的上層使用。與數據相配套,幀中也有數據的類型(Type)信息。連接層協議不關心數據中到底包含什么。幀就像是一個信封,把數據包裹起來。
以太網(Ethernet)和WiFi是現在最常見的連接層協議。通過連接層協議,我們可以建立局域的以太網或者WiFi局域網,并讓位于同一局域網絡中的兩臺計算機通信。連接層就像是一個社區的郵差,他認識社區中的每一戶人。社區中的每個人都可以將一封信(幀)交給他,讓他送給同一社區的另一戶人家。
網絡層(network layer)
不同的社區之間該如何通信呢? 換句話說,如何讓WiFi上的一臺計算機和以太網上的另一臺計算機通信呢?我們需要一個“中間人”。這個“中間人”必須有以下功能: 1. 能從物理層上在兩個網絡的接收和發送0/1序列,2. 能同時理解兩種網絡的幀格式。路由器(router)就是為此而產生的“翻譯”。一個路由器有多個網卡(NIC,Network Interface Controller),每個NIC可以接入多個網絡,并理解相應的連接層協議。在幀經過路由到達另一個網絡的時候,路由會讀取幀的信息,并改寫以發送到另一個網絡。所以路由器就像是在兩個社區都有分支的郵局。一個社區的郵差將信送到本社區的郵局分支,而郵局會通過自己在另一個地區的分支將信轉交給另一個社區的郵差手中,并由另一個社區的郵差最終送到目的地。
傳輸層(transport layer)
上面的三層協議讓不同的計算機之間可以通信。但計算機中實際上有許多個進程,每個進程都可能有通信的需求。這就好像一所房子里住了好幾個人(進程),如何讓信精確的送到某個人手里呢?遵照之前相同的邏輯,我們需要在信紙上寫上新的信息,比如收信人的姓名,才可能讓信送到。所以,傳輸層就是在信紙的空白上寫上新的“收信人”信息。每一所房子會配備一個管理員(傳輸層協議)。管理員從郵差手中接過信,會根據“收信人”,將信送給房子中的某個人。
傳輸層協議,比如TCP和UDP,使用端口號(port number)來識別收信人(某個進程)。在寫信的時候,我們寫上目的地的端口。當信到達目的地的管理員手中,他會根據傳輸層協議,識別端口號,將信送給不同的人。
TCP和UDP協議是兩種不同的傳輸層協議。UDP協議類似于我們的信件交流過程。TCP協議則好像兩個情人間的頻繁通信。一個小情人要表達的感情太多,以致于連續寫了好幾封信。而另一方必須將這些信按順序排列起來,才能看明白全部的意思。TCP協議還有控制網絡交通等功能。
會話層(Session Layer)
會話層負責在網絡中的兩節點之間建立、維持和終止通信。 會話層的功能包括:建立通信鏈接,保持會話過程通信鏈接的暢通,同步兩個節點之間的對話,決定通信是否被中斷以及通信中斷時決定從何處重新發送。
通知有人給你打好招呼,以便進行通話。就像現在我和你說話,你耳朵聽到了也能理解,但如果下面是外國人,他聽到了我的聲音,他理解了嗎?他不能理解。那對于計算機網絡來言,客戶機發了一個請求給服務器,服務器應該能理解這個請求到底是什么,所以接下去的問題是你怎么樣理解?這個理解有兩個層次,我講中國話,他只能懂英文,那么這當中應該有一個翻譯。把漢語翻譯成英語,這樣的工作就交給下一層表示層來做了。
表示層(Presentation Layer)
應用程序和網絡之間的翻譯官,在表示層,數據將按照網絡能理解的方案進行格式化;這種格式化也因所使用網絡的類型不同而不同。表示層管理數據的解密與加密,如系統口令的處理。例如:在Internet上查詢你銀行賬戶,使用的即是一種安全連接。你的賬戶數據在發送前被加密,在網絡的另一端,表示將對接收到的數據解密。除此之外,表示層協議還對圖片和文件格式信息進行解碼和編碼。
應用層(Application layer)
通過上面的幾層協議,我們已經可以在任意兩個人(進程)之間進行通信。然而每個人實際上從事的是不同的行業。有的人是律師,有的人外交官。比如說律師之間的通信,會用嚴格的律師術語,以免產生糾紛。再比如外交官之間的通信,必須符合一定的外交格式,以免發生外交誤會。再比如間諜通過暗號來傳遞加密信息。應用層協議是對信件內容進一步的用語規范。應用層的協議包括用于Web瀏覽的HTTP協議,用于傳輸文件的FTP協議,用于Email的IMAP等等。






