Mạng vô tuyến Ad Hoc là mạng mà các nút mạng được tổ chức một cách ngang
hàng với nhau, nghĩa là trong mạng không có máy chủ, không có bộ định tuyến lên các
nút mạng vừa là máy chủ, vừa là máy khách, lại vừa là bộ định tuyến, hơn nữa các nút
trong mạng cần có tính tự tổ chức, tự thích ứng khi trạng thái, đồ hình mạng thay đổi
như sự gia nhập mạng của nút mới, quá trình ngắt bỏ kết nối,.
94 trang |
Chia sẻ: lylyngoc | Lượt xem: 5691 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Luận văn Định tuyến trong mạng AD HOC vô tuyến, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
hình mạng khác nhau được đúng
đắn hơn.
- Khả năng hiển thị hóa: Thông qua công cụ hiển thị NAM, người nghiên cứu có thể
quan sát trực quan hoạt động của các nút mạng, lưu lượng, tỷ lệ lỗi để từ đó dễ dàng
hiểu được các hành vi phức tạp của đồ hình mạng mô phỏng.
- Khả năng mở rộng được: NS2 cho phép mở rộng các chức năng mới một cách dễ
dàng như thay đổi các tham số, xây dựng lên một giao thức mới, thử nghiệm các kịch
bản khác nhau...
4.1.5. Khả năng mô phỏng của NS
Với bộ mô phỏng NS2, người dùng có thể mô phỏng nhiều giao thức khác nhau tại
nhiều tầng khác nhau như: tại tầng ứng dụng, FTP, HTTP; tại tầng giao vận như: UDP,
70
70
TCP (reno, tahoe, vegas, sack…), tại tầng MAC như: MAC 802.3, MAC 802.11,
MAC 802.15, ...trong các mô hình mạng có dây, mô hình mạng không dây và mô hình
mạng hỗn hợp. Ngoài ra NS-2 còn có thể mô phỏng các thuật toán định tuyến trong
mạng không dây, đặc biệt là mạng Ad-hoc: DSDV, DSR, AODV, TORA,… các vấn
đề về định tuyến Unicast/Multicast, liên mạng sử dụng vệ tinh (Satellite network) và
nhiều các vấn đề khác cụ thể như:
Đối với mạng có dây:
- Các đường truyền điểm - điểm đơn công, song công, mạng cục bộ LAN.
- Các chính sách phục vụ hàng đợi.
- Các mô hình sinh lỗi.
- Vấn đề định tuyến Unicast/Multicast (Unicast/Multicast routing).
- Các giao thức tầng Giao vận: TCP/Tahoe/Reno/New-Reno/Sack/Vegas, UDP, điều
khiển lưu lượng và điều khiển tắc nghẽn.
- Các giao thức tầng Ứng dụng, Web caching, truyền luồng dữ liệu đa phương tiện.
Đối với mạng không dây:
- Kênh truyền.
- Sự di chuyển của các nút mạng trong không gian hai chiều.
- Mạng LAN không dây (WLAN) 802.11.
- Mobile IP.
- Các thuật toán định tuyến trong mạng không dây đặc biệt (Ad Hoc networks):
DSDV, DSR, AODV, TORA...
- Liên mạng sử dụng vệ tinh (Satellite Networking).
Trong lĩnh vực mạng hỗn hợp có dây và không dây:
- Trạm cơ sở (Base station) đóng vai trò gateway giữa mạng có dây và mạng không
dây.
- Snoop TCP.
4.2. Mô phỏng mạng di động không dây 802.11 trong NS [18]-[20]-[21]
4.2.1. Các mô hình truyền sóng vô tuyến
4.2.1.1. Mô hình FreeSpace
Mô hình truỵền FreeSpace cho rằng điều kiện truyền lí tưởng là chỉ truyền
theo một đường dẫn nằm trong tầm nhìn thấy giữa máy truyền và máy nhận. H.
T. Friss đưa ra phương trình tính toán nguồn tín hiệu nhận trong một không gian
tự do ở khoảng cách d từ thiết bị truyền.
Ld)(
λGGP=(d)P rttr 22
2
4π
(4.1)
Với Pt là nguồn năng lượng tín hiệu truyền, Gt và Gr là gains ăng ten của
máy phát và máy thu theo thứ tự. L (L>=1) là độ mất hệ thống, λ là bước sóng,
thông thường nó được chọn Gt=Gr=1 và L=1 trong mô phỏng NS.
71
71
Mô hình FreeSpace trình bày cơ bản dải truyền thông như một vòng
quanh máy phát. Nếu một máy nhận trong phạm vi vòng vòng tròn phát, nó
nhận tất cả các gói tin. Ngược lại nó làm mất tất cả các gói tin.
Giao diện OTcl với việc sử dụng một mô hình truỵền thông là lệnh cấu
hình nút. Một cách để sử dụng nó ở đây là:
$ns_ node-config -propType Propagation/FreeSpace
Một cách khác là :
set prop [new Propagation/FreeSpace]
$ns_ node-config -propInstance $prop
4.2.1.2. Mô hình hai tia mặt đất (Two Ray Ground)
Một đường truyền đơn trong tầm nhìn thấy giữa hai nút di động là rất hiếm. Mô
hình phản xạ hai tia mặt đất xem xét đường truyền trực tiếp và đường truyền phản xạ
từ mặt đất. Nó nói lên rằng mô hình này đem đến các dự đoán chính xác hơn với một
khoảng cách lớn hơn so với mô hình FreeSpace. Năng lượng nguồn nhận ở một
khoảng cách d được dự đoán bởi:
Ld
hhGGP=(d)P rtrttr 4
22
(4.2)
Ở đây ht và hr là độ cao của ăng ten truyền và nhận theo thứ tự. Chú ý rằng công
thức nguyên gốc trong tài liệu [20] giả sử L=1. Để thống nhất với mô hình FreeSpace,
được thêm vào ở đây.
Phương trình trên chỉ ra một nguồn nhanh hơn phương trình (4.1) giống như khi
khoảng cách tăng. Tuy nhiên, mô hình Two Ray Ground không đem lại một kết quả tốt
với một khoảng cách ngắn tại vì sự dao động được gây ra bởi việc tạo và phá huỷ kết
hợp của hai tia. Vì vậy, mô hình FreeSpace vẫn được sử dụng khi d nhỏ.
Do vậy, một khoảng cách lớn dc sẽ được tính toán trong mô hình này. Khi d<dc
phương trình (4.1) được sử dụng, khi d>dc phương trình (4.2) được sử dụng. Với cùng
một khoảng cách hai phương trình này cho kềt quả tương tự nhau. Vì thế dc có thể
được tính toán như sau:
λ)h(=d rtc /4ππ (4.3)
Thông thường, trình thông dịch OTcl sử dụng mô hình phản xạ hai tia mặt đất
như sau:
$ns_ node-config -propType Propagation/TwoRayGround
Hay có thể sử dụng:
set prop [new Propagation/TwoRayGround]
$ns_ node-config -propInstance $prop
4.2.1.3. Mô hình Shadowing
Tổng quan: Mô hình FreeSpace và mô hình phản xạ Two Ray Ground dự đoán
nguồn năng lượng nhận như một chức năng tất định của khoảng cách. Cả hai trình bày
dải truyền thông như một vòng tròn lí tưởng. Trên thực tế, nguồn năng lượng nhận ở
72
72
một khoảng cách nhất định là một giá trị ngẫu nhiên tại vì nhiều hiệu ứng truyền khác
nhau, nó cũng được biết đến như hiện tượng fading (tượng biến đổi cường độ tín hiệu
sóng mang). Trên thực tế, cả hai mô hình trên đều dự đoán giá trị trung bình của nguồn
năng lượng nhận ở khoảng cách d. Một mô hình tổng quát và thường được sử dụng
hơn là mô hình Shadowing
Bảng 4.1. Một vài giá trị đặc biệt của độ mất đường dẫn p
Môi trường p
Không gian lí tưởng 2 Ngoài trời
Các khu vực bị khuất 2.7 tới 5
Tầm nhìn thấy (thẳng) 1.6 tới 1.8 Trong nhà
Bị che khuất 4 tới 6
Bảng 4.2. Một số giá trị đặc biệt của độ lệch hiệu ứng màn chắn (shadowing).
Môi trường dB (dB)
Ngoài trời 4 tới 12
Văn phòng, khu vực cứng cáp 7
Văn phòng, khu vực mềm dẻo 9.6
Nhà máy, tầm nhìn thẳng 3 tới 6
Nhà máy, tầm bị khuất 6.8
Mô hình Shadowing bao gồm hai phần. Phần thứ nhất được biết đến như một
mô hình mất đường dẫn, điều đó cũng có thể dự đoán giá trị trung bình của nguồn
năng lượng nhận ở khoảng cách d, được biểu thị bởi Pr(d). Nó sử dụng khoảng cách
gần d0 như một tham chiếu. Pr(d) được tính toán liên quan tới Pr(d0) như sau:
0
0
)(
)(
d
d
dP
dP
r
r
β được gọi là hệ số mất đường dẫn, và nó thường được xác định theo kinh nghiệm bởi
các phương pháp đo lường. Từ phương trình (4.1) chúng ta biết được rằng β =2 cho
truyền dẫn trong FreeSpace. Bảng 4.1 đưa ra một số giá trị đặc biệt của β. Giá trị lớn
hơn phù hợp hơn với các tắc nghẽn và do đó làm gia tăng nhanh hơn giá trị trung bình
của nguồn năng lượng nhận giống như khoảng cách trở nên lớn hơn. Pr(d0) có thể
đựơc tính toán từ phương trình (4.1).
Việc mất đường dẫn thường được đo bằng dB(deciBel). Từ phương trình (4.4) chúng
ta có
00
log10
)(
)(
d
d
dP
dP
dBr
r
Phần thứ hai của mô hình phản xạ Shadowing là sự thay đổi của nguồn năng
lượng nhận ở một khoảng cách nhất định. Nó là biến có giá trị ngẫu nhiên, do vậy nó
là phân phối Gauss nếu được đo bằng dB. Nói tóm lại, toàn bộ mô hình Shadowing
được biểu diễn bởi
(4.4)
(4.5)
73
73
dB
dBr
r X
d
d
dP
dP
00
log10
)(
)(
Với XdB là biến ngẫu nhiên Gauss với giá trị trung bình là 0 và độ lệch chuẩn dB,
được gọi là độ lệch hiệu ứng chắn và cũng thu được thông qua các phương pháp đo
lường. Bảng 4.2 chỉ ra một vài giá trị đặc biệt cúa nó.
Mô hình Shadowing mở rộng mô hình vòng tròn lí tưởng để đạt tới mô hình
thống kê: các nút có thể chỉ truyền theo xác suất khi ở gần rìa của dãi truyền thông.
Mục đích mô hình Shadowing: Trước khi sử dụng mô hình Shadowing, người sử
dụng lên chọn các giá trị của hệ số mất đường đi và độ lệch hiệu ứng màn chắn chuẩn
dB tuỳ theo môi trường mô phỏng.
Trình thông dịch OTcl vẫn là lệnh cấu hình nút. Một cách để sử dụng nó như
sau, và các giá trị với các tham số chỉ được đưa ra làm ví dụ:
# Đầu tiên phải thiết lập giá trị của mô hình hiệu ứng màn chắn.
Propagation/Shadowing set pathlossExp_ 2.0 ;hệ số mất đường dẫn
Propagation/Shadowing set std_db_ 4.0 ; độ lệch hiệu ứng màn chắn (dB)
Propagation/Shadowing set dist0_ 1.0 ;khoảng cách tham chiếu (m)
Propagation/Shadowing set seed_ 0 ;khởi đầu với RNG-Random number Genrator
$ns_ node-config -propType Propagation/Shadowing ;Cấu hình cho nút
Mô hình Shadowing tạo ra một số ngẫu nhiên khởi xướng đối tượng RNG.
RNG có ba kiểu khởi tạo: Khởi tạo thô, khởi tạo xác định trước (một thiết lập tốt của
khởi tạo) và khởi tạo thông minh (hueristic) (chi tiết trong chương 22.1 tài liệu [20]).
Các API trên chỉ sử dụng khởi tạo xác định trước. Nếu một người sử dụng muốn khởi
tạo bằng một phương thức khác, API dưới đây có thể được sử dụng.
set prop [new Propagation/Shadowing]
$prop set pathlossExp_ 2.0
$prop set std_db_ 4.0
$prop set dist0_ 1.0
$prop seed 0
$ns_ node-config -propInstance $prop
có thể là thô, xác định trước hay heuristic.
4.2.2. Tạo một nút di động (Mobile Node)
MobileNode là đối tượng cơ bản ns đối tượng Node cùng với các chức năng
thêm vào như sự di chuyển, khả năng truyền và nhận trên một kênh cho phép tạo môi
các truờng di động (mobile), môi trường mô phỏng mạng vô tuyến. Lớp MobileNode
có xuất phát từ lớp cơ sở Node. MobileNode là một đối tượng tách biệt. Các tính năng
mobile gồm có di chuyển node, cập nhập vị trí định kỳ, duy trì đường biên của đồ hình
mạng,… được thực thi trong C++ trong khi tìm kiếm các thành phần của mạng bên
trong của MobileNode (như các phân lớp, dmux, LL, Mac, Channel,…) đã được thực
thi trong Otcl. Các chức năng và các thủ tục được mô tả trong phần này có thể được
tìm thấy trong ~ns/mobilenode.{cc,h}, ~ns/tcl/lib/ns-mobilenode.tcl,
(4.6)
74
74
~ns/tcl/mobility/dsdv.tcl, ~ns/tcl/mobility/dsr.tcl, ns/tcl/mobility/tora.tcl. Các ví dụ
minh hoạ có thể được tìm thấy trong ~ns/tcl/ex/wireless-test.tcl and
~ns/tcl/ex/wireless.tcl.
Trong khi minh họa ví dụ đầu tiên sử dụng một topo nhỏ chỉ có 3 node, minh
họa thứ hai thực thi trên một topo có 5 node. Các tập lệnh này có thể được thực thi một
các đơn giản bằng cách gõ lệnh: $ns tcl/ex/wireless.tcl (or /wireless-test.tcl)
Có bốn giao thức định tuyến ad-hoc hiện được hỗ trợ là DSDV, DSR, TORA
và OADV. Ngoài ra còn có các giao thức khác được thêm vào như: OLSR, ZRP, ...
Cơ sở tạo một mobilenode được mô tả bên dưới. Chú ý rằng các API trước đây
dành cho việc tạo ra một mobilenode phụ thuộc vào mỗi giao thức định tuyến đã sử
dụng, giống như lệnh: set mnode [$opt(rp)-create-mobile-node $id]
Trong đó: $opt(rp): chỉ ra "dsdv", "aodv", "tora" hay "dsr" và định danh (id) hay là chỉ
số của mobilenode. Nhưng cách sử dụng trước đây của API đang được phản đối và
API mới được trình bày như sau:
Trước hết chúng ta cần định nghĩa các kiểu của những thành phần mạng này nhờ sử
dụng một mảng opt() trong ngôn ngữ Tcl:
set opt(chan) Channel/WirelessChannel ;Chọn kiểu kênh truyền thông
set opt(prop) Propagation/TwoRayGround ;Chọn mô hình truyền thông
set opt(ant) Antenna/OmniAntenna ; Mô hình anten
set opt(ll) LL ; Kiểu tầng liên kết dữ liệu
set opt(ifq) Queue/DropTail/PriQueue ; Kiểu của giao diện hàng đợi
set opt(ifqlen) 50 ; Số gói tin lớn nhất có trong hàng đợi giao diện
set opt(netif) Phy/WirelessPhy ; Kiểu giao diện mạng tầng vật lý
set opt(mac) Mac/802_11 ; Kiểu giao thức MAC
set opt(rp) DSDV ;Chọn giao thức định tuyến DSDV, AODV, DSR,...
set opt(nn) 50 ;Thiết lập số mobile node mạng trong cần mô phỏng
set val(x) 1500 ; Mảng X, Y chứa diện tích địa hình mô phỏng (m)
set val(y) 1500
Sau đó chúng ta cần phải thiết lập một đối tượng tôpô mạng để ghi lại sự di
động của mobile node trong một vùng giới hạn. Trong ví dụ sau, ta thiết lập các
mobile node di chuyển trong một vùng 1500m X 1500m:
set topo [new Topography]
$topo load_flatgrid $opt(x) $opt(y)
Cuối cùng ta thực hiện cấu hình các thành phần mạng với đối tượng bộ mô
phỏng. Việc cấu hình này sử dụng các hàm API như sau:
$ns_ node-config -Ad HocRouting $opt(Ad HocRouting)
-llType $opt(ll)
-macType $opt(mac)
-ifqType $opt(ifq)
-ifqLen $opt(ifqlen)
75
75
-antType $opt(ant)
-propInstance [new $opt(prop)]
-phyType $opt(netif)
-channel [new $opt(chan)]
-topoInstance $topo
-wiredRouting OFF
-agentTrace ON
-routerTrace OFF
-macTrace OFF
Cấu hình của API ở trên cho một mobilenode với tất cả các giá trị của giao thức
định tuyến Ad Hoc-routing, ngăn xếp mạng, kênh, đồ hình (topography), mô hình
truyền sóng, với định tuyến hữu tuyến trả về on hay off (yêu cầu cho kịch bản mạng
không dây, có dây hỗn hợp) và vết tìm kiếm trả về on hay off tại các mức khác nhau
(router, mac, agent). Địa chỉ phân cấp cũng được sử dụng, địa chỉ phân cấp của node
cần phải được đưa ra chính xác.
Tiếp theo là phương pháp tạo ra các mobilenode:
for { set j 0 } { $j < $opt(nn)} {incr j} {
set node_($j) [ $ns_ node ]
$node_($i) random-motion 0 ;Xóa tính năng di chuyển ngẫu nhiên
}
Thủ tục trên tạo ra một đối tượng mobilenode (tách biệt), tạo ra một tác nhân
định tuyến Ad Hoc-routing như đã được chỉ định, tạo ra ngăn xếp mạng gồm: lớp liên
kết (link), giao diện hàng đợi, lớp mac, và giao diện mạng với một antenne, sử dụng để
định nghĩa mô hình truyền sóng, nối liền (interconnects) các thành phần cấu thành này
và kết nối ngăn xếp đến kênh. Mobilenode hiện nay trông giống như sơ đồ trong hình
sau:
76
76
Hình 4.4: Một mobilenode dưới chuẩn wireless của Monarch của CMU mở rộng ra NS
Cấu trúc mobilenode sử dụng cho giao thức định tuyến DSR hơi khác biệt với
mobilenode được trình bày ở trên. Lớp SRNode được xuất phát từ lớp MobileNode.
SRNode không sử dụng địa chỉ demux hay các phân lớp và tất cả các packet nhẩn bởi
node được điều khiển giảm xuống tác nhân định tuyến DSR theo mặc định. Tác nhân
(Agent) định tuyến DSR hoặc là nhận packets cho chính nó bằng cách điều khiển trên
cổng (port) dmux hoặc là chuyển tiếp packets như trên tuyến nguồn trong tiêu đề hay
gửi ra tuyến yêu cấu và tuyến trả lời (reply) cho các packet mới. Chi tiết về tác nhân
định tuyến DSR có thể được tìm thấy trong chương 3. Mô hình lưu đồ của một
SRNode được biểu diễn trong hình dưới
77
77
Hình 4.5: Một SRNode dưới chuẩn wireless của Monarch của CMU mở rộng ra NS
4.2.3. Tạo sự chuyển động cho Node (Creating Node movements)
Mobilenode được thiết kế để chuyển động (move) trong 3 tọa độ của đồ hình
mạng (topology). Tuy nhiên tọa độ thứ 3 (trục Z) không được sử dụng. Đó là vì
Mobilenode được đề nghị để luôn luôn chuyển động trên mặt phẳng (flat) với tọa độ
trục Z lúc nào cũng bằng 0. Vì vậy, mobilenode có toạ độ X, Y, Z(=0) mà tiếp tục
được điều chỉnh khi node hoạt động (move). Có hai phương thức được đưa ra để hỗ trợ
sự di chuyển trong các mobilenode.
Trong phương thức đầu tiên, vị trí bắt đầu của node và các đích sau này của nó
có thể được thiết lập một cách rõ ràng. Những chỉ dẫn (directive) thường tập trung
trong một chuỗi các file kịch bản di chuyển riêng biệt.
78
78
Vị trí bắt đầu và đích tương lai của mobilenode có thể được thiết lập bằng cách sử
dụng API sau:
$node set X_
$node set Y_
$node set Z_
$ns at $time $node setdest
Tại thời điểm $time giây, node sẽ bắt đầu chuyển động (moving) từ vị trí bắt
đầu của nó là (x1,y1) chuyển tiếp sang đích (x2,y2) với tốc độ (speed) tính theo (m/s)
xác định.
Trong phương thức này, node-movement-updates được nổ ra bất cứ vị trí nào
của node ở tại thời gian được yêu cầu. Quá trình này có thể được gây ra bằng một dạng
truy vấn (query) từ quá trình tìm kiếm một node lân cận để biết được khoảng cách giữa
chúng, hoặc thiết lập đích chỉ dẫn mô tả ở trên để thay đổi hướng và tốc độ của node.
Một minh hoạ về sự chuyển động (movement) của chuỗi các file kịch bản
chuyển động sử dụng các phương thức trên API, có thể được tìm thấy trong thư mục
~ns/tcl/mobility/scene/scen-670x670-50-600-20-0. Ở đây, 670x670 định nghĩa chiều
dài và chiều rộng của topo với 50 node hoạt động với tốc độ tối đa là 20m/s với thời
gian tạm dừng (pause) trung bình trong 600s. Các file chuyển động trong node có thể
được sinh ra bằng cách sử dụng kịch bản tạo ra bởi CMU được tìm thấy trong
~ns/indep-utils/cmu-scen-gen/setdest.
Phương thức thứ hai sử dụng quá trình chuyển động ngẫu nhiên của node.
Thường được sử dụng:
$mobilenode start: khởi động mobilenode với một vị trí ngẫu nhiên và thường cập
nhập tuyến để thay đổi hướng và tốc độ của node. Giá trị đích và tốc độ được sinh ra
ngẫu nhiên. Chúng ta đã không sử dụng phương thức thứ hai và đưa nó đến người
dùng với khảo sát chi tiết. Quá trình họat động của mobilenode được thực thi trong
C++. Hãy xem các phương pháp trong ~ns/mobilenode.{cc.h}chi tiết quá trình thực
thi.
Không quan tâm đến các phương thức được sử dụng để sinh ra chuyển động
cho node, topo của mobilenode cần phải được định nghĩa. Nó lên được định nghĩa
trước khi tạo ra các mobilenode. Thông thường dạng topo phẳng (flat) được tạo ra dựa
vào đặc tả chiều dài và chiều rộng của topo cơ sở sử dụng:
set topo [new Topography]
$topo load_flatgrid $opt(x) $opt(y)
opt(x) opt(y) là giới hạn được sử dụng trong trình mô phỏng. Quá trình họat
động của mobilenode có thể được đưa vào (logged) bằng cách sử dụng thủ tục như
sau:
proc log-movement {} {
global logtimer ns_ ns
set ns $ns_
79
79
source ../mobility/timer.tcl
Class LogTimer -superclass Timer
LogTimer instproc timeout {} {
global opt node_;
for {set i 0} {$i < $opt(nn)} {incr i} {
$node_($i) log-movement
}
$self sched 0.1
}
set logtimer [new LogTimer]
$logtimer sched 0.1
}
Trong trường hợp này, vị trí của mobilenode sẽ được đặt vào sau mỗi 0.1 giây.
4.2.4. Tạo bộ lập lịch sự kiện (Creating Event Scheduler)
Tạo bộ lập lịch như sau:
set ns [new Simulator]
Lập lịch sự kiện:
$ns at
: Chỉ ra các sự kiện phù hợp với ns/tcl
Bộ lập lịch bắt đầu thực hiện
$ns run
4.2.5. Ghi lại vết các sự kiện mô phỏng (vào file *.tr, *.nam)
Vết các gói trên tất cả các liên kết bên trong test.out (hoặc out.tr như trong ns-simple-
trace.tr)
$ns trace-all [open test.out w]
Vết các gói trên tất cả các liên kết trong định dạng nam-1
$ns namtrace-all [open test.nam w]
Cũng có thể chỉ “trace” một số tham số, thí dụ:
$ns trace-queue $n0 $n1
$ns namtrace-queue $n0 $n1
4.2.6. Tạo ra các kết nối TCP và nguồn sinh lưu lượng
Tạo ra các thực thể gửi và nhận của TCP (source and sink)
set tsrc [new Agent/TCP]
set tdst [new Agent/TCPSink]
Gắn các thực thể TCP với nút mạng
$ns attach-agent $n0 $tsrc
$ns attach-agent $n1 $tdst
Tạo ra kết nối giữa thực thể gửi và nhận TCP
$ns connect $tsrc $tdst
80
80
Tạo nguồn sinh lưu lượng của ứng dụng FTP
set ftp [new Application/FTP]
$ftp attach-agent $tsrc
$ns at “$ftp start”
Tạo nguồn sinh lưu lượng của ứng dụng Telnet
set telnet [new Application/Telnet]
$telnet attach-agent $tsrc
4.2.7. Tạo ra các kết nối UDP và nguồn sinh lưu lượng
Tạo ra các thực thể gửi và nhận của UDP (source and NULL)
set usrc [new Agent/UDP]
set udst [new Agent/NULL]
Gắn các thực thể UDP với nút mạng
$ns attach-agent $n0 $usrc
$ns attach-agent $n1 $udst
Tạo ra kết nối giữa thực thể gửi và nhận UDP
$ns connect $usrc $udst
Lưu lượng của các nguồn sinh với tốc độ không đổi – CBR (Constant Bit Rate)
set src [new Application/Traffic/CBR]
Lưu lượng của các nguồn sinh gói tin theo phân bố hàm mũ Exponential hoặc Pareto
on-off
set src [new Application/Traffic/Exponential]
set src [new Application/Traffic/Pareto]
4.3. Cấu trúc tệp vết đối với mạng di động không dây theo chuẩn 802.11 [16]-[18]-
[19]-[20]-[21]
Tệp vết do NS2 sinh ra khi ta mô phỏng mạng LAN theo chuẩn 802.11 gồm có
các dòng, mỗi dòng được chia ra thành nhiều cột, số lượng cột cùng với ý nghĩa của
các cột tùy thuộc vào đồ hình mạng ta mô phỏng cho mạng không dây có cơ sở hạ tầng
hay mạng không dây Ad hoc. Hay ngay các các giao thức định tuyến khác nhau cũng
có cấu trúc tệp vết khác nhau. Sau đây là cấu trúc tệp vết dành cho mạng Ad hoc theo
chuẩn IEEE 802.11.
Giải thích định dạng tệp vết theo kiểu mới (new trace)
Định dạng vết tìm kiếm mới new trace có thể chia thành các trường như sau:
+ Kiểu sự kiện (Event type): Đây là trường đầu tiên, mô tả kiểu của sự kiện nói lên
tại nút đã xảy ra sự kiện và bằng 1 trong 4 giá trị sau:
s send (chỉ đây là sự kiện gửi gói tin)
r receive (chỉ đây là sự kiện nhận gói tin)
d drop (chỉ đây là sự kiện mất gói tin)
f forward (chỉ đây là sự kiện chuyển tiếp gói tin)
+ General tag Trường thứ hai bắt đầu với "-t" chỉ thời gian hay thời gian hoặc thiết
lập chung:(-t time; -t * (global setting))
81
81
+ Các thẻ thuộc tính node (Node property tags) Trường này chỉ định thuộc tính của
node như định danh của nút (node-id), ở mức độ tìm kiếm giống như tác nhân thực
hiện, bộ định tuyến hoặc MAC. Thẻ này bắt đầu với "-N" và được liệt kê dưới đây:
-Ni: Định danh nút (node id)
-Nx: Tọa độ x của nút
-Ny: Tọa độ y của nút
-Nz: Tọa độ z của nút
-Ne: Mức năng lượng của nút
-Nl: Mức tìm kiếm, như AGT, RTR, MAC
-Nw: Nguyên nhân của sự kiện. Các lý do khác dẫn đến hủy một gói tin được
đưa ra như sau:
"END" DROP_END_OF_SIMULATION ;Lỗi kết thúc mô phỏng
"COL" DROP_MAC_COLLISION ;Xung đột tầng MAC
"DUP" DROP_MAC_DUPLICATE ;Trùng MAC
"ERR" DROP_MAC_PACKET_ERROR ; Lỗi gói tin
"RET" DROP_MAC_RETRY_COUNT_EXCEEDED;Vượt quá số đếm
"STA" DROP_MAC_INVALID_STATE ;Trạng thái MAC không đúng
"BSY" DROP_MAC_BUSY ;MAC bận
"NRTE" DROP_RTR_NO_ROUTE ;tuyến này không tồn tại.
"LOOP" DROP_RTR_ROUTE_LOOP ;có lặp vòng tuyến.
"TTL" DROP_RTR_TTL ;có nghĩ là khi TTL không còn.
"TOUT" DROP_RTR_QTIMEOUT ;khi gói tin hết hiệu lực.
"CBK" DROP_RTR_MAC_CALLBACK
"IFQ" DROP_IFQ_QFULL ;không còn khoảng trống trong bộ đệm trong IFQ.
"ARP" DROP_IFQ_ARP_FULL ;hủy bởi ARP
"OUT" DROP_OUTSIDE_SUBNET ;hủy bởi trạm cơ sở trên cập nhật
tuyến nhận từ node bên ngoài domain của nó.
+ Thông tin gói tin (Packet) tại mức IP Các thẻ dùng cho trường này bắt đầu với “-I”
và được liệt kê dưới đây:
-Is: Địa chỉ nguồn. Chỉ số cổng nguồn
-Id: Địa chỉ đích. Chỉ số cổng đích
-It: Kiểu của gói tin
-Il: Kích thứơc của gói tin
-If: Định danh tiếp theo.
-Ii: Định danh duy nhất.
-Iv: Giá trị ttl.
+ Next hop info: Trường này cung cấp thông tin về chặng tiếp theo và trạng thái thẻ
với ký hiệu bắt đầu bằng "-H".
-Hs: Định danh của nút
-Hd: Định danh của nút đích chuyển tiếp.
82
82
+ Packet info at MAC level: Trường này ghi nhận thông tin lớp và bắt đầu với ký
hiệu "-M" như dưới đây:
-Ma: Thời gian truyền gói tin
-Md: Địa chỉ ethernet đích
-Ms: Địa chỉ ethernet nguồn
-Mt: Kiểu ethernet
+ Thông tin của gói tin tại “Mức ứng dụng” (Application level) Thông tin của gói
tin tại mức ứng dụng bao gồm có kiểu của ứng dụng như ARP, TCP, kiểu của giao
thức định tuyến Ad hoc như DSDV, DSR, AODV, … được tìm thấy. Trường này bắt
đầu với "-P" và danh sách các thẻ cho các ứng dụng khác nhau được liệt kê dưới đây:
+ P arp Giao thức phân giải địa chỉ. Có nội dung với ARP được đưa ra các thẻ sau:
-Po: ARP Yêu cầu và hồi đáp (Request/Reply)
-Pm: Địa chỉ nguồn của lớp MAC
-Ps: Địa chỉ nguông
-Pa: Địa chỉ đích của lớp MAC
-Pd: Địa chỉ đích
+ P dsr Phần này chỉ ra giao thức định tuyến Ad Hoc được gọi định tuyến nguồn chủ
động (Dynamic). Thông tin trên DSR được trình bày bởi các thẻ sau đây:
-Pn: Có bao nhiêu nút đi qua
-Pq: Cờ yêu cầu định tuyến
-Pi: Số tuần tự yêu cầu tuyến
-Pp: Cờ đáp lại của định tuyến (Reply)
-Pl: Chiều dài thông tin đáp lại
-Pe: src của srcrouting->dst của định tuyến nguồn
-Pw: Cờ báo lỗi
-Pm: Số lỗi
-Pc: Báo cáo đến ai?
-Pb: Lỗi liên kết từ linka->linkb
+ P cbr Hằng số chỉ tốc độ của bit. Thông tin về ứng dụng CBR được trình bày bởi
các thẻ sau:
-Pi: Chỉ số tuần tự
-Pf: Bao nhiêu thời gian để pkt này được chuyển tiếp
-Po: Số tối ưu của quá trình chuyển tiếp
+ P tcp Thông tin của luồng TCP được đưa ra bởi các thẻ nhỏ sau:
-Ps: seq number: chỉ số tuần tự
-Pa: ack number: chỉ số gói tin báo nhận đúng
-Pf: Bao nhiêu thời gian để pkt này được chuyển tiếp
-Po: Chỉ số tối ưu của chuyển tiếp
Nội dung của các trường và ý nghĩa tệp vết mô phỏng theo giao thức định
tuyến DSR như sau:
83
83
s 606.210364161 _39_ RTR --- 1306 DSR 44 [13a a 27 800] ------- [39:255 8:255
255 8] 2 [0 0] [0 0 0 0->0] [1 1 8 39->10]
- Kiểu sự kiện (Event type): Đây là trường đầu tiên, mô tả kiểu của sự kiện nói lên
tại nút đã xảy ra sự kiện và bằng 1 trong 4 giá trị sau:
s send (chỉ đây là sự kiện gửi gói tin)
r receive (chỉ đây là sự kiện nhận gói tin)
d drop (chỉ đây là sự kiện mất gói tin)
f forward (chỉ đây là sự kiện chuyển tiếp gói tin)
- Thời gian xảy ra sự kiện (time stamp) ở ví dụ trên là 606.210364161:
- Định danh của nút (node id) phát sinh sự kiện _39_:
- Trường tiếp theo nhận một trong các giá trị sau:
RTR: Thông báo tuyến,
AGT: Cho biết thông tin ở tầng giao vận,
IFQ: Cho biết các sự kiện ở hàng đợi ưu tiên
- Định danh của gói tin(id of this packet): 1306:
- Tác nhân định tuyến theo (DSR):
- Kích thước chung của phần tiêu đề gói tin 44:
- Nội dung của lớp MAC [13a a 27 800]:
13a(=314 của hệ thập phân): Chỉ định thời gian truyền thông ( chú ý rằng kích
thước của gói tin = 44 bytes, 314 giây?)
a: Nghĩa là nút nhận = 10 (của hệ 10)
27: Nghĩa là nút gửi bằng 39 (của hệ 10)
800: Tiêu để gói tin IP: 0x0800, (ETHERTYPE_ARP là 0x0806)
- Nội dung gói tin IP [39:255 8:255 255 8]:
39: Địa chỉ nguồn src address bằng 0.0.0.39
255: Số hiệu cổng nguồn
8: Địa chỉ đích bằng 0.0.0.8
255: Số hiệu cổng đích
255: Time to Live (TTL:) của gói tin
8: Số chặng tồn tại (Next Hop)
- Nội dung của DSR 2 [0 0] [0 0 0 0->0] [1 1 8 39->10]:
2: Số địa chỉ num_addrs()
[0 0]:Tùy chọn tuyến yêu cầu giá trị bằng:
0 là không yêu cầu tuyến
0 là nhãn cho số tuần tự
[0 0 0 0->0] Tùy chọn tuyến trả lời:
[ " route-reply?" "Rreq seqno" "reply length" "dst of src route",
"src of the src route"]
- Mô tả lỗi tuyến [1 1 8 39->10], 1:
1: Số của tuyến lỗi
84
84
8: Cảnh báo nút 8.
39->10: liên kết từ nút 39 đến nút 10 đã bị hỏng
4.4. Các công cụ xử lý sau khi mô phỏng
4.4.1. Sử dụng Grep
Grep là một lệnh trong Unix|Linux, là thuật ngữ viết tắt của: “Global
Regular Expression Parser”. Grep là một bộ lọc, nó tìm và hiển thị các dòng kết quả
trong lệnh có chứa mẫu (pattern) mà người sử dụng chỉ ra.
Cách 1: Lọc đầu ra của một chương trình khác. Cú pháp lệnh:
| grep
Ví dụ: cat DSDV_30.tr |grep "^s" |grep "_12_"
;Hiển thị các sự kiện gửi dữ liệu của nút có id=_12_ trong file DSDV_50.tr
cat DSDV_30.tr |grep "^s" |grep "_8_" |wc -l
;Đếm số sự kiện gửi tại nút id=_8_ trong file DSDV_50.tr
Cách 2: lọc file. Cú pháp như sau: grep
Ví dụ: grep " 0 2 tcp "tr1.tr > tr2.tr
;Sao chép tất cả các dòng có chuỗi " 0 2 tcp " từ file tr1.tr sang file tr2.tr
grep "^r" tr1.tr > tr2.tr
;Sao chép tất cả các dòng có ký hiệu "r" từ file tr1.tr sang file tr2.tr
grep "^s" simple.tr | grep "tcp 1020" > tr3.tr
;Sao chép tất cả các dòng có ký hiệu "s" và có chuỗi "tcp 1020" từ file simple.tr
sang file tr3.tr
4.4.2. Xử lý file dữ liệu với Awk
AWK là một ngôn ngữ lập trình được sáng tạo bởi 3 người là Alfred Aho, Peter
Weinberger, and Brian Kernighan; chữ cái đầu của tên (last name) 3 người được ghép
lại và đặt làm tên cho ngôn ngữ của họ. Chương trình awk được tích hợp trong Linux
là ứng dụng GNU của ngôn ngữ lập trình awk.
Awk cho phép chúng ta xử lý thông tin chứa trong file dữ liệu như: hiển thị một
phần hoặc toàn bộ file, có thể trích chọn để hiển thị dòng, cột hoặc trường theo các
tiêu chuẩn được chỉ rõ.
− Có thể phân tích văn bản để tính tần suất các word v.v.
− Chuẩn bị các báo cáo đưa ra có định dạng, dựa trên các thông tin của file.
− Lọc văn bản theo một cách thức rất mạnh.
− Thực hiện tính toán trên các thông tin số trong file.
Ví dụ kịch bản awk tính tổng giá trị của cột 4 trong file
BEGIN { FS = "\t"} { nl++} {s=s+$4} END {print "average:" s/nl}
4.4.3. Xử lý file dữ liệu với Perl
Perl viết tắt của “Practical Extraction and Report Language”, cho phép chúng ta
lọc và xử lý dễ dàng với file dữ liệu ASCII trong unix. Perl là một ngôn ngữ lập trình
thông dịch được phát triển bởi Larry Wall.
Perl có một số ưu điểm như sau:
85
85
- Dễ dàng triển khai chương trình nhỏ để sử dụng cho các bộ lọc, trích rút thông
tin từ tệp text
- Perl có thể được sử dụng ở nhiều hệ điều hành khác nhau mà không phải thay
đổi mã
- Bảo trì và gỡ rối chương trình, kịch bản Perl đơn giản hơn các ngôn ngữ khác
- Perl rất thông dụng do vậy tồn tại rất nhiều tài liệu, kịch bản trên mạng
4.3.5. Vẽ đồ thị với gnuplot [26]
Gnuplot là phần mềm được hỗ trợ miễn phí chạy trên cả Windows và trên
Unix|Linux. Gnuplot cho phép thực hiện vẽ một hoặc nhiều đồ thị trên cùng một biểu
đồ, dữ liệu dầu vào có thể là file văn bản có nhiều cột, nhưng ta cần chỉ ra 2 cột chứa
số liệu vẽ đồ thị. Sử dụng Gnuplot chúng ta có thể tổng hợp, so sánh kết quả của nhiều
file dữ liệu trên một biểu đồ, điều này rất thuận lợi cho việc nghiên cứu.
4.3.6. Vẽ đồ thị với xgraph [27]
Xgraph là một tiện ích dùng để vẽ đồ thị, luôn đi kèm NS. Dữ liệu đầu vào của
nó là một hoặc một số file dạng văn bản, trên mỗi dòng là một cặp số liệu có dạng “x
y” cho một điểm trên đồ thị.
4.3.7. Tổng hợp dữ liệu với Trace graph [23]-[24]-[25]
Tác giả của Trace graph là Jaroslaw Malek (Copyright (c) 2001-2003 by
Wroclaw University of Technology, Poland). TraceGraph là một phần mềm mã nguồn
mở tự do (hiện đã được thương mại hoá cho các phiên bản ra đời từ năm 2004), có khả
năng vẽ đồ thị dựa trên thư viện đồ hoạ của MathLab, phân tích và hiển thị các kết quả
mô phỏng khá tốt (dữ liệu đầu vào là tệp vết). Trace graph có các phiên bản chạy trên
Windows và các phiên bản chạy trên Linux/Unix (?).
Sử dụng TraceGraph khi ta muốn nhanh chóng phân tích, tổng hợp dữ liệu và
vẽ đồ thị cho các kết quả mô phỏng bằng NS-2, những người chưa thành thạo về
Linux/Unix và các công cụ phân tích, hiển thị đồ hoạ như grep, awk, perl, xgraph,
gnuplot, có thể tìm và sử dụng công cụ này Các thông tin về Trace graph có thể tìm
thấy tại các địa chỉ xem
4.5. Mô phỏng mạng Ad hoc theo chuẩn IEEE 802.11
4.5.1. Thiết lập topo mạng Ad hoc
Để thiết lập mô hình mô phỏng mạng Ad hoc tôi xây dựng một kịch bản mô
phỏng bao gồm 50 nút (mỗi nút được tạo theo cấu trúc như trên), các nút được thiết lập
ở các vị trí ngẫu nhiên trong một vùng 2000m x 2000m với vùng phủ sóng của mỗi
trạm là 250m. Trên mỗi trạm có gắn một thực thể truyền thông CBR (Constrant Bit
Rate) hoặc FPT dựa trên giao thức tầng giao vận UDP hoặc TCP với kích thước gói tin
là 1500 bytes tốc độ phát của CBR không đổi 100 bps, phát đến các trạm được kết nối
theo mô phỏng. Để đánh giá hiệu năng hoạt động của các giao thức định tuyến tôi thực
hiện đánh giá dựa vào tải đưa vào mạng cùng với việc đánh giá các thông số gồm
thông lượng (throughput), độ trễ (delay), độ thăng gián (jitter) và tỉ lệ mất gói tin
86
86
(packet loss ratio). Thời gian mô phỏng dành cho toàn bộ kịch bản là 30 phút, các
tham số và tải đưa vào mạng là như nhau đối với các giao thức định tuyến
Do đặc thù của mạng Ad Hoc là topo mạng động, băng thông hạn chế, khả năng
liên kết giữa các nút mạng có thể thay đổi, lên việc phân tích hiệu năng của các giao
thức định tuyến trong mạng Ad Hoc ta cần xét đến các đặc tính như: độ lớn của mạng
được thể hiện bằng số các nút mạng, các nút mạng được kết nối thông qua số lượng
nút hàng xóm của nó, quá trình thay đổi cấu hình vật lý của mạng theo thời gian (do
các nút có thể di chuyển trong khi mạng vẫn đang hoạt động) và dạng truyền thông
trong mạng có thể là đồng dạng, không đồng dạng hoặc bùng phát. Đây chính là mức
độ tải trong mạng.
4.5.2. Thực hiện mô phỏng
Sau khi xây dựng script mô phỏng cho cả bốn giao thức, ta thực hiện mô phỏng
theo từng giao thức định tuyến bằng cách chọn giao thức định tuyến cần mô phỏng rồi
thực hiện lệnh sau: ns dsdv_aodv_dsr_olsr_09.tcl ta được màn hình nam mô phỏng
sau:
Hình 4.6: Đồ hình mô phỏng 50 node mạng ah hoc
Mỗi một giao thức sau khi mô phỏng ta sẽ có một tệp vết ghi lại toàn bộ các sự kiện
xảy ra của mạng. dựa vào các tệp vết này ta sẽ sử dụng mã script perl để đánh giá hiệu
năng cho từng giao thức.
87
87
4.5.3. Đánh giá hiệu năng các giao thức mạng
Để đánh giá hiệu năng hoạt động của các giao thức mạng tôi thực hiện đánh giá
các thông số gồm thông lượng (throughput), độ trễ (delay), thăng giáng độ t rễ
(jitter) và tỉ lệ mất gói tin (packet loss ratio) theo các kết nối TCP lưu lượng vận
chuyển FTP và kết nối UDP luồng sinh lưu lượng không đổi CBR (Constant Bit Rate),
các giao thức đều được thực hiện tren cùng một kịch bản mô phỏng, nghĩa là đồ hình
mạng là như nhau, quá trình di chuyển của các nút cũng như thời gian mô phỏng của
các nút là như nhau cùng với tải đưa vào mạng để đánh giá hiệu năng của các giao
thức định tuyến cũng như nhau. Ứng với mỗi giao thức định tuyến sẽ cho ta kết quả
đánh giá thông qua từng biểu đồ
4.5.3.1. Thông lượng trung bình
Thông lượng trung bình của toàn mạng được tính bằng tổng thông lượng trung
bình của từng kết nối. Thông lượng trung bình của từng kết nối bằng tổng kích thước
các gói tin nhận được chia cho thời gian truyền lưu lượng qua kết nối.
Thông lượng trung bình 1 kết nối (Mbps) = Tổng (Kích thước gói tin) / (Thời gian
gian nhận gói tin cuối cùng - Thời gian gửi gói tin đầu tiên) (Mbps)
Hình 4-7: Thông lượng trung bình của toàn mạng
Đồ thị trên biểu thị thông lượng trung bình của các giao thức định tuyến khác
nhau trong suốt khoảng thời gian mô phỏng. Trục hoành biểu thị khoảng thời gian mô
phỏng, ở đây khoảng thời gian mô phỏng được tính bằng giây, trục tung biểu diễn
thông lượng trung bình của toàn mạng, (bao gồm tất cả các kết nối, tất các thực thể có
tham gia vào quá trình truyền thông) theo đơn vị tính mêgabít. Vậy biểu đồ trên sẽ
biểu diễn thông lượng trung bình theo Mbps.
Nhìn vào biểu đồ ta thấy thông lượng trung bình vào thời gian đầu mô phỏng
các giao thức đạt dưới 3Mbps, do vào thời gian này tải đưa vào mạng chưa cao. Sau đó
88
88
các giao thức dần dần đi vào ổn định. Giao thức DSR đạt hiệu năng cao nhất, thông
lượng trên dưới 10Mbps, Còn giao thức AODV cũng đạt thông lượng trung bình cao
xấp xỉ ngưỡng 6Mbps, OLSR ổn định ở mức 4Mbps giao thức DSDV có thông lượng
trung bình thấp nhất ở mức dưới 3Mbps.
4.5.3.2. Độ trễ trung bình
Độ trễ trung bình của toàn mạng được tính bằng tổng độ trễ của từng kết nối.
Độ trễ trung bình của từng kết nối bằng tổng độ trễ của từng gói tin gửi thành công
chia cho tổng số lượng gói tin nhận được
Độ trễ trung bình của một kết nối = Tổng(Thời gian nhận gói tin – thời gian gửi gói
tin) / Số gói tin nhận được
Độ trễ trung bình của toàn mạng = Tổng (Độ trễ trung bình của các kết nối)
Hình 4-8: Độ trễ trung bình của toàn mạng
Trục hoành của biểu đồ biểu diễn số gói tin truyền được, trục tung biểu diễn độ
trễ truyền thông tính theo giây. Nhìn vào biểu đồ ta thấy độ trễ trung bình của giao
thức AODV có giá trị cao nhất, đạt đến gần 800 giậy trên 500 gói tin. Độ trên trung
bình của giao thức DSR và giao thức DSDV có vẻ tăng theo số lượng gói tin truyền
trong mạng. Giao thức OLSR là giao thức có độ trễ thấp nhất, đạt dưới 100 giây trên
gần 3500 gói tin và có vẻ không táng nhiều khi số lượng gói tin truyền trong mạng
tăng cao.
4.5.3.3. Thăng giáng độ trễ trung bình
Thăng giáng độ trễ so với độ trễ trung bình hay còn gọi là sự biến đổi độ trễ so
với độ trễ trung bình, được tính bằng mức độ chênh lệch so với độ trễ trung bình.
Thăng giáng độ trễ trung bình = Độ trễ của từng gói tin trong mạng / Độ trễ trung
bình của toàn mạng
89
89
Hình 4-9: Thăng giáng độ trễ trung bình của toàn mạng
Nhìn vào biểu đồ ta thấy thăng giáng độ trễ so với độ trễ trung bình của các
giao thức DSDV, DSR,OLSR ổn định ở mức trên dưới 50 giây cho toàn bộ các gói tin
truyền trong mạng, với giao thức AODV có thăng giáng độ trễ so với độ trễ trung bình
có khoảng lên tới trên 100 giây rồi sau đó dần đi vào ổn định dưới 100 giây.
4.5.3.4. Tỷ lệ mất gói tin
Tỷ lệ mất gói tin của toàn mạng được tính bằng tổng số gói tin gửi đi trừ số gói
tin nhận được chia cho số gói tin gửi đi tính theo một đơn vị thời gian.
Tỉ lệ mất gói tin = Tổng (Số gói tin gửi đi – Số gói tin nhận được) / Số gói tin gửi đi
(%)
Hình 4-10: Tỷ lệ mất gói tin trên toàn mạng
90
90
Thông số trên biểu đồ trục hoành diễn tả thời gian mô phỏng, trục tung biểu
diễn tỷ lệ mất gói tin tính theo đơn vị phần trăm. Nhìn vào biểu đồ ta thấy tỷ lệ mất gói
tin của các giao thức AODV có tỷ lệ mất gói tin tăng đột biến vào các khoảng thời
gian từ 25 đến 30 giây cuối cùng còn tỷ lệ mất gói tin trung bình của các giao thức
OLSR, DSDV, DSR đạt gần xấp xỉ như nhau khoảng từ 1% đến 1,5% và OLSR có tỷ
lệ mất gói tin thấp nhất.
Như vậy đánh giá hiệu năng chung của các giao thức ta nhận thấy:
- Với giao thức DSR và giao thức AODV có thông lượng cao nhất trong bốn giao thức
tuy nhiên có độ trễ cao và tăng theo số lượng gói tin truyền trong mạng cũng như tỷ lệ
mất gói tin cho toàn mạngcó thời điểm cao vút.
- Giao thức DSDV và OLSR hai giao thức này có thông lượng trung bình ở mức độ
vừa phải với OLSR gần 5Mbps, DSDV thì thấp hơn tuy nhiên lại có độ trễ trung bình
và tỷ lệ mất gói tin trên toàn mạng lại thấp nhất.
4.5.4. Đánh giá các tuyến đường được thiết lập trong thời gian mô phỏng
Để đánh giá các tuyến được thiết lập vào các thời điểm khác nhau theo từng
giao thức, ta dựa vào tệp kết quả mô phỏng để tìm ra các tuyến và sự di chuyển của
các nút đã làm hỏng tuyến từ đó nút nguồn sẽ phải tìm ra tuyến mới.
Kết quả mô phỏng tuyến đường từ nút 6 đến nút 23 theo giao thức DSDV trong
khoảng thời gian 10 giây đầu ta được:
tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _DSDV_50.tr 6 23 10
Tuyến đường từ nút 6 đến nút 23 có độ dài bằng: 5
6 --> 10 --> 27 --> 18 --> 9 --> 23
tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _DSDV_50.tr 6 23 20
Vào 15.00000 (s) node 9 di chuyển từ: (850.00, 950.00, 0.00), đến: (910.00, 730.00),
vận tốc:200.00 (m/s)
Tuyến đường từ nút 6 đến nút 23 có độ dài bằng: 4
Do nút 9 di chuyển vào giây thứ 15 lên tuyến đường cũ đã bị hỏng, DSDV xá lập lại
tuyến mới: 6 --> 27 --> 18 --> 9 --> 23
tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _DSDV_50.tr 6 23 30
Vào 9.00000 (s) node 25 di chuyển từ: (1350.00, 1250.00, 0.00), đến: (950.00,
100.00), vận tốc:100.00 (m/s) lên tuyến đường từ nút 6 đến nút 23 có độ dài bằng 2
được DSDV xác lập lại: 6 --> 25 --> 23
Đánh giá tuyến đường theo giao thức AODV:
tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _AODV_50.tr 6 23 10
Tuyến đường từ nút 6 đến nút 23 có độ dài bằng: 4 6 --> 27 --> 18 --> 9 --> 23
tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _AODV_50.tr 6 23 20
Vào 9.00000 (s) node 25 di chuyển từ: (1350.00, 1250.00, 0.00), đến: (950.00,
100.00), vận tốc:100.00 (m/s) khi đó AODV xác lập lại tuyến đường từ nút 6 đến nút
23 có độ dài bằng: 2 6 --> 25 --> 23
tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _AODV_50.tr 6 23 30
91
91
Vào 9.00000 (s) node 25 di chuyển từ: (1350.00, 1250.00, 0.00), đến: (950.00,
100.00), vận tốc:100.00 (m/s). Ta thấy nút 25 di chuyển nhưng vẫn lằm trong khoảng
truyền thông của nút 6 và 23 lên tuyến vẫn được giữ nguyên trong suốt thời gian mô
phỏng 6 --> 25 --> 23
Đánh giá tuyến đường theo giao thức OLSR:
tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _OLSR_50.tr 6 23 10
Tuyến đường từ nút 6 đến nút 23 có độ dài bằng: 4
6 --> 27 --> 18 --> 9 --> 23
Ta thấy theo giao thức OLSR, khoảng 10 giây đầu tiên cũng không khác gì so với hai
giao thức trước AODV và DSDV
tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _OLSR_50.tr 6 23 20
Vào 9.00000 (s) node 25 di chuyển từ: (1350.00, 1250.00, 0.00), đến: (950.00,
100.00), vận tốc:100.00 (m/s)
Tuyến đường từ nút 6 đến nút 23 có độ dài bằng: 2
6 --> 25 --> 23
tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _OLSR_50.tr 6 23 30
Vào 9.00000 (s) node 25 di chuyển từ: (1350.00, 1250.00, 0.00), đến: (950.00,
100.00), vận tốc:100.00 (m/s) nút 25 có di chuyển nhưng vẫn nằm trong phạm vi
truyền sóng của nút 6 và 23 lên OLSR xác lập tuyến có độ dài bằng: 2
6 --> 25 --> 23
Đánh giá tuyến đường theo giao thức DSR
tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _DSR_50.tr 6 23 10
Tuyến đường từ nút 6 đến nút 23 có độ dài bằng: 4
6 --> 27 --> 18 --> 9 --> 23
tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _DSR_50.tr 6 23 20
Vào 9.00000 (s) node 25 di chuyển từ: (1350.00, 1250.00, 0.00), đến: (950.00,
100.00), vận tốc:100.00 (m/s)
Tuyến đường từ nút 6 đến nút 23 có độ dài bằng: 2 6 --> 25 --> 23
tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _DSR_50.tr 6 23 30
Vào 9.00000 (s) node 25 di chuyển từ: (1350.00, 1250.00, 0.00), đến: (950.00,
100.00), vận tốc:100.00 (m/s)
Tuyến đường từ nút 6 đến nút 23 có độ dài bằng: 2 6 --> 25 --> 23
Cuối cùng ta thấy với giao thức DSR cũng giống như DSDV hay AODV hay OLSR
giao thức trước. Tuy nhiên kết quả mô phỏng lại khác nhau khi ta thay đổi liên kết:
tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _DSR_50.tr 12 29 10
Tuyến đường từ nút 12 đến nút 29 có độ dài bằng: 8
12 --> 7 --> 44 --> 20 --> 23 --> 35 --> 33 --> 19 --> 29
tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _DSR_50.tr 12 29 30
Không tìm thấy tuyến nào từ 12 đến 29 ....
tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _DSDV_50.tr 12 29 10
92
92
Tuyến đường từ nút 12 đến nút 29 có độ dài bằng: 8
12 --> 7 --> 44 --> 20 --> 23 --> 35 --> 33 --> 19 --> 29
tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _DSDV_50.tr 12 29 20
Vào 9.00000 (s) node 25 di chuyển từ: (1350.00, 1250.00, 0.00), đến: (950.00,
100.00), vận tốc:100.00 (m/s)
Vào 15.00000 (s) node 19 di chuyển từ: (1400.00, 850.00, 0.00), đến: (1300.00,
580.00), vận tốc:300.00 (m/s)
Tuyến đường từ nút 12 đến nút 29 có độ dài bằng: 6
12 --> 7 --> 44 --> 15 --> 25 --> 19 --> 29
tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _DSDV_50.tr 12 29 30
Vào 6.00000 (s) node 6 di chuyển từ: (250.00, 600.00, 0.00), đến: (1450.00, 50.00),
vận tốc:50.00 (m/s)
Vào 15.00000 (s) node 19 di chuyển từ: (1400.00, 850.00, 0.00), đến: (1300.00,
580.00), vận tốc:300.00 (m/s)
Tuyến đường từ nút 12 đến nút 29 có độ dài bằng: 4 12 --> 6 --> 24 --> 19 --> 29
tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _AODV_50.tr 12 29 10
Tuyến đường từ nút 12 đến nút 29 có độ dài bằng: 8
12 --> 7 --> 44 --> 20 --> 23 --> 35 --> 33 --> 19 --> 29
tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _AODV_50.tr 12 29 20
Vào 6.00000 (s) node 6 di chuyển từ: (250.00, 600.00, 0.00), đến: (1450.00, 50.00),
vận tốc:50.00 (m/s)
Vào 9.00000 (s) node 25 di chuyển từ: (1350.00, 1250.00, 0.00), đến: (950.00,
100.00), vận tốc:100.00 (m/s)
Vào 15.00000 (s) node 19 di chuyển từ: (1400.00, 850.00, 0.00), đến: (1300.00,
580.00), vận tốc:300.00 (m/s)
Tuyến đường từ nút 12 đến nút 29 có độ dài bằng: 4 12 --> 6 --> 25 --> 19 --> 29
tannd@tannd-laptop: ~/Desktop/NS2 $ perl routerlist.pl _OLSR_50.tr 12 29 20
Vào 6.00000 (s) node 6 di chuyển từ: (250.00, 600.00, 0.00), đến: (1450.00, 50.00),
vận tốc:50.00 (m/s)
Vào 9.00000 (s) node 25 di chuyển từ: (1350.00, 1250.00, 0.00), đến: (950.00,
100.00), vận tốc:100.00 (m/s)
Vào 15.00000 (s) node 19 di chuyển từ: (1400.00, 850.00, 0.00), đến: (1300.00,
580.00), vận tốc:300.00 (m/s)
Tuyến đường từ nút 12 đến nút 29 có độ dài bằng: 4 12 --> 6 --> 25 --> 19 --> 29
Bây giờ ta thấy vào cuối của thời gian mô phỏng kết quả khám phá tuyến của DSDV,
DSR, AODV, OLSR lại rất khác nhau khi mà AODV và DSDV, OLSR lại tìm ra được
tuyến tối ưu còn DSR thì không tìm được.
4.6. Tóm tắt chương
Chương này đã thực hiện xây dựng chương trình mô phỏng đánh giá mạng vô
tuyến Ad Hoc với 50 nút tham gia kết nối mạng tác giả đã thực hiện mô phỏng các kết
93
93
nối thực hiện truyền dữ liệu dựa trên giao thức truyền có kết nối, điều khiển cửa sổ
trượt TCP và giao thức truyền không kết nối UDP dựa theo mô hình truyền không đổi
cbr. Sau khi mô phỏng luận văn đã trình bày biểu đồ biểu thị thông lượng trung bình
của toàn mạng, điộ trễ trung bình, thăng giáng độ trễ so với độ trễ trung bình, tỷ lệ mất
gói tin và liệt kê các tuyến. Từ chương trình mô phỏng này, tác giả mong muốn phần
nào giải quyết được yêu cầu đặt ra của bài toán.
94
94
KẾT LUẬN
Mạng vô tuyến Ad Hoc là mạng mà các nút mạng được tổ chức một cách ngang
hàng với nhau, nghĩa là trong mạng không có máy chủ, không có bộ định tuyến lên các
nút mạng vừa là máy chủ, vừa là máy khách, lại vừa là bộ định tuyến, hơn nữa các nút
trong mạng cần có tính tự tổ chức, tự thích ứng khi trạng thái, đồ hình mạng thay đổi
như sự gia nhập mạng của nút mới, quá trình ngắt bỏ kết nối,... Hơn nữa do đặc thù
của mạng Ad Hoc các nút chủ yếu sử dụng năng lượng pin để duy trì quá trình hoạt
động trong mạng do vậy sử dụng giao thức định tuyến nào để hệ thống ít tốn năng
lượng hoạt động hiệu quả là vấn đề cần được quan tâm.
Đề tài luận văn tốt nghiệp "Định tuyến trong mạng Ad Hoc vô tuyến" đây là
chủ đề khá mới ở Việt Nam, chưa được nhiều người khai thác, ứng dụng. Để đạt được
mục tiêu đề gia, tác giả đã tìm hiểu nghiên cứu và dùng mô phỏng để đánh giá hiệu
năng mạng. Cấu trúc của luận văn được chia thành bốn chương trình bày các vấn đề cơ
bản về mạng vô tuyến có cơ sở hạ tầng, mạng vô tuyến không có cơ sở hạ tầng Ad
Hoc. Trình bầy các mô hình truyền thông, các kỹ thuật điều chế tầng vật lý cùng với
các chức năng điều khiển truy nhập môi trường truyền MAC và các chuẩn dùng cho
mạng vô tuyến Ad Hoc.
Chương 3, 4 của bản luận văn trình bầy chi tiết về các giao thức định tuyến
dùng trong mạng vô tuyến Ad Hoc, ở đây tác giả đưa ra quá trình nghiên cứu của bốn
giao thức định tuyến thông dụng là OLSR, AODV, DSR và DSDV, đây là các giao
thức định tuyến thông dụng được dùng trong mạng vô tuyến Ad Hoc đặc trưng cho hai
phương pháp định tuyến là giao thức định tuyến điều khiển theo bảng ghi, giao thức
định tuyến theo yêu cầu khởi phát từ nguồn và định tuyến lai ghép. Để làm rõ hơn
cũng như đánh giá hiệu năng hoạt động của các giao thức trên, tác giả đã tiến hành mô
phỏng để đánh giá hiệu năng hoạt động giữa các giao thức. Thông qua kết quả mô
phỏng ta có thể thấy được những ưu điểm khác nhau của mỗi giao thức, qua đó tùy vào
từng mô hình mạng cụ thể ta sẽ có lựa chọn tốt hơn cho nhu cầu ứng dụng.
Như trên đã trình bầy, đối với mạng vô tuyến Ad Hoc hiện nay còn rất nhiều
thách thức về mặt công nghệ cần được giải quyết, trong đó vấn đề định tuyến đường đi
cho các gói tin truyền trong mạng là vấn đề quan trọng và cơ bản nhất vì nó có ảnh
hưởng trực tiếp đến hiệu năng hoạt động của mạng vô tuyến Ad Hoc.
Hướng nghiên cứu tiếp theo
- Nghiên cứu và đánh giá hiệu năng mạng vô tuyến Ad Hoc sử dụng giao thức định
tuyến ZRP, ABR, CGSR, SSR, ...
- Nghiên cứu, xây dựng và triển khai các vấn đề về an ninh cho mạng vô tuyến Ad
Hoc.
- Nghiên cứu, xây dựng và triển khai hệ thống dự báo thời tiết, cứu hộ, cứu nạn, hệ
thống cảnh báo sự xâm nhập trái phép vào vùng biên giới quốc gia sử dụng mạng vô
tuyến Ad Hoc.
95
95
TÀI LIỆU THAM KHẢO
Tiếng Việt
1. Nguyễn Đình Việt (2008), Bài giảng đánh giá hiệu năng mạng máy tính, Trường
Đại học Công nghệ - Đại học quốc gia Hà Nội
Tiếng Anh
2. AndreaGoldsmith (2005), Wireless Communication, Cambridge University
3. Charles E. Perkins and P. Bhagwat (1994), Highly Dynamic Destination-Sequenced
Distance-Vector Routing (DSDV) for Mobile Computers, SIGCOMM ’94: Computer
Communications Review, 24(4), 234–244, October 1994.
4. Dharma Prakash Agrawal-Qing-An Zeng (2006), Introduction to Wirreless and
Mobile Systems
5. Jochen H.Schiller (2000), Mobile Communication, Addison Wesley
6. Martin Sauter (2006), Communication Systems for the Mobile Information Society,
John Wiley & Sons Lt
7. Matthew Gast (2002), 802.11 Wireless Networks The Definitive Guide, O'Reill
8. Michel Barbeau and Evangelos Kranakis(2007), Principles of Ad Hoc Networking,
John Wiley & Sons Ltd
9. P. Nicopolitidis, M. S. Obaidat, G. I. Papadimitriou and A. S. Pomportsis (2003),
Wireless NetWorks, John Wiley & Sons Ltd
10. Stefano Basagni, Macro Contisilvia giordano and Ivan Stojmenovic (2004), Mobile
Ad Hoc Networking, John Wiley & Sons
11. Subir Kumar Sarkar, T G Basavaraju, C Puttamadappa(2008), Ad Hoc Mobile
Wireless Networks Principles, Protocols and Applications, Taylor & Francis Group
12. T.S. Rappaport (1996), Wireless communications, principles and practice, Prentice
Hall
13. Vijay K. Garg(2007), Wireless Communication and NetWorking, Morgan
Kaufmann Publishers
14.
15.
16.
17.
18.
19. Kevin Fall and Kannan Varadhan (2005),
documentation.html
20.
21.
22.
23.
24.
96
96
25.
26.
Các file đính kèm theo tài liệu này:
- LUẬN VĂN-ĐỊNH TUYẾN TRONG MẠNG AD HOC VÔ TUYẾN.pdf