一阻塑、網(wǎng)絡(luò)基礎(chǔ)
1.1 什么是通信協(xié)議
計(jì)算機(jī)與網(wǎng)絡(luò)設(shè)備要相互通信,需要有一套相同的操作規(guī)則钓株,例如怎么發(fā)起通信却紧,使用什么語(yǔ)言進(jìn)行通信,如何傳輸數(shù)據(jù)惨撇,怎么結(jié)束通信等伊脓。不同的硬件,操作系統(tǒng)之間的通信魁衙,都需要約定好相同的操作規(guī)則报腔。這種規(guī)則就稱之為協(xié)議(protocol)。
1.2 TCP/IP協(xié)議族
網(wǎng)絡(luò)通信是非常復(fù)雜的交互過程剖淀,這其中需要制定的通信協(xié)議也是多種多樣纯蛾,從電纜的規(guī)格到IP地址的選定方法,建立通信的順序纵隔,以及數(shù)據(jù)傳輸需要處理的步驟等翻诉。像這樣把與互聯(lián)網(wǎng)相關(guān)聯(lián)的協(xié)議集合起來總稱為TCP/IP炮姨。
1.3 TCP/IP協(xié)議的分層管理
tcp/ip協(xié)議按照層次分為四層:應(yīng)用層、傳輸層碰煌、網(wǎng)絡(luò)層舒岸、數(shù)據(jù)連接層。協(xié)議的分層是為了解耦芦圾,每個(gè)層次之間按照約定好的接口進(jìn)行通信蛾派,即使某個(gè)協(xié)議的設(shè)計(jì)需要修改,只要接口不改變个少,就不會(huì)影響其他層的設(shè)計(jì)洪乍。
二、TCP/IP通信傳輸流
利用TCP/IP協(xié)議進(jìn)行網(wǎng)絡(luò)通信時(shí)稍算,會(huì)通過分層順序與對(duì)方進(jìn)行通信典尾。發(fā)送端從應(yīng)用層往下走,接收端則往應(yīng)用層上走糊探。
以Http協(xié)議舉例:
- 首先作為發(fā)送端的客戶端(例如:瀏覽器)在應(yīng)用層(Http協(xié)議)發(fā)出一個(gè)想看某個(gè)web網(wǎng)站的http請(qǐng)求钾埂。
- 在傳輸層(TCP協(xié)議)把從應(yīng)用層收到的數(shù)據(jù)(HTTP請(qǐng)求報(bào)文)進(jìn)行分割,并在各個(gè)報(bào)文上打標(biāo)記號(hào)和端口號(hào)后發(fā)送到網(wǎng)絡(luò)層科平。
- 在網(wǎng)絡(luò)層(IP協(xié)議)褥紫,增加作為通信目的地的MAC地址后轉(zhuǎn)發(fā)給鏈路層。
- 接收端的服務(wù)器在鏈路層接收數(shù)據(jù)瞪慧,仍然按照上述順序逆向發(fā)送髓考,一直到應(yīng)用層,這樣客戶端的請(qǐng)求就到達(dá)了服務(wù)器弃酌。
示意圖如下
三氨菇、 與Http相關(guān)的協(xié)議
3.1 負(fù)責(zé)傳輸?shù)腎P協(xié)議
IP協(xié)議指的是網(wǎng)際協(xié)議,它的作用是把各個(gè)數(shù)據(jù)包傳送給對(duì)方妓湘。為了確保數(shù)據(jù)可以傳送給對(duì)方查蓉,需要滿足各類條件。其中兩個(gè)重要的條件是IP地址和MAC地址(Media Access Control Address)榜贴。IP地址指明了節(jié)點(diǎn)被分配到的地址豌研,MAC地址是指網(wǎng)卡所屬的固定地址。IP地址可以和MAC地址進(jìn)行配對(duì)唬党。IP地址可變換鹃共,但是MAC地址基本上不會(huì)更改。
3.2 確笔还埃可靠性的TCP協(xié)議
TCP負(fù)責(zé)字節(jié)流數(shù)據(jù)的傳輸霜浴,TCP協(xié)議會(huì)把大數(shù)據(jù)塊分割成以報(bào)文段為單位的數(shù)據(jù)包進(jìn)行傳輸,TCP協(xié)議為了準(zhǔn)確發(fā)送數(shù)據(jù)蓝纲,采用三次握手策略坷随。TCP協(xié)議發(fā)送數(shù)據(jù)后房铭,會(huì)確認(rèn)對(duì)方是否成功收到。
3.3 負(fù)責(zé)域名解析的DNS服務(wù)
DNS服務(wù)也位于應(yīng)用層温眉,它提供域名到IP地址的解析服務(wù),它的工作過程如下