TCP/IP協議的簡單認識

基礎概念

一、爲什麼會有TCP/IP呢?

在世界上,各種各樣的電腦運行着各不相同的操作系統爲大家服務着,然而這些電腦在表達同一種信息的時候使用方法也是千差萬別,就像好像不同的地區有不同的方言,溝通起來互相聽不懂,讓他們很難很好的交流。慢慢的計算機的使用者也意識到單兵作戰不會發揮太多的作用,只有把它們聯合起來,電腦纔會發揮它最大的潛力,所以人們就想方設法的用網線把它們串聯起來。

但是簡單的連接在一起還是不能很好的解決溝通的問題,就好像兩個人見了面,但說的東西還是互相聽不懂,因而他們需要定義一些共同的語言來進行交流,所以TCP/IP就應運而生了,它就是作爲電腦與電腦之間的交流的橋樑。TCP/IP不是一個協議,而是一個協議族的統稱,裏面包含了IP協議,IMCP協議,TCP協議,以及我們比較熟悉的HTTP協議,FTP協議等。

二、TCP/IP分層(內部結構)

TCP/IP協議按照層次分爲以下四層。應用層、傳輸層、網絡層、數據鏈路層。爲什麼要分層?一個層只負責一個層次的問題,如果出問題了,和其他的層次無關,只要維護這個層次也就好了。
TCP/IP協議層從上往下,層層包裝,最上層的就是應用層,裏面有我們常見的HTTP協議,FTP協議等等。第二層則使我們的傳輸層,有我們常用的TCP協議和UDP協議就在這個層次。第三次就是網絡層,使用的是IP協議,它負責對數據加上IP地址和其他數據以確認傳送的目標。第四層是數據鏈路層,這個層次爲待傳送的數據加上一個以太網協議頭,並進行CRC編碼,爲最後的數據傳輸做準備。發送協議的主機從上自下將數據按照協議封裝,而接受數據的主機則按照協議從得到的數據包解開,最後拿到需要的數據。這種結構非常有棧的味道,所以某些文章也把TCP/IP協議族稱爲TCP/IP協議棧。下圖爲TCP/IP的結構圖

TCP/IP
下面是TCP/IP通信數據流
TCP協議流程

三、TCP協議族裏的常見協議

HTTP協議

HTTP(HyperText Transfer Protocol)是一套計算機通過網絡進行通信的規則。HTTP目前協議的版本是1.1.HTTP是一種無狀態的協議。
無狀態是指Web瀏覽器和Web服務器之間不需要建立持久的連接,這意味着當一個客戶端向服務器端發出請求,然後Web服務器返回響應(response),連接就被關閉了,在服務器端不保留連接的有關信息。
Http協議通信過程
HTTP遵循請求(Request)/應答(Response)模型。Web瀏覽器向Web服務器發送請求,Web服務器處理請求並返回適當的應答。所有HTTP連接都被構造成一套請求和應答。

在一次完整的HTTP通信過程中,Web瀏覽器與Web服務器之間將完成下列7個步驟:

(1) 建立TCP連接
(2) Web瀏覽器向Web服務器發送請求
(3) Web瀏覽器發送請求頭信息
瀏覽器發送其請求之後,還要以頭信息的形式向Web服務器發送其它信息,之後瀏覽器發送了一空白行來通知服務器,它已經結束了該頭信息的發送。
(4) Web服務器應答
 客戶機向服務器發出請求後,服務器會客戶機回送應答,
 HTTP/1.1 200 OK 
 應答的第一部分是協議的版本號和應答狀態碼
(5) Web服務器發送應答頭信息
(6) Web服務器向瀏覽器發送數據
Web服務器向瀏覽器發送頭信息後,它會發送一個空白行來表示頭信息的發送到此爲結束,接着,它就以Content-Type應答頭信息所描述的格式發送用戶所請求的實際數據。
(7) Web服務器關閉TCP連接
般情況下,一旦Web服務器向瀏覽器發送了請求數據,它就要關閉TCP連接,如果瀏覽器或者服務器在其頭信息加入了這行代碼:
 Connection:keep-alive 
 TCP連接在發送後將仍然保持打開狀態。

IP協議

IP(Internet protocol),這裏的IP不是值得我們通常所說的192.168.1.1.這個IP指的是一種協議,而後面的數字值得是IP地址。IP協議的作用在於把各種數據包準確無誤的傳遞給對方,其中兩個重要的條件是IP地址,和MAC地址(Media Access Control Address)。由於IP地址是稀有資源,不可能每個人都擁有一個IP地址,所以我們通常的IP地址是路由器給我們生成的IP地址,路由器裏面會記錄我們的MAC地址。

使用 ARP 協議憑藉 MAC 地址進行通信
IP 間的通信依賴 MAC 地址。在網絡上,通信的雙方在同一局域網(LAN)內的情況是很少的,通常是經過多臺計算機和網絡設備中轉才能連接到對方。而在進行中轉時,會利用下一站中轉設備的 MAC 地址來搜索下一個中轉目標。這時,會採用 ARP 協議(Address Resolution Protocol)。ARP 是一種用以解析地址的協議,根據通信方的 IP 地址就可以反查出對應的 MAC 地址

TCP協議:

如果說IP協議是找到對方的詳細地址。那麼TCP協議就是把安全的把東西帶給對方。各有分工,互不衝突。
按層次分,TCP屬於傳輸層,提供可靠的字節流服務。什麼叫字節流服務呢?這個名字聽起來讓人不知所以然,下面聽下我通俗的解釋。所謂的字節流,其實就類似於信息切割。比如你是一個賣自行車的,你要去送貨。安裝好的自行車,太過龐大,又不穩定,容易損傷。不如直接把自行車拆開來,每個零件上都貼上收貨人的姓名。最後送到後按照把屬於同一個人的自行車再組裝起來,這個拆解、運輸、拼裝的過程其實就是TCP字節流的過程。

DNS協議

DNS(Domain names System) 和HTTP協議一樣是處於應用層的服務,提供域名到IP地址之間的解析服務。

互聯網之間是通過IP地址通信的,但是IP地址並不符合認得記憶習慣,人喜歡記憶有意義的字詞。所以DNS服務就爲了解決這個問題而生了。其實很好理解,形如我們電腦中host文件。192.168.1.11 roverliang.com
當我們訪問roverliang.com 的時候,電腦便不會去外網服務器上查詢了,直接去訪問192.168.1.111。這是一個簡單的域名劫持,足以說明DNS的涵義了。

下面是我們訪問一個網頁,各種協議在裏面起的作用。

流程

總結:以上是TCP/IP協議(協議族)的簡單介紹,主要是說明TCP/IP協議族在整個通信過程中,各個協議之間的關係與作用。

發佈了30 篇原創文章 · 獲贊 8 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章