Tải bản đầy đủ (.docx) (56 trang)

TÌM HIỂU MẠNG VANETs và mô PHỎNG NS3

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 (1.46 MB, 56 trang )

ĐỒ ÁN TỐT NGHIỆP

TÌM HIỂU MẠNG VANETs VÀ MÔ
PHỎNG NS3


DANH MỤC CÁC TỪ VIẾT TẮT
VANETs

Vehicular Ad-Hoc Networks

MANET

Mobile Ad-Hoc Network

WAVE

Wireless Access in Vehicular Enviroments

NS

Net Simulation

IEEE

Institute of Electrical and Electronics Engineers

MAC

Medium Access Control


ITS

Intelligent Transportation Systems

PHY

Physical Layer

BSS

Basic Service Set

OCB

Outside the Context of BSS

DSRC

Dedicated Short-Range Communications

LLC

Logical Link Control

EDCA

Enhanced Distributed Channel Access

OBUs


On-Board Units

RSUs

Road-Side Units

WSMP

WAVE Short Message Protocol

IP

Internet Protocol

WSA

WAVE Service Advertisements

AC

Access Category

STA

Station

MIB

Management Information Base


MSDU

MAC Service Data Unit

MPDU

MAC Protocol Data Unit

TA

Timing Advertisement

DCF

Distributed coordination function

DIFS

Distributed coordination function Interframe Space

MLME

MAC Layer Management Entity


PLME

Physical Layer Management Entity

IP


Internet Protocol

CCH

Control Channel

CCHI

Control Channel Interval

SCH

Service Channel

SCHI

Service Channel Interval

GI

Guard Interval

VSA

Vendor Specific Action

CW

Contention Window


AIFS

Arbitration Inter-Frame Spacing

AIFSN

Arbitration Inter-Frame Spacing Number

DCF

Distributed coordination function

QoS

Quality of Service

DIFS

Distributed Inter-Frame Space

UTC

Universal Time Coordinated

API

Application Programming Interface

IBSS


Independent Basic Service Set

OFDM

Orthogonal Frequency-Division Multiplexing

BSM

Basic Safety Message

PCAP

Packet Capture

ASCII

American Standard Code for Information Interchange

SUMO

Simulation of Urban Mobility

MOVE

Mobility Model Generator for Vehicular Network

ACK

Acknowledgement



ĐỒ ÁN TỐT NGHIỆP
Trang 1/55

CHƯƠNG 1.

TỔNG QUAN VỀ ĐỀ TÀI

1.1 Giới thiệu chung về mạng VANETs
Đề tài hướng đến việc tìm hiểu mạng Vehicular Ad-hoc Networks (VANETs); một mô
hình mạng được tạo ra dựa trên mô hình mạng Mobile Ad-hoc Network (MANET). Mạng
phương tiện VANETs là một dạng đặc biệt của MANET khi ở đây các node mạng là xe cộ,
cho nên VANETs sẽ có những đặc tính độc nhất như: tính di động của các node bị hạn chế
bởi các con đường, các node mạng di chuyển với tốc độ cao, tiêu thụ năng lượng không
còn là vấn đề nghiêm trọng trong VANETs.
Mạng VANETs trao đổi dữ liệu trên một topology mạng không dây giữa phương tiện
với phương tiện (Vehicle-to-vehicle) hoặc giữa phương tiện với cơ sở hạ tầng (Vehicle-toInfrastructure). Mạng VANETs là một phần quan trọng của hệ thống giao thông thông
minh ITS với các ứng dụng an toàn (safety) như: cảnh báo va chạm, hỗ trợ việc điều
hướng, hỗ trợ cảnh báo tốc độ giới hạn trong các khu vực hoặc có các chướng ngại vật;
ngoài ra còn có các ứng dụng không an toàn (non-safety) như: thông tin giao thông và thời
tiết, các ứng dụng truy cập Internet và các ứng dụng đa phương tiện.

Hình 1-1: Mô hình mạng VANETs [1]

Những ứng dụng safety và non-safety này được trao đổi dựa trên các giao thức của
chuẩn IEEE 802.11p và IEEE 1609.4. Với chức năng trao đổi các dữ liệu safety hoặc non-

Tìm Hiểu Mạng VANETs Và Mô Phỏng NS3



ĐỒ ÁN TỐT NGHIỆP
Trang 2/55

safety, điều này dẫn đến việc các gói tin non-safety có thể cản trở các gói tin safety cần
truyền đi, dẫn đến việc đòi hỏi mỗi thiết bị phải có hai sóng vô tuyến vật lý trên các kênh
riêng biệt. Chuẩn 1609.4 giải quyết vấn đề này bằng cách cho phép một thiết bị với một
sóng vô tuyến vật lý có thể giao tiếp đa kênh đồng thời, các thiết bị có thể tham gia vào các
ứng dụng non-safety trong khi đó vẫn có thể nhận được các gói tin safety.
1.2 Đối tượng nghiên cứu
- Giao thức IEEE 802.11p định nghĩa các cải tiến của IEEE 802.11 hỗ trợ thêm
Wireless Access in Vehicular Enviroments (WAVE).
- Chuẩn 1609.4 hỗ trợ giao tiếp đa kênh như: chuyển đổi kênh, đồng bộ thời gian, các
quy định truy cập kênh...
- Phần mềm Net Simulation 3 (NS3): phần mềm xây dựng các topology mạng với các
module được hỗ trợ.
1.3 Hướng thực hiện
- Sử dụng phần mềm NS3 mô phỏng một mạng topology VANETs trong việc truyền
các gói tin dựa theo chuẩn 1609.4.
- Đánh giá các tiêu chí của chuẩn MAC IEEE 1609.4 dựa vào các thông số có được
từ mô phỏng.
-

Tìm Hiểu Mạng VANETs Và Mô Phỏng NS3


ĐỒ ÁN TỐT NGHIỆP
Trang 3/55

CHƯƠNG 2.


CÁC CHUẨN TRONG MẠNG VANETs

