歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> TCP會話過程詳解

TCP會話過程詳解

日期:2017/2/28 15:43:25   编辑:Linux教程

解讀防火牆

到底什麼才是防火牆?它工作在什麼位置,起著什麼作用?查閱歷史書籍可曉得,古代使用木制結構房屋的時候為防止火災的發生和蔓延,人們將堅固的石頭堆砌在房屋周圍作為屏障,而這種防護結構就被稱為“防火牆”(FireWall)。時光迅速穿越到了21世紀,如今有著各種變相的攻擊手段,為了保護計算機的安全,聰明的人類開發出一種能阻止計算機之間直接通信的技術,並沿用了古代“防火牆”。到此,防火牆淵源史被我們挖出來了

用專業數據來說,防火牆是一種位於兩個或多個網絡間,實施網絡之間訪問控制的組件集合。對於普通用戶來說,所謂“防火牆”,是指一種被放置在自己的計算機與外界網絡之間的防御系統,從網絡發往計算機的所有數據都要經過他的判斷處理後才會決定能不能把這些數據交給計算機,一旦發現不符合規則的數據,防火牆就攔截下來,由此實現了對計算機的保護。

防火牆分類

一般主要分為兩類:包過濾防火牆;應用層網關防火牆

包過濾防火牆,使用一個軟件查看所流經的數據包的包頭(header),來決定整個包的命運。它可能會丟棄(DROP)這個包,可能會接受(ACCEPT)這個包,也可能執行其他復雜動作。包過濾是一種內置於LINUX內核路由功能之上的類型,其防火牆工作在網絡層。數據包過濾是通過對數據包的IP頭和TCP頭或UDP頭的檢查來實現的,分為簡單包過濾-----根據tcp/ip協議;帶狀態檢查的包過濾---- 4中狀態new established invilid related (因此tcp的狀態機又是一個不得不弄懂的內容,接下來就會學習到)

應用層網關防火牆:顧名思義,是工作在應用層,並且是根據數據包傳輸的實際數據進行判斷的

引入TCP/IP相關知識

TCP三次握手建立連接

在TCP/IP協議中,TCP洗衣提供可靠的連接服務,采用三次握手建立一個連接,如圖1所示。(SYN表示同步請求位,ACK表示確認位,確認號是確認對方的序列號+1)

圖1

第一次握手:建立連接時,客戶端A發送SYN請求到服務器B,請求建立連接,第一次序列號是隨機的300

第二次握手:服務器B收到SYN請求,並發送A一個ACK確認,同時自己也發送了一個SYN包,請求對方建立連接。此時B的序列號是隨機的,確認號為303(確認對方的序列號)

第三次握手:A收到B的SYN+ACK之後,向B發送ACK確認,雙發達成協議

TCP四次斷開連接

(FIN--finish ,是斷開請求)

圖2

第一次斷開:A發送一個FIN請求斷開,用來關閉客戶A到服務器B的數據傳輸

第二次斷開:B收到FIN,則回復一個ACK,表示確認收到斷開請求了

第三次斷開:B關閉與A的連接,發送一個FIN給客戶端

第四次斷開:A發送ACK給B,確認收到斷開請求

雙方都同意“分手了”並且協商好了,那就分手吧

Copyright © Linux教程網 All Rights Reserved