1. 程式人生 > >網路基礎知識彙總(持續更新)

網路基礎知識彙總(持續更新)

網路基礎知識彙總

1.網路模型

常見的網路層次劃分有OSI七層協議、TCP/IP四層協議以及TCP/IP五層協議,它們之間的對應關係如下圖所示:
圖片來自網路
由於工作偏向於底層網路,主要討論的TCP/IP五層模型 即:

  • 應用層 直接為使用者的應用程序提供服務如:檔案傳輸,電子郵件,檔案服務,虛擬終端
    協議:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet

  • 運輸層 負責將上層資料分段並提供端到端的、可靠的或不可靠的傳輸以及端到端的差錯控制和流量控制問題
    協議: TCP,UDP

  • 網路層 路徑選擇、路由及邏輯定址,具體功能包括定址和路由選擇、連線的建立、保持和終止等
    協議:IP,ICMP,RIP,OSPF,BGP,IGMP

  • 資料鏈路層 作用:實體地址定址、資料的成幀、流量控制、資料的檢錯、重發等,
    協議:SLIP,CSLIP,PPP,ARP,RARP,MTU

  • 物理層 物理層的任務就是透明地傳送位元流,以二進位制資料形式在物理媒體上傳輸資料 。
    協議:ISO2110,IEEE802,IEEE802.2
    在這裡插入圖片描述

2.二三層轉發

分層轉發模型:
在這裡插入圖片描述
二層轉發
在一層即物理層可以採用中繼裝置對物理訊號進行中繼,如HUB集線器,但是HUB對所連線的LAN只做訊號的中繼,所有的物理裝置構成了一個衝突域和廣播域。

在主機數目較多的情況下,衝突嚴重,廣播氾濫,為了避免衝突遂在二層使用交換機進行轉發。

裝置模型:
常見的有ATM交換機、X.25交換機、乙太網二層交換機等

二層轉發過程:

  • 查MAC轉發表處理轉發
  • 對於表中不包含的地址,通過廣播的方式轉發
  • 使用地址自動學習(根據以太幀的源MAC)和老化機制進行地址表維護
  • 轉發過程不對幀內資料進行修改

例如:

port1上的PCA要與port2上的PCB通訊時,A發到交換機上,交換機收到資訊後,

先記錄port1所對應的A機器的MAC地址,

然後再查詢目的機器B的MAC是否在表中。

如果在表中,直接轉發給B所應該的port2。

如果不在表中,則向所有埠廣播出去,當B收到後,會迴應交換機轉發到A,

在迴應過程中,交換機就會把B的MAC記錄到表中,達到雙方通訊功能。

依此類推,交換機都是從發端學習到MAC地址的,並在每5分鐘後,如果埠上連線的計算機的MAC地址沒有資訊交換,就把該埠對應的MAC地址從表中清除。以此來保障地址表的空間容量。

二層轉發幀格式如下:

在這裡插入圖片描述

以太二層交換機限制了衝突域的大小,但是無法限制廣播域的大小,連結交換機主機過多的情況下依然影響效能。需要使用vlan進一步限制廣播域。
VLAN(Virtual Local Area Network),相同VLAN內主機可以任意通訊,不同VLAN間二層流量完全隔離,可以有效阻斷廣播包,減小廣播域,同時提高了網路安全性,之後會單獨介紹。

支援VLAN的以太二層交換基本過程

  • 根據幀內Tag Header的VLAN ID查詢MAC表,確定查詢的範圍
  • 根據目的MAC查找出埠
  • 如果在MAC表中查詢不到該目的MAC,則該報文將通過廣播的方式在該VLAN內所有埠轉發
  • 同時該乙太網幀的源MAC將被學習到接收到報文的埠上
  • MAC表中的MAC地址通過老化機制更新
  • 轉發過程不對幀內資料進行修改
    vlan標準:
    802.10,Cisco在1995年提出--------802.1Q,IEEE於1996 制定
    支援vlan的二層轉發幀格式如下:
    比乙太網多了4個位元組的vlan tag
  • TPID:協議標誌,通常是0x8100
  • Priority:優先順序
  • CFI:規範指示為,總設為0
  • VLAN ID:VLAN號

三層轉發
當資料到達網路層時,路由器先檢查目的IP是否和自己是同一網段。
如果是,則進行二層轉發,交由資料鏈路層進行ARP過程請求目的主機的MAC地址;
如果不是,則進入三層轉發進行路由的遞迴查詢,找到下一跳路由並將資料包進行轉發,在三層轉發的過程中,還要進行二層的封裝。
若經過反覆的遞迴查詢都沒有找到匹配的路由,將傳送ICMP包給傳送主機告知目的主機不可達。
三層轉發裝置主要用於異構網路的互聯和跨網段轉發
在這裡插入圖片描述
三層轉發舉例

在這裡插入圖片描述

PC1準備向PC2傳送資料包

  1. PC1檢查報文的目的IP地址,發現和自己不在同一網段,則需要進行三層轉發,通過閘道器轉發報文資訊;
  2. PC1檢查自己的ARP表,發現閘道器的MAC地址不在自己的ARP表裡;
  3. PC1——>Router(閘道器)發出ARP請求報文;
  4. Router將PC1的MAC地址學習到自己的ARP表;
  5. Router(閘道器)——>PC1發出ARP應答報文;
  6. PC1學習到Router(閘道器)的mac地址,發出報文,此時源ip、目的ip不變,目的mac為Router(閘道器)的mac
  7. PC1——> Router(閘道器)發出報文。
  8. Router(閘道器)收到報文,發現是三層報文(原因是報文的目的mac是自己的mac)
  9. Router(閘道器)檢查自己的路由表(FIB),發現目的ip在自己的直連網段
  10. Router檢查自己的arp表,如果發現有與目的ip對應的mac地址則直接封裝報文(目的ip、源ip不變,目的mac為查arp表所得mac)傳送給PC2
  11. 如果查ARP表沒有得到與目的ip對應MAC,則重複(3)發arp請求
  12. PC2收到ARP廣播報文,發現目的IP是自己的IP,於是給Router傳送ARP應答報文。報文中會附上自己的mac地址。
  13. Router收到應答報文後,目的mac改為PC2的mac,然後向PC2傳送資料幀。

三層ip報文格式:
IP資料包由報頭和資料兩部分組成。報頭的前一部分是固定長度,共20位元組。在報頭的固定部分的後面是可選部分——IP選項和填充域。
在這裡插入圖片描述

首部各欄位的含義如下

  1. 版本
    佔4位,指IP協議的版本。佔4位,指IP協議的版本。
  2. 報頭長度
    佔4位,該欄位的單位是32位字(1個32位字長是4位元組),因此當IP報頭長度為1111時,報頭長度就達到最大值60位元組。當IP分組的首部長度不是4位元組的整數倍是,就需要對填充域加以填充。最常用的報頭長度為20位(報頭長度值為0101),這時不使用任何選項。
  3. 區分服務(服務型別)
    佔8位,在一般情況下都不使用這個欄位。
  4. 總長度
    指報頭和資料之和的長度,單位是位元組。總長度欄位為16位,故IP資料報的最大長度為65535。
    每一種資料鏈路層都有其自己的幀格式,其中包括幀格式中的資料欄位的最大長度,這稱為最大傳送單元MTU。當IP資料報封裝成鏈路層的幀時,此資料報的總長度不能超過對應MTU的值。若資料報長度超過對於MTU的值,就將資料報進行分片處理,此時資料報首部中的“總長度“欄位是指分片後的每一個分片的報頭長度和資料長度之和。
  5. 標識
    佔16位。IP軟體在儲存器中維持一個計數器,每產生一個數據報,計數器就加1,並賦給標識欄位。當資料報進行分片處理後,每個分片的標識值都與原資料報的標識值相同,則在接收端具有相同標識值的分片就能最終正確的重灌成為原來的資料報。
  6. 標誌
    佔3位,但目前只有兩位有意義。
    最低位記為MF。MF=1即表示後面”還有分片“的資料包。MF=0表示這已是若干資料包片中的最後一個。
    中間位記為DF,意思是”不能分片“。只有當DF=0時才允許分片。
  7. 片偏移
    佔13位。表示每個資料報的分片在原資料報中的相對位置。片偏移以8個位元組為偏移單位,即每個分片的長度一定是8位元組的整數倍。
  8. 生存時間
    佔8位。表示資料報在網路中的壽命。最初以秒為TTL值為單位,現在以跳數為單位,則目前的最大資料為255.
  9. 協議
    佔8位,指出此資料報攜帶的資料是使用何種協議,以便使目的主機的IP層知道應將資料部分上交給那個處理過程。
    TCP對應協議欄位值6;UDP對應協議欄位值17
  10. 首部校驗和
    佔16位,該欄位只校驗資料報的報頭,但不包括資料部分。
  11. 源地址
    佔32位
  12. 目的地址
    佔32位