2.1 Mô hình IEEE WAVE
1.1.1 Kiến trúc WAVE
WAVE hoạt động dưới dạng các dịch vụ và có các nguyên tắc. Các dịch vụ chia làm 2
plane: dịch vụ data plane và dịch vụ management plane. Data plane bao gồm các giao
thức giao tiếp để truyền dữ liệu giữa các thiết bị, trong khi đó management plane có chức
năng hỗ trợ cho data plane chứ không truyền dữ liệu trực tiếp. Các chuẩn tương ứng với
các lớp như sau:
- 802.11p bao gồm: lớp vật lý (PHY), thực thể quản lý lớp vật lý (PLME), thực thể
quản lý lớp MAC (MLME), và một nửa dưới của lớp WAVE MAC. IEEE 802.11p
cung cấp tính năng cốt lõi là cho phép giao tiếp giữa các thiết bị mà không cần tham
gia một Basic Service Set (BSS) điều này được gọi là Outside the Context of BSS
(OCB). Lớp MAC này không yêu cầu sự liên kết từ các thiết bị tương tự mạng Ad-hoc.
Tổ chức US Federal Communication Commission (FCC) đã phân bổ 75 MHz tại băng
tần 5.9 GHz cho Giao tiếp truyền thông tầm ngắn (DSRC) được dùng riêng cho giao
tiếp giữa V2V hoặc V2I.
- 1609.4 bao gồm nửa trên của lớp WAVE MAC được xem như MLME Extension.
1609.4 chỉ định một phần mở rộng cho lớp MAC cho phép giao tiếp đa kênh trên OnBoard Units (OBUs) hoặc Road-Side Units (RSUs) chỉ cần một sóng vô tuyến đồng
thời. Ngoài ra còn có chức năng chỉ định chuyển kênh và đồng bộ hóa thời gian; điều
này bao gồm dữ liệu định tuyến từ LLC đến kênh thích hợp và sử dụng cơ chế EDCA
cho mỗi kênh để điều chỉnh việc truy cập kênh, gửi các frame VSA và TA, thay đổi địa
chỉ MAC. Với OBUs là một tập hợp các phương tiện được trang bị các thiết bị truyền
thông, và một tập hợp các thiết bị cố định dọc theo các con đường được gọi là RSUs.
Các ban hành của chuẩn 1609.4 bao gồm:
 Hỗ trợ truyền dẫn cho cả dữ liệu WSMP và IPv6 với WSMP được cho phép gửi
đi trên cả hai kênh là SCH và CCH, trong khi đó IPv6 chỉ được truyền trên kênh
SCH;


Tìm Hiểu Mạng VANETs Và Mô Phỏng NS3


ĐỒ ÁN TỐT NGHIỆP
Trang 4/55

 Hỗ trợ các chế độ truy cập kênh như: continuous, alternating, immediate, và
extended. Điều này cho phép một thiết bị có thể truy cập một hoặc nhiều dịch vụ
đồng thời mà không cần quá nhiều sóng vô tuyến vật lý;
 Hỗ trợ cho việc truy cập nhiều kênh dịch vụ đồng thời thông qua chế độ
alternating;
 Hỗ trợ đồng bộ hóa thời gian. Cung cấp Timing Advertisements để đồng bộ hóa
các thiết bị không có nguồn UTC đáng tin cậy.
Việc kiểm tra và xác thực các ban hành của 1609.4 bao gồm:
 Kiểm tra dữ liệu được truyền trên kênh chính xác để nhận dạng dữ liệu là
WSMP hoặc IPv6;
 Kiểm tra việc chuyển kênh xảy ra đúng thời điểm với các chế độ truy cập kênh;
 Kiểm tra cập nhật UTC và Timing Advertisements có được truyền liên tục theo
yêu cầu.
- 1609.3 bao gồm các phần còn lại của data plane bao gồm: WAVE Short Message
Protocol (WSMP), WAVE Service Advertisements (WSA) và giao thức IPv6, giao
thức UDP, Logical Link Layer (LLC) được sử dụng trong hệ thống WAVE. WSA
thông báo tính khả dụng của dịch vụ và được truyền bởi một nhà cung cấp dịch vụ.
WSMP được sử dụng để truyền các thông điệp có độ trễ thấp, cho phép các ứng dụng
thiết lập các tham số vật lý ở mỗi thông điệp được truyền.
- 1609.2 bao gồm WAVE Security Services trong plane management.

Hình 2-1: Kiến trúc WAVE [8]

- 1609.1 quản lý tài nguyên chỉ định các dịch vụ và giao diện cho các ứng dụng

WAVE Resource Manager.

Tìm Hiểu Mạng VANETs Và Mô Phỏng NS3


ĐỒ ÁN TỐT NGHIỆP
Trang 5/55

1.1.2 IEEE 1609.4 hoạt động đa kênh
1.1.1.1 Hoạt động truyền dữ liệu
Giao thức 802.11p với tổng băng thông 75 MHz sẽ được chia thành 7 kênh với băng
thông mỗi kênh là 10 MHz bao gồm: 1 kênh điều khiển (CCH) và 6 kênh dịch vụ (SCHs)
được trình bày trong hình 2-2.

Hình 2-2: Phân bổ tần số cho CCH và SCH [2]

Chuẩn 1609.4 mô tả hoạt động truyền dữ liệu bằng một kiến trúc tham chiếu. Kiến
trúc này minh họa hoạt động truyền dữ liệu trên hai kênh: CCH và SCH thông qua hình 23.
Cơ chế EDCA
Với mỗi kênh tồn tại các queue EDCA của riêng nó. EDCA (Enhanced Distributed
Channel Access) là một cơ chế truy cập ưu tiên trong IEEE 802.11.Trong cơ chế EDCA
(cho một kênh đơn), có 4 loại danh mục truy cập ACs (Access Categories) tương ứng với
các ưu tiên từ người dùng (theo thứ tự ưu tiên từ thấp đến cao):
-

Background (AC_BK);
BestEffort (AC_BE);
Video (AC_VI);
Voice (AC_VO).


