深入淺出-網絡七層模型&&網絡數據包



#引言
今天回顧一下--網絡七層模型&&網絡數據包
#網絡基本概念
##OSI模型
OSI 模型(Open System Interconnection model)是一個由國際標準化組織􏰁提出的概念模型,試圖􏰁供一個使各種不同的計算機和網絡在世界範圍內實現互聯的標準框架。
它將計算機網絡體系結構劃分爲七層,每層都可以􏰁供抽象良好的接口。瞭解 OSI 模型有助於理解實際上互聯網絡的工業標準——TCP/IP 協議。
OSI 模型各層間關係和通訊時的數據流向如圖所示:

OSI 模型.png
顯然、如果一個東西想包羅萬象、一般時不可能的;在實際的開發應用中一般時在此模型的基礎上進行裁剪、整合!

七層模型介紹

  • 物理層:
    物理層負責最後將信息編碼成電流脈衝或其它信號用於網上傳輸;
    eg:RJ45等將數據轉化成0和1;
  • 數據鏈路層:
    數據鏈路層通過物理網絡鏈路􏰁供數據傳輸。不同的數據鏈路層定義了不同的網絡和協 議特徵,其中包括物理編址、網絡拓撲結構、錯誤校驗、數據幀序列以及流控;
    可以簡單的理解爲:規定了0和1的分包形式,確定了網絡數據包的形式;
  • 網絡層
    網絡層負責在源和終點之間建立連接;
    可以理解爲,此處需要確定計算機的位置,怎麼確定?IPv4,IPv6!
  • 傳輸層
    傳輸層向高層􏰁提供可靠的端到端的網絡數據流服務。
    可以理解爲:每一個應用程序都會在網卡註冊一個端口號,該層就是端口與端口的通信!常用的(TCP/IP)協議;
  • 會話層
    會話層建立、管理和終止表示層與實體之間的通信會話;
    建立一個連接(自動的手機信息、自動的網絡尋址);
  • 表示層:
    表示層􏰁供多種功能用於應用層數據編碼和轉化,以確保以一個系統應用層發送的信息 可以被另一個系統應用層識別;
    可以理解爲:解決不同系統之間的通信,eg:Linux下的QQ和Windows下的QQ可以通信;
  • 應用層:
    OSI 的應用層協議包括文件的傳輸、訪問及管理協議(FTAM) ,以及文件虛擬終端協議(VIP)和公用管理系統信息(CMIP)等;
    規定數據的傳輸協議;

常見的應用層協議:

常見的應用層協議.png
互聯網分層結構的好處: 上層的變動完全不影響下層的結構。

##TCP/IP 協議基本概念

OSI 模型所分的七層,在實際應用中,往往有一些層被整合,或者功能分散到其他層去。TCP/IP 沒有照搬 OSI 模型,也沒有 一個公認的 TCP/IP 層級模型,一般劃分爲三層到五層模型來􏰂述 TCP/IP 協議。

  • 在此描述用一個通用的四層模型來描述,每一層都和 OSI 模型有較強的相關性但是又可能會有交叉。
  • TCP/IP 的設計,是吸取了分層模型的精華思想——封裝。每層對上一層􏰁供服務的時 候,上一層的數據結構是黑盒,直接作爲本層的數據,而不需要關心上一層協議的任何細節。

TCP/IP 分層模型的分層以以太網上傳輸 UDP 數據包如圖所示;
UDP 數據包.png

###數據包
寬泛意義的數據包:每一個數據包都包含"標頭"和"數據"兩個部分."標頭"包含本數據包的一些說明."數據"則是本數據包的內容.

細分數據包:

  • 應用程序數據包: 標頭部分規定應用程序的數據格式.數據部分傳輸具體的數據內容.*** ——對應上圖中的數據!***

  • TCP/UDP數據包:標頭部分包含雙方的發出端口和接收端口. UDP數據包:'標頭’長度:8個字節,"數據包"總長度最大爲65535字節,正好放進一個IP數據包. TCP數據包:理論上沒有長度限制,但是,爲了保證網絡傳輸效率,通常不會超過IP數據長度,確保單個包不會被分割. *** ——對應上圖中的UDP數據!***

  • IP數據包: 標頭部分包含通信雙方的IP地址,協議版本,長度等信息. '標頭’長度:20~60字節,"數據包"總長度最大爲65535字節. *** ——對應上圖中的IP數據***

  • 以太網數據包: 最基礎的數據包.標頭部分包含了通信雙方的MAC地址,數據類型等. '標頭’長度:18字節,'數據’部分長度:46~1500字節. *** ——對應上圖中的以太網數據***

###四層模型

  1. 網絡接口層
    網絡接口層包括用於協作IP數據在已有網絡介質上傳輸的協議。
    它定義像地址解析協議(Address Resolution Protocol,ARP)這樣的協議,􏰁供 TCP/IP 協議的數據結構和實際物理硬件之間的接口。
    可以理解爲:確定了網絡數據包的形式

  2. 網間層
    網間層對應於 OSI 七層參考模型的網絡層,本層包含 IP 協議、RIP 協議(Routing Information Protocol,路由信息協議),負責數據的包裝、尋址和路由。同時還包含網間控制報文協議(Internet Control Message Protocol,ICMP)用來􏰁供網絡診斷信息;
    可以理解爲:該層時確定計算機的位置

  3. 傳輸層
    傳輸層對應於 OSI 七層參考模型的傳輸層,它􏰁供兩種端到端的通信服務。其中 TCP 協議(Transmission Control Protocol)􏰁供可靠的數據流運輸服務,UDP 協議(Use Datagram Protocol)􏰁供不可靠的用戶數據報服務。
    TCP:三次握手、四次揮手;UDP:只發不管別人收不收得到--任性哈

  4. 應用層
    應用層對應於 OSI 七層參考模型的應用層和表達層;
    不明白的再看看7層參考模型的描述

