計算機網絡發展簡史講解_第1頁
計算機網絡發展簡史講解_第2頁
計算機網絡發展簡史講解_第3頁
計算機網絡發展簡史講解_第4頁
計算機網絡發展簡史講解_第5頁
已閱讀5頁,還剩45頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

01網絡簡史

網絡簡史知識1網絡簡史

網絡簡史知識1很久很久之前,你不與任何其他電腦相連接,孤苦伶仃。

網絡簡史知識1直到有一天,你希望與另一臺電腦B建立通信,于是你們各開了一個網口,用一根網線連接了起來。

網絡簡史知識1兩臺電腦之間的通信

網絡簡史知識1有一天,一個新伙伴C加入了,但聰明的你們很快發現,可以每個人開兩個網口,用一共三根網線,彼此相連。

網絡簡史知識1隨著越來越多的人加入,你發現身上開的網口實在太多了,而且網線密密麻麻,混亂不堪。(而實際上一臺電腦根本開不了這么多網口,所以這種連線只在理論上可行,所以連不上的我就用紅色虛線表示了,就是這么嚴謹哈哈~)

網絡簡史知識1集線器的誕生于是你們發明了一個中間設備,你們將網線都插到這個設備上,由這個設備做轉發,就可以彼此之間通信了,本質上和原來一樣,只不過網口的數量和網線的數量減少了,不再那么混亂。

網絡簡史知識1集線器的誕生你給它取名叫集線器,它僅僅是無腦將電信號轉發到所有出口(廣播),不做任何處理,你覺得它是沒有智商的,因此把人家定性在了物理層。

網絡簡史知識1Mac地址由于轉發到了所有出口,那BCDE四臺機器怎么知道數據包是不是發給自己的呢?首先,你要給所有的連接到交換機的設備,都起個名字。原來你們叫ABCD,但現在需要一個更專業的,全局唯一的名字作為標識,你把這個更高端的名字稱為

MAC地址。你的MAC地址是aa-aa-aa-aa-aa-aa,你的伙伴b的MAC地址是bb-bb-bb-bb-bb-bb,以此類推,不重復就好。這樣,A在發送數據包給B時,只要在頭部拼接一個這樣結構的數據,就可以了。

網絡簡史知識1Mac地址B在收到數據包后,根據頭部的目標MAC地址信息,判斷這個數據包的確是發給自己的,于是便收下。其他的CDE收到數據包后,根據頭部的目標MAC地址信息,判斷這個數據包并不是發給自己的,于是便丟棄。

網絡簡史知識1雖然集線器使整個布局干凈不少,但原來我只要發給電腦B的消息,現在卻要發給連接到集線器中的所有電腦,這樣既不安全,又不節省網絡資源。如果把這個集線器弄得更智能一些,只發給目標MAC地址指向的那臺電腦,就好了。

網絡簡史知識1交換機的誕生雖然只比集線器多了這一點點區別,但看起來似乎有智能了,你把這東西叫做交換機。也正因為這一點點智能,你把它放在了另一個層級,數據鏈路層。

網絡簡史知識1交換機的誕生交換機內部維護一張

MAC地址表,記錄著每一個MAC地址的設備,連接在其哪一個端口上。MAC地址端口bb-bb-bb-bb-bb-bb1cc-cc-cc-cc-cc-cc3aa-aa-aa-aa-aa-aa4dd-dd-dd-dd-dd-dd5假如你仍然要發給B一個數據包,構造了如下的數據結構從網口出去。到達交換機時,交換機內部通過自己維護的MAC地址表,發現目標機器B的MAC地址bb-bb-bb-bb-bb-bb映射到了端口1上,于是把數據從1號端口發給了B,完事~

網絡簡史知識1交換機的誕生你給這個通過這樣傳輸方式而組成的小范圍的網絡,叫做以太網。當然最開始的時候,MAC地址表是空的,是怎么逐步建立起來的呢?

網絡簡史知識1交換機的誕生由于這個包從端口4進入的交換機,所以此時交換機就可以在MAC地址表記錄第一條數據:MAC:aa-aa-aa-aa-aa-aa-aa

端口:4交換機看目標MAC地址(bb-bb-bb-bb-bb-bb)在地址表中并沒有映射關系,于是將此包發給了所有端口,也即發給了所有機器。之后,只有機器B收到了確實是發給自己的包,于是做出了響應,響應數據從端口1進入交換機,于是交換機此時在地址表中更新了第二條數據:MAC:bb-bb-bb-bb-bb-bb

端口:1經過該網絡中的機器不斷地通信,交換機最終將MAC地址表建立完畢~假如在MAC地址表為空是,你給B發送了如下數據

