1. 程式人生 > >大白話聊OSI七層模型和TCP/IP四層模型

大白話聊OSI七層模型和TCP/IP四層模型

 

前言

今天和大家聊的是一個比較基礎的問題,OSI七層模型和TCP/IP四層模型。

小夥伴們可能有疑問,這個東西還用寫文章嗎,太基礎了吧,網上文章多的是,隨便一搜索就能找到。

確實是這樣,網上資料確實很多,但是如果面試官問你這個問題,你能很好的回答上這個問題嗎?

本文就是用大白話來聊一聊這個話題,讓你對它們有一個很清晰的認識。

 

照搬網上資料的簡介

既然大家說網上資料很多,那王子也從網上給大家找到一張表格,如下:

OSI七層模型
TCP/IP四層模型
對應網路協議
應用層(Application)
應用層
HTTP、TFTP, FTP, NFS, WAIS、SMTP
表示層(Presentation)
Telnet, Rlogin, SNMP, Gopher
會話層(Session)
SMTP, DNS
傳輸層(Transport)
傳輸層
TCP, UDP
網路層(Network)
網路層
IP, ICMP, ARP, RARP, AKP, UUCP
資料鏈路層(Data Link)
資料鏈路層
FDDI, Ethernet, Arpanet, PDN, SLIP, PPP
物理層(Physical)
IEEE 802.1A, IEEE 802.2到IEEE 802.11

看完之後,是不是覺得七層模型和四層模型也就這麼多東西,沒什麼可講的呢?

才怪!

你知道每個層具體都是做什麼的嗎?為什麼這麼分層呢?接下來我們就用大白話來聊一聊這些問題。

 

自底向上詳解模型

 

1.物理層

首先我們來看一下物理層,物理層是做什麼的?網上資料如下:

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

看完網上的資料是不是一臉懵逼,沒關係,我們用白話解釋一下。

物理層說白了就是怎麼讓電腦之間聯網。比如插根網線、連線wifi、光纜等等方式。我們就理解成物理層負責怎麼把電腦連線起來,形成一個網路,就完事了。它傳輸的是計算機最底層的0 1訊號,學過計算機或者電子的應該都清楚0 1訊號。

 

2.資料鏈路層

我們還是看一下網上的資料:

主要將物理層接受的資料進行MAC地址(網絡卡地址)的封裝與解除封裝。常把這一層的資料叫做幀。在這一層工作的裝置叫做交換機,資料通過交換機來傳輸。

解析:

我們知道物理層把各個電腦連線起來了,互相之間傳送0 1電路訊號,那是不是得知道這些0 1訊號代表啥意思?資料鏈路層就是翻譯這個的。

以前,每個公司會定義自己的電路訊號分組方式,後來出現了乙太網。一組電訊號就是一個數據包,也就是幀(frame),它分為兩部分,標頭(head)和資料(data),標頭裡一般會放一些說明的東西,比如傳送者、接收者和資料型別等等。

那麼資料包中是如何確定傳送者位置的呢?

乙太網規定每個網絡卡必須包含一個mac地址,mac地址就是這個網絡卡的身份證。接入網路的所有裝置都得有網絡卡,資料包中就是通過mac地址進行網絡卡定位的。每塊網絡卡出廠時就有一個唯一的mac地址。48位的二進位制,但是一般用12個16進位制數字表示,前6個16進位制是廠商編號,後6個16進位制是網絡卡流水號。

那麼乙太網的資料包是怎麼從一個mac地址傳送到另一個mac地址的呢?這個其實不是點對點的,而是會廣播給區域網內的所有網絡卡,然後每個網絡卡會從資料包中獲取接收者的mac地址進行比對,如果相同就說明是給自己的資料包。

當然這種廣播的方式只針對於區域網。

 

3.網路層

網上資料:

主要從下層接受到的資料進行IP地址(192.168.0.1)的封裝與解封裝。在這一層工作的裝置是路由器。把這一次的資料叫做資料包。

解析:

網路層是一個比較複雜的部分,上邊我們介紹了局域網內傳送資料包是通過廣播的方式傳送的,那麼怎麼來確定哪些電腦在一個子網內呢?這就要靠網路層了,於是引入了IP地址,它就可以區分出哪些電腦在一個子網。

網路層有IP協議,定義的地址就叫IP地址,分為IPv4和IPv6,目前我們一般使用的都是IPv4,由32個二進位制數字組成,但是一般用4個十進位制表示,範圍從0.0.0.0到255.255.255.255。

每臺計算機都會被分配到一個IP地址,前24位(也就是十進位制的前三個)代表網路,後8為(十進位制的最後一個)代表主機。

