網路通訊原理與IP地址的分配原理

一、作業系統基礎

作業系統:(Operating System,簡稱OS)是管理和控制計算機硬體與軟體資源的計算機程式,是直接執行在“裸機”上的最基本的系統軟體,任何其他軟體都必須在作業系統的支援下才能執行。

注:計算機(硬體)->os->應用軟體

二、網路通訊原理

2。1 網際網路的本質就是一系列的網路協議

一臺硬設有了作業系統,然後裝上軟體你就可以正常使用了,然而你也只能自己使用像這樣,每個人都擁有一臺自己的機器,然而彼此孤立

如何能與其他網路的電腦通訊

網路通訊原理與IP地址的分配原理

然而internet為何物?

其實兩臺計算機之間通訊與兩個人打電話之間通訊的原理是一樣的(中國有很多地區,不同的地區有不同的方言,為了全中國人都可以聽懂,大家統一講普通話),而英語可以成為世界上所有人通訊的統一標準,如果把計算機看成分佈於世界各地的人,那麼連線兩臺計算機之間的internet實際上就是一系列統一的標準,這些標準稱之為網際網路協議,網際網路的本質就是一系列的協議,總稱為‘網際網路協議’(Internet Protocol Suite)。

網際網路協議的功能:定義計算機如何接入internet,以及接入internet的計算機通訊的標準。

2。2 OSI七層協議