###TCP/IP 協議族常用協議

  • 應用層:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等
  • 傳輸層:TCP,UDP
  • 網絡層:IP,ICMP,OSPF,EIGRP,IGMP
  • 數據鏈路層:SLIP,CSLIP,PPP,MTU

重要的 TCP/IP 協議族協議進行簡單介紹:

  • IP(Internet Protocol,網際協議)是網間層的主要協議,任務是在源地址和和目的地址之間傳輸數據。IP 協議只是盡最大努力來傳輸數據包,並不保證所有的包都可以傳輸 到目的地,也不保證數據包的順序和唯一。

    • IP 定義了 TCP/IP 的地址,尋址方法,以及路由規則。現在廣泛使用的 IP 協議有 IPv4 和 IPv6 兩種:IPv4 使用 32 位二進制整數做地址,一般使用點分十進制方式表示,比如 192.168.0.1。
    • IP 地址由兩部分組成,即網絡號和主機號。故一個完整的 IPv4 地址往往表示 爲 192.168.0.1/24 或192.168.0.1/255.255.255.0 這種形式。
    • IPv6 是爲了解決 IPv4 地址耗盡和其它一些問題而研發的最新版本的 IP。使用 128 位 整數表示地址,通常使用冒號分隔的十六進制來表示,並且可以省略其中一串連續的 0,如:fe80::200:1ff:fe00:1。
      目前使用並不多!
  • ICMP(Internet Control Message Protocol,網絡控制消息協議)是 TCP/IP 的 核心協議之一,用於在 IP 網絡中發送控制消息,􏰁供通信過程中的各種問題反饋。 ICMP 直接使用 IP 數據包傳輸,但 ICMP 並不被視爲 IP 協議的子協議。常見的聯網狀態診斷工具比如依賴於 ICMP 協議;

  • TCP(TransmissionControlProtocol,傳輸控制協議)是一種面向連接的,可靠的, 基於字節流傳輸的通信協議。TCP 具有端口號的概念,用來標識同一個地址上的不 同應用。􏰂述 TCP 的標準文檔是 RFC793。

  • UDP(UserDatagramProtocol,用戶數據報協議)是一個面向數據報的傳輸層協 議。UDP 的傳輸是不可靠的,簡單的說就是發了不管,發送者不會知道目標地址 的數據通路是否發生擁塞,也不知道數據是否到達,是否完整以及是否還是原來的 次序。它同 TCP 一樣有用來標識本地應用的端口號。所以應用 UDP 的應用,都能 夠容忍一定數量的錯誤和丟包,但是對傳輸性能敏感的,比如流媒體、DNS 等。

  • ECHO(EchoProtocol,回聲協議)是一個簡單的調試和檢測工具。服務器器會 原樣回發它收到的任何數據,既可以使用 TCP 傳輸,也可以使用 UDP 傳輸。使用 端口號 7 。

  • DHCP(DynamicHostConfigrationProtocol,動態主機配置協議)是用於局域 網自動分配 IP 地址和主機配置的協議。可以使局域網的部署更加簡單。

  • DNS(DomainNameSystem,域名系統)是互聯網的一項服務,可以簡單的將用“.” 分隔的一般會有意義的域名轉換成不易記憶的 IP 地址。一般使用 UDP 協議傳輸, 也可以使用 TCP,默認服務端口號 53。􏰂

  • FTP(FileTransferProtocol,文件傳輸協議)是用來進行文件傳輸的標準協議。 FTP 基於 TCP 使用端口號 20 來傳輸數據,21 來傳輸控制信息。

  • TFTP(Trivial File Transfer Protocol,簡單文件傳輸協議)是一個簡化的文 件傳輸協議,其設計非常簡單,通過少量存儲器就能輕鬆實現,所以一般被用來通 過網絡引導計算機過程中傳輸引導文件等小文件;

  • SSH(SecureShell,安全Shell),因爲傳統的網絡服務程序比如TELNET本質上都極不安全,明文傳說數據和用戶信息包括密碼,SSH 被開發出來避免這些問題, 它其實是一個協議框架,有大量的擴展冗餘能力,並且􏰁供了加密壓縮的通道可以 爲其他協議使用。

  • POP(PostOfficeProtocol,郵局協議)是支持通過客戶端訪問電子郵件的服務, 現在版本是 POP3,也有加密的版本 POP3S。協議使用 TCP,端口 110。

  • SMTP(Simple Mail Transfer Protocol,簡單郵件傳輸協議)是現在在互聯網 上發送電子郵件的事實標準。使用 TCP 協議傳輸,端口號 25。

  • HTTP(HyperTextTransferProtocol,超文本傳輸協議)是現在廣爲流行的WEB 網絡的基礎,HTTPS 是 HTTP 的加密安全版本。協議通過 TCP 傳輸,HTTP 默認 使用端口 80,HTTPS 使用 443。

以上就是今天回顧的內容。
下篇回顧一下socket、TCP、UDP!


參考資料


你的鼓勵也是我創作的動力

打賞地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章