如果幾臺電腦在一個子網,那麼前三個十進位制數一定是一樣的。

而實際上不單單是通過ip地址進行判斷的,還需要ip地址配合子網掩碼一起判斷。

比如兩個地址192.168.1.3和192.168.2.5,判斷是否是一個子網,首先會分別與子網掩碼255.255.255.0進行二進位制的與運算,然後對比網路部分的數字是不是一樣的。

那麼如果發現不在一個子網了,要怎麼傳輸資訊呢?

這個時候就需要路由來發送資料包了。

說到路由一定會想到我們平時使用的路由器,家裡的路由器其實連線的就是你自己家裡的一個子網,如果你要訪問外網的時候,其實是跟那個網站機器所在的子網進行通訊的。

路由器其實就是配置了多個網絡卡的專用裝置,可以通過不同網絡卡接入不同的網路。而閘道器就是路由器的一種,我們可以認為路由器的ip地址就是閘道器地址,路由器上每個網絡卡都有ip地址和mac地址,但只能通過ip定址,不能通過mac定址。

那網路交換機又是什麼呢?它也是一種裝置,是工作在資料鏈路層的,是通過mac地址定址和傳輸資料的。網路交換機主要用在區域網的通訊,通過mac地址進行廣播通訊。而路由器一般是用來讓你連線外網的。

順便我們再介紹幾個概念作為擴充套件。

LAN,就是local area network,就是區域網;WAN,就是wide are network,就是廣域網。WLAN是wireless local area network,就是無線區域網,也就是wifi。

家裡的路由器是包含交換機和路由兩個功能的,如果連線到區域網內的裝置就把網線插入LAN介面,如果連線外網就把網線插入WAN介面。

那麼路由器訪問外網的過程是怎麼樣的呢?

舉個例子,兩個區域網之間如何通過一個路由器進行通訊。

大概過程就是,路由器配置了兩個網絡卡,每個網絡卡可連線到一個區域網內。

區域網1內的電腦想傳送資料到區域網2內的電腦,在資料包中會寫上自己的ip地址和對方的ip地址。但是他們不在一個區域網內,於是區域網1的電腦先通過交換機將資料包傳送給路由器,這個過程需要將路由器的一塊網絡卡的ip地址對應的mac地址寫到資料包的頭部,然後才能通過交換機廣播出去,傳送給路由器。

接著路由器接到資料包,就會在區域網2內將目標機器的ip地址對應的mac地址寫入頭部,然後通過區域網2的交換機發送給區域網2內的電腦。

一個區域網內的每臺機器都有自己的ARP Cache,這個ARP就是用來讓區域網內各個裝置都知道每個裝置的ip地址和mac地址的對應關係的。所以在一個子網內通訊,就是在資料包裡寫上對方的mac地址,交換機廣播就完了。不同子網的通訊,就是寫上對方的ip地址,然後先通過路由器的mac地址廣播到路由器,路由器再根據另外一個子網的ip地址轉換為另外一個子網機器的mac地址,再通過交換機廣播,就是這樣的流程。如下圖:

 

 

 

4.傳輸層

網上資料:

定義了一些傳輸資料的協議和埠號(www埠 80等),如:TCP(傳輸控制協議。傳輸效率較低,可靠性強,用於傳輸可靠性要求高資料量大的資料),UDP(使用者資料報協議,與TCP相反,使用者傳輸可靠性要求低,資料量較少的資料,如QQ聊天就是通過UDP傳輸的)主要從下層接收的資料進行分段和傳輸,到大目的地後再重組。

解釋:

上邊我們已經瞭解了網路層的通訊流程,但還有個問題,就是機器上很多的程式都在使用一個網絡卡進行網路通訊,那麼怎麼區分是哪個程式的資料呢?

這時候就引入了埠號的概念,就是傳送的資料包其實是到網絡卡的某個埠上去的,然後那臺機器上監聽這個埠的程式就可以提取傳送到這個埠的資料了。

埠號範圍是0-65536,0-1023被系統佔用了,其他應用程式用的是1024以上的埠。

所以小夥伴們會發現,網路層是基於ip協議進行主機之間定址和通訊的,然後傳輸層其實是建立主機的某個埠到另一個主機的埠之間的連線和通訊的。

udp和tcp都是傳輸層的協議,作用就是在資料包里加入埠號,進行點對點通訊。

udp是不可靠的,發出去人家收到沒有就不知道了;tcp是可靠的,要求三次握手確認,接收到訊息必須回覆。

