詳解MAC地址、IP地址、ARP、TCP/UDP協議
詳解BGP路由技術原理及配置命令!
計算機網絡
如上圖就是一張簡單的計算機網絡,那麼什麼是計算機網絡呢?
百度百科的定義
網絡是由若干
在我看來
計算機網絡主要包括三部分:
1、
2、
3、
按照地域範圍可以對網絡進行如下分類
局域網
廣域網運營商搭建連接遠距離區域的廣域網。
互聯網互聯網是一個開放、互聯的網絡,不屬於任何個人和任何機構。
OSI參考模型&TCP/IP參考模型
計算機網絡是按照什麼標準實現數據的傳輸通信的呢?這個就不得不提今天的主題OSI參考模型和TCP/IP分層模型。
OSI參考模型分為七層從下往上分別是:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層
TCP/IP分層模型分為四層從下往上分別是:網絡接口層、網絡層、傳輸層、應用層
OSI參考模型各層的作用
物理層:
是參考模型中的如:電壓、物理數據速率、最大傳輸距離、物理聯接器和其他的類似特性。
物理層傳輸的基本單位是比特流,即0和1
計算機的世界裡只有0和1, 正如你現在所看這篇文章的文字, 存儲在計算機中也是一大串0和1的組合. 但是這些數字不能在真實的物理介質中傳輸的, 而需要把它轉換為光信號或者電信號, 所以這一層負責將這些比特流(0101)與光電信號進行轉換.
物理層範例圖
數據鏈路層:
傳輸的基本單位為“
數據鏈路層由MAC(介質訪問控制子層)和LLC(邏輯鏈路控制子層)組成。
介質訪問控制子層(和物理層相連)
數據鏈路控制子層也就是說數據鏈路控制子層會接受網絡協議數據、分組的數據報並且添加更多的控制訊息,從而把這個分組傳送到它的目標設備。 (和網絡層對接)
數據鏈路層範例圖
網絡層:
傳輸的基本單位為“
IP協議是網絡層中的核心協議。 IP協議非常簡單,僅僅提供不可靠、無連接的傳送服務。
網絡層範例圖
傳輸層:
傳輸的基本單位為“
傳輸層範例圖
會話層:
負責建立、管理和終止表示層實體之間的通信會話。該層的通信由不同設備中的應用程序之間的服務請求和響應組成。
會話層範例圖
表示層:
提供各種用於應用層數據的編碼和轉換功能,確保一個系統的應用層發送的數據能被另一個系統的應用層識別。
表示層範例圖
應用層:
OSI參考模型中最靠近用戶的一層,為應用程序提供網絡服務。
應用層範例圖
最介質後用一張圖概括
數據封裝/解封裝
PC1和PC2需要進行數據通信?那麼PC1發送給PC2的數據包需要根據OSI參考模型至上而下進行數據封裝,PC2收到數據包至下而上進行解封裝
這裡的
寄快遞的時候是不是需要將物品層層包裝起來,其實就是數據包封裝的過程;取快遞的時候需要拆解包裹,這個其實就是數據包解封裝的過程。
OSI模型每一層對應的數據名稱
![]()![]()### 傳輸介質
網絡傳輸介質是指在網絡中
不同的傳輸介質具有不同的特性,這些特性直接影響到通信的諸多方面,如
常用的傳輸介質分為
有線傳輸介質雙絞線和同軸電纜傳輸電信號,光纖傳輸光信號。
同軸電纜:
同軸電纜這兩種標準都支持10Mbps的傳輸速率,一般情況下,10Base2同軸電纜使用BNC接頭,10Base5同軸電纜使用N型接頭。
現在,10Mbps的傳輸速率早已不能滿足目前企業網絡需求,因此同軸電纜在目前企業網絡中很少應用。這兩種以太網已基本被淘汰,企業網中也幾乎不再使用它們。
雙絞線:
雙絞線這兩條銅線擰在一起,就可以減少鄰近線對電氣的干擾。雙絞線即能用於傳輸模擬信號,也能用於傳輸數字信號,其帶寬決定於銅線的直徑和傳輸距離。
![]()![]()
與同軸電纜相比雙絞線(Twisted Pair)具有
雙絞線可分為屏蔽雙絞線在雙絞線與外層絕緣封套之間有一個
雙絞線有很多種類型,
例如,3類雙絞線支持10Mbps傳輸速率;5類雙絞線支持100Mbps傳輸速率,滿足快速以太網標準;超5類雙絞線及更高級別的雙絞線支持千兆以太網傳輸。
雙絞線使用為保證終端能夠正確收發數據,
線序:白橙橙白綠藍白藍綠白棕棕
![]()![]()## 光纖:
光纖纖芯外麵包圍著一層折射率比芯纖低的光纖通常被紮成束,外面有外殼保護。光纖的傳輸速率可達100Gbit/s.
雙絞線和同軸電纜傳輸數據時使用的是電信號,而
光纖支持的傳輸速率包括10Mbps,100Mbps,1Gbps,10Gbps,甚至更高。
根據光纖傳輸光信號模式的不同,光纖又可分為單模光纖和多模光纖。
單模光纖
如下圖所示:
![]()![]()多模光纖
如下圖所示:
無線傳輸介質我們利用無線電波在自由空間的傳播可以實現多種無線通信。在自由空間傳輸的電磁波根據頻譜可將其分為無線電波、微波、紅外線、激光等,訊息被加載在電磁波上進行傳輸。無線傳輸的介質有:無線電波、紅外線、微波、衛星和激光。
無線傳輸的優點在於安裝、移動以及變更都較容易,不會受到環境的限制。但信號在傳輸過程中容易受到干擾和被竊取,且初期的安裝費用較高。
MAC地址
什麼是MAC地址
如同每一個人都有一個名字一樣, MAC地址也叫物理地址,大多數網卡廠商把MAC地址燒入了網卡的ROM中。
網絡設備的MAC地址是全球唯一的。
MAC地址組成
MAC地址長度為48比特,通常用十六進製表示。
MAC地址包含兩部分:
1、前24比特是例如,華為的網絡產品的MAC地址前24比特是0x00e0fc。
2、後24位序列號是
MAC地址作用
數據鏈路層基於MAC地址進行幀的傳輸。發送端使用接收端的MAC地址作為目的地址發送數據幀。
IP地址
大家都知道計算機都會有一個IP地址,
如下圖所示,本機是自動獲取IP地址的,如果使用靜態的方式配置IP地址,需要
如何查看本機動態獲取的地址呢?
通過cmd打開命令提示符,輸入“
上面查詢到的地址是私網地址,如下圖,本機使用的公網地址是
1
IP地址(Internet Protocol Address)是指互聯網協議地址,又叫
IP地址是IP協議(IP協議是為計算機網絡相互連接進行通信而設計的協議)提供的一種統一的地址格式,它為互聯網上的每一個網絡和每一台主機分配一個邏輯地址,以此來屏蔽物理MAC地址的差異。
IP地址就像是我們的家庭住址一樣,如果你要寫信給一個人,你就要知道他(她)的地址,這樣郵遞員才能把信送到。計算機發送訊息就好比是郵遞員,它必須知道唯一的“家庭地址”才能不至於把信送錯人家。只不過我們的地址是用文字來表示的,計算機的地址用二進制數字表示。
2
IP地址用來(後續會介紹網絡中的主機如何通過IP地址進行通信的)
IP地址包括兩部分
3
IPv4地址為32比特的二進制數,通常用點分十進製表示
IP地址是一個
IP地址通常用“
例:點分十進IP地址(100.4.5.6),實際上是32位二進制數(01100100.00000100.00000101.00000110)。
二進制和十進制轉換:
例如:100=64+32+4=
4
IPv4地址被劃分為A、B、C、D、E五類,每類地址的網絡號包含不同的字節數。
A類,B類,和C類地址為可分配IP地址,每類地址支持的網絡數和主機數不同。
比如,
C類地址支持200多萬個網絡
D類地址為組播地址主機收到以D類地址為目的地址的報文後,且該主機是該組播組成員,就會接收並處理該報文。
各類IP地址可以通過第一個字節中的比特位進行區分
如A類地址第一字節的最高位固定為0,B類地址第一字節的高兩位固定為10,C類地址第一字節的高三位固定為110,D類地址第一字節的高四位固定為1110,E類地址第一字節的高四位固定為1111。
5
IPv4中的部分IP地址被保留用作特殊用途。
為節省IPv4地址,A, B, C類地址段中都預留了特定範圍的地址作為
現在,世界上所有終端系統和網絡設備需要的IP地址總數已經超過了32位IPv4地址所能支持的最大地址數4,294,967,296。為主機分配私網地址節省了公網地址,可以用來緩解IP地址短缺的問題企業網絡中普遍使用私網地址,不同企業網絡中的私網地址可以重疊。默認情況下,網絡中的主機無法使用私網地址與公網通信;當需要與公網通信時,私網地址必須轉換成公網地址。
私有地址範圍:
10.0.0.0~10.255.255.255
172.16.0.0~172.31.255.255
192.168.0.0~192.168.255.255
還有其他一些特殊IP地址,如IPv4中的第一個地址IPv4中的最後一個地址
特殊地址
127.0.0.0 ~ 127.255.255.255
0.0.0.0
255.255.255.255
6
上面介紹到IP地址由網絡部分和主機部分組成,那麼如何區分呢?子網掩碼用於區分網絡部分和主機部分。
子網掩碼與IP地址的表示方法相同。
每個IP地址和子網掩碼一起可以用來唯一的標識一個網段中的某台網絡設備子網掩碼中的1表示網絡位,0表示主機位。
例如:子網掩碼255.128.0.0表示網絡位為9位,主機位為23位。
默認子網掩碼:
每類IP地址有一個缺省子網掩碼。
A類地址的缺省子網掩碼為8位
B類地址的缺省子網掩碼為16位
C類地址的缺省子網掩碼為24位
ARP協議
一台主機要發送數據給另一台主機時,必須要知道IP地址由網絡層來提供,但是僅有IP地址是不夠的。
IP數據報文必須封裝成幀才能通過數據鏈路進行發送。數據幀必須要包含目的MAC地址,因此那麼如何獲取對方的mac地址呢?
通過
如上圖所示:
主機A(ip為10.0.0.1)要和主機C(ip為10.0.0.3)通信,數據包經過主機A的封裝後發給主機C,
下面我們看下ARP是如何獲取主機C的MAC地址的?
1、ARP請求:
主機A首先會去
本例中由於是第一次通信,主機A的ARP緩存表中沒有主機C的MAC地址。
這時
之前已經講過廣播的概念的,廣播報文只會在廣播域中傳播,路由器可以隔離廣播域。你知道以太網數據幀在網絡中如何發送和接收的嗎?一文帶你搞懂它
![]()![]()
ARP request報文
幀頭此時,由於主機A不知道主機C的MAC地址,所以目的MAC地址為廣播地址FF-FF-FF-FF-FF-FF。
ARP request報文中包含源IP地址、目的IP地址、源MAC地址、目的MAC地址
ARP Request報文會在整個網絡上傳播網關將會阻止該報文發送到其他網絡上。
本例中主機B和主機C都會收到主機A發送的ARP廣播請求報文。
2、ARP應答:
主機B收到主機A發送的ARP廣播請求報文,查看目的IP不是自己
主機C發現目的IP是自己,會在自己的
主機A收到主機C的回應報文後後會在自己的
![]()![]()
ARP Reply報文中
ARP Reply報文通過單播傳送。
TCP協議
我們知道
1
TCP
面向連接:
面向連接中通信中
電話
端到端可靠
保證從發送端發送的報文都可以被目的端收到,哪怕被丟棄,也可以讓發送端重傳;
2
IP 層是「
如果需要
因為TCP 是一個工作在後續會講TCP協議是如何確保數據包的可靠傳輸的?
3下面我們看下
如圖所示為
TCP數據段由TCP最多可以有
下面我們一起看下TCP頭部的各個字段:
1、16位源端口號:
2、16位目的端口號:每個TCP頭部都包含源和目的端的端口號,這兩個值加上IP頭部中的源IP地址和目的IP地址可以唯一確定一個TCP連接。
TCP允許一個主機同時運行多個應用進程。每台主機可以擁有多個應用端口,
端口分為
有些網絡服務會使用固定的端口,這類端口稱為如FTP、HTTP、Telnet、SNMP服務均使用知名端口。
動態端口號只要運行的程序向系統提出訪問網絡的申請,那麼系統就可以從這些端口號中分配一個供該程序使用。
![]()![]()3、32位序列號:可以解決網絡包亂序問題。
數據段在網絡中傳輸時,它們的順序可能會發生變化;接收端
假定主機A和B進行tcp通信,A傳送給B一個tcp報文段中,例如某個TCP報文段傳送的數據是字節流中的第
4、32位確認序列號:確認序列號為用來解決不丟包的問題
假定主機A和B進行tcp通信,那麼A發出的tcp報文段不但帶有自己的序號,也包含了對B發送來的tcp報文段的確認號。反之也一樣。若確認號=N,則表明:到序號N-1為止的所有數據都已正確收到。
5、4位頭部長度:
6、6位標誌位:
URG:它告訴系統此報文段中有
例如,已經發送了很長的一個程序在遠端的主機上運行。但後來發現了一些問題,需要取消該程序的運行。因此用戶從鍵盤發出中斷命令(Control+c)。如果不使用緊急數據,那麼這兩個字符將存儲在接收TCP的緩存末尾。只有在所有的數據被處理完畢後這兩個字符才被交付接收方的應用進程。這樣做就浪費了許多時間。
當URG置為1時,發送應用進程就告訴發送方的TCP有緊急數據要傳送。於是這時要與首部中
ACK:當ACK=0時,確認號無效。 TCP規定,在連接建立後所有的傳送的報文段都必須把ACK置1。
PSH:
當兩個應用進程進行交互式的通信時,在這種情況下,TCP就可以使用推送操作。這時,發送方TCP把PSH置1,並立即創建一個報文段發送出去。接收方TCP收到PSH=1的報文段,就盡快地交付接收應用進程雖然應用程序可以選擇推送操作,但推送還很少使用。
RST帶RST標誌的tcp報文段也叫復位報文段。
當RST=1時,表明TCP連接中出現嚴重差錯(如由於主機崩潰或其他原因),必須釋放連接,然後再重新建立運輸連接。 RST置1還用來拒絕一個非法的報文段或拒絕打開一個連接。
SYN:在連接建立時
當SYN=1而ACK=0時,表明這是一個對方若同意建立連接,則應在相應的報文段中使用SYN=1和ACK=1。因此,SYN置為1就表示這是一個連接請求。
FIN標誌:用來釋放一個連接。
當FIN=1時,表明此報文段的發送方的數據已發送完畢,並要求釋放運輸連接。
7、16位窗口大小由於該字段為16位,所以窗口大小的最大值為65535字節,該機制通常
窗口值窗口
窗口值告訴對方:之所以要有這個限制,是因為接收方的數據緩存空間是有限的。
總之,窗口值作為接收方讓發送方設置其發送窗口的依據。並且窗口值是經常在動態變化著。
8、16位校驗和:該值由發送端計算和記錄並由接收端進行驗證。
9、16位緊急指針:它和序號字段的值相加表示最後一個緊急數據的下一字節的序號。因此這個字段是緊急指針相對當前序號的偏移量。發送緊急數據時會用到這個。
緊急指針僅在URG=1時才有意義,它指出本報文段中的緊急數據的字節數(緊急數據結束後就是普通數據)。
因此,緊急指針指出了緊急數據的末尾在報文段中的位置。當所有緊急數據都處理完時,TCP就告訴應用程序恢復到正常操作。值得注意的是,即使窗口為零時也可發送緊急數據。
10、選項:當沒有使用“選項”時,TCP的首部長度是20字節。
UDP協議
1
UDP 是
2
UDP報文分為報頭由源端口、目的端口、報文長度以及校驗和組成。
UDP頭部的標識如下:
16位源端口號:
16位目的端口號:
16位UDP長度:因為UDP頭部長度為8字節,所以該字段的最小值為8。
16位UDP校驗和:
3
UDP(User Datagram Protocol)傳輸
我們知道TCP就是為了解決IP層不可靠的傳輸層協議,既然UDP是不可靠的,
1、一個重要的原因是IP協議進行的是IP地址到IP地址的傳輸,這意味者兩台計算機之間的對話。但每台計算機中需要有多個通信通道,並將多個通信通道分配給不同的進程使用。一個端口就代表了這樣的一個通信通道UDP協議實現了端口,從而讓數據包可以在送到IP地址的基礎上,進一步可以送到某個端口。
2、在使用TCP協議傳輸數據時,如果一個數據段丟失或者接收端對某個數據段沒有確認,發送端會重新發送該數據段。 TCP重新發送數據會帶來傳輸延遲和重複數據,降低了用戶的體驗。對於遲延敏感的應用,少量的數據丟失一般可以被忽略,這時使用UDP傳輸將能夠提升用戶的體驗