Tải bản đầy đủ (.doc) (73 trang)

đồ án: Kết hợp DiffServ và MPLS trong việc đảm bảo chất lượng dịch vụ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (793.41 KB, 73 trang )

MỤC LỤC

3
Lời mở đầu
Bảng tra cứu từ viết tắt
CHƯƠNG 2 MPLS, KỸ THUẬT LƯU LƯỢNG VÀ CÁC CƠ CHẾ KHÔI PHỤC
CHƯƠNG 3 SỰ KẾT HỢP GIỮA DIFFSERV VÀ MPLS
CHƯƠNG 4 CHƯƠNG TRÌNH VÀ KẾT QUẢ MÔ PHỎNG SỰ KẾT
HỢP DIFFSERV VÀ MPLS
PHỤ LỤC

Mã nguồn mô phỏng DiffServ trong IP
set ns [new Simulator]
set nf_nam [open script2.nam w]
$ns namtrace-all $nf_nam
set nf [open script2.tr w]
$ns trace-all $nf
set f1 [open UDP1.tr w]
puts $f1 \n\"UDP_EF"
set f2 [open UDP2.tr w]
puts $f2 \n\"UDP_AF"
set f3 [open UDP3.tr w]
puts $f3 \n\"UDP_BE"
# So do ket noi mang
#
# R0 R4 + R8
# \ / | \ /
# 10M ,5ms \ / | \ /
# R1 R3 | R7 R9
# / \ | / \
# / \ 5M, 10ms | / \


# R2 R5 R6 / R10
foreach i "0 1 2 3 4 5 6 7 8 9 10" {
set R$i [$ns node]
}
# Khai bao link: nodes bw delay queue
$ns duplex-link $R0 $R3 10Mb 5ms DropTail
$ns duplex-link $R1 $R3 10Mb 5ms DropTail
$ns duplex-link $R2 $R3 10Mb 5ms DropTail
$ns simplex-link $R3 $R4 5Mb 10ms dsRED/edge
$ns simplex-link $R4 $R3 5Mb 10ms dsRED/core
$ns simplex-link $R3 $R5 5Mb 10ms RED
$ns simplex-link $R5 $R3 5Mb 10ms RED
$ns simplex-link $R5 $R6 5Mb 10ms RED
$ns simplex-link $R6 $R5 5Mb 10ms RED
$ns simplex-link $R4 $R6 5Mb 10ms dsRED/core
$ns simplex-link $R6 $R4 5Mb 10ms dsRED/edge
$ns simplex-link $R4 $R7 5Mb 10ms dsRED/core
$ns simplex-link $R7 $R4 5Mb 10ms dsRED/edge
$ns simplex-link $R6 $R7 5Mb 10ms RED
$ns simplex-link $R7 $R6 5Mb 10ms RED
$ns duplex-link $R7 $R8 10Mb 5ms DropTail
$ns duplex-link $R7 $R9 10Mb 5ms DropTail
$ns duplex-link $R7 $R10 10Mb 5ms DropTail
# Dinh nghia cac bien hang doi
set qEdge1ToCore [[$ns link $R3 $R4] queue]
set qEdge2ToCore [[$ns link $R7 $R4] queue]
set qEdge3ToCore [[$ns link $R6 $R4] queue]
set qCoreToEdge1 [[$ns link $R4 $R3 ] queue]
set qCoreToEdge2 [[$ns link $R4 $R7 ] queue]
set qCoreToEdge3 [[$ns link $R4 $R6 ] queue]

# Thiet lap thong so DiffServ va mode hoat dong
$qEdge1ToCore meanPktSize $packetSize
$qEdge1ToCore set numQueues_ 3
$qEdge1ToCore setNumPrec 3
$qEdge1ToCore setSchedularMode PRI
$qEdge1ToCore addPolicyEntry [$R0 id] [$R8 id] TSW3CM 10 $ensureServCIR
$ensureServPIR
$qEdge1ToCore addPolicyEntry [$R1 id] [$R9 id] TSW3CM 20
$bestEffortServ1CIR $bestEffortServ1PIR
$qEdge1ToCore addPolicyEntry [$R2 id] [$R10 id] TSW3CM 30
$bestEffortServ2CIR $bestEffortServ2PIR
$qEdge1ToCore addPolicerEntry TSW3CM 10 11 12
$qEdge1ToCore addPolicerEntry TSW3CM 20 21 22
$qEdge1ToCore addPolicerEntry TSW3CM 30 31 32
$qEdge1ToCore addPHBEntry 10 0 0
$qEdge1ToCore addPHBEntry 11 0 1
$qEdge1ToCore addPHBEntry 12 0 2
$qEdge1ToCore addPHBEntry 20 1 0
$qEdge1ToCore addPHBEntry 21 1 1
$qEdge1ToCore addPHBEntry 22 1 2
$qEdge1ToCore addPHBEntry 30 2 0
$qEdge1ToCore addPHBEntry 31 2 1
$qEdge1ToCore addPHBEntry 32 2 2
$qEdge1ToCore addPHBEntry 0 2 2
$qEdge1ToCore configQ 0 0 20 40 0.01
$qEdge1ToCore configQ 0 1 10 50 0.1
$qEdge1ToCore configQ 0 2 10 50 0.3
$qEdge1ToCore configQ 1 0 20 40 0.01
$qEdge1ToCore configQ 1 1 10 50 0.1
$qEdge1ToCore configQ 1 2 10 50 0.3

