nghiên cứu về công nghệ mạng MANET - mạng tuỳ biến di động, vàmô phỏng các giao thức tầng MAC - S-MAC và T-MAC của mạng MANET.

33 142 0
nghiên cứu về công nghệ mạng MANET - mạng tuỳ biến di động, vàmô phỏng các giao thức tầng MAC - S-MAC và T-MAC của mạng MANET.

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

nghiên cứu về ,công nghệ mạng MANET,mạng tuỳ biến di động,mô phỏng các giao thức, tầng MAC - S-MAC ,T-MAC của mạng MANET.

Tìm hiểu mơ mạng MANET CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 1.1 Lý chọn đề tài Ngày nay, đất nước phát triển, theo phát triển công nghệ thông tin Công nghệ thông tin phát triển ngày nhanh với đời công nghệ tiên tiến, đại Sự đời mạng không dây khẳng định bước tiến ngành công nghệ thông tin Mạng MANET mảng công nghệ mạng không dây nhận nhiều quan tâm nghiên cứu 1.2 Mục tiêu đề tài Đề tài nghiên cứu công nghệ mạng MANET - mạng tuỳ biến di động, mô giao thức tầng MAC - S-MAC T-MAC mạng MANET 1.3 Nội dung thực - Tìm hiểu mạng MANET - Tìm hiểu giao thức tầng MAC mạng MANET - Tìm hiểu phần mềm NS2 - Mô giao thức tầng MAC NS2 1.4 Phương pháp nghiên cứu Sử dụng phương pháp nghiên cứu: - Phương pháp đọc tài liệu - Phương pháp phân tích - Phương pháp mơ tả - Phương pháp thống kê - Phương pháp thực nghiệm, mơ Tìm hiểu mơ mạng MANET CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Tổng quan mạng MANET 2.1.1 Khái niệm - MANET viết tắt mạng tùy biến di động(Mobile Adhoc Network), hay gọi mơ hình mạng độc lập IBSSs(Independent Basic Service sets) - Là tập hợp node mạng không dây, node thiết lập ất kỳ thời điểm nơi Mạng MANET không dùng sở hạ tầng Nó hệ thống tự trị mà máy chủ di động kết nối đường vô tuyến di chuyển tự do, thường hoạt động router - Đặc tính mạng: + Tính tự thiết lập: không phụ thuộc vào cấu trúc mạng sẵn có quản lý tập trung nút mạng + Môi trường mạng khơng dây: nhìn chung nút mạng khơng dây sử dụng tần số radio hồng ngoại để trao đổi liệu Nhưng môi trường thiết bị chịu số hạn chế: băng thông thấp, mơi trường truyền có độ tin cậy thấp, hạn chế lượng , nhớ, khả tính tốn… + Dễ bị ảnh hưởng vấn đề an ninh + Thiết bị tự trị đầu cuối: Trong MANET, thiết bị di động đầu cuối node tự trị Nó mang chức host router Bên cạnh khả xử lý host, node di động chuyển đổi chức router Vì thiết bị đầu cuối chuyển mạch phân biệt mạng MANET + Phân chia hoạt động: khơng có hệ thống mạng tảng cho trung tâm kiểm soát hoạt động mạng, nên việc kiểm sát quản lý hoạt động mạng chia cho thiết bị đầu cuối Các node MANET phải có phối hợp với + Định tuyến đa đường: truyền gói liệu từ nguồn đến điểm phạm vi truyền tải trực tiếp khơng dây, gói liệu chuyển tiếp qua nhiều trung gian nút + Cấu hình động: node di động nên cấu trúc mạng thay đổi nhanh, khơng biết trước kết nối thiết bị đầu cuối thay đổi theo thời gian Tìm hiểu mô mạng MANET - Cấu trúc mạng Hình 2.1: Cấu trúc mạng MANET Tại thời điểm, mạng MANET có số node đó, thời điểm đó, mạng phân chia thành nhiều mạng MANET Sau lại nhập thành nhóm node trở thành mạng MANET lớn - Các chế độ hoạt động kiểu kết nối + Các chế độ hoạt động: Chế độ sở hạ tầng: mạng bao gồm điểm truy cập AP cố định node di động tham gia vào mạng, thực truyền thơng qua điểm truy cập Các liên kết thực qua nhiều chặng Tìm hiểu mơ mạng MANET Hình 2.2: Chế độ sở hạ tầng Chế độ IEEE-adhoc: node di động truyền thông với mà không cần tới sở hạ tầng Các liên kết thực qua nhiều chặng Hình 2.3: Chế độ IEEE-adhoc + Kiểu kết nối topo mạng Mạng máy chủ di động: topo này, thiết bị liên kết với máy chủ Tìm hiểu mơ mạng MANET Hình 2.4: Mạng máy chủ di động Mạng có thiết bị di động khơng đồng nhất: topo máy liên kết trực tiếp với phạm vi phủ sóng 2.1.2 Phân loại - Theo giao thức + Singal-hop: loại mơ hình mạng adhoc đơn giản Trong tất node nằm vùng phủ sóng, nghĩa node liên kết với mà khơng cần qua node trung gian Tìm hiểu mơ mạng MANET Multi-hop: mơ hình phổ biến mạng MANET, node định tuyến với node khác thông qua node trung gian Để mơ hình hoạt động hồn hảo cần có giao thức định tuyến phù hợp Mobile multi-hop: mơ hình tập trung vào ứng dụng có tính chất thời gian thực - Theo chức + Mạng MANET đẳng cấp(Flat): Trong kiến trúc node có vai trò ngang hàng với nhau, node đóng vai trò router định tuyến liệu gói mạng Nó thích hợp cho tơ pơ có node di chuyển nhiều + Mạng MANET phân cấp: mơ hình sử dụng phổ biến Trong mơ hình mạng chia thành domain, domain bao gồm nhiều cluster, cluster chia thành nhiều node Có hai loại node master node nomal node + Master node: node quản trị router có nhiệm vụ chuyển liệu node cluster đến node cluster khác ngược lại Nói cách khác có nhiệm vụ gateway + Nomal node: node nằm cluster Nó kết nối với node cluster kết nối với cluster khác Hình 2.4: Mơ hình mạng phân cấp Kiến trúc mạng phân cấp thích hợp cho mạng có tính chuyển động thấp Mạng MANET kết hợp: Tìm hiểu mơ mạng MANET Mạng = Zones, zone = nodes Mỗi node bao gồm hai mức tô pô: node ID zone ID Trong zone áp dụng kiến trúc đẳng cấp kiến trúc phân cấp Các giao thức định tuyến mạng MANET 2.1.3 Ứng dụng - Lĩnh vực quân sự: trang thiết bị quân thường chứa số loại thiết bị máy tính Mạng lưới MANET cho phép quân đội để tận dụng lợi công nghệ mạng phổ biến để trì thơng tin mạng lưới người lính, xe cộ thông tin từ huy… Các kỹ thuật mạng Adhoc đến từ lĩnh vực - Lĩnh vực thương mại: MANET sử dụng cứu hộ nhằm nỗ lực cứu trợ thiên tai - Nội bộ: mạng MANET chủ động liên kết mạng lưới đa phương tiện tức thời tạm thời nhờ sử dụng máy tính xách tay để truyền bá chia sẻ thông tin đại biểu tham dự hội nghị, lớp học 2.1.4 Tầng MAC giao thức - Cấu trúc địa MAC Tìm hiểu mơ mạng MANET Hình 2.5: Cấu trúc địa MAC 2.2 Tìm hiểu giao thức S-MAC 2.2.1 Khái niệm S-MAC giao thức tầng MAC S-MAC giao thức điều khiển truy nhập trung gian thiết kế cho mạng cảm biến không dây - Đặc điểm: S-MAC sử dụng số kỹ thuật để giảm tiêu thụ lượng hỗ trợ tự cấu hình S-MAC kế thừa linh hoạt, tính khả biến cạnh tranh cải tiến tính hiệu sử dụng lượng mạng đa bước nhảy Nó giảm tiêu thụ lượng từ tất nguồn: nghe rỗi, xung đột, nghe thừa xử lý thông tin điều khiển S-MAC áp dụng tin nhắn qua để giảm độ trễ tranh cho ứng dụng đòi hỏi mạng xử lý liệu S-MAC đạt khả mở rộng tốt tránh va chạm cách sử dụng lịch trình kế hoạch kết hợp S-MAC thiết kế gồm vấn đề chính: - Thực chu kỳ thức - ngủ - Tránh xung đột nghe thừa - Xử lý thông điệp + Cơ chế làm việc Tìm hiểu mơ mạng MANET Hình 2.6: Cơ chế làm việc S-MAC Các mũi tên hướng lên thể việc gửi thông điệp, mũi tên hướng xuống thể việc nhận thông điệp Dòng chảy thơng tin đại diện cho việc gửi nhận chuỗi thông điệp nút trạng thái giám sát 2.2.2 Thuật toán - Thứ nhất, để phản ánh thay đổi tải lưu lượng khác nhau, gửi gói liệu đồng bộ, nút tính tốn tỷ lệ sử dụng nút U giai đoạn cuối trung bình trậm trễ ngủ D, theo thông số trạng thái mạng, điều chỉnh chu kỳ nhiệm vụ gửi kế hoạch hình thức phát sóng nút hàng xóm, thuật tốn cụ thể sau: Bước 1: Tính tốn tỷ lệ sử dụng nút U chu kỳ cuối Trong đó, Trx đại diện cho tổng thời gian tiếp nhận, T tx đại diện cho tổng thời gian gửi, Tidle đại diện cho tổng thời gian rảnh rỗi Bước 2: Tính tốn chậm trễ ngủ trung bình chu kỳ cuối = Trong biểu thức, D tích luỹ cho thời gian ngủ chậm trế, đếm gói đại diện cho số lượng tích luỹ gói tin Điều chỉnh chu kỳ nhiệm vụ, sử dụng mã để mô tả If U > Uhigh and chu kỳ nhiệm vụ > DCmax then chu kỳ nhiệm vụ = chu kỳ nhiệm vụ + n% else if U > Ulow and chu kỳ nhiệm vụ < DCmin and < Dmax Tìm hiểu mô mạng MANET then chu kỳ nhiệm vụ = chu kỳ nhiệm vụ - n% Trong biểu thức, Uhigh Umin đại diện cho phần phần nút Dmax đại diện cho chậm trễ tối đa chịu ngủ DC max DCmin đại diện cho giới hạn giới hạn chu kỳ nhiệm vụ, n đại diện cho biên độ điều chỉnh chu kỳ nhiệm vụ Bước 3: D = 0, packet count = Nếu nút sử dụng U lớn, chế lập kế hoạch nay, tải trọng nút nặng Do vậy, tăng chu kỳ nhiệm vụ thích ứng tải Trong thuật tốn Uhigh đại diện cho tải nặng Khi tỷ lệ sử dụng nút U > U high chu kỳ nhiệm vụ cần phải tăng n% Giá trị n thích hợp khơng làm cho nút thích nghi với thay đổi dòng chảy sớm tốt, ngăn chặn thay đổi mức chu kỳ nhiệm vụ Bước 4: Kết thúc - Thứ hai, mơ tả sau thuật tốn, cập nhật ngủ trễ D sau lần gửi gói liệu, nội dung cụ thể sau: Bước 1: chọn giá trị nhân vật chậm trễ gói liệu gán cho biến d Chậm trễ ngủ d thời gian mà lớp MAC nhận gói tin từ tầng để gửi thành cơng RTS Bước 2: tính tích luỹ chậm trễ ngủ D, cập nhật số lượng gói tin gửi thành công D=D+d Packet count = packet count + Bước 3: Kết thúc Thực chu kỳ thức – ngủ S-MAC giảm bớt thời gian thức cách nút cảm biến định kỳ chuyển sang trạng thái ngủ Mỗi nút cảm biến chuyển vào trạng thái ngủ thời gian sau tỉnh dậy nghe xem có nút muốn nói chuyện với 10 Tìm hiểu mơ mạng MANET Hình 2.10: Khn dạng gói tin RTS 2.4.4 Khn dạng gói tin CTS Định dạng gói tin xác nhận kết nối Hình 2.11: Khn dạng gói tin CTS 19 Tìm hiểu mơ mạng MANET CHƯƠNG 3: CƠNG CỤ MƠ PHỎNG NS2 3.1 Tổng quan NS2 NS2- Network Simulator Version phần mềm mô mạng điều khiển kiện riêng rẽ hướng đối tượng, phát triển UC Berkely, viết ngôn ngữ C+ + Otcl Được sử dụng phổ biến nghiên cứu khoa học mạng Mục đích NS2 tạo môi trường giả lâp cho việc nghiên cứu, kiểm tra, thiết kế giao thức, kiến trúc mới, so sánh giao thức tạo mô hình mạng phức tạp NS2 phần mềm mã nguồn mở chạy mơi trường Linux Window 3.1.1 Kiến trúc NS2 Hình 3.1: Mơ hình đơn giản NS Otcl Kịch OTcl Simulation Program Chương trình Mơ Bộ biên dịch Tcl mở rộng hướng đối OTcl NS Simulation Library Event Scheduler Objects tượng NS Simulation Library Các đối tượng Bộ lập lịch kiện Network Component Objects Các đối tượng Thành phần mạng Network Setup Helping Modules Các modun Trợ giúp Thiết lập mạng Plumbling Modules Các modun Plumbling Simulation Results Analysis NAM Network Animator Các kết Mơ Phân tích Minh hoạ Mạng NAM 20 Tìm hiểu mơ mạng MANET NS-2 bao gồm: - Các đối tượng Bộ lập lịch kiện - Các đối tượng thành phần mạng - Các modun trợ giúp thiết lập mạng Để sử dụng NS-2, user lập trình ngơn ngữ kịch Otcl User thêm mã nguồn Otcl vào NS-2 cách viết lớp đối tượng Otcl Những lớp biên dịch với mã nguồn gốc Kịch Otcl thực công việc sau: - Khởi tạo Bộ lập lịch kiện - Thiết lập Mơ hình mạng sử dụng đối tượng Thành phần mạng - Báo cho nguồn traffic bắt đầu truyền ngưng truyền packet Bộ lập lịch kiện - Bộ lập lịch kiện - Bộ lập lịch kiện thực công việc sau: - Tổ chức định thời mô - Huỷ kiện hàng đợi kiện - Triệu gọi Thành phần mạng mơ - Phụ thuộc vào mục đích user kịch mô Otcl mà kết mơ lưu trữ file trace - File name trace(file.nam) dùng cho công cụ Minh hoạ mạng NAM - File trace(file.tr) dùng cho công cụ Lần vết Giám sát mô XGRAPH hay TRACEGRAPH 21 Tìm hiểu mơ mạng MANET Hình 3.2: Luồng kiện cho file Tcl chạy NAM Hình 3.3: Kiến trúc NS2 Hình biểu diễn kiến trúc NS-2 User tưởng tượng đứng góc trái dưới, thiết kế chạy mô Tcl Tcl dùng đối tượng mô Otcl Các đối tượng Bộ lập lịch kiện đối tượng thành phần mạng thực thi C++ sẵn có cho Otcl qua liên kết Otcl Trong mô mạng dùng NS-2 sử dụng: - NAM Visual Simulation: mô ảo NAM - Tracing and Monitoring Simulation: mô Lần vết Giám sát User tưởng tượng đứng góc trái dưới, thiết kế chạy mô Tcl Tcl dùng đối tượng mô Otcl Các đối tượng lập lịch kiện đối tượng thành phần mạng thực thi C++ sẵn có cho Otcl qua liên kết Otcl Liên kết OTcl thực thi dùng TclCL 3.1.2 Đặc điểm NS2 22 Tìm hiểu mơ mạng MANET - Khả trừu tượng hóa: giúp nghiên cứu giao thức mạng nhiều mức khác nhau, từ hành vi đơn lẻ giao thức đến kết hợp nhiều luồng liệu tương tác nhiều giao thức Điều giúp người nghiên cứu dễ dàng so sánh phân tích kết chi tiết trừu tượng - Khả tương tác với mạng thực: cho phép chương trình mơ chạy tương tác với nút mạng thực hoạt động thông qua việc thiết lập lưu lượng cho liên kết mạng - Khả tạo ngữ cảnh: người nghiên cứu tạo trạng mạng phức tạp kiện động lỗi liên kết cách dễ dàng Điều giúp cho việc nghiên cứu, kiểm chứng giao thức mạng mơ hình mạng khác đắn - Khả hiển thị hóa: thơng qua cơng cụ hiển thị NAM, người nghiên cứu quan sát trực quan hoạt động nút mạng, lưu lượng, tỷ lệ lỗi để từ dễ dàng hiểu hành vi phức tạp đồ hình mạng mô - Khả mở rộng được: NS2 cho phép mở rộng chức cách dễ dàng thay đổi tham số, xây dựng nên giao thức mới, thử nghiệm kịch khác nhau… 3.1.3 Đối tượng mô - Wired, Wireless, Satellite - TCP Agents, UDP Agents, multicast, unicast - Thiết kế chế quản lý hàng đợi định tuyến Drop Tail, Fair Queueing, Red - Cài đặt thuật toán định đường động tĩnh, Dijkstra, vector khoảng cách , thuật toán trạng thái liên kết, định đường di động… - Hỗ trợ ứng dụng WebCache, FTP, Telnet, CBR, Web, Real Audio 3.1.4 Cấu trúc thư mục NS 23 Tìm hiểu mơ mạng MANET Hình 3.4: Cấu trúc thư mục NS Định dạng gói tin NS Một gói tin NS bao gồm phần: Header Data - Header: + Cmn header + Ip header 24 Tìm hiểu mơ mạng MANET + Tcp header + Rtp header + Trace header - Data: + Uid_: unique id + Ptype_: pkt type + Size_: simulated pkt size + Ts_: time stamp 3.1.5 Khả mô Với mô NS2, người dùng mơ nhiều giao thức khác nhiều tầng khác nhau: tầng ứng dụng, FTP, HTTP, tầng giao vận: UDP, TCP(reno, vegas…), tầng MAC như: MAC 802.3, MAC 802.11, MAC 802.15… mơ hình mạng có dây, mơ hình mạng khơng dây mơ hình mạng hỗn hợp Ngồi NS2 mơ thuật tốn định tuyến mạng không dây, đặc biệt mạng ad-hoc: DSDV, DSR, AODV, TORA,…các vấn đề định tuyến Unicast/Multicast, liên mạng sử dụng vệ tinh nhiều vấn đề khác 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 LAN + Các sách phục vụ hàng đợi + Các mơ hình sinh lỗi + Vấn đề định tuyến Unicast/Multicast + Các giao thức tầng giao vận: TCP/Tahoe/Reno/Sack,UDP, điều khiển lưu lượng điều khiển tắc nghẽn - Đối với mạng không dây: + Kênh truyền + Sự di chuyển nút mạng không gian chiều + Mạng LAN không dây(WLAN) 802.11 + Mobile IP 25 Tìm hiểu mơ mạng MANET + Các thuật tốn định tuyến mạng khơng dây đặc biệt(Ad-hoc network): DSDV, DSR, AODV, TORA… + Liên mạng sử dụng vệ tinh - Trong lĩnh vực mạng hỗn hợp có dây khơng dây: + Trạm sở đóng vai trò gateway mạng có dây mạng khơng dây + Snoop TCP 3.1.6 Giao tiếp với thông dịch: liên kết Otcl a) Các khái niệm - NS2 sử dụng hai ngơn ngữ C++ Otcl C++ có thời gian thực thi nhanh, chậm việc thay đổi nâng cấp, phù hợp với việc triển khai chi tiết giao thức hay xử lý gói Otcl chạy chậm lại dễ dàng thay đổi nhanh, phù hợp với việc thiết lập cấu hình mơ NS đưa chế cho phép sử dụng đối tượng biến môi trường ngôn ngữ C++ Otcl b) Mục đích sử dụng Otcl để: - Thực thiết lập cấu hình mơ cơng việc thực lần - Thực việc giải cách tổ hợp đối tượng C++ sử dụng C++ để: - Thực công việc yêu cầu xử lý gói luồng liệu - Sửa đổi lớp C++ có sẵn 3.1.7 Tổng quan mã lệnh Mã giao tiếp với thông dịch đặt thư mục /tclcl tồn phần lại mã mơ đặt thư mục NS-2 Có số lớp định nghĩa thư mục /tclcl cho giao tiếp với thông dịch Otcl, xem xét lớp sử dụng NS: - Lớp Tcl: chứa hàm cho phép mã C++ truy nhập tới thông dịch - Lớp TclObject: lớp sở tất đối tượng mô - Lớp TclClass: định nghĩa phân cấp thông dịch hàm cho phép người dùng khởi tạo đối tượng TclObject - Lớp TclCommand: định nghĩa câu lệnh thông dịch đơn giản 26 Tìm hiểu mơ mạng MANET - Lớp EmbeddedTcl: định nghĩa hàm để nạp câu lệnh có sẵn múc cao hơn, cho phép thiết lập câu hình mơ dễ dàng - Lớp InstVar: định nghĩa hàm cho phép truy nhập tới biến thành viên C++ 3.1.8 Lớp Tcl Lớp Tcl bao bọc toàn instance thực thông dịch OTcl đưa hàm giao tiếp với thơng dịch Các hàm cho phép thực hiện: - Lấy tham chiếu tới Tcl instance - Gọi hàm OTcl qua thông dịch - Nhận trả lại kết cho thông dịch - Thơng báo tình lỗi - Lưu tham chiếu tìm đối tượng TclObject - Truy nhập trực tiếp tới thông dịch - Lấy tham chiếu tới instance lớp Tcl Luôn tồn instance lớp Tcl khai báo biến thành viễn tĩnh, người lập trình lấy tham chiếu tới instance qua câu lệnh Tcl & tcl = Tcl: instance() a) Gọi hàm Otcl Có hàm khác để gọi câu lênh Otcl qua Tcl:instance: tcl.eval(char* s) tcl.evalc(const char* s) tcl.eval() tcl.evalf(const char * s, ) Những hàm khác tham số đầu vào, hàm chuyển câu lệnh dạng chuỗi tới thông dịch, thơng dịch kiểm tra câu lệnh trả kết TCL_OK câu lệnh TCL_ERROR câu lệnh sai b) Gửi nhận kết từ thông dịch Khi thông dịch gọi hàm C++, mong muốn kết trả biến thành viên riêng tcl_->result Có hai hàm để trả kết vào biến 27 Tìm hiểu mơ mạng MANET tcl.result(const char * s) tcl.result(const char * fmt, ) Khi hàm C++ thực câu lệnh OTcl, thông dịch trả kết biến thành viên riêng tcl_->result Và để lấy kết sử dụng hàm string tcl.result(void), hàm trả kết dạng chuỗi c) Thơng báo lỗi Hàm tcl.error(const char * s) sử dụng để thông báo lỗi mã biên dịch, thực việc ghi chuỗi thông báo lỗi s kết trả tclresult luồng stdout thoát với mã lỗi d) Các hàm băm thông dịch NS lưu tham chiếu tất đối tượng TclObject biên dịch bảng băm NS sử dụng tên đối tượng để thêm vào, tìm kiếm hay xóa tham chiếu đối tượng bảng băm Có hàm để làm điều này: tcl.enter (TclObject * o) tcl.lookup(char * s) tcl.remove(TclObject *o) Các hàm sử dụng nội lớp TclObject TclClass để quản lý đối tượng 3.1.9 Lớp TclObject TclObject lớp sở phần lớn lớp lại biên dịch thơng dịch Mỗi đối tượng thuộc lớp TclObject tạo người sử dụng thơng qua thơng dịch, có đối tượng ánh xạ tương ứng tạo biên dịch Hai đối tượng có quan hệ chặt chẽ với Lớp TclClass (được mô tả phần sau) chứa chế cho phép thực việc ánh xạ a) Tạo huỷ đối tượng TclObject Khi người dùng muốn khởi tạo hay xóa bỏ đối tượng TclObject, hai hàm new{} delete{} sử dụng để tạo hủy đối tượng Hai hàm new{} delete{} sử dụng để tạo hủy đối tượng tất lớp dẫn xuất từ lớp TclObject 28 Tìm hiểu mô mạng MANET Tạo đối tượng TclObject: cách dùng hàm new{}, người dùng tạo đối tượng TclObject thông dịch, thông dịch thực việc khởi tạo đối tượng thơng qua việc gọi hàm dựng init{} với tham số nhận từ người dùng Sau NS tự động tạo đối tượng biên dịch tương ứng, đối tượng ánh xạ tạo hàm dựng lớp TclObject sở Vì để khởi tạo đối tượng TclObject, trước tiên cần phải gọi hàm dựng lớp cha trước thực khởi tạo đối tượng lớp Hàm new{} trả thẻ trỏ tới đối tượng tạo Hủy đối tượng TclObject: việc nhằm xóa bỏ đối tượng thơng dịch đối tượng biên dịch ánh xạ tương ứng Cũng giống việc tạo đối tượng, hủy đối tượng phải gọi hàm hủy lớp cha cách tường minh câu lệnh cuối hàm hủy lớp Hàm hủy đối tượng TclObject thực gọi hàm delete_shadow{} để xóa bỏ đối tượng biên dịch tương ứng Cuối thông dịch xóa bỏ đối tượng thơng dịch b) Kết hợp biến Trong phần lớn trường hợp, can thiệp trực tiếp vào biến thành viên biên dịch việc can thiệp tới biến thông dịch qua mã thong dịch hạn chế Tuy nhiên, thiết lập nên kết hợp hai chiều: hai biến thành viên biên dịch thông dịch truy nhập tới liệu nhất, thay đổi giá trị hai biến thành viên làm thay đổi giá trị biến thành viên lại Cơ chế kết hợp thiết lập hàm dựng biên dịch đối tượng khởi tạo NS hỗ trợ loại liệu khác nhau: kiểu thực, kiểu nguyên, kiểu logic, kiểu thời gian kiểu liệu giá trị băng thông (Kb, Mb ) Cú pháp để thực việc gán liệu cho biến sau: $object set realvar 1.2e3 $object set intvar 123 $object set bwvar 1.5mb $object set timevar 1500m $object set boolvar true c) Theo dõi giá trị biến 29 Tìm hiểu mơ mạng MANET Ngồi chế kết hợp biến, TclObject hỗ trợ theo dõi giá trị biến C+ + Tcl Một biến tạo C++ Tcl thiết lập việc theo dõi giá trị Để theo dõi giá trị biến mức Tcl, biến phải xuất Tcl, điều có nghĩa phải biến Tcl túy biến kết hợp C++/Tcl Ngồi ra, đối tượng có biến thành viên theo dõi giá trị yêu cầu việc theo dõi sử dụng hàm trace{} đối tượng TclObject.Hàm trace{} có hai tham số đầu vào, tham số vào tên biến, tham số tùy chọn thứ hai đối tượng chịu trách nhiệm theo dõi giá trị biến cần theo dõi, đối tượng theo dõi không ra, đối tượng sở hữu biến chịu trách nhiệm theo dõi giá trị biến Để đối tượng TclObject theo dõi giá trị biến, phải mở rộng hàm C++ trace(), hàm ảo định nghĩa lớp TclObject - Hàm command: định nghĩa cách gọi Đối với đối tượng TclObject tạo ra, NS thiết lập hàm mẫu cmd{}, đóng vai trò giao tiếp để thực hàm đối tượng biên dịch ánh xạ Hàm cmd{} tự động gọi hàm command() đối tượng biên dịch, tham số đầu vào hàm cmd{} cho hàm command() Người sử dụng gọi hàm cmd{} theo hai cách: gọi tường minh hàm tác vụ mong muốn biến đầu vào thứ nhất, gọi theo cách ngầm định tồn hàm mẫu trùng tên với tác vụ mong muốn Đa phần kịch mô sử dụng cách gọi thứ hai 3.1.10 Lớp TclClass Lớp biên dịch TclClass lớp ảo túy Các lớp dẫn xuất từ lớp sở có hai chức năng: xây dựng phân cấp theo lớp thông dịch để ánh xạ sang phân cấp theo lớp biên dịch, đưa hàm để khởi khảo đối tượng TclObjects Mỗi lớp dẫn xuất gắn với lớp biên dịch xác định phân cấp biên dịch, khởi tạo đối tượng lớp biên dịch tương ứng Ví dụ: xem xét lớp RenoTcpClass, dẫn xuất từ lớp TclClass, gắn với lớp biên dịch RenoTcpAgent Lớp RenoTcpClass khởi tạo đối 30 Tìm hiểu mơ mạng MANET tượng lớp RenoTcpAgent Lớp biên dịch RenoTcpAgent lớp dẫn xuất từ lớp TcpAgent, thân lớp TcpAgent dẫn xuất từ lớp Agent, cuối lớp Agent lại dẫn xuất từ lớp TclObject Lớp RenoTcpClass định nghĩa sau: static class RenoTcpClass: public TclClass { public: RenoTcpClass() : TclClass("Agent/TCP/Reno") {} TclObject* create(int argc, const char*const* argv) { return (new RenoTcpAgent()); } } class_reno; 31 Tìm hiểu mơ mạng MANET CHƯƠNG 4: MƠ PHỎNG MẠNG 32 Tìm hiểu mơ mạng MANET CHƯƠNG 5: KẾT LUẬN 5.1 Kết đạt 5.2 Hạn chế 5.3 Hướng phát triển 5.4 Tài liệu tham khảo 33

Ngày đăng: 28/09/2019, 07:25

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan