Bài tập lớn mạng máy tính tìm hiểu mô phỏng kênh truyền ALOHA Bài tập lớn mạng máy tính tìm hiểu mô phỏng kênh truyền ALOHA Bài tập lớn mạng máy tính tìm hiểu mô phỏng kênh truyền ALOHA Bài tập lớn mạng máy tính tìm hiểu mô phỏng kênh truyền ALOHA Bài tập lớn mạng máy tính tìm hiểu mô phỏng kênh truyền ALOHA Bài tập lớn mạng máy tính tìm hiểu mô phỏng kênh truyền ALOHA
111Equation Chapter Section 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ - VIỄN THÔNG ====O0O==== BÀI TẬP LỚN MẠNG MÁY TÍNH Đề tài: Tìm hiểu mơ kênh truyền ALOHA Mục Lục I Tổng quan ALOHA II Giao Thức Prue ALOHA III Đánh giá IV Thiết kế mô Prue ALOHA 1) Sơ đồ thuật toán Code xây dựng: 10 2) Mô 13 a) Mô hiển thị bảng thông số matlab 13 b) Mô cách thức truyền C# 15 Tài liệu tham khảo https://stackoverflow.com/questions/27572368/simulation-of-pure-aloha-protocol https://stackoverflow.com/questions/27572368/simulation-of-pure-aloha-protocol https://techdifferences.com/difference-between-pure-aloha-and-slotted-aloha.html http://users.ecs.soton.ac.uk/sqc/EL336/CNL-7.pdf https://www.slideshare.net/bhanutulya17/aloha-protocol-in-detail I Tổng quan ALOHA - Aloha có nghĩa "Xin chào" - ALOHA hệ thống để phối hợp phân quyền truy cập vào kênh Mạng truyền thơng chia sẻ Nó phát triển vào năm 1970 Norman Abramson đồng nghiệp ông Đại học Hawaii Hệ thống ban đầu sử dụng cho phát sóng radio mặt đất, hệ thống thực - hệ thống truyền thông vệ tinh Một hệ thống truyền thông chia sẻ ALOHA yêu cầu phương pháp xử lý va chạm xảy hai nhiều hệ thống cố gắng truyền tải kênh lúc Trong hệ thống ALOHA, nút truyền liệu có sẵn để gửi Nếu nút khác truyền lúc, va chạm xảy ra, khung truyền Tuy nhiên, nút nghe chương trình phát sóng phương - tiện, riêng nó, xác định xem khung truyền Aloha giao thức truy cập nhiều lớp datalink đề xuất làm nhiều thiết bị đầu cuối truy cập vào mơi trường khơng có can thiệp va chạm II Giao Thức Prue ALOHA Pure ALOHA giới thiệu Norman Abramson cộng - ông Đại học Hawaii vào đầu năm 1970 Pure ALOHA cho phép trạm truyền liệu có liệu Khi trạm truyền liệu mà khơng kiểm tra xem kênh có truyền hay - không Pure ALOHA trạm phát khung, nhận thừa nhận từ người nhận Nếu không nhận thông báo thời gian quy định, trạm giả - định khung (hoặc xác nhận) bị phá hủy Nếu khung bị hủy va chạm trạm đợi khoảng thời gian ngẫu nhiên gửi lại Thời gian chờ đợi phải ngẫu nhiên không khung tương tự va chạm lại Vì vậy, ALOHA túy nói thời gian trôi qua, trạm phải đợi khoảng thời gian ngẫu nhiên trước gửi lại khung Sự ngẫu nhiên giúp tránh va chạm nhiều VD: Cho Station truyền Frame Station có liệu(Các Frame chứa liệu cần truyền) o Các Frame 1.2,2.1,3.1,4.1 có va chạm khoảng thời gian frame bị hủy va chạm frame khơng có sợ va chạm tieeps tục truyền o Các Frame bị va chạm phải truyền lại sau khoảng thời gian ngẫu nhiêu để tránh va chạm lại lần tiếp tục truyền thành công Để đánh giá Prue ALOHA, cần phải dự đốn thơng lượng nó, tỷ lệ truyền tải khung (thành công) Giả định: - Tất khung có chiều dài T - Trạm tạo khung truyền cố truyền (Tức là, trạm tiếp tục cố gắng gửi khung, khơng thể phép tạo thêm khung để gửi.) - Số lượng trạm cố gắng truyền (cả khung khung cũ va chạm) theo phân bố Poisson - Với: T : thời gian cần thiết để truyền khung hình kênh G :truyền tải cho khung thời gian.(G tham số Poisson) Đối với khung thời gian nào, xác suất xảy cố k thời gian khung hình là: Cặp thời gian khung liên tiếp, xác suất có cố gắng truyền k hai khung thời gian là: xác suất số khơng có truyền dẫn t-T t + T (và truyền thành cơng cho chúng ta) là: Thơng lượng tính tỷ lệ truyền dẫn-cố gắng nhân với xác suất thành cơng, kết luận thông lượng () là: =G Thông lượng tối đa 0.5 / e khung khung hình thời gian (đạt G = 0.5), khoảng 0,184 khung hình khung hình thời gian Điều có nghĩa là, ALOHA tinh khiết, khoảng 18,4% thời gian sử dụng để truyền thành công Như vậy: Pure ALOHA có thời gian lãng phí lớn Có khả bị liệu cao III Đánh giá Bảng đánh giá dựa mô Bảng đánh giá Pure ALOHA không đạt hiệu cao đạt lớn có tải nhẹ tải tăng hiệu pure giảm dầm va chạm gói tin IV Thiết kế mô Prue ALOHA 1) Sơ đồ thuật tốn - Tín hiệu bắt đầu truyền K=0 - Gói tin truyền đợi khoảng thời gian phản hồi 2Tp 10 - Nếu tin truyền nhận ACK thành cơng thành cơng,nếu khơng thành cơng lúc K tang lên để yêu cầu gửi tin lại - Khi gửi lại tincho K=Kmax loại bỏ khơng tạo khoảng thời gian ngẫu nhiên cho tin gửi lại đợi khoảng thời gian Tb sau cho truyền lại từ đâù Code xây dựng: Matlab function [efficiency, mean_wait_time, std_dev_wait_time] = pureALOHA(p, num_nodes, num_time_slots, num_calculations) efficiency = zeros(1, num_calculations); mean_wait_time = zeros(1, num_calculations); std_dev_wait_time = zeros(1, num_calculations); time_interval = rand(1,num_nodes); calculation_break = num_time_slots/num_calculations; is_transmitting = ones(1,num_nodes); was_transmitting = zeros(1,num_nodes); wait_time = zeros(num_time_slots,num_nodes); total_frames_transmitted = zeros(1,num_nodes); for time_slot = 1:num_time_slots collision = false; for node = 1:num_nodes for compare_node = 1:num_nodes if(node == compare_node) break; elseif(is_transmitting(node) && is_transmitting(compare_node)) if(abs(time_interval(node) - time_interval(compare_node)) < 1) collision = true; break; end elseif(is_transmitting(node) && was_transmitting(compare_node)) if(abs(time_interval(node) - time_interval(compare_node)) < 1) collision = true; break; end end end if(collision) break; end end for node = 1:num_nodes do_transmit = 1; if(is_transmitting(node) && not(collision)) 11 total_frames_transmitted(node) = total_frames_transmitted(node) + 1; was_transmitting(node) = 1; else if(is_transmitting(node)) was_transmitting(node) = 1; else was_transmitting(node) = 0; end do_transmit = binornd(1, p); wait_time((total_frames_transmitted(node) + 1), node) = wait_time((total_frames_transmitted(node) + 1), node) + 1; end if(do_transmit) is_transmitting(node) = 1; else is_transmitting(node) = 0; end end if(mod(time_slot, calculation_break) == 0) calculation_iterator = time_slot/calculation_break; mean_wait_time(calculation_iterator) = sum(sum(wait_time))/sum(total_frames_transmitted); std_dev_container = zeros(1, sum(total_frames_transmitted)); std_dev_container_iterator = 1; for node = 1:num_nodes for frame = 1:total_frames_transmitted(node) std_dev_container(std_dev_container_iterator) = wait_time(frame, node); std_dev_container_iterator = std_dev_container_iterator + 1; end end std_dev_wait_time(calculation_iterator) = std2(std_dev_container); efficiency(calculation_iterator) = (sum(total_frames_transmitted)/time_slot)/2; end end end C++ if (r.Equals(text1)) { if (!packet1_got_collided) { if (collided_packet_list.Contains(text1)) collided_packet_list.Remove(text1); if (Canvas.GetLeft(text1) < Canvas.GetLeft(router_img) && !is_packet1_reached) Canvas.SetLeft(text1, Canvas.GetLeft(text1) + speed_of_p1); else if (!is_packet1_reached) 12 { } log.Items.Add("packet reached at router") is_packet1_reached = true; Canvas.SetLeft(text1, packet1_left); } } else if (r.Equals(text2)) { if (!packet2_got_collided) { if (collided_packet_list.Contains(text2)) collided_packet_list.Remove(text2); if (Canvas.GetTop(text2) < Canvas.GetTop(center_text) && !is_packet2_reached) { Canvas.SetTop(text2, Canvas.GetTop(text2) + speed_of_p2); } else if(!is_packet2_reached) { Canvas.SetLeft(text2, Canvas.GetLeft(text2) + speed_of_p2); if(Canvas.GetLeft(text2) > Canvas.GetLeft(router_img)) { is_packet2_reached = true; log.Items.Add("packet reached at router"); Canvas.SetLeft(text2, packet2_left); Canvas.SetTop(text2, packet2_top); } } } } else if (r.Equals(text3)) { if (!packet3_got_collided) { if (collided_packet_list.Contains(text3)) collided_packet_list.Remove(text3); if (Canvas.GetTop(text3) > Canvas.GetTop(center_text) && !is_packet3_reached) { Canvas.SetTop(text3, Canvas.GetTop(text3) - speed_of_p3); } else if (!is_packet3_reached) { } } Canvas.SetLeft(text3, Canvas.GetLeft(text3) + speed_of_p3); if (Canvas.GetLeft(text3) > Canvas.GetLeft(router_img)) { is_packet3_reached = true; // MessageBox.Show("packet reached at router "); log.Items.Add("packet reached at router"); Canvas.SetLeft(text3, packet3_left); Canvas.SetTop(text3, packet3_top); } 13 MAT 2) Mô a) Mô hiển thị bảng thông số matlab Bảng thông số 14 Bảng thông số 15 b) Mô cách thức truyền C# 16 Bắt đầu truyền Khi xảy va chạm 1và 17 Khi xảy va chạm Khi truyền thành công 18 ... hệ thống truyền thông vệ tinh Một hệ thống truyền thông chia sẻ ALOHA yêu cầu phương pháp xử lý va chạm xảy hai nhiều hệ thống cố gắng truyền tải kênh lúc Trong hệ thống ALOHA, nút truyền liệu... https://www.slideshare.net/bhanutulya17 /aloha- protocol-in-detail I Tổng quan ALOHA - Aloha có nghĩa "Xin chào" - ALOHA hệ thống để phối hợp phân quyền truy cập vào kênh Mạng truyền thơng chia sẻ Nó phát triển vào năm 1970... vào môi trường can thiệp va chạm II Giao Thức Prue ALOHA Pure ALOHA giới thiệu Norman Abramson cộng - ông Đại học Hawaii vào đầu năm 1970 Pure ALOHA cho phép trạm truyền liệu có liệu Khi trạm truyền