TỔNG QUAN ĐÁNH GIÁ HIỆU NĂNG MẠNG - Pdf 15

CHƯƠNG 1. TỔNG QUAN ĐÁNH GIÁ HIỆU NĂNG MẠNG
1.1.Khái niệm hiệu năng mạng
Hiệu năng mạng là một vấn đề phức tạp do các yếu tố có thể tổng hợp đưa
ra nhằm đánh giá vấn đề hiệu năng chưa thực sự rõ ràng. Đã có nhiều khái niệm,
tham số được đưa ra nhằm minh chứng cho bản chất của vấn đề hiệu năng, lý
giải cho việc truyền thông tin hiệu quả hay kém hiệu quả giữa các hệ thống trong
mạng. Tuy nhiên, trong thực tế rất cần có những khái niệm bản chất và sát thực
tiễn với mục tiêu đánh giá được toàn bộ vấn đề hiệu năng bao gồm cả các yếu tố
đo đạc, theo dõi, điều khiển đều được tính đến. Có thể sơ lược khái niệm hiệu
năng mạng như sau: Hiệu năng mạng là hiệu quả và năng lực hoạt động của hệ
thống mạng. Như vậy, việc đánh giá hiệu năng mạng chính là tính toán và xác
định hiệu quả, năng lực thực sự của hệ thống mạng trong các điều kiện khác
nhau.
Các điều kiện được sử dụng trong đánh giá hiệu năng là rất quan trọng,
chúng ảnh hưởng trực tiếp tới các kết quả thu được. Trong các điều kiện ảnh
hưởng tới quá trình đánh giá hiệu năng thì kịch bản mô tả là yếu tố then chốt
quyết định giá trị hiệu năng tại điểm cần đo. Trong kịch bản cần xác định các
tham số đầu vào rõ ràng như các nút tham gia hệ thống, thiết bị kết nối, tác nhân
tham gia, giao thức hoạt động, ứng dụng triển khai, thời gian thực hiện, và rất
nhiều yếu tố khác kết hợp tạo ra một kịch bản hoàn thiện.
1.2.Các phương pháp đánh giá hiệu năng
1.2.1. Phương pháp toán học
Việc sử dụng các phương pháp toán trong tính toán hiệu năng mạng đã
được thực hiện từ lâu, trong đó các công cụ toán học đã được sử dụng rất linh
hoạt và đa dạng như xác suất thống kê, đồ thị, quy hoạch, luồng, để giải quyết
nhiều vấn đề trong hiệu năng. Ưu điểm chính của phương pháp toán học là có
1
thể xác định các ngưỡng giá trị của hệ thống qua việc xác định mối tương quan
giữa các yếu tố trước khi tồn tại hệ thống. Nhưng khi áp dụng trong thực tế, việc
mô tả đầy đủ các yếu tố đầu vào cho bài toán là cực kỳ khó khăn do vậy kết quả
của phương pháp này còn nhiều hạn chế.

