OSI模型
OSI時OSI/RM的簡稱:全稱是Open Systems Interconnection Reference Model,開放系統互聯參考模型;該模型定義了不同計算機互聯的標準,是設計和描述計算機網絡通信的基本框架。該模型是參考模型而不是必須執行的標準,指按照該模型的要求,不同企業生產的網絡設備可以互相連接。
OSI模型把網絡通信分為7層(從低到高):
物理層 Physical
數據鏈路層 Data Link
網絡層 Network
傳輸層 Transport
會話層 Session
表示層 Presentation
應用層 Application
低三層負責創建網絡通信連接,高三層負責具體的端到端的數據通信,傳輸層負責低層與高層之間的連接;每一層完成一定的功能,每層都是直接向其上層提供服務,而且所有層次都相互支持。
資源子網對應高三層:應用層、表示層、會話層;由本地計算機系統及其協議實現其功能。
通信子網對應低三層:物理層、數據鏈路層、網絡層;由網絡設備與協議實現其功能。
傳輸層駐留在本地計算機,負責數據傳輸
OSI模型中層與層之間進行對等通信、且這種通信只是邏輯上的,真正的通信都是在最底層——物理層實現的,每一層要完成相應的功能,下一層為上一層提供服務,從而把復雜的通信過程分成了多個獨立的、比較容易解決的子問題。
對等層協議之間交換的數據單元統稱為協議數據單元PDU,而傳輸層及以下的各層的PDU另外還有特定的名稱:
傳輸層:數據段(Segment)
網絡層:分組(數據包)(Packet)
數據鏈路層:數據幀(Frame)
物理層:比特(Bit)
- 物理層:最基礎的一層,建立在傳輸媒介基礎上,起到建立、維護和取消物理連接的作用,實現設備之間的物理接口。物理層只接收和發送一串比特流,不考慮信息的意義和信息結構。包括對連接到網絡上的設備描述其各種機械的、電氣的、功能的規定。典型設備有:光纖、同軸電纜、雙絞線、中繼器和集線器。
- 數據鏈路層:在物理層提供比特流服務的基礎上,將比特信息封裝成數據幀Frame,起到在物理層上建立、撤銷、標識邏輯鏈接和鏈路復用以及差錯校驗等功能。通過使用接收系統的硬件地址或物理地址來尋址。建立相鄰結點之間的數據鏈接,通過差錯控制提供數據幀(Frame)在信道上無差錯的傳輸,同時為其上面的網絡層提供有效的服務。數據鏈路層在不可靠的物理介質上提供可靠的傳輸。該層的作用包括:物理地址尋址、數據的成幀、流量控制、數據檢錯、重發等。典型設備有:二層交換機、網橋、網卡。差錯控制:在數據傳輸過程中如何發現并更在錯誤;流量控制:通信雙方速度存在差異,需要協調匹配通信正常。
- 網絡層:或通信子網層,是高層協議之間的界面層,用于控制通信子網的操作,是通信子網與資源子網的接口。在網絡間進行通信的計算機之間可能會通過多個數據鏈路,也可能還要經過很多通信子網。網絡層的任務就是選擇合適的網間路由和交換結點,確保數據及時傳送。網絡層將解封裝數據鏈路層收到的幀,提取數據包,包中封裝有網絡層包頭,其中含有邏輯地址信息,包括源站點和目的站點地址的網絡地址。典型設備是路由器。
網絡層主要功能為管理數據通信,實現端到端的數據傳送服務;主體協議是IP協議 - 傳輸層:建立在網絡層和會話層之間,實質上它是網絡體系結構中低層與高層之間銜接的一個接口層。用一個尋址機制來標識一個特殊的應用程序(端口號)。傳輸層不僅是一個獨立的結構層,它還是整個分層體系結構的核心。傳輸層的數據單元是由數據組織成的數據段(Segment)這個層負責獲取全部信息,因此它必須跟蹤數據單元碎片、亂序到達的數據包和其他在傳輸過程中可能發生的危險。
主要功能為負責總體的數據傳輸和數據控制,主要包括兩個協議:TCP:傳輸控制協議;UDP:用戶報文協議 - 會話層:也稱會晤層或對話層,在會話層及以上的高層次中,數據傳達的單位不再另外命名,統稱為報文。會話層不參與具體傳送,它提供包括訪問校驗和會話管理在內的建立和維護應用之間通信的機制。會話層提供的服務可使應用建立和維持會話,并使會話同步,會話層使用校驗點可以使通信會話在通信失效時從校驗點繼續恢復通信,這對傳送大型文件極為重要。
主要功能是為通信進程建立連接。 - 表示層:對上服務應用層,對下接收會話層的服務,是為應用過程之中傳送的信息提供表示方法的服務,它關心的只是發出的信息的語義和語法。表示層要完成某些特定的功能,主要有不同的數據編碼格式的轉換,提供數據壓縮、解壓縮服務,對數據進行加密、解密。如圖像格式的顯示就是由位于表示層的協議來支持的。表示層提供的服務包括:語法選擇、語法轉換等,語法選擇是提供一種初始語法和以后修改這種選擇的手段。語法轉換涉及代碼轉換和字符集的轉換、數據格式的修改以及對數據結構操作的適配。主要功能是進行加密和壓縮。
- 應用層:是通信用戶之間的窗口,為用戶提供網絡管理、文件傳輸、事務處理等服務。其中包含了若干獨立的用戶通用的服務協議模塊。網絡應用層是OSI的最高層,為網絡用戶之間的通信提供專用的程序。主要功能是為通信進程建立連接。
ATM
ATM:以信元為基礎的一種分組交換和復用技術,它是為了多種業務設計的通用的面向連接的傳輸模式。適于局域網和廣域網,具有高速數據傳輸率和支持多種類型的數據特點。
ATM是一項信元中繼技術,是在LAN或WAN上傳送聲音、視頻圖像和數據的寬帶技術。數據分組大小固定,能夠把數據塊從一個設備經過ATM交換機傳送到另一個設備。所有信元具有同樣的大小,使用相同大小的信元可以預計和保證應用所需要的帶寬。
ATM交換機是ATM網絡的重要組成部分,將數據快速地從一個節點傳送到另一個節點;或者用作廣域通信設備,在遠程站點之間快速傳遞ATM信元。
異步傳輸模式ATM,就是建立在電路交換和分組交換的基礎上的一種新的交換技術。ATM是一項數據傳輸技術,是實現寬帶ISDN的業務核心技術之一。
ATM是一種異步傳輸模式;ATM以信元為基礎單位;信元長度為53字節。
由于ATM網絡是面向連接的,所以在發送數據前首相要先發送一個分組以建立連接,當這個初始分組經過子網時,該路徑上所有的路由器都在他們的內部表中建立一個表項,用來標明該鏈接的存在,并且為它預留足夠的資源。這時的鏈接通常稱為虛電路。
ATM模型:物理層、ATM層、ATM適配層。
ATM集交換、復用、傳輸為一體,在復用上采用的是異步時分復用方式,通過信息的首部或標頭來區分不同信道。
ATM的傳送單元是固定長度53字節的信元,其中5字節為信元頭,用來承載該信元的控制信息;48字節為信元體,用來承載用戶要發送的信息。
廣域網:
TCP/IP協議:是Internet的主體,進行數據交換所遵守的網絡通信協議,是與Internet有關的一系列網絡協議的總稱。
TCP協議,Transmission Control Protocol,是工作在傳輸層的協議;IP協議,Internet Protocol,是工作在網絡層的協議;通常TCP/IP協議表示這一族協議。
TCP/IP協議由四層實現,分別是物理層,網絡層,傳輸層和應用層;與OSI模型的關系可以看作:OSI的低兩層對應為TCP/IP協議的物理層,OSI的高三層對應為TCP/IP協議的應用層;實際上Internet中主要實現的是網絡層和傳輸層的功能。
- TCP/IP協議物理層,提供了各種物理網絡語TCP/IP之間的接口。TCP/IP并不關心物理層如何實現,只是使用物理層的功能。
- TCP/IP協議網絡層,將數據包封裝成數據報,并為其選擇合適的路由,發送、傳遞數據包,包括IP協議、ARP協議、RARP協議、ICMP協議。
- TCP/IP協議傳輸層,提供端對端的可靠通信,通常使用TCP、UDP。
- TCP/IP協議應用層,為用戶和主機之間提供了一個接口,應用程序通過此層訪問網絡,包括DNS、FTP協議、HTTP協議、SMTP協議
網絡層使用的協議:
- IP協議:是網絡層中最重要的協議,是整個Internet的基礎協議,負責分配IP地址、提供路由;路由即IP協議選擇傳輸的道路,并根據數據報報頭的目的地址,將數據報傳輸給目的主機。IP不提供可靠的傳輸服務,對數據沒有差錯控制,它只使用報頭的校驗碼,不提供重發和流量控制。
- ARP協議:即地址轉換協議,在數據報向下一個站點傳遞時,負責將IP地址轉換為物理地址。
- RARP協議:即反向地址轉換協議,作用與ARP相反,負責將物理層地址轉換為IP地址。允許主機從網關服務器的ARP表或者緩存上請求主機的IP地址。
- ICMP協議:即Internet控制報文協議,負責發送消息,報告錯誤,用于主機與路由器之間;ICMP提供易懂的出錯報告信息,但是它只是報告問題而不是糾正問題,糾正問題由發送方完成。
ARP協議詳解:
地址解析協議,即ARP,是一個根據IP地址獲取物理地址的TCP/IP協議。主機發送信息時將包含目標IP地址的ARP請求廣播到網絡上所有主機,并接收返回消息,以此確定目標的物理地址;接收返回消息后將該IP地址和物理地址存入本機ARP緩存中并保留一定時間,下次請求時直接查詢ARP緩存以節約資源。
地址解析協議是建立在網絡中各個主機相互信任的基礎之上的,網絡上的主機可以自主發送ARP應答消息,其他主機接到應答報文時不會檢測該報文的真實性,而直接將其計入本機的ARP緩存,這就可能發生ARP欺騙。
OSI模型把網絡分為七層,IP地址在OSI模型的第三層,MAC地址在第二層,彼此不直接關聯。在通過以太網發送IP數據包時,首先要封裝三層、二層的報頭,但由于發送時只知道目標IP地址,不知道其MAC地址,又不能跨二層、三層,所以需要使用地址解析協議。使用該協議可根據網絡層IP數據包包頭中的IP地址信息解析出目標硬件地址(MAC地址),以保證通信的正常進行
ARP工作過程示例:
主機A的IP地址為192.168.1.1,MAC地址為0A-11-22-33-44-01;
主機B的IP地址為192.168.1.2,MAC地址為0A-11-22-33-44-02;
當主機A要與主機B通信時,ARP可以將主機B的IP地址(192.168.1.2)解析為主機B的MAC地址,工作流程如下:
- 根據主機A上的路由表內容,IP確定用于訪問主機B的轉發IP是192.168.1.2.然后主機A在本地ARP緩存中檢查主機B的匹配MAC地址。
- 如果主機A在ARP緩存中沒有找到映射,它將詢問192.168.1.2的硬件地址,從而將ARP請求幀廣播到本地網絡上的所有主機。源主機A的IP地址和MAC地址都包括在ARP請求中。本地網絡上的每臺主機都收到ARP請求并且檢查是否與自己的IP地址匹配。如果主機發現請求的IP地址與自己的IP地址不匹配,它將丟棄ARP請求。
- 主機B確定ARP請求中的IP地址與自己地址匹配,則將主機A的IP地址和MAC地址映射到本地的ARP緩存中。
- 主機B將包含其MAC地址的ARP回復信息直接發送給主機A。
5.當A收到從B發來的ARP回復時,會用主機B的IP地址和MAC地址映射更新ARP緩存。本機緩存是有生存期的,生存期結束后,將再次重復上面的過程。主機B的MAC地址一旦確定,主機A就能向主機B發送IP通信了。
ARP緩存是一個用來存儲IP地址和MAC地址的緩沖區,本質是IP地址/MAC地址對應表,記錄網絡上其他主機的IP地址和對應的MAC地址。
ARP命令用于查詢本機ARP緩存中IP地址到MAC地址的對應關系、添加或刪除靜態對應關系等。如果在沒有參數的情況下使用,ARP命令將顯示幫助信息。
apr-a(用于Windows)或arp-g用于查看緩存中的所有項目
ARP是通過報文工作的,報文包括:硬件類型、協議類型、硬件地址長度、協議長度、操作類型。
ARP建立在相互信任的基礎上,它依賴于計算機中高速緩沖存儲器動態更新,所以只保存最近使用的地址映射關系表項。攻擊者可以在高速緩沖存儲器更新表項之前修改地址轉換表實現攻擊。攻擊者可以向目標主機發送偽ARP應答報文,從而篡改本地的MAC地址表,導致目標計算機與網關通信失敗,更會導致通信重定向,所有數據都會通過攻擊者的機器。
網絡安全信任關系應該建立在IP和MAC共同基礎上,設置靜態MAC到IP對應表。
注:ARP是IPv4中的協議,IPv6中不再存在ARP,其功能由NDP實現。
RARP詳解:
反向地址轉換協議,允許局域網的物理機器從網關服務器的ARP表或緩存上請求其IP地址。網絡管理員在局域網網關路由器里創建一個表以映射物理地址(MAC)表與其對應的IP地址。當設置一臺新機器時,其RARP客戶機程序需要向路由器上的RARP服務器請求相應的IP地址。
ARP是設備通過自己知道的IP地址來獲得自己不知道的物理地址的協議,RARP針對的是一個設備(如無盤工作站)不知道自己的IP地址但知道自己的物理地址的情況。
工作過程:
- 網絡上的每臺設備都會有一個獨一無二的硬件地址,通常由廠商分配的MAC地址,PC從網卡上讀取MAC地址,然后在網絡上發送一個RARP請求的廣播數據包,請求RARP服務器回復PC的IP地址。
- RARP服務器收到RARP請求數據包,為其分配IP地址并將RARP回應發送給該機器。
- 該機器收到RARP服務器回應的RARP請求后,使用IP地址進行通訊。
ICMP詳解:
是一種面向無連接的協議,用于傳輸出錯報告控制信息,它是一個非常重要的協議,對于網絡安全具有極其重要的意義。ICMP協議是TCP/IP協議族的一個子協議,屬于網絡層協議,主要用于在主機和路由器之間傳遞控制信息(如報告錯誤、交換受限控制和狀態信息等)。
ICMP提供一致易懂的出錯報告錯誤,發出的出錯報文返回到發送原數據的設備,其唯一的功能是報告問題而非解決問題,糾正錯誤由發送方完成。
主要功能:
- 偵測遠端主機是否存在
- 建立及維護路由資料
- 重導資料傳送路徑(ICMP重定向)
- 資料流量控制
ICMP在溝通過程中主要通過不同的類別(Type)與代碼(Code)讓機器來識別不同的連線狀況
IP地址:
Internet上每臺主機都必須具有一個唯一的地址以區別于其他主機,這個地址就是Internet地址,即IP地址。在Internet上IP地址定義的主機地址使所有主機地址在網絡上得到了統一。
IPv4 第四版本IP協議,是構成現今互聯網技術的基石協議;IP地址由32位二進制組成,大約40億個;其中有專用IP地址和特殊使用的IP地址
IP地址分為網絡地址和主機地址兩部分,以便于IP地址的尋址操作。
一個IP地址分為4段,可以表示為a.b.c.d,段與段之間用圓點分開。IP地址有兩種表示方法:二進制形式和點分十進制
子網掩碼(又叫網絡掩碼、地址掩碼、子網絡遮罩)
是一個32位二進制的值,可以把一個IP地址分離出網絡地址和主機地址,采用點分十進制的現實,子網掩碼不能單獨存在,它必須結合IP地址一起使用。將32位的IP地址與32位的子網掩碼各個位進行二進制的“與”運算(全1則得1,不全1則得0),得到的是該IP地址的網絡地址。子網掩碼可以判斷兩臺計算機是否屬于同一網段,通過上述運算,若得到的網絡地址相同,則屬于同一網段。
子網掩碼由1和0組成,且1和0分別連續,子網掩碼的長度是32位,左邊是網絡位,用二進制數字“1”表示,1的數目等于網絡位的長度;右邊是主機位,用二進制數字“0”表示,0的數目等于主機位的長度。
TCP詳解:
傳輸控制協議 Transmission Control Protocol;面向連接的、可靠的、基于字節流的傳輸層協議;通過端對端檢錯與糾錯提供可靠數據傳輸,保證數據在網絡中正確傳輸并按照恰當的順序到達目的節點,重傳目的節點沒有收到的任何數據,分支接受節點與源節點之間出現重復的數據報文段。
TCP被稱為是端對端的協議,兩端點建立連接需通過“三次握手”,即三次數據交換
TCP完成OSI模型中第四層——傳輸層的功能,TCP層是位于IP層之上、應用層之下的中間層,不同主機的應用層之間經常需要可靠的、像管道一樣的連接,但IP層不提供這樣的流機制,而是提供不可靠的包交換。
應用層像TCP層發送用于網間傳輸的、用8字節表示的數據流,然后TCP把數據流分成適當長度的報文段,之后TCP把結果包傳給IP層,由它來通過網絡將包傳送給接受端的TCP層。TCP為了保住不發生丟包,就給每個包一個序號,同時序號也保證了傳送到接受端的包按序接受,然后接受端對已成功收到的包發回一個相應的確認;如果發送端實體在合理的往返時延內未收到確認,那么對應的數據包就被假設為已丟失將會被進行重傳。TCP用一個校驗和函數來檢驗數據是否有錯誤;在發送和接收時都要計算校驗和
在保證可靠性上,采用超時重傳和捎帶確認機制。
在流量控制上,采用滑動窗口協議,協議中規定,對于窗口內未經確認的分組需要重傳。
在擁塞控制上,采用TCP擁塞控制算法。
TCP使用三次握手協議建立連接,當主動方發出SYN連接請求后,等待對方回答SYN+ACK[1],并最終對對方的SYN執行ACK確認。這種建立連接的方法可以防止產生錯誤的連接,TCP使用的流量控制協議是可變大小的滑動窗口協議。
三次握手:
客戶端發送SYN(SEQ=x)報文給服務器端,進入SYN_SEND狀態。
服務器端收到SYN報文,回應一個SYN(SEQ=y)ACK(ACK=x+1)報文,進入SYN_RECV狀態。
客戶端收到服務器端的SYN報文,回應一個ACK(ACK=y+1)報文,進入建立狀態。
三次握手完成,TCP客戶端和服務器端成功地建立連接,可以開始傳輸數據了。
面向連接:意味著兩個使用TCP的應用在彼此交換數據包之前必須先建立一個TCP連接。在一個TCP連接中,僅有兩方進行彼此通信,廣播和多播不能用于TCP。
TCP提供可靠性:
- 應用數據被分割成TCP認為最適合發送的數據塊。這和UDP完全不同,應用程序產生的數據長度將保持不變,由TCP傳遞給IP的信息單位稱為報文段或段(segment)
- 當TCP發出一個段后,它啟動一個定時器,等待目的端確認收到這個報文段。當TCP收到發自TCP連接另一端的數據,它將發送一個確認。TCP有延遲確認的功能,在此功能沒有打開則是立即確認,功能打開則由定時器觸發確認時間點。
- TCP將保持它首部和數據的檢驗和。這是一個端到端的檢驗和,目的是檢驗數據在傳輸過程中的任何變化。如果收到段的檢驗和有差錯,TCP將丟棄這個報文段和不確認收到次報文段(希望重發)
- TCP報文段作為IP數據報來傳輸,而IP數據報的到達可能會失序,因此TCP報文段的到達也可能會失序;如果必要,TCP將對收到的數據進行重新排序,將收到的數據以準確的順序交給應用層。
- 既然IP數據報會發生重復,TCP的接收端必須丟棄重復數據。
- TCP還能提供流量控制,TCP連接的每一方都有固定大小的緩沖空間。TCP的接收端只允許另一端發送接收端緩沖區所能接納的數據。這將防止較快主機致使較慢主機的緩沖區溢出。
TCP協議用于控制數據段,是否需要重傳的依據,是設立重發定時器。在發送一個數據段的同時啟動一個重傳,若在重傳超時前收到確認就關閉該重傳,如果重傳超時前沒有收到確認,則重傳該數據段。在選擇重發時間的過程中,TCP必須具有自適應性,它需要根據互聯網當時的通信情況給出合適的重發時間。
UDP:
是用戶數據報協議,是OSI參考模型中一種無連接的傳輸層協議,提供向事務的簡單不可靠信息傳送服務。UDP協議與TCP協議一樣在傳輸層工作,是一種無連接的協議。UDP有不提供數據包分組、組裝和不能對數據包進行排序的缺點,無法得知發送的報文是否安全完整。眾多的客戶服務器模式的網絡應用都需要使用UDP協議。
UDP是OSI參考模型中一種無連接的傳輸層協議,主要應用于不要求分組順序到達的傳輸中,分組傳輸順序的檢查與排序由應用層完成,提供面向事務的簡單不可靠信息傳送服務;UDP協議基本上是IP協議與上層協議的接口,適用于一次傳輸少量數據,UDP傳輸的可靠性由應用層負責。
通常音頻、視頻和普通數據在傳送時使用UDP較多,因為它們即使偶爾丟失一兩個數據包也不會對接收結果產生太大影響。
UDP報頭由四個域組成,每個域占2個字節:源端口號、目標端口號、數據報長度、校驗值。
數據報長度是指報頭和數據部分在內的總字節數。因為報頭的長度是固定的,所以該域主要被用來計算可變長度的數據部分。
UDP協議使用報頭中的校驗值來保證數據的安全,首先在發送方提供算法計算得出,傳遞到接收方后還需要重新計算。若傳輸過程中數據受到損壞,發送方與接收方的校驗計算值將不會相符,所以UDP可以通過此檢測是否出錯。
路由器(Router)是連接因特網中各局域網、廣域網的設備,它會根據信道情況自動選擇和設定路由,以最佳路徑按前后順序發送信號。路由器是用于連接不同的網絡,所謂不同網絡即網絡地址不同。當數據從一個網絡傳輸到另一個網絡時,可以通過路由器的路由功能來完成。因此路由器具有判斷網絡地址和選擇IP路徑的功能,它能在多網絡互聯環境中建立靈活的連接,可用完全不同的數據分組和介質訪問方法連接各種子網,路由器只接受源站或其他路由器的信息。
路由和交換機的主要區別:交換機發送在OSI參考模型第二層(數據鏈路層),路由發生在第三層,即網絡層。
主要工作:
為經過路由器的每個數據幀尋找一條最佳傳輸路徑,并將該數據有效地傳送到目的站點。在路由器中通過路由表保存著各種傳輸路徑的相關數據,供路由選擇時使用。
數據包送到路由器后,通過數據包首部的目的主機IP地址和子網掩碼計算出網絡地址,即目的主機所在的網絡,查找當前路由器的路由表,選擇端口進行轉發。
路由器工作在IP協議網絡層,用于實現子網之間轉發數據;路由器一般都有多個網絡接口,包括局域的網絡接口和廣域的網絡接口。每個網絡接口連接不同的網絡,路由器中記錄有每個網絡端口相連的網絡信息,同時路由器中還保存有一張路由表,它記錄有去往不同網絡地址應送往的端口號。
當一臺路由器收到IP數據包時,它將根據數據包中的目的IP地址項查找路由表,根據查找結果將此IP數據包送網對應端口,下一臺IP路由器收到此數據包后繼續轉發,直至發到目的地。路由器之間可以通過路由協議來進行路由信息交換,從而更新路由表。