TCP/IP協議族基本概念

yangwu007發表於2020-11-01

1、OSI模型

1、什麼是OSI模型?

開放式系統互聯通訊參考模型(Open System Interconnection Reference Model,縮寫為 OSI),簡稱為OSI模型(OSI model),由國際標準化組織提出的,試圖使各種計算機在世界範圍內互連為網路的一個標準框架,是一種概念性模型,定義於ISO/IEC 7498-1。

OSI參考模型只是一個概念性的框架,並沒有提供一個可以實現的方法。

2、OSI模型的描述

OSI模型,圖片來源於百度百科

  • 第1層 物理層
    物理層(Physical Layer)在區域性區域網上傳送資料幀(data frame),它負責管理計算機通訊裝置和網路媒體之間的互通。包括了針腳、電壓、線纜規範、集線器、中繼器、網路卡、主機介面卡等。

  • 第2層 資料鏈路層
    資料鏈路層(Data Link Layer)負責網路定址、錯誤偵測和改錯。當表頭和表尾被加至資料包時,會形成幀。資料連結串列頭(DLH)是包含了實體地址和錯誤偵測及改錯的方法。資料連結串列尾(DLT)是一串指示資料包末端的字串。例如乙太網、無線區域網(Wi-Fi)和通用分組無線服務(GPRS)等。
    分為兩個子層:邏輯鏈路控制(logic link control,LLC)子層和介質訪問控制(media access control,MAC)子層。

  • 第3層 網路層
    網路層(Network Layer)決定資料的路徑選擇和轉寄,將網路表頭(NH)加至資料包,以形成分組。網路表頭包含了網路資料。例如:網際網路協議(IP)等。

  • 第4層 傳輸層
    傳輸層(Transport Layer)把傳輸表頭(TH)加至資料以形成資料包。傳輸表頭包含了所使用的協議等傳送資訊。例如:傳輸控制協議(TCP)等。

  • 第5層 會話層
    會話層(Session Layer)負責在資料傳輸中設定和維護計算機網路中兩臺計算機之間的通訊連線。

  • 第6層 表達層
    主條目:表達層
    表達層(Presentation Layer)把資料轉換為能與接收者的系統格式相容並適合傳輸的格式。

  • 第7層 應用層
    應用層(Application Layer)提供為應用軟體而設的介面,以設定與另一應用軟體之間的通訊。例如: HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等。

2、TCP/IP協議

1、什麼是TCP/IP協議

TCP/IP傳輸協議,即傳輸控制/網路協議,也叫作網路通訊協議。它是在網路的使用中的最基本的通訊協議。TCP/IP傳輸協議對網際網路中各部分進行通訊的標準和方法進行了規定。並且,TCP/IP傳輸協議是保證網路資料資訊及時、完整傳輸的兩個重要的協議。TCP/IP傳輸協議是嚴格來說是一個四層的體系結構,應用層、傳輸層、網路層和資料鏈路層都包含其中。

TCP/IP協議在一定程度上參考了OSI的體系結構,1983年,TCP/IP協議正式替代NCP,從此以後TCP/IP成為大部分因特網共同遵守的一種網路規則。

2、TCP/IP協議的描述