đặc trưng cho vấn đề này. Trong đó, 5 tham số sau đây được sử dụng như những
khái niệm điển hình mà nhìn vào chúng có thể cho thấy kết quả của đánh giá
hiệu năng mạng.
1.3.1. Tính sẵn sàng (Availability)
Tính sẵn sàng là thước đo đầu tiên khi xác định và đánh giá hiện trạng mạng
có khả năng phục vụ, đáp ứng yêu cầu hay không. Tham số này cho phép chỉ ra
luồng thông tin có đang được chuyển tiếp qua hệ thống mạng hay bị tắc nghẽn
cần phải xử lý, các dịch vụ mạng đang được cung cấp có sẵn sàng cho việc trả
lời các yêu cầu đưa ra. Vấn đề liên thông giữa các hệ thống trong mạng cũng
được đề cập trong tính sẵn sàng.
Một trong các công cụ, phương pháp đơn giản thường được sử dụng khi
kiểm tra tính sẵn sàng của hệ thống mạng là sử dụng chương trình ping. Chương
trình khi thực hiện sẽ gửi các gói tin dưới giao thức ICMP tới phía máy cần kiểm
tra và đợi kết quả trả lời, nếu có kết quả trả lời chúng ta có thể xác định được
tính sẵn sàng của hệ thống đích
3
Hình 1.1 Kiểm tra tính sẵn sàng với chương trình ping
Trong ví dụ trên, yêu cầu gửi đi đã có kết quả đáp ứng, trong một số trường
hợp và tình huống thực tế việc mất gói tin thường xuyên xảy ra, điều nay có thể
do nhiều nguyên nhân khác nhau, trong đó có một số nguyên nhân điển hình sau:
- Xung đột xảy ra giữa các phân đoạn mạng: Các giao thức điều khiển
truy cập đóng vai trò quan trọng trong quá trình kiểm soát xung đột,
việc lựa chọn giao thức phù hợp ảnh hưởng lớn tới xử lý các gói tin
khi hệ thống gặp vấn đề.
- Các gói tin bị hủy bởi các thiết bị mạng: Mỗi thiết bị đều có những bộ
đệm nhằm lưu trữ những gói tin chưa kịp xử lý. Để kiểm soát bộ đệm,
thông thường các thiết bị sẽ sử dụng một số giải thuật nhằm duy trì
trật tự của bộ đệm như giải thuật DropTail, RED, DDR, trong các
giải thuật này luôn tồn tại phương án hủy gói tin khi thỏa mãn điều
kiện hủy nhằm duy trì hoạt động tốt nhất cho thiết bị, tránh tắc nghẽn

2.940/2.992/3.133/0.060 ms
1.3.3. Khả năng sử dụng mạng (Network utilization)
Khi hệ thống mạng hoạt động, việc đánh giá khả năng sử dụng mạng là
yếu tố quan trọng khi cần đánh giá hiệu năng mạng. Hệ thống mạng có thể hoạt
động ở trạng thái bình thường trong đa số thời gian, tuy nhiên trong thực tế thì hệ
thống có thể chưa hoạt động hết công suất và khả năng, như vậy phần dư thừa
khi xây dựng mạng chưa tính đến cũng là yếu tố giảm đi hiệu năng của hệ thống.
Để tính tham số khả năng sử dụng mạng, thông thường công thức chính được sử
dụng là phần trăm thời gian sử dụng mạng trong suốt thời gian hoạt động mạng.
Trong rất nhiều tình huống, có những thời điểm hệ thống sử dụng 100% công
suất nhưng có những thời điểm là về 0% cho trạng thái không có yêu cầu. Để
tăng tính chính xác khi xác định khả năng sử dụng mạng, việc tính toán lưu
lượng dữ liệu được truyền qua hệ thống trong tổng thời gian hoạt động đã được
sử dụng. Giá trị cụ thể khi tính toán còn phụ thuộc nhiều vào phương thức truyền
trên các kết nối được sử dụng tại các giao diện mạng. Ví dụ ở chế độ truyền bán
6
song công (Half duplex) chỉ có dữ liệu một chiều tại một thời điểm và như vậy
việc tính khả năng sử dụng mạng liên quan tới tỷ lệ tổng lượng vào ra trong suốt
thời gian trên khả năng của thiết bị tại thời điểm đo. Công thức tính khả năng sử
dụng mạng như sau:
NU = 100*(DS + DR) / (TP * ST)
NU (Network Ultilization): Khả năng sử dụng mạng,
được đo bằng tỉ lệ phần trăm
DS (Data send): Lượng dữ liệu được gửi đi trong
thực tế
DR (Data receive): Lượng dữ liệu nhận về trong thực
tế
TP (Throughput): Thông lượng cho phép của kết nối
ST (Sample Time): Thời gian hoạt động.
Ví dụ: Với thông lượng cho phép 10MB ở chế độ kết nối bán song công,

lượng mạng trong thời điểm cần đo. Tổng dung lượng băng thông có khả năng
giữa hai nút mạng sẽ ảnh hưởng lớn tới hiệu năng của mạng điều này là khá hiển
8
nhiên, khi ta kết nối mạng 100BaseTX thì đương nhiên luôn nhanh hơn với kết
nối T1. Tuy nhiên việc xác định khẳ năng của băng thông giữa 2 điểm cần đo
thường rất phức tạp do tổng thể kết nối của hệ thống tác động (mô tả tại hình
1.3), do vậy đòi hỏi phải có kỹ thuật cụ thể trong việc xác định giá trị lớn nhất
trong khả năng của băng thông mạng khi hoạt động. Có 2 kỹ thuật chính được sử
dụng để xác định khả năng băng thông đó là kỹ thuật packet pair/packet train và
kỹ thuật thống kê gói tin.
.
Hình 1.4 Minh họa kỹ thuật packet pair/packet train
1.4.Phần mềm đánh giá hiệu năng
1.4.1. Ns2
Đây là phần mềm mô phỏng mạng được phát triển từ đại học California
Berkeley nhằm thay thế cho phương pháp đo đạc trên hệ thống thực. Ns2 là gói
phần mềm mô phỏng theo phương pháp rời rạc, đây là phần mềm tổng thể có sự
tham gia của ngôn ngữ C++, Tcl, oTcl. Hiện tại số lượng các module đã được
xây dựng trong gói phần mềm Ns2 là rất lớn như nam, ns, xgraph, awk,
1.4.2. SSFNet
SSFNet ứng dụng bộ công cụ phát triển SSF (Scalable Simulation
Framework), đây là ngôn ngữ mô phỏng tương đối chuẩn, có khả năng triển khai
mô hình hóa mô phỏng của nhiều yếu tố mạng, lưu lượng mạng. Ngoài SSFNet
sử dụng trong SSF để mô phỏng mạng còn có phần mềm DaSSF (Dartmouth
9
SSF). Cả hai gói trên đều có thể triển khai mô hình mạng khi mô phỏng các
mạng cỡ lớn. Gói DaSSF sử dụng ngôn ngữ C++ để mô phỏng thiết bị, kết nối,
sự kiện. Gói SSFNet sử dụng ngôn ngữ Java.
1.4.3. Một số phần mềm
Ngoài hai phần mềm bên trên, còn có nhiều phần mềm mô phỏng mạng,

Điểm khác biệt với NS v1: lớp TclObject được đưa vào sớm hơn lớp NsObject.
Vì thế nó lưu trữ giao diện các kết nối thay đổi, kết nối các đặc tính khác nhau
11
trong các đối tượng thông dịch sao cho phù hợp với các biến thành viên của đối
tượng biên dịch. Quá trình kết nối mạnh hơn trong NS v1 vì bất kỳ sự thay đổi
nào liên quan đến các biến của OTcl đều được giữ lại, và các giá trị hiện tại của
C++ và OTcl đều được nhất quán sau mỗi truy suất trong trình thông dịch. Sự
nhất quán được thực hiện thông qua lớp InstVar. Và cũng không giống NS v1,
các đối tượng trong lớp TclObject không lưu trữ dài như trong một danh sách
liên kết chung. Thay vì vậy, chúng được lưu trữ trong bảng phân cấp (hash table)
bên trong lớp Tcl.
Minh họa cấu hình của một đối tượng TclObject: Ví dụ sau đây minh họa cho
quá trình cấu hình một tác nhân SRM (lớp Agent/SRM/Adaptive).
set srm [new Agent/SRM/Adaptive]
$srm set packetSize_ 1024
$srm traffic-source $s0
Quy ước trong NS, lớp Agent/SRM/Adaptive là lớp con của Agent/SRM,
Agent/SRM là lớp con của Agent, Agent là lớp con của TclObject. Tương ứng
với lớp biên dịch phân cấp là ASRMAgent, là lớp con của SRMAgent,
SRMAgent là lớp con của Agent, Agent là lớp con của TclObject.
Dòng lệnh đầu tiên cho biết cách một đối tượng TclObject được tạo ra (hay hủy
bỏ).
Dòng lệnh thứ hai cấu hình một biến giới hạn (bound variable).
Dòng lệnh cuối cùng trình bày quá trình đối tượng thông dịch gọi phương thức
C++ khi chúng đã là một thủ tục đặc tính (instance).
2.2.2. TclClass
12
Lớp biên dịch này (TclClass) là một lớp ảo hòan tòan. Các lớp này xuất phát từ
lớp cơ sở cung cấp hai chức năng sau:
Tạo cấu trúc cho lớp trình trình thông dịch phân cấp để phản ánh lớp biên dịch

