主頁 > 軟體設計 > 華為 QOS服務質量基礎知識總結

華為 QOS服務質量基礎知識總結

2020-12-15 11:55:23 軟體設計

我是藝博東 ,一個正在努力學IT的碼農;好了,話不多說,我們直接進入正文,

文章目錄

      • 一、拓撲
      • 二、基本配置與分析
      • 三、前言
      • 四、服務模型有哪些
      • 五、報文分類
      • 六、華為QOS分類
      • 七、小結
      • 八、擁塞管理與擁塞避免
      • 九、令牌桶技術

這一期是結合相關的產品檔案以及課上的PPT、課堂筆記、加上個人的想法來寫的,有不合理的地方,希望各位大佬多多指正;我個人感覺非常有必要去總計一下,也便于復習、加深理解、提升復習效率等,

一、拓撲

在這里插入圖片描述

二、基本配置與分析

SW-1

[Huawei]sysname SW-1
[SW-1]vlan batch 100 200
[SW-1]interface GigabitEthernet 0/0/1
[SW-1-GigabitEthernet0/0/1]port link-type access 
[SW-1-GigabitEthernet0/0/1]port default vlan 100
[SW-1-GigabitEthernet0/0/1]int g0/0/2
[SW-1-GigabitEthernet0/0/2]port link-type access 
[SW-1-GigabitEthernet0/0/2]port default vlan  200
[SW-1-GigabitEthernet0/0/2]int g0/0/3
[SW-1-GigabitEthernet0/0/3]port link-type trunk 
[SW-1-GigabitEthernet0/0/3]port trunk  allow-pass vlan 100 200

AR-1

(1)配置單臂路由
(2)配置預設路由

[Huawei]sysname AR-1
[AR-1]int g0/0/0.10
[AR-1-GigabitEthernet0/0/0.10]dot1q  termination  vid  100
[AR-1-GigabitEthernet0/0/0.10]arp broadcast enable 
[AR-1-GigabitEthernet0/0/0.10]ip address 1.1.1.254 24
[AR-1-GigabitEthernet0/0/0.10]quit
[AR-1]int g0/0/0.20
[AR-1-GigabitEthernet0/0/0.20]dot1q  termination vid  200
[AR-1-GigabitEthernet0/0/0.20]arp broadcast enable 
[AR-1-GigabitEthernet0/0/0.20]ip address 2.2.2.254 24
[AR-1]int g0/0/1
[AR-1-GigabitEthernet0/0/1]ip address 10.1.12.1 24
[AR-1-GigabitEthernet0/0/1]quit
[AR-1]ip route-static 0.0.0.0 0.0.0.0 10.1.12.2

[AR-1]int g0/0/0.10
[AR-1-GigabitEthernet0/0/0.10]trust 8021p override 
[AR-1-GigabitEthernet0/0/0.10]quit
[AR-1]int g0/0/0.20
[AR-1-GigabitEthernet0/0/0.20]trust  8021p override 

AR-2

[Huawei]sysname AR-2
[AR-2]int g0/0/0
[AR-2-GigabitEthernet0/0/0]ip address  10.1.12.2 24
[AR-2-GigabitEthernet0/0/0]q
[AR-2]int LoopBack 0
[AR-2-LoopBack0]ip address 20.20.20.20 32
[AR-2-LoopBack0]q
[AR-2]ip route-static 0.0.0.0 0 10.1.12.1
[AR-2]int g0/0/1
[AR-2-GigabitEthernet0/0/1]ip address  10.1.23.2 24
[AR-2-GigabitEthernet0/0/1]quit
[AR-2]ip route-static 0.0.0.0 0 10.1.23.3

AR-3

[Huawei]sysname AR-3
[AR-3]int g0/0/0
[AR-3-GigabitEthernet0/0/0]ip address  10.1.23.3 24
[AR-3-GigabitEthernet0/0/0]q
[AR-3]int l0
[AR-3-LoopBack0]ip address  3.3.3.3 32
[AR-3-LoopBack0]quit
[AR-3]ip route-static 0.0.0.0 0.0.0.0 10.1.23.2

