網絡分層模型(OSI,TCP/IP)

  • 目前存在的兩種網絡分層模型:OSI模型TCP/IP模型。
  • OSI模型一共分為七層
  • TCP/IP模型和OSI模型類似,但是只分為四層。

OSI模型

  • OSI的全程是Open Systems Interconncection,即開放系統互聯,它由ISO(International Organization for Standardization)制定。
  • OSI是網絡通信的一種通用框架,它分為七層,并且定義了在每一層上數據的處理方法。
層數 層名 備注
7 應用層(Application)
6 表示層(Presentation)
5 會話層(Session)
4 傳輸層(Transport)
3 網絡層(Network) 路由器
2 數據鏈路層(Data Link) 交換機
1 物理層(Physical) 網卡、集線器(Hub)
  • 英語速記:All People Seem To Need Data Processing.

第七層——應用層(Application)

  • 這里的“應用”要和應用程序相區別。
  • 當用戶使用瀏覽器來打開網頁時,需要利用DNS提供的域名解析服務,來獲取網址對應的IP地址,然后再通過另外一個協議HTTP來下載頁面內容。
  • 在這個過程中出現的兩個協議(DNS和HTTP)都是工作在應用層上的協議。
  • 應用層的其他常用協議:
    • FTP:文件傳輸協議,用來在客戶機和FTP服務器之間傳輸文件。
    • DHCP:動態主機配置協議,DHCP服務器為客戶機動態分配IP地址。
    • POP3:郵件接收協議,用于從POP3服務器接收郵件。
    • SMTP:郵件發送協議,用戶通過SMTP服務器發送郵件。

第六層——表示層(Presentation)

  • 這里的“表示”是指數據的表示。
  • 該層的主要功能:轉換,壓縮和加密。
  • 工作在表示層的加密協議最常用的是SSL(Secure Sockets Layer)。
    • 加密協議并不一定需要工作在表示層,如IPSec(Internet Protocol Security,因特網協議安全)就工作在第三層網絡層中。

第五層——會話層(Session)

  • 可以把“會話”理解為兩個應用程序進程之間的邏輯連接,兩個應用程序通過這個邏輯連接在一段時間內交換數據。
  • 會話層的作用就是為創建、管理和終止會話提供必要的方法。
    • 這些方法一般以API(Application Program Interface,應用程序編程接口)的形式出現。
      • 常用的API由NetBIOS(Network Basic Input/Output System,網絡基本輸入/輸出系統)、RPC(Remote Procedure Call,遠程過程調用)和Socket API。
  • 會話層還負責管理和確定傳輸模式。
    • 計算機可以由三種模式來傳輸數據:單向(Simplex)、半雙工(Half-Duplex)、全雙工(Full-Duplex)。
模式 特點
Simplex 數據只可以單向傳輸。
Half-Duplex 允許數據單向傳輸,但是一個時刻只能有一個方向傳輸,不能同時雙向傳輸。
Full-Duplex 數據可以同時雙向傳輸。

第四層——傳輸層(Transport)

  • 傳輸層提供數據傳輸的服務。
    • 這里的“傳輸”指的是端對端(End-to-End)或者主機對主機(Host-to-Host)的傳輸。
  • 傳輸層上最重要的兩個協議是TCP和UDP。
    • TCP是面向連接的協議(Connection-Oriented)
    • UDP是無連接的協議(Connection-Less)。

TCP(Transmission Control Protocol,傳輸控制協議)

  • TCP在傳輸數據之前必須先建立一個連接。
  • TCP做了很多工作來提供可靠的數據傳輸,包括建立、管理和終止連接,確認和重傳。
  • 同時TCP還提供分段和重組,流量控制(Flow Control)等。