tcp協議僅僅規定了一套基於埠的點對點通訊協議,包括如何建立連線,如何傳送和讀取訊息,實際開發一般使用的就是socket網路程式設計了。

說到這裡相信小夥伴們對與socket網路程式設計的原理也就有了一個更深層的瞭解了。

 

5.應用層

網上資料:

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

表示層:主要是對接收的資料進行解釋 加密與解密壓縮與解壓縮等(也就是把計算機能夠識別的東西轉換成人能識別的東西,圖片聲音等)

應用層:主要是終端應用,比如說是FTP(各種檔案下載),web瀏覽器,QQ(可以理解成我們在電腦上可以直接看到的東西就是終端應用)

解釋:

在四層模型中,應用層包含了會話層、表示層、應用層。所以我們就放在一起解釋了。這部分網上資料其實說的還是比較清楚的。

應用層中最常見的協議就是http協議。

上文中我們介紹了ip地址、子網掩碼、閘道器地址,那我們在這裡擴充套件一下DNS的概念吧。

DNS:Domain Name System,即域名服務系統。因為我們一般定位是通過ip地址+mac地址+埠號的,但是如果從瀏覽器上輸入www.baidu.com咋辦?

這個時候是先把www.baidu.com傳送到DNS伺服器的,然後DNS伺服器會告訴你www.baidu.com對應的ip地址。

DNS就是做這個的。

 

總結

本篇文章篇幅比較長,如果多看兩遍相信小夥伴們會有很大的收穫的,那有關OSI七層模型和TCP/IP四層模型的大白話解釋到這裡就結束了,如果覺得哪裡寫的有錯誤,歡迎大佬評論區留言指正。

 

往期文章推薦:

Windows下使用Nginx+Tomcat做負載均衡

聊聊分散式下的WebSocket解決方案

從SpringBoot原始碼看資源對映原理

相關推薦

大白話OSI模型TCP/IP模型

  前言 今天和大家聊的是一個比較基礎的問題,OSI七層模型和TCP/IP四層模型。 小夥伴們可能有疑問,這個東西還用寫文章嗎,太基礎了吧,網上文章多的是,隨便一搜索就能找到。 確實是這樣,網上資料確實很多,但是如果面試官問你這個問題,你能很好的回答上這個問題嗎? 本文就是用大白話來聊一聊這個話題,

OSI參考模型TCP/IP參考模型

osi七層 tcp/ip四層OSI七層參考模型和TCP/IP模型一:OSI七層參考模型1:物理層(比特):進行比特流的傳輸(比特流也是數據流,在不同的介質下表現的形式也不一樣,在光纖中是光信號傳遞,這個比特流也就是光信號,如果是wifi,傳遞用的是光信號,那麽比特流也就是光信號)2:數據鏈路層(幀):建立和維

OSI模型TCP/IP模型學習筆記

