TCP/IP協(xié)議族的解析


不說再見

疑問???What are you 弄啥嘞????

也許你們剛看見這個標(biāo)題的時候會有疑問,為什么會是TCP/IP協(xié)議族而不是TCP/IP協(xié)議呢?族?難道還要弄一個部落嗎?答案是肯定的,因為TCP/IP當(dāng)中包含好多個協(xié)議,如IP協(xié)議,IMCP協(xié)議,TCP協(xié)議,還有我們熟知的HTTP協(xié)議,F(xiàn)TP協(xié)議等,所以這里就定義為TCP/IP協(xié)議族。

為什么會出現(xiàn)TCP/IP協(xié)議族呢?

大家都知道,電腦在生活中以各種方式服務(wù)于我們,然而電腦有著不同的操作系統(tǒng),這就導(dǎo)致了不同的電腦在表達(dá)同一種信息的時候的表達(dá)方式就不同。這就好比我們國家的56個民族有著不同的語言表達(dá)方式和習(xí)俗。試想一下,如果大家坐在一起,都各自使用自己的方言進(jìn)行溝通,那現(xiàn)場會是一種什么情況?同樣的每種系統(tǒng)單獨運行一種環(huán)境中也就是所謂的獨立運行,封鎖自己不進(jìn)行外交,這樣的話是發(fā)揮不了多大的作用的,只有大家互相溝通聯(lián)合一起,才能發(fā)揮他們的最大的潛力,于是聰明的人類就使用網(wǎng)線將他們鏈接在一起。

但即使這樣的話,也不能很好的解決溝通的問題,因為各自還是按照自己的方式進(jìn)行處理問題,只有自己理解而對方是不理解的,于是TCP/IP出現(xiàn),讓不同的電腦使用同一種規(guī)定和方式進(jìn)行交流,也就是所謂的橋梁作用。

TCP/IP協(xié)議族分層

按照層次分的話TCP/IP協(xié)議族分為應(yīng)用層 傳輸層 網(wǎng)絡(luò)層 網(wǎng)絡(luò)接口層(數(shù)據(jù)鏈路層)。說起這個分層的作用就是各層級分工合作,各司其職,出現(xiàn)問題直接鎖定某一層之后進(jìn)行有針對性的維護(hù)。

下面介紹一下每一層中都包括哪些我們熟悉的協(xié)議和作用是什么?首先第一層就是應(yīng)用層,在這一層中包括我們熟知的HTTP協(xié)議 FTP協(xié)議 DNS協(xié)議,這一層作用是組織報文數(shù)據(jù);第二層是傳輸層,包括TCP和UDP協(xié)議,這一層負(fù)責(zé)對報文數(shù)據(jù)拆解 運送 拼裝;第三層是網(wǎng)絡(luò)層,這一層包括IP協(xié)議,它將數(shù)據(jù)加上地址和其他的數(shù)據(jù)確保數(shù)據(jù)準(zhǔn)備的傳到目的地;第四層是網(wǎng)絡(luò)接口層,這個層次數(shù)據(jù)加上一個以太網(wǎng)協(xié)議頭,并進(jìn)行CRC編碼,為最后的數(shù)據(jù)傳輸做準(zhǔn)備。下圖為TCP/IP的結(jié)構(gòu)圖


下面是TCP/IP的數(shù)據(jù)流:


通信數(shù)據(jù)流

常用協(xié)議

1.HTTP協(xié)議

HTTP(HyperText Transfer Protocol)是一套計算機(jī)通過網(wǎng)絡(luò)進(jìn)行通信的規(guī)則。HTTP目前協(xié)議的版本是1.1。這在日常使用中出現(xiàn)的頻率是最高的,HTTP協(xié)議時一種無狀態(tài)的協(xié)議。

無狀態(tài)指的是,瀏覽器像服務(wù)器發(fā)送一次請求,服務(wù)器收到請求后作出響應(yīng),返回響應(yīng)給瀏覽器,隨后立即將連接關(guān)閉,在服務(wù)器端不保留連接的任何信息。

HTTP協(xié)議通信的過程

HTTP遵循請求(Request)/應(yīng)答(Response)模型。瀏覽器向服務(wù)器發(fā)送請求,服務(wù)器處理請求并返回相應(yīng)的應(yīng)答。所有HTTP連接都被構(gòu)造成一套請求和應(yīng)答。