網絡簡史知識1隨著機器數量越多,交換機的端口也不夠了,但聰明的你發現,只要將多個交換機連接起來,這個問題就輕而易舉搞定~你完全不需要設計額外的東西,只需要按照之前的設計和規矩來,按照上述的接線方式即可完成所有電腦的互聯,所以交換機設計的這種規則,真的很巧妙。你想想看為什么(比如A要發數據給F)。但是你要注意,上面那根紅色的線,最終在MAC地址表中可不是一條記錄呀,而是要把EFGH這四臺機器與該端口(端口6)的映射全部記錄在表中。

網絡簡史知識1最終,兩個交換機將分別記錄A~H所有機器的映射記錄。MAC地址端口bb-bb-bb-bb-bb-bb1cc-cc-cc-cc-cc-cc3aa-aa-aa-aa-aa-aa4dd-dd-dd-dd-dd-dd5ee-ee-ee-ee-ee-ee6ff-ff-ff-ff-ff-ff6gg-gg-gg-gg-gg-gg6hh-hh-hh-hh-hh-hh6左邊的交換機MAC地址端口bb-bb-bb-bb-bb-bb1cc-cc-cc-cc-cc-cc1aa-aa-aa-aa-aa-aa1dd-dd-dd-dd-dd-dd1ee-ee-ee-ee-ee-ee2ff-ff-ff-ff-ff-ff3gg-gg-gg-gg-gg-gg4hh-hh-hh-hh-hh-hh6右邊的交換機這在只有8臺電腦的時候還好,甚至在只有幾百臺電腦的時候,都還好,所以這種交換機的設計方式,已經足足支撐一陣子了。但很遺憾,人是貪婪的動物,很快,電腦的數量就發展到幾千、幾萬、幾十萬。

網絡簡史知識1IP地址和路由器的誕生交換機已經無法記錄如此龐大的映射關系了。此時你動了歪腦筋,你發現了問題的根本在于,連出去的那根紅色的網線,后面不知道有多少個設備不斷地連接進來,從而使得地址表越來越大。那我可不可以讓那根紅色的網線,接入一個新的設備,這個設備就跟電腦一樣有自己獨立的MAC地址,而且同時還能幫我把數據包做一次轉發呢?這個設備就是路由器,它的功能就是,作為一臺獨立的擁有MAC地址的設備,并且可以幫我把數據包做一次轉發,你把它定在了網絡層。注意,路由器的每一個端口,都有獨立的MAC地址

網絡簡史知識1IP地址和路由器的誕生好了,現在交換機的MAC地址表中,只需要多出一條MAC地址ABAB與其端口的映射關系,就可以成功把數據包轉交給路由器了,這條搞定。那如何做到,把發送給C和D,甚至是把發送給DEFGH....的數據包,統統先發送給路由器呢?不難想到這樣一個點子,假如電腦C和D的MAC地址擁有共同的前綴,比如分別是C的MAC地址:FFFF-FFFF-CCCC

D的MAC地址:FFFF-FFFF-DDDD那我們就可以說,將目標MAC地址為

FFFF-FFFF-?開頭的,統統先發送給路由器。這樣是否可行呢?答案是否定的。

網絡簡史知識1IP地址和路由器的誕生我們先從現實中MAC地址的結構入手,MAC地址也叫物理地址、硬件地址,長度為48位,一般這樣來表示00-16-EA-AE-3C-40它是由網絡設備制造商生產時燒錄在網卡的EPROM(一種閃存芯片,通常可以通過程序擦寫)。其中前24位(00-16-EA)代表網絡硬件制造商的編號,后24位(AE-3C-40)是該廠家自己分配的,一般表示系列號。只要不更改自己的MAC地址,MAC地址在世界是唯一的。形象地說,MAC地址就如同身份證上的身份證號碼,具有唯一性。那如果你希望向上面那樣表示將目標MAC地址為

FFFF-FFFF-?開頭的,統一從路由器出去發給某一群設備(后面會提到這其實是子網的概念),那你就需要要求某一子網下統統買一個廠商制造的設備,要么你就需要要求廠商在生產網絡設備燒錄MAC地址時,提前按照你規劃好的子網結構來定MAC地址,并且日后這個網絡的結構都不能輕易改變。這顯然是不現實的。于是你發明了一個新的地址,給每一臺機器一個32位的編號,如:11000000101010000000000000000001