Tìm Hiểu Mạng VANETs Và Mô Phỏng NS3


ĐỒ ÁN TỐT NGHIỆP
Trang 6/55

Hình 2-3: Kiến trúc truyền dữ liệu trong 1609.4 [1]

Các queue tương ứng với các ACs. Khi một MSDU (MAC Service Data Unit) được
nhận từ LLC, nó sẽ được đặt vào queue tương ứng với sự ưu tiên của nó. Mỗi queue có bộ
tham số EDCA với những giá trị xác định xác suất truyền. Tham số EDCA bao gồm: AIFS,
Transmit Opportunity, giá trị CWmax và CWmin.
Khác biệt giữa DCF và EDCA là AIFS tại mỗi idle slot chỉ xảy ra backoff hoặc chỉ xảy
ra truyền frame. Backoff = 0 sớm nhất đưa frame vào kênh truyền và mọi hoạt động
backoff dừng lại cho đến khi kênh rỗi. Tuy nhiên, khi có nhiều hơn một AC truy cập kênh
hoàn thành quá trình backoff cùng một lúc, va chạm được xử lý theo cách ảo hóa. Khi đó là
khung ưu tiên cao nhất trong số các khung va chạm phải được chọn và truyền đi, và các
khung còn lại thực hiện một backoff với các giá trị CW tăng lên.
Một QoS station có thể hỗ trợ ít nhất 8 user priority, được ánh xạ thành 4 loại ACs.
Mỗi ACs truy cập kênh với AIFS và CW khác nhau. So với DCF thì EDCA sử dụng AIFS
thay cho DIFS cho mỗi ACs.

AIFSN biểu thị các giá trị khác nhau của các AC khác nhau, δ biểu thị khoảng thời
gian cho một slot theo chuẩn 802.11

Tìm Hiểu Mạng VANETs Và Mô Phỏng NS3


ĐỒ ÁN TỐT NGHIỆP
Trang 7/55


Bảng 2-1: Bảng thông số mặc định của các AC trong 802.11p [4]

AC
AC_VO
AC_VI
AC_BE
AC_BK

CWmin
(CWmin+1)/4 - 1
(CWmin+1)/2 - 1
CWmin
CWmin

CWmax
(CWmin+1)/2 - 1
CWmin
CWmax
CWmax

AIFSN
2
3
6
9

Dựa vào bảng 1 và các thông số trong bảng, có thể thấy được quá trình truy cập kênh
trong EDCA qua hình sau:


Hình 2-4: Quá trình thương lượng kênh [4]

Qua hình 2-4 có hai trạm STA1 và STA2 tương ứng với các packet của AC1 và AC4.
Có thể thấy sự khác nhau về AIFSN, vì thế mà AC1 trong STA1 sẽ giảm backoff sớm hơn
AC4 trong STA2 là 5 slots, và dẫn đến khi backoff về 0 thì AC1 dành được kênh truyền và
truyền dữ liệu. Kênh truyền ở trạng thái busy và đồng bộ lại sau đó. AC ưu tiên thấp sẽ
backoff lâu hơn AC ưu tiên cao. Trong 1 station QoS mỗi AC được chia thành một queue
riêng biệt. Mỗi queue được xem như một trạm ảo và cho phép truy cập kênh độc lập. Khi
xảy ra va chạm nghĩa là có 2 bộ backoff về 0 thì AC ưu tiên cao sẽ được truyền dữ liệu, AC
thấp có thể xem như xảy ra xung đột.
Định tuyến kênh
1609.4 MAC Extension chịu trách nhiệm cho việc định tuyến dữ liệu đến kênh thích
hợp, cũng như việc truyền dữ liệu trên đúng kênh vào đúng thời điểm. Trên một thiết bị
WAVE, có hai loại khung dữ liệu có thể được truyền đi: IPv6 và WSMs với WSMP có
thêm 4 tham số so với IP:
- Channel Identifier;
- Tốc độ dữ liệu;
- Transmit Power Level;

Tìm Hiểu Mạng VANETs Và Mô Phỏng NS3


ĐỒ ÁN TỐT NGHIỆP
Trang 8/55

- Thời gian kết thúc.
Với WSMP trong frame đã có các tham số trên. Với dữ liệu IP các tham số này được
lấy từ một máy phát được đặt trong 1609.4 Management Information Base (MIB). Như đã
trình bày trước đó MSDU sẽ được gán một AC và kênh truyền xác định, thêm vào các
thông tin giao thức MAC sẽ tạo thành một MAC Protocol Data Unit (MPDU). MPDU sau

đó được đưa vào các queue thông qua thông tin về kênh và AC. Khi chúng đi đến kênh mà
dữ liệu được gửi đi, MAC sẽ đợi kênh rỗi sau đó chọn MPDU từ queue cạnh tranh thành
công sau khi tranh chấp nội bộ.
1.1.1.2 Các dịch vụ quản lý
Với management plane, 1609.4 giải quyết vấn đề đồng bộ thời gian, kiểm soát việc
truy cập kênh, xử lý việc truyền và nhận các khung VSA, duy trì MIB, thay đổi địa chỉ
MAC của thiết bị và truy cập các dịch vụ 802.11 khác trên cơ sở mỗi kênh.
Đồng bộ thời gian
Một TA cập nhật UTC dựa trên thời gian được gửi từ nhà cung cấp TA. Quá trình
truyền và nhận TA như sau:
1. 1609.4 MLME Extension nhận được yêu cầu từ lớp cao hơn. Trong yêu cầu này bao
gồm: Channel Identier, Channel Interval, địa chỉ MAC của đích và Repeat Rate,
Timing Advertisement Contents;
2. Sau đó MLME Extension sẽ khởi tạo các yêu cầu để gửi TA đến 802.11p MLME.
Những yêu cầu này được khởi tạo thông qua Repeat Rate chứa thông tin thời gian cần
thiết cho thiết bị nhận cập nhật UTC;
3. Khi nhận được yêu cầu từ MLME Extension, 802.11p MLME sẽ truyền đi một
khung TA;
4. Khung TA được nhận ở lớp thấp hơn và dữ liệu sẽ chuyển đến 1609.4 MLME
Extension, sau đó khởi tạo UTC của chính nó bằng thông tin thời gian chứa trong
khung.
Chế độ truy cập kênh
Trong 1609.4, có hai loại kênh đó là kênh điều khiển và kênh dịch vụ. Kênh điều khiển
được sử dụng cho các dữ liệu quản lý và có ưu tiên cao, kênh dịch vụ thì được sử dụng cho

Tìm Hiểu Mạng VANETs Và Mô Phỏng NS3


ĐỒ ÁN TỐT NGHIỆP
Trang 9/55


các dữ liệu ứng dụng chung. Có 1 kênh điều khiển và 6 kênh dịch vụ, 1609.4 hỗ trợ 4
chế độ truy cập kênh:
- Liên tiếp (Continuous);
- Lần lượt (Alternating);
- Tức thì (Immediate);
- Mở rộng (Extended).

Hình 2-5: Các mode truy cập kênh [5]

Thời gian sẽ được chia làm 2 khoảng là khoảng CCH (CCHI) và khoảng SCH (SCHI).
Mỗi khoảng thời gian là 50 ms và gộp lại 2 khoảng thời gian này có thể xem như là
khoảng thời gian đồng bộ (Sync Interval).
Chế độ truy cập liên tiếp (Continuous) chỉ đề cập đến kênh SCH hoặc kênh CCH
không có sự chuyển đổi kênh. Với chế độ lần lượt (Alternating) có sự chuyển đổi kênh
giữa CCH và SCH, sóng vô tuyến chuyển đổi đến kênh CCH trong suốt khoảng CCHI và
tương tự với kênh SCH trong SCHI. Chế độ tức thì (Immediate), kênh SCH có thể chuyển
đổi tức thì và ngắt khoảng CCHI hiện tại không cần đợi khoảng SCHI. Chế độ truy cập
cuối cùng là mở rộng (Extended) cho phép truy cập một kênh SCH liên tục trong một
khoảng thời gian cụ thể và không truy cập lại kênh CCH cho đến hết khoảng thời gian truy
cập của chế độ Extended.
Thông qua hình 2-5 có thể thấy một khoảng thởi gian bảo vệ (GI) xuất hiện ở đầu mỗi
khoảng chuyển đổi kênh. Mặc dù các thiết bị đã được đồng bộ thời gian với UTC nhưng
vẫn có một số thời gian nhỏ không chính xác giữa các thiết bị, GI được đưa ra để giải
quyết vấn đề này. GI có khoảng thời gian là 4 ms tạo thành 2 ms SyncTolerance (ms đầu
tiên và cuối cùng) và 2 ms MaxChSwitchTime (ms thứ 3 và 4). Chỉ trong thời gian
SyncTolerance là cho phép hoạt động còn trong MaxChSwitchTime không cho phép
truyền hoặc nhận.
Các khung VSA
Tìm Hiểu Mạng VANETs Và Mô Phỏng NS3



ĐỒ ÁN TỐT NGHIỆP
Trang 10/55

1609.4 hỗ trợ truyền nhận các khung VSA. Đây là loại khung quản lý được sử dụng
trong WAVE để truyền các WSAs, cũng như các dữ liệu quản lý WAVE khác. Việc truyền
các khung VSA được xử lý tương tự các khung Timing Advertisement. Một yêu cầu được
nhận từ lớp trên bao gồm địa chỉ MAC đích, Repeat Rate, Channel Identifier, Channel
Interval kèm theo đó là các trường cụ thể cho khung VSA: ID quản lý, Mã định danh tổ
chức (Organization Identifie) và Vendor Specific Content.
Cơ sở quản lý thông tin (MIB)
Việc duy trì một cơ sở quản lý thông tin (MIB) là bắt buộc đối với các thiết bị theo
chuẩn 1609.4. MIB chứa thông tin cấu hình và trạng thái liên quan đến các thực thể
1609.4. Thông tin chứa đựng bao gồm:
- Capacities: chứa các tính năng 1609.4 được triển khai trên thiết bị;
- Switching: chứa độ dài của kênh và khoảng bảo vệ GI;
- Channel Set Table: chứa thông tin về các kênh sẵn sàng để sử dụng;
- Bảng EDCA CCH: chứa các giá trị tham số EDCA cho kênh điều khiển;
- Bảng EDCA SCH: chứa các giá trị tham số EDCA cho kênh dịch vụ;
- Bảng Transmitter Profile: chứa các giá trị tham số truyền danh cho dữ liệu IP trên
các gói dịch vụ;
- Thông tin thời gian: chứa các thông tin liên quan UTC.

Tìm Hiểu Mạng VANETs Và Mô Phỏng NS3


ĐỒ ÁN TỐT NGHIỆP
Trang 11/55


CHƯƠNG 3: MÔ PHỎNG NET SIMULATION 3
3.1 Phần mềm Net Simulation 3 (NS3)
Phần mềm mô phỏng NS3 là một phần mềm có tính năng mô phỏng mạng với các sự
kiện rời rạc dành cho mục đích giáo dục và nghiên cứu. Một vài đặc điểm quan trọng khi
bắt đầu phần mềm NS3:
- NS3 là một mã nguồn mở, có thể sử dụng từ nguồn có sẵn và đóng góp thêm các
module cho phần mềm;
- NS3 với các APIs được viết bằng ngôn ngữ lập trình hướng đối tượng C++.
NS3 cung cấp các mô hình (models) về cách thực hiện và hoạt động của các gói dữ
liệu trong một topology mạng, hỗ trợ các công cụ cho người dùng có thể mô phỏng. NS3
hỗ trợ mô phỏng với các hệ thống gần với hệ thống thực tế, NS3 tập trung vào việc mô
hình hóa cách hoạt động của các giao thức mạng và internet. Sau đây là một điểm đặc biệt
của NS3 với các công cụ mô phỏng khác:
- NS3 là một tập hợp các thư viện liên kết với nhau. NS3 cung cấp các công cụ cho
Animation cũng như các công cụ phân tích dữ liệu và các công cụ trực quan khác. Các
thư viện và công cụ này làm việc dưới ngôn ngữ C++.
- NS3 chủ yếu được sữ dụng trên nền tảng Linux. Đề tài này sẽ cài đặt NS3 trên hệ
điều hành Ubuntu 12.04.