PC-1
在這里插入圖片描述
PC-2 配置地址類似

PC1 ping 20.20.20.20
在這里插入圖片描述

dis qos queue statistics interface GigabitEthernet 0/0/0
在這里插入圖片描述
PC2 ping 20.20.20.20
再 ping測
在這里插入圖片描述
在這里插入圖片描述
由以上輸出結果可知經過再一次PING測,14個報文增加到19個報文了,

AR-1

[AR-1]qos map-table dot1p-lp
[AR-1-maptbl-dot1p-lp]input 0 output 7

dis qos map-table dot1p-lp
在這里插入圖片描述
PC2 ping 20.20.20.20
再 ping測

在這里插入圖片描述

dis qos queue statistics interface GigabitEthernet 0/0/0
在這里插入圖片描述
在AR-1上進行抓包
在這里插入圖片描述
發現是DSCP為0

因為默認情況下:
802.1p=0
dscp 0

僅僅只把某一報文映射到了某一佇列中,但DCSP沒變,

修改之后會有什么效果呢?

[AR-1]qos map-table dot1p-dscp
[AR-1-maptbl-dot1p-dscp]input 0 output 46

PC2 ping 20.20.20.20
再 ping測

在這里插入圖片描述
在這里插入圖片描述
抓包分析
發現DSCP已改為EF(46)

PC1 ping 20.20.20.20
再 ping測
在這里插入圖片描述
佇列7增加了5個報文,
這說明 報文進入介面后根據資訊的標記值映射到本地優先級,并將報文放不對應的佇列中,然后根據標記值的映射修改相關標記值,在出口佇列發出報文,

AR-1

1.1.1.1 3.3.3.3 dscp 0 —> dscp 10
2.2.2.2 3.3.3.3 dscp 0 —> dscp 40

dscp 10 —> 3
dscp 40 —> 6

[AR-1]acl 3000
[AR-1-acl-adv-3000]rule permit igmp source 1.1.1.1 0 destination  3.3.3.3 0
[AR-1-acl-adv-3000]q
[AR-1]acl 3010
[AR-1-acl-adv-3010]rule permit icmp source 2.2.2.2 0 destination 3.3.3.3 0
[AR-1-acl-adv-3010]q
[AR-1]traffic classifier 3000
[AR-1-classifier-3000]if-match acl 3000
[AR-1-classifier-3000]q
[AR-1]traffic classifier 3010
[AR-1-classifier-3010]if-match  acl 3010
[AR-1-classifier-3010]q
[AR-1]traffic behavior 3000
[AR-1-behavior-3000]remark dscp 10
[AR-1-behavior-3000]q
[AR-1]traffic behavior  3010
[AR-1-behavior-3010]remark dscp 40
[AR-1-behavior-3010]q
[AR-1]traffic policy ybd
[AR-1-trafficpolicy-ybd]classifier 3000 behavior  3000
[AR-1-trafficpolicy-ybd]classifier 3010 behavior  3010
[AR-1-trafficpolicy-ybd]int g0/0/1
[AR-1-GigabitEthernet0/0/1]traffic-policy ybd  outbound

PC1 PING測 3.3.3.3
在這里插入圖片描述

AR-2

[AR-2]int g0/0/0
[AR-2-GigabitEthernet0/0/0]trust dscp override
[AR-2-GigabitEthernet0/0/0]q
[AR-2]qos map-table dscp-lp
[AR-2-maptbl-dscp-lp]input 10 output 3
[AR-2-maptbl-dscp-lp]input 40 output 6

[AR-2]dis qos queue statistics interface GigabitEthernet 0/0/0
在這里插入圖片描述
AR-2

[AR-2]qos queue-profile  ybd
[AR-2-qos-queue-profile-ybd]schedule wfq 0 to 3 pq 6
[AR-2-qos-queue-profile-ybd]q
[AR-2]int g0/0/1
[AR-2-GigabitEthernet0/0/1]qos queue-profile ybd 