(1)物理層 提供網路的物理連線。物理層建立在物理介質上,提供機械和電器介面。主要包括電纜、物理埠和附屬裝置,如雙絞線、同軸電纜、接線裝置(網絡卡等)、RJ-45介面、串列埠和並口等在網路中都是工作在這個層次的。 物理層提供的服務有:物理連線、物理服務資料單元順序化(

OSI協議模型TCP/IP模型比較

TCP/IP參考模型      ISO制定的OSI參考模型的過於龐大、複雜招致了許多批評。與此對照,由技術人員自己開發的TCP/IP協議棧獲得了更為廣泛的應用。如圖2-1所示,是TCP/IP參考模型和OSI參考模型的對比示意圖。 圖2-1  TCP/IP參考模型   2.1 TCP/IP參考模型的層次結構

OSI模型TCP/IP模型(一)

開發十年,就只剩下這套架構體系了! >>>   

OSI模型TCP/IP模型(二)

今年企業對Java開發的市場需求,你看懂了嗎? >>>   

OSI的7模型TCP/IP模型

##TCP/IP 四層模型 TCP/IP網路協議棧分為應用層(Application)、傳輸層(Transport)、網路層(Network)和鏈路層(Link)四層。 OSI 7層模型 物理層:主要定義物理裝置標準(網線的

OSI模型TCP/IP模型、iproute家族命令、管理工具介紹

1、簡述osi七層模型和TCP/IP五層模型網路協議通常分不同層次進行開發,每一層分別負責不同的通行功能。 1.1 OSI七層模型OSI:Open System Internetconnection(開放系統互聯),由ISO國際標準化組織定義;目的是規範網路環境,實現軟硬體相容;自上而下共分為七層,分別為:應

第六週--簡述osi模型TCP/IP模型

目錄 一、簡述osi七層模型和TCP/IP五層模型 OSI 七層模型: TCP/IP五層模型 二、簡述iproute家族命令 三、詳細說明進行管理工具htop、vmstat等相關命令,並舉例  四、使用until和while分別實現192.168.0.0/24 網段

OSI協議模型TCP/IP模型協議體系結構之間的關係

一、OSI七層模型 OSI七層協議模型主要是:應用層(Application)、表示層(Presentation)、會話層(Session)、傳輸層(Transport)、網路層(Network)、資料鏈路層(Data Link)、物理層(Physical)。

簡述OSI模型TCP/IP模型

OSI七層模型 OSI七層示例圖: OSI七層和TCP/IP五層以及對應網路裝置對比示例圖 物理層 在OSI參考模型中,物理層(Physical Layer)是參考模型的最低層,也是OSI模型的第一層。 物理層的主要功能是:利用傳輸介質為資料鏈路層提

OSI協議模型TCP/IP模型協議體系結構之間的關係(轉)

一、OSI七層模型 OSI七層協議模型主要是:應用層(Application)、表示層(Presentation)、會話層(Session)、傳輸層(Transport)、網路層(Network)、資料鏈路層(Data Link)、物理層(Physical)。 二、T

OSI協議模型TCP/IP模型學習筆記

osi tcpip 1. OSI七層和TCP/IP四層的關系1.1 OSI引入了服務、接口、協議、分層的概念,TCP/IP借鑒了OSI的這些概念建立TCP/IP模型。1.2 OSI先有模型,後有協議,先有標準,後進行實踐;而TCP/IP則相反,先有協議和應用再提出了模型,且是參照的OSI模型。1.3

OSI網絡模型TCP/IP模型介紹

電子郵件 傳輸控制協議 toc upload ear 最大 中斷 管理數據 con OSI七層網絡模型與TCP/IP四層模型介紹 [TOC] 1.OSI七層網絡模型介紹   OSI(Open System Interconnection,開放系統互連)七層網絡模型稱為開放式

圖解HTTP之——淺析OSITCP/IP的關係

最近在學習有關HTTP的知識,特以部落格記之,方便後續複習。。。。。。。。。。。。。。。 OSI七層和TCP/IP四層的關係 1 OSI引入了服務、介面、協議、分層的概念,TCP/IP借鑑了OSI的這些概念建立TCP/IP模型。 2 OSI先有模型,後有協議,先有標準

6.OSI網路模型TCP/IP網路模型

下圖是TCP/IP與OSI參考模型的對應關係: 為了標識通訊實體中進行通訊的程序,TCP/IP協議提出了協議埠(protocol Port)的概念。埠是一種抽象的網路結構(包括一些資料結構和I/O緩衝區)。應用程式通過系統呼叫與某埠號建立連線後(binding),傳輸層傳給該埠的資料都

OSI模型TCP/IP模型

計算機網路體系結構圖: OSI七層網路模型: 稱為開方式系統互聯參考模型,把網路從邏輯上分為了七層,是一種框架的設計方法,主要的功能是幫助不同型別的主機實現資料傳輸;優點是將服務、介面和協議區分開來,概念清楚,理論完整,使不同的系統不同的網路之間實現可靠的通訊。

嵌入式Linux網路程式設計,網路基礎,OSI模型TCP/IP模型TCP/IP通訊模型、協議結構、封包與拆包,TCP/UDP協議特點及適用情況

文章目錄 1,TCP協議分成了兩個不同的協議----->TCP/IP協議誕生 2,網路的體系結構 2.1,OSI開放系統互聯模型 2.2,TCP/IP協議族的體系結構 3,TCP/IP協議通訊模型 3.1

HTTP之——淺析OSITCP/IP的關係

OSI七層和TCP/IP四層的關係 1 OSI引入了服務、介面、協議、分層的概念,TCP/IP借鑑了OSI的這些概念建立TCP/IP模型。 2 OSI先有模型,後有協議,先有標準,後進行實踐;而TCP/IP則相反,先有協議和應用再提出了模型,且是參照的OSI模型。

OSI網路模型TCP/IP網路模型及在java中對應API(Socket、HttpServlet)實現

1、OSI七層網路模型 OSI七層網路模型從上到下依次是:應用層、表示層、會話層、傳輸層、網路層、資料鏈路層和物理層。 其中應用層、表示層、會話層和傳輸層被稱作主機層,是開發工程師通過開發應用程式處理和實現的內容;而網路層、物理層和資料鏈路層被稱作媒體層,是網路工程師所研究的物件。