⇒ Lớp này liên kết chặt chẽ với lớp RenoTcpAgent; nó tạo ra các đối tượng mới
trong lớp liên kết này.
⇒ Phương thức The RenoTcpClass::create trả về đối tượng TclObjects trong lớp
RenoTcpAgent.
⇒ Khi người sử dụng ghi rõ new Agent/TCP/Reno, thủ tục
RenoTcpClass::create đựơc gọi.
⇒ Các đối số vector (argv) gồm có:
 argv[0] lưu trữ tên của đối tượng.
 s argv[1 3] lưu trữ $self, $class, and $proc. Vì create được gọi thông
qua thủ tục đặc tính create-shadow
 argv[3] lưu trữ create-shadow.
 argv[4] lưu trữ bất kỳ đối số được thêm vào (đưa vào một chuỗi) cung
cấp bởi người sử dụng.
Lớp Trace minh hoạ các đối số điều khiển bởi các phương thức TclClass
class TraceClass : public TclClass {
public:
14
TraceClass() : TclClass("Trace") {}
TclObject* create(int args, const char*const* argv) {
if (args >= 5)
return (new Trace(*argv[4]));
else
return NULL;
}
} trace_class;
Một đối tượng Trace mới được tạo như sau:
new Trace “X”
Cuối cùng, thực chất của vấn đế là làm thế nào để lớp thông dịch phân cấp được
cấu trúc hóa:
1. Quá trình tạo cấu trúc đối tượng được thực thi khi NS bắt đầu.

- Lớp InstVarBool
Tương đương với quá trình kết nối các biến có giá trị real, time, bandwidth,
interger và Boolean theo thứ tự.
Bây giờ, chúng ta mô tả cơ chế thông qua quá trình cài đặt các biến. Chúng ta sử
dụng lớp InstVarReal cho mô tả cơ sở. Tuy nhiên cơ chế này có thể ứng dụng
với cả 5 dạng của các biến.
Khi cài đặt một biến cho trình thông dịch để truy suất đến một biến thành viên,
các hàm thành viên của lớp InstVar thực thi bên trong quá trình thực thi các
phương pháp tiếp cận. Vì vậy, chúng không yêu cầu trình thông dịch phải xác
định ngữ cảnh nào biến này phải tồn tại.
16
Để đảm bảo mức chính xác trong quá trình thực thi, một biến chỉ biên dịch khi
lóp của nó sẵn sàng thiết lập bên trong trình thông dịch, và trình thông dịch phải
đang được tiến hành trên một đối tượng trong lớp đó. Chú ý rằng những nhà phát
minh yêu cầu khi một phương thức được đưa ra trong một lớp phải làm cho các
biến có thể truy suất thông qua trình thông dịch, ở đó phải là là lớpliên kết
TclClass. Phương thức tiếp cận quá trình thực thi có thể được tạo ra bởi một hay
hai cách:
- Cách thứ nhất là khi một đối tượng TclObject được tạo ra bên trong trình thông
dịch. Từ đây cài đặt quá trình thực thi phương thức bên trong trình thông dịch.
Khi biên dịch đối tượng shadow của trình thông dịch, đối tượng TclObject được
tạo ra. Quá trình tạo ra cấu trúc mà đối tượng biên dịch có thể kết nối các biến
thành viên của đối tượng đó để thông dịch các biến trong khi tạo ra đối tượng
thông dịch mới hơn.
- Cách thứ hai là định nghĩa một biến kết hợp bên trong một hàm lệnh, sau đó
được gọi thông qua phương thức cmd. Quá trình thực thi phương thức một cách
chính xác được thiết lập để mà thực thi phương thức cmd Ngược lại, mã trình
biên dịch được đang thực thi trên quá trình tiếp cận đối tượng shadow và có thể
vì vậy kết nối một cách cẩn thận các biến thành viên yêu cầu.
Một biến được tạo ra bằng cách chỉ ra tên của biến thông dịch, và địa chỉ của các