網絡簡史知識1IP地址和路由器的誕生你覺得有些不清晰,于是把它分成四個部分,中間用點相連。11000000.10101000.00000000.00000001你還覺得不清晰,于是把它轉換成10進制。192.168.0.1最后你給了這個地址一個響亮的名字,IP地址。現在每一臺電腦,同時有自己的MAC地址,又有自己的IP地址,只不過IP地址是軟件層面上的,可以隨時修改,MAC地址一般是無法修改的。

網絡簡史知識1IP地址和路由器的誕生這樣一個可以隨時修改的IP地址,就可以根據你規劃的網絡拓撲結構,來調整了。如上圖所示,假如我想要發送數據包給ABCD其中一臺設備,不論哪一臺,我都可以這樣描述,"將IP地址為192.168.0開頭的全部發送給到路由器,之后再怎么轉發,交給它!"

網絡簡史知識1IP地址和路由器的誕生路由器誕生了,專門負責IP地址的尋找。那報文交給路由器之后,路由器又是怎么把數據包準確轉發給指定設備的呢?別急我們慢慢來。我們先給上面的組網方式中的每一臺設備,加上自己的IP地址

網絡簡史知識1IP地址和路由器的誕生現在兩個設備之間傳輸,除了加上數據鏈路層的頭部之外,還要再增加一個網絡層的頭部。假如A給B發送數據,由于它們直接連著交換機,所以A直接發出如下數據包即可,其實網絡層沒有體現出作用。

網絡簡史知識1IP地址和路由器的誕生但假如A給C發送數據,A就需要先轉交給路由器,然后再由路由器轉交給C。由于最底層的傳輸仍然需要依賴以太網,所以數據包是分成兩段的。A~路由器這段的包如下:路由器到C這段的包如下:

網絡簡史知識1子網的誕生A給C發數據包,怎么知道是否要通過路由器轉發呢?答案:子網

網絡簡史知識1子網的誕生如果源IP與目的IP處于一個子網,直接將包通過交換機發出去。如果源IP與目的IP不處于一個子網,就交給路由器去處理。好,那現在只需要解決,什么叫處于一個子網就好了。192.168.0.1和192.168.0.2處于同一個子網192.168.0.1和192.168.1.1處于不同子網這兩個是我們人為規定的,即我們想表示,對于192.168.0.1來說:192.168.0.xxx開頭的,就算是在一個子網,否則就是在不同的子網。

網絡簡史知識1子網掩碼那對于計算機來說,怎么表達這個意思呢?于是人們發明了子網掩碼的概念假如某臺機器的子網掩碼定為255.255.255.0這表示,將源IP與目的IP分別同這個子網掩碼進行與運算****,相等則是在一個子網,不相等就是在不同子網,就這么簡單。比如A電腦:192.168.0.1&255.255.255.0=192.168.0.0B電腦:192.168.0.2&255.255.255.0=192.168.0.0C電腦:192.168.1.1&255.255.255.0=192.168.1.0D電腦:192.168.1.2&255.255.255.0=192.168.1.0按位與運算符(&)參加運算的兩個數據,按二進制位進行“與”運算。運算規則:0&0=0;0&1=0;1&0=0;1&1=1;即:兩位同時為“1”,結果才為“1”,否則為0例如:3&5即00000011&00000101=00000001因此,3&5的值得1。知識點

網絡簡史知識1子網掩碼那么A與B在同一個子網,C與D在同一個子網,但是A與C就不在同一個子網,與D也不在同一個子網,以此類推。所以如果A給C發消息,A和C的IP地址分別&A機器配置的子網掩碼,發現不相等,則A認為C和自己不在同一個子網,于是把包發給路由器,就不管了,之后怎么轉發,A不關心。就像你打電話的區號

網絡簡史知識1默認網關A如何知道,哪個設備是路由器?答案:在A上要設置默認網關

網絡簡史知識1默認網關上一步A通過是否與C在同一個子網內,判斷出自己應該把包發給路由器,那路由器的IP是多少呢?其實說發給路由器不準確,應該說A會把包發給默認網關。對A來說,A只能直接把包發給同處于一個子網下的某個IP上,所以發給路由器還是發給某個電腦,對A來說也不關心,只要這個設備有個IP地址就行。所以默認網關,就是A在自己電腦里配置的一個IP地址,以便在發給不同子網的機器時,發給這個IP地址。

網絡簡史知識1路由表路由器如何知道C在哪里?答案:路由表

網絡簡史知識1路由表現在A要給C發數據包,已經可以成功發到路由器這里了,最后一個問題就是,路由器怎么知道,收到的這個數據包,該從自己的哪個端口出去,才能直接(或間接)地最終到達目的地C呢。路由器收到的數據包有目的IP也就是C的IP地址,需要轉化成從自己的哪個端口出去,很容易想到,應該有個表,就像MAC地址表一樣。這個表就叫路由表。

網絡簡史知識1路由表不同于MAC地址表的是,路由表并不是一對一這種明確關系,我們下面看一個路由表的結構。目的地址子網掩碼下一跳端口192.168.0.0255.255.255.00192.168.0.254255.255.255.2550192.168.1.0255.255.255.01192.168.1.254255.255.255.2551

網絡簡史知識1路由表我們學習一種新的表示方法,由于子網掩碼其實就表示前多少位表示子網的網段,所以如192.168.0.0(255.255.255.0)也可以簡寫為192.168.0.0/24目的地址下一跳端口192.168.0.0/240192.168.0.254/320192.168.1.0/241192.168.1.254/321這就很好理解了,路由表就表示,192.168.0.xxx這個子網下的,都轉發到0號端口,192.168.1.xxx這個子網下的,都轉發到1號端口。下一跳列還沒有值,我們先不管

網絡簡史知識1路由表配合著結構圖來看(這里把子網掩碼和默認網關都補齊了)

網絡簡史知識1arp剛才說的都是IP層,但發送數據包的數據鏈路層需要知道MAC地址,可是我只知道IP地址該怎么辦呢?答案:arp

網絡簡史知識1arp假如你(A)此時不知道你同伴B的MAC地址(現實中就是不知道的,剛剛我們只是假設已知),你只知道它的IP地址,你該怎么把數據包準確傳給B呢?答案很簡單,在網絡層,我需要把IP地址對應的MAC地址找到,也就是通過某種方式,找到

192.168.0.2

對應的MAC地址

BBBB。這種方式就是

arp協議,同時電腦A和B里面也會有一張

arp緩存表,表中記錄著

IP與MAC地址的對應關系。IP地址MAC地址192.168.0.2BBBB一開始的時候這個表是空的,電腦A為了知道電腦B(192.168.0.2)的MAC地址,將會廣播一條arp請求,B收到請求后,帶上自己的MAC地址給A一個響應。此時A便更新了自己的arp表。這樣通過大家不斷廣播arp請求,最終所有電腦里面都將arp緩存表更新完整。

網絡簡史知識1總結-整個傳輸過程從各個節點的視角來看電腦視角:首先我要知道我的IP以及對方的IP通過子網掩碼判斷我們是否在同一個子網在同一個子網就通過arp獲取對方mac地址直接扔出去不在同一個子網就通過arp獲取默認網關的mac地址直接扔出去交換機視角:我收到的數據包必須有目標MAC地址通過MAC地址表查映射關系查到了就按照映射關系從我的指定端口發出去查不到就所有端口都發出去路由器視角:我收到的數據包必須有目標IP地址通過路由表查映射關系查到了就按照映射關系從我的指定端口發出去(不在任何一個子網范圍,走其路由器的默認網關也是查到了)查不到則返回一個路由不可達的數據包

網絡簡史知識1數據鏈路如果你嗅覺足夠敏銳,你應該可以感受到下面這句話:網絡層(IP協議)本身沒有傳輸包的功能,包的實際傳輸是委托給數據鏈路層(以太網中的交換機)來實現的。涉及到的三張表分別是交換機中有

MAC地址表用于映射MAC地址和它的端口路由器中有路由表用于映射IP地址(段)和它的端口電腦和路由器中都有**arp緩存表**用于緩存IP和MAC地址的映射關系這三張表是怎么來的MAC地址表是通過以太網內各節點之間不斷通過交換機通信,不斷完善起來的。路由表是各種路由算法+人工配置逐步完善起來的。arp緩存表是不斷通過arp協議的請求逐步完善起來的。知道了以上這些,目前網絡上兩個節點是如何發送數據包的這個過程,就完全可以解釋通了!

網絡簡史知識1

最后一個網絡拓撲圖,加油

網絡簡史知識1

網絡簡史知識1這時路由器1連接了路由器2,所以其路由表有了下一條地址這一個概念,所以它的路由表就變成了這個樣子。如果匹配到了有下一跳地址的一項,則需要再次匹配,找到其端口,并找到下一跳IP的MAC地址。也就是說找來找去,最終必須能映射到一個端口號,然后從這個端口號把數據包發出去。目的地址下一跳端口192.168.0.0/240192.168.0.254/320192.168.1.0/241192.168.1.254/321192.168.2.0/24192.168.100.5192.168.100.0/242192.168.100.4/322

網絡簡史知識1這時如果A給F發送一個數據包,能不能通呢?如果通的話整個過程是怎樣的呢?

網絡簡史知識1思考一分鐘...

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論