KeyWords:
誕生瞎暑,網(wǎng)絡(luò)基礎(chǔ)TCP/IP,TCP/IP協(xié)議族与帆,TCP/IP的分層管理了赌,TCP/IP通信傳輸流,
IP玄糟、TCP和DNS勿她,URI和URL
關(guān)鍵語(yǔ)句:
1. Web是建立在Http協(xié)議上通信的, 協(xié)議指規(guī)則的約束
2.Http的出現(xiàn)主要為了解決 文本傳輸?shù)?難題阵翎,現(xiàn)在Http協(xié)議已經(jīng)超出了Web這個(gè)框架的局限逢并,被應(yīng)用到各種場(chǎng)景中
3.通常使用的網(wǎng)絡(luò)(包括互聯(lián)網(wǎng))是在TCP/IP協(xié)議族的基礎(chǔ)上運(yùn)作的灭必。而HTTP屬于它內(nèi)部的一個(gè)子集
4.協(xié)議Protocal的定義:計(jì)算機(jī)和網(wǎng)絡(luò)設(shè)備要相互通信睡互,雙方就必須基于相同的方法霹疫。比如如何探測(cè)到通信目標(biāo)冗懦、由哪一邊先發(fā)起通信、使用哪種語(yǔ)言進(jìn)行通信奸远、怎樣結(jié)束通信等規(guī)則都需要事先確定万俗。不同的硬件璃吧、操作系統(tǒng)之間的通信词疼,所有這一切都需要一種規(guī)則俯树。而我們把這種規(guī)則稱為協(xié)議。
5.TCP/IP的分層管理:應(yīng)用層寒跳、傳輸層聘萨、網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層竹椒。
6.把TCP/IP層次化是有好處的童太。比如,如果互聯(lián)網(wǎng)只由一個(gè)協(xié)議統(tǒng)籌胸完,某個(gè)地方需要改變?cè)O(shè)計(jì)時(shí)书释,就必須把某個(gè)地方整體替換掉。而分層之后只需要把變動(dòng)的層替換掉即可赊窥。把各層之間的接口部分規(guī)劃好之后爆惧,每個(gè)層次內(nèi)部的設(shè)計(jì)就能夠自由改動(dòng)了。
7.應(yīng)用層 決定了向用戶提供應(yīng)用服務(wù)時(shí)通信的活動(dòng)锨能。HTTP協(xié)議也處于該層扯再。應(yīng)用服務(wù):比如:FTP文件傳輸協(xié)議和DNS域名系統(tǒng)等
8.傳輸層 對(duì)上層應(yīng)用層芍耘,提供處于網(wǎng)絡(luò)連接中的兩臺(tái)計(jì)算機(jī)之間的數(shù)據(jù)傳輸。在傳輸層有兩個(gè)性質(zhì)不同的協(xié)議:TCP傳輸控制協(xié)議 和 UDP用戶數(shù)據(jù)報(bào)協(xié)議
9.網(wǎng)絡(luò)層 用來處理在網(wǎng)絡(luò)上流動(dòng)的數(shù)據(jù)包熄阻。 數(shù)據(jù)包:是網(wǎng)絡(luò)傳輸?shù)淖钚?shù)據(jù)單位斋竞。該層決定了通過怎樣的路徑(所謂的傳輸路線)到達(dá)對(duì)方計(jì)算機(jī),并把數(shù)據(jù)包傳送給對(duì)方秃殉。
10.鏈路層 (又叫數(shù)據(jù)鏈路層坝初、網(wǎng)絡(luò)接口層),用來處理連接網(wǎng)絡(luò)的硬件部分钾军。包括控制操作系統(tǒng)鳄袍、硬件的設(shè)備驅(qū)動(dòng)、NIC網(wǎng)卡吏恭,及光纖等可見部分拗小。硬件上的范疇均在鏈路層的作用范圍之內(nèi)。
11.利用TCP/IP協(xié)議族進(jìn)行網(wǎng)絡(luò)通信時(shí)樱哼,會(huì)通過分層順序與對(duì)方進(jìn)行通信十籍。發(fā)送端從應(yīng)用層往下走,接收端則往上向應(yīng)用層走唇礁。
12.我們用HTTP舉例來說明勾栗,首先作為發(fā)送端的客戶端在應(yīng)用層(HTTP協(xié)議)發(fā)出一個(gè)想要看到某個(gè)Web頁(yè)面的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)后轉(zhuǎn)發(fā)給網(wǎng)絡(luò)層琢融。
在網(wǎng)絡(luò)層(IP協(xié)議)界牡,增加作為通信目的地的MAC地址后轉(zhuǎn)發(fā)給鏈路層。這樣以來漾抬,發(fā)往網(wǎng)絡(luò)的通信請(qǐng)求就準(zhǔn)備齊全了宿亡。
接收端的服務(wù)器在鏈路層接收到數(shù)據(jù),按序往上層返送纳令,一直到應(yīng)用層挽荠。當(dāng)傳輸?shù)綉?yīng)用層,才能算真正接收到由客戶端發(fā)送過來的HTTP請(qǐng)求平绩。
13.IP協(xié)議:負(fù)責(zé)傳輸圈匆。位于網(wǎng)絡(luò)層。作用是把各種數(shù)據(jù)包傳送給對(duì)方捏雌。而要保證確實(shí)傳送到對(duì)方那里跃赚,則需要滿足各類條件。其中兩個(gè)重要的條件是IP地址和MAC地址性湿。
IP地址指明了 節(jié)點(diǎn)被分配到的地址纬傲。MAC地址是指網(wǎng)卡所屬的固定地址满败。
IP地址可以和MAC地址進(jìn)行配對(duì)。IP地址可變換叹括,但MAC地址基本上不會(huì)更改葫录。
14.TCP協(xié)議:確保可靠领猾。位于傳輸層米同。提供可靠的字節(jié)流服務(wù)。
15.三次握手:為了準(zhǔn)確無誤地將數(shù)據(jù)送達(dá)目標(biāo)處摔竿,TCP協(xié)議采用了三次握手策略(three-way handshaking)面粮。用TCP協(xié)議把數(shù)據(jù)包送出去后,TCP不會(huì)對(duì)傳送后的情況置之不理继低,它一定會(huì)像對(duì)方確認(rèn)是否成功送達(dá)熬苍。握手過程中使用了TCP的標(biāo)志-SYN(synchronize)和ACK(acknowledgement)。
發(fā)送端首先發(fā)送一個(gè)帶SYN標(biāo)志的數(shù)據(jù)包給對(duì)方袁翁。接收端收到后柴底,回傳一個(gè)帶SYN/ACK標(biāo)志的數(shù)據(jù)包以示傳達(dá)確認(rèn)信息。最后發(fā)送端再回傳一個(gè)帶ACK標(biāo)志的數(shù)據(jù)包粱胜,代表握手結(jié)束柄驻。
若在握手過程中某個(gè)階段莫名中斷,TCP協(xié)議會(huì)再次以相同的順序發(fā)送相同的數(shù)據(jù)包焙压。
16. 除了三次握手鸿脓,TCP協(xié)議還有其他各種手段來保證通信的可靠性。
17.DNS(Domain Name System)服務(wù)是和HTTP協(xié)議一樣位于應(yīng)用層的協(xié)議涯曲。它提供域名到IP地址之間的解析服務(wù)野哭。
18.DNS提供通過域名查找IP地址,或逆向從IP地址反查域名的服務(wù)幻件。
19.IP協(xié)議拨黔、TCP協(xié)議和DNS服務(wù)在使用HTTP協(xié)議的通信過程中各自發(fā)揮了哪些作用,可以用下圖說明:
20.URI:Uniform Resource Identifier,統(tǒng)一資源標(biāo)志符
21.URI用字符串標(biāo)識(shí)某一互聯(lián)網(wǎng)資源绰沥,而URL表示資源的地點(diǎn)(互聯(lián)網(wǎng)上所處的位置)篱蝇。可見URL是URI的子集揪利。
22.URL:Uniform Resource Locator,統(tǒng)一資源定位符