UDP(User Datagram Protocol,用戶數據報協議)

  • UDP是一種簡單的傳輸層協議,所以它并不能提供可靠的數據傳輸。
  • 簡單地說,UDP只是把應用程序發給它的數據打包成一個UDP數據報(UDP Datagram),然后再把這個數據報傳給IP。
  • TCP會把應用程序發來的數據根據需要分成若干個大小合適的TCP段(TCP Segment),而UDP卻只是簡單地把所有發送來的數據打包成一個UDP數據報,所以我們在編寫使用UDP的程序時,不能一次性向UDP寫入太多數據,否則可能會導致IP分段的后果。
  • 由于可能有很多應用程序同時在使用TCP/UDP,它們都會把數據交給TCP/UDP,而TCP/UDP也會接收來自IP的、包含指向不同應用程序的數據,所以就需要有一種方法來區別(標識)應用程序,這種方法就是通過端口號(Port)來進行多路復用多路分解。端口號是一個16位的二進制整數,其取值范圍是0~65535。

多路復用(Multiplexing)

多路復用是只當應用程序把數據交給TCP或UDP時,TCP會把這些數據分成若干個TCP段,UDP則會產生一個UDP數據報。在這些TCP段和UDP數據報中,會填入應用程序指定的源端口號和目標端口號,源端口號用于標識發送的應用程序(進程),目標端口號用于指明在目標機器上應該接收數據的目標應用程序。


多路分解(Demultiplexing)

多路分解是多路復用的逆過程。當在目標機器上的TCP或者UDP接收到TCP段和UDP數據報時,會檢查它們的目標端口號,然后根據不同的目標端口號把數據分發給不同的應用程序(進程)。


TCP與UDP比較

5a1562ea9c5c913dc6000006


第三層——網絡層(Network)

  • 網絡層關心的主要是如何把數據從一個設備發送到另一個設備。
  • 網絡層需要提供三個最基本的功能:地址、路由、分段和重組
    • 路由(route),一個終端到另一個終端的路徑選擇(跨網段)
  • 同時還需要一些附加的功能,比如錯誤處理和診斷。
  • 網絡層上最重要的協議IP(Internet Protocol),就是為了這些功能而設計的。
  • 目前IP一共有兩個版本IPv4和IPv6。
    • 兩者最主要的區別是使用了不同位數的二進制整數作為地址:IPv4使用32位二進制地址,IPv6使用128位二進制地址。
      • IPv4的地址表示方法一般為用點隔開的4個數字,每個數字的取值范圍是0~255,即一個字節的大小,如192.168.1.1。
      • IPv6的表示方法為用冒號隔開的8個字(word,16位二進制),每個字都用十六進制來表示,如2012:0000:4528:7D76:3C2B:05AD:3F57:1C98。

第二層——數據鏈路層(Data Link)

  • 網絡層關心的是如何把數據從一個設備發送到另外一個設備,這另外一個設備有可能在本地網絡中或者在一個很遠的網絡中。
  • 數據鏈路層關心的是如何把數據發送到本地網絡中去。
  • 我們平時常說的LAN(Local Area Network,局域網)技術,如以太網(Ethernet)、令牌環網(Token Ring)、光纖分布數據接口(FDDI)和802.11(WiFi)都定義在這一層。
  • 數據鏈路層又分為兩個子層:邏輯鏈路控制層(Logical Link Control)和介質訪問控制層(Media Access Control)。
  • 數據鏈路層還有一個重要的概念,即MAC地址,也有人稱其為物理地址、硬件地址、以太網地址等。
  • 每一個網卡(Network Interface Card)都有一個唯一的MAC地址,數據鏈路層通過MAC地址來確保數據能夠正確被發送到目標設備。
  • MAC地址是一個48位二進制整數,通常的表示方法是用-隔開的6個十六進制整數,如14-FE-B5-B0-2B-96。

第一層——物理層(Physical)

  • 物理層位于OSI的底層,所有其他層的數據最終都必須經由物理層才能發送出去。
  • 物理層的功能包括:
    • 硬件規范的定義,如電纜、連接器、無線接收器等的工作方式,網卡、集線器(Hub)等網絡設備也工作在物理層。
    • 編碼和信號,物理層把計算機中的二進制0和1轉換成可以在物理介質上傳輸的信號。
    • 在把數據轉換成信號后(如對于雙絞線電纜則是電子脈沖信號),物理層負責信號的實際發送和接收。

OSI模型單位

  • PDU(Protocol Data Unit) : OSI標準不同層次的數據單位
PDU
物理層 PDU是數據位 bit
數據鏈路層 PDU是數據幀 frame
網絡層 PDU是數據包 packet
傳輸層 PDU是數據段 segment
其它更高層次 PDU是消息 message

