亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

作者: 張小云的博客

出處:https://www.cnblogs.com/zhangweicheng/p/13388701.html

我們網(wǎng)上沖浪也沖了這么多年,也該上岸好好看看這些浪的形狀了。

1. 從一個(gè)網(wǎng)址了解浪來(lái)浪去#

 我們知道計(jì)算機(jī)之間的通過(guò)其實(shí)都是通過(guò)IP+端口的形式,但是我們平時(shí)訪問(wèn)的時(shí)候根本就沒(méi)涉及到這兩個(gè)東西,還是能訪問(wèn)到資源,為啥呢?這得問(wèn)問(wèn)我們神奇的DNS

  1. 首先,舉個(gè)例子,我們輸入www.bilibili.com,這個(gè)時(shí)候需要通過(guò)DNS將其轉(zhuǎn)化為IP地址才能繼續(xù)訪問(wèn),其流程大概是這樣的:
浪里來(lái)浪里去!網(wǎng)絡(luò)協(xié)議如何成就網(wǎng)上沖浪?

 

從當(dāng)前的瀏覽器中查詢是否存在當(dāng)前域名,如果有則返回其對(duì)應(yīng)的IP地址,否則的話向本機(jī)操作系統(tǒng)中查詢。操作系統(tǒng)如果有,則返回,瀏覽器將其緩存起來(lái)之后返回;如果操作系統(tǒng)查詢不到的話,那么則向路由器緩存上查詢。同上,有返回并且緩存到操作系統(tǒng),操作系統(tǒng)返回并緩存到瀏覽器;無(wú)則向本地服務(wù)器請(qǐng)求。本地服務(wù)器就是運(yùn)營(yíng)商,比如說(shuō)電信或者移動(dòng)。操作過(guò)程同上,還沒(méi)有的話就要向根服務(wù)器請(qǐng)求了。根服務(wù)器就是終點(diǎn)站了,操作跟上面一樣,如果還沒(méi)有的話,服務(wù)器就要請(qǐng)你檢查你的域名了。

okay,上面繞了一圈之后我們現(xiàn)在拿到了B站的IP:假設(shè)為139.159.246.60,接下來(lái)就可以訪問(wèn)了。

 

 是不是還少點(diǎn)了什么?哦,是了,少了端口,那端口咋辦呢?不用辦,每個(gè)協(xié)議都有默認(rèn)的端口,如果你不輸入端口號(hào)的話就會(huì)使用默認(rèn)的,例如http協(xié)議默認(rèn)80,而https默認(rèn)443,所以實(shí)際上輸入www.bilibili.com實(shí)際上請(qǐng)求的是139.159.246.60:80,也就是機(jī)器IP地址為139.159.246.60上的80端口的程序,所以B站服務(wù)器的服務(wù)要占用監(jiān)聽(tīng)80端口,當(dāng)然那邊肯定還做了負(fù)載均衡,這就不扯了。

  1. 現(xiàn)在知道具體地址地址還需要做什么呢,還需要建立連接,要保證等下進(jìn)行數(shù)據(jù)傳輸?shù)臅r(shí)候是okay的,所以這邊會(huì)跟服務(wù)器建立TCP連接,完成之后進(jìn)入下一步。
  2. 連接okay了,瀏覽器這邊就組裝好請(qǐng)求頭準(zhǔn)備發(fā)送請(qǐng)求,請(qǐng)求頭包含了一些重要的信息如請(qǐng)求的方式、代理、請(qǐng)求格式,接收格式等,組裝完成后發(fā)送。
  3. 服務(wù)器收到請(qǐng)求解析之后包裝所需信息返回。
  4. 客戶端(一般是瀏覽器或者App)這邊接收到之后進(jìn)行渲染,然后就是我們平時(shí)看到的圖形界面了。
  5. 最后根據(jù)是否保持連接來(lái)決定是否關(guān)閉。

這樣一次對(duì)B站的訪問(wèn)就完成了。但是這都是表面,我們甚至都不知道浪里的是水還是鹽,計(jì)算機(jī)究竟是如何通過(guò)網(wǎng)絡(luò)來(lái)通信的,接下來(lái)讓我們走進(jìn)《網(wǎng)絡(luò)》。

Top

