前言
大家好,我是泰斗賢若如,一個專注于用大白話講解技術的號主,這次給大家分享計算機網(wǎng)絡原理的相關知識,我自認為文章內容已經(jīng)很通俗易懂了,祝您閱讀愉快!
一、計算機網(wǎng)絡概述
時代不同了,大家現(xiàn)在生活都好了,家家戶戶基本都有電腦,而且我們都習慣了使用電腦辦公,打打游戲,聊聊天等等。那我們一起來想一個場景:如果沒有了網(wǎng)絡,我們是不是就不能使用電腦進行聊天了呀。那網(wǎng)絡到底是如何幫助我們來完成網(wǎng)絡聊天的?下面我就跟大家聊聊計算機網(wǎng)絡到底是怎么回事兒。
了解我的讀者都知道,我習慣先用自己的語言解釋,后說官方定義。這回我和以往反著來,先說官方定義,再解釋:
計算機網(wǎng)絡是由通信介質將地理位置不同的且相互獨立的計算機連接起來,實現(xiàn)數(shù)據(jù)通信與資源共享。
我們假設有兩個獨立且毫不相關的計算機,一臺在青海,一臺在河南,想要進行數(shù)據(jù)傳輸(聊天),沒網(wǎng)是不行的。這個網(wǎng)指的就是互聯(lián)網(wǎng)( Internet )。這個 Internet 它是一個通信協(xié)議。什么是協(xié)議?打個比方,就好比我們打電話,在中國,中國有十幾億人,地大物博,全國各地都有自己的方言,還有些地方使用自己的民族語言,這時候想要良好的溝通就必須使用一個統(tǒng)一的標準,就是普通話。大家都講普通話,溝通起來就沒有問題了。那如果是不同國家進行溝通呢?我們可以選擇使用英語進行交流,那英語就是全世界國家通用的一個標準,計算機就好比是分布在全世界各個角落的人,計算機之間通話也要找一個統(tǒng)一的標準,這個標準就是 Internet 標準,又叫做 Internet 協(xié)議。
二、網(wǎng)絡介紹及隔壁老王的故事
先給大家講一個虛構版隔壁老王的故事:
有一個人叫隔壁老王,他有一個愛好就是看電影。有一天,這個隔壁老王想看一部電影,可是電腦里面存儲的電影太多了,他費了老大勁才從里面找到,覺得很不爽。于是他想,我能不能把所有電影做個分類,把同一種類型的電影放在同一個文件夾下,然后把所有的文件夾整合在一起,自己寫個瀏覽器軟件,把文件夾信息放到瀏覽器上,到時候找電影的時候就好找了,只要找到相應的文件夾直接點進去就能找到電影了。老王說干就干,沒多久就把所有的文件夾整理好了,然后把所有文件夾放到同一個頁面上,到時候他想點哪個就點哪個,So easy!(那些網(wǎng)站可能就是這樣來的)。
這回出來一個新人物,就叫小王吧(不是小王八),老王就是住在小王隔壁,有一天小王看到老王電腦上有那么多電影,就跟老王商量,能不能在他電腦上也弄個跟老王一樣的,讓他也看看。老王也不是個小氣的人,好東西就是要分享的嘛,想都沒想就答應了,給小王說在你電腦上插根線接到我電腦上,然后下載我這個軟件,直接訪問我的電腦就行了。小王很高興,他馬上回家按老王說的做,沒多久他的電腦上也能看老王電腦上的東西了。有了小王,就還會有小張,小李,互相插根網(wǎng)線,他們都能互相共享電影了。這樣,局域網(wǎng)也就產生了,就比如在一個公司或者一個學校用的網(wǎng)絡,都稱為局域網(wǎng)。那學校有很多呀,不同的學校用的局域網(wǎng)是不同的,不同的城市也有不同的局域網(wǎng),以局域網(wǎng)為單位,散布在一個區(qū)或一個城市的各個局域網(wǎng)加一起叫城域 網(wǎng),然后全世界所有城市的城域網(wǎng)加一起就叫廣域網(wǎng)。
過了一段時間,老王去小王家,看到小王電腦里的電影比自己的還多,而且還好看,然后老王跟小王說,把你的這些電影給我一份吧,我也想看看。不用想,小王肯定立馬答應了,說你自己弄吧,想看哪個隨便看。姜還是老的辣,老王想到一個好辦法,他跟小王說,我再找一臺電腦,把我倆電腦上的資源全部放到那臺電腦里,我倆只要在那個電腦上插根線連到自己電腦上,就都能訪問那臺電腦上的東西了,這樣豈不是很方便。小王一拍腦門,呀!我咋就沒想到,那還不趕緊的。老王另外找了一臺電腦,然后他倆把自己的電腦和那臺電腦用線連起來,再把自己電腦里的所有資源全傳進那臺電腦中,最后他倆就能共享資源了。(那臺電腦就是服務器)
總結一下就是:
網(wǎng)絡按地域分類:根據(jù)參照物不同、類型不同分為
局域網(wǎng):一個公司、一個家庭、一個學校······
城域網(wǎng):一個地區(qū)、一個城市······
廣域網(wǎng):一個國家、全世界······
三、互聯(lián)網(wǎng)協(xié)議是如何分布和設計的
我在上面說了 Internet 協(xié)議,互聯(lián)網(wǎng)協(xié)議按照功能的不同,分為 osi 七層, tcp / ip 五層, tcp / ip 四層協(xié)議。如下圖:
osi 的七層協(xié)議體系結構的概念清楚,理論也比較完善,但它既復雜又不實用, ISO 制定的 osi 協(xié)議參考模型的過于龐大、復雜招致了許多批評。于此對照,由技術人員自己開發(fā)的 TCP / IP 協(xié)議獲得了更為廣泛的應用。因此,我們只需要弄明白 TCP / IP 五層協(xié)議 就能了解和明白計算機最底層的通信是怎么回事。
四、TCP/IP五層協(xié)議
如圖,從最下方的物理層到最上方的應用層,對于我們用戶而言,最直接的是應用層。從上到下每一層都依賴于下一層,所以我從最下一層開始給大家講解:
注意:每一層都運行著一個特定的協(xié)議,共同組合成互聯(lián)網(wǎng)協(xié)議
一、物理層
物理層主要是由雙絞線、光纜、電纜、無線電波組成,其作用很簡單,就是連接不同的計算機,并傳遞底層電信號,高電壓:1 ,低電壓:0 。
二、數(shù)據(jù)鏈路層
我們從物理層上接收或者發(fā)送單純的 0 、 1 是沒有意義的,為什么呢?想想哈,我想給女朋友發(fā)送一句話:“你好漂亮”,那我們要把“你好漂亮”轉換成 01 之后,交給網(wǎng)卡,網(wǎng)卡就懵逼了,發(fā)給誰 ???不知道。那怎么辦?必須要確定數(shù)據(jù)發(fā)給誰。就像我們的快遞一樣,是不是在外層包裝上有商家地址和個人地址,這樣我們不管是發(fā)還是收,都能準確定位了。網(wǎng)絡傳送數(shù)據(jù)也一樣,我們就在數(shù)據(jù)前面加上目標地址,為了能接收到回信,也要把自己的地址也加上。但是,如果數(shù)據(jù)和地址放在一起,又亂了,比如,我給你一堆 01 ,1010101000101010101 ,你也分不清哪里是數(shù)據(jù),哪里是地址。這時我們就要對要發(fā)送的 01 進行分組,規(guī)定前面 xxx 位是地址,后面 xxx 位是數(shù)據(jù),并且,大家想互相都能通信,就必須都遵守這樣的規(guī)則(協(xié)議),這個協(xié)議叫以太網(wǎng)協(xié)議。在以太網(wǎng)協(xié)議出現(xiàn)之前,各個公司都有自己的分組規(guī)則,后來都統(tǒng)一使用以太網(wǎng)協(xié)議了。
以太網(wǎng)協(xié)議規(guī)定:一組電信號構成一個數(shù)據(jù)包,叫幀,每一幀分為報頭( head )和數(shù)據(jù)( data ) 兩部分。
報頭(head):固定 18 個字節(jié)
發(fā)送者/源地址:6 個字節(jié)
接收者/目標地址:6 個字節(jié)
數(shù)據(jù)類型:6 個字節(jié) 數(shù)據(jù)( data ):最短 46 個字節(jié),最長 1500 字節(jié) 數(shù)據(jù)包的具體內容(發(fā)送給女朋友的話/快遞貨物)
以太網(wǎng)協(xié)議中的地址叫 MAC 地址, MAC 地址是每臺計算機唯一的物理地址,是被寫在網(wǎng)卡上的。以太網(wǎng)協(xié)議規(guī)定,每一臺接收和發(fā)送數(shù)據(jù)的設備必須要裝有網(wǎng)卡,負責發(fā)送和接收數(shù)據(jù)的設備,發(fā)送端和接收端的地址,指的就是網(wǎng)卡的地址,即 MAC 地址。
MAC地址
MAC 地址是每個網(wǎng)卡在出廠的時候,由各個廠商直接燒錄在網(wǎng)卡上的,而且,這個地址必須是全世界唯一的。MAC 地址是由 12 位 16 進制的數(shù)字表示(前六位是廠商編號,后六位是流水線號),這樣不同的廠商之間就不會產生沖突了,自己生產自己的就好了。
交換機
在這給大家介紹一個東西,我們說兩個電腦要通信要先連根線,但是如果電腦多了之后,電腦間通信連的線也就多了,這樣太亂了,我介紹的這個東西就是交換機,它是負責組件局域網(wǎng),研究的是 MAC 地址,它有什么用你看下面中的接口就知道了
有了 MAC 地址,以太網(wǎng)就可以進行工作了.理論上講,我們可以和世界上的每一臺連接了互聯(lián)網(wǎng)的計算機進行通信了,此時通信的方案是:廣播
廣播
廣播又是怎么一回事?其實廣播的方式很原始,基本通信就是靠吼。就像你想跟女朋友求婚一樣,你會大喊:“ xxx ,嫁給我吧”,旁邊能聽到這句話的人有很多,但是只有你女朋友會回復你。其他人會把你當傻D一樣看待。沒錯,廣播就是這樣進行通信的。首先組織好了一個數(shù)據(jù)包之后,把這個數(shù)據(jù)包通過電信號發(fā)出去,這時整個網(wǎng)絡上所有的人都會收到你發(fā)的這條數(shù)據(jù),然后看看這個數(shù)據(jù)是不是自己的。如果不是就當他不存在,如果是,就接收。雖然效率低點,但畢竟能通信了。
廣播帶來什么問題呢?如果是在一個小的網(wǎng)絡環(huán)境里。比方說,你們宿舍幾個人,一起玩 CS ,沒問題,你喊一嗓子,你室友也能回應你,也就效率低點。但是如果你連接到全世界的互聯(lián)網(wǎng)上,還使用廣播的方式來通信,就不是效率問題了,而是一個巨大的通信災難。全世界 60 多億人,每個人吼一嗓子,每個人發(fā)送一條信息,那每個人都會收到 60 多億條信息,網(wǎng)絡瞬間癱瘓,這種問題被稱為廣播風暴,那如何解決呢?
三、網(wǎng)絡層
首先,我們要了解一個事情,世界大網(wǎng)絡(廣域網(wǎng))是由一個一個的互相隔離的小型局域網(wǎng)(子網(wǎng))組成的,不同的局域網(wǎng)之間使用路由來連接。
路由器
上面說的交換機是負責組建局域網(wǎng),研究的是 MAC 地址,而路由器是負責組件廣域網(wǎng),研究的是 IP 地址,這個 IP 地址下面我再解釋。
剛才說的廣播,只能在一個局域網(wǎng)內進行通信,不可以在大網(wǎng)絡上進行廣播,有了路由器,就避免了廣播風暴的問題。每個局域網(wǎng)被稱為一個廣播域,局域網(wǎng)和局域網(wǎng)之間使用路由的方式進行通信(向不同的廣播域/子網(wǎng)發(fā)送數(shù)據(jù)包),用路由器把一個局域 網(wǎng)里的所有計算機劃分成一個個子網(wǎng)。
現(xiàn)在大家先想一想生活中,如果是之前說的廣播,就相當于在一間教室里你正在上課,你要給某個女孩傳紙條,那你要在紙條外面寫上你和你要傳的女孩的名字,再在里面寫上你要寫的話,寫好后折起來,你和女孩的名字在外,內容在內,然后讓同學一個一個幫你傳,每個同學在傳的時候都會看外面寫的名字,如果不是他,就繼續(xù)傳,直到傳到的人是你寫的那個女孩為止。那這間教室就相當于一個局域網(wǎng)。好,現(xiàn)在我們要實現(xiàn)局域網(wǎng)和局域網(wǎng)之間的通信,比如此時位于青海的你要給河南的朋友送東西,你不可能用廣播的方式了,你只能快遞,這個青海和河南以及還有很多不同的省份是我國的土地劃分中的一部分,每一個省也可以看作是一個個局域網(wǎng),那在網(wǎng)絡中,我國就相當于廣域網(wǎng),那不同的局域網(wǎng)是如何劃分的呢?MAC 地址是沒辦法區(qū)分的,因為 MAC 地址上只有廠商的流水號,這就引出我要說的網(wǎng)絡層,網(wǎng)絡層引出了一套新的地址來區(qū)分不同的局域網(wǎng)/子網(wǎng),這一套地址就是網(wǎng)絡地址。
規(guī)定網(wǎng)絡地址的協(xié)議叫 IP 協(xié)議,它定義的地址叫 IP 地址。其實跟我國的省份名差不多,繼續(xù)說送快遞,你要把送的東西包裝好,在外面寫上你自己的地址和省份地址,還有朋友的地址和省份地址,交給青海的快遞公司,然后青海的快遞公司轉交給河南的快遞公司,最后由河南的快遞公司分配給你朋友,你朋友就收到快遞了。在這有兩點需要注意: