2021-05-12 14:32:11
計算機基礎系列教學三:網路基礎之網路協定
一. 網路通訊原理
1. 網際網路的本質就是一系列的網路協定
有了計算機硬體,作業系統和應用軟體,人們就可以使用這台計算機了。但是,此時計算機彼此孤立,無法一同玩耍。
Internet
圖1
如何讓兩台彼此孤立的計算機能夠產生通訊?其實這就類似兩個不同國家的人互相交流一樣,你只會漢語,對方只會英語,你們是無法溝通的。如果你學會了英語,那你們就可以高效的溝通了。所以,英語作為全球的通用語言,是世界各地人麼互相交流的標準工具。那internet其實就是任意兩台計算機進行通訊的標準。這些標準稱之為網際網路協定,網際網路的本質就是一系列的協定,總稱為“網際網路協定”(Internet Protocol Suite)。
網際網路協定的功能:定義計算機如何接入internet,以及接入internet的計算機通訊的標準。
二. 網際網路通訊模型
1. OSI(Open System Interconnection)七層協定
圖2
2. TCP/IP五層模型(Transmission Control Protocol/Internet Protocol)
我們把OSI七層協定中的應用層,表示層,對談層合併為應用層,就得到TCP/IP五層模型。這五層模型就涵蓋了整個網際網路通訊的基本原理。
圖3
圖4
如上圖所示,使用者感知到的只是最上面一層應用層,自上而下每層都依賴於下一層,越往上越靠近使用者,越往下越靠近硬體。
2.1 物理層
物理層由來:上面提到,孤立的計算機之間要想一起玩,就必須接入internet,言外之意就是計算機之間必須完成組網。
圖5
物理層功能:主要是基於電器特性傳送高低電壓(電信號),高電壓對應數位1,低電壓對應數位0.
2.2 資料鏈路層
資料鏈路層由來:單純的電信號0和1沒有任何意義,必須規定電信號多少位一組,每組什麼意思。
資料鏈路層的功能:定義了電信號的分組方式。
乙太網協定(ethernet):
早期的時候各個公司都有自己的分組方式,後來形成了統一的標準,即乙太網協定。
ethernet規定
一組電信號構成一個封包,叫做“幀”
每一資料框分成:報頭header和資料data兩部分
header | data |
header包含:(固定18個位元組)
傳送者/源地址,6個位元組
接收者/目標地址,6個位元組
資料型別,6個位元組
data包含:(最短46位元組,最長1500位元組)
封包的具體內容
header長度+data長度=最短64位元組,最長1518位元組,超過最大限制就分片傳送。
Mac地址:
header中包含的源和目標地址由來:ethernet規定接入internet的裝置都必須具備網絡卡,傳送端和接收端的地址便是指網絡卡的地址,即mac地址。
mac地址:每塊網絡卡出廠時都被燒製上一個世界唯一的mac地址,長度為48位元2進位制,通常由12位元16進位制數表示(前六位是廠商編號,後六位是流水線號)。
圖6
廣播:
有了mac地址,同一網路內的兩台主機就可以通訊了(一台主機通過arp協定獲取另外一台主機的mac地址)。ethernet採用最原始的方式,廣播的方式進行通訊,即計算機通訊基本靠吼。
圖7
2.3 網路層
網路層由來:有了ethernet、mac地址、廣播的傳送方式,世界上的計算機就可以彼此通訊了,問題是世界範圍的網際網路是由一個個彼此隔離的小的區域網組成的,那麼如果所有的通訊都採用乙太網的廣播方式,那麼一台機器傳送的包全世界都會收到,這就不僅僅是效率低的問題了,這會是一種災難。
圖8
所以,必須找出一種方法來區分哪些計算機屬於同一廣播域,哪些不是,如果是就採用廣播的方式傳送,如果不是,就採用路由的方式(向不同廣播域/子網分發封包),mac地址是無法區分的,它只跟廠商有關。
網路層功能:引入一套新的地址用來區分不同的廣播域/子網,這套地址即網路地址。
IP協定:
規定網路地址的協定叫IP協定,它定義的地址稱之為IP地址,廣泛採用的v4版本即IPV4,它規定網路地址由32位元2進位制表示,範圍0.0.0.0~255.255.255.255一個IP地址通常寫成四段十進位制數,例:172.16.10.1。
IP地址分成兩部分,網路部分(標識子網)和主機部分(標識主機)。單純的IP地址段只是標識了IP地址的種類,從網路部分或主機部分都無法辨識一個IP所處的子網。例:172.16.10.1與172.16.10.2並不能確定二者處於同一子網。
子網掩碼:
所謂”子網掩碼”,就是表示子網路特徵的一個引數。它在形式上等同於IP地址,也是一個32位元二進位制數位,它的網路部分全部為1,主機部分全部為0。比如,IP地址172.16.10.1,如果已知網路部分是前24位元,主機部分是後8位元,那麼子網路掩碼就是11111111.11111111.11111111.00000000,寫成十進位制就是255.255.255.0。
通過”子網掩碼”,我們就能判斷,任意兩個IP地址是否處在同一個子網路。方法是將兩個IP地址與子網掩碼分別進行AND運算(兩個數位都為1,運算結果為1,否則為0),然後比較結果是否相同,如果是的話,就表明它們在同一個子網路中,否則就不是。比如,已知IP地址172.16.10.1和172.16.10.2的子網掩碼都是255.255.255.0,請問它們是否在同一個子網路?兩者與子網掩碼分別進行AND運算:
172.16.10.1: 10101100.00010000.00001010.000000001
255255.255.255.0: 11111111.11111111.11111111.00000000
AND運算得網路地址結果:10101100.00010000.00001010.000000001->172.16.10.0
172.16.10.2: 10101100.00010000.00001010.000000010
255255.255.255.0: 11111111.11111111.11111111.00000000
AND運算得網路地址結果:10101100.00010000.00001010.000000001->172.16.10.0
結果都是172.16.10.0,因此它們在同一個子網路。
總結一下,IP協定的作用主要有兩個,一個是為每一台計算機分配IP地址,另一個是確定哪些地址在同一個子網路。
相關文章