七層網絡模型(簡稱OSI模型):
OSI 模型(Open System Interconnection model)是一個由國際標準化組織提出的概念模型,試圖供一個使各種不同的計算機和網絡在世界范圍內實現互聯的標準框架。它將計算機網絡體系結構劃分為七層,每層都可以提供抽象良好的接口。了解 OSI 模型有助于理解實際上互聯網絡的工業標準——TCP/IP 協議。OSI 模型各層間關系和通訊時的數據流向如圖所示:
七層模型介紹:
顯然、如果一個東西想包羅萬象、一般時不可能的;在實際的開發應用中一般時在此模型的基礎上進行裁剪、整合!互聯網分層結構的好處: 上層的變動完全不影響下層的結構。
- 物理層: 物理層負責最后將信息編碼成電流脈沖或其它信號用于網上傳輸;eg:RJ45等將數據轉化成0和1;例如: 線路、無線電、光纖、信鴿
- 數據鏈路層: 數據鏈路層通過物理網絡鏈路提供數據傳輸。不同的數據鏈路層定義了不同的網絡和協 議特征,其中包括物理編址、網絡拓撲結構、錯誤校驗、數據幀序列以及流控;可以簡單的理解為:規定了0和1的分包形式,確定了網絡數據包的形式;例如: 以太網、令牌環、HDLC、幀中繼、ISDN、ATM、IEEE 802.11、FDDI、PPP
- 網絡層: 網絡層負責在源和終點之間建立連接;可以理解為,此處需要確定計算機的位置,怎么確定?IPv4,IPv6!例如: IP、ICMP、IGMP、IPX、BGP、OSPF、RIP、IGRP、EIGRP、ARP、RARP、 X.25
- 傳輸層: 傳輸層向高層提供可靠的端到端的網絡數據流服務。可以理解為:每一個應用程序都會在網卡注冊一個端口號,該層就是端口與端口的通信!常用的(TCP/IP)協議;例如: TCP、UDP、RTP、SCTP、SPX、ATP、IL
- 會話層: 會話層建立、管理和終止表示層與實體之間的通信會話;建立一個連接(自動的手機信息、自動的網絡尋址);例如: ASAP、TLS、SSH、ISO 8327 / CCITT X.225、RPC、NetBIOS、ASP、Winsock、BSD sockets
- 表示層: 表示層提供多種功能用于應用層數據編碼和轉化,以確保以一個系統應用層發送的信息 可以被另一個系統應用層識別;可以理解為:解決不同系統之間的通信,eg:Linux下的QQ和Windows下的QQ可以通信;例如: XDR、ASN.1、SMB、AFP、NCP
- 應用層: OSI 的應用層協議包括文件的傳輸、訪問及管理協議(FTAM) ,以及文件虛擬終端協議(VIP)和公用管理系統信息(CMIP)等;規定數據的傳輸協議;例如: HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP
常見的應用層協議: 以下協議的端口號都是固定死的。
-
OSI 七層模型通過七個層次化的結構模型使不同的系統不同的網絡之間實現可靠的通訊,因此其最主要的功能就是幫助不同類型的主機實現數據傳輸
。完成中繼功能的節點通常稱為中繼系統。在OSI七層模型中,處于不同層的中繼系統具有不同的名稱。一個設備工作在哪一層,關鍵看它工作時利用哪一層的數據頭部信息。網橋工作時,是以MAC頭部來決定轉發端口的,因此顯然它是數據鏈路層的設備。 -
具體說: 物理層:網卡,網線,集線器,中繼器,調制解調器;數據鏈路層: 網橋,交換機;網絡層: 路由器;網關工作在第四層傳輸層及其以上;集線器是物理層設備,采用廣播的形式來傳輸信息。交換機就是用來進行報文交換的機器。多為鏈路層設備(二層交換機),能夠進行地址學習,采用存儲轉發的形式來交換報文.。路由器的一個作用是連通不同的網絡,另一個作用是選擇信息傳送的線路。選擇通暢快捷的近路,能大大提高通信速度,減輕網絡系統通信負荷,節約網絡系統資源,提高網絡系統暢通率。
交換機和路由器的區別:
-
交換機擁有一條很高帶寬的背部總線和內部交換矩陣。交換機的所有的端口都掛接在這條總線上,控制電路收到數據包以后,處理端口會查找內存中的地址對照表以確定目的MAC(網卡的硬件地址)的NIC(網卡)掛接在哪個端口上,通過內部交換矩陣迅速將數據包傳送到目的端口,目的MAC若不存在則廣播到所有的端口,接收端口回應后交換機會“學習”新的地址,并把它添加入內部MAC地址表中。
使用交換機也可以把網絡“分段”,通過對照MAC地址表,交換機只允許必要的網絡流量通過交換機。通過交換機的過濾和轉發,可以有效的隔離廣播風暴,減少誤包和錯包的出現,避免共享沖突。 -
交換機在同一時刻可進行多個端口對之間的數據傳輸。每一端口都可視為獨立的網段,連接在其上的網絡設備獨自享有全部的帶寬,無須同其他設備競爭使用。當節點A向節點D發送數據時,節點B可同時向節點C發送數據,而且這兩個傳輸都享有網絡的全部帶寬,都有著自己的虛擬連接。假使這里使用的是10Mbps的以太網交換機,那么該交換機這時的總流通量就等于2×10Mbps=20Mbps,而使用10Mbps的共享式HUB(集線器)時,一個HUB的總流通量也不會超出10Mbps。
-
總之,交換機是一種基于MAC地址識別,能完成封裝轉發數據包功能的網絡設備。交換機可以“學習”MAC地址,并把其存放在內部地址表中,通過在數據幀的始發者和目標接收者之間建立臨時的交換路徑,使數據幀直接由源地址到達目的地址。
-
從過濾網絡流量的角度來看,路由器的作用與交換機和網橋非常相似。但是與工作在網絡物理層,從物理上劃分網段的交換機不同,路由器使用專門的軟件協議從邏輯上對整個網絡進行劃分。例如,一臺支持IP協議的路由器可以把網絡劃分成多個子網段,只有指向特殊IP地址的網絡流量才可以通過路由器。對于每一個接收到的數據包,路由器都會重新計算其校驗值,并寫入新的物理地址。因此,使用路由器轉發和過濾數據的速度往往要比只查看數據包物理地址的交換機慢。但是,對于那些結構復雜的網絡,使用路由器可以提高網絡的整體效率。路由器的另外一個明顯優勢就是可以自動過濾網絡廣播。
-
總的來說,路由器與交換機的主要區別體現在以下幾個方面:
-
(1)工作層次不同
最初的的交換機是工作在數據鏈路層,而路由器一開始就設計工作在網絡層。由于交換機工作在數據鏈路層,所以它的工作原理比較簡單,而路由器工作在網絡層,可以得到更多的協議信息,路由器可以做出更加智能的轉發決策。 -
(2)數據轉發所依據的對象不同
交換機是利用物理地址或者說MAC地址來確定轉發數據的目的地址。而路由器則是利用IP地址來確定數據轉發的地址。IP地址是在軟件中實現的,描述的是設備所在的網絡。MAC地址通常是硬件自帶的,由網卡生產商來分配的,而且已經固化到了網卡中去,一般來說是不可更改的。而IP地址則通常由網絡管理員或系統自動分配。 -
(3)傳統的交換機只能分割沖突域,不能分割廣播域;而路由器可以分割廣播域 。
由交換機連接的網段仍屬于同一個廣播域,廣播數據包會在交換機連接的所有網段上傳播,在某些情況下會導致通信擁擠和安全漏洞。連接到路由器上的網段會被分配成不同的廣播域,廣播數據不會穿過路由器。雖然第三層以上交換機具有VLAN功能,也可以分割廣播域,但是各子廣播域之間是不能通信交流的,它們之間的交流仍然需要路由器。 -
(4)路由器提供了防火墻的服務
路由器僅僅轉發特定地址的數據包,不傳送不支持路由協議的數據包傳送和未知目標網絡數據包的傳送,從而可以防止廣播風暴。
集線器與路由器在功能上有什么不同?
首先說HUB,也就是集線器。它的作用可以簡單的理解為將一些機器連接起來組成一個局域網。而交換機(又名交換式集線器)作用與集線器大體相同。但是兩者在性能上有區別:集線器采用的式共享帶寬的工作方式,而交換機是獨享帶寬。這樣在機器很多或數據量很大時,兩者將會有比較明顯的。而路由器與以上兩者有明顯區別,它的作用在于連接不同的網段并且找到網絡中數據傳輸最合適的路徑。路由器是產生于交換機之后,就像交換機產生于集線器之后,所以路由器與交換機也有一定聯系,不是完全獨立的兩種設備。路由器主要克服了交換機不能路由轉發數據包的不足。
OSI7層模型的小結:
由于OSI是一個理想的模型,因此一般網絡系統只涉及其中的幾層,很少有系統能夠具有所有的7層,并完全遵循它的規定。
在7層模型中,每一層都提供一個特殊的網絡功能。從網絡功能的角度觀察:下面4層(物理層、數據鏈路層、網絡層和傳輸層)主要提供數據傳輸和交換功能,即以節點到節點之間的通信為主;第4層作為上下兩部分的橋梁,是整個網絡體系結構中最關鍵的部分;而上3層(會話層、表示層和應用層)則以提供用戶與應用程序之間的信息和數據處理功能為主。簡言之,下4層主要完成通信子網的功能,上3層主要完成資源子網的功能。
TCP/IP 協議基本概念:
OSI 模型所分的七層,在實際應用中,往往有一些層被整合,或者功能分散到其他層去。TCP/IP 沒有照搬 OSI 模型,也沒有 一個公認的 TCP/IP 層級模型,一般劃分為三層到五層模型來描述 TCP/IP 協議。
-
在此描述用一個通用的四層模型來描述,每一層都和 OSI 模型有較強的相關性但是又可能會有交叉。
-
TCP/IP 的設計,是吸取了分層模型的精華思想——封裝。每層對上一層提供服務的時候,上一層的數據結構是黑盒,直接作為本層的數據,而不需要關心上一層協議的任何細節。
-
TCP/IP 分層模型的分層以以太網上傳輸 UDP 數據包如圖所示:
-
數據包:
-
寬泛意義的數據包:每一個數據包都包含"標頭"和"數據"兩個部分."標頭"包含本數據包的一些說明."數據"則是本數據包的內容。
-
細分數據包:
-
應用程序數據包: 標頭部分規定應用程序的數據格式.數據部分傳輸具體的數據內容.——對應上圖中的數據!
-
TCP/UDP數據包: 標頭部分包含雙方的發出端口和接收端口. UDP數據包: '標頭’長度:8個字節,"數據包"總長度最大為65535字節,正好放進一個IP數據包. TCP數據包: 理論上沒有長度限制,但是,為了保證網絡傳輸效率,通常不會超過IP數據長度,確保單個包不會被分割. ——對應上圖中的UDP數據!
-
IP數據包: 標頭部分包含通信雙方的IP地址,協議版本,長度等信息. '標頭’長度:20~60字節,"數據包"總長度最大為65535字節. ——對應上圖中的IP數據
-
以太網數據包: 最基礎的數據包.標頭部分包含了通信雙方的MAC地址,數據類型等. '標頭’長度:18字節,'數據’部分長度:46~1500字節. ——對應上圖中的以太網數據
-
TCP/IP 協議族常用協議:
應用層:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等
傳輸層:TCP,UDP
網絡層:IP,ICMP,OSPF,EIGRP,IGMP
數據鏈路層:SLIP,CSLIP,PPP,MTU
TCP/IP四層模型:
TCP/IP協議被組織成四個概念層,其中有三層對應于ISO參考模型中的相應層。TCP/IP協議族并不包含物理層和數據鏈路層,因此它不能獨立完成整個計算機網絡系統的功能,必須與許多其他的協議協同工作。TCP/IP分層模型的四個協議層分別完成以下的功能:
- 第一層:網絡接口層
包括用于協作IP數據在已有網絡介質上傳輸的協議。實際上TCP/IP標準并不定義與ISO數據鏈路層和物理層相對應的功能。相反,它定義像地址解析協議(Address Resolution Protocol,ARP)這樣的協議,提供TCP/IP協議的數據結構和實際物理硬件之間的接口。 - 第二層:網間層
對應于OSI七層參考模型的網絡層。本層包含IP協議、RIP協議(Routing Information Protocol,路由信息協議),負責數據的包裝、尋址和路由。同時還包含網間控制報文協議(Internet Control Message Protocol,ICMP)用來提供網絡診斷信息。 - 第三層:傳輸層
對應于OSI七層參考模型的傳輸層,它提供兩種端到端的通信服務。其中TCP協議(Transmission Control Protocol)提供可靠的數據流運輸服務,UDP協議(Use Datagram Protocol)提供不可靠的用戶數據報服務。 - 第四層:應用層
對應于OSI七層參考模型的應用層和表達層。因特網的應用層協議包括Finger、Whois、FTP(文件傳輸協議)、Gopher、HTTP(超文本傳輸協議)、Telent(遠程終端協議)、SMTP(簡單郵件傳送協議)、IRC(因特網中繼會話)、NNTP(網絡新聞傳輸協議)等,這也是本書將要討論的重點。
重要的 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。
參考博文:深入淺出-網絡七層模型