You are on page 1of 5

BÀI THỰC HÀNH 2

Môn học: Hệ thống nhúng & Mạng không dây

Ghi chú: định dạng file bài nộp <Hoten>_<MSSV>_BTn.doc hoặc .zip nếu có yêu cầu chỉnh
sửa source
VD: NguyenVanA_13020010_BT2.doc

I. Nội dung
Tìm hiểu về chuẩn giao thức IEEE MAC 802.11 (WLAN). Ns-3 cung cấp một bộ các mô
hình của chuẩn giao thức IEEE 802.11 nhằm cung cấp mức độ mô phỏng gần như thực tế
nhất các đặc tả của chuẩn 802.11 ở cả tầng DataLink (MAC-level) và Physical (PHY-
level).

Mục tiêu:

 Hiểu về cách vận hành của IEEE MAC 802.11 và cấu trúc gói tin
 Hiểu về cách cài đặt giao thức trên trong ns-3.

Mô hình các node trong mô phỏng:

1
2

3 0

Hình 1. Mô hình các node trong mô phỏng WLAN


Trong mô hình sẽ có tổng cộng 5 node, chúng ta sẽ dùng một node làm Access Point
(AP) – cụ thể là node đâu tiên. Sau đó, chúng ta sẽ cài đặt một kênh WifiChannel (cung
cấp bởi ns-3) cho toàn bộ các node trong mô hình.

II. Hướng dẫn xây dựng mô hình mô phỏng WLAN trong ns-3
Một số phương thức trong ns-3 dùng để tạo các node, tạo kênh kết nối Wifi có thể tham
khảo thêm ở đây.
NodeContainer: https://www.nsnam.org/doxygen/classns3_1_1_node_container.html
YansWifiChannelHelper:
https://www.nsnam.org/doxygen/classns3_1_1_yans_wifi_channel_hel
per.html
WifiHelper:
https://www.nsnam.org/doxygen/classns3_1_1_wifi_helper.html

1. Đầu tiên tạo các Node và lấy một node đầu tiên (Node0) làm AP
NodeContainer wifiStaNodes;
wifiStaNodes.Create (nWifi);
// Dùng node0 làm AP
NodeContainer wifiApNode = wifiStaNodes.Get (0);
2. Tạo kênh kết nối WLAN (YansWifiChannel trong ns-3)
YansWifiChannelHelper channel = YansWifiChannelHelper::Default
();
YansWifiPhyHelper phy = YansWifiPhyHelper::Default ();
phy.SetChannel (channel.Create ());

WifiHelper wifi;
wifi.SetRemoteStationManager ("ns3::AarfWifiManager");
// Cài đặt các thông số cho kênh truyền Wifi như SSID
WifiMacHelper mac;
Ssid ssid = Ssid ("ns-3-ssid");
mac.SetType ("ns3::StaWifiMac","Ssid", SsidValue (ssid),
"ActiveProbing", BooleanValue (false));
3. Cài đặt kênh kết nối WLAN lên các NetDevice của các node và AP
// Cài đặt kênh truyền WLAN lên các node
NetDeviceContainer staDevice=wifi.Install(phy,mac,wifiStaNodes);
// Cài đặt kênh truyền WLAN lên node AP
NetDeviceContainer apDevices=wifi.Install(phy, mac, wifiApNode);

4. Cài đặt IPv4_Stack lên tất các nodes và cấp phát IP Addr cho các NetDevice
Interfaces vừa cài đặt ở bước 3
// Cài đặt IPv4 Stack cho các node
InternetStackHelper stack;
stack.Install (wifiStaNodes);
Ipv4AddressHelper address;
// Cấp IP cho các nodes
address.SetBase ("10.1.1.0", "255.255.255.0");
Ipv4InterfaceContainer wifiInterfaces;
wifiInterfaces = address.Assign (staDevices);
address.Assign (apDevices);

5. Cài đặt UDP Echo Client và Server


// Cài đặt UDPEchoServer trên port 9000 ở node4
UdpEchoServerHelper echoServer (9000);
ApplicationContainer serverApps = echoServer.Install
(wifiStaNodes.Get (nWifi-1)); // Cài lên node4
// Cài đặt UDPEchoClient trên một node thuộc WLAN
UdpEchoClientHelper echoClient (wifiInterfaces.GetAddress
(nWifi-1), 9000);
// Cài lên node1
ApplicationContainer clientApps =
echoClient.Install (wifiStaNodes.Get (1));

6. Compile, chạy mô phỏng và quan sát kết quả thu được (Xem các file pcap)
Ns-3.25$ cp lab2.cc scratch/lab2.cc
Ns-3.25$ ./waf
Ns-3.25$ ./waf –-run scratch/lab2 –-vis

III. Yêu cầu:


1. Chỉnh sửa source code để mô phỏng log ra 3 file .pcap của 3 node (UDP Client, UDP
Server và AP) (1đ), biết cú pháp để log ra file .pcap như sau:
<YansWifiPhyHelper>.EnablePcap(“<Tên_file>”,
netDevice);

cách chọn một device trong NetDeviceContainer: staDevices.Get (2)


hoặc có thể chọn hết tất cả
<YansWifiPhyHelper>.EnablePcap(“<Tên_file>”,
staDevices);
Compile và chạy lại mô phỏng, quan sát lại quá trình giả lập.
2. Dùng phần mềm Wireshark để xem các file pcap thu được và trả lời các câu hỏi sau

a. Tìm các gói tin (chụp hình hoặc copy và nêu tên/loại gọi tin) biểu diễn quá trình
kết nối giữa các node với AP. Gói Beacon Frame chứa những thông tin gì? (2đ)
b. Tìm các gói tin ARP biểu diễn quá trình client truy vấn địa chỉ MAC của server?
Tại sao sau khi tất cả các node đã kết nối tới AP rồi nhưng ta vẫn còn thấy các gói
Beacon Frame (2đ)
c. Tìm các gói tin biểu diễn quá trình UDP Packet đi từ client -> server.
(Gợi ý: chú ý port của server) (1đ)
Ghi chú: yêu cầu chụp hình hoặc copy nội dung các packet trong các câu trên (gồm
loại, size và chức năng của gói tin đó)
3. Biết dữ liệu data của gói UDP truyền đi là 1024 bytes, UDP header là 8 bytes. Quan
sát trong Wireshark thì chiều dài của frame truyền từ client-> server là 1088. Vậy phần
còn lại gồm những header gì và header size là bao nhiêu ? (1đ)
4. Hiện tại, trong source code trên, node0 vừa đóng vai trò là Access Point (AP) vừa là
một node bình thường kết nối đến AP. Sinh viên tìm hiểu và chỉnh sửa lại source code
để có mô hình mạng gồm 06 nodes. Trong đó, 01 node chỉ đóng vai trò là AP và 05
nodes còn lại sẽ kết nối đến AP (2đ)
5. Tạo thêm một UDP Client chạy trên node2 gửi dữ liệu đến UDP Server đã có. Compile,
chạy lại thử nghiệm và kiểm tra kết quả trong các file pcap (1đ).

You might also like