TCP/IP模型

  • TCP/IP
    • Transmission Control Protocol/Internet Protocol
    • 傳輸控制協議/ 因特網互聯協議
  • TCP/IP 是一個Protocol Stack ,包括TCP、IP 、UDP 、ICMP 、RIP、TELNET、FTP 、SMTP 、ARP等許多協議

  • TCP/IP模型分為四層
    • 應用層(Application)
    • 傳輸層(Host-to-Host Transport)
    • 互聯網層(Internet)
    • 網絡接口層(Network Interface)。
  • 在TCP/IP模型中并不包含物理層。
  • 另外,兩個重要的協議ARP(Address Resolution Protocol,地址解析協議)和RARP(Reverse Address Resolution Protocol,反向地址轉換協議),在OSI模型中一般被認為是在位于第二層數據鏈路層和第三層網絡層之間,而在TCP/IP模型中則位于網絡接口層。
  • 與ISO參考模型的分層有對應關系
    5a1561269c5c913dc6000005

總結

發送方應用程序的數據總是從最上層開始,層層向下,最終經由物理層發送出去;相應的,在接收方的物理層接收到數據后,層層向上,最終經由應用層分發到具體的應用程序進程中。

在數據層層向下的過程中,每一層都會對數據進行一些封裝處理(如打包或者編碼);而在數據層層向上的過程中,每一層都會對數據進行一些逆處理(如解包或者解碼)。這些對數據的處理和逆處理的過程就是為了實現該層的服務。
5a15269d9c5c913dc6000000
5a1526b39c5c913dc6000001

 

  • OSI,TCP/IP模型區別
    5a1527509c5c913dc6000002

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/89008

(1)
nolannolan
上一篇 2017-11-27
下一篇 2017-11-27

相關推薦

  • parted使用說明

    一.為什么使用parted命令     傳統的MBR(Master Boot Record)分區方式,有一個局限:無法支持超過2TB的硬盤分區(單個分區超過2TB)。     GPT(GUID Partition Table)的分區表很好的解決了這個問題,但在Linux系統中,傳…

    Linux干貨 2015-04-13
  • Nginx專題: 從編譯安裝到URL重寫

    Nginx專題: 從編譯安裝到URL重寫 前言 環境介紹 Nginx介紹 編譯安裝Nginx 配置文件解釋 main和event{}的配置 http{}的基本配置 配置Nginx 搭建一個基本的Nginx Web服務器 實現https 創建CA并簽署Nginx證書 修改配置文件 測試https 實現URL Rewrite將不同瀏覽器的請求響應不同頁面 URL…

    Linux干貨 2016-04-04
  • bash

    bash 配置文件   按生效范圍劃分:存在兩類;     全局配置:            /etc/profile       &nbs…

    Linux干貨 2015-04-15
  • 第十二周:httpd和lamp

    看了一下作業內容,發現所有的都在51cto上寫過了。這里就不在做了。 畢竟當時幾篇博客寫下來,還是非常繁瑣的,不想在寫。 文檔地址:RHEL6.8編譯安裝LAMP環境:httpd-2.4+mysql5.6+php5.5;基于LAMP環境部署WordPress: http://afterdawn.blog.51cto.com/7503144/1876171 配…

    Linux干貨 2016-12-09
  • centos啟動模式更改

    臨時更改   用單用戶的方法 系統開機 然后在等待界面是按esc 然后會進入這個界面,根據下面的提示進入 按a 會進入下面這個界面 在最后一行輸數字代表第幾模式   文件更改   centos6   系統啟動時會初始化init init 的配置文件是/etc/inittab文件 用vim /etc/inittab進入查…

    2017-07-22
  • 第四周練習與作業

    一、復制/etc/profile至/tmp/目錄,用查找替換命令刪除/tmp/profile文件中的行首的空白字符 復制文件至/tmp目錄下: cp /etc/profile /tmp/ vim /tmp/profile 進入文件命令模式下,使用正則表達式  ;%s/^[[:blank:]]\+//g 二、復制/etc/rc.d/init.d/fu…

    2017-08-05
欧美性久久久久