2. 網(wǎng)絡(luò)協(xié)議#

 上面說(shuō)到一個(gè)請(qǐng)求的完整路徑,但那只是站在應(yīng)用層的角度來(lái)看的,而在網(wǎng)絡(luò)中應(yīng)用層只是屬于某個(gè)模型的一部分。

 平時(shí)所說(shuō)的網(wǎng)絡(luò)模型有三種:OSI七層、TCP/IP五層、TCP/IP四層。這三種模型都是概念模型,注意是概念模型,也就是說(shuō)實(shí)現(xiàn)的方式并不是固定的,三兄弟來(lái)亮個(gè)相吧。

浪里來(lái)浪里去!網(wǎng)絡(luò)協(xié)議如何成就網(wǎng)上沖浪?

 

 這幾層背起來(lái)還不用一分鐘,但那沒(méi)用,就跟名字一樣,需要的是靈魂,而不是枯燥的文字,所以需要理解。

七層模型#

七層懂了,四、五層還難嗎。 

我們知道數(shù)據(jù)在計(jì)算機(jī)底層最終都會(huì)變成0和1,那么可能有人問(wèn)了,現(xiàn)在計(jì)算機(jī)那么牛逼,底層給整個(gè)2或者3出來(lái)總可以吧,老是糾結(jié)01干嘛?說(shuō)實(shí)話,實(shí)在是辦不到。

 

 計(jì)算機(jī)通過(guò)電纜的電信號(hào)來(lái)實(shí)現(xiàn)通信,而電信號(hào)只有高低兩種,所以也就分別對(duì)應(yīng)計(jì)算機(jī)數(shù)字的1和0,這也是物理層的作用,將數(shù)字轉(zhuǎn)化為電信號(hào)發(fā)給其他計(jì)算機(jī)。

物理層:將接收到的數(shù)據(jù)從1和0轉(zhuǎn)化成高低信號(hào)發(fā)送給其他計(jì)算機(jī)。

但發(fā)是發(fā)出來(lái)了,其他計(jì)算機(jī)怎么知道你阿巴阿巴在說(shuō)什么呢,不懂也沒(méi)意義啊。所以需要定義一些規(guī)則,例如發(fā)送32位,前8位是文件信息,后24位才是數(shù)據(jù),這樣就知道了,這種規(guī)則就叫做協(xié)議。但是協(xié)議人人都可以定,一千個(gè)哈姆雷特就有一千種協(xié)議,這么多個(gè)哈姆雷特有點(diǎn)滲人,所以需要一個(gè)標(biāo)準(zhǔn)來(lái)進(jìn)行統(tǒng)一,這才出現(xiàn)了以太網(wǎng)協(xié)議。

以太網(wǎng)協(xié)議的內(nèi)容大致為:

每組信號(hào)構(gòu)成一個(gè)數(shù)據(jù)包,即"幀"。每個(gè)數(shù)據(jù)包都包含兩個(gè)部分。head:固定18個(gè)字節(jié),包含發(fā)送者、接收者和數(shù)據(jù)類型。數(shù)據(jù)體data:真正的數(shù)據(jù)。

有了統(tǒng)一的標(biāo)準(zhǔn),現(xiàn)在知道發(fā)送的是什么了,但是怎么知道要發(fā)給誰(shuí)呢?那就是通過(guò)mac地址,每臺(tái)計(jì)算機(jī)都有著世界上獨(dú)一無(wú)二mac地址,通過(guò)這個(gè)地址能夠標(biāo)識(shí)唯一的一臺(tái)計(jì)算機(jī),將這當(dāng)做地址再適合不過(guò)了。okay,現(xiàn)在發(fā)送內(nèi)容有了,發(fā)給誰(shuí)也知道了,那咋發(fā)呢?能不能通過(guò)一條準(zhǔn)確的通道能夠直達(dá)接收者呢?

 

 計(jì)算機(jī)之間的通信方式是通過(guò)原始的廣播來(lái)實(shí)現(xiàn)的。

 

 什么意思呢?意思就是說(shuō),我要發(fā)送一條消息,這條消息的頭部包含了是誰(shuí)發(fā)的,發(fā)給誰(shuí)的,那么我將這條消息發(fā)給同一個(gè)局域網(wǎng)下的所有計(jì)算機(jī),他們收到了就看下是不是發(fā)給自己的,如果是則進(jìn)行響應(yīng),否則就不管。

 可能有人會(huì)質(zhì)疑,"老哥,照你這么說(shuō),那全世界的計(jì)算機(jī)要通信的話不就得都在一個(gè)局域網(wǎng)內(nèi),這樣的話,不就可以聯(lián)機(jī)打CS了?" 我沒(méi)說(shuō)過(guò)這句話,周樹(shù)人也沒(méi)說(shuō)過(guò)。確實(shí),如果只按照上面的方式,全世界的計(jì)算機(jī)需要進(jìn)行通信的話必須要求在同一個(gè)局域網(wǎng)內(nèi),但這是不可能的,即便可能也是一種災(zāi)難。所以需要更好的方法,這時(shí)候網(wǎng)絡(luò)層IP協(xié)議就登場(chǎng)了,IP協(xié)議的主要作用有兩個(gè):

