網路程式設計 02 分層模型

2021-10-03 18:53:24 字數 2700 閱讀 6478

1.物理層:主要定義物理裝置標準,如網線的介面型別、光纖的介面型別、各種傳輸介質的傳輸速率等。它的主要作用是傳輸位元流(就是由1、0轉化為電流強弱來進行傳輸,到達目的地後再轉化為1、0,也就是我們常說的數模轉換與模數轉換)。這一層的資料叫做位元。

2.資料鏈路層:定義了如何讓格式化資料以幀為單位進行傳輸,以及如何讓控制對物理介質的訪問。這一層通常還提供錯誤檢測和糾正,以確保資料的可靠傳輸。如:串列埠通訊中使用到的115200、8、n、1

3.網路層:在位於不同地理位置的網路中的兩個主機系統之間提供連線和路徑選擇。internet的發展使得從世界各站點訪問資訊的使用者數大大增加,而網路層正是管理這種連線的層。

4.傳輸層:定義了一些傳輸資料的協議和埠號(www埠80等),如:tcp(傳輸控制協議,傳輸效率低,可靠性強,用於傳輸可靠性要求高,資料量大的資料),udp(使用者資料報協議,與tcp特性恰恰相反,用於傳輸可靠性要求不高,資料量小的資料,如qq聊天資料就是通過這種方式傳輸的)。 主要是將從下層接收的資料進行分段和傳輸,到達目的位址後再進行重組。常常把這一層資料叫做段。

5.會話層:通過傳輸層(埠號:傳輸埠與接收埠)建立資料傳輸的通路。主要在你的系統之間發起會話或者接受會話請求(裝置之間需要互相認識可以是ip也可以是mac或者是主機名)。

6.表示層:可確保乙個系統的應用層所傳送的資訊可以被另乙個系統的應用層讀取。例如,pc程式與另一台計算機進行通訊,其中一台計算機使用擴充套件二一十進位制交換碼(ebcdic),而另一台則使用美國資訊交換標準碼(ascii)來表示相同的字元。如有必要,表示層會通過使用一種通格式來實現多種資料格式之間的轉換。

7.應用層:是最靠近使用者的osi層。這一層為使用者的應用程式(例如電子郵件、檔案傳輸和終端**)提供網路服務。

兩台計算機通過tcp/ip協議通訊的過程如下所示:

上圖對應兩台計算機在同一網段中的情況,如果兩台計算機在不同的網段中,那麼資料從一台計算機到另一台計算機傳輸過程中要經過乙個或多個路由器,如下圖所示:

鏈路層有乙太網、令牌環網等標準,鏈路層負責網絡卡裝置的驅動、幀同步(即從網線上檢測到什麼訊號算作新幀的開始)、衝突檢測(如果檢測到衝突就自動重發)、資料差錯校驗等工作。交換機是工作在鏈路層的網路裝置,可以在不同的鏈路層網路之間**資料幀(比如十兆乙太網和百兆乙太網之間、乙太網和令牌環網之間),由於不同鏈路層的幀格式不同,交換機要將進來的資料報拆掉鏈路層首部重新封裝之後再**。

網路層的ip協議是構成internet的基礎。internet上的主機通過ip位址來標識,inter-net上有大量路由器負責根據ip位址選擇合適的路徑**資料報,資料報從internet上的源主機到目的主機往往要經過十多個路由器。路由器是工作在第三層的網路裝置,同時兼有交換機的功能,可以在不同的鏈路層介面之間**資料報,因此路由器需要將進來的資料報拆掉網路層和鏈路層兩層首部並重新封裝。ip協議不保證傳輸的可靠性,資料報在傳輸過程中可能丟失,可靠性可以在上層協議或應用程式中提供支援。

網路層負責點到點(ptop,point-to-point)的傳輸(這裡的「點」指主機或路由器),而傳輸層負責端到端(etoe,end-to-end)的傳輸(這裡的「端」指源主機和目的主機)。傳輸層可選擇tcp或udp協議。

tcp是一種面向連線的、可靠的協議,有點像打**,雙方拿起**互通身份之後就建立了連線,然後說話就行了,這邊說的話那邊保證聽得到,並且是按說話的順序聽到的,說完話掛機斷開連線。也就是說tcp傳輸的雙方需要首先建立連線,之後由tcp協議保證資料收發的可靠性,丟失的資料報自動重發,上層應用程式收到的總是可靠的資料流,通訊之後關閉連線。

udp是無連線的傳輸協議,不保證可靠性,有點像寄信,信寫好放到郵筒裡,既不能保證信件在郵遞過程中不會丟失,也不能保證信件寄送順序。使用udp協議的應用程式需要自己完成丟包重發、訊息排序等工作。

目的主機收到資料報後,如何經過各層協議棧最後到達應用程式呢?其過程如下圖所示:

乙太網驅動程式首先根據乙太網首部中的「上層協議」字段確定該資料幀的有效載荷(payload,指除去協議首部之外實際傳輸的資料)是ip、arp還是rarp協議的資料報,然後交給相應的協議處理。假如是ip資料報,ip協議再根據ip首部中的「上層協議」字段確定該資料報的有效載荷是tcp、udp、icmp還是igmp,然後交給相應的協議處理。假如是tcp段或udp段,tcp或udp協議再根據tcp首部或udp首部的「埠號」字段確定應該將應用層資料交給哪個使用者程序。ip位址是標識網路中不同主機的位址,而埠號就是同一臺主機上標識不同程序的位址,ip位址和埠號合起來標識網路中唯一的程序。

雖然ip、arp和rarp資料報都需要乙太網驅動程式來封裝成幀,但是從功能上劃分,arp和rarp屬於鏈路層,ip屬於網路層。雖然icmp、igmp、tcp、udp的資料都需要ip協議來封裝成資料報,但是從功能上劃分,icmp、igmp與ip同屬於網路層,tcp和udp屬於傳輸層。

網路分層模型

目前存在的兩種網路分層模型 osi模型和tcp ip模型。osi模型一共分為七層,tcp ip模型和osi模型類似,但是只分為四層。osi的全程是open systems interconncection,即開放系統互聯,它由iso international organization for st...

hdu 1733 分層網路流

題目大意 有乙個類似於迷宮搜尋的圖,代表的是無人的路,x 代表有人的點,代表此點不可通過,代表門口。每個位置每一秒鐘只能站乙個人,每個位置到上下左右點的時間為1,問你所有人能不能出去,能出去輸出所有人都出去的最小時間,否則輸出 1.a 增加源點src,和匯點dest,然後根據每個時間點建出分層圖,每...

網路分層模型TCP IP

osi七層模型與tcp ip五層模型 一 osi參考模型 今天我們先學習一下乙太網最基本也是重要的知識 osi參考模型。1 osi的 osi open system interconnect 即開放式系統互聯。一般都叫osi參考模型,是iso 國際標準化組織 組織在1985年研究的網路互連模型。is...