疑問?锦援?猛蔽?What are you 弄啥嘞??曼库??
也許你們剛看見這個(gè)標(biāo)題的時(shí)候會有疑問区岗,為什么會是TCP/IP協(xié)議族而不是TCP/IP協(xié)議呢?族凉泄?難道還要弄一個(gè)部落嗎躏尉?答案是肯定的,因?yàn)門CP/IP當(dāng)中包含好多個(gè)協(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á)同一種信息的時(shí)候的表達(dá)方式就不同。這就好比我們國家的56個(gè)民族有著不同的語言表達(dá)方式和習(xí)俗蹂窖。試想一下轧抗,如果大家坐在一起,都各自使用自己的方言進(jìn)行溝通瞬测,那現(xiàn)場會是一種什么情況横媚?同樣的每種系統(tǒng)單獨(dú)運(yùn)行一種環(huán)境中也就是所謂的獨(dú)立運(yùn)行,封鎖自己不進(jìn)行外交月趟,這樣的話是發(fā)揮不了多大的作用的灯蝴,只有大家互相溝通聯(lián)合一起,才能發(fā)揮他們的最大的潛力孝宗,于是聰明的人類就使用網(wǎng)線將他們鏈接在一起穷躁。
但即使這樣的話,也不能很好的解決溝通的問題因妇,因?yàn)楦髯赃€是按照自己的方式進(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ù)鏈路層)摔寨。說起這個(gè)分層的作用就是各層級分工合作,各司其職怖辆,出現(xiàn)問題直接鎖定某一層之后進(jìn)行有針對性的維護(hù)是复。
下面介紹一下每一層中都包括哪些我們熟悉的協(xié)議和作用是什么删顶?首先第一層就是應(yīng)用層,在這一層中包括我們熟知的HTTP協(xié)議 FTP協(xié)議 DNS協(xié)議淑廊,這一層作用是組織報(bào)文數(shù)據(jù)逗余;第二層是傳輸層,包括TCP和UDP協(xié)議季惩,這一層負(fù)責(zé)對報(bào)文數(shù)據(jù)拆解 運(yùn)送 拼裝录粱;第三層是網(wǎng)絡(luò)層,這一層包括IP協(xié)議画拾,它將數(shù)據(jù)加上地址和其他的數(shù)據(jù)確保數(shù)據(jù)準(zhǔn)備的傳到目的地啥繁;第四層是網(wǎng)絡(luò)接口層,這個(gè)層次數(shù)據(jù)加上一個(gè)以太網(wǎng)協(xié)議頭青抛,并進(jìn)行CRC編碼旗闽,為最后的數(shù)據(jù)傳輸做準(zhǔn)備。下圖為TCP/IP的結(jié)構(gòu)圖
下面是TCP/IP的數(shù)據(jù)流:
常用協(xié)議
1.HTTP協(xié)議
HTTP(HyperText Transfer Protocol)是一套計(jì)算機(jī)通過網(wǎng)絡(luò)進(jìn)行通信的規(guī)則蜜另。HTTP目前協(xié)議的版本是1.1适室。這在日常使用中出現(xiàn)的頻率是最高的,HTTP協(xié)議時(shí)一種無狀態(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ù)器之間要完成一下七個(gè)步驟:
(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ù)器向?yàn)g覽器發(fā)送數(shù)據(jù)Web服務(wù)器向?yàn)g覽器發(fā)送頭信息后殉了,它會發(fā)送一個(gè)空白行來表示頭信息的發(fā)送到此為結(jié)束开仰,接著,它就以Content-Type應(yīng)答頭信息所描述的格式發(fā)送用戶所請求的實(shí)際數(shù)據(jù)。
(7) Web服務(wù)器關(guān)閉TCP連接般情況下众弓,一旦Web服務(wù)器向?yàn)g覽器發(fā)送了請求數(shù)據(jù)恩溅,它就要關(guān)閉TCP連接,如果瀏覽器或者服務(wù)器在其頭信息加入了這行代碼: Connection:keep-aliveTCP連接在發(fā)送后將仍然保持打開狀態(tài)谓娃。
2.IP協(xié)議
IP(Internet protocol)這個(gè)IP指的是協(xié)議而不是我們所了解的IP地址(如192.162.1.1)脚乡,IP協(xié)議的作用就是把各種數(shù)據(jù)包準(zhǔn)備無誤的傳遞到相應(yīng)的位置,IP協(xié)議中最重要的兩個(gè)條件就是IP地址和MAC地址(Media Access Control Address)滨达,IP地址很稀有奶稠,不可能每個(gè)人都有一個(gè)IP地址,因此我們平時(shí)所接觸的IP地址是路由器隨機(jī)分配的IP地址捡遍,路由器中也會記錄我們的MAC地址窒典。
3.TCP協(xié)議
IP協(xié)議的作用是將數(shù)據(jù)精準(zhǔn)的送到指定的位置,那么TCP就是保證數(shù)據(jù)的安全送到稽莉。按層次分瀑志,TCP屬于傳輸層,提供可靠的字節(jié)流服務(wù)污秆。什么叫字節(jié)流服務(wù)呢劈猪?這個(gè)名字聽起來很陌生,下面我就通俗的解釋一下良拼。所謂字節(jié)流战得,其實(shí)就類似于信息切割傳送再拼接的過程。比如你是汽車的生產(chǎn)商庸推,你現(xiàn)在要發(fā)貨給下邊的代理商常侦,整車發(fā)貨的話會由于體積過大運(yùn)輸不方便,這樣你就想了一個(gè)辦法贬媒,將整車分為各個(gè)零部件貼上代理商的名字配送到指定的地點(diǎn)聋亡,之后再挑選出貼有這個(gè)代理商名字的零部件進(jìn)行安裝,這個(gè)拆解 運(yùn)輸 再安裝的過程就是TCP字節(jié)流的過程际乘。
4.DNS協(xié)議
DNS(Domain names System)位于應(yīng)用層坡倔,作用是解析域名為IP地址。
大家又會有疑問脖含,為什么要將域名解析為IP地址呢罪塔?因?yàn)樵诨ヂ?lián)網(wǎng)上的通信是通過IP地址進(jìn)行通信的,試想一下如果將簡書的域名http://www.reibang.com/改為IP地址為192.168.14.125.16...你覺得你會和容易的記住它嗎养葵?所以為了方便記憶就有了域名征堪。但是網(wǎng)絡(luò)通信是基于IP地址的,所以DNS協(xié)議應(yīng)運(yùn)而生关拒,將域名解析為IP地址佃蚜。
最后附上一張我們訪問一個(gè)網(wǎng)頁時(shí)咳榜,各層協(xié)議是如何分工合作的:
PS:以上是對TCP/IP族的理解,希望可以對有需要的你們有一定的作用爽锥。