Hình 3-1: Logo phần mềm NS3 [7]

1.1.3 Các khái niệm tổng quan

Tìm Hiểu Mạng VANETs Và Mô Phỏng NS3


ĐỒ ÁN TỐT NGHIỆP
Trang 12/55

Node: một thiết bị hoặc một máy tính kết nối với mạng được trừu tượng hóa như là

Node. Node sẽ được thêm các ứng dụng, giao thức, card ngoại vi và các driver để node có
thể sử dụng được trong môi trường mạng.
Application: cung cấp các phương thức để quản lý các ứng dụng của người dùng trong
mô phỏng. Có thể xây dựng một bộ ứng dụng giữa Client và Server để trao đổi các gói tin
mạng.
Channel: cung cấp các phương thức nhằm quản lý các đối tượng mạng con và các
node kết nối với chúng. Có một vài loại Channel trong NS3: CsmaChannel,
PointToPointChannel và WifiChannel,…
NetDevice: cung cấp các phương thức để quản lý các kết nối giữa Node và Channel.
Có một vài loại NetDevice trong NS3: CsmaNetDevice, PointToPointNetDevice và
WifiNetDevice,…Các NetDevice này hoạt động với các Channel tương ứng với nó.
Topology Helpers: NS3 cung cấp các helper nhằm hỗ trợ cho việc kết nối NetDevice
với Node hoặc NetDevice với Channel như: gán địa chỉ IP, cấu hình giao thức, liên kết các
mạng với nhau,...
1.1.4 Mô hình Wi-Fi trong NS3
WifiNetDevice mô hình hóa một giao diện cho mạng không dây theo tiêu chuẩn IEEE
802.11, NS3 cung cấp các modules cơ bản được mô hình hóa như sau:
-

802.11 DCF cơ bản cho chế độ infrastructure và adhoc;

-

Các chuẩn cho lớp vật lý: 802.11a, 802.11b, 802.11g, 802.11n (2.4 GHz và 5 GHz)

-

và 802.11ac;
EDCA với QoS trong 802.11e;
Khả năng sử dụng các hệ số như suy hao lan truyền và độ trễ lan truyền khác nhau;

Các thuật toán điều khiển tốc độ như: Aarf, Arf, Cara, Onoe,…;
Chuẩn 802.11s;
Chuẩn 802.11p và WAVE modules.

NS3 cung cấp 3 lớp con thành các mô-đun sau:
- Mô hình lớp PHY cung cấp 3 thành phần chính sau:
 Mỗi gói tin đều có xác suất thành công và thất bại. Xác suấy này phụ thuộc vào
kỹ thuật điều chế, tỷ lệ tín hiệu trên nhiễu, và trạng thái của lớp vật lý;
 Một đối tượng có chức năng theo dõi các tín hiệu nhận được để tính toán các
công suất nhiễu chính xác khi các gói tin được tiếp nhận;

Tìm Hiểu Mạng VANETs Và Mô Phỏng NS3


ĐỒ ÁN TỐT NGHIỆP
Trang 13/55

 Cung cấp một hoặc nhiều mô hình error tương ứng với kỹ thuật điều chế và
chuẩn được sử dụng.
- Mô hình MAC Low cung cấp 3 thành phần chính sau:
 ns3::MacLow cung cấp cơ chế RTS/CTS/DATA/ACK;
 ns3:DcfManager thực hiện chức năng DCF;
 ns3::DcaTxop và ns3::EdcaTxopN giải quyết việc queue các gói tin, phân mảnh
và truyền lại gói tin nếu cần thiết. Mô hình lớp MAC High: thực hiện các chức năng
không quan trọng về thời gian như tạo các beacon, probing và kết hợp các statemachines thiết lập các thuật toán điều khiển tốc độ.
- Mô hình MAC High thông qua kiến trúc của WifiNetDevice sẽ cung cấp một lớp
ns3::AdhocWifiMac tham chiếu một STA trong một IBSS như một mạng ad-hoc.

Hình 3-2: Kiến trúc Wi-Fi trong NS3 [7]


3.2 WAVE module trong NS3
Trong NS3, trọng tâm của Wave module là cả hai lớp MAC và lớp điều phối đa kênh.
Như đã trình bày ở chương 2 về khái niệm OCB, có một mô hình cho khái niệm này trong
lớp ns3::OcbWifiMac. Một thiết bị tương thích với IEEE 802.11p có thể được tạo thông
qua ns3::WifiNetDevice và ns3::OcbWifiMac.

Tìm Hiểu Mạng VANETs Và Mô Phỏng NS3


ĐỒ ÁN TỐT NGHIỆP
Trang 14/55

Trong NS3 hỗ trợ cho giao thức 802.11p bao gồm các lớp MAC và PHY có thể sử
dụng ns3::Wifi80211pHelper. Cùng với đó là ns3::WaveHepler

hỗ trợ cho WAVE bao

gồm lớp MAC, PHY và MAC extension.
1.1.5 Lớp MAC
Các lớp sau được dùng để mô hình hóa lớp MAC: ns3::OrganizationIdentifier,
ns3::VendorSpecificActionHeader và ns3::OcbWifiMac. Lớp ns3::OrganizationIdentifier
và ns3::VendorSpecificActionHeader hỗ trợ cho việc gửi các frame VSA. OcbWifiMac có
các tính chất tương tự như mạng Ad-hoc nhưng có một số sửa đổi để phù hợp với bối cảnh
ngoài một BSS.
1.1.6 Lớp MAC Extension
NS3 cung cấp một lớp con được kế thừa từ ns3::NetDevice là ns3::WaveNetDevice.
Lớp con này bao gồm các lớp con được kế thừa từ ns3::NetDevice bao gồm các lớp:
ns3::ChannelScheduler, ns3::ChannelManager, ns3::ChannelCoordinator và lớp cuối
cùng là ns3::VsaManager để mô tả các tính năng của 1609.4.
Nhiệm vụ chính của lớp WaveNetDevice là tạo ra các đối tượng, cấu hình, kiểm tra các

