TCP IP協議的簡單認識

2021-08-03 15:39:15 字數 3300 閱讀 1567

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

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

tcp/ip協議按照層次分為以下四層。應用層、傳輸層、網路層、資料鏈路層。為什麼要分層?乙個層只負責乙個層次的問題,如果出問題了,和其他的層次無關,只要維護這個層次也就好了。

tcp/ip協議層從上往下,層層包裝,最上層的就是應用層,裡面有我們常見的http協議,ftp協議等等。第二層則使我們的傳輸層,有我們常用的tcp協議和udp協議就在這個層次。第三次就是網路層,使用的是ip協議,它負責對資料加上ip位址和其他資料以確認傳送的目標。第四層是資料鏈路層,這個層次為待傳送的資料加上乙個乙太網協議頭,並進行crc編碼,為最後的資料傳輸做準備。傳送協議的主機從上自下將資料按照協議封裝,而接受資料的主機則按照協議從得到的資料報解開,最後拿到需要的資料。這種結構非常有棧的味道,所以某些文章也把tcp/ip協議族稱為tcp/ip協議棧。下圖為tcp/ip的結構圖

下面是tcp/ip通訊資料流

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伺服器應答

客戶機向伺服器發出請求後,伺服器會客戶機回送應答,

應答的第一部分是協議的版本號和應答狀態碼

(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協議族在整個通訊過程中,各個協議之間的關係與作用。

HTTP協議 簡單認識TCP IP協議

大學沒讀計算機專業,所以很多的專業知識都不知道。既然已經從事了it這個行業,就勢必要去了解下網路底層,雖然實際工作中這些東西用不到。高樓大廈,起於平川。不積跬步,無以至千里,不積小流,無以成江海。我現在的知識結構,就如同空中樓閣。稍微遇到高層次的問題,可能就理解不了了。一棵大樹如果不在剛開始的時候深...

HTTP協議 簡單認識TCP IP協議

1 什麼是tcp ip 如果要了解乙個人,可以從他歸屬的集體聊起來。我們的http協議就屬於tcp ip協議家族中的一員,了解http協議再整個網路流程中的地位,也能更加充分的理解http協議。tcp ip協議是乙個協議集合。大家叫的時候方便說,所以統稱為tcp ip。tcp ip協議族中有乙個重要...

簡單認識tcp ip通訊協議

1 什麼是tcp ip 我們的http協議就屬於tcp ip協議家族中的一員,了解http協議再整個網路流程中的地位,也能更加充分的理解http協議。tcp ip協議是乙個協議集合。大家叫的時候方便說,所以統稱為tcp ip。tcp ip協議族中有乙個重要的概念是分層,tcp ip協議按照層次分為以...