三層交換機下VLAN實現

2層交換機下的VLAN之間不可以訪問,需要通過3層協議來實現互通。

實現:

  1. 新增一個VLAN虛介面表,記錄VLAN ID、虛擬IP地址、虛擬MAC地址
    每個VLAN只能對應一組
    在這裡插入圖片描述
  2. 新增arp支援:
    對於VLAN ID虛擬IP地址的arp請求,傳送包含對應虛擬MAC地址arp迴應
  3. 在MAC表中新增ip地址一列
    在這裡插入圖片描述
    轉發過程:
  • 根據包內目的IP地址是否在VLAN虛介面表中,如果不存在則查詢路由表;如果存在,確定目的VLAN ID ,修改VLAN ID ;
  • 根據VLAN ID在MAC表查找出埠
  • 如果不存在目的IP對應的MAC地址,傳送arp請求
  • 如果在MAC表中查詢不到該目的IP,則該報文將通過廣播的方式在該VLAN內所有埠轉發
  • 同時該乙太網幀的源IP將被學習到接收到報文的埠上
  • MAC表中的MAC地址通過老化機制更新
  • 轉發過程不對幀內資料進行修改

三層交換機與路由器

相同點:
根據報文IP地址進行三層選路,提供三層轉發功能支援路由協議,具備路由學習功能

差異點:
三層交換機採用ASIC硬體進行包轉發,硬體識別的報文格式比較有限,一般只支援乙太網幀,因此支援的介面型別比較有限,但由於採用硬體進行轉發,轉發效率很高
傳統路由器採用CPU進行包轉發,轉發均靠軟體實現,可以提供非常豐富的業務處理能力,可以支援所有介面型別,但轉發效率較低

在這裡插入圖片描述

3.IP路由

路由就是報文從源端到目的端的路徑,當報文從路由器到目的網段有多條路由可達時,路由器可以根據路由表中最佳路由進行轉發,最佳路由的選取與發現此路由的路由協議的優先順序、路由的度量有關。

靜態路由與動態路由

路由協議是路由器之間維護路由表的規則,用於發現路由,生成路由表,並指導報文轉發。依據來源的不同,路由可以分為三類:

  1. 通過鏈路層協議發現的路由稱為直連路由。
  2. 通過網路管理員手動配置的路由稱為靜態路由。
  3. 通過動態路由協議發現的路由稱為動態路由。

靜態路由配置方便,對系統要求低,適用於拓撲結構簡單並且穩定的小型網路。
缺點:不能自動適應網路拓撲的變化,需要人工干預。

動態路由協議有自己的路由演算法,能夠自動適應網路拓撲的變化,適用於具有一定數量三層裝置的網路。
缺點:配置對使用者要求比較高,對系統的要求高於靜態路由,並將佔用一定的網路資源和系統資源。

