七層協議和四層協議
OSI七層和TCP/IP四層的關係
OSI引入了服務、介面、協議的概念,TCP/IP借鑑了OSI的這些概念建立TCP/IP模型
OSI先有模型,後有協議;先有標準,後進行實踐;而TCP/IP則相反,先有協議和應用再提出了模型
OSI是一種理論下的模型,而TCP/IP已被廣泛使用,成為網路互聯事實上的標準
TCP:transmission control protocol 傳輸控制協議
UDP:user data protocol 使用者資料報協議
為何會有TCP/IP協議
在世界各地,各種電腦執行著各自不同的作業系統為大家服務,這些電腦在表達同一種資訊的時候所使用的方法千差萬別。計算機使用者意識到,計算機只是單兵作戰,並不會發揮太大的作用,只有將它們聯合起來,電腦才會發揮出它最大的潛力。於是人們就想方設法的用電線把電腦連線到了一起。
然而簡單的連到一起是遠遠不夠的,就如同語言不同的兩個人互相見面,完全不能交流資訊。因而他們需要定義一些共通的東西來進行交流,TCP/IP由此而生。TCP/IP不是一個協議,而是一個協議族的統稱,裡面包括了IP協議、IMCP協議、TCP協議以及http、ftp、pop3協議等等。電腦有了這些,就好像學會了外語一樣,就可以和其他的計算機終端自由交流了。
TCP/IP協議分層
TCP/IP協議族按照層次由上到下,層層包裝。
應用層
向用戶提供一組常用的應用程式,比如電子程式、檔案傳輸訪問、遠端登陸等。遠端登陸TELNET使用TELNET協議提供在網路其他主機上註冊的介面。TELNET會話提供了基於字元的虛擬終端。檔案傳輸訪問FTP使用FTP協議來提供網路內機器間的檔案拷貝功能。
傳輸層
提供應用程式間的通訊。其功能包括:一、格式化資訊流;二、提供可靠傳輸。為實現後者,傳輸層協議規定接收端必須發回確認,並且加入分組丟失,必須重新發送。
網路層
負責相鄰計算機之間的通訊。其功能包括三個方面:
一、處理來自傳輸層的分組傳送請求,收到請求後,將分組裝入IP資料報,填充報頭,選擇去往信宿機的路徑,然後將資料報發往適當的網路介面
二、處理輸入資料報:首先檢查其合法性,然後進行尋徑--假如該資料報已到達信宿機,則去掉報頭,將剩下部分交給適當的傳輸協議;假如該資料報尚未到達信宿機,則轉發該資料報
三、處理路徑、流控、阻塞等問題。
網路介面層
這是TCP/IP的最底層,負責接受IP資料報並通過網路傳送,或者從網路上接收物理幀,抽出IP資料報,交給IP層。
IP是無連線的
IP用於計算機之間的通訊
IP是無連線的通訊協議。它不會佔用兩個正在通訊的計算機之間的通訊線路。這樣,IP就降低了對網路線路的需求。每條線可以同時滿足許多不同的計算機之間的通訊需要。
通過IP,訊息(或其他資料)被分割為小的獨立的包,並通過因特網在計算機之間傳送
IP負載將每個包路由至它的目的地。
IP地址
每個計算機必須有一個IP地址才能夠連入因特網
每個IP包必須有一個地址才能傳送到另一臺計算機
網路上每一個節點都必須有一個獨立的Internet地址(也叫IP地址)。通常使用的IP地址是一個32bit的數字,也就是我們常說的IPV4標準,這32bit的數字分為四組,也就是常見的255.255.255.255的樣式。IPv4標準上,地址被分為五類,我們常用的是B類地址。需要注意的是IP地址是網路號+主機號的組合。
CP/IP(“CP/IP協議(Transfer ControlnProtocol/Internet Protocol)叫做傳輸控制/網際協議,又叫網路通訊 協議,這個協議是Internet國際網際網路絡的基礎)使用32個位元來編制,一個計算機位元組是8位元,所以TCP/IP使用了4個位元組。
一個計算機位元組可以包含256個不同的值:
00000000、00000001、00000010、00000011、00000100、00000101、00000110、00000111、00001000 ....... 直到 11111111。
這也是為什麼 TCP/IP 地址是介於 0 到 255 之間的 4 個數字。
TCP使用固定的連線
TCP用於應用程式之間的通訊
當應用程式希望通過TCP與另一個應用程式通訊時,它會發送一個通訊請求。這個請求必須被送到一個確切的地址。在雙方“握手”之後,TCP將在兩個應用程式之間建立一個全雙工(full-deplex)的通訊。
這個全雙工的通訊將佔用兩個計算機之間的通訊線路,直到它被一方或雙方關閉為止。
域名
12個阿拉伯數字很難記憶,使用一個名稱更容易。
用於TCP/IP地址的名字被稱為域名,如:baidu.com
當鍵入一個想:http://www/baodu.com的域名時,域名會被一種DNS程式翻譯為數字。
在全世界,數量龐大的DNS伺服器被接入因特網。DNS伺服器負責將域名翻譯為TCP/IP地址,同時負載使用新的域名資訊更新彼此的系統。
當一個新的域名連同其TCP/IP地址一同註冊後,全世界的DNS伺服器都會對此資訊進行更新。
TCP/IP
TCP/IP意味著TCP和IP再一起協同工作。
TCP負責應用軟體(如瀏覽器)和網路軟體之間的通訊。
IP負責計算機之間的通訊
TCP負責將資料分割並裝入IP包,然後在它們到達的時候重新組合它們
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 |
七層模型
OSI七層模型通過七個層次化的結構模型使不同的系統不同的網路之間實現可靠的通訊。因此其最主要的功能就是:幫助不同型別的主機實現資料傳輸。完成中繼功能的節點通常稱為中繼系統。一個裝置工作在哪一層,關鍵看它工作時利用哪一層的資料頭部資訊。如網橋工作時,是以MAC頭部來決定轉發埠的,因此顯然它是資料鏈路層的裝置。具體而言:
- 物理層:網絡卡、網線、集線器、中繼器、調變解調器
- 資料鏈路層:網橋、交換機
- 網路層:路由器
- 閘道器工作在第四層及其以上層。
集線器是物理層裝置,採用廣播的形式來傳輸資訊。
交換機就是用來進行報文交換的機器,多為鏈路層裝置,能夠進行地址學習,採用儲存轉發的形式來交換報文。
路由器的一個作用是連通不同的網路,另一個作用是選擇資訊傳送的線路。選擇通暢快速的近路,能大大提高通訊速度,減輕網路系統通訊負荷節省網路系統資源,提高網路系統暢通率。
物理層
在OSI參考模型中,物理層(Physical Layer)是參考模型的最底層。物理層的作用是實現相鄰計算機節點之間位元流的透明傳送,儘可能遮蔽掉具體傳輸介質和物理裝置的差異。“透明傳送位元流”表示經實際電路傳送後的位元流沒有發生變化,對傳送的位元流來說,這個電路好像是看不見的。
資料鏈路層
資料鏈路層(Data Link Layer)是OSI模型的第二層,負責建立和管理節點間的鏈路。該層的主要功能是:通過各種控制協議,將有差錯的物理通道變為無差錯、能可靠傳輸資料幀的資料鏈路。在計算機網路中由於各種干擾的存在,物理鏈路是不可靠的。因此,這一層的主要功能是在物理層提供的位元流的基礎上,通過差錯控制、流量控制方法,使有差錯的物理線路變為無差錯的資料鏈路,即提供可靠的通過物理介質傳輸資料的方法。資料鏈路層的具體工作是:接收來自物理層的位流形式的資料,並封裝成幀,傳輸到上一層;同樣,也將來自上層的資料幀,拆裝成位流形式的資料轉發到物理層,並且,還負責處理接收端發回的確認幀的資訊,以便提供可靠的資料傳輸。
網路層
網路層(Network Layer)是OSI模型的第三層,它是OSI參考模型中最複雜的一層。它在下兩層的基礎上向資源子網提供服務。其主要任務是:通過路由選擇演算法,為報文或分組通過通訊子網選擇最適當的路徑。具體來說,資料鏈路層的資料在這一層被轉換為資料包,然後通過路徑選擇、分段組合、順序、進/出路由等控制,將資訊從一個網路裝置傳送到另一個網路裝置。一般地,資料鏈路層是解決同一個網路內節點之間的通訊,而網路層主要解決不同子網間的通訊。例如在廣域網之間通訊時,必然會遇到路由(即兩節點間可能由多條路徑)選擇問題。
傳輸層
傳輸層(Transport Layer)是OSI模型的第四層。因此該層是通訊子網和資源子網的介面和橋樑,起到承上啟下的作用。該層的主要任務是:向用戶提供 可靠的端到端的差錯和流量控制,保證報文的正確傳輸。傳輸層的作用是:向高層遮蔽下層資料通訊的細節,即向用戶透明地傳送報文。該層常見的協議:TCP/IP中的TCP協議和UDP協議。傳輸層提供會話層和網路層之間的傳輸服務,這種服務從會話層獲得資料,並在必要時,對資料進行分割。然後,傳輸層將資料傳遞給網路層,並確保資料能正確無誤地傳送到網路層。因此,傳輸層負責提供兩節點之間資料的可靠傳輸,當兩節點的聯絡確定後,傳輸層則負責監督工作。
綜上,傳輸層的主要功能是:監控服務質量
會話層
會話層(Session Layer)是OSI模型的第五層,是使用者應用程式和網路之間的介面,主要任務是:向兩個實體的表示層提供建立和使用連線的方法。將不同實體之間的表示層的連線稱為會話。因此,會話層的任務就是組織和協調兩個會話程序之間的通訊,並對資料交換進行管理。使用者可以按照半雙工、單工和全雙工的方式建立會話。當建立會話時,使用者必須提供他們想要連線的遠端地址。而這些地址與MAC(介質訪問控制子層)地址或網路層的邏輯地址不同,它們是為使用者專門設計的,更便於使用者記憶。
表示層
表示層(Presentation Layer)是OSI模型的第六層,它對來自應用層的命令和資料進行解釋,對各種語法賦予相應的含義,並按照一定的格式傳送給會話層。其主要功能是:處理使用者資訊的表示問題,如編碼、資料格式轉換和加密解密等
應用層
應用層(Application Layer)是OSI模型的最高層,它是計算機使用者、以及各種應用程式和網路之間的介面,其功能是直接向用戶提供服務,完成使用者希望在網路上完成的各種工作。它在其它六層工作的基礎上,負載完成網路中應用程式與網路作業系統之間的聯絡,建立和結束使用者之間的聯絡,並完成網路使用者提出的各種網路服務以及應用所需的監督、管理和服務等各種協議。此外,該層還負責協調各個應用程式間的工作。
交換機工作原理
交換機擁有一條很高頻寬的內部匯流排和內部交換矩陣。交換機的所有的埠都掛接在這條總線上,控制電路收到資料包之後,處理埠會查詢記憶體中的地址對照表以確定目的MAC(網絡卡的硬體地址)的NIC(網絡卡)掛接在哪個埠上,通過內部交換矩陣迅速將資料包傳送到目的埠,目的MAC若不存在則廣播到所有的埠,接收埠迴應後交換機會“學習”新的地址,並把它新增入內部MAC地址表中。使用交換機也可以把網路“分段”,通過對照MAC地址表,交換機只允許必要的網路流量通過交換機。通過交換機的過濾和轉發,可以有效的隔離廣播風暴,減少誤包和錯包的出現,避免共享衝突。
交換機在同一時刻可進行多個埠對之間的資料傳輸。每一埠都可視為獨立的網段,連線在其上的網路裝置獨自享有全部的頻寬,無須同其他裝置競爭使用。當節點A向節點D傳送資料時,節點B可同時向節點C傳送資料,而且這兩個傳輸都享有網路的全部頻寬,都有著自己的虛擬連線。總之,交換機是一種基本MAC地址識別,能完成封裝轉發資料包功能的網路裝置。交換機可以"學習"MAC地址,並把其存放在內部地址表中,通過在資料幀的始發者和目標接收者之間建立臨時的交換路徑,使資料幀直接由原地址到達目的地址。
集線器
集線器的英文稱為“Hub”,集線器的主要功能是對接收到的訊號進行再生整形放大,以擴大網路的傳輸距離,同時把所有節點集中在以它為中心的節點上。它工作於OSI參考模型的第一層,即“物理層”。集線器與網絡卡、網線等傳輸介質一樣,屬於區域網中的基礎裝置,採用CSMA/CD(即帶衝突檢測的載波監聽多路訪問技術)介質訪問控制機制。集線器每個介面簡單的收發位元,收到1就轉發1,收到0就轉發0,不進行碰撞檢測。集線器屬於純硬體網路低層裝置,基本上不具有類似於交換機的“智慧記憶”能力和“學習”能力,它也不具備交換機所具有的MAC地址表,所以它傳送資料時都是沒有針對性的,而是採用廣播方式傳送。也就是說當它要向某節點發送資料時,不是直接把資料傳送到目的節點,而是把資料包傳送到與集線器相連的所有節點。HUB是一個多埠的轉發器,當以HUB為中心裝置時 ,網路中某條線路產生了故障,並不影響其他線路的工作。所以HUB在區域網中得到了廣泛的應用。大多數的時候它用在星型與樹型網路拓撲結構中。
集線器與交換機的區別
集線器,它的作用是可以簡單的理解為:將一些機器連線起來組成一個區域網。而交換機(又名交換式集線器)作用與集線器大體相同。但是兩者在效能上有區別:集線器採用的是共享頻寬的工作方式,而交換機是獨享頻寬。這樣在機器很多或資料量很大時,兩者將會有明顯差異。
- 工作位置不同:集線器工作在物理層,而交換機工作在資料鏈路層
- 工作方式不同:集線器是一種廣播方式,當集線器的某個埠工作時其他埠都能收聽到資訊;交換機工作時埠互不影響。
- 頻寬不同:集線器是所有埠共享一條頻寬,在同一時刻只能有兩個埠傳輸資料;而交換機每個埠獨佔一條頻寬
- 效能不同:交換機以MAC地址進行定址,有一定額外的定址開銷;集線器以廣播方式傳送資料,流量小時效能下載不明顯,適用於共享匯流排的區域網。
路由器與交換機的區別
總的來說,路由器與交換機的主要區別體現在以下幾個方面:
- 工作層次不同。最初的交換機是工作在資料鏈路層,而路由器一開始就設計工作在網路層。由於交換機工作在資料鏈路層,所以它的工作原理比較簡單,而路由器工作在網路層,可以得到更多的協議資訊,路由器可以做出更加只能的轉發效率。
- 資料轉發所依據的物件不同。交換機是利用實體地址或者MAC地址來確定轉發資料的目的地址;而路由器則是利用IP地址來確定資料轉發的地址。IP地址是在軟體中實現的,描述的是裝置所在的網路,MAC地址通常是硬體自帶的,由網絡卡生產商來分配的,而且已經固化到了網絡卡中,一般來說是不可更改的,而IP地址則通常由網路管理員或系統自動分配。
- 傳統的交換機只能分割衝突域,不能分割廣播域;而路由器可以分割廣播域。由交換機連線的網段仍屬於同一個廣播域,廣播資料包會在交換機連線的所有網段上傳播,在某些情況下會導致通訊擁擠和安全漏洞。連線到路由器上的網段會被分配成不同的廣播域,廣播資料不會穿過路由器。雖然第三層以上交換機具有VLAN功能,也可以分割廣播域,但是各子廣播之間是不能通訊交流的,它們之間的交流仍然需要路由器。
- 交換機負責同一個網段的通訊,而路由器負責不同網段的通訊。路由器提供了防火牆的服務,路由器僅僅轉發特定地址的資料包,不傳送不支援路由協議的資料包傳送和未知目標網路資料包的傳送,從而可以防止廣播風暴。
路由表
路由表是指路由器或者其他網際網路網路裝置上儲存的一張路由資訊表,該表中存有到達特定網路終端的路徑,在某些情況下,還有一些與這些路徑相關的度量。路由器的主要工作就是為經過路由器的每個資料包尋找一條最佳的傳輸路徑,並將該資料有效的傳送到目的站點。由此可見,選擇最佳路徑的策略即路由演算法是路由器的關鍵所在,為了完成這項工作,在路由器中儲存著各種傳輸路徑的相關資料——路由表(Routing Table),供路由選擇時使用,表中包含的資訊決定了資料轉發的策略。路由表可以是由系統管理員固定設定好的,也可以由系統動態修改,可以由路由器自動調整,也可以由主機控制。
- 靜態路由表:由系統管理員事先設定好固定的路由表稱之為靜態(static)路由表,一般是在系統安裝時就根據網路的配置情況預先設定的,它不會隨未來網路結構的改變而改變。
- 動態路由表:動態(Dynamic)路由表是路由器根據網路系統的執行情況而自動調整的路由表。路由器根據路由選擇協議(Routing Protocol)提供的功能,自動學習和記憶網路執行情況,在需要時自動計算資料傳輸的最佳路徑。
路由器通常依靠所建立及維護的路由表來決定如何轉發。路由表能力是指路由表內所容納路由表項數量的極限。路由表中的表項內容包括:
- destination mask pre costdestination:目的地址,用來標識IP包的目的地址或者目的網路
- mask:網路掩碼,與目的地址一起標識目的主機或路由器所在的網段的地址。
- pre:標識路由加入IP路由表的優先順序。可能到達一個目的地有多條路由,但是優先順序的存在讓他們先選擇優先順序高的路由進行利用
- cost:路由開銷,當到達一個目的地的多個路由優先順序相同時,路由開銷最小的將成為最優路由
- interface:輸出介面,說明IP包將從該路由器哪個介面轉發。nexthop:下一跳IP地址,說明IP包所經過的下一個路由器。