1. 程式人生 > >網路—網路通訊協議

網路—網路通訊協議

網路通訊協議

網路通訊過程中,通訊環境非常複雜,應對的場景各有不同,導致網路通訊中有非常多的協議。資料在網路中傳輸的格式稱為網路通訊協議。

協議的封裝:把複雜的實現過程封裝起來,對外提供一個容易使用的介面(方法)供使用者使用。

協議的分層:按照協議及不同的使用場景,對協議進行了框架性的劃分。下面是兩個出名的通行協議結構模型:

OSI七層模型

OSI(Open System Interconnection,開放系統互連)七層網路模型稱為開放式系統互聯參考模 型,是⼀個個邏輯上的定義和規範

把網路從邏輯上分為了7層. 每⼀層都有相關、相對應的物理裝置,比如路由器,交換機

OSI 七層模型是⼀一種框架性的設計⽅方法,其最主要的功能使就是幫助不同型別的主機實現資料傳輸

它的最⼤大優點是將服務、接⼝口和協議這三個概念明確地區分開來,概念清楚,理論也比較完整.通過七個層次化的結構模型使不同的系統不同的網路之間實現可靠的通訊

TCP/IP五層模型

TCP/IP是⼀組協議的代名詞,它還包括許多協議,組成了TCP/IP協議簇

TCP/IP通訊協議採⽤用了5層的層級結構,每⼀層都呼叫它的下⼀層所提供的網路來完成自己的需求

物理層:負責光電訊號的傳遞方式(乙太網協議),物理 層的能力決定了最大傳輸速率、傳輸距離、抗干擾性等,集線器工作在物理層。

資料鏈路層:相鄰兩個節點裝置之間的資料傳輸與檢測(乙太網協議),交換機(Switch)工作在資料鏈路層。

網路層:(主機到主機的通訊)負責地址管理和路由選擇(IP協議),路由器(Router)工作在網路層。

傳輸層:負責兩臺主機間的資料傳輸(TCP/UDP協議),傳輸層經典裝置:埠。

應用層:負責應用程式間的溝通(ssh/http/fth協議,還有如簡單電子郵件傳輸(SMTP)、檔案傳輸協議(FTP)、網路遠端訪問協議(Telnet)等),我們的網路程式設計主要就是針對應用層。

網路通訊過程中資料的分裝與分用

不同的協議層對資料包有不同的稱謂,在傳輸層叫做段(segment),在網路層叫做資料報 (datagram), 在鏈路層叫做幀(frame).

應⽤用層資料通過協議棧發到網路上時,每層協議都要加上⼀個數據首部(header),稱為封裝 (Encapsulation).

首部資訊中包含了⼀些類似於⾸首部有多⻓長, 載荷(payload)有多⻓長, 上層協議是什麼等資訊.

資料封裝成幀後發到傳輸介質上,到達目的主機後每層協議再剝掉相應的⾸首部, 根據首部中的 "上層 協議欄位" 將資料交給對應的上層協議處理.