動態路由的分類

根據作用範圍不同,路由協議可分為:

  1. 內部閘道器協議IGP(Interior Gateway Protocol):
    在一個自治系統內部執行。常見的IGP協議包括RIP、OSPF和IS-IS。
  2. 外部閘道器協議EGP(Exterior Gateway Protocol):
    運行於不同自治系統之間。BGP是目前最常用的EGP協議。

根據使用演算法不同,路由協議可分為:

  • 距離向量協議(Distance-Vector Protocol):
    包括RIP和BGP。其中,BGP也被稱為路徑向量協議(Path-Vector Protocol)。
  • 鏈路狀態協議(Link-State Protocol)
    包括OSPF和IS-IS。

各種協議在協議棧中的位置:
在這裡插入圖片描述

  • RIP協議是最早的路由協議,其設計思想是為小型網路中提供簡單易用的動態路由,其演算法簡單,對CPU和記憶體資源要求低。RIP採用廣播(RIP-1)或組播(RIP-2)方式來在鄰居間傳送協議報文,傳輸層採用UDP封裝,埠號是520.由於UDP是不可靠的傳輸層協議,所以RIP設計成為週期性的廣播全部路由表,如果鄰居超過3次無法接收到路由更新,則認為路由失效。RIP-1不支援驗證,其安全性較低;RIP-2對其進行了改進,從而能夠支援驗證,安全性提高了。
  • OSPF是目前應用最廣泛的IGP協議。OSPF設計思想是為大中型網路提供分層次的、可劃分區域的路由協議。其演算法複雜,但能夠保證無域內環路。OSPF採用IP來進行承載,所有的協議報文都有IP封裝後進行傳輸,埠號89.IP是盡力而為的網路層協議,本身是不可靠的;所以為了保證協議報文傳輸的可靠性,OSPF採用了確認機制,在鄰居發現階段,互動LSA的階段,OSPF都採用確認機制來保證傳輸可靠。OSPF支援驗證,使OSPF的安全性得到了保證。
  • IS-IS是另外一種鏈路狀態型的路由協議,其同樣採用SPF演算法,支援路由分組管理與劃分區域,同樣可應用在大中型網路中,可擴充套件性好。與OSPF不同的是,IS-IS的執行直接基本鏈路層,其所有協議報文通過鏈路層來承載,所以IS-IS也可以執行在無IP的網路中,如OSI網路中。為了保證協議報文傳輸的可靠性,IS-IS同樣設計了確認機制來保證協議報文在傳輸過程中沒有丟失。IS-IS也支援驗證,安全性到了保證
  • BGP協議是唯一的EGP協議,與其他協議不同,BGP採用TCP來保證協議傳輸的可靠性,TCP埠號是179.TCP本身有三方握手的確認機制,執行BGP的路由器首先建立可靠的TCP連線,然後通過TCP連線來互動BGP協議報文,這樣BGP協議不需要自己設計可靠地傳輸機制,降低了協議報文的複雜度和開銷。另外,BGP安全性也可以由TCP來保證,TCP支援驗證功能,通過驗證雙方才能夠建立TCP連線。

路由表和FIB(轉發)表

  • 路由表項記錄指導報文傳送的路徑資訊,一般包括:目的地、下一跳地址、下一跳出介面,路由表是所有路由協議路由表項的集合。
  • 轉發表項是真正用於指導報文傳送的路徑資訊,一般包括:目的地、下一跳地址、下一跳出介面,是路由表中所有路由表項根據優先順序選舉之後產生的所有啟用路由的集合。

轉發表項查詢過程:

提取報文的目的IP地址,將目的地址和轉發表中轉發表項的掩碼按位“與”操作,如果與該轉發表項的目的網段相等則表示匹配,如果匹配上多條轉發表項則根據掩碼選擇最長匹配的轉發表項進行轉發
在這裡插入圖片描述

4.VLAN