在一次完整的HTTP通信過程中,瀏覽器和服務(wù)器之間要完成一下七個步驟:

(1) 建立TCP連接

(2) Web瀏覽器向Web服務(wù)器發(fā)送請求

(3) Web瀏覽器發(fā)送請求頭信息瀏覽器發(fā)送其請求之后,還要以頭信息的形式向Web服務(wù)器發(fā)送其它信息,之后瀏覽器發(fā)送了一空白行來通知服務(wù)器,它已經(jīng)結(jié)束了該頭信息的發(fā)送。

(4) Web服務(wù)器應(yīng)答 客戶機(jī)向服務(wù)器發(fā)出請求后,服務(wù)器會客戶機(jī)回送應(yīng)答, HTTP/1.1200OK? 應(yīng)答的第一部分是協(xié)議的版本號和應(yīng)答狀態(tài)碼

(5) Web服務(wù)器發(fā)送應(yīng)答頭信息

(6) Web服務(wù)器向瀏覽器發(fā)送數(shù)據(jù)Web服務(wù)器向瀏覽器發(fā)送頭信息后,它會發(fā)送一個空白行來表示頭信息的發(fā)送到此為結(jié)束,接著,它就以Content-Type應(yīng)答頭信息所描述的格式發(fā)送用戶所請求的實際數(shù)據(jù)。

(7) Web服務(wù)器關(guān)閉TCP連接般情況下,一旦Web服務(wù)器向瀏覽器發(fā)送了請求數(shù)據(jù),它就要關(guān)閉TCP連接,如果瀏覽器或者服務(wù)器在其頭信息加入了這行代碼: Connection:keep-aliveTCP連接在發(fā)送后將仍然保持打開狀態(tài)。

2.IP協(xié)議

IP(Internet protocol)這個IP指的是協(xié)議而不是我們所了解的IP地址(如192.162.1.1),IP協(xié)議的作用就是把各種數(shù)據(jù)包準(zhǔn)備無誤的傳遞到相應(yīng)的位置,IP協(xié)議中最重要的兩個條件就是IP地址和MAC地址(Media Access Control Address),IP地址很稀有,不可能每個人都有一個IP地址,因此我們平時所接觸的IP地址是路由器隨機(jī)分配的IP地址,路由器中也會記錄我們的MAC地址。

3.TCP協(xié)議

IP協(xié)議的作用是將數(shù)據(jù)精準(zhǔn)的送到指定的位置,那么TCP就是保證數(shù)據(jù)的安全送到。按層次分,TCP屬于傳輸層,提供可靠的字節(jié)流服務(wù)。什么叫字節(jié)流服務(wù)呢?這個名字聽起來很陌生,下面我就通俗的解釋一下。所謂字節(jié)流,其實就類似于信息切割傳送再拼接的過程。比如你是汽車的生產(chǎn)商,你現(xiàn)在要發(fā)貨給下邊的代理商,整車發(fā)貨的話會由于體積過大運輸不方便,這樣你就想了一個辦法,將整車分為各個零部件貼上代理商的名字配送到指定的地點,之后再挑選出貼有這個代理商名字的零部件進(jìn)行安裝,這個拆解 運輸 再安裝的過程就是TCP字節(jié)流的過程。

4.DNS協(xié)議

DNS(Domain names System)位于應(yīng)用層,作用是解析域名為IP地址。

大家又會有疑問,為什么要將域名解析為IP地址呢?因為在互聯(lián)網(wǎng)上的通信是通過IP地址進(jìn)行通信的,試想一下如果將簡書的域名http://www.itdecent.cn/改為IP地址為192.168.14.125.16...你覺得你會和容易的記住它嗎?所以為了方便記憶就有了域名。但是網(wǎng)絡(luò)通信是基于IP地址的,所以DNS協(xié)議應(yīng)運而生,將域名解析為IP地址。

最后附上一張我們訪問一個網(wǎng)頁時,各層協(xié)議是如何分工合作的:


各層協(xié)議分工合作圖

PS:以上是對TCP/IP族的理解,希望可以對有需要的你們有一定的作用。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容