TCP/IP協(xié)議族的協(xié)議挺多的,我們精力有限,不可能一個(gè)個(gè)都了如指掌,那就挑一些與HTTP協(xié)議關(guān)系了解吧~
負(fù)責(zé)傳輸?shù)腎P協(xié)議
按層次分,IP協(xié)議位于網(wǎng)絡(luò)層。
IP協(xié)議的作用是把各種數(shù)據(jù)包傳送給對(duì)方。而要保證確實(shí)傳送到對(duì)方那里,則需要滿(mǎn)足各類(lèi)條件,其中兩個(gè)重要的條件是IP地址和MAC地址。
IP地址就像現(xiàn)實(shí)世界中的地址,而MAC地址,則更像一個(gè)人的身份證號(hào)。MAC地址是固定的,IP地址是可變的。
你或許會(huì)有疑問(wèn),光有MAC沒(méi)有IP,或者光有IP沒(méi)有MAC,行不行?
答案是不行。
光有MAC地址,就好像某人在上海,你在廣州喊“身份證是XXX的,你站出來(lái)”,對(duì)方聽(tīng)不到。
光有IP地址,就像某個(gè)人在一棟大廈里,你到了該大廈,但你不知道對(duì)方具體是誰(shuí),你一樣找不到對(duì)方。
相信你對(duì)IP地址跟MAC地址已經(jīng)有了較深的理解,我們接著往下看~
確??煽啃缘腡CP協(xié)議
網(wǎng)絡(luò)世界,不確定性才是確定的,無(wú)論哪臺(tái)計(jì)算機(jī)、哪臺(tái)網(wǎng)絡(luò)設(shè)備,都無(wú)法全面掌握互聯(lián)網(wǎng)的細(xì)節(jié)。
這就很矛盾了,因?yàn)槲覀冎繲CP位于傳輸層,提供可靠的字節(jié)流服務(wù)。
所謂的字節(jié)流服務(wù),是為了方便傳輸,將大塊數(shù)據(jù)分割成以報(bào)文段為單位的數(shù)據(jù)包進(jìn)行管理。
而可靠的傳輸服務(wù)是指,能夠把數(shù)據(jù)準(zhǔn)確可靠地傳給對(duì)方。
簡(jiǎn)言之,TCP協(xié)議既要負(fù)責(zé)分割數(shù)據(jù),又要確保數(shù)據(jù)最終是否送達(dá)對(duì)方。
為了準(zhǔn)確無(wú)誤地將數(shù)據(jù)送達(dá)目標(biāo)處,TCP協(xié)議采用三次握手策略。
借用《圖解HTTP》一書(shū)中的插圖:

發(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é)束。
負(fù)責(zé)域名解析的DNS服務(wù)
用戶(hù)通常使用主機(jī)名或域名來(lái)訪(fǎng)問(wèn)對(duì)方的計(jì)算機(jī),而不是直接通過(guò)IP地址訪(fǎng)問(wèn)。因?yàn)榕cIP地址的一組純數(shù)字相比,用字母配合數(shù)字的表示形式來(lái)指定計(jì)算機(jī)名更符合人類(lèi)的記憶習(xí)慣。
但要讓計(jì)算機(jī)去理解名稱(chēng),也是比較困難的,計(jì)算機(jī)更擅長(zhǎng)理解一長(zhǎng)串?dāng)?shù)字。
為了解決上述問(wèn)題,DNS服務(wù)應(yīng)運(yùn)而生。DNS協(xié)議提供通過(guò)域名查找IP地址,或逆向從IP地址反查域名的服務(wù)。