網際網路協議按照功能不同分為osi七層或tcp/ip五層或tcp/ip四層(OSI(Open System Interconnect 開放式系統互聯參考模型)。國際標準化組織ISO(International Organization for Standardization)

網路模型介紹

在計算機網路中有著名的OSI七層協議體系結構,概念清楚,理論完整,但是它既複雜又不實用。TCP/IP體系結構則不同,得到的廣泛的應用。最終結合OSI和TCP/IP的優點,採用了一種只有五層協議的體系結構,本文的講述的IP都是基於五層協議模型中的網路層。

每層執行常見物理裝置:

網路通訊原理與IP地址的分配原理

OSI七層協議資料傳輸的封包與解包過程 詳見: 封包與解包過程

三、tcp/ip五層模型講解

我們將應用層,表示層,會話層並作應用層,從tcp/ip五層協議的角度來闡述每層的由來與功能,搞清楚了每層的主要協議就理解了整個網際網路通訊的原理。

首先,使用者感知到的只是最上面一層應用層,自上而下每層都依賴於下一層,所以我們從最下一層開始切入,比較好理解,每層都執行特定的協議,越往上越靠近使用者,越往下越靠近硬體

3。1 物理層

物理層由來:孤立的計算機之間要想彼此連線,就必須接入internet,言外之意就是計算機之間必須完成組網

網路通訊原理與IP地址的分配原理

物理層功能:主要是基於電器特性發送高低電壓(電訊號),高電壓對應數字1,低電壓對應數字0(將上一層傳遞的資料轉換成二進位制傳輸)

3。2 資料鏈路層

資料鏈路層由來:單純的電訊號0和1沒有任何意義,必須規定電訊號多少位一組,每組什麼意思。資料鏈路層的功能:定義了電訊號的分組方式

Ethernet乙太網協議:早期的時候各個公司都有自己的分組方式,後來形成了統一的標準,即乙太網協議ethernet。

ethernet規定:一組電訊號構成一個數據包,叫做‘幀’

每一資料幀分成:報頭head和資料data兩部分

head包含:(固字定18個節)

data包含:(最短46位元組,最長1500位元組)

資料包(幀)的具體內容:

head長度+data長度=最短64位元組,最長1518位元組,超過最大限制就分片傳送

3。3 包、幀、資料包、段、訊息

以上五個術語都用來表述資料的單位,大致區分如下:

包可以說是全能性術語;

幀用於表示資料鏈路層中包的單位;

資料包是 IP 和 UDP 等網路層以上的分層中包的單位;

段則表示 TCP 資料流中的資訊;

訊息是指應用協議中資料的單位。

每個分層中,都會對所傳送的資料附加一個首部,在這個首部中包含了該層必要的資訊,如傳送的目標地址以及協議相關資訊。通常,為協議提供的資訊為包首部,所要傳送的內容為資料。在下一層的角度看,從上一層收到的包全部都被認為是本層的資料。

網路通訊原理與IP地址的分配原理

mac地址:

head中包含的源地址和目標地址由來:ethernet規定接入internet的裝置都必須具備網絡卡,傳送端和接收端的地址便是指網絡卡的地址,即mac地址。

mac地址:每塊網絡卡出廠時都被燒製上一個世界唯一的mac地址,長度為48位2進位制(6Bytes),通常由12位16進位制數表示(前六位是廠商編號,後六位是流水線號)

廣播:

有了mac地址,同一網路內的兩臺主機就可以通訊了(一臺主機透過arp協議獲取另外一臺主機的mac地址)。ethernet採用最原始的方式,廣播的方式進行通訊,即計算機通訊基本靠吼

網路通訊原理與IP地址的分配原理

3。4 網路層

網路層由來:有了ethernet、mac地址、廣播的傳送方式,世界上的計算機就可以彼此通訊了,問題是世界範圍的網際網路是由一個個彼此隔離的小的區域網組成的,那麼如果所有的通訊都採用乙太網的廣播方式,那麼一臺機器傳送的包全世界都會收到,這就不僅僅是效率低的問題了,這會是一種災難。

上圖結論:必須找出一種方法來區分哪些計算機屬於同一廣播域,哪些不是,如果是就採用廣播的方式傳送,如果不是,就採用路由的方式(向不同廣播域/子網分發資料包),mac地址是無法區分的,它只跟廠商有關。

網路層功能:引入一套新的地址用來區分不同的廣播域/子網,這套地址即網路地址

3。4。1 IP協議:

規定網路地址的協議叫ip協議,它定義的地址稱之為ip地址,廣泛採用的v4版本即ipv4,它規定網路地址由32位2進製表示(4Bytes),範圍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並不能確定二者處於同一子網

3。4。2 IP地址的表示方法

IP地址就是給英特網上的每個主機(路由器)的每個介面分配一個在全世界範圍內是唯一的32位的識別符號。其組成第一個欄位是網路號,第二個欄位是主機號。一個主機號在前面的網路號所指明的網路範圍內必須是唯一的,所以一個IP地址在整個網路中都是唯一的。目前分為A、B、C、D、E 五類IP地址。

在A、B、C 三類地址中灰色的部分即為網路號,網路號的前三位是類別位,分別是0,10,110。也就是說我們可以憑藉這個類別位置來判斷網路類別。

32位的總長度,由於A、B、C 三類網路號的長度的不同,導致A、B、C 類地址的主機號欄位的位元組數分別為3、2、1(一個位元組8位)。

D 類地址的網路號為1110,用於多播(一對多通訊)。E 類地址的網路號為1111,保留以後使用。

因此我們一般使用的就是ABC三類網路地址,IP地址是32位的二進位制程式碼,為了提高可讀性,把32位的IP地址中的每8位用等效的十進位制表示出來(點分十進位制),於是我們日常生活中常見的IP地址就出現了。

例如:IP地址,128。11。3。31,轉化為二進位制為 10000000 00001011 00000011 00011111 ,可以看出類別位為 10,可以判斷為一個B類地址。

3。4。3 常用IP地址的指派範圍

網路號指派範圍

A類地址網路號佔用一個位元組,但是由於有一位是類別位,只有7位可供使用,但是由於規定,網路欄位全0是個保留欄位表示本網路,而127(01111111)是另外一個保留欄位,作為本地軟體的環回測試。我們常見的127。0。0。1表示本機,原因也是出自這裡。所以A類地址可以指派的網路號個數為(27-2)。

B類網路地址網路號有兩個位元組,前兩位為10已經固定,只剩下14位可用,由於這14位無論怎麼取值都不會使得網路號為全0或者全1,單實際上規定,規定B類最小網路地址為128。1。0。0。因此B類地址可指派的網路號個數為(214-1)。

C類地址有3個位元組的網路欄位號,前三位固定110,只有剩下21位可用,同樣C類地址可指派的最小網路地址也是192。0。1。0。因此C類地址可指派的網路號個數為(221-1)。

主機號指派範圍

由於主機號有規定,全0的主機號代表IP地址是“本主機”所連線到的單個網路地址(例,一主機地址為5。6。7。8,則該主機所在的網路地址為5。0。0。0),而全1則表示“所有的”,即表示該網路上的所有主機。

A類地址的主機號是由三個位元組,24位組成,所以每一個A類網路中可分配的主機個數為(224-2)。

B類地址的主機號是由兩個位元組,16位組成,所以每一個B類網路中可分配的主機個數為(216-2)。

C類地址的主機號是由一個位元組,8位組成,所以每一個C類網路中可分配的主機個數為(28-2)。

總結IP指派範圍

綜上網路號和主機號的指派描述可知,IP地址空間共有232個地址。

所有A類地址共有(27-2) (224-2)個,大約231,佔50%;

所有B類地址共有(214-1) (216-2)個,大約230,佔25%;

所有C類地址共有(221-1) (28-2)個,大約229,佔12。5%;

3。4。4 IP地址和硬體地址

從層次角度來看,硬體地址是資料鏈路層和物理層使用的地址(常稱作MAC地址),而IP地址是網路層和以上各層使用的地址,是一種邏輯地址。在網路層我們進行資料報文從IP1傳輸到IP2,無論我們中間經過多少次轉發,從網路層來看,源地址始終是IP1,目的地址始終是IP2。但是從資料鏈路層來看,顯然就不是這樣了,這些是物理地址,很有可能從源節點經過多次中間節點的物理地址的轉變才能到達目的節點。

而IP地址和物理地址的之間的轉化則需要依靠兩個重要的協議ARP(地址解析協議),RARP(逆地址解析協議)。IP地址透過ARP轉化成物理地址,物理地址可以透過RARP轉化成相應的IP地址。

子網和超網

簡單的來說就是如何來管理一個IP地址下的多臺主機

子網

現在假設這樣一個場景,一個數據報起目的地址是145。13。3。10(在子網 145。13。3。0中),已經到達路由器R1(145。13。0。0),那麼這個路由器怎麼將它轉發到145。13。3。0呢?

我們並不知道目的地址是否進行了子網的劃分。

這就引出了子網掩碼的概念了,子網掩碼也是32位,由一串1和0組成,子網掩碼中的1對應於IP地址中的網路號位置+子網網路號位置,子網掩碼中的0對應與IP地址中現在的主機號位置。

我們只要將IP地址和子網掩碼進行“與”運算,如果進行子網的劃分,就立刻得出要找的子網的網路地址,如果沒有進行子網劃分(有預設的子網掩碼),則直接能夠得出該IP地址的網路地址出來。

A類地址的預設子網掩碼是255。0。0。0

B類地址的預設子網掩碼是255。255。0。0

C類地址的預設子網掩碼是255。255。255。0

超網

無分類編址CIDR,使用變長的子網掩碼,可以進一步提高IP地址的資源利用率。有兩個特點

第一,消除了傳統的ABC類地址及劃分子網的概念,CIRD把32位的IP地址劃分成為兩個部分,網路字首和剩下的部分,表示方法為,在IP地址後面加上“/”,然後寫上網路字首所佔位數。

第二,把網路字首相同的IP地址組成一個CIDR地址塊,例如,IP地址 128。14。35。7/20 用二進位制表示 100000000 00001110 00100011 00000111,所以我們很容易可以得出這塊地址中最小地址為128。14。32。0,即 100000000 00001110 00100000 00000000,最大地址為128。14。47。255,即 100000000 00001110 00101111 11111111。

為了更加方便進行路由選擇,CIDR使用32位的地址掩碼,1的個數就是網路字首的長度,如上面所舉例中的/20的地址塊的地址掩碼是 11111111 11111111 11110000 00000000

因此可以看出,網路字首越短,其地址塊所包含的地址就越多,這樣可以根據實際情況更加有效的分配IPv4的地址空間。而由很多個CIDR地址快構成的龐大的網路就就被稱為“超網”。

3。4。5 子網掩碼

所謂”子網掩碼”,就是表示子網路特徵的一個引數。它在形式上等同於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。0,因此它們在同一個子網路。

總結一下,IP協議的作用主要有兩個,一個是為每一臺計算機分配IP地址,另一個是確定哪些地址在同一個子網路。

ip資料包

ip資料包也分為head和data部分,無須為ip包定義單獨的欄位,直接放入乙太網包的data部分

head:長度為20到60位元組

data:最長為65,515位元組。

而乙太網資料包的”資料”部分,最長只有1500位元組。因此,如果IP資料包超過了1500位元組,它就需要分割成幾個乙太網資料包,分開發送了。

3。5 ARP協議(Address Resolution Protocol) 地址解析協議

arp協議由來:計算機通訊基本靠吼,即廣播的方式,所有上層的包到最後都要封裝上乙太網頭,然後透過乙太網協議傳送,在談及乙太網協議時候,我門瞭解到通訊是基於mac的廣播方式實現,計算機在發包時,獲取自身的mac是容易的,如何獲取目標主機的mac,就需要透過arp協議

arp協議功能:廣播的方式傳送資料包,獲取目標主機的mac地址

協議工作方式:每臺主機ip都是已知的

例如:主機172。16。10。10/24訪問172。16。10。11/24

首先透過ip地址和子網掩碼區分出自己所處的子網

分析172。16。10。10/24與172。16。10。11/24處於同一網路(如果不是同一網路,那麼下表中目標ip為172。16。10。1,透過arp獲取的是閘道器的mac)

這個包會以廣播的方式在傳送端所處的自網內傳輸,所有主機接收後拆開包,發現目標ip為自己的,就響應,返回自己的mac

四、總結

# 1、CS架構與BS架構

——————END——————-