đối số và cung cấp các APIs mới cho hoạt động đa kênh như sau:
1. AddMac, GetMac và GetMacs;
2. AddPhy, GetPhy và GetPhys;
3. SetChannelScheduler và GetChannelScheduler;
4. SetChannelManager và GetChannelManager;
5. SetVsaManager và GetVsaManager;
6. SetChannelCoordinator và GetChannelCoordinator;
7. StartSch and StopSch;
8. ChangeAddress;
9. CancelTx;
10. RegisterTxProfile và DeleteTxProfile;
11. StartVsa, StopVsa và SetWaveVsaCallback;
12. SendX;
13. Send và SetReceiveCallback;
14. Và các phương thức khác được kế thừa từ ns3::NetDevice.
Với những APIs trên ta có thể chia làm 3 loại: loại thứ nhất từ 1 đến 6 và cả 14 có
chức năng cấu hình mô hình và tạo một thiết bị WAVE; loại thứ hai từ 7 đến 11 là
management plane; loại thứ ba gồm 12 và 13 là data plane.

Tìm Hiểu Mạng VANETs Và Mô Phỏng NS3


ĐỒ ÁN TỐT NGHIỆP
Trang 15/55

Ngoài lớp WaveNetDevice còn có lớp ns3::ChannelCoordinator định nghĩa CCH
Interval, SCH Interval và Guard Interval. Giá trị mặc định cho CCHI là 50 ms, SCHI là 50
ms và GI là 4 ms gần như tương đối với chế độ truy cập Alternating.
Một dịch vụ định tuyến kênh được đưa ra nhằm truyền các gói dữ liệu khác nhau như
WSMP, IP hoặc các gói tin quản lý. Với dữ liệu WSMP có phương thức SendX(), với dữ

liệu IP có phương thức Send() là một phương thức ảo từ ns3::NetDevice, đối với các gói
tin quản lý sử dụng phương thức StartVsa().
Lớp ns3::ChannelScheduler sẽ gán các chế độ truy cập như: ContinuousAccess,
ExtendedAccess và AlternatingAccess, còn chế độ Immediate sẽ được thực hiện bằng cách
đưa vào tham số “immediate”.
Lớp ns3::VsaManager hỗ trợ cho việc truyền liên tiếp các gói VSA. Các tham số
truyền cho khung VSA có thể lấy từ lớp ns3::ChannelManager.
1.1.7 Lớp PHY
Không có sự thay đổi hoặc mở rộng nào được thực hiện trong NS3 cho WAVE
module. Theo chuẩn của IEEE 802.11p công nghệ không dây vẫn sử dụng giống với IEEE
802.11a là OFDM với băng thông là 10 MHz. Vì vậy Wifi80211pHelper sẽ cho phép
người dùng chỉ xét hai chuẩn sau: một là WIFI_PHY_STANDARD_80211_10MHZ hoặc
chuẩn thứ hai là WIFI_PHY_STANDARD_80211_20MHZ, trong khi đó WaveHelper sẽ chỉ
hỗ trợ chuẩn thứ nhất là: WIFI_PHY_STANDARD_80211_10MHZ.
1.1.8 Các Helpers
Các Helpers được chia làm 2 loại: các Helpers Channel cấp độ thấp MAC và PHY, hai
là các Helpers ứng dụng cấp độ cao nhằm giải quyết các vấn đề truyền nhận Basic Safety
Message (BSM).
Các Helpers cấp độ thấp bao gồm các lớp sau: lớp ns3::YansWavePhyHelper lớp
ns3::NqosWaveMacHelper, lớp ns3::QosWaveMacHelper, lớp ns3::Wifi80211pHelper và
lớp ns3::WaveHelper.
Wifi80211pHelper được sử dụng để tạo thiết bị theo chuẩn 802.11p. WaveHelper được
sử dụng để tạo thiết bị theo chuẩn 802.11p và chuẩn 1609.4. Còn 3 lớp trên là các lớp hỗ
trợ về QoS hoặc PHY.

Tìm Hiểu Mạng VANETs Và Mô Phỏng NS3


ĐỒ ÁN TỐT NGHIỆP
Trang 16/55


Các Helpers cấp độ cao bao gồm các lớp sau: lớp ns3::WaveBsmStats và lớp
ns3::WaveBsmHelper. Với WaveBsmStats được sử dụng để thu thập và quản lý số liệu
thống kê như là packet, số byte, Packet Delivery Ratio (PDR) liên quan đến việc nhận và
gửi các gói tin WAVE BSM. WaveBsmHelper hỗ trợ các ứng dụng gửi và nhận BSMs.
3.3 Các chức năng hỗ trợ khác trong NS3
1.1.9 NetAnimation trong NS3
NetAnim là một phần mềm sử dụng một tracefile được tạo trong một mô phỏng NS3
nhằm thực hiện mục đích hiển thị các topology và minh họa luồng truyền dữ liệu giữa các
nodes. Hình 3-3 cho thấy giao diện của phần mềm NetAnimation.

Hình 3-3: Mô hình mẫu trong NetAnim [7]

Hơn nữa, NetAnim còn cung cấp nhiều tính năng khác như bảng hiển thị các siêu dữ
liệu của các packets và cách hình dung quỹ đạo của một node di động.

Hình 3-4: Bảng Meta-data mẫu trong NetAnim [7]

Tìm Hiểu Mạng VANETs Và Mô Phỏng NS3


ĐỒ ÁN TỐT NGHIỆP
Trang 17/55

Hình 3-5: Sự di động của các node [7]

