33 Đ nh gi thông số kỹ thuật của giao thức định tuyến RPL
3.4. Mô phỏng mạng tổn hao công suất thấp dùng giao thức định tuyến
RPL
Để đ nh gi giao thức RPL dựa trên mô phỏng, chúng tôi s dụng công cụ mô phỏng Cooja. Một mô hình UDP đƣợc triển khai trên RPL. LLN bao gồm một máy chủ UDP, máy chủ này chấp nhận các gói có sẵn và một số máy khách UDP, g i c c gói định kỳ đến máy chủ thông qua một single-hop hoặc multi-hops.
Trong mô hình này, máy chủ UDP chủ yếu thực hiện ba tác vụ: 1. Khởi tạo RPL DAG; 2. Thiết lập kết nối UPD; 3. Chờ các gói tin từ máy khách, nhận và in chúng trên stdout.
Khởi tạo RPL DAG
// check whether the ADDR_MANUAL was set succefuly or not
uip_ds6_addr_add(&ipaddr, 0, ADDR_MANUAL); root_if = uip_ds6_addr_lookup(&ipaddr);
if(root_if != NULL) { rpl_dag_t *dag;
//set the ip adress of server as the root of initial DAG
dag = rpl_set_root(RPL_DEFAULT_INSTANCE,(uip_ip6addr_t *)&ipaddr); uip_ip6addr(&ipaddr, 0xaaaa, 0, 0, 0, 0, 0, 0, 0);
rpl_set_prefix(dag, &ipaddr, 64); PRINTF("created a new RPL dag\n"); } else {
PRINTF("failed to create a new RPL DAG\n"); }
Thiết lập kết nối UDP
//create new UDP connection to client's port
server_conn = udp_new(NULL, UIP_HTONS(UDP_CLIENT_PORT), NULL);
if(server_conn == NULL) {
PRINTF("No UDP connection available, exiting the process!\n"); PROCESS_EXIT();
}
//bing the connection to server's local port
udp_bind(server_conn, UIP_HTONS(UDP_SERVER_PORT));
PRINTF("Created a server connection with remote address "); PRINT6ADDR(&server_conn->ripaddr);
PRINTF(" local/remote port %u/%u\n", UIP_HTONS(server_conn->lport), UIP_HTONS(server_conn->rport));
Nhận và xử lý gói tin đến
while(1) {
PROCESS_YIELD();
//if there is packet available
if(ev == tcpip_event) { tcpip_handler();
} else if (ev == sensors_event && data == &button_sensor) { PRINTF("Initiaing global repair\n");
rpl_repair_root(RPL_DEFAULT_INSTANCE); }
}
//call this function if packet available
static void
tcpip_handler(void) {
char *appdata;
if(uip_newdata()) {
appdata = (char *)uip_appdata; appdata[uip_datalen()] = 0; //print the data of packet
PRINTF("DATA recv '%s' from ", appdata); PRINTF("%d",
UIP_IP_BUF->srcipaddr.u8[sizeof(UIP_IP_BUF->srcipaddr.u8) - 1]);
PRINTF("\n"); }
Phía máy khách UDP chủ yếu thực hiện hai tác vụ: 1. Thiết lập kết nối UPD; 2. G i gói tin đến máy chủ UDP theo định kỳ.
Thiết lập kết nối UPD
/* new connection with remote host */
client_conn = udp_new(NULL, UIP_HTONS(UDP_SERVER_PORT), NULL);
if(client_conn == NULL) {
PRINTF("No UDP connection available, exiting the process!\n"); PROCESS_EXIT();
}
udp_bind(client_conn, UIP_HTONS(UDP_CLIENT_PORT)); PRINTF("Created a connection with the server "); PRINT6ADDR(&client_conn->ripaddr);
PRINTF(" local/remote port %u/%u\n",
UIP_HTONS(client_conn->lport), UIP_HTONS(client_conn->rport));
Gửi gói tin
//set time interval by SEND_INTERVAL
etimer_set(&periodic, SEND_INTERVAL);
while(1) {
PROCESS_YIELD();
if(ev == tcpip_event) { tcpip_handler(); }
//send packet every SEND_INTERVAL
if(etimer_expired(&periodic)) { etimer_reset(&periodic);
ctimer_set(&backoff_timer, SEND_TIME, send_packet, NULL);
static void
send_packet(void *ptr) {
static int seq_id;
char buf[MAX_PAYLOAD_LEN]; seq_id++;
PRINTF("DATA send to %d 'Hello %d'\n",
server_ipaddr.u8[sizeof(server_ipaddr.u8) - 1], seq_id); sprintf(buf, "Hello %d from the client", seq_id);
//send packet through client_conn to UDP server
uip_udp_packet_sendto(client_conn, buf, strlen(buf),
&server_ipaddr, UIP_HTONS(UDP_SERVER_PORT)); }
Trong luận văn n y chúng tôi xem x t một ví dụ mạng IoT bao gồm các nút cảm biến thu nhận các tín hiệu khác nhau của môi trƣờng nhƣ: nhiệt độ, cƣờng độ nh s ng v độ ẩm, và chỉ số đo mức tiêu thụ điện năng bên trong mỗi nút. Các cảm biến này g i các thông số đọc đƣợc định kỳ trong một mạng mu tihop đến một nút chìm thu thập các chỉ số và thực hiện nhƣ nút gốc của RPL, tạo nên một DAG RPL để cho phép chuyển tiếp dữ liệu từ các nút cảm biến tới chính nó. Mạng đƣợc mô tả trực quan trong hình 3.3. Nó bao gồm 1 nút gốc và N nút cảm biến (N= 5, 10,15,20,25,35,45,55,65). Các nút đƣợc phân phối nhƣ trong hình, trong đó mỗi ô vuông trong ƣới là 10 m2
. Mỗi nút cung cấp nhật ký cục bộ định kỳ có chứa thông số đo ƣờng nội bộ mức tiêu thụ điện năng ngo i việc ghi nhật ký từng gói tin đã g i cùng.
Hình 3. 3. Mạng thu thập dữ liệu với một nút can thiệp. Các vòng tròn hiển thị phạm vi giao thoa.
Việc đ nh gi giao thức dựa trên các lần chạy th nghiệm trong môi trƣờng mô phỏng Cooja với các nút mô phỏng TMoteSky. Các nút chạy với
chƣơng trình thu thập dữ liệu IPv6 đƣợc triển khai bằng UDPv6 trên RPL và môi trƣờng đa ênh trong Conti i Mạng mô phỏng đƣợc minh họa trong hình 3.3, bao gồm:
Một nút gốc mô phỏng luôn luôn bật và hoạt động nhƣ một máy chủ UDP chìm của cây thu thập và nút gốc của RPL cùng một lúc;
N nút g i mô phỏng đƣợc thực hiện theo chu kỳ và hoạt động nhƣ c c UDP khách, thu thập và g i thông số tiêu thụ năng ƣợng bằng thƣ viện Conti i‟s energest; c c thông số môi trƣờng nhƣ nhiệt độ, độ ẩm, cƣờng độ ánh sáng s dụng các cảm biến.
Các nút g i sẽ g i gói tin đến nút gốc định kỳ cứ sau mỗi 30 - 32 giây. Kích thƣớc của gói tin là 46 byte Chúng cũng tạo ra các bản ghi nội bộ định kỳ cho giao tiếp USB cứ sau 5 giây để phục vụ cho việc đ nh gi mạng. Nút g i sẽ chuyển tiếp c c thông điệp tới các nút khác kể từ khi chúng tạo thành RPL-DAG cùng nhau. Nút gốc thu thập các thông số từ các nút g i và ghi chúng vào giao tiếp USB.
C c thông điệp đƣợc g i bởi các nút g i có cấu trúc đƣợc hiển thị trong Hình 3 4, thông điệp của nhật ký nội bộ có cấu trúc đƣợc hiển thị trong Hình 3.5 và sink log messages có cấu trúc đƣợc hiển thị trong Hình 3.6. Ngoài ra Cooja in thêm hai bản trƣờng ở đầu mỗi thông điệp báo cáo; thời gian mô phỏng theo micro giây và ID của nút xuất ra thông điệp Đầu ra nhật ký mẫu đƣợc hiển thị trong Hình 3.7.
Hình 3. 4. Cấu trúc thông điệp của nút gửi.
Hình 3. 5. Nhật ký nội bộ.
Hình 3. 6. Bản ghi thông điệp nút chìm.
3.5. Kết quả đánh giá giao thức định tuyến RPL
Trong luận văn n y chúng tôi tập trung vào phân tích và mô phỏng, đ nh gi giao thức định tuyến RPL với thông số công suất tiêu thụ trung bình của các nút mạng. Trong nghiên cứu [1] chúng tôi s dụng mô hình mô phỏng là một DODAG bao gồm 31 nút mạng đƣợc phân bố ngẫu nhiên trong trƣờng cảm biến có ích thƣớc (100m x 100m). Bảng 3.1 tóm tắt kịch bản đ nh gi mô phỏng với hai giao thức RPL và CTP. Kết quả ở Hình 3.8 cho thấy mức tiêu thụ công suất trung bình trong toàn mạng đối với giao thức RPL và giao thức CTP. Kết quả mô phỏng cho thấy rằng giao thức RPL hiệu quả về mặt năng ƣợng hơn so với giao thức CTP [11]. Giao thức CTP thực hiện cơ chế xác nhận và truyền lại. Bởi vậy, bản tin sẽ đƣợc truyền lại nếu xảy ra sự mất mát bản tin Cơ chế xác nhận và truyền lại sẽ làm phát sinh thêm chi phí về năng ƣợng. Mô hình trong nghiên cứu [1] chƣa đ nh gi sự phụ thuộc mức tiêu thụ năng ƣợng trung bình toàn mạng với số ƣợng nút cảm biến.
Bảng 3. 1. Kịch bản đánh giá mô phỏng [1].
Các tham số Giá trị
Mô hình truyền thông vô tuyến UDI (Unit Disk Graph with Distance Interference)
Số nút mạng 31
Kích thƣớc mạng 100m x 100m
Phạm vi phủ sóng của nút Phạm vi truyền hiệu quả: 30m Phạm vi ảnh hƣởng của nhiễu: 50m
Chu kỳ g i bản tin dữ liệu 30s, 40s, 50s, 60s
Nguồn g i bản tin dữ liệu Tất cả các nút trong mạng
Hình 3. 8. So sánh công suất tiêu thụ trung bình [1].
Trong nghiên cứu này chúng tôi s dụng mô hình mạng đƣợc mô tả trong mục 3 4 Để đ nh gi sự phụ thuộc của mức tiêu thụ năng ƣợng trung bình mạng vào số ƣợng nút cảm biến của mạng, chúng tôi mô phỏng với số nút cảm biến lần ƣợt là N=5,10,15,20, 25,35,45,55,65. Các nút cảm biến sẽ g i thông điệp đến nút gốc trong khoảng thời gian 30 giây. Thông số năng ƣợng của mạng sẽ đƣợc thu thập bằng công cụ powertrace của Contiki. Thời gian thực hiện mô phỏng là 60 phút. Hinh 3.9 thể hiện cách bố trí các nút cảm biến trong mạng. Nút 3 nằm ngoài phạm vi liên kết với nút gốc, nút 3 chỉ có thể liên kết với nút 2. Nút 5 là một trƣờng hợp khác, nó vừa có thể liên kết đƣợc với nút 6 và nút gốc.
Hình 3. 9. Sơ đồ bố trí các nút mạng
Hình 3. 11. Sự phụ thuộc của mức tiêu thụ năng lƣợng vào số nút cảm biến.
Hình 3.11 thể hiện kết quả mô phỏng mức tiêu thụ năng ƣợng của mạng khi tăng số nút cảm biến lên. Kết quả cho thấy hi tăng số nút cảm biến N=10, năng ƣợng tiêu thụ trung bình toàn mạng giảm xuống còn 10,48% so với 17,23% hi N=5 Khi tăng dần N từ 10 đến 25 nút cảm biến mức tiêu thụ năng ƣợng trung bình của mạng giảm dần. Tiếp tục tăng số nút mạng từ 25 đến 65 nút cảm biến thì mức năng ƣợng tiêu thụ trung bình hông thay đổi nhiều. Hình 3.11, 3.12 thể hiện sự phụ thuộc mức tiêu thụ năng ƣợng trung bình của mạng hi tăng số nút cảm biến N.
Kết luận chƣơng 3.
Một số kết quả đ nh gi mô phỏng trên với giao thức RPL đã cho thấy giao thức RPL có hiệu quả về mức tiêu thụ năng ƣợng Khi tăng số ƣợng nút cảm biến mức tiêu thụ năng ƣợng của mạng vẫn ổn định. Tuy nhiên giao thức RPL có huynh hƣớng s dụng lâu dài các liên kết có chất ƣợng tốt Điều này dẫn đến việc mất cân bằng năng ƣợng giữa các nút mạng trong cùng một DODAG. Do vậy, một số nút mạng sẽ hết năng ƣợng nhanh hơn so với các nút mạng khác; thứ hai, trong các mạng hỗn hợp bao gồm nhiều nút cảm biến đƣợc trang bị các loại nguồn năng ƣợng khác nhau thì giao thức RPL hiện tại chƣa có sự phân loại về chất ƣợng dịch vụ cho các kiểu ƣu ƣợng dữ liệu khác nhau trong mạng.
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN
1. Kết luận
Trong luận văn n y đã trình b y nghiên cứu tổng quan về các giao thức định tuyến IPv6 và khả năng ứng dụng cho mạng IoT. Một số kết quả chính trong luận văn nhƣ sau:
Nghiên cứu tổng quan về công nghệ và tiêu chuẩn kỹ thuật của IPv6, các công nghệ chuyển đổi IPv6 trong mạng truyền thông và các giải pháp bảo mật trong IPv6. Nghiên cứu các giao thức định tuyến IPv6 s dụng cho các mạng tổn hao công suất thấp nhƣ (6LoWPAN) s dụng IPv6 trong các mạng cá nhân không dây công suất thấp, giao thức định tuyến RPL (IPv6 Routing Protocol for Low-Power and Lossy Networks) với yêu cầu một cấu trúc liên kết mạng bền vững qua các liên kết tổn hao công suất thấp với các yêu cầu trạng thái liên kết tối thiểu.
Mô phỏng v đ nh gi hiệu năng của giao thức định tuyến RPL dựa trên công cụ mô phỏng Cooja/MSPSim chạy trên hệ điều hành Contiki. Kết quả mô phỏng cho thấy rằng giao thức định tuyến RPL phù hợp với ứng dụng triển khai các mạng IoT.
2. Hƣớng phát triển
Nghiên cứu trong luận văn n y mới bƣớc đầu tổng hợp và phân tích việc triển hai IPv6 Đ nh gi hiệu năng c c giao thức định tuyến cho IPv6 mới chỉ dựa trên kết quả mô phỏng bằng công cụ Cooja/MSPSim. Kết quả này có thể đƣợc s dụng để tiếp tục thực hiện các nghiên cứu thực nghiệm tiếp theo trong tƣơng ai.
Triển hai đ nh gi thực nghiêm với phần cứng thiết bị. S dụng học m y để tối ƣu ết nối giữa các nút mạng cảm biến và nút gốc.
TÀI LIỆU THAM KHẢO
[1] Thang Vu Chien, Thang Le Nhat. Đ nh gi hiệu năng giao thức định tuyến IPv6 cho mạng cảm biến không dây. Tạp chí Nghiên cứu KH&CN quân sự,2015, Số 38, 08, Tr. 51-58.
[2] Thang Vu Chien, Hung Nguyen Chan, Thanh Nguyen Huu, “Operating
System for Wireless Sensor Networks and an Experiment of Porting Conti iOS to MSP430 Microcontro er,” Journa of Computer Science and Information, Vol 5, Issue 1, February (2012), ISSN: 2088-7051, pp. 50-56.
[3] Thuy Nguyen Thi Thu, "Giới thiệu về thế hệ địa chỉ Internet mới IPv6."
(2006).
[4] A. Dunkels, “The Conti iMAC Radio Duty Cyc ing Protoco ,” SICS
technical report, December (2011).
[5] Adam Dunkels, Fredrik Osterlind, Nicolas Tsiftes, Zhitao He, “Software- based On ine Energy Estimation for Sensor Nodes,” Proceedings of the 4th workshop on Embedded networked sensors, (2007).
[6] C. Gomez, J. Paradells, C. Bormann, J. Crowcroft, "From 6LoWPAN to 6Lo: Expanding the Universe of IPv6-Supported Technologies for the Internet of Things", IEEE Communications Magazine, Vol. 55, Issue 12, pp. 148-155, December 2017.
[7] De Couto D, Aguayo D, Bicket J, Morris R, “A high-throughput path metric for multi-hop wire ess routing” In: Proceedings of the 9th Annual International Conference on Mobile Computing and Networking, New York, (2003).
[8] J. Haxhibeqiri, E. De Poorter, I. Moerman, J. Hoebeke, “A Survey of LoRaWAN for IoT: From Techno ogy to App ication”, Sensors, Vol. 18, 3995, November 2018.
[9] Jara, A. J., Ladid, L., Skarmeta, A. The Internet of Everything through
IPv6: An Analysis of Challenges, Solutions and Opportunities. Journal of Wireless Mobile Networks, Ubiquitous Computing, and Dependable Applications (JoWUA), Vol. 4, No. 3, pp. 97-118, September 2013.
[10] John J. Amoss, Daniel Minoli. Handbook of IPv4 to IPv6 Transition:
Methodologies for Institutional and Corporate Networks 1st Edition. Auerbach Publications; 1st edition (September 19, 2019), 248 pages.
[11] Omprakash Gnawali, Rodrigo Fonseca, Kyle Jamieson, David Moss, and
Philip Levis, “Co ection Tree Protoco ,” In Proceedings of the 7th ACM Conference on Embedded Net-worked Sensor Systems (SenSys 2009), Berkeley, CA, USA, November (2009).
[12] S. Deering and R. Hinden. Internet Protocol, Version 6 (IPv6)
Specification, document IETF RFC 8200, 2017.
[13] Thubert, Pascal Winter, Tim Brandt, Anders Hui, Jonathan Kelsey et.all. (2012). RPL: IPv6 Routing Protocol for Low power and Lossy Networks. IETF. RFC 6550- Deploying IPv6 networks (2006, Cisco Press).
[14] Wu, P, Cui, Y, Wu, J, Liu, J. and Metz, C. Transition from IPv4 to IPv6: A state-of-the-art survey, IEEE Communications Surveys & Tutorials, 15(3), pp.1407-1424, (2013).
[15] Một số chuẩn giao tiếp trong mạng IoT. https://tapit.vn/mot-chuan-giao- tiep-trong-iot-internet-things. Truy cập ngày 10/04/2021.
[16] Thống kê IPv6 của APNIC (Tổ chức quản ý địa chỉ khu vực châu Á - Th i Bình Dƣơng) https://stats abs apnic net/ipv6/ Truy cập ngày 09/04/2021.
[17] Trung Tâm Internet Việt Nam VNNIC.
https://www.vnnic.vn/ipv6/congnghe/giao-thức-bảo-mật-ipsec- trong-ipv6. Truy cập ngày 09/03/2021.