[AR-2]dis qos queue statistics interface GigabitEthernet 0/0/1
在這里插入圖片描述

[AR-2]drop-profile d
[AR-2-drop-profile-d]wred dscp 	
[AR-2-drop-profile-d]dscp 10 low-limit 20 high-limit 30 discard-percentage 30
[AR-2-drop-profile-d]q
[AR-2]qos queue-profile 
[AR-2-qos-queue-profile-ybd]queue 3 drop-profile d

三、前言

隨著網路的不斷發展,網路規模及流量型別的不斷增加,使得互聯網流量激增,產生網路擁塞,增加轉發時延,嚴重時還會產生丟包,導致業務質量下降甚至不可用,所以,要在IP網路上開展這些實時性業務,就必須解決網路擁塞問題,而解決網路擁塞的最直接的辦法就是增加網路帶寬,但從網路的建設成本考慮,這是不現實的,

QoS(Quality of Service)技術就是在這種背景下發展起來的,在帶寬有限的情況下,該技術應用一個“有保證”的策略對網路流量進行管理,并實作不同的流量可以獲得不同的優先服務,

四、服務模型有哪些

(1)帶寬永遠不夠
(2)帶寬可以被濫用,業務保證能力弱,
所以為了提高網路的服務質量,單純的提高帶寬,收效可能不大,

最大帶寬 BWmax 等于傳輸路徑上的最小帶寬,

4.1 盡力而為服務模型

在盡力而為的服務模型的網路上可通過增大網路帶寬、升級網路設備等方式來提升網路通信質量,

4.1.1 增大網路帶寬:

在這里插入圖片描述

優點:可以改善帶寬瓶頸、串行化延遲、丟包等問題,
缺點:網路建設成本較高,

4.1.2 升級網路設備:

在這里插入圖片描述

優點:可以改善處理延遲、佇列延遲、丟包等問題,
缺點:成本較高,替換設備增大業務中斷風險,

4.2 綜合服務模型

使設備運行一些協議來保障關鍵業務的通信質量,

在這里插入圖片描述

優點:可以為某些特定業務提供帶寬、延遲保證,
缺點:實作較復雜;當無流量發送時,仍然獨占帶寬,使用率較低;該方案要求端到端所有節點設備都支持并運行RSVP協議,
該服務模型在現實網路中并不多見,

4.3 區分服務模型

為解決綜合服務模型的協議實作復雜性及帶寬利用率低等問題,在網路中可部署DiffServ區分服務模型來保證關鍵業務的通信質量,
在這里插入圖片描述
優點:不同業務可以得到不同的服務質量;可對流量加于區分對待,高優先級流量可得到高的服務,且線路利用率較高,
缺點:對人員要求較高,

目前應用最廣的就是區分服務模型,

4.4 三種服務模型對比

優點缺點
盡力而為服務模型實作機制簡單對不同業務流不能進行區分對待
綜合服務模型可提供端到端QoS服務,并保證帶寬、延遲需要跟蹤和記錄每個資料流的狀態,實作較復雜,且擴展性較差,帶寬利用率較低
區分服務模型不需跟蹤每個資料流狀態,資源占用少,擴展性較強;且能實作對不同業務流提供不同的服務質量需要在端到端每個節點都進行手工部署,對人員能力要求較高

五、報文分類

802.1p 指的是802.1Q的優先級欄位的另外一種叫法

報文分類可依據不同鏈路型別傳輸的不同類別的報文,且其自身所含有的標識QoS優先級的欄位值來進行分類:

5.1 VLAN幀頭中的802.1Q字域
在這里插入圖片描述
5.2 MPLS報文中Label字域
在這里插入圖片描述
5.3 IP報文頭中的ToS字域

在這里插入圖片描述

由于其只能依據一種粗略地分類方式且匹配規則較簡單,故被稱為簡單流分類,

5.4 IPv4報文的DSCP欄位
IP報文中的DSCP欄位值(對IP-Precedence欄位進行了擴充),
在這里插入圖片描述
網路的質量服務默認模式是FIF0 ,先進先出,所有業務一視同仁,沒有區分服務,

為什么要進行分類?
為了提供區分服務,那么流量就必須進行分類,

基于報文本身的標記執行報文的分類
1、802.1P
2、EXP

缺少端到端對報文分類和標記的能力

3、IPP
4、DSCP

可以實作端到端對報文實作分類和標記的能力

PPP
HDLC
FR

IPP
DSCP

5.5 IPv4報文的DSCP欄位

DSCP值有兩種表達方式:
數字形式:DSCP取值范圍為0~63;
關鍵字表達方式:用關鍵字標識的DSCP值,
在這里插入圖片描述
BE:盡力而為,無需做為服務保證非關鍵業務流量
AF:確保轉發,一般用于分配需要帶寬保證的業務流量,對延時,抖動要求不高的業務,FTP,FILE server,SQL
EF∶快速轉發,一般用于分配給需要帶寬保證,低延時,低抖動,低丟包率的業務,viop,viode,
CS:類別服務,主要用于實作和IPP的兼容,

注意:報文的標記值本身不能決定路由器對該報文做何種質量服務,而是取決于管理員對于擁有該標記的報文所執行QOS策略,
故這些標記也僅僅起到分類和標記的作用,

六、華為QOS分類

6.1 簡單流分類

根據報文自身攜帶的標記執行報文的分類;
缺點:報文分類依據比較單一,無法精確區分業務流量,
因為不同業務可能擁有相同的標記,而我們希望給這些相同標記的不同業務要提供區分服務時,就無法很好的支持,簡單流分類適合在DS域內部實施,方便QOS策略的部署,在DS域內提供統一的QOS策略,

6.2 復雜流分類

根據報文多項特征對業務進行精細化分類,精細化的區分業務,提供區分服務能力更強;
缺點:配置比較繁瑣,
復雜流分類適合在DS域的邊緣實施,并結合標記技術,對業務進行統籌管理,

6.3 DS的信任邊界

由DS域的邊界設備組成,邊界設備不應該信任DS域外進入DS域內的流量的標記,因為流量的標記不一定是滿足我們的標記策略的,所以在邊界需要對流量根據DS域的業務分類策略進行業務分類,并重新定義這些流量的標記,方便DS域內的設備根據標記實施簡單流分類,并實施QOS策略,

七、小結

7.1 報文標記的配置

traffic behavior ybd
remark 8021p 1

7.2 流分類

traffic classifier OA operator and “與” 匹配
if-match x
if-match y

報文需要同時滿足x和y條件才屬于定義OA類流量

traffic classifier OA operator or “或” 匹配
if-match x
if-mathc y

報文只要滿足x或者y條件就屬于定義OA類流量

默認運算子為“or”

標記:對分類出的資料進行重標記,讓報文的標記符合我們定制的QOS策略,

7.3 流行為

traffic behavior OA

設定流量操作的行為

7.4 流策略

traffic policy

將流量和行為進行關聯,形成相應的QOS策略,

在介面的inbound或outbound方向上參考流策略,

7.5 基于MQC的命令列模式

MQC模塊化QOS命令

優勢:可讀性強,可移植性強,可編輯能力強,

八、擁塞管理與擁塞避免

學習QOSd 五大方向(前五個)

8.1 業務分類

8.2 流量標記

8.3 擁塞管理

佇列技術
什么是佇列呢?
分為軟體佇列,硬體佇列(硬體佇列滿,即發生擁塞)

佇列的3個組成要素
a.分類機制
b.插入機
c.調度機制

硬體佇列
分類:沒有分類
插入:沒滿就快取
調度:FIFO

設備如何識別發生了擁塞

即出口報文快取佇列滿了,即認為產生擁塞了,

(1)PQ提供快速轉發服務,適合實時型的業務,語音,視頻,直播,

缺點:如果高優先級佇列業務把出口帶寬用完,那么低優先級佇列可能沒有帶寬可以使用,
不能做帶寬保證服務,
什么帶寬保證?就是量化,

(2)RR輪詢佇列,每個佇列都能得到帶寬,不會 “餓死”,帶來延時和抖動,在帶寬分配上沒有體現出區分服務的特點,不能保證帶寬,
(3)WRR
(4)DRR
PQ,WRR,DRR根據報文的優先級分類,進入相應的佇列,

(5)佇列的組成
a.分類機制
決定報文進入哪個佇列
b.插入機制
尾丟棄/WRED
c.調度演算法

(6)WFQ,加權的公平佇列
分類機制

(7)基于“流”的分類

SIP+DIP+SPORT+DPORT+TCP/UDP+TOS進行哈希計算,hash值就是佇列號,并將報文放入到該佇列,

queue llq                //低延時佇列

queue llq bandwidth 1024 //低延時佇列帶寬為1M
af Specify AF (Assured Forwarding) service

適合提供給資料業務,帶寬保證的業務,但不提供低延時服務,

ef Specify EF (Expedited Forwarding)service 

適合提供給實時業務,帶寬保證并監管,提供低延時方服務,

llq Specify LLQ (Low-latency) service

適合提供給語音業務,一種比EF效果更好佇列機制,帶寬保證并監管,提供更低延時業務,

wfq Specify flow-based WFQ for BE (Best-Effort) traffic

基于流的WFQ佇列,適合提供給不需要嚴格QOS保障的業務,

PCT是什么意思?代表分配介面帶寬的百分之十,

CBQ
llq
ef

帶寬保證并監管 1M 監管,不管是否擁塞最多1M,
LLQ,EF 提供低延時,帶寬保證的業務

AF

帶寬保證 1M 不監管,保證1M,不擁塞時可以超過1M

AF 提供帶寬保證業務,

佇列是實作擁塞管理的主要手段,是一種擁塞保證關鍵業務體驗不下降,劣化其他非關鍵業務體驗的一種技術,

不建議把太多的業務放入到LLQ或者EF佇列中,

default-class所有沒有匹配分類策略的報文,默認屬于該類,應用BE佇列,即基于流的WFQ佇列,

佇列調度演算法的比較

在這里插入圖片描述

8.4 擁塞避免

8.5 整形和監管

8.5.1 流量監管技術

優點:可實作對不同類別的報文分別進行限速,
缺點:當鏈路空閑時,造成帶寬浪費;丟棄的流量可能要進行重傳,

8.5.2 流量整形技術

優點:可實作對不同報文分別進行限速;緩沖機制可減少帶寬浪費,減少流量重傳,
缺點:可能會增加延遲,

8.5.3 流量監管與流量整形的比較

在這里插入圖片描述
拓展

入方向為什么不能做整形?

實際上入方向也有快取的,但為什么不能整形,整形他是為了平穩對下行鏈路的一個峰值的控制;如果在入方向做整形的話,首先不能實作上游流量以平穩的方式向我發送資料,因為不能在入方向介面決定,以什么樣峰值過來,我是不能控制,首先起不到對線路上的流量做整形的效果,

佇列的配置方式:

1、基于介面的佇列配置,PQ,WRR,DRR,PQ+WRR,PQ+DRR,PQ+WFQ
2、基于MQC的佇列配置,CBQ
MQC模塊化的QOS命令列介面

traffic classifier
traffic behavior
traffic policy

8.6 LFI(鏈路效率機制)

8.7 壓縮

九、令牌桶技術

cir 位元 cbs 位元組

9.1 關于令牌桶處理報文的方式,RFC中定義了兩種標記演算法:

(1)單速率三色標記(single rate three color marker,srTCM,或稱為單速雙桶演算法)演算法,主要關注報文尺寸的突發,
(2)雙速率三色標記(two rate three color marker,trTCM,或稱為雙速雙桶演算法)演算法,主要關注報文速率的突發,

兩種演算法的評估結果都是為報文打上紅、黃、綠三種顏色的標記,所以稱為“三色標記”,QoS會根據報文的顏色做相應的處理,兩種演算法都可以作業于色盲模式和色敏模式下,

9.2 單速雙桶

CIR:承諾資訊速率,表示向C桶中投放令牌的速率,即C桶允許傳輸或轉發報文的平均速率;
CBS:承諾突發尺寸,表示C桶的容量,即C桶瞬間能夠通過的承諾突發流量;
EBS (Excess Burst Size):超額突發尺寸,表示E桶的容量,即E桶瞬間能夠通過的超出突發流量,

系統按照CIR速率向桶中投放令牌:

若Tc<CBS,Tc增加;
若Tc=CBS,Te<EBS,Te增加;
若Tc=CBS, Te=EBS,則都不增加,

對于到達的報文,用B表示報文的大小:

若B≤Tc,報文被標記為綠色,且Tc減少B;
若Tc<B≤Te,報文被標記為黃色,且Te減少B;
若Tc<B并且Te<B,報文被標記為紅色,且Tc和Te都不減少,

9.3 雙速雙桶

雙速雙桶采用RFC2698定義的雙速三色標記器trTCM (A Two Rate Three Color Marker)演算法對流量進行測評,根據評估結果為報文打顏色標記,即綠色、黃色和紅色,為方便描述將兩個令牌桶稱為P桶和C桶,用Tp和Tc表示桶中的令牌數量,雙速雙桶有4個引數:
PIR (Peak information rate):峰值資訊速率,表示向P桶中投放令牌的速率,即P桶允許傳輸或轉發報文的峰值速率,PIR大于CIR;
CIR:承諾資訊速率,表示向C桶中投放令牌的速率,用C桶允許傳輸或轉發的平均速率;
PBS (Peak Burst Size):峰值突發尺寸,表示P桶的容量,即P桶瞬間能夠通過的峰值突發流量;
CBS:承諾突發尺寸,表示C桶的容量,即C桶瞬間能夠通過的承諾突發流量,

系統按照PIR速率向P桶中投放令牌,按照CIR速率向C桶中投放令牌:

當Tp<PBS時,P桶中令牌數增加,否則不增加,
當Tc<CBS時,C桶中令牌數增加,否則不增加,

對于到達的報文,用B表示報文的大小:

若Tp<B,報文被標記為紅色;
若Tc<B<Tp,報文被標記為黃色,且Tp減少B;
若B≤Tc,報文被標記為綠色,且Tp和Tc都減少B,

9.4 小結

Meter:通過令牌桶機制對網路流量進行度量,向Marker輸出度量結果,
Marker:根據Meter的度量結果對報文進行染色,報文會被染成green、yellow、red三種顏色,
Action:根據Marker對報文的染色結果,對報文進行一些動作,動作包括:

pass:對測量結果為 “符合” 的報文繼續轉發,
remark + pass:修改報文內部優先級后再轉發,
discard:對測量結果為 “不符合” 的報文進行丟棄,

默認情況下,green報文、yellow報文進行轉發,red報文丟棄,

德不正,則事不興,


在這里插入圖片描述

好了這期就到這里了,如果你喜歡這篇文章的話,請點贊評論分享收藏,如果你還能點擊關注,那真的是對我最大的鼓勵,謝謝大家,下期見!

藝博東 CSDN認證博客專家 網路 路由交換
寫博客的初衷:學習、怕學了之后很快會忘記,所以及時的做總結便于以后用到的時候可以快速查閱,也為其積累經驗,
CSDN博客專家,CSDN內容合伙人,
微信公眾號:藝博東
關注后,回復關鍵字“簡歷”,即可領取簡歷模板大全,更多干貨等你來領取,

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/234942.html

標籤:其他

上一篇:VC++獲取網路占用率(附原始碼)

下一篇:Java圖片上傳功能

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more