NetAnim được hỗ trợ bởi lớp ns3::AnimationInterface, lớp này có chức năng tạo một
file .xml. AnimationInterface sử dụng một cấu trúc của riêng nó để theo dõi các luồng dữ
liệu giữa các node mạng. AnimationInterface sẽ tự động gán sự theo dõi vào các sự kiện
truyền và nhận trước khi sự mô phỏng bắt đầu. Khi quá trình mô phỏng được lên lịch thì

AnimationInterface sẽ được gọi lên. Điều quan trọng là mỗi sự kiện truyền phải có sự kiện
nhận tương ứng để có thể theo dõi.
1.1.10 Logging trong NS3
Một tiện ích khác của NS3 đó là logging được sử dụng để giám sát hoặc gỡ lỗi cho quá
trình mô phỏng. Có thể kích hoạt tiện ích này bằng lập trình các câu lệnh hoặc nhanh hơn
là dùng biến môi trường NS_LOG. Có một sự chú ý là các lệnh ghi log nên đứng ở đầu
tránh việc log thay đổi theo thời gian.
Các câu lệnh khai báo để ghi lại các sự kiện thực thi trong NS3 thường khác nhau,
chẳng hạn như: NS_LOG hoặc Log Components.
- Một số Helpers có các phương thức đặc biệt để ghi lại log cho tất cả các thành phần
của một module. Ví dụ trong Wifi module:
“WifiHelper wifiHelper;
wifiHelper.EnableLogComponents ();”
- Biến môi trường NS_LOG chứa một danh sách các thành phần và tùy chọn cho việc
ghi log. Các tùy chọn có thể là: kiểm tra mức độ nghiêm trọng, mức độ các thành phần
bao gồm các thông tin tùy chỉnh như: thời gian mô phỏng, node mô phỏng, các
functions,…
1.1.11 Pcap và Ascii trong NS3

Tìm Hiểu Mạng VANETs Và Mô Phỏng NS3


ĐỒ ÁN TỐT NGHIỆP
Trang 18/55

Phần mềm NS3 cung cấp một hệ thống con tracing (truy tìm) các sự kiện chung nhằm
giải quyết các vấn đề quan trọng. Các mục tiêu cơ bản của hệ thống tracing gồm:
- Với các nhiệm vụ cơ bản, hệ thống tracing cho phép người dùng tạo các nguồn truy
tìm chuẩn ở đây là: pcap hoặc ascii, nhằm tùy chỉnh các đối tượng bị truy tìm;
- Người dùng trung gian muốn mở rộng hệ thống tracing để sửa đổi các định dạng

ngõ ra hoặc thêm các nguồn truy tìm mới thì không được sửa đổi core của trình giả lập
này.
Hệ thống tracing của NS3 được xây dựng trên khái niệm về các nguồn tracing và các
điểm thu phát tracing, và một cơ chế kết nối nguồn đến các điểm thu phát. Các nguồn
tracing là các thực thể báo hiệu các sự kiện xảy ra trong mô phỏng và cung cấp quyền truy
cập vào dữ liệu. Các điểm thu phát tracing là nơi sử dụng các sự kiện và dữ liệu được cung
cấp bởi nguồn. Lý do cho việc phân chia này nhằm cho phép người dùng có thể kết hợp
các điểm thu phát tracing mới với các nguồn tracing hiện tại mà không cần phải chỉnh sửa.
ASCII Tracing
NS3 cung cấp hỗ trợ với một hệ thống tracing cấp thấp liên quan đến việc cấu hình
một số gói dữ liệu tracing đơn giản. Ngõ ra sẽ là một file Ascii nếu sử dụng hỗ trợ này. Sau
đây là ví dụ:
“AsciiTraceHelper ascii;
pointToPoint.EnableAsciiAll (ascii.CreateFileStream ("myfirst.tr"));”
Giống như các thành phần khác trong NS3, hỗ trợ này cũng dùng một Helper để khởi
tạo tập tin ascii và đặt tên là “myfirst.tr”. Và có thể mở file này bằng bất cứ trình soạn
thảo văn bản nào.
PCAP Tracing
Bên cạnh Ascii, NS3 còn hỗ trợ thêm việc tạo một file tracing theo định dạng .pcap.
Sau đây là ví dụ khởi tạo file .pcap:
“pointToPoint.EnablePcapAll ("myfirst");”
Trình trợ giúp cho Pcap sẽ tạo một tệp theo dõi point-to-point chứ không tạo file giống
ascii mà đi kèm với các tiền tố như: số node và số device. Từ câu lệnh trên sẽ có hai tập tin
.pcap sau: myfirst-0-0.pcap và myfirst-1-0.pcap. Sử dụng Wireshark hoặc tcpdump để đọc
những loại tập tin Pcap.
1.1 Các phần mềm khác hỗ trợ cho mô phỏng Net Simulation 3
1.1.12 Phần mềm SUMO (Simulation of Urban Mobility)

Tìm Hiểu Mạng VANETs Và Mô Phỏng NS3



ĐỒ ÁN TỐT NGHIỆP
Trang 19/55

SUMO là một mã nguồn mở, có tính di động cao được thiết kế để xử lý các mạng lưới
giao thông đường bộ trong mô phỏng. Nó cho phép mô phỏng một nhu cầu giao thông
hoặc mạng lưới giao thông mà các phương tiện di chuyển qua một bản đồ nhất định. Trình
mô phỏng SUMO cho phép giải quyết các vấn đề liên quan đến quản lý lưu lượng trong
giao thông. Mỗi chiếc xe được mô hình hóa rõ ràng, có lộ trình riêng và di chuyển qua
mạng lưới nhất định.
Để xây dựng một mạng lưới giao thông trong SUMO thì các nodes và edges là các yếu
tố cần thiết. Các junctions để kết nối các nodes tạo thành các edges cũng góp phần quan
trọng, ngoài ra còn có các tính năng khác như đèn giao thông, số làn xe,…
Mạng SUMO chứa các thông tin liên quan đến lưu lượng truy cập như sau:
- Mỗi edge sẽ là một tập hợp các làn đường;
- Vị trí, hình dạng và tốc độ trên mỗi làn;
- Quy định hướng di chuyển;
- Các kết nối giữa các làn tại các nút giao;
- Vị trí và tính hợp lý của đèn giao thông.
Các file được sử dụng trong SUMO để tạo một Road Map:
- Node file;
- Edge file;
- Route file;
- Network file;
- Configuration file.
Nodes: tất cả các nodes có vị trí cụ thể và kèm theo id để tham khảo;
Edges: kết nối các node nguồn và node đích theo id và tạo thành các edges;
Network: SUMO sẽ tổng hợp các nodes và edges thành một network file gần giống
như một bản đồ;
Routes: xác định tuyến đường đi, cách vận hành các phương tiện tại các nhánh giao,

