本篇論文目錄導航:
【題目】國內互聯網完全問題探究
【第一章】計算機網絡安全防范探析緒論
【第二章】以太網及TCP/IP協議介紹
【第三章】網絡流量分析系統設計
【第四章】網絡安全系統仿真測試與結果分析
【總結/參考文獻】計算機網絡安全防護技術研究總結與參考文獻
第二章 以太網及 TCP/IP 協議介紹
TCP/IP 協議[8]是 Internet 最基本的協議、Internet 國際互聯網絡的基礎,由網絡層的 IP 協議和傳輸層的 TCP 協議組成。TCP/IP 定義了電子設備如何連入因特網,以及數據如何在它們之間傳輸的標準。協議采用了 4 層的層級結構,每一層都呼叫它的下一層所提供的協議來完成自己的需求
2.1 TCP/IP 和 DoD 模型
TCP/IP 協議簇是由美國國防部(DoD)所創建的,主要用來確保數據的完整性及在毀滅性戰爭中維持通信。如果能進行正確的設計和應用,TCP/IP 網絡將是可靠的并富有彈性的網絡。
DoD 模型類似于 OSI(Open System Interconnection)模型[9]的精簡版,它包含 4 層:
應用層;
端到端層;
因特網層;
網絡接入層;
圖 2.1 對 DoD 模型和 OSI 參考模型進行了比較[10].如圖所示,這兩個模型在概念上是相似的,但它們包含的層數不同,各層的名稱也不同。
DoD 模型的進程/應用層包含大量的協議,以集成分布在 OSI 上三層(應用層、表示層、會話層)的各種活動和職責。進程/應用層定義了用于節點間應用程序通信的協議,還定義了用戶界面規范。
主機到主機層的功能與 OSI 模型的傳輸層相同,定義了用于為應用程序提供傳輸服務的協議,它負責解決的問題包括進行可靠的端到端通信以及確保正確地傳輸數據,還對分組進行排序,確保數據的完整性。
因特網層對應 OSI 模型的網絡層,指定了與通過整個網絡對分組進行邏輯傳輸相關的協議。它負責對主機進行編址--給它們分配 IP(因特網協議)地址,還在多個網絡之間路由分組。
DoD 模型的最底端是網絡接入層,它在主機和網絡之間交換數據。網絡接入層對應 OSI模型的數據鏈路層和物理層,它負責硬件編址,并定義用于實際傳輸數據的協議。
DoD 模型和 OSI 模型在設計和概念上相似,并且在對應用層的功能也類似。圖 2.2 顯示了 TCP/IP 協議簇以及其中協議對應的 DoD 模型層。
2.2 基于 TCP/IP 協議簇的相關介紹
進程/應用層協議涉及當下幾乎所有路由器、交換機、服務器等網絡通信及服務設備應用,了解這些應用對于我們分析、處理網絡攻擊行為極有裨益;主機到主機層的主要功能是對上層應用程序隱藏網絡的復雜性,它通過上層說明對上層數據進行處理,為數據發送做準備。主機到主機層主要有兩種協議:
傳輸控制協議(TCP)
用戶數據包協議(UDP)
2.2.1 網絡協議 IP
因特網層,I P 是 T C P / I P 協議簇中最為核心的協議。I P 提供不可靠、無連接的數據報傳送服務。不可靠是它不能保證 I P 數據報能成功地到達目的地。I P 僅提供最好的傳輸服務。如果發生某種錯誤時,如某個路由器暫時用完了緩沖區, I P 將丟棄該數據報,然后發送 I CM P 消息報給信源端。任何要求的可靠性必須由上層來提供(如 T C P)。無連接是 I P 并不維護任何關于后續數據報的狀態信息。每個數據報的處理是相互獨立的。這也說明, I P 數據報可以不按發送順序接收。如果一信源向相同的信宿發送兩個連續的數據報,每個數據報都是獨立地進行路由選擇,可能選擇不同的路線,因此兩個數據報到達目的地的先后順序也是不同的;IP 數據報的格式如圖 2.3 所示。普通的 I P 首部長為 2 0 個字節(不包含選項字段)協議版本號標識當前數據 IP 版本。
首部長度指的是首部占 32 bit 字的數目,包括任何選項。由于它是一個 4 比特字段,因此首部最長為 6 0 個字節。普通 I P 數據報(沒有任何選擇項)字段的值是 5.
服務類型(TOS)字段包括一個 3 bit 的優先權子字段(現在已被忽略),4 bit 的 TOS 子字段和 1 bit 未用位但必須置 0.4 bit 的 TOS 分別代表:最小時延、最大吞吐量、最高可靠性和最小費用。4 bit 中只能置其中 1 bit.如果所有 4 bit 均為 0,那么就意味著是一般服務。
總長度字段是指整個 I P 數據報的長度,以字節為單位。利用首部長度字段和總長度字段,就可以知道 I P 數據報中數據內容的起始位置和長度。由于該字段長 1 6 比特,所以 I P 數據報最長可達 6 5 5 3 5 字節。
標識字段唯一地標識主機發送的每一份數據報。通常每發送一份報文它的值就會加 1.
T T L(time-to-live)生存時間字段設置了數據報可以經過的最多路由器數。它指定了數據報的生存時間。T T L 的初始值由源主機設置(通常為 3 2 或 6 4),一旦經過一個處理它的路由器,它的值就減去 1.當該字段的值為 0 時,數據報就被丟棄,并發送 I C M P 報文通知源主機。
首部檢驗和字段是根據 I P 首部計算的檢驗和碼。它不對首部后面的數據進行計算。
任選項,是數據報中的一個可變長的可選信息。
子網掩碼是一個長 32 位的值,讓 P 分組的接收方能夠將 IP 地址的網絡 ID 部分和主機D 部分區分開來。網絡管理員創建由 1 和 0 組成的 32 位子網掩碼,其中的 1 表示 IP 地址的相應部分為網絡地址或子網地址。并非所有網絡都需要子網,這意味著網絡可使用默認子網掩碼。這相當于說 E 地址不包含子網地址。表 2-1 列出了 A 類、B 類和 C 類網絡的默認子網掩碼。這些默認子網掩碼不能修改。
2.2.2 傳輸協議 TCP 和 UDP
TCP 接收來自應用程序的大型數據塊,并將其劃分成數據段。它給每個數據段編號,讓接收主機的 TCP 棧能夠按應用程序希望的順序排列數據段。發送數據段后,發送主機的 TCP等待來自接收端 TCP 的確認,并重傳未得到確認的數據段。發送主機開始沿分層模型向下發送數據段之前,發送方的 TCP 棧與目標主機的 TCP 棧聯系,以建立連接。它們創建的是虛電路,這種通信被認為是面向連接的。
UDP 是一種無連接的傳輸層協議,提供面向事務的簡單不可靠信息傳送服務,在網絡中它與 TCP 協議一樣用于處理數據包,但不提供數據包分組、組裝和不能對數據包進行排序。
TCP 是一種面向連接的、可靠的、基于字節流的傳輸層通信協議。在一個 T C P 連接中,僅有兩方進行彼此通信。T C P 通過下列方式來提供可靠性:
圖 2.4 所示為 TCP 首部的數據格式,如果不計算任選字段,它通常是 20 個字節。
每個 T C P 段都包含源端和目的端的端口號,用于尋找發端和收端應用進程。這兩個值加上 I P 首部中的源端 I P 地址和目的端 I P 地址唯一確定一個 T C P 連接。有時,一個 I P 地址和一個端口號也稱為一個插口(socket)。
序號用來標識從 T C P 發端向 T C P 收端發送的數據字節流,它表示在這個報文段中的的第一個數據字節。如果將字節流看作在兩個應用程序間的單向流動,則 T C P 用序號對每個字節進行計數。序號是 32 bit 的無符號數,序號到達 23 2-1 后又從 0 開始。
當建立一個新的連接時, S Y N 標志變 1.序號字段包含由這個主機選擇的該連接的初始序號 I S N.該主機要發送數據的第一個字節序號為這個 I S N 加 1,因為 S Y N 標志消耗了一個序號。既然每個傳輸的字節都被計數,確認序號包含發送確認的一端所期望收到的下一個序號。因此,確認序號應當是上次已成功收到數據字節序號加 1.只有 AC K 標志為 1 時確認序號字段才有效。發送 AC K 無需任何代價,因為 32 bit 的確認序號字段和 AC K 標志一樣,總是 T C P 首部的一部分。因此,我們看到一旦一個連接建立起來,這個字段總是被設置, AC K 標志也總是被設置為 1.
T C P 為應用層提供全雙工服務。這意味數據能在兩個方向上獨立地進行傳輸。因此,連接的每一端必須保持每個方向上的傳輸數據序號。T C P 可以表述為一個沒有選擇確認或否認的滑動窗口協議。我們說 T C P 缺少選擇確認是因為 T C P 首部中的確認序號表示發方已成功收到字節,但還不包含確認序號所指的字節。當前還無法對數據流中選定的部分進行確認。
首部長度給出首部中 32 bit 字的數目。需要這個值是因為任選字段的長度是可變的。這個字段占 4 bit,因此 T C P 最多有 6 0 字節的首部。然而,沒有任選字段,正常的長度是 2 0字節。
T C P 的流量控制由連接的每一端通過聲明的窗口大小來提供。窗口大小為字節數,起始于確認序號字段指明的值,這個值是接收端正期望接收的字節。窗口大小是一個 16 bit 字段,因而窗口大小最大為 65535 字節。
檢驗和覆蓋了整個的 T C P 報文段: T C P 首部和 T C P 數據。這是一個強制性的字段,一定是由發端計算和存儲,并由收端進行驗證。
U D P 是一個簡單的面向數據報的運輸層協議:進程的每個輸出操作都正好產生一個 U DP 數據報,并組裝成一份待發送的 I P 數據報。這與面向流字符的 TCP 協議不同,U D P 數據報封裝成一份 I P 數據報的格式,如圖 2.5 所示U D P 不提供可靠性:它把應用程序傳給 I P 層的數據發送出去,但是并不保證它們能到達目的地。應用程序必須關心 I P 數據報的長度。如果它超過網絡的 M T U,那么就要對 I P數據報進行分片。如果需要,源端到目的端之間的每個網絡都要進行分片。U D P 首部的各字段如圖 2.6 所示端口號表示發送進程和接收進程,由于 I P 層已經把 I P 數據報分配給 T C P 或 U D P,因此 T C P 端口號由 T C P 來查看,而 U D P 端口號由 U D P 來查看。T C P 端口號與 U D P端口號是相互獨立的。
U D P 長度字段指的是 U D P 首部和 U D P 數據的字節長度。該字段的最小值為 8 字節。這個 U D P 長度是有冗余的。U D P 檢驗和覆蓋 U D P 首部和 U D P 數據。
物理網絡層一般要限制每次發送數據幀的最大長度。任何時候 I P 層接收到一份要發送的I P 數據報時,它要判斷向本地哪個接口發送數據,并查詢該接口獲得其 M T U.I P 把 M T U與數據報長度進行比較,如果需要則進行分片。分片可以發生在原始發送端主機上,也可以發生在中間路由器上。把一份 I P 數據報分片以后,只有到達目的地才進行重新組裝。重新組裝由目的端的 I P 層來完成,其目的是使分片和重新組裝過程對運輸層是透明的。已經分片過的數據報有可能會再次進行分片。I P 首部中包含的數據為分片和重新組裝提供了足夠的信息。
2.2.3 應用層協議
進程/應用層協議涉及當下幾乎所有路由器、交換機、服務器等網絡通信及服務設備應用。在實際應用中,網絡設備通過 TCP 和 UDP 的端口號來確認上層應用協議,當用戶知曉應用層所用協議時,通過對照表可以索引出該協議相對應的協議號。在 TCP/IP 協議中,TCP、UDP的端口號范圍為 0~65535,而一般情況下,保留端口號 0~1023 用于知名協議的使用,應用與傳輸層對應的常用端口號舉例,如下表 2.2 所示:
2.2.4 以太網幀
在 T C P / I P 協議族中,鏈路層主要有三個目的:
(1) 為 I P 模塊發送和接收 I P 數據報;(2) 為 AR P 模塊發送 AR P 請求和接收 AR P 應答;(3) 為 RAR P 發送 R AR P 請求和接收 R AR P 應答。T C P / I P 支持多種不同的鏈路層協議,這取決于網絡所使用的硬件,如以太網。以太網是當今 T C P / I P 采用的主要的局域網技術。它采用 C S MA/ C D 的媒體接入方法,其意思是帶沖突檢測的載波偵聽多路接入(Carrier Sense, MultipleAccess with Collision Detection)。它的速率為 10 Mb/s,地址為 48 bit.
數據鏈路層負責將比特合并成字節,再將字節封裝成幀。在數據鏈路層,我們使用幀封裝來自網絡層的分組,以便通過特定類型的介質進行傳輸。以太網工作站的職責是,使用 MAC 幀格式彼此傳遞數據幀。這利用 CRC (Cyclic RedundancyCbeck,循環冗余校驗)提供了錯誤檢測功能,但并非糾錯。圖 2-7 說明了 802.3幀和以太網幀的格式。
2.3 本章小結
本章闡述了 TCP/IP 協議簇和 DoD 模型的關系以及各層的重要術語和協議。T C P / I P 協議族分為四層:鏈路層、網絡層、運輸層和應用層,每一層各有不同的責任,每一層都呼叫它的下一層所提供的協議來完成自己的需求。
TCP/IP 是 Internet 最基本的協議、Internet 國際互聯網絡的基礎,由網絡層的 IP 協議和傳輸層的 TCP 協議組成。TCP/IP 定義了電子設備如何連入因特網,以及數據如何在它們之間傳輸的標準。