Tác nhân rỗng (null agent) được tạo với việc gọi:
set nullAgent_ [new Agent/Null]
Tác nhân này nói chung rất có ích như một vùng cho việc loại bỏ các gói hay
như một đích đến cho các gói không có giá trị hay không ghi lại được.
18
2.3.2. Lịch lập trình và các sự kiện.
Việc mô phỏng là một mô phỏng điều khiển sự kiện. Hiện nay có 4 kiểu
lịch lập trình, mỗi cái sử dụng một cấu trúc dữ liệu khác nhau: một danh sách
liên kết đơn, heap (vun đống), hàng đợi lịch, và một kiểu đặc biệt được gọi là
“thời gian thực” (real-time). Mỗi cái sẽ được mô tả cụ thể dưới đây. Lịch lập
trình chạy bằng cách chọn ra sự kiện sớm nhất kế tiếp, thực thi nó tới khi hoàn
thành và quay trở lại thực thi sự kiện tiếp theo. Đơn vị thời gian sử dụng trong
lịch lập trình là giây. Hiện tại việc mô phỏng là đơn tuyến, chỉ một sự kiện được
thực thi tại một thời điểm. Nếu có nhiều hơn một sự kiện được lập trình để thực
thi trong cùng thời gian thì việc thực thi được thực hiện trên một lịch lập trình
đầu tiên – cái đầu tiên được gởi đi. Các sự kiện đồng thời không được sắp xếp lại
theo bất cứ lịch lập trình nào và tất cả các lịch lập trình nên sắp theo thứ tự
giống nhau để gởi đi đến cùng một điểm vào.
2.3.3. Danh sách lịch lập trình
Lớp Scheduler hay List (class Scheduler/List) thực thi lập lịch lập trình sử
dụng cấu trúc danh sách liên kết đơn. Danh sách được giữ trong một thứ tự thời
gian (từ sớm nhất đến muộn nhất), vì thế sự kiện thêm vào và xóa đi yêu cầu
phải quét qua danh sách để tìm phần tử tương ứng. Lựa chọn sự kiện tiếp theo để
thực thi yêu cầu phải là phần tử đầu tiên trên cùng của danh sách. Việc thực thi
này duy trì việc thực thi các sự kiện theo cơ chế FIFO (First In First Out) cho các
sự kiện đồng bộ.
2.3.4. Lập trình heap.
Lập trình heap (class Scheduler/ Heap) thực thi lịch lập trình sử dụng một
cấu trúc heap (hay vun đống). Cấu trúc này dùng cho một số lượng lớn các sự
kiện, như việc thêm vào và xoá thời gian O(log n) cho n sự kiện. Việc thực thi