tùy chỉnh số lượng phương tiện tại các làn đường, tùy chỉnh tốc độ cho các phương tiện;
Configuration: tích hợp các route file và network file chuyển thành configuration file
để có thể mô phỏng trên SUMO.
Để tạo các file cấu hình trên, đề tài này sử dụng phần mềm hỗ trợ khác đó là phần
mềm MOVE được giới thiệu tiếp theo.
1.1.13 Phần mềm MOVE (MObility model generator for VEhicular network)
Phần mềm MOVE có chức năng tạo sự di động cho các nodes cũng như tạo một kịch
bản mô phỏng thực tế trên một trình giả lập.

Tìm Hiểu Mạng VANETs Và Mô Phỏng NS3


ĐỒ ÁN TỐT NGHIỆP
Trang 20/55

Hình 3-6: Giao diện phần mềm MOVE

MOVE được thực hiện trên nền tảng JAVA và chạy trên bộ mô phỏng lưu lượng giao
thông mã nguồn mở SUMO. MOVE bao gồm hai phần chính: Mobily Model và Traffic
Model. Trong đó Mobility Model có hai thành phần quan trọng là: Map Editor và Vehicle
Movement Editor được thể hiện thông qua hình 3-6.
Map Editor được sử dụng để khởi tạo cấu trúc của một bản đồ. MOVE hỗ trợ ba cách
tạo bản đồ: bản đồ thủ công, bản đồ được tạo tự động và bản đồ thực tế từ TIGER. Map
Editor sẽ cấu hình các node file, edge file sau đó tổng hợp thành network file. Vehicle
Movement Editor cho phép người dùng chỉ định các hướng đi cũng như định tuyến đường
đi cho các phương tiện bằng cách tạo thủ công hoặc tự động; tạo thành route file sau đó
được tích hợp thành configuration file.
Hình 3-7 thể hiện các phương tiện và bản đồ được khởi tạo trong MOVE và được đưa
vào cấu hình trong phần mềm SUMO tạo thành configuration file.


Tìm Hiểu Mạng VANETs Và Mô Phỏng NS3


ĐỒ ÁN TỐT NGHIỆP
Trang 21/55

Hình 3-7: Bản đồ mẫu trong phần mềm SUMO

Sau khi khởi tạo đầy đủ các tham số trong Map Editor và Vehicle Movement Editor thì
các tham số này được đưa vào phần mềm SUMO để tạo một tracefile. Đề tài này sẽ sử
dụng một tracefile hỗ trợ được định dạng theo cấu trúc phần mềm NS2 có trong MOVE để
phục vụ cho việc mô phỏng trong phần mềm NS3.

Hình 3-8: Giao diện hỗ trợ tạo tracefile trong phần mềm MOVE

CHƯƠNG 4.

MÔ HÌNH WAVE-MULTICHANNEL TRONG NS3

Tìm Hiểu Mạng VANETs Và Mô Phỏng NS3


ĐỒ ÁN TỐT NGHIỆP
Trang 22/55

4.1 Mô hình WAVE-MULTICHANNEL
Đề tài thiết lập các node mạng được cấu hình theo mô hình Wi-Fi và thay đổi một vài
tham số nhằm theo chuẩn WAVE phù hợp trong NS3. Khác với mô hình Wi-Fi đã được
trình bày trong chương 3, kiến trúc WAVE MAC sẽ được đổi mới như sau:


Hình 4-1: Kiến trúc WAVE module trong NS3 [3]

Với lớp OcbWifiMac thay thế lớp MacHigh sẽ cấu hình node mạng theo chuẩn
802.11p vận hành theo chế độ Outside the Context of BSS. Bốn lớp chính bao gồm:
ChannelScheduler, VsaRepeater, ChannelCoordinator, ChannelManager sẽ cung cấp
những đặc tính cụ thể trong chuẩn. Còn lại các lớp phụ như WaveMacLow và
WaveEdcaTxopN dựa trên mô hình Wi-Fi sẽ cung cấp các chức năng đặc biệt theo yêu cầu
của 1609.4. Cuối cùng là lớp WaveNetDevice sẽ mô hình hóa một thiết bị WAVE thực tế
và cung cấp các phương thức cho việc vận hành trong chế độ đa kênh.
Đề tài sẽ thực hiện việc truyền gói tin theo cơ chế DATA/ACK theo hai chế độ truyền
dẫn là: Continuous Access và Alternating Access. Vì kênh CCH là kênh truy cập được gán
mặc định trong module WAVE, nên đề tài sẽ cấu hình chế độ Continuous và Alternating sử
dụng kênh SCH1. Các node mạng sẽ được cấu hình tốc độ và định tuyến đường đi với bối
cảnh trên đường cao tốc nhằm phục vụ cho vấn đề di động sao cho các node gần với thực
tế thông qua các phần mềm SUMO và MOVE. Mỗi node mạng sẽ gửi hai loại gói tin là:
Safety
và Non-Safety; với gói tin Safety sẽ được gửi dưới dạng broadcast cho các node lân cận,
với gói tin Non-Safety sẽ được gửi đến các node riêng lẻ theo dạng unicast.

Tìm Hiểu Mạng VANETs Và Mô Phỏng NS3


×