$qEdge1ToCore configQ 2 0 20 40 0.01
$qEdge1ToCore configQ 2 1 10 50 0.1
$qEdge1ToCore configQ 2 2 10 50 0.3
#
# Thiet lap luu luong
set sink1 [new Agent/LossMonitor]
$ns attach-agent $R8 $sink1
$sink1 clear
set sink2 [new Agent/LossMonitor]
$ns attach-agent $R9 $sink2
$sink2 clear
set sink3 [new Agent/LossMonitor]
$ns attach-agent $R10 $sink3
$sink3 clear
set null1 [new Agent/Null]
$ns attach-agent $R8 $null1
set null2 [new Agent/Null]
$ns attach-agent $R9 $null2
set null3 [new Agent/Null]
$ns attach-agent $R10 $null3
# Thiet lap cac luong UDP tu nguon den dich
set udp1 [new Agent/UDP]
$udp1 set packetSize_ $ensureServPacketSize
$ns attach-agent $R0 $udp1
set cbr1 [new Application/Traffic/CBR]
$cbr1 set packetSize_ $ensureServPacketSize
$cbr1 set rate_ $ensureServRate
$cbr1 attach-agent $udp1
$udp1 set fid_ 1
$ns color 1 red

$ns connect $udp1 $sink1

set udp2 [new Agent/UDP]
$udp2 set packetSize_ $bestEffortServ1PacketSize
$ns attach-agent $R1 $udp2
set cbr2 [new Application/Traffic/CBR]
$cbr2 set packetSize_ $bestEffortServ1PacketSize
$cbr2 set rate_ $bestEffortServ1Rate
$cbr2 attach-agent $udp2
$udp2 set fid_ 2
$ns color 2 green
$ns connect $udp2 $sink2
set udp3 [new Agent/UDP]
$udp3 set packetSize_ $bestEffortServ2PacketSize
$ns attach-agent $R2 $udp3
set cbr3 [new Application/Traffic/CBR]
$cbr3 set packetSize_ $bestEffortServ2PacketSize
$cbr3 set rate_ $bestEffortServ2Rate
$cbr3 attach-agent $udp3
$udp3 set fid_ 3
$ns color 3 blue
$ns connect $udp3 $sink3
#
# Thu tuc xuat tong so packet nhan duoc o cac sink
proc recv-pkts {} {
global sink1 sink2 sink3 f1 f2 f3
set ns [Simulator instance]
set msg " Luong UDP1 da truyen [$sink1 set expected_] goi, mat [$sink1 set
nlost_] goi, ti le mat goi la [string range [expr [$sink1 set nlost_]*100.0/[$sink1 set
expected_]] 0 3] */*"

puts $msg
$ns trace-annotate $msg
set msg " Luong UDP2 da truyen [$sink2 set expected_] goi, mat [$sink2 set
nlost_] goi, ti le mat goi la [string range [expr [$sink2 set nlost_]*100.0/[$sink2 set
expected_]] 0 3] */*"
puts $msg
$ns trace-annotate $msg