在這裡插入圖片描述

  • 資料鏈路層
    乙太網協議規定,接入網路的裝置都必須安裝網路介面卡,即網路卡,資料包必須是從一塊網路卡傳送到另一塊網路卡。而網路卡地址就是資料包的傳送地址和接收地址,有了MAC地址以後,乙太網採用廣播形式,把資料包發給該子網內所有主機,子網內每臺主機在接收到這個包以後,都會讀取首部裡的目標MAC地址,然後和自己的MAC地址進行對比,如果相同就做下一步處理,如果不同,就丟棄這個包。 [4]
    所以鏈路層的主要工作就是對電訊號進行分組並形成具有特定意義的資料幀,然後以廣播的形式通過物理介質傳送給接收方。 [4]
  • 網路層
    IP協議
    網路層引入了IP協議,制定了一套新地址,使得我們能夠區分兩臺主機是否同屬一個網路,這套地址就是網路地址,也就是所謂的IP地址。IP協議將這個32位的地址分為兩部分,前面部分代表網路地址,後面部分表示該主機在區域網中的地址。如果兩個IP地址在同一個子網內,則網路地址一定相同。為了判斷IP地址中的網路地址,IP協議還引入了子網掩碼,IP地址和子網掩碼通過按位與運算後就可以得到網路地址。 [4]
    ARP協議
    即地址解析協議,是根據IP地址獲取MAC地址的一個網路層協議。其工作原理如下:ARP首先會發起一個請求資料包,資料包的首部包含了目標主機的IP地址,然後這個資料包會在鏈路層進行再次包裝,生成乙太網資料包,最終由乙太網廣播給子網內的所有主機,每一臺主機都會接收到這個資料包,並取出標頭裡的IP地址,然後和自己的IP地址進行比較,如果相同就返回自己的MAC地址,如果不同就丟棄該資料包。ARP接收返回訊息,以此確定目標機的MAC地址;與此同時,ARP還會將返回的MAC地址與對應的IP地址存入本機ARP快取中並保留一定時間,下次請求時直接查詢ARP快取以節約資源。 [4]
    路由協議
    首先通過IP協議來判斷兩臺主機是否在同一個子網中,如果在同一個子網,就通過ARP協議查詢對應的MAC地址,然後以廣播的形式向該子網內的主機傳送資料包;如果不在同一個子網,乙太網會將該資料包轉發給本子網的閘道器進行路由。閘道器是網際網路上子網與子網之間的橋樑,所以閘道器會進行多次轉發,最終將該資料包轉發到目標IP所在的子網中,然後再通過ARP獲取目標機MAC,最終也是通過廣播形式將資料包傳送給接收方。而完成這個路由協議的物理裝置就是路由器,路由器扮演著交通樞紐的角色,它會根據通道情況,選擇並設定路由,以最佳路徑來轉發資料包。 [4]
    所以,網路層的主要工作是定義網路地址、區分網段、子網內MAC定址、對於不同子網的資料包進行路由。 [4]
  • 傳輸層
    鏈路層定義了主機的身份,即MAC地址,而網路層定義了IP地址,明確了主機所在的網段,有了這兩個地址,資料包就從可以從一個主機傳送到另一臺主機。但實際上資料包是從一個主機的某個應用程式發出,然後由對方主機的應用程式接收。而每臺電腦都有可能同時執行著很多個應用程式,所以當資料包被髮送到主機上以後,是無法確定哪個應用程式要接收這個包。因此傳輸層引入了UDP協議來解決這個問題,為了給每個應用程式標識身份。
    UDP協議
    UDP協議定義了埠,同一個主機上的每個應用程式都需要指定唯一的埠號,並且規定網路中傳輸的資料包必須加上埠資訊,當資料包到達主機以後,就可以根據埠號找到對應的應用程式了。UDP協議比較簡單,實現容易,但它沒有確認機制,資料包一旦發出,無法知道對方是否收到,因此可靠性較差,為了解決這個問題,提高網路可靠性,TCP協議就誕生了。
    TCP協議
    TCP即傳輸控制協議,是一種面向連線的、可靠的、基於位元組流的通訊協議。簡單來說TCP就是有確認機制的UDP協議,每發出一個資料包都要求確認,如果有一個資料包丟失,就收不到確認,傳送方就必須重發這個資料包。為了保證傳輸的可靠性,TCP協議在UDP基礎之上建立了三次對話的確認機制,即在正式收發資料前,必須和對方建立可靠的連線。TCP資料包和UDP一樣,都是由首部和資料兩部分組成,唯一不同的是,TCP資料包沒有長度限制,理論上可以無限長,但是為了保證網路的效率,通常TCP資料包的長度不會超過IP資料包的長度,以確保單個TCP資料包不必再分割。 [4]
    傳輸層的主要工作是定義埠,標識應用程式身份,實現埠到埠的通訊,TCP協議可以保證資料傳輸的可靠性。 [4]
  • 應用層
    理論上講,有了以上三層協議的支援,資料已經可以從一個主機上的應用程式傳輸到另一臺主機的應用程式了,但此時傳過來的資料是位元組流,不能很好的被程式識別,操作性差,因此,應用層定義了各種各樣的協議來規範資料格式,常見的有http,ftp,smtp等,在請求Header中,分別定義了請求資料格式Accept和響應資料格式Content-Type,有了這個規範以後,當對方接收到請求以後就知道該用什麼格式來解析,然後對請求進行處理,最後按照請求方要求的格式將資料返回,請求端接收到響應後,就按照規定的格式進行解讀。 [4]
    所以應用層的主要工作就是定義資料格式並按照對應的格式解讀資料

相關文章