TCP IP 五層網路體系結構梳理

2021-09-08 02:58:44 字數 2940 閱讀 5598

因為tcp/ip並沒有嚴格的制定網路介面層,所以有些材料也會說tcp/ip分為五層:物理層、資料鏈路層、網路層、傳輸層、應用層

為資料端裝置提供傳送資料通路、傳輸資料,物理層的**包括架空明線、平衡電纜、光纖、無線通道等。

它主要規定了網路的一些電氣特性,作用是負責傳送0和1的電訊號。

鏈路層在物理層上方,單純的0和1沒有任何意義,必須規定解讀方式。多少個電訊號算一組?每個訊號位有何意義?確定了0和1的分組方式。

一組01電訊號可以有很多種分組方式,最流行的是一種叫「乙太網」的協議。

首先,乙太網把一組電訊號分成兩部分標頭(head)和資料(data)。

"標頭"包含資料報的一些說明項,比如傳送者、接受者、資料型別等等;"資料"則是資料報的具體內容。

然後,乙太網還規定了,連入網路的所有裝置,都必須具有"網絡卡"介面。資料報必須是從一塊網絡卡,傳送到另一塊網絡卡。因此網絡卡要有自己的位址,就是資料報的傳送位址和接收位址,這叫做mac位址。

一塊網絡卡怎麼會知道另一塊網絡卡的mac位址?對這個問題的回答需要用到下一層的網路層。不過可以劇透。每部計算機有兩個位址,乙個是ip位址,乙個是mac位址。計算機傳送乙個資料報時,都包含了這兩個位址資訊。其中ip位址已知,mac位址未知。它所在的子網路內計算機都會收到這個資料報。於是每台機都拿自己的ip位址與已知的ip位址對應。對上號了這台機的mac位址就是所求的mac位址了。(這裡省略了兩台機不在同一子網路的情況,大概是通過閘道器)

假設現在已經知道另一塊網絡卡的mac位址了,系統怎樣才能把資料報準確送到接收方?回答是乙太網採用了一種很"原始"的方式,它不是把資料報準確送到接收方,而是向本網路內所有計算機傳送,讓每台計算機自己判斷,是否為接收方。

假設有這麼乙個例項,1號計算機向2號計算機傳送乙個資料報,同乙個子網路的3號、4號、5號計算機都會收到這個包。它們讀取這個包的"head",找到接收方的mac位址,然後與自身的mac位址相比較,如果兩者相同,就接受這個包,做進一步處理,否則就丟棄這個包。這種傳送方式就叫做"廣播"(broadcasting)。

上文兩條原則中提到,網路層是以第資料鏈路層為基礎的,同時也解決了第資料鏈路層的某些缺陷。

第二層鏈結層雖然在理論上已經可以實現每兩台機的通訊了,但在實際上不可行,因為效率太低了。乙太網採用廣播方式傳送資料報,所有成員人手一"包",效率很低(想象一下,如果郵政寄乙份包裹,要向全世界每家每戶都拍門問一下這是不是你的包裹,這有多恐怖!)

因此,網際網路這個巨型網路要分成不同子網路。廣播侷限在傳送者所在的子網路。也就是說,如果兩台計算機不在同乙個子網路,廣播是傳不過去的。因此,必須找到一種方法,能夠區分哪些mac位址屬於同乙個子網路,哪些不是。如果是同乙個子網路,就採用廣播方式傳送,否則就採用"路由"方式傳送。("路由"的意思,就是指向不同的子網路分發資料報)

這就導致了"網路層"的誕生。它的作用是引進一套新的位址,使得我們能夠區分不同的計算機是否屬於同乙個子網路。這套位址就叫做"網路位址",簡稱"**"規定網路位址的協議,叫做ip協議。它所定義的位址,就被稱為ip位址。於是,"網路層"出現以後,每台計算機有了兩種位址,一種是mac位址,另一種是ip位址。兩種位址之間沒有任何聯絡,mac位址是繫結在網絡卡上的,網路位址則是管理員分配的,它們只是隨機組合在一起。

網路位址幫助我們確定計算機所在的子網路,mac位址則將資料報送到該子網路中的目標網絡卡。因此,從邏輯上可以推斷,必定是先處理網路位址,然後再處理mac位址。網際網路上的每一台計算機,都會分配到乙個ip位址。這個位址分成兩個部分,前一部分代表網路,後一部分代表主機。比如(172.16.254.1),那麼主機部分就是後部分(最後的那個1)。處於同乙個子網路的電腦,它們ip位址的網路部分必定是相同的,也就是說172.16.254.2應該與172.16.254.1處在同乙個子網路。

有了ip位址,就可以判斷兩台計算機在不在同乙個子網路裡面了,也就可以判斷用廣播還是路由方式傳播資訊了,效率也就提高了。

也就是說,我們還需要乙個引數,表示這個資料報到底供哪個程式(程序)使用。這個引數就叫做"埠"(port),它其實是每乙個使用網絡卡的程式的編號。每個資料報都發到主機的特定埠,所以不同的程式就能取到自己所需要的資料。

"傳輸層"的功能,就是建立"埠到埠"的通訊。相比之下,"網路層"的功能是建立"主機到主機"的通訊。只要確定主機和埠,我們就能實現程式之間的交流。

應用程式收到"傳輸層"的資料,接下來就要進行解讀。由於網際網路是開放架構,資料**五花八門,必須事先規定好格式,否則根本無法解讀。"應用層"的作用,就是規定應用程式的資料格式這是最高的一層,直接面對使用者。

比如說,有各種各樣的程式需要傳遞資料,比如email、www、ftp等等。那麼,必須有不同協議規定電子郵件、網頁、ftp資料的格式,這些應用程式協議就構成了"應用層"。

(@總結):

五層網路的功能:

(1)、 應用層:資料格式解析(如email、www、ftp等)

(2)、 傳輸層: 確定接收的資料供主機哪個程序使用(埠到埠),如我們同時瀏覽網頁和接收qq訊息。

(3)、 網路層:確定閘道器,劃分整個網路為多個子網,相同子網使用廣播傳遞、不同子網使用路由傳遞。

(4)、 資料鏈路層:對接收到的位元流0、1進行資料分組,不然不知道資料發給誰(head、data)。head包含內容,如傳送方和接收方mac位址。

(5)、 物理層:規定電氣特性、傳輸0、1訊號。

參考:

TCP IP四層網路體系結構

物理層 負責通訊網路收發資料報。網路層 選擇 流量控制 網路擁塞問題,ip協議是這一層的核心 傳輸層 機器之間建立用於會話的端到端連線 用於資料傳輸 該層的核心是tcp udp 應用層 主要為使用者提供針對性的服務,這一層的代表協議有 http 代表瀏覽器 smtp 代表簡單郵件傳輸協議 ftp 檔...

OSI和TCP IP網路體系結構

osi 功能tcp ip 五層協議 應用層通過應用程序間的互動來完成特定網路應用。應用層應用層 表示層怎麼以平台無關的方式表示要交換資料的問題。會話層解決乙個應用會話 通訊過程如何持續的問題。傳輸層 面向連線 向上層提供端到端的傳輸服務,通常是面向連線和無連線服務都提供,具有不同的傳輸可靠性。要考慮...

網路體系結構

osi 的七層協議包括應用層 表示層 會話層 運輸層 網路層 資料鏈路層 物理層,這一體系結構概念清楚,理論也較完整,但它既複雜又不實用,因此只作為參考模型。後來出現了四層的 tcp ip 體系結構,它們分別是 應用層 傳輸層 網際互連層 和網路介面層,現已被非常廣泛的利用。應用層對應於 osift...