set msg " Luong UDP3 da truyen [$sink3 set expected_] goi, mat [$sink3 set
nlost_] goi, ti le mat goi la [string range [expr [$sink3 set nlost_]*100.0/[$sink3 set
expected_]] 0 3] */*"
puts $msg
$ns trace-annotate $msg
#
# Thu tuc bat bang thong
proc record {} {
global sink1 totalpkt1 f1 sink2 totalpkt2 f2 sink3 totalpkt3 f3
set ns [Simulator instance]
set time 0.05
#How many bytes have been received by the traffic sink?
set bw1 [$sink1 set bytes_]
set bw2 [$sink2 set bytes_]
set bw3 [$sink3 set bytes_]
set now [$ns now]
# Tinh bang thong (MBit/s)
puts $f1 "$now [expr $bw1/$time*8/1000000]"
puts $f2 "$now [expr $bw2/$time*8/1000000]"
puts $f3 "$now [expr $bw3/$time*8/1000000]"
$sink1 set bytes_ 0
$sink2 set bytes_ 0

$sink3 set bytes_ 0
$ns at [expr $now+$time] "record"
}
#
# Thu tuc goi ham ket thuc
proc finish {} {
global ns nf nf_nam f1 f2 f3 throughput
$ns flush-trace
close $nf
close $nf_nam
close $f1
close $f2
close $f3
exec cat UDP1.tr >@ $throughput
exec cat UDP2.tr >@ $throughput
exec cat UDP3.tr >@ $throughput
close $throughput
exec xgraph -bb -bg white -fg black -zg black -x time(s) -y "BW(Mb/s)"
-geometry 800x400 -t "SCRIPT2 MO PHONG MANG IP SU DUNG DIFFSERV" -tf
"helvetica-13" throughput.xg &
}
$ns run
Mô phỏng mạng MPLS kết hợp DiffServ
# Khai bao node
set R0 [$ns node]
set R1 [$ns node]
set R2 [$ns node]
set LSR3 [$ns mpls-node]
set LSR4 [$ns mpls-node]
set LSR5 [$ns mpls-node]

set LSR6 [$ns mpls-node]
set LSR7 [$ns mpls-node]
set R8 [$ns node]
set R9 [$ns node]
set R10 [$ns node]
# link: nodes bw delay queue
$ns duplex-link $R0 $LSR3 10Mb 5ms DropTail
$ns duplex-link $R1 $LSR3 10Mb 5ms DropTail
$ns duplex-link $R2 $LSR3 10Mb 5ms DropTail
$ns simplex-link $LSR3 $LSR4 5Mb 10ms dsRED/edge
$ns simplex-link $LSR4 $LSR3 5Mb 10ms dsRED/core
$ns simplex-link $LSR3 $LSR5 5Mb 10ms RED
$ns simplex-link $LSR5 $LSR3 5Mb 10ms RED
$ns simplex-link $LSR5 $LSR6 5Mb 10ms RED
$ns simplex-link $LSR6 $LSR5 5Mb 10ms RED
$ns simplex-link $LSR4 $LSR6 5Mb 10ms dsRED/core
$ns simplex-link $LSR6 $LSR4 5Mb 10ms dsRED/edge
$ns simplex-link $LSR4 $LSR7 5Mb 10ms dsRED/core
$ns simplex-link $LSR7 $LSR4 5Mb 10ms dsRED/edge
$ns simplex-link $LSR6 $LSR7 5Mb 10ms RED
$ns simplex-link $LSR7 $LSR6 5Mb 10ms RED
$ns duplex-link $LSR7 $R8 10Mb 5ms DropTail
$ns duplex-link $LSR7 $R9 10Mb 5ms DropTail
$ns duplex-link $LSR7 $R10 10Mb 5ms DropTail
$qEdge1ToCore meanPktSize $packetSize
$qEdge1ToCore set numQueues_ 3
$qEdge1ToCore setNumPrec 3
$qEdge1ToCore setSchedularMode PRI
$qEdge1ToCore addPolicyEntry [$R0 id] [$R8 id] TSW3CM 10 $ensureServCIR
$ensureServPIR

$qEdge1ToCore addPolicyEntry [$R1 id] [$R9 id] TSW3CM 20
$bestEffortServ1CIR $bestEffortServ1PIR
$qEdge1ToCore addPolicyEntry [$R2 id] [$R10 id] TSW3CM 30
$bestEffortServ2CIR $bestEffortServ2PIR
$qEdge1ToCore addPolicerEntry TSW3CM 10 11 12
$qEdge1ToCore addPolicerEntry TSW3CM 20 21 22
$qEdge1ToCore addPolicerEntry TSW3CM 30 31 32
$qEdge1ToCore addPHBEntry 10 0 0
$qEdge1ToCore addPHBEntry 11 0 1
$qEdge1ToCore addPHBEntry 12 0 2
$qEdge1ToCore addPHBEntry 20 1 0
$qEdge1ToCore addPHBEntry 21 1 1
$qEdge1ToCore addPHBEntry 22 1 2
$qEdge1ToCore addPHBEntry 30 2 0
$qEdge1ToCore addPHBEntry 31 2 1
$qEdge1ToCore addPHBEntry 32 2 2
$qEdge1ToCore addPHBEntry 0 2 2
$qEdge1ToCore configQ 0 0 20 40 0.01
$qEdge1ToCore configQ 0 1 10 50 0.1
$qEdge1ToCore configQ 0 2 10 50 0.3
$qEdge1ToCore configQ 1 0 20 40 0.01
$qEdge1ToCore configQ 1 1 10 50 0.1
$qEdge1ToCore configQ 1 2 10 50 0.3
$qEdge1ToCore configQ 2 0 20 40 0.01
$qEdge1ToCore configQ 2 1 10 50 0.1
$qEdge1ToCore configQ 2 2 10 50 0.3

# Cau hinh LDP agent tren tat ca cac nut MPLS
$ns configure-ldp-on-all-mpls-nodes
# Thiet lap mau cho cac ban tin

$ns ldp-request-color blue
$ns ldp-mapping-color red
$ns ldp-withdraw-color magenta
$ns ldp-release-color orange
$ns ldp-notification-color green
# Thiet lap LSP
proc notify-erlsp-setup {node lspid} {
global cbr1 cbr2 cbr3 LSR3 LSR4 LSR7
set ns [Simulator instance]
set module [$node get-module "MPLS"]
switch $lspid {
9999 { # LSP_9999 choose shortest path to edgress
set msg " [string range [$ns now] 0 3]s: Tunnel LSP_$lspid
(Ingress=LSR[$node id]) tu dong chon duong ngan nhat den Egress !"
puts $msg
$ns trace-annotate $msg
}
default {
puts " Error!"
exit 1
}
}
}

#
# Co che khoi phuc: SIMPLE-DYNAMIC
#$ns enable-reroute simple-dynamic
#[$LSR4 get-module "MPLS"] set-protection-flow 0.1 0.01 8 -1
#[$LSR4 get-module "MPLS"] set-protection-flow 0.1 0.01 9 -1
#[$LSR4 get-module "MPLS"] set-protection-flow 0.1 0.01 10 -1

#[$LSR3 get-module "MPLS"] enable-data-driven
}
$ns run
LỜI MỞ ĐẦU

Ngày nay, Internet đã trở thành phần không thể thiếu trong cuộc sống của chúng
ta. Internet đã mở ra một chân trời mới đối với nhân loại Khi mạng Internet phát triển
và mở rộng, lưu lượng Internet bùng nổ thì việc đáp ứng nhu cầu cho người sử dụng về
chất lượng dịch vụ ngày càng cao, đòi hỏi các nhà cung cấp dịch vụ ISP luôn đứng
trước thử thách. Các ISP xử lý bằng cách tăng dung lượng các kết nối và nâng cấp
router nhưng vẫn không tránh khỏi nghẽn mạch. Lý do là các giao thức định tuyến
thường hướng lưu lượng vào cùng một số các kết nối nhất định dẫn đến kết nối này bị
quá tải trong khi một số tài nguyên khác không được sử dụng. Vì vậy, việc tìm ra giải
pháp mới thỏa mãn được các nhu cầu của người dùng là vấn đề cấp bách và đang được
ưu tiên hiện nay
Được sự chỉ dẫn tận tình của các thầy cô trong khoa Điện Tử_ Viễn Thông em
đã tìm hiểu về đề tài “Kết hợp DiffServ và MPLS trong việc đảm bảo chất lượng dịch
vụ”. Nội dung của đề tài gồm những chương sau:
 Chương 1: Chất lượng dịch vụ trong mạng IP
Trong chương này sẽ đề cập đến tầm quan trọng của chất lượng dịch vụ, một số
giải pháp tăng QoS và đi sâu vào kiến trúc DiffServ cũng như cách thức hoạt động
của nó
 Chương 2: MPLS, kỹ thuật lưu lượng và các cơ chế khôi phục
Chương này sẽ giới thiệu một số khái niệm chính trong MPLS, kỹ thuật lưu
lượng và các cơ chế khôi phục đường dẫn khi có sự cố đứt kết nối của nó.
 Chương 3: Sự kết hợp giữa DiffServ và MPLS
Đi vào tìm hiều một số thủ tục cần thiết khi thiết lập DiffServ vào trong một
mạng MPLS
 Chương 4: Chương trình và kết quả mô phỏng kết họp DiffServ và MPLS
Sẽ mô phỏng mạng IP sử dụng DiffServ khi xảy ra sự cố đứt kết nối và mạng

MPLS sử dụng DiffServ. Sau đó nhận xét và so sánh các kết quả đạt được
Chương trình mô phỏng hoạt động dựa trên nền tảng hoạt động thực tế của
mạng IP và MPLS
Trong quá trình làm đồ án, em đã cố gắng rất nhiều song do kiến thức hạn chế
nên không thể tránh khỏi những thiếu sót. Em rất mong nhận được sự góp ý, hướng
dẫn và sự giúp đỡ của Thầy Cô, bạn bè.
Suốt quá trình học tập, Thầy Cô đã truyền đạt cho em nhiều kiến thức quý báu
tạo cơ sở cho em hoàn thành đồ án này. Em xin chân thành gởi lời cảm ơn đến các
Thầy Cô trong khoa Điện Tử-Viễn Thông. Đặc biệt là Thầy giáo Nguyễn Duy Nhật
Viễn đã đóng góp nhiều ý kiến quý báu và cổ vũ, động viên em trong thời gian qua.
Em xin chân thành cám ơn!
Đà Nẵng, tháng 5 năm 2008
Sinh viên thực hiện
Nguyễn Thị Đoan Trang
Chương 1
Chất lượng dịch vụ trong mạng IP

1.1 Giới thiệu chương
Ngày nay, Internet đã trở thành phần không thể thiếu trong cuộc sống của chúng
ta. Internet đã mở ra một chân trời mới đối với nhân loại. Khi mạng Internet phát triển
và mở rộng, lưu lượng Internet bùng nổ thì việc đáp ứng nhu cầu cho người sử dụng về
chất lượng dịch vụ ngày càng cao, đòi hỏi các nhà cung cấp dịch vụ ISP luôn đứng
trước thử thách làm sao luôn làm hài lòng các “thượng đế” của mình. Do đó việc cung
cấp chất lượng dịch vụ QoS là cần thiết cho phép đảm bảo chất lượng của các ứng
dụng thời gian thực như VoIP, Video Streaming và hạn chế nghẽn mạng.
Trong chương này sẽ trình bày khái quát các khái niệm cơ bản trong chất lượng
dịch vụ QoS, những thông số đặc trưng cho chất lượng dịch vụ, sự cần thiết của lĩnh
vực này trong mạng IP. Đồng thời sẽ đi vào tổng quan về kiến trúc của QoS với các
dịch vụ tích hợp (Intserv) và phân tích rõ các khái niệm, hoạt động cũng như ưu và
nhược điểm của dịch vụ phân biệt (DiffServ) trong mạng IP.

1.2 Ưu và nhược điểm của mạng IP
1.2.1Ưu điểm
 Trong định tuyến các router IP sẽ dùng thuật tóan SPF (Shortest Path First- vào
băng thông và hop count của đường đi) để tính toán đường đi ngắn nhất cho lưu
lượng, giảm độ trễ của lưu lượng khi mạng hoạt động bình thường
1.2.2 Nhược điểm
 Do cơ chế định tuyến đường ngắn nhất (shortest path routing), khi lưu lượng
trên mạng quá tải, các luồng lưu lượng vẫn được tính toán đi trên đường ngắn
nhất. Do đó tắt nghẽn là không tránh khỏi trong khi một số đường vẫn không
được sử dụng. việc sử dụng băng thông trong mạng không hiệu quả
 Để có thể chuyển tiếp gói tin đi trên mạng, các router phải kiểm tra địa chỉ đích
và so sánh trong bảng định tuyến và xác định chặn tiếp theo của lưu lượng.họat
động này làm tăng thời gian trễ của gói tin
 IP chỉ cung cấp dịch vụ Best effort, có nghĩa là khi hàng đợi cho chặn tiếp theo
quá dài, gói tin sẽ bị trễ hay khi hàng đợi quá đầy, IP router cho phép hủy gói.
Việc tăng thời gian trễ và mất dữ liệu là không thể dự đoán được.
Với nhược điểm này yêu cầu cung cấp QoS trong mạng là vấn đề cần thiết.
1.3 Chất lượng dịch vụ QoS
1.3.1 Định nghĩa QoS
Chất lượng dịch vụ là khả năng của một yếu tố mạng (ví dụ như một ứng dụng,
máy chủ hay router) để có một vài mức đảm bảo cho lưu lượng và các yêu cầu dịch vụ
cần được thỏa mãn. Nó ngày càng trở nên cần thiết trong việc quản lý mạng và sử dụng
tài nguyên mạng hiệu quả để đáp ứng nhu cầu dịch vụ Internet ngày càng tăng nhanh.
1.3.2 Tầm quan trọng
Khi lưu lượng được chuyển tiếp với tốc độ nhanh nhưng không có bất kỳ sự đảm
bảo nào về thời gian xử lý cũng như độ tin cậy của việc vận chuyển lưu lượng đến
đích, kiểu dịch vụ này đòi hỏi các giao thức ở lớp cao hơn, ví dụ như TCP để cung cấp
tính tin cậy và điều khiển lỗi. Bảng trạng thái dưới đây thể hiện một số vấn đề thường
gặp đối với mạng không hỗ trợ QoS.
Bảng 1-1 Các vấn đề khi mạng không hỗ trợ QoS

Dạng lưu lượng Vấn đề khi mạng không hỗ trợ Qos
Thoại (voice) Tiếng nói truyền trên mạng thường khó hiểu
Bị ngắt quảng, âm thanh không trong suốt
Trễ truyền làm các cuộc đối thoại khó khăn
hơn, khi đầu dây bên này đã kết thúc nhưng đầu
bên kia vẫn không hay biết
Hoặc các cuộc gọi sẽ không kết nối được
Video Hình ảnh không ổn định
Âm thanh không đồng bộ với hình ảnh
Các hình động luôn bị “đóng băng”
Dữ liệu (data) Tốc độ truyền dữ liệu chậm
Mất dữ liệu khi đang truyền

Với các xu hướng phát triển ồ ạt các dịch vụ thương mại điện tử (e-commerce),
vấn đề đảm bảo chất lượng dịch vụ cho các ứng dụng trên mạng Internet trở nên cần
thiết hơn bao giờ hết.
Nhìn chung có 2 nhân tố cơ bản dẫn đến yêu cầu về chất lượng dịch vụ.
 Thứ nhất, với các công ty kinh doanh trên web, họ cần chất lượng dịch vụ để
cải thiện và nâng cao chất lượng vận chuyển các thông tin và dịch vụ của họ
đến khách hàng như một yếu tố để thu hút ngày càng nhiều khách hàng.
 Thứ 2, các nhà cung cấp dịch vụ Internet IPSs cần thêm nhiều các dịch vụ giá
trị gia tăng trên mạng của họ để tăng lợi nhuận.
Việc các nhà cung cấp không ngừng phát triển các dịch vụ, số lượng khách hàng
ngày càng nhiều. Theo truyền thống nếu một mạng làm việc không có QoS thì giải
pháp để giải quyết các tắc nghẽn trong mạng đòi hỏi một lượng băng thông lớn. Điều
này là không khả thi đối với các nhà cung cấp dịch vụ (IPS) và các nhà kinh doanh
mạng khác về giá thành cũng như tính hiệu quả của nó. Vì thế yêu cầu phải cung cấp
chất lượng dịch vụ QoS là rất cần thiết.
1.3 Các đặc tính QoS
Mặc dù chất lượng dịch vụ QoS chưa phải là giải pháp hoàn toàn nhưng nó ra

đời nhằm giải quyết các vấn đề về lưu lượng trên mạng. Chất lượng dịch vụ thường
được đánh giá bằng các thông số sau:
 Băng thông
 Độ trễ
 Độ rung pha
 Khả năng mất gói
1.3.1 Băng thông (bandwidth)
Băng thông là tỉ lệ bit trên mỗi giây để phân phối dữ liệu đi trong mạng. Trong
một số trường hợp, băng thông còn được hiểu là tốc độ đường kết nối vật lý hay là
xung đồng hồ (clock rate) của mỗi interface. Ví dụ như các kết nối điểm- điểm trong
mạng WAN thì băng thông 64kbps chính là tốc độ của đường kết nối vật lý. Nhưng đối
với các kết nối trong mạng Frame relay hay ATM thì băng thông là tốc độ cam kết
(CIR) giữa nhà cung cấp dịch vụ với khách hàng, băng thông này có thể lớn hơn tốc độ
cam kết khi lưu lượng trong mạng cho phép.
1.3.2 Độ trễ (delay)
Các mạng hiện nay thường tồn tại các loại trễ sau đây:
 Trễ môi trường truyền (propagation): là thời gian để chuyển gói đi, thời gian
này thường phụ thuộc vào băng thông của giao tiếp
 Trễ xử lý và xếp hàng: đây là hai loại trễ tồn tại trong mỗi router
 Trễ xử lý: là thời gian để một router lấy gói tin từ interface vào và đặt nó
vào hàng đợi của interface. Độ trễ sẽ phụ thuộc vào các yếu tố sau:
+ Tốc độ xử lý của CPU.
+ Khả năng xử dụng của CPU.
+ Mode chuyển mạch IP được sử dụng.
+ Cấu trúc của router.
+ Các đặc tính cấu hình trên các giao tiếp vào/ra.
 Trễ xếp hàng: khoảng thời gian gói nằm trên hàng đợi của router. Thời
gian này phụ thuộc vào số lượng cũng như kích thước của các gói đang
có trên hàng đợi và trên băng thông của interface. Đồng thời thông số này
cũng phụ thuộc vào cơ chế xếp hàng gói tin.

1.3.3 Độ trượt (Jitter)
Khái niệm độ trượt và độ trễ thường liên quan đến nhau. Một gói tin trong mạng
với các thành phần độ trễ thay đổi thì luôn tồn tại độ trượt. Vậy khi độ trượt xảy ra thì
có làm giảm đến chất lượng dịch vụ hay không? Đối với các ứng dụng dữ liệu thì độ
trượt không làm giảm chất lượng là bao nhưng một số dạng lưu lượng khác như thoại
được số hóa đòi hỏi các gói tin phải được truyền nhất quán tức là khoảng cách giữa các
gói tin là đồng bộ. Dạng lưu lượng này còn gọi là lưu lượng đẳng thời (isochronous
traffic). Dưới đây là một ví dụ để thấy rõ hơn về độ trượt.
Hình 1.1 Ví dụ về độ trượt
Xét 3 gói tin thoại đi từ máy 201 đến 301, thời gian truyền của mỗi gói tin là 20ms.
Nhưng khi đi đến máy 301 thì gói tin thứ 3 thời gian truyền đã tăng lên 30ms, vậy
10ms chính là độ trượt của gói.
1.3.4 Mất gói (loss)
Mất gói là một thông số quan trọng trong chất lượng dịch vụ, khi tỉ lệ mất gói
xảy ra trong mạng quá lớn thì cần phải có biện pháp để khắc phục. Ví dụ như trường
sửa lỗi FCS (Frame Check Sequence) sẽ kiểm tra các khung bị lỗi khi truyền trong
mạng. Các công cụ của QoS có thể làm giảm mất gói tin khi các hàng đợi quá đầy.
Ở các mạng hiện nay, số các gói tin bị mất do tỉ lệ lỗi bit là rất ít (tỉ lệ bit lỗi
BER 10
-9
là có thể chấp nhận) [2], đa số các gói tin bị mất là do bộ đệm và các hàng
đợi quá tải. Do đó việc khắc phục tình trạng mất gói trong mạng là cần thiết.

Hình 1.2 Mất gói trong mạng
1.3.4 Các giải pháp tăng QoS
1.3.4.1 Tăng băng thông
Hiện nay, một vài giải pháp để giải quyết vấn đề thiếu băng thông đã được đề ra:
 Tăng dung lượng liên kết nhằm tạo ra một lượng băng thông thừa để đảm bảo
cho những người sử dụng hoặc các ứng dụng có yêu cầu băng thông lớn. Vấn đề
này xem có vẻ đơn giản, tuy nhiên sẽ tốn rất nhiều thời gian cũng như tiền của

để thực thi đề án này do những hạn chế trong thiết bị sẽ gây khó khăn trong
công việc nâng cao khả năng băng thông lên quá lớn.
 Phân loại những lưu lượng thông tin thành các lớp và trao quyền ưu tiên chiếm
giữ băng thông tùy theo tầm quan trọng của từng loại hình thông tin.
IP
IP
Forwarding
IP
IP
IP
IP
Tail-drop
Tail-drop
IP
IP
IP
IP
 Nén tải nhằm tăng dung lượng băng thông liên kết. Tuy nhiên, việc nén tải sẽ
làm tăng độ trễ trong việc truyền dẫn do phải cần khoảng thời gian dài để thực
hiện những thuật toán nhằm giải quyết việc nén dữ liệu.
 Một cơ chế nén hiệu quả hơn đó là nén phần header. Cơ chế nén này đặc biệt
hiệu quả đối với những mạng có gói chứa dữ liệu nhỏ ( tỉ số tải trên header là
nhỏ).
1.3.4.2 Giảm trễ
Để giảm trễ trong mạng, dưới đây là một số giải pháp:
 Tăng dung lượng liên kết, với một dung lượng băng thông vừa đủ trên liên kết
sẽ giúp rút ngắn chiều dài hàng đợi và như vậy gói sẽ không phải đợi lâu để
được truyền đi. Mặt khác, thời gian phát định kỳ sẽ được giảm xuống. Tuy
nhiên giải pháp sẽ không được khả thi do cùng việc tăng dung lượng thì giá
thành cũng sẽ tăng theo.

 Một giải pháp có tính hiệu quả hơn đó là tạo ra một cơ cấu hàng đợi có hỗ trợ
quyền ưu tiên đối với những gói có yêu cầu độ trễ nhỏ bằng cách đưa các gói tin
này lên hàng đầu.
 Nén tải sẽ giảm được kích thước của gói và từ đó sẽ tăng được băng thông liên
kết. Thêm vào đó, kích thước gói sẽ nhỏ hơn sau khi nén tải và gói sẽ yêu cầu
thời gian truyền ngắn hơn. Tuy nhiên, để thực hiện nén tải cần được thực hiện
thông qua các thuật toán phức tạp. Giải pháp này thường không được sử dụng
đối với những gói truyền trong môi trường có độ trễ nhỏ.
 Việc nén header không là công việc tập trung xử lý chính mà nó sẽ được kết hợp
với các kỹ thuật khác để giảm độ trễ. Phương thức này đặc biệt phù hợp với gói
là voice.
Bằng cách giảm độ trễ truyền dẫn thì độ trượt cũng được giảm đáng kể.
1.3.4.3 Ngăn mất gói
Mất gói thông thường xảy ra khi router không còn thời gian bộ đệm phục vụ cho
việc xếp hàng đợi. Router sẽ thực hiện loại bỏ gói trong những trường hợp sau:
 CPU bị nghẽn và không thể xử lý gói.
 Router không còn không gian bộ đệm
 CPU bị nghẽn và không thể ấn định một không gian bộ đệm nào cho các gói
mới
 Lỗi khung (ví dụ CRC).
Sau đây là một số giải pháp giúp tăng ngăn chặn mất gói đối với các ứng dụng:
 Tăng dung lượng liên kết để tránh nghẽn.
 Đảm bảo đủ lượng băng thông và tăng không gian bộ đệm nhằm đáp ứng được
khi xảy ra bùng nổ thông tin.
 Tránh nghẽn bằng cách loại bỏ gói trước khi nghẽn xảy ra. WRED sẽ được sử
dụng để thực hiện loại bỏ gói trước khi xảy ra nghẽn.
{{{
Hình 1.3 Tránh nghẽn ngăn mất gói
1.4 Các kiểu dịch vụ QoS trong mạng
IP

IP
Data
Data
FIFO queuing
Custom Queuing (CQ)
Modified Deficit Round
Robin (MDRR)
Class-Based
Weighted Fair
Queuing (CBWFQ)
Custom Queuing (CQ)
Modified Deficit Round
Robin (MDRR)
Class-Based
Weighted Fair
Queuing (CBWFQ)
Weighted Random Early
Detection (WRED)
Weighted Random Early
Detection (WRED)
Định nghĩa kiến trúc QoS ra đời vào giữa năm 1990, và cho đến nay nhóm
nghiên cứu IETF (Internet Engineering Task Force) đã định nghĩa hai dạng kiến trúc
QoS cho mạng IP đó là các dịch vụ tích hợp (IntServ) và các dịch vụ phân biệt
(DiffServ).
1.4.1 Dịch vụ tích hợp Intserv
Các dịch vụ tích hợp (Intserv) được nhóm nghiên cứu IETF đưa ra nhằm cung
cấp các dịch vụ end-to-end giữa các máy chủ cho các ứng dụng point-to-point và point-
to multipoint . Nó định nghĩa quá trình xử lý báo hiệu cho các luồng riêng biệt và yêu
cầu phải dự trữ một lượng băng thông và độ trễ nhất định. Để đảm bảo cho mỗi dòng,
IntServ mô tả hai thành phần: dự trữ tài nguyên và điều khiển lưu lượng. Dự trữ tài

nguyên cho phép luồng dữ liệu riêng biệt yêu cầu một lượng băng thông và độ trễ thích
hợp. Nếu việc báo hiệu thành công, thì các thành phần mạng sẽ phải dự trữ lượng băng
thông cần thiết. Còn điều khiển lưu lượng Intserv sẽ quyết định yêu cầu dự trữ nào sẽ
bị từ chối. Nếu tất cả các yêu cầu được chấp nhận thì sẽ có quá nhiều luồng lưu lượng
đi trong mạng và kết quả sẽ không có luồng nào được nhận dịch vụ yêu cầu cả.

Hình 1.4 Kiến trúc dịch vụ Intserv

1.4.1.1 Giao thức dự trữ tài nguyên RSVP (Resource Reservation Protocol)
RSVP là một giao thức cho việc thiết lập các dự trữ tài nguyên. Giao thức RSVP
được các máy chủ sử dụng để yêu cầu các chất lượng dịch vụ đặc biệt từ mạng cho các
ứng dụng riêng biệt như các dòng dữ liệu hay các luồng thông tin. Các router cũng có
thể sử dụng giao thức này để thiết lập, duy trì và phân phối các yêu cầu QoS cho các
node hoạt động dọc theo đường dẫn. Kết quả là các tài nguyên sẽ được dự trữ cho mỗi
node theo đường dữ liệu.
RSVP phải mang các thông tin sau:
 Thông tin phân loại, nhờ nó mà các luồng lưu lượng với các yêu cầu QoS cụ thể
có thể được nhận biết trong mạng. Thông tin này bao gồm địa chỉ IP phía gửi và
phía nhận, số cổng UPD.
 Chỉ tiêu kỹ thuật của luồng lưu lượng và các yêu cầu QoS
Rõ ràng là RSVP phải mang những thông tin này từ các máy chủ tới tất cả các
tổng đài chuyển mạch và các router dọc theo đường truyền từ bộ gửi đến bộ nhận, vì
vậy tất cả các thành phần mạng này phải tham gia vào việc đảm bảo các yêu cầu QoS
của ứng dụng.
1.4.1.2 Cách thức hoạt động của RSVP
Cách thức hoạt động của RSVP dựa trên việc giành dự trữ tài nguyên trước khi
truyền dữ liệu. Có hai loại bản tin RSVP chính được sử dụng để báo hiệu. Bên gởi sẽ
gởi bản tin đường dẫn PATH và các thông tin phân loại đến bên nhận để xác định các
thuộc tính của lưu lượng sẽ gởi. Mỗi node trung gian sẽ chuyển tiếp bộ bản tin PATH
tới các node kế tiếp. Khi nhận được bản tin PATH, bên nhận được sẽ đáp ứng lại bằng

một bản tin RESV. Bản tin RESV xác nhận phiên có chứa thông tin về số cổng dành
riêng và mức QoS mà bên nhận yêu cầu. Các node trung gian trên đường đi có thể chấp
nhận hay từ chối các yêu cầu trong bản tin RESV. Nếu yêu cầu bị từ chối, router sẽ gởi
bản tin Error cho bên nhận và quá trình báo hiệu sẽ kết thúc. Nếu yêu cầu được chấp
nhận tài nguyên sẽ được dự trữ cho luồng và các thông tin trạng thái liên quan của
luồng sẽ được cài đặt vào router.
Một đặc điểm quan trọng của RSVP là việc dự trữ tài nguyên được thực hiện
bởi “trạng thái mềm”. Có nghĩa là trạng thái dự trữ tài nguyên có liên quan tới một bộ
định thời, và khi bộ định thời hết hạn, việc dự trữ trước tài nguyên được loại bỏ. Nếu
bên nhận muốn lưu lại trạng thái dự trữ tài nguyên nào, nó phải đều đặn gửi các bản tin
dự trữ tài nguyên. Bên gởi cũng phải thường xuyên gửi các bản tin này. RSVP được
thiết kế dành cho kiến trúc Intserv nhưng vai trò của nó cũng được mở rộng cho giao
thức báo hiệu trong MPLS.
Hình 1.5 Giao thức RSVP
1.4.2 Dịch vụ phân biệt Diffserv
Việc thực hiện kiến trúc IntServ gặp nhiều khó khăn, nó gây ra mức giá yêu cầu
cao cho nguồn xử lý (processing power) và báo hiệu. Đối với mạng đường trục lớn,
nhiều phiên kết nối, RSVP truyền thống yêu cầu các bộ định thời cho mỗi phiên và sự
phân loại trong mỗi router làm cho bộ xử lý và bộ nhớ trở nên khó đáp ứng. Do đó chỉ
áp dụng được cho những mạng có số các luồng dữ liệu là nhỏ.
Mục đích của việc đưa ra dịch vụ Diffserv để nhằm đạt được tính linh động.
Diffserv trái ngược với Intserv là dựa trên từng luồng dữ liệu, nó phân loại các gói
thành một số lượng không lớn các tập (gọi là các lớp) và do đó đạt được hiệu quả cho
các mạng lớn. Các chức năng đơn giản được thực hiện tại router lõi, trong khi các chức
năng phức tạp được triển khai tại các router biên. Tính linh động rất là cần thiết vì dịch
vụ mới có thể xuất hiện và một số dịch vụ trở lên lỗi thời. Do đó Diffserv không cần
thiết phải xác định dịch vụ như là Inserv, thay vào đó nó cung cấp các thành phần chức
năng mà trên đó dịch vụ có thể được xây dựng. Việc thông tin giữa người dùng và dịch
vụ sẽ nằm trong Bản Thỏa Thuận mức dịch vụ SLA (Service Level Agreement), việc
đối xử luồng lưu lượng tương ứng với bản SLA. Việc xác định SLA sẽ được cung cấp

bao nhiêu tài nguyên sẽ được cấu hình tay. Kiến trúc Diffserv bao gồm hai tập các
thành phần chức năng:
 Tại biên của mạng, việc phân loại và điều khiển lưu lượng được thực hiện và
các gói được phân vào các lớp.
 Tại lõi, một cơ chế phân loại đơn giản được thực hiện. Cơ chế hàng đợi dựa trên
lớp được áp dụng.

Hình 1.6 Kiến trúc dịch vụ Diffserv

1.4.2.1 Các thuật ngữ sử dụng trong Diffserv
Kiến trúc dịch vụ phân biệt DiffServ định nghĩa một số thuật ngữ thường sử
dụng sau đây:
 Miền (Domain): là mạng có chung các thực thi ( thường thì chung sự điều khiển
của quản trị)
 Vùng (Region): là nhóm các miền DiffServ kế cận
 Node vào (Ingress node): là node đầu tiên mà gói tin đi vào miền Diffserv
 Node ra (Egress node): là node cuối cùng mà gói tin đi ra khỏi miền Diffserv
 Trường DS (DiffServ field): octet TOS của mào đầu IPv4 hoặc octet lớp lưu
lượng của mào đầu IPv6 và được đổi tên là DS bởi DiffServ. Nó là trường nơi
các lớp dịch vụ được gửi kèm.
 Điểm mã dịch vụ phân biệt (Differantiated Service Code Point_DSCP): là các
giá trị đặc biệt được chỉ định cho trường DiffServ.
 Tập hợp đối xử (Behavior Aggretate-BA): Là tập hợp các gói tin của node dịch
vụ phân biệt có cùng mã DSCP.
 Phân lớp BA (BA classifier): Phân lớp các gói dựa trên mã DSCP (Differential
Service Code Point).
 Bộ phân lớp (Classifier) : Quá trình sắp xếp các gói dựa trên nội dung của
header của gói theo quy luật xác định.
 Thỏa thuận mức dịch vụ (Service level Agreement_SLA): là dịch vụ liên hệ
giữa khách hàng và nhà cung cấp dịch vụ chỉ rõ xu hướng yêu cầu của khách

hàng. Khách hàng có thể là một tổ chức người dùng hoặc phạm vi nhà cung cấp
( phạm vi đi ngược dòng).
 Sự phân lớp đa môi trường (Multifield Classifier) là sự phân lớp của gói dựa
trên nội dung của các trường như địa chỉ nguồn, địa chỉ đích, byte ToS, giao
thức ID, số cổng nguồn và số cổng đích.
 Đối xử từng chặn (Per-Hop Behavior_PHB): là tại mỗi node các gói BA sẽ được
chuyển tiếp hay được phục vụ.
 Đánh dấu (Marking) là quá trình thiết lập các trường DS của các gói.
 Chính sách (policing) là quá trình xử lý các dạng lưu lượng, ví dụ như loại bỏ
(drop) các gói vượt quá.
 Định dạng (Shaping): là quá trình đệm các gói tin trong luồng lưu lượng tạo cho
nó tương thích với hiện trạng lưu lượng đã định nghĩa.
 Hàng đợi (Queuing): điều khiển chiều dài của gói hàng đợi bằng cách loại bỏ
các gói khi cần thiết hoặc cho phù hợp.
1.4.2.2 Điểm mã dịch vụ phân biệt DSCP (DiffServ code point)
Các đặc tính kỹ thuật trước đây, IP đã dự trữ một số bit trong header cho việc hỗ
trợ các chất lượng dịch vụ QoS. Đối với IPv4 octet thứ hai của header là octet ToS

×