給每臺(tái)計(jì)算機(jī)分配IP地址和路由。判斷兩臺(tái)計(jì)算機(jī)是否在同一局域網(wǎng)內(nèi):計(jì)算的方式大致為兩個(gè)IP地址跟子網(wǎng)掩碼做于(&)運(yùn)算,如果結(jié)果相同就在同一子網(wǎng)內(nèi),否則則不在。(子網(wǎng)掩碼有興趣可以自己搜一下)

 嗯?你說(shuō)的這個(gè)IP,它跟通信所需要的mac有關(guān)系嗎?計(jì)算機(jī)之間是通過(guò)mac地址識(shí)別的,現(xiàn)在只有IP地址是對(duì)不上號(hào)的,所以我們需要一個(gè)轉(zhuǎn)換器,這個(gè)轉(zhuǎn)換器叫做ARP協(xié)議(OSI七層中屬于鏈路層),ARP協(xié)議的作用就是將IP地址轉(zhuǎn)化為mac地址。有了這個(gè)協(xié)議,加上之前的那些,全世界的計(jì)算機(jī)都可以進(jìn)行通信啦。鼓掌!鼓掌!鼓掌!

 但是!不好意思,我還是得說(shuō)但是,這樣的話計(jì)算機(jī)之間貌似只能一對(duì)一,我們平時(shí)一臺(tái)計(jì)算機(jī)肯定不止只運(yùn)行一個(gè)程序,像下面這樣都得有幾個(gè)了。

浪里來(lái)浪里去!網(wǎng)絡(luò)協(xié)議如何成就網(wǎng)上沖浪?

 

 肯定還有東西將其拆得更細(xì),從而給程序定位,這時(shí)候傳輸層的端口協(xié)議TCPUDP就上線了,TCPUDP提供了端口的概念,這樣我們通過(guò)ip轉(zhuǎn)mac確定一臺(tái)計(jì)算機(jī),再通過(guò)端口確定具體的一個(gè)程序,從而實(shí)現(xiàn)端對(duì)端的通信,一臺(tái)計(jì)算機(jī)運(yùn)行多個(gè)程序,程序可以跟另一臺(tái)計(jì)算機(jī)的程序進(jìn)行通信,瞬間形成N×N。到了這一層網(wǎng)絡(luò)協(xié)議的基本就結(jié)束了,往上還有三層可以理解為輔助和加強(qiáng)作用。

會(huì)話層:管理TCP連接、流量控制等。

表示層:格式、字符、加密等翻譯工作和轉(zhuǎn)化。

應(yīng)用層:展示給用戶的東西,例如HTTP協(xié)議就是一個(gè)頁(yè)面,F(xiàn)TP用于傳輸?shù)取?/p>

Top

3. 小結(jié)#

 本文的敘述方式比較口語(yǔ)化,但如果能簡(jiǎn)單理解那就足夠了。首先一開(kāi)始講輸入一個(gè)網(wǎng)址發(fā)生的事情,接而引出下方的網(wǎng)絡(luò)協(xié)議,在網(wǎng)絡(luò)協(xié)議中從底層物理層的電信號(hào)到最上層應(yīng)用層的http協(xié)議,大致的講述模式為:當(dāng)前的問(wèn)題—>為了解決當(dāng)前的問(wèn)題需要怎么做 的這種模式,相信理解起來(lái)并不困難。 

分享到:
標(biāo)簽:協(xié)議 網(wǎng)絡(luò)
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定