- Simulator instproc flush-trace (Thêm tất cả các đối tượng dò tìm vào bộ đệm)
- Simulator instproc create-trace type files src dst (tạo đối tượng dò tìm)
- Simulator instproc create_packetformat( thiết lập định dạng các gói mô phỏng.)
2.4. Quá trình chuyển tiếp các node và gói
Phần nay trình bày một phương diện của quá trình tạo một topo trong NS, nghĩa
là tạo ra các node. . Lớp này cung cấp các thủ tục đặc tính để tạo và quản lý topo,
và bộ lưu trữ bên trong tham chiếu đến mỗi thành phần của topo
2.4.1. Node Basics
Cơ sở đầu tiên để tạo ra một node là:
set ns [new Simulator]
$ns node
Thủ tục đặc tính Node tạo cấu trúc một node bên ngoài các đối tượng phân lớp
(classifier) đơn giản. Tự bản thân Node chính là một lớp chuẩn độc lập trong
OTcl. Tuy nhiên, hầu hết các thành phần cấu thành của node lại chính là các
TclObject. Dạng cấu trúc của một node unicast được biểu diễn trong hình dưới
đây. Đây là dạng cấu trúc đơn giản, gồm có hai đối tượng TclObjects:
- Địa chỉ phân lớp (classifer_)
- Cổng phân lớp (dmux_).
Chức năng của những phân lớp này được dùng để phân phối đến các packet đển
các agent xác định hay gởi đi các link.
Tất cả các node lưu trữ ít nhất một trong các thành phần sau:�
- Địa chỉ hay id_, tăng lên 1 cách đều đặn (từ giá trị ban đầu 0) khi các node
được tạo ra
- Danh sách của các lân cận (neighbor_)
21
Hình 2.1. Cấu trúc của một node Unicast
22
Entry_ là một biến nhãn đơn giản thay thế cho một đối tượng thực (real), ví dụ
như classifier_.
- Danh sách của các agent (agent_)

chỉ thị bởi node id, và lưu trữ một tham chiếu đến node với id đó.
- Thủ tục $node agent <port> trả về kết quả tìm kiếm agent tại port. Nếu
không có agent nào tại chỉ số port là biến, thủ tục trả về chuỗi giá trị null.
- Thủ tục alloc-port trả về biến của chỉ số port kế tiếp. Nó sử dụng một biến cụ
thể, np_, để kiểm tra chỉ số port vị trí kế tiếp không xác định được.
24
- Các thủ tục, add-route và add-routes được sử dụng bới định tuyến unicast để
thêm các router vào vùng phân lớp classifier. Sử dụng cú pháp là:
$node add-route <destination id><TclObject>.
- TclObject là chỉ mục của dmux_, port demultiplexer tại node, nếu id đích giống
với id của node này, nó thường là phần đầu của link để gửi các packet đến đích
đó, nhưng cũng có thể là chỉ mục cho các phân lớp khác hay các dạng khác của
phân lớp.
- $node add-routes <destination id><TclObjects> được sử
dụng để thêm nhiều router đến cùng một đích cùng một lúc trong dạng luân
chuyển (round robin manner) để mở rộng băng thông sử dụng để đến được đích
đó thông qua tất cả các link tương tự. Nó chỉ được sử dụng nếu biến cụ thể
multiPath_ được đặt là 1, và quá trình điều hành chi tiết định tuyến động có hiệu
quả, và yêu cầu sử dụng một phân lớp với multipath.
- Đi kèm với add-routes{} là delete-routes{}.
* add-routes{} Tạo ra id, một danh sách của TclObjects, và tham chiếu đến
nullagent của trình mô phỏng.
* delete-routes{} Gỡ bỏ TclObject trong danh sách của quá trình cài đặt
các tuyến (routes) trong phân lớp multipath. Nếu tuyến nhập vào trong phân lớp
classifrier không trỏ đến phân lớp multipath, thông thường thì xóa bỏ chỉ mục từ
classifirer_, và cài đặt nullagent trong không gian của nó.
- Chi tiết quá trình định tuyến động cũng sử dụng hai phương thức thêm vào:
* Thủ tục init-routing{} thiết lập biến cụ thể multiPath_ tương tự như lớp
biến cùng tên. Nó cũng thêm vào một tham chiếu đến đối tượng điều khiển định
tuyến trong biến cụ thể, rtObject_.Thủ tục rtObject?{} trả về quyền điều khiển


Nhờ tải bản gốc
Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status