這次講講IP、TCP和DNS與HTTP的密切關系。
知識點
?IP協(xié)議的概念與作用
?TCP協(xié)議的概念與作用
?TCP協(xié)議的三次握手過程
?DNS的概念與作用
?HTTP與TCP雨女、IP和DNS的關系
一谚攒、IP協(xié)議的概念與作用
IP的概念:
英文為Internet Protocol,翻譯成網(wǎng)際協(xié)議氛堕,位于網(wǎng)絡層馏臭。
這個網(wǎng)際協(xié)議這個名字聽起來有點夸張,但事實就是這樣讼稚,因為幾乎所有使用網(wǎng)絡的系統(tǒng)都會用到IP協(xié)議括儒。TCP/IP協(xié)議族中的IP指的是網(wǎng)際協(xié)議,它在協(xié)議名稱中占據(jù)了一半的位置锐想,從這可以知道IP協(xié)議是多么的重要帮寻。這里我們需要注意兩個概念,IP和IP地址赠摇,可能有人會把它搞混固逗。IP其實是一種協(xié)議的名稱,而IP地址是一個地址藕帜。
IP的作用:
把各種數(shù)據(jù)包傳送給對方烫罩。如果要保證確定傳送到對方那里,則需要滿足各類條件洽故,其中最重要的兩個條件是IP地址和MAC地址贝攒。
(1)IP地址:指明了節(jié)點被分配到的地址
(2)MAC地址:是指網(wǎng)卡所屬的固定地址
(3)區(qū)別:IP地址可變換,但MAC地址基本上不會更改时甚。
如果你想要保證數(shù)據(jù)包傳送到對方去隘弊,那就必須滿足各種條件,其中最重要的兩個條件是IP地址和MAC地址荒适。
什么是IP地址呢梨熙?IP地址指明了節(jié)點被分配到的地址。而什么又是MAC地址呢吻贿? MAC地址的網(wǎng)卡所屬的固定地址串结。形象一點來說,MAC地址就像我們的身份證號舅列,每一個MAC地址是唯一的,并且基本不會改變卧蜓。這里我為什么說基本不會改變呢帐要?因為目前我們可以通過軟件修改,也就是用軟件來修改MAC地址弥奸。IP地址是可以和MAC地址進行配對的榨惠。
我們來了解一下使用ARP協(xié)議憑借MAC地址進行通信
什么是ARP協(xié)議呢?ARP協(xié)議它是一種用以解析地址的協(xié)議,我們只要知道通信方的IP地址赠橙,就可以反查出對應的MAC地址耽装。也就是說IP間的通信依賴于MAC地址。
我們來看一下這個圖:
在網(wǎng)絡上期揪,通信的雙方通常都是要經(jīng)過多臺計算機或者網(wǎng)絡設備中轉(zhuǎn)才能連接到對方掉奄。而在進行中轉(zhuǎn)時,會利用下一站中轉(zhuǎn)設備的MAC地址來搜索下一個中轉(zhuǎn)目標凤薛,這時我們就是靠ARP協(xié)議來進行處理姓建。
二、TCP協(xié)議的概念與作用
(1)TCP的概念:TCP英文為Transmission Control Protocol 缤苫,翻譯成傳輸控制協(xié)議速兔,位于傳輸層。
(2)TCP有什么作用呢活玲?它是提供可靠的 字節(jié)流服務涣狗。
(3)什么是字節(jié)流服務?所謂的字節(jié)流服務指的是舒憾,為了方便傳輸屑柔,將大塊數(shù)據(jù)分割成 以報文段為單位的數(shù)據(jù)包 進行管理
(4)為何強調(diào)可靠呢?因為它能夠把數(shù)據(jù)準確可靠地傳送給對方珍剑〉穑總而言之,TCP協(xié)議就是為了 更容易傳送大數(shù)據(jù) 才把數(shù)據(jù)分割招拙,而且TCP協(xié)議能夠確認數(shù)據(jù) 最終是否送達對方唧瘾。
(5)TCP協(xié)議如何才能保證提供可靠的服務?它采用了三次握手策略别凤。 也就是用TCP協(xié)議 把數(shù)據(jù)包送出去后饰序,它不會對傳送后的情況置之不理,它一定會想對方確認 是否成功送達规哪。
三求豫、TCP協(xié)議的三次握手過程
我們來看一下這個圖:
握手過程中使用了TCP的標志-SYN和ACK。發(fā)送端首先發(fā)送一個S帶SYN標志的數(shù)據(jù)包給對方诉稍。接收端接到后蝠嘉,就會回傳一個帶有SYN/ACK標志的數(shù)據(jù)包 以表示傳達確認信息。最后杯巨,發(fā)送端再回傳一個帶ACK標志的數(shù)據(jù)包 給接收端蚤告, 此時代表“握手”結束。除了三次握手來保證通信的可靠性服爷,TCP協(xié)議還有其他各種手段來保證通信的可靠性杜恰,這里我就不過多講解了获诈,大家可以自己翻閱相關資料去了解下。
四心褐、DNS的概念與作用
(1)DNS的概念:英文為Domain Name System 舔涎,翻譯成域名系統(tǒng),位于應用層逗爹。
(2)DNS有什么作用呢亡嫌? 它是提供域名到IP地址之間的解析服務。
我們平時訪問一個網(wǎng)站桶至,通常都是使用主機名或域名來訪問昼伴,而不是直接通過IP地址來訪問。為什么我們不用IP地址去訪問呢镣屹?因為IP地址是一組純數(shù)字圃郊,比較難記。比如說女蜈,我們極客學院的IP地址為121.42.104.52,而域名為www.itcen.cn持舆。 如果我們用IP地址去訪問網(wǎng)站,那是很難記得住的伪窖。而用域名就比較容易記住了逸寓。但是呢,計算機和人不一樣覆山,你要計算機去理解名稱竹伸,相對來說就比較困難了。計算機比較擅長處理一長串數(shù)字簇宽。為了解決這個問題勋篓,就有了DNS服務。DNS協(xié)議它是提供 通過域名 來查找IP地址魏割,或者逆向 從IP地址反查域名 的服務譬嚣。
五、HTTP與TCP钞它、IP和DNS的關系
最后我們通過一張圖來了解一下HTTP與TCP拜银、IP和DNS的關系,看看它們在通信的過程中各種發(fā)揮了什么作用遭垛。
我來拿我的博客來舉個例子:
首先是尼桶,我想訪問網(wǎng)站,將域名發(fā)送給DNS去解析耻卡,DNS解析后將網(wǎng)站的IP地址返回給客戶端疯汁,然后通過IP地址發(fā)起HTTP請求。HTTP此時的作用是 生成針對目標WEB服務器(我們這里指的是網(wǎng)站的服務器)的HTTP請求報文卵酪,然后將請求報文傳送給傳輸層幌蚊,此時為了方便通信,TCP會將HTTP請求報文 分割成報文段溃卡,這些報文段會有一個序號溢豆,這里的報文段哪一個先發(fā)送哪一個先到達,它們是按序傳送的瘸羡。只要建立起TCP連接漩仙,客戶端與服務器之間的報文交換就不會丟失,不會被破壞犹赖,也不會在接收時出現(xiàn)錯序队他。接著到了網(wǎng)絡層,此時IP協(xié)議的職責是峻村,搜索對方的地址麸折,一邊中轉(zhuǎn)一邊傳送。然后找到了服務器的位置粘昨,此時服務器的傳輸層中 TCP的職責是 接收到對方傳送過來的報文段后垢啼,對其進行重組,這里的重組是按序號進行重組的张肾。然后到了服務器的應用層芭析,HTTP會對客戶端請求的內(nèi)容進行處理。處理完后吞瞪,服務器同樣會利用TCP/IP通信協(xié)議向客戶端進行回傳響應馁启。最后客戶端收到響應后,將內(nèi)容輸出頁面顯示芍秆。即完成了一次HTTP事務惯疙。