絡(luò)架構(gòu)的計算機網(wǎng)絡(luò)入門教程。)
引言很多朋友在學習計算機網(wǎng)絡(luò)時一上來就會被教材或者網(wǎng)課老師灌輸各種概念協(xié)議學習完后會非常很懵逼各層的協(xié)議到底有什么用我在一臺手機的應(yīng)用程序上發(fā)送消息給另外一臺手機相應(yīng)的應(yīng)用程序過程中發(fā)生了什么事情依然覺得很抽象而且很多網(wǎng)絡(luò)底層協(xié)議在面試中并不會被提及此篇博文篩掉了晦澀難懂的不重要的協(xié)議并通俗易懂的讓你理解網(wǎng)絡(luò)底層傳輸在此基礎(chǔ)上詳細講述常用的端到端的高層協(xié)議。其實課本和網(wǎng)課傳授各種網(wǎng)絡(luò)概念的時候默認我們對網(wǎng)絡(luò)是有一定的了解的反而其實大部分同學對網(wǎng)絡(luò)是沒有一點概念的如果這時候直接去看相關(guān)專業(yè)書籍反而會難以接受這會大大降低我們的學習效率??赐晗旅娴木W(wǎng)絡(luò)整體架構(gòu)帶著這些架構(gòu)再去接觸專業(yè)書籍反而會輕松不少。當然為了照顧小白里面很多基礎(chǔ)的問題有些知識點如果你知道可以通過目錄直接跳過。網(wǎng)絡(luò)數(shù)據(jù)的傳輸形式在我們?yōu)g覽網(wǎng)頁接收消息時會接收各種各樣的信息那這些信息是通過怎樣的形式傳輸?shù)哪匾?、信息、?shù)據(jù)和信號在接觸網(wǎng)絡(luò)數(shù)據(jù)傳輸之前先了解信息、數(shù)據(jù)和信號的概念信息:信息是我們可以感知和不感知、已知和未知的所有數(shù)據(jù)形式、圖像的集合。數(shù)據(jù):數(shù)據(jù)是主機或記錄信息按照一定規(guī)則排列組合的物理符號。它可以是數(shù)字、文本、圖像也可以是計算機代碼??梢詮膶嶒炛胁杉瘮?shù)據(jù)總結(jié)出通過實驗觀察到的規(guī)律和現(xiàn)象。信號:信號是傳遞信息的工具和信息載體如光信號、聲音信號、電子信號等其本身在某種程度上具有特定的意義我們將能夠通過特殊的方法來識別其意義。如果你不想看上面的概念或者覺得很抽象我可以給你舉兩個例子你在打電話電話線要有【信號】交換機交換語音【數(shù)據(jù)】而你和接電話的人交換的是【信息】。信息是你要表達的意思數(shù)據(jù)就是你在表達過程中被記錄下來的語音通過某些操作將語音轉(zhuǎn)換為電信號、光信號、波等再通過線路或者電磁波等無線介質(zhì)傳播。你通過微信問朋友“你在哪”你想問他在哪就是你要傳遞的信息?!澳阍谀摹钡奈淖只蛘呤蔷幊陶Z言中的字符串或者我們通過將其編碼轉(zhuǎn)換為對應(yīng)二進制語言他們都可以叫做數(shù)據(jù)。將二進制語言轉(zhuǎn)換為高低不平的電流通過線路傳輸給另外一臺設(shè)備我設(shè)備所發(fā)送的、或者另外一臺所收到的電流信息就是信號。當然信息和數(shù)據(jù)的意義很寬泛一張圖片、一段文字有時候即可以叫信息也可以叫數(shù)據(jù)。在有些論文拋出的概念中數(shù)據(jù)和信號本身也可以叫做信息。如果實在麻煩,看下面這張圖你可以這樣理解二、數(shù)據(jù)和信號的轉(zhuǎn)換1、圖片、文字、音頻與二進制的轉(zhuǎn)換無論是計算機本身存儲數(shù)據(jù)還是網(wǎng)絡(luò)傳輸都會不可避免的使用二進制那他們是怎么轉(zhuǎn)換為二進制的呢1文字二進制的轉(zhuǎn)換在計算機中通常會使用字符集的編碼方式將字符轉(zhuǎn)換為二進制。常見的英文字符集編碼為ASCII和常見的中文字符集編碼UTF-8用于包含中文字符在內(nèi)的多語言字符和UniCode。假設(shè)我們要將英文單詞 Hello 轉(zhuǎn)換為二進制。首先查找每個字符的ASCII碼然后將ASCII碼轉(zhuǎn)換為二進制。H 的ASCII碼是 72轉(zhuǎn)換為二進制01001000e 的ASCII碼是 101轉(zhuǎn)換為二進制01100101l 的ASCII碼是 108轉(zhuǎn)換為二進制01101100l 的ASCII碼是 108轉(zhuǎn)換為二進制01101100o 的ASCII碼是 111轉(zhuǎn)換為二進制01101111因此Hello 轉(zhuǎn)換為二進制為01001000 01100101 01101100 01101100 01101111。假設(shè)我們要將中文字符 你好 轉(zhuǎn)換為二進制。首先查找每個字符的UTF-8編碼然后將UTF-8編碼轉(zhuǎn)換為二進制。你E4 BD A0 二進制11100100 10111101 10100000 好E5 A5 BD 二進制11100101 10100101 10111101因此你好 轉(zhuǎn)換為二進制為11100100 10100000 10000000 11100100 10100000 10000010。2圖像二進制的轉(zhuǎn)換圖像通常由各個像素點組成。像素是圖像的最小單元它是圖像中最小的可操作的點。每個像素都包含有關(guān)其在圖像中位置的信息以及關(guān)于其顏色的信息。圖像的分辨率描述了圖像中有多少個像素通常以水平和垂直方向的像素數(shù)表示。例如一個分辨率為1920x1080的圖像意味著它有1920個像素寬和1080個像素高。一個像素通常由1位、8位、24位組成1位顏色深度最簡單的情況每個像素只有1位通常用于黑白圖像。這時每個像素只能是黑或白對應(yīng)二進制的0或1。8位顏色深度通常用于灰度圖像每個像素用8位表示灰度級別。這允許256種不同的灰度值從0黑色到255白色。24位顏色深度這是常見的真彩色深度一共有三種顏色通道分別是紅、黃、藍我們小時候都聽說過每種顏色都可以由紅、黃、藍三種顏色構(gòu)成。常見的 24 位 RGB 圖像包含紅、綠、藍三個通道每個通道通常占 8 bit合計 24 bit因此可以表示約 2^{24}1677 萬種顏色。3音頻二進制的轉(zhuǎn)換音頻文件是通過將聲音信號聲音信號是連續(xù)的模擬信號的波形轉(zhuǎn)換為數(shù)字形式來表示的這個過程涉及到模數(shù)轉(zhuǎn)換Analog-to-Digital Conversion簡稱ADC其中模擬信號聲音波形被采樣并轉(zhuǎn)換為數(shù)字信號。2、二進制數(shù)據(jù)與信號的轉(zhuǎn)換1數(shù)字數(shù)據(jù)編碼為數(shù)字信號數(shù)字信號是以離散的形式表示的信號它是由一系列離散的數(shù)值構(gòu)成的。這些數(shù)值通常采用二進制形式即由 0 和 1 組成。我們以電信號為例在一定頻率內(nèi)我們以高電伏為1低電伏為0。數(shù)字數(shù)據(jù)編碼為數(shù)字信號一共有六種方式非歸零編碼NRZ)歸零編碼反向不歸零編碼曼切斯特編碼差分曼切斯特編碼5B/4B編碼由于計算機網(wǎng)絡(luò)課本物理層會詳細講述內(nèi)容我們以非歸零編碼NRZ)為例在信號傳輸過程中我們可以粗虐將得到的數(shù)字信號的橫軸看作時間縱軸看作電壓就可以傳輸我們需要的信號了當然實際的傳輸過程并沒有這么簡單我舉這個例子方便大家理解2數(shù)字信號調(diào)制為模擬信號上文在音頻二進制的轉(zhuǎn)換我們提到聲音是波的形式因此在傳輸過程中有的時候我們需要將數(shù)字轉(zhuǎn)換為波或者波轉(zhuǎn)換為數(shù)字調(diào)幅2ASK)碼元0對應(yīng)沒有振幅碼元1對應(yīng)有振幅振幅可以理解為波在y軸上的高低我們也可以將碼元0對應(yīng)低振幅碼元1對應(yīng)高振幅。調(diào)頻2FSK:碼元0對應(yīng)低頻碼元1對應(yīng)高頻。調(diào)相2PSK碼元1對應(yīng)一種波形碼元0對應(yīng)另一種波形調(diào)相可以理解為調(diào)整波的起始位置。3模擬信號調(diào)制為數(shù)字信號關(guān)于波轉(zhuǎn)換為數(shù)字的過程最典型的就是對音頻信號進行編碼的脈碼調(diào)制PCM它主要包括三個部分抽樣、量化、編碼這一部分不詳細闡述。三、信號的傳輸有線傳輸和無線傳輸是兩種常見的信息傳輸方式它們在通信領(lǐng)域有著不同的特點和應(yīng)用有線傳輸是通過物理導(dǎo)體如電纜、光纜、同軸電纜物理導(dǎo)體這里不詳細介紹來傳輸信號的方式例子如電腦網(wǎng)絡(luò)例如以太網(wǎng)無線傳輸是通過空氣中的電磁波來傳輸信號的方式不需要物理導(dǎo)體連接例子如移動通信、衛(wèi)星通信無線局域網(wǎng)Wi-Fi、藍牙技術(shù)、無線電和電視廣播。傳輸形式總結(jié)了解完上面知識后對于下面這圖相信大家對信息的傳輸過程有一定的掌握和理解但這還是計算機網(wǎng)絡(luò)的開始。我們在一端向另一端發(fā)送消息的時候電腦在互聯(lián)網(wǎng)中怎么樣定位到另一臺電腦的如果我是在微信發(fā)的消息另一臺收到消息的電腦為什么是微信程序收到消息而不是QQ下面我將從網(wǎng)絡(luò)的發(fā)展入手簡單易懂的講清楚每層網(wǎng)絡(luò)架構(gòu)計算機點到點的網(wǎng)絡(luò)架構(gòu)數(shù)據(jù)的傳輸過程上面提到我們在一端向另一端發(fā)送消息的時候電腦在互聯(lián)網(wǎng)中怎么樣精準定位到另一外一臺電腦的下面筆者將簡單易懂的介紹當今常見的計算機網(wǎng)絡(luò)架構(gòu)。四、來設(shè)計一下簡單的網(wǎng)絡(luò)架構(gòu)吧給你兩臺電腦使兩臺電腦之間能夠互相通信你會怎么去設(shè)計呢很簡單將兩臺電腦之間連接一根線就可以了我們讓這根線傳遞具有高低電伏的電信號就能讓兩臺電腦傳遞消息但是我們發(fā)現(xiàn)電腦越多這個網(wǎng)絡(luò)就會越麻煩我們要讓每臺電腦兩兩通信即每個電腦都要互相連接有n臺電腦我們就需要n?(n?1)/2條線?五、轉(zhuǎn)發(fā)集線器與物理層的引入1、轉(zhuǎn)發(fā)的思想上面考慮多臺電腦之間直接連接傳輸消息時可能會面臨繁瑣的問題。為了解決這個問題我們可以引入一種網(wǎng)絡(luò)設(shè)備即集線器Hub。集線器是一種最基本的網(wǎng)絡(luò)設(shè)備它能夠?qū)⑦B接到它上面的多臺電腦連接起來使每臺電腦都能夠收到發(fā)送給集線器的消息。集線器就是能做到該功能的最底層網(wǎng)絡(luò)設(shè)備之一但是集線器很傻他收到消息時會同時把消息發(fā)送給所有設(shè)備包括發(fā)送該消息的設(shè)備。在有6臺電腦的網(wǎng)絡(luò)中1號電腦轉(zhuǎn)發(fā)消息給集線器Hub集線器收到消息后會同時轉(zhuǎn)發(fā)1、2、3、4、5、6號電腦。在這種情況下1號電腦發(fā)送信號的同時如果二號也發(fā)送消息很容易造成信號沖突導(dǎo)致信號疊加數(shù)據(jù)受損因此我們將一個集線器及其連接的電腦的結(jié)構(gòu)叫做一個沖突域。集線器屬于物理層的設(shè)備我們也可以將這個結(jié)構(gòu)看作簡單只有物理層計算機網(wǎng)絡(luò)結(jié)構(gòu)。下面我簡單的引入集線器的概念2、集線器集線器Hub是計算機網(wǎng)絡(luò)中的一種基礎(chǔ)網(wǎng)絡(luò)設(shè)備屬于物理層設(shè)備。其主要作用是將多個網(wǎng)絡(luò)設(shè)備連接在一起形成一個共享的物理介質(zhì)通常是電纜或光纖以便它們可以在局域網(wǎng)LAN中進行通信。以下是集線器的一些基本特點物理層設(shè)備集線器工作在OSI模型的物理層主要負責傳輸比特流而不涉及幀、數(shù)據(jù)包或網(wǎng)絡(luò)協(xié)議的內(nèi)容。廣播集線器是一個廣播設(shè)備當它接收到一個數(shù)據(jù)幀時會將該幀復(fù)制到所有連接的端口使所有設(shè)備都能收到相同的消息。無智能集線器對數(shù)據(jù)幀的內(nèi)容一無所知不了解目標地址也不進行地址學習。它只是簡單地將幀從一個端口復(fù)制到其他端口不進行任何過濾或選擇性傳輸因此比低效。沖突域由于廣播特性和集線器的特性一臺設(shè)備發(fā)送消息時集線器所連接的所有線路都會被占用。因此集線器會創(chuàng)建一個沖突域collision domain意味著如果兩個設(shè)備同時嘗試發(fā)送數(shù)據(jù)可能會發(fā)生沖突導(dǎo)致數(shù)據(jù)碰撞和傳輸錯誤??偨Y(jié)一下集線器物理層設(shè)備特點就是只負責廣播轉(zhuǎn)發(fā)、沒有智能、并形成一個沖突域的設(shè)備。六、存儲標識協(xié)議交換機與數(shù)據(jù)鏈路層的引入集線器只會無腦將消息轉(zhuǎn)發(fā)給別人但是我們并不知道這消息是發(fā)送給誰的只好發(fā)送給所有設(shè)備因此占用所有的鏈路并讓不該收到計算機收到了這條消息。交換機完美的解決了這個問題大大提高了鏈路的利用率。1、通過存儲、標識、協(xié)議的思想引入一個簡單的網(wǎng)絡(luò)模型我們在寄包裹的時候需要將我們需要寄送的信息地址、寄件人、收件人填寫在快遞單上并將快遞單貼在快遞上一起發(fā)出去這就是標識的思想??爝f單上填寫信息地址、寄件人、收件人必須遵循某種規(guī)范比如地址必須是什么省什么市什么縣寄件人、收件人必須是可讀的名字這種規(guī)范就叫做協(xié)議信息填寫必須服從協(xié)議的內(nèi)容才能送到指定地點。根據(jù)你填寫的地點信息驛站通過驛站存儲的樞紐信息便知道你的快遞下一個轉(zhuǎn)存點是哪里這便是存儲。我們模仿的送快遞思想可以建立一個簡單的網(wǎng)絡(luò)傳輸模型標識在一個有八臺電腦的局域網(wǎng)中每一臺電腦都有一個標識分別是0000000100100011。0000發(fā)送信息“a”給0001“a”這就我的快遞“a”轉(zhuǎn)換為二進制就是01100001。協(xié)議在這個局域網(wǎng)中我規(guī)定一個協(xié)議傳輸?shù)臄?shù)據(jù)和信號后八位為標識前四位發(fā)件人后四位為收件人因此我們可以得到一個標識00000001這個標識就是我們的快遞單。我們把快遞單貼到快遞上就得到0110000100000001我們再將這個信號轉(zhuǎn)發(fā)給網(wǎng)絡(luò)設(shè)備讓網(wǎng)絡(luò)設(shè)備通過我們定好的協(xié)議找到收件人0001。存儲網(wǎng)絡(luò)設(shè)備如何通過我們定好的協(xié)議找到收件人0001呢其可以通過這臺網(wǎng)絡(luò)設(shè)備存儲的數(shù)據(jù)MAC表找到對應(yīng)的端口再發(fā)送給對應(yīng)的計算機。這就是交換機的思想這里方便大家理解只是寫的一個簡單的存儲、轉(zhuǎn)發(fā)模型。真實的交換機標識位于數(shù)據(jù)的頭部而且交換機的標識一般是由mac地址標識一共48位而非4位請注意后面會詳細講到交換機是數(shù)據(jù)鏈路層設(shè)備我們可以將下面網(wǎng)絡(luò)結(jié)構(gòu)看作最高層次為數(shù)據(jù)鏈路層的網(wǎng)絡(luò)結(jié)構(gòu)。2、設(shè)備網(wǎng)卡唯一標識MAC地址世界上很多通訊設(shè)備標識二進制只有4位是不現(xiàn)實的。為了讓每臺設(shè)備的網(wǎng)卡都有唯一標識的性質(zhì)我們讓每個網(wǎng)卡對應(yīng)一個MAC地址MAC 地址長 6 個字節(jié)共 48 位通常使用十六進制數(shù)表示,下面是關(guān)于MAC地址的介紹MAC 地址用于在網(wǎng)絡(luò)中唯一標識一個網(wǎng)卡即 MAC 地址只作用于網(wǎng)卡每個網(wǎng)卡都有一個全球唯一的 MAC 地址。一臺手機設(shè)備擁有多個網(wǎng)卡wifi模組、5G模組等所以一臺手機設(shè)備也擁有多個 MAC 地址而且每個 MAC 地址在世界上都是獨一無二的。MAC 地址前 24 位由 IEEE 管理機構(gòu)統(tǒng)一分配后24 位由廠商自由分配保證網(wǎng)卡地址全球唯一。每臺設(shè)備都有自己的MAC地址大家可以在網(wǎng)絡(luò)設(shè)置中查到自己本地的MAC地址和自己所連接設(shè)備的MAC地址這些Mac地址都是我們設(shè)備標識。3、MAC幀之間給大家簡單的舉例的標識的思想將“標簽”加入數(shù)據(jù)的尾部。其實為了應(yīng)對復(fù)雜的傳輸環(huán)境這個”標簽“比我們的例子要復(fù)雜很多這個”標簽“會加到數(shù)據(jù)的頭部和尾部下面是常用的格式這一整個部分稱為MAC幀數(shù)據(jù)幀MAC幀是數(shù)據(jù)鏈路層的傳輸形式。4、交換機1交換機的存儲結(jié)構(gòu)Mac表介紹① Mac表組成MAC表有多項MAC表中的每一項都包含兩個主要信息MAC地址和相應(yīng)的端口號。表項告訴交換機特定的MAC地址位于哪個端口上一個端口號可以對應(yīng)多個MAC地址。②學習過程當交換機接收到一個數(shù)據(jù)包時它會查看數(shù)據(jù)包中的源MAC地址并通過該地址查找MAC表找到MAC地址對應(yīng)的端口。最開始交換機的MAC表是一張空表所以有的時候在MAC表上找不到MAC地址與其對應(yīng)的表。所以交換機收到數(shù)據(jù)包時存在兩種可能通過MAC地址在表上找到對應(yīng)的端口交換機會將數(shù)據(jù)包僅轉(zhuǎn)發(fā)到目標端口而不是廣播到所有端口。通過MAC地址在表上找不到對應(yīng)的端口由于交換機不知道是對應(yīng)的哪個端口此時交換機會進行廣播每臺設(shè)備收到廣播消息后會將收到的信號數(shù)據(jù)中的MAC地址與自己的MAC地址比較如果相同設(shè)備會收下數(shù)據(jù)包并給交換機回復(fù)自己收到了這個消息交換機收到回復(fù)消息后就知道MAC地址對應(yīng)的端口是哪了便會更新端口索引對應(yīng)的MAC地址這便是交換機學習迭代的過程。在沒有虛擬局域網(wǎng)的網(wǎng)絡(luò)中交換機進行廣播時與其相連的設(shè)備都會收到交換機的廣播我們可以將交換機的廣播范圍看作一個廣播域。2模擬具有交換機和集線器的網(wǎng)絡(luò)的轉(zhuǎn)發(fā)過程交換機的端口是可以連接交換機和集線器的如下圖。接下來模擬以下網(wǎng)絡(luò)的轉(zhuǎn)發(fā)過程兩個交換機初始的時候都是空表①1號主機給2號主機發(fā)送消息第一步:1號主機將MAC幀發(fā)送給交換機。交換機收到1號主機發(fā)來的MAC幀后會將0a-1b-2c-4fd-5c-6e對應(yīng)1號端口并記錄于MAC表交換機查看MAC表沒有找到2號主機的端口。第二步1號交換機發(fā)送廣播。2號主機收到廣播后比對MAC地址確認是消息發(fā)給自己的后就會向1號交換機發(fā)送回應(yīng)。第三步1號交換機收到回應(yīng)修改MAC表。交換機確定自己的2號端口對應(yīng)的MAC地址是00-11-22-33-44-55。②1號主機給3號主機發(fā)送消息第一步:1號主機將MAC幀發(fā)送給交換機。交換機收到1號主機發(fā)來的MAC幀后交換機查看MAC表沒有找到3號主機的端口。第二步:1號交換機發(fā)送廣播。2號交換機收到廣播后會將1號主機的MAC地址0a-1b-2c-4d-5c-6e對應(yīng)在自己的1號端口查找自己的MAC表有沒有3號主機的MAC地址aa-bb-cc-dd-ee-ff發(fā)現(xiàn)沒有。第三步:2號交換機發(fā)送廣播。3號主機收到廣播后比對MAC地址確認是發(fā)給自己的后就會向2號交換機發(fā)送回應(yīng)。第四步:2號交換機收到回應(yīng)修改MAC表。2號交換機確定自己的2號端口對應(yīng)的MAC地址是3號主機的MAC地址aa-bb-cc-dd-ee-ff并會向1號交換機發(fā)送回應(yīng)。第五步:1號交換機收到回應(yīng)修改MAC表。1號交換機確定MAC地址aa-bb-cc-dd-ee-ff對應(yīng)的4號端口。③2號主機給4號主機發(fā)送消息第一步:2號主機將MAC幀發(fā)送給交換機。交換機收到2號主機發(fā)來的MAC幀后交換機查看MAC表沒有找到4號主機的端口.第二步1號交換機發(fā)送廣播。2號交換機收到廣播后會將2號主機的MAC地址00-11-22-33-44-55-66對應(yīng)在自己的1號端口并查找自己的MAC表有沒有4號主機的地址發(fā)現(xiàn)沒有。第三步2號交換機發(fā)送廣播。集線器收到廣播后會再次廣播發(fā)送給4和54號主機收到廣播后比對MAC地址確認是發(fā)給自己的后發(fā)出回應(yīng)先發(fā)送給交換機交換機再廣播。第四步2號交換機收到回應(yīng)修改MAC表。2號交換機收到回應(yīng)后便會確定自己的4號端口對應(yīng)的MAC地址是12-34-56-78-9a-bc,并會向1號交換機發(fā)送回應(yīng)。第五步: 1號交換機收到回應(yīng)修改MAC表。1號交換機也會將MAC地址12-34-56-78-9a-bc對應(yīng)自己的4號端口。我們可以看到在網(wǎng)絡(luò)交流的過程中交換機的MAC表也不斷的更新完善我把這個過程叫做交換機不斷迭代學習的過程。3交換機總結(jié)交換機Switch是計算機網(wǎng)絡(luò)中的網(wǎng)絡(luò)設(shè)備工作在數(shù)據(jù)鏈路層第二層用于在局域網(wǎng)LAN內(nèi)部實現(xiàn)設(shè)備之間的數(shù)據(jù)交換。工作原理交換機通過學習和過濾MAC地址來實現(xiàn)數(shù)據(jù)轉(zhuǎn)發(fā)。它維護一個MAC地址表記錄各個設(shè)備的MAC地址和與之關(guān)聯(lián)的端口信息。數(shù)據(jù)幀轉(zhuǎn)發(fā)當交換機接收到數(shù)據(jù)幀時它會檢查目標MAC地址并根據(jù)MAC地址表將數(shù)據(jù)幀轉(zhuǎn)發(fā)到相應(yīng)的端口以確保數(shù)據(jù)僅傳送到目標設(shè)備而不是廣播到整個網(wǎng)絡(luò)學習過程交換機通過學習過程來建立MAC地址表。當它首次接收到數(shù)據(jù)幀時會將源MAC地址和源端口的映射存儲到表中。這樣交換機在以后的數(shù)據(jù)傳輸中就能更快速地找到目標設(shè)備的位置。廣播域劃分交換機有助于減小廣播域的范圍。由于它只在必要的端口上轉(zhuǎn)發(fā)數(shù)據(jù)幀而不是廣播到所有端口因此可以有效隔離廣播域提高網(wǎng)絡(luò)性能。避免沖突域交換機有效減小了沖突域的范圍。與集線器不同交換機能夠在每個端口上獨立工作避免了多臺設(shè)備同時發(fā)送數(shù)據(jù)導(dǎo)致的信號沖突。七、網(wǎng)絡(luò)結(jié)構(gòu)的劃分路由器與網(wǎng)絡(luò)層的引入1、網(wǎng)段劃分的思想在構(gòu)建一個包含1000臺電腦的網(wǎng)絡(luò)時單純依賴交換機和集線器的網(wǎng)絡(luò)架構(gòu)存在一些顯著的不足。在這種情況下我們不得不連接大量的交換機和集線器以滿足所有電腦的連接需求。然而這樣的串聯(lián)結(jié)構(gòu)引發(fā)了一個嚴重的問題——廣播洪范。廣播洪范是指當網(wǎng)絡(luò)中的一臺設(shè)備發(fā)送廣播消息時該消息將被傳遞到網(wǎng)絡(luò)中的所有設(shè)備無論它們是否是消息的目標。隨著網(wǎng)絡(luò)規(guī)模的擴大廣播洪范將變得更為嚴重導(dǎo)致網(wǎng)絡(luò)效率下降和傳輸延遲增加?;ヂ?lián)網(wǎng)的目的是使所有設(shè)備都能相互發(fā)送消息在多個設(shè)備的網(wǎng)絡(luò)中我們可以將這些設(shè)備分為不同的網(wǎng)段再用一個設(shè)備將這些網(wǎng)段鏈接起來縮小廣播域減少廣播洪范。 路由器就完美的解決了整這個問題。我在網(wǎng)絡(luò)1一臺設(shè)備發(fā)送消息給網(wǎng)絡(luò)2的一臺設(shè)備由于路由器的能夠隔離廣播域即使路由器不隔離交換機廣播只通過mac地址也很難去定位到另外的一個網(wǎng)段mac地址因為其需要不斷的廣播找到對應(yīng)的設(shè)備消息包并不能傳輸?shù)骄W(wǎng)絡(luò)2中因此路由器引入IP地址概念。路由器相對于交換機更智能其有更龐大的存儲結(jié)構(gòu)和尋路算法通過IP地址路由器能夠游刃有余幫助消息包找到對應(yīng)的地址路由器是網(wǎng)絡(luò)層的設(shè)備網(wǎng)絡(luò)層是點到點網(wǎng)絡(luò)層次的最高層次。2、IP地址1IP地址概述P地址是Internet中主機的標識嚴格的來說是連接設(shè)備的網(wǎng)絡(luò)接口的標識目Internet中的主機要與別的機器通信必須具有一個IP地址前最常用的IP地址是IPV4表示形式常用點分形式如202.38.64.10最后都會轉(zhuǎn)換為一個32位的無符號整數(shù)由前綴碼、絡(luò)號和主機號組成。網(wǎng)絡(luò)號標識一個網(wǎng)段如上圖中的網(wǎng)絡(luò)1網(wǎng)絡(luò)2主機號用于標識一個該網(wǎng)絡(luò)中的具體設(shè)備比如網(wǎng)絡(luò)1中的某個設(shè)備。根據(jù)不同位數(shù)前綴碼、網(wǎng)絡(luò)號和主機號可以將IP地址分為五類地址。2特殊的IP地址①主機號全為0的地址為網(wǎng)絡(luò)通俗理解一般用來表示某個網(wǎng)絡(luò)②主機號全為1的網(wǎng)絡(luò)地址用于廣播同時向同一子網(wǎng)所有主機發(fā)送報文當報文中標識IP收件方的IP地址主機號全為1時表示該報文用來廣播。③私有地址私有地址可以自己組網(wǎng)時用但不能在Internet網(wǎng)上用包括10.0.0.0 - 10.255.255.255 172.16.0.0 - 172.31.255.255 192.168.0.0 - 192.168.255.255④環(huán)回地址127.0.0.0網(wǎng)段3IP地址舉例假設(shè)網(wǎng)絡(luò)1和網(wǎng)絡(luò)2都是B類地址網(wǎng)絡(luò)號分別為155.155.0.0和155.156.0.04IP地址與MAC地址既然??Internet中的主機要與別的機器通信必須具有一個IP地址那么一個IP地址就能定位一個主機這時候有人或許認為MAC地址就沒有用了其實并不是。MAC地址確保了在同一局域網(wǎng)中每個設(shè)備都有一個獨特的身份標識而不會與其他設(shè)備沖突在局域網(wǎng)內(nèi)不同設(shè)備之間的通信不一定需要經(jīng)過路由器。雖然IP地址涉及的路由算法會讓信息在廣域網(wǎng)中傳輸更高效但是在局域網(wǎng)中數(shù)據(jù)在尋路時我們僅用MAC地址就能達到尋路的效果這時候不用IP地址反而會更高效。而且收到消息時通過兩個地址確認還會保證傳輸?shù)臏蚀_性因此為了保證網(wǎng)絡(luò)傳輸?shù)母咝院蜏蚀_性我們需要將IP地址和MAC結(jié)合使用。其實一般我們發(fā)送消息時是通過IP地址去尋址前文提到成MAC幀時我們需要加入對方的MAC地址在只知道收件方的IP地址不知道收件方對方MAC地址的情況下數(shù)據(jù)鏈路層成幀的時候是怎么將收件方的地址填充進數(shù)據(jù)頭的呢這涉及到一個網(wǎng)絡(luò)協(xié)議ARP協(xié)議ARP協(xié)議通過IP地址得到MAC地址。好的讓我們逐一討論這三種情況① 本機通過ARP緩存得到MAC地址第一步發(fā)送方檢查ARP緩存表中是否有目標IP地址的對應(yīng)項。第二步如果存在發(fā)送方直接使用緩存中的MAC地址。第三步數(shù)據(jù)鏈路層成幀時目標MAC地址將從緩存中取出用于構(gòu)建數(shù)據(jù)幀。②本機沒有通過ARP緩存得到MAC地址但IP地址與自己屬于一個網(wǎng)段第一步發(fā)送方執(zhí)行ARP請求廣播查詢目標設(shè)備的MAC地址。第二步目標設(shè)備檢測到ARP請求響應(yīng)并提供自己的MAC地址。第三步發(fā)送方收到ARP響應(yīng)將目標設(shè)備的MAC地址存儲到ARP緩存中。第四步數(shù)據(jù)鏈路層成幀時使用新獲得的MAC地址構(gòu)建數(shù)據(jù)幀。③本機沒有通過ARP緩存得到MAC地址且IP地址與自己不屬于同一個網(wǎng)段第一步發(fā)送方執(zhí)行子網(wǎng)掩碼檢查確定目標設(shè)備是否在同一子網(wǎng)內(nèi)。第二步如果目標設(shè)備不在同一子網(wǎng)發(fā)送方將使用默認網(wǎng)關(guān)的MAC地址作為目標MAC地址將數(shù)據(jù)發(fā)送給默認網(wǎng)關(guān)。第三步默認網(wǎng)關(guān)收到數(shù)據(jù)后負責將數(shù)據(jù)從本子網(wǎng)路由到目標子網(wǎng)。第四步在目標子網(wǎng)內(nèi)目標設(shè)備的MAC地址由目標子網(wǎng)內(nèi)的ARP請求和響應(yīng)過程得到。5現(xiàn)在的IP地址A、B、C、D、E 類地址屬于早期分類編址?,F(xiàn)代網(wǎng)絡(luò)主要采用 CIDR即無類別域間路由例如192.168.1.0/24 10.20.0.0/16 172.16.8.0/213、數(shù)據(jù)報前文提到過數(shù)據(jù)加頭加尾組成幀在有路由器的網(wǎng)絡(luò)中交換機收到其他網(wǎng)段的消息都是要經(jīng)過路由器處理的路由器會將設(shè)備端口收到的數(shù)據(jù)變?yōu)閿?shù)據(jù)包交換機再給數(shù)據(jù)包加頭加尾組裝成幀。我們將數(shù)據(jù)變?yōu)閿?shù)據(jù)包的時候數(shù)據(jù)報頭一般表示在網(wǎng)絡(luò)層傳輸所需要的信息結(jié)構(gòu)如下IP數(shù)據(jù)報詳細格式的詳細內(nèi)容可以看這篇文章IP數(shù)據(jù)報格式_ip報文格式-CSDN博客4、路由器1路由器的存儲結(jié)構(gòu)路由表通常情況下每個路由器都有一個路由表。路由表是路由器用來決定如何轉(zhuǎn)發(fā)數(shù)據(jù)包的關(guān)鍵組成部分。路由表中包含了與相鄰網(wǎng)絡(luò)之間的路由信息告訴路由器數(shù)據(jù)包應(yīng)該通過哪個接口發(fā)送以達到目標網(wǎng)絡(luò)。路由表的內(nèi)容一般包括目標網(wǎng)絡(luò)地址指示數(shù)據(jù)包的目標網(wǎng)絡(luò)的IP地址或地址范圍。子網(wǎng)掩碼子網(wǎng)掩碼一般用于將網(wǎng)絡(luò)進一步劃分為若干子網(wǎng)以避免主機過多而擁堵或過少而IP浪費。子網(wǎng)掩碼的作用劃分網(wǎng)絡(luò)將是IP地址的前任意位作為網(wǎng)絡(luò)地址而非A類的8位B類的16位C類的24位比如255.255.128.128/15n,0n32),表示前15(n)位作為網(wǎng)絡(luò)地址子網(wǎng)掩碼前n位為1后n位為0下圖的子網(wǎng)掩碼為1111 1111 1110 0000 0000 0000 0000轉(zhuǎn)換為10進制的IPV4格式就是255.254.0.0。下一跳Next Hop信息指示數(shù)據(jù)包應(yīng)該被發(fā)送到哪個鄰近路由器或下一個網(wǎng)絡(luò)設(shè)備。出接口Outgoing Interface指示數(shù)據(jù)包應(yīng)該通過路由器的哪個物理或邏輯接口發(fā)送路由表的更新與MAC表通過廣播來更新不同路由表是通過靜態(tài)路由和動態(tài)路由來實現(xiàn)的。靜態(tài)路由是手動配置的路由信息管理員在路由器上直接設(shè)置路由表的條目。這些手動配置的靜態(tài)路由不會自動更新除非管理員手動修改它們。 動態(tài)路由使用特定的路由協(xié)議使路由器能夠自動學習和適應(yīng)網(wǎng)絡(luò)拓撲的變化。這里設(shè)立路由算法常用的協(xié)議有RIP、OSPF和BGP協(xié)議。與交換機的MAC表協(xié)助幀找到目的主機相似路由器可以協(xié)助數(shù)據(jù)包找到對應(yīng)的網(wǎng)段或者目的主機。2家用路由器的簡介路由器應(yīng)該是大家最熟悉的網(wǎng)絡(luò)結(jié)構(gòu)在這里我說家用路由器其實就是本文所提及的交換機和路由器的結(jié)合體你信嗎大家看一下自家的路由器大概都是這個樣子我的路由器有一個WAN接口和四個LAN接口。其中Wan接口就相當于路由器向外連接廣域網(wǎng)的接口Lan接口就相當于交換機連接內(nèi)部局域網(wǎng)的接口因此家用路由器的LAN接口可以直接連接設(shè)備計算機、打印機等。3路由器的總結(jié)路由器是計算機網(wǎng)絡(luò)中的網(wǎng)絡(luò)設(shè)備工作在網(wǎng)絡(luò)層第三層用于不同網(wǎng)段的連接將網(wǎng)絡(luò)形成一個龐大的廣域網(wǎng)以下是路由器的一些主要功能和特點數(shù)據(jù)包轉(zhuǎn)發(fā)路由器能夠根據(jù)目標地址信息將數(shù)據(jù)包從源網(wǎng)絡(luò)轉(zhuǎn)發(fā)到目標網(wǎng)絡(luò)。這涉及到查找路由表確定最佳的路徑。路由選擇路由器使用路由選擇算法來確定數(shù)據(jù)包的最佳路徑以確保數(shù)據(jù)能夠有效地從源到達目標。網(wǎng)絡(luò)劃分和網(wǎng)絡(luò)連接路由器能夠?qū)崿F(xiàn)不同網(wǎng)絡(luò)之間的劃分并通過自身將不同網(wǎng)絡(luò)連接起來子網(wǎng)劃分路由器可以將一個大網(wǎng)絡(luò)劃分成若干個子網(wǎng)提高網(wǎng)絡(luò)管理的靈活性和效率。動態(tài)路由協(xié)議路由器可以使用動態(tài)路由協(xié)議如OSPF開放最短路徑優(yōu)先、BGP邊界網(wǎng)關(guān)協(xié)議等來自動學習和適應(yīng)網(wǎng)絡(luò)拓撲的變化。點到點網(wǎng)絡(luò)架構(gòu)的總結(jié)經(jīng)過本章的學習相信大家對信號在發(fā)送消息時如何從一個設(shè)備傳輸?shù)搅硪粋€設(shè)備有了更為清晰的認知。在同一網(wǎng)段內(nèi)信號會經(jīng)由鏈路層協(xié)議以及物理層的底層線路協(xié)議無論是有線還是無線進行處理通過給數(shù)據(jù)添加“標簽”來組裝成幀隨后交換機利用這些幀來定位對應(yīng)的設(shè)備。而在不同的網(wǎng)段間數(shù)據(jù)會在幀的基礎(chǔ)上再加一層“標簽”組裝成數(shù)據(jù)包在路由器間進行傳輸數(shù)據(jù)包中的目的IP地址則用來找到對應(yīng)的目標網(wǎng)段。這就是點到點網(wǎng)絡(luò)傳輸?shù)幕驹?。在當今這個網(wǎng)絡(luò)體系極為龐大的世界中特別是在進行遠距離數(shù)據(jù)傳輸時數(shù)據(jù)會經(jīng)過多個設(shè)備并依賴路由算法和路由協(xié)議來選擇最優(yōu)的傳輸路徑從而確保信號能夠高效且準確地傳輸。全世界的計算機設(shè)備、網(wǎng)絡(luò)設(shè)備和全球的信息資源共同構(gòu)建了一個龐大的因特網(wǎng)。因特網(wǎng)不僅承載著信息的傳遞功能還為人們提供了一個互動和交流的平臺。借助社交媒體、電子郵件、在線聊天等工具人們能夠?qū)崟r地交流想法和信息。然而僅僅依靠前三層網(wǎng)絡(luò)架構(gòu)來構(gòu)建如此龐大的因特網(wǎng)顯然是不現(xiàn)實的。除了數(shù)據(jù)傳輸過程外我們還需要一系列協(xié)議來管理設(shè)備與服務(wù)器之間的連接管理服務(wù)器上的各類網(wǎng)站資源以及管理不同應(yīng)用端口之間的連接等。這些協(xié)議可以被視為端到端的協(xié)議它們獨立于數(shù)據(jù)傳輸過程是面向用戶層面的更高層級協(xié)議。