LỜI MỞ ĐẦU Ngày nay, mạng máy tính đang ngày càng phát triển không ngừng và trở nên tiện dùng kèm theo đó là tính phức tạp cồng kềnh không kém. Các dự án nghiên cứu, xây dựng và phát triển các môi trường giả lập mạng chỉ mới đề cập và quan tâm đúng mức trong thời gian gần đây. Muốn xây dựng các công cụ mạnh đáp ứng được nhu cầu phát triển của mạng thì cần có các công cụ hỗ trợ mạnh mẽ (như C++, Java ).
Đề tài “Tìm hiểu và thực hiện mô phỏng mạng Manet” không nằm ngoài xu hướng phát triển chung đặc biệt khi ngày nay mạng không dây di động đang ngày càng tổ rõ đặc tính nổi bật của mình đó là khả năng cơ động cao, có thể di chuyển một cách tuỳ ý mà vẫn có thể truy cập mạng và trao đổi dữ liệu với nhau
Đề tài có ý nghĩa thiết thực trong việc nghiên cứu và phát triển các môi trường giả lập mạng, đồng thời xây dựng nên một cơ sở nền tảng lý thuyết về xây dựng môi trường và các công cụ giả lập mạng.
MỤC LỤC LỜI CẢM ƠNi
MỤC LỤCii
DANH MỤC CÁC TỪ VIẾT TẮT. iv
DANH MỤC HÌNH ẢNHv
LỜI MỞ ĐẦUvi
CHƯƠNG 1. TỔNG QUAN VỀ MẠNG MANET. 1
1.1. GIỚI THIỆU VỀ MẠNG MANET. 1
1.1.1. Khái niệm cơ bản. 1
1.1.2. Lịch sử phát triển.2
1.2. ĐẶC ĐIỂM CỦA MANET. 2
1.3. KIỂU KẾT NỐI VÀ CƠ CHẾ HOẠT ĐỘNG4
1.3.1. Các kiểu kết nối topo mạng. 4
1.1.3.1. Mạng máy chủ di động. 4
1.1.3.2. Mạng có các thiết bị di động không đồng nhất4
1.3.2. Chế độ hoạt động. 4
2.1.3.1. Chế độ IEEE-ad hoc. 4
2.1.3.2. Chế độ cơ sở hạ tầng. 5
1.4. PHÂN LOẠI MANET. 5
1.4.1. Theo giao thức. 5
1.4.2. Theo chức năng. 7
CHƯƠNG 2. ĐỊNH TUYẾN TRONG MẠNG MANET. 9
2.1. NHỮNG LOẠI ĐỊNH TUYẾN9
2.1.1. Ðịnh tuyến Bellman-Ford. 9
2.1.2. Định tuyến tìm đường. 9
2.1.3. Ðịnh tuyến on-demand. 10
2.1.4. Định tuyến vùng. 10
2.2. CÁC GIAO THỨC ĐỊNH TUYẾN10
2.2.1. Phân loại giao thức định tuyến. 10
2.2.2. Các giao thức định tuyến cơ bản. 12
2.2.2.1. Giao thức DSDV(Destination Sequence Distance Vector)12
2.2.2.2. Giao thức DSR (Dynamic source routing)13
CHƯƠNG 3. ỨNG DỤNG CỦA MANET. 16
3.1. LĨNH VỰC QUÂN SỰ16
3.2. LĨNH VỰC THƯƠNG MẠI. 16
3.3. NỘI BỘ16
3.4. PERSONAL ARE NETWORK (PAN):17
CHƯƠNG 4. MÔ PHỎNG MẠNG DÙNG NS2. 18
4.1. CÔNG CỤ MÔ PHỎNG NS2. 18
4.1.1. Tổng quan về NS2. 18
4.1.2. Kiến trúc của NS2. 18
4.1.3. Đặc điểm của NS-2. 22
4.1.4. Giới thiệu phần mềm NAM dùng kết hợp với NS-2. 22
4.2. SỬ DỤNG OTCL SCRIPT ĐỂ VIẾT CÁC KỊCH BẢN MÔ PHỎNG MẠNG TRONG NS-225
4.2.1 Tổng quan về OTCL SCRIPT. 25
4.2.2. Khởi tạo node. 31
4.2.3. Khởi tạo liên kết32
4.2.4. Khởi tạo Network Agent32
4.2.5. Các loại traffic. 33
4.2.6. Các dịch vụ cơ bản trong internet33
4.3. TraceGraph bộ phân tích file trace. 34
KẾT LUẬN37
TÀI LIỆU THAM KHẢO38
45 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 5332 | Lượt tải: 5
Bạn đang xem trước 20 trang tài liệu Tìm hiểu và thực hiện mô phỏng mạng Manet, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
hành cảm ơn Ban giám hiệu Khoa Khoa Học Máy Tính trường Cao Đẳng Công Nghệ Thông Tin Hữu Nghị Việt-Hàn đã tạo điều kiện thuận lợi để em được học tập và tham gia làm đồ án.
Em xin chân thành cảm ơn cô Dương Thị Thu Hiền đã tận tình chỉ bảo, hướng dẫn em trong quá trình làm đồ án.
Mặc dù em đã nỗ lực để hoàn thành đồ án song vẫn không tránh khỏi thiếu sót kính mong sự góp ý của các thầy cô và các bạn.
MỤC LỤC
DANH MỤC CÁC TỪ VIẾT TẮT
DARPA
Defense Advanced Research Projects Agency
IEEE
Institute of Electrical and Electronics Engineers
IETF
Internet Engineering Task Force
AP
Access Point
ID
Identification number
DV
Distance Vector
DSDV
Destination Sequenced Distance Vector
WRP
Wireless Routing Protocol
DBF
Portable Document Format
DC
Diffusion Computation
OLSR
Optimized Link State Routing
DSR
Dynamic Source Routing
AODV
Ad hoc On- demand Distance Vector routing
TORA
Temporally Ordered Routing Algorithm
ZRP
Zone Routing Protocol
ZHLS
Zone-based Hierarchical Link State routing
HARP
Hybrid Ad hoc Routing Protocol
LSA
Link state advertisement
MAC
Media Access Control
Vd
Ví dụ
PAN
Pesonal Are Network
PDA
Personal Digital Assistant
WLAN
Wireless Local Area Network
GPRS
General Packet Radio Service
UC Berkely
University of California Berkely
LAN
Local Are Network
NS
Network Simulator
TCP
Transmission Control Protocol
UDP
User Datagram Protocol
FTP
File Transfer Protocol
CBR
Constant Bit Rate
VBR
Variable Bit Rate
CBQ
Class-Based Queueing
RED
Random Early Detection
MANET
Mobile Ad Hoc Network
CD
Compact Disc
DARPA
Defense Advanced Research Projects Agency
DANH MỤC HÌNH ẢNH
Hình 1.1 Minh họa mạng MANET 2
Hình 1.2 Biểu đồ mạng MANET 2
Hình 1.3 Mạng máy chủ di động 4
Hình 1.4 Hình minh hoạ mạng có các thiết bị di động không đồng nhất 4
Hình 1.5 Chế độ IEEE-ad hoc 5
Hình 1.6 Chế độ cơ sở hạ tầng 5
Hình 1.7 Singal-hop 6
Hình 1.8 Multi-hop 6
Hình 1.9 Mô hình mạng phân cấp 7
Hình 1.10 Mô hình mạng Aggregate 8
Hình 2.1 Mô tả giao thức DSR 14
Hình 3.1 Ứng dụng PAN 17
Hình 4.1 Mô hình đơn giản của NS 18
Hình 4.2 Luồng các sự kiện cho file Tcl chạy trong Nam 20
Hình 4.3 Kiến trúc của NS2 20
Hình 4.4 TclCL hoạt động như liên kết giữa A và B 21
Hình 4.5 Giao diện đồ hoạ Nam 23
Hình 4.6 Cửa sổ Nam console 24
Hình 4.7 Cửa sổ minh hoạ Nam 24
Hình 4.8 Topology đơn giản và kịch bản mô phỏng. 25
Hình 4.9 Minh họa NAM cho kịch bản Otcl 28
Hình 4.10 Node Unicast và node Multicast 31
Hình 4.11 Biểu diễn link giữa 2 node 32
Hình 4.12 Giao diện đồ hoạ người dùng TraceGraph 35
Hình 4.13 Chèn đối tượng Trace 35
Hình 4.14 Định dạng file Trace 36
LỜI MỞ ĐẦU
Ngày nay, mạng máy tính đang ngày càng phát triển không ngừng và trở nên tiện dùng kèm theo đó là tính phức tạp cồng kềnh không kém. Các dự án nghiên cứu, xây dựng và phát triển các môi trường giả lập mạng chỉ mới đề cập và quan tâm đúng mức trong thời gian gần đây. Muốn xây dựng các công cụ mạnh đáp ứng được nhu cầu phát triển của mạng thì cần có các công cụ hỗ trợ mạnh mẽ (như C++, Java..).
Đề tài “Tìm hiểu và thực hiện mô phỏng mạng Manet” không nằm ngoài xu hướng phát triển chung đặc biệt khi ngày nay mạng không dây di động đang ngày càng tổ rõ đặc tính nổi bật của mình đó là khả năng cơ động cao, có thể di chuyển một cách tuỳ ý mà vẫn có thể truy cập mạng và trao đổi dữ liệu với nhau…
Đề tài có ý nghĩa thiết thực trong việc nghiên cứu và phát triển các môi trường giả lập mạng, đồng thời xây dựng nên một cơ sở nền tảng lý thuyết về xây dựng môi trường và các công cụ giả lập mạng.
TỔNG QUAN VỀ MẠNG MANET
GIỚI THIỆU VỀ MẠNG MANET
Khái niệm cơ bản
- Các thiết bị di động như các máy tính xách tay, với đặc trưng là công suất CPU, bộ nhớ lớn, dung lượng đĩa hàng trăm gigabyte, khả năng âm thanh đa phương tiện và màn hình màu đã trở nên phổ biến trong đời sống hàng ngày và trong công việc. Ðồng thời, các yêu cầu kết nối mạng để sử dụng các thiết bị di động gia tăng đáng kể, bao gồm việc hỗ trợ các sản phẩm mạng vô tuyến dựa trên vô tuyến hoặc hồng ngoại ngày càng nhiều. Với kiểu thiết bị điện toán di động này thì giữa những người sử dụng di động luôn mong muốn có sự chia sẽ thông tin
- Một mạng tuỳ biến là một tập hợp các thiết bị di động hình thành nên một mạng tạm thời mà không cần sự trợ giúp của bất kỳ sự quản lý tập trung hoặc các dịch vụ hỗ trợ chuẩn nào thường có trên mạng diện rộng mà ở đó các thiết bị di động có thể kết nối được. Các node được tự do di chuyển và thiết lập nó tuỳ ý. Do đó, topo mạng không dây có thể thay đổi một cách nhanh chóng và không thể dự báo. Nó có thể hoạt động một mình hoặc có thể được kết nối tới Internet
- Vậy MANET (mobile ad hoc network) là một tập hợp của những node mạng không dây, những node này có thể được thiết lập tại bất kỳ thời điểm và tại bất cứ nơi nào. Mạng MANET không dùng bất kỳ cơ sở hạ tầng nào. Nó là một hệ thống tự trị mà máy chủ di động được kết nối bằng đường vô tuyến và có thể di chuyển tự do, thường hoạt động như một router
Hình 1.1 Minh họa mạng MANET
Hình 1.2 Biểu đồ mạng MANET
Lịch sử phát triển.
- Mobile Ad-hoc Network - MANET trước đây còn được gọi là mạng vô tuyến gói, và được tài tài trợ, phát triển bởi DARPA trong đầu thập niên 1970
- Sau đó một mạng mới: SUSAN (Adaptive Survivable Network) đã được đề xuất bởi DARPA vào năm 1983 để hỗ trợ một mạng quy mô lớn hơn, mạnh mẽ hơn. Thời gian này, Ad-hoc đã được sử dụng để mô tả 1 loại mạng như tiêu chuẩn IEEE802.11
- Mobile Ad-hoc Network đã được định nghĩa bởi IETF
ĐẶC ĐIỂM CỦA MANET
Thiết bị tự trị đầu cuối (Autonomous terminal): Trong Manet, mỗi thiết bị di động đầu cuối là một node tự trị. Nó có thể mang chức năng của host và router. Bên cạnh khả năng xử lý cơ bản của một host, các node di động này có thể chuyển đổi chức năng như một router. Vì vậy, thiết bị đầu cuối và chuyển mạch là không thể phân biệt được trong mạng Manet
Phân chia hoạt động (Distributed operation): Vì không có hệ thống mạng nền tảng cho trung tâm kiểm soát hoạt động của mạng nên việc kiểm soát và quản lý hoạt động của mạng được chia cho các thiết bị đầu cuối. Các node trong MANET đòi hỏi phải có sự phối hợp với nhau. Khi cần thiết các node hoạt động như một relay để thực hiện chức năng của mình. Vd: như bảo mật và định tuyến
Ðịnh tuyến đa đường: Thuật toán định tuyến không dây cơ bản có thể định tuyến một chặng và nhiều chặng dựa vào các thuộc tính liên kết khác nhau và giao thức định tuyến. Singalhop Manet đơn giản hơn multihop ở vấn đề cấu trúc và thực hiện với chi phí thấp và ít ứng dụng. Khi truyền các gói dữ liệu từ một nguồn của nó đến điểm trong phạm vi truyền tải trực tiếp không dây, các gói dữ liệu sẽ được chuyển tiếp qua một hoặc nhiều trung gian các nút
Cấu hình động (dynamic network topology): Vì các node là di động, nên cấu trúc mạng có thể thay đổi nhanh và không thể biết trước, các kết nối giữa các thiết bị đầu cuối có thể thay đổi theo thời gian. MANET sẽ thích ứng tuyến và điều kiện lan truyền giống như mẫu di động và các node mạng di động. Các node di động trong mạng thiết lập định tuyến động với nhau khi chúng di chuyển, hình thành mạng riêng của chúng trong không trung. Hơn nữa, một User trong Manet có thể không chỉ hoạt động trong mạng lưới di động đặc biệt, mà còn có thể yêu cầu truy cập vào một mạng cố định công cộng (Ví dụ: Internet)
Dao động về dung lượng liên kết (Fluctuating link capacity): Bản chất tỉ lệ bit lỗi cao của kết nối không dây cần quan tâm trong mạng MANET. Từ đầu cuối này đến đầu cuối kia có thể được chia sẽ qua một vài chặng. Kênh giao tiếp ở đầu cuối chịu ảnh hưởng của nhiễu, hiệu ứng đa đường, sự giao thoa và băng thông của nó ít hơn so với mạng có dây. Trong một vài tình huống, truy cập của hai người dùng có thể qua nhiều liên kết không dây và các liên kết này có thể không đồng nhất
Tối ưu hoá cho thiết bị đầu cuối (light-weight terminals): Trong hầu hết các trường hợp các node trong mạng MANET là thiết bị với tốc độ xử lý của CPU thấp, bộ nhớ ít và lưu trữ điện năng ít. Vì vậy cần phải tối ưu hoá các thuật toán và cơ chế
KIỂU KẾT NỐI VÀ CƠ CHẾ HOẠT ĐỘNG
Các kiểu kết nối topo mạng
Mạng máy chủ di động
- Ở topo này các thiết bị chỉ liên kết với một máy chủ duy nhất. Các thiết bị khác liên kết qua máy chủ đó như hình vẽ:
Hình 1.3 Mạng máy chủ di động
Mạng có các thiết bị di động không đồng nhất
- Ở topo này các máy có thể liên kết trực tiếp với nhau trong phạm vi phủ sóng của mình
Hình 1.4 Hình minh hoạ mạng có các thiết bị di động không đồng nhất
Chế độ hoạt động
Chế độ IEEE-ad hoc
- Chế độ này thì các node di động truyền thông trực tiếp với nhau mà không cần tới một cơ sở hạ tầng nào cả. Trong chế độ này thì các liên kết không thể thực hiện qua nhiều chặng
Hình 1.5 Chế độ IEEE-ad hoc
Chế độ cơ sở hạ tầng
- Chế độ này thì mạng bao gồm các điểm truy cập AP cố định và các node di động tham gia vào mạng, thực hiện truyền thông qua các điểm truy cập. Trong chế độ này thì các liên kết có thể thực hiện qua nhiều chặng
Hình 1.6 Chế độ cơ sở hạ tầng
PHÂN LOẠI MANET
Theo giao thức
Singal-hop
Mạng Manet định tuyến singal-hop là loại mô hình mạng ad-hoc đơn giản nhất. Trong đó, tất cả các node đều nằm trong cùng một vùng phủ sóng, nghĩa là các node có thể kết nối trực tiếp với nhau mà không cần các node trung gian
Mô hình này các node có thể di chuyển tự do nhưng chỉ trong một phạm vi nhất định đủ để các node liên kết trực tiếp với các node khác trong mạng
Hình 1.7 Singal-hop
Multi-hop
Ðây là mô hình phổ biến nhất trong mạng MANET, nó khác với mô hình trước là các node có thể kết nối với các node khác trong mạng mà có thể không cần kết nối trực tiếp với nhau. Các node có thể định tuyến với các node khác thông qua các node trung gian trong mạng. Ðể mô hình này hoạt động một cách hoàn hảo thì cần phải có giao thức định tuyến phù hợp với mô hình mạng MANET
Hình 1.8 Multi-hop
Mobile multi-hop
Mô hình này cũng tương tự với mô hình thứ hai nhưng sự khác biệt ở đây là mô hình này tập trung vào các ứng dụng có tính chất thời gian thực: audio, video
Theo chức năng
Mạng MANET đẳng cấp (Flat)
Trong kiến trúc này tất cả các node có vai trò ngang hàng với nhau (peer-to-peer) và các node đóng vai trò như các router định tuyến dữ liệu gói trên mạng. Trong những mạng lớn thì cấu trúc Flat không tối ưu hoá việc sử dụng tài nguyên băng thông của mạng vì những thông tin điều khiển phải truyền trên toàn bộ mạng. Tuy nhiên nó thích hợp trong những topo có các node di chuyển nhiều
Mạng Manet phân cấp (Hierarchical)
Ðây là mô hình sử dụng phổ biến nhất. Trong mô hình này thì mạng chia thành các domain, trong mỗi domain bao gồm một hoặc nhiều cluster, mỗi cluster chia thành nhiều node. Có hai loại node là master node và nomal node
Master node: là node quản trị một router có nhiệm vụ chuyển dữ liệu của các node trong cluster đến các node trong cluster khác và ngược lại. Nói cách khác nó có nhiệm vụ như một gateway
Normal node: là các node nằm trong cùng một cluster. Nó có thể kết nối với các node trong cluster hoặc kết nối với các cluster khác thông qua master node
Hình 1.9 Mô hình mạng phân cấp
Với các cơ chế trên mạng sử dụng tài nguyên băng thông hiệu quả hơn vì các tin nhắn chỉ phải truyền trong 1 cluster. Tuy nhiên việc quản lý tính chuyển động của các node trở nên phức tạp hơn. Kiến trúc mạng phân cấp thích hợp cho các mạng có tính chuyển động thấp
Mạng MANET kết hợp (Aggregate)
Mạng = Zones, Zone = nodes
Mỗi node bao gồm hai mức topo : Topo mức thấp ( node level ), và topo mức cao (zone level )
Mỗi node đặc trưng bởi: node ID và zone ID. Trong một Zone có thể áp dụng kiến trúc đẳng cấp hoặc kiến trúc phân cấp
Hình 1.10 Mô hình mạng Aggregate
ĐỊNH TUYẾN TRONG MẠNG MANET
NHỮNG LOẠI ĐỊNH TUYẾN
- Trong mạng thông tin vô tuyến nói chung và mạng Ad hoc nói riêng do mỗi nút mạng đều có khả năng di chuyển nên topo mạng cũng thay đổi theo thời gian. Ðặc điểm này gây ra khó khăn trong việc truyền tải gói tin. Riêng mạng Ad hoc gói tin muốn đến được đích thì phải truyền qua nhiều trạm và nút mạng do đó để gói tin đến được đích thì nút mạng phải sử dụng phương pháp định tuyến . Giao thức định tuyến có hai chức năng: Tìm, chọn đường đi tốt nhất và chuyển gói tin đến đúng đích. Ta sẽ đề cập sâu hơn về việc tìm, chọn đường của các nút
Ðịnh tuyến Bellman-Ford
- Nhiều lược đồ định tuyến trước đây được xây dựng cho mạng không dây Ad hoc dựa trên thuật toán Bellman-Ford. Các lược đồ này cũng được nghiên cứu giải quyết các vấn đề của lược đồ Distance Vector (DV). Trong thuật toán Bellman-Ford, mỗi nút duy trì một bảng định tuyến hay ma trận chứa thông tin khoảng cách và thông tin về nút kế tiếp của mình trên đường đi ngắn nhất tới đích bất kỳ, trong đó khoảng cách chính là chiều dài ngắn nhất từ nút tới đích.
- Ðể cập nhật thông tin về đường đi ngắn nhất mỗi nút sẽ thường xuyên trao đổi bảng định tuyến với các nút bên cạnh nó. Dựa trên bảng định tuyến từ các nút lân cận đó, nút nào đó biết được khoảng cách ngắn nhất từ các lân cận của nó tới nút đích bất kỳ. Do đó, với mỗi nút đích, nút xuất phát sẽ chọn một nút trung gian cho chặng kế tiếp sao cho khoảng cách từ nó qua nút trung gian tới nút đích là nhỏ nhất. Các thông tin tính toán mới này sẽ được lưu trữ vào bảng định tuyến của nút này và được trao đổi ở vòng cập nhật định tuyến tiếp theo.
- Ðịnh tuyến này có ưu điểm là đơn giản và tính toán hiệu quả do đặc điểm phân bố. Tuy nhiên nhược điểm của nó là hội tụ chậm khi topo mạng thay đổi và có xu hướng tạo các vòng lặp định tuyến đặc biệt là khi các điều kiện liên kết không ổn định
Định tuyến tìm đường
- Các giao thức mới như DSDV (Destination Sequenced Distance Vector) và WRP (Wireless Routing Protocol) dựa trên DBF để cung cấp định tuyến lặp tự do. Cho dù là vấn đề đã được giải quyết thì vẫn còn tồn tại vấn đề về độ thiếu chính xác trong định tuyến DBF, vấn đề này có thể gây ra suy giảm hiệu suất mạng. Nguyên nhân dẩn đến sự thiếu chính xác là do nút mạng không có được các thông tin trạng thái toàn mạng dẩn đến các quyết định đưa ra chỉ tối ưu trong phạm vi cục bộ, nó không đảm bảo một giải pháp tối ưu trong môi trường di động. Thêm vào đó khi DBF chỉ duy trì một đường đi duy nhất tới đích, nó thiếu khả năng thích nghi với các lỗi liên kết và yêu cầu nghiên cứu mở rộng cho các hỗ trợ multicasting
Ðịnh tuyến on-demand
- Ðịnh tuyến On-demand được biết đến như DC (Diffusion Computation) cũng được sử dụng trong mạng không dây. Trong lược đồ định tuyến On-demand, một nút xây dựng đường đi bằng cách chất vấn tất cả các nút trong mạng. Gói chất vấn tìm được ID của các nút trung gian và lưu giữ ở phần Path. Khi dò tìm các chất vấn, nút đích hay các nút đã biết đường đi tới đích trả lại chất vấn bằng cách phúc đáp “source routed” cho nơi gửi. Do nhiều phúc đáp nên có nhiều đường đi được tính toán và duy trì. Sau khí tính toán đường đi nút liên kết bất kỳ bắt đầu các chất vấn , phúc đáp khác nên luôn cập nhật định tuyến. Mặc dù các tiếp cận dựa trên cơ sở DC có độ chính xác cao hơn và phản ứng nhanh hơn với sự thay đổi mạng nhưng phụ trợ điều khiển quá mức do thường xuyên yêu cầu flooding đặc biệt khi tính di động cao hơn và lưu lượng dày đặc phân bố đều nhau. Kết quả là các giao thức định tuyến On-demand chỉ phù hợp với mạng không dây băng thông rộng trễ truyền gói nhỏ và lưu lượng rất nhỏ
Định tuyến vùng
- Ðịnh tuyến vùng là một giao thức định tuyến khác thiết kế trong môi trường Ad hoc. Ðây là giao thức lai giữa định tuyến On-demand với một giao thức bất kỳ đã tồn tại. Trong định tuyến vùng mỗi nút xác định vùng riêng khi nút ở khoảng cách nhất định. Ðịnh tuyến vùng trung gian sẽ dùng định tuyến On-demand để tìm đường đi. Ưu điểm của định tuyến vùng là khả năng mở rộng cấp độ khi nhu cầu lưu trữ cho bảng định tuyến giảm xuống. Tuy nhiên do gần giống với định tuyến On-demand nên định tuyến vùng cũng gặp phải vấn đề về trễ kết nối và điểm kết thúc của các gói yêu cầu
CÁC GIAO THỨC ĐỊNH TUYẾN
Phân loại giao thức định tuyến
Ðịnh tuyến theo bảng (proactive)
Trong phương pháp định tuyến theo bảng, các node trong mạng MANET liên tục đánh giá các tuyến tới các node để duy trì tính tương thích, cập nhật của thông tin định tuyến. Vì vậy, một node nguồn có thể đưa ra một đường dẫn định tuyến ngay lập tức khi cần. Trong các giao thức định tuyến theo bảng, tất cả các node cần duy trì thông tin về cấu hình mạng. Khi cấu hình mạng thay đổi, các cập nhật được truyền lan trong mạng nhằm thông báo sự thay đổi. Hầu hết các giao thức định tuyến theo bảng đều kế thừa và sửa đổi đặc tính tương thích từ các thuật toán chọn đường dẫn ngắn nhất trong các mạng hữu tuyến truyền thống. Các thuật toán định tuyến theo bảng được sử dụng cho các node cập nhật trạng thái mạng và duy trì tuyến bất kỳ có lưu lượng hay không. Vì vậy, tiêu đề thông tin để duy trì cấu hình mạng đối với các giao thức này thường là lớn. Một số giao thức định tuyến điển hình theo bảng trong MANET gồm:
Giao thức định tuyến không dây WRP (Wireless Routing Protocol)
Ðịnh tuyến vector khoảng cách tuần tự đích DSDV (Destination Sequence Distance Vector)
Ðịnh tuyến trạng thái tối ưu liên kết OLSR (Optimized Link State Routing)
….
Ðịnh tuyến theo yêu cầu (reactive)
Trong phương pháp định tuyến theo yêu cầu, các đường dẫn được tìm kiếm chỉ khi cần thiết, hoạt động tìm tuyến bao gồm cả thủ tục xác định tuyến. Thủ tục tìm tuyến kết thúc khi một tuyến được tìm thấy hoặc không có tuyến khả dụng sau khi xác minh toàn bộ tập hoán vị tuyến. Trong mạng MANET, các tuyến hoạt động có thể ngừng do tính di động của node. Vì vậy, thông tin duy trì tuyến là tối quan trọng đối với các giao thức định tuyến theo yêu cầu. So với các giao thức định tuyến theo bảng, các giao thức định tuyến theo yêu cầu thường có tiêu đề trao đổi thông tin định tuyến nhỏ hơn. Vì vậy, về mặt nguyên tắc, các giao thức này có khả năng mở rộng tốt hơn so với các giao thức định tuyến theo bảng. Tuy nhiên, vấn đề lớn nhất của các giao thức định tuyến theo yêu cầu là trễ do tìm kiếm tuyến trước khi chuyển tiếp thông tin dữ liệu. Ví dụ về một số giao thức định tuyến theo yêu cầu gồm:
Giao thức định tuyến nguồn động DSR (Dynamic Source Routing)
Giao thức định tuyến vector khoảng cách theo yêu cầu AODV (Ad hoc On- demand Distance Vector routing)
Giao thức định tuyến theo thứ tự tạm thời TORA (Temporally Ordered Routing Algorithm)
Giao thức định tuyến lai ghép
Các giao thức định tuyến lai ghép được đề xuất để kết hợp các đặc tính ưu điểm của các giao thức định tuyến theo bảng và theo yêu cầu. Thông thường, các giao thức định tuyến lai ghép Manet được sử dụng trong kiến trúc phân cấp. Các giao thức định tuyến theo bảng và theo yêu cầu được triển khai trong các cấp thích hợp
Một số ví dụ về giao thức định tuyến lai ghép:
Giao thức định tuyến vùng ZRP (Zone Routing Protocol)
Giao thức định tuyến trạng thái liên kết dựa trên vùng ZHLS (Zone-based Hierarchical Link State routing)
Giao thức định tuyến mạng tuỳ biến lai HARP (Hybrid Ad hoc Routing Protocol), v.v...
Ngoài ra, chúng cũng được phân loại theo cách khác:
Link state protocol : Trong các giao thức loại này, các router sẽ trao đổi LSA (Link state advertisement) với các router khác để xây dựng và duy trì cơ sở dữ liệu về trạng thái của toàn mạng (Network topology database). Các thông tin này được trao đổi dưới dạng multicast (Một router đến nhiều router khác). Như vậy mỗi router sẽ có một cái nhìn đầy đủ và độc lập về toàn mạng (Routing table chung) và từ đó sẽ tìm cách xây dựng đường đi ngắn nhất đến đích
Distance vector protocol : Trong giao thức loại này, các router sẽ chỉ trao đổi bảng định tuyến (Routing table) riêng của mình đến các router lân cận được kết nối trực tiếp với mình. Như vậy, các router này không tự biết được đường đi đến đích, không biết các router trung gian mà phải dựa vào bảng định tuyến của router lân cận (Bị chi phối bởi các router lân cận)
Các giao thức định tuyến cơ bản
Giao thức DSDV(Destination Sequence Distance Vector)
Mô tả
DSDV là giao thức định tuyến vector khoảng cách theo kiểu từng bước: Trong mỗi nút mạng duy trì bảng định tuyến lưu trữ đích có thể đến ở bước tiếp theo của định tuyến và số bước để đến đích. DSDV yêu cầu nút mạng phải gửi đều đặn thông tin định tuyến quảng bá trên mạng
Ưu điểm của DSDV là đảm bảo không có đường định tuyến kín bằng cách sử dụng số thứ tự để đánh dấu mỗi đường. Số thứ tự cho biết mức độ “mới” của đường định tuyến, số càng lớn thì mức độ đảm bảo càng cao (đường R được coi là tốt hơn R’ nếu số thứ tự của R lớn hơn, trong trường hợp có cùng số thứ tự thì R phải có số bước nhỏ hơn). Số thứ tự sẽ tăng khi nút A phát hiện ra đường đến đích D bị phá vỡ, sau đó nút A quảng bá đường định tuyến của nó tới nút D với số bước không giới hạn và số thứ tự sẽ tăng lên
Ðặc điểm
+ DSDV phụ thuộc vào thông tin quảng bá định kỳ nên nó sẽ tiêu tốn thời gian để tổng hợp thông tin trước khi đường định tuyến được đưa vào sử dụng. Thời gian này là không đáng kể đối với mạng có cấu trúc cố định nói chung (bao gồm cả mạng có dây), nhưng với mạng Ad hoc thời gian này là đáng kể, có thể gây ra mất gói tin trước khi tìm ra được định tuyến hợp lý. Ngoài ra, bản tin quảng cáo định kỳ cũng là nguyên nhân gây ra lãng phí tài nguyên mạng
Giao thức DSR (Dynamic source routing)
Mô tả
+ Ðây là một giao thức thuộc dạng Distance Vector được dùng trong Manet. Khi một node mạng cần chuyển dữ liệu nhưng chưa biết được đường dẫn đến một địa chỉ nào đó, node mạng này bắt đầu quá trình tìm kiếm đường dẫn (Route discovery). Vì vậy, DSR là giao thức bị động (Chỉ cập nhật trạng thái mạng và tìm đường dẫn khi có yêu cầu). Một ưu điểm của DSR là không có gói tìm đường nào được phát đi định kỳ (vì không cần phải cập nhật trạng thái mạng thường xuyên – trái ngược với giao thức Link state). DSR còn có khả năng điều hành đường dẫn một chiều. Vì DSR tìm đường theo yêu cầu nên nó không thích hợp cho các mạng dung lượng lớn và có tính di động cao. Giao thức DSR cũng có hai hoạt động chính: Tìm đường và bảo trì đường dẫn (Router maintenance). Hình dưới đây cho ta thấy một ví dụ đơn giản của DSR. Router A, B và C lập thành một mạng Manet. Router A và C không kết nối với nhau trong khi cả hai cùng kết nối với router B
Hình 2.1 Mô tả giao thức DSR
Thủ tục tìm kiếm đường
+ Giả định rằng ban đầu bộ nhớ đệm trong tất cả các router đều trống (những router này chưa biết gì về sự có mặt của nhau và những đường dẫn có thể có giữa chúng). Khi router A muốn gửi dữ liệu đến router C, nó phát ra tín hiệu yêu cầu tìm đường dẫn, và quá trình tìm đường dẫn lúc này mới được kích hoạt. Router B nhận được yêu cầu của A vì nó nằm trong vùng phủ sóng của A. Router C là địa chỉ của yêu cầu đó và B chưa có thông tin nào về địa chỉ của C lúc này, vì vậy router B gắn ID của nó vào trong danh sách các router trung gian được đính kèm trong yêu cầu của A và chuyển tiếp yêu cầu đó đến những router khác. Khi C nhận được yêu cầu được gửi đến từ B, nó nhận biết rằng địa chỉ của nó trùng với địa chỉ đích đến. Vì vậy một đường dẫn từ A đến C được tìm thấy. Ðể giúp cho router nguồn (A) và những router trung gian (B) thiết lập đúng đường dẫn, router C gửi một thông điệp trả lời về A trong trường hợp đây là đường dẫn hai chiều. Quá trình này được thực hiện dễ dàng vì ID của những router trung gian đều nằm trong gói yêu cầu được gửi đến C. Những router trung gian này sẽ xây dựng cho mình bảng định tuyến ngay khi chúng nhận được trả lời từ router C. Vì vậy, một đường dẫn từ A đến C được thiết lập
Ðặc điểm
Trong quá trình tìm đường, các router duy trì danh sách ID của những router trung gian trong các yêu cầu tìm kiếm gần thời điểm đó để tránh phải xử lý cùng một yêu cầu tìm kiếm (lặp). Yêu cầu tìm kiếm bị bỏ qua trong trường hợp chúng đã được xử lý gần thời điểm đó và được xác định là một yêu cầu lặp. Khi một router nhận được yêu cầu và nhận ra rằng ID của nó đã nằm sẵn trong danh sách router trung gian của yêu cầu đó thì yêu cầu này sẽ bị bỏ qua
Quá trình bảo trì đường dẫn diển ra khi đường dẫn trở nên không thể sử dụng được vì sự di chuyển không đoán trước của các router (đặc trưng của MANET). Mỗi router quản lý tất cả đường dẫn để chuyển tiếp các gói, khi một đường dẫn hỏng, một gói báo cáo lỗi đường dẫn (Route error) lập tức được gửi về router nguồn và đường dẫn tương ứng. Vì vậy, đường dẫn bị hỏng sẽ bị bỏ qua
Ðể quản lý việc truyền gói dữ liệu điều khiển vốn không đảm bảo (topo mạng luôn thay đổi), DSR phải dựa vào giao thức ngầm định MAC (XX) để đảm bảo nơi nhận luôn nhận được dữ liệu hoặc nó sẽ gửi gói dữ liệu điều khiển một số lần nhất định. Vì DSR là một giao thức bị động, nó không thể biết được router đích bị ngắt kết nối hay yêu cầu tìm đường bị mất. Vì vậy, chi phí vận hành sẽ lớn trong trường hợp giao thức MAC không đảm bảo dữ liệu luôn tới được đích. Ðây là một vấn đề phổ biến của các giao thức bị động, bởi vì khi không nhận được trả lời từ router đích, router có giao thức bị động sẽ không thể phân biệt được hai trường hợp lỗi xảy ra trong quá trình truyền dẫn hoặc một hoặc nhiều node mạng trở nên không thể sử dụng được. Giao thức bị động thường sử dụng nhiều gói xác nhận (Acknowledgement) hoặc gửi dữ liệu đi nhiều lần để khắc phục vấn đề này, tuy nhiên phương pháp này lại làm tăng chi phí hoạt động. Giao thức chủ động phát đi các gói điều khiển định kỳ và bỏ qua các node mạng khi chúng không trả lời sau một số lần phát nhất định, vì vậy giao thức này không mắc phải vấn đề trên, tuy nhiên việc phát các gói điều khiển một cách định kỳ như vậy cũng làm tăng chi phí
ỨNG DỤNG CỦA MANET
Với sự gia tăng của thiết bị cầm tay cũng như sự tiến bộ trong thông tin không dây. Mạng di động gia tăng thêm tầm quan trọng với sự gia tăng các ứng dụng rộng rãi. Mạng di động nay có thể áp dụng ở những nơi có ít cơ sở hạ tầng hoặc không có trước cơ sở hạ tầng, hoặc những nơi có sẵn cơ sở hạ tầng đắt tiền, không tiện cho sử dụng. Mạng manet cho phép duy trì những kết nối hoặc thêm vào hay dở bỏ đi một cách dễ dàng. Những bộ ứng dụng cho các mạng manet là rất đa dạng, khoảng lệch lớn, di động, mạng có tính động cao, mạng tĩnh thường bị hạn chế bởi công suất nguồn. Bên cạnh những ứng dụng cũ trước đây trong những môi trường truyền thẳng, những ứng dụng mới sẽ được tạo ra trong những môi trường mới. Những ứng dụng điển hình bao gồm
LĨNH VỰC QUÂN SỰ
- Trang thiết bị quân sự hiện nay thường chứa một số loại thiết bị máy tính. Mạng lưới manet sẽ cho phép quân đội để tận dụng lợi thế của công nghệ mạng phổ biến để duy trì một thông tin mạng lưới giữa những người lính, xe cộ, và thông tin từ bộ chỉ huy. Các kỹ thuật cơ bản của mạng ad hoc đến từ lĩnh vực này
LĨNH VỰC THƯƠNG MẠI
- MANET có thể sử dụng trong cứu hộ nhằm nỗ lực cứu trợ những thiên tai. Vd: hoả hoạn, lũ lụt, động đất… Lĩnh vực cứu hộ làm việc trong môi trường khắc nhiệt và nguy hiểm cho hạ tầng thông tin và tốc độ triển khai hệ thống nhanh thì cần thiết. Thông tin được chuyển tiếp với các thành viên trong nhóm cứu hộ với nhau bằng một thiết bị nhỏ cầm tay
NỘI BỘ
- Mạng manet có thể chủ động liên kết một mạng lưới đa phương tiện tức thời và tạm thời nhờ sử dụng máy tính xách tay để truyền bá và chia sẽ thông tin giữa các đại biểu tham dự như một hội nghị, lớp học. Một cách sử dụng khác của loại mạng này là sử dụng trong gia đình để trao đổi trực tiếp thông tin với nhau. Tương tự như vậy trong các lĩnh vực khác như taxi dân sự, thể thao, sân vận động, thuyền và máy bay nhỏ…
PERSONAL ARE NETWORK (PAN):
- MANET tầm ngắn có thể đơn giản hoá việc truyền thông giữa các thiết bị di động ( PDA, laptop, cellphone). Những dây cáp được thay thế bằng việc kết nối vô tuyến. Mạng manet cũng có thể mở rộng chức năng truy cập Internet như các mạng khác ví dụ như WLAN, GPRS, và USTM. PAN là một lĩnh vực có tiềm năng ứng dụng đầy hứa hẹn của Manet phổ biến trong tương lai
Hình 3.1 Ứng dụng PAN
MÔ PHỎNG MẠNG DÙNG NS2
CÔNG CỤ MÔ PHỎNG NS2
Tổng quan về NS2
NS2- Network Simulator Version 2: là phần mền mô phỏng mạng điều khiển sự kiện riêng rẽ hướng đối tượng, được phát triển tại UC Berkely, viết bằng ngôn ngữ C++ và Otcl. Được sử dụng rất phổ biến trong các nghiên cứu khoa học về mạng ( rất hữu ích cho việc mô phỏng mạng diện rộng WAN và mạng local LAN)
Mục đích của NS-2 là tạo ra một môi trường giả lập cho việc nghiên cứu, kiểm tra, thiết kế các giao thức, các kiến trúc mới, so sánh các giao thức và tạo ra các mô hình mạng phức tạp
Phiên bản thứ nhất của NS được phát triển vào năm 1995 và phiên bản thứ hai ra đời năm 1996. NS-2 là phần mềm mã nguồn mở có thể chạy được trong môi trường Linux và Window
Kiến trúc của NS2
NS thực thi các giao thức mạng như giao thức điều khiển truyền tải (TCP) và giao thức gói thường dùng (UDP), các dịch vụ nguồn lưu lượng như giao thức truyền tập tin (FTP), tốc độ bit cố định (CBR) và tốc độ bit thay đổi (VBR)
Các kỹ thuật quản lý hàng đợi như vào trước ra trước (Drop Tail), dò sớm ngẫu nhiên (RED) và CBQ, các thuật toán định tuyến như Dijkstra…NS cũng thực thi multicasting và vài giao thức lớp Điều khiển truy cập đường truyền (MAC) đối với mô phỏng LAN
Hình 4.1 Mô hình đơn giản của NS
Otcl Kịch bản OTcl
Simulation Program Chương trình Mô phỏng
OTcl Bộ biên dịch Tcl mở rộng hướng đối tượng
NS Simulation Library Thư viện mô phỏng NS
Event Scheduler Objects Các đối tượng Bộ lập lịch sự 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 Các kết quả Mô phỏng
Analysis Phân tích
NAM Network Animator Minh hoạ Mạng NAM
NS-2 bao gồm:
Các đối tượng Bộ lập lịch sự 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 (modun Plumbing)
Để sử dụng NS-2, user lập trình bằng ngôn ngữ kịch bản OTcl. User có thể thêm các mã nguồn Otcl vào NS-2 bằng cách viết các lớp đối tượng mới trong Otcl. Những lớp này khi đó sẽ được biên dịch cùng với mã nguồn gốc
Kịch bản OTcl có thể thực hiện những việc sau:
Khởi tạo Bộ lập lịch sự kiện
Thiết lập Mô hình mạng dùng các đối tượng Thành phần mạng
Báo cho nguồn traffic khi nào bắt đầu truyền và ngưng truyền packet trong Bộ lập lịch sự kiện
Bộ lập lịch sự kiện trong NS2 thực hiện những việc sau:
Tổ chức bộ định thời mô phỏng
Huỷ các sự kiện trong hàng đợi sự kiện
Triệu gọi các Thành phần mạng trong mô phỏng
Phụ thuộc vào mục đích của User đối với kịch bản mô phỏng OTcl mà kết quả mô phỏng có thể được lưu trữ như file trace
File name trace ( file.nam) được dùng cho công cụ Minh hoạ mạng Nam
File Trace (file.tr) được dùng cho công cụ Lần vết và Giám sát Mô phỏng XGRAPH hay TRACEGRAPH
Hình 4.2 Luồng các sự kiện cho file Tcl chạy trong Nam
Trong mô phỏng mạng dùng NS2 sử dụng:
NAM Visual Simulation: Mô phỏng ảo NAM
Tracing and Monitoring Simulation: Mô phỏng lần vết và Giám sát
Hình 4.3 Kiến trúc của NS2
Hình trên biểu diễn kiến trúc của NS-2. User có thể tưởng tượng mình đang đứng ở góc trái dưới, thiết kế và chạy các mô phỏng trong Tcl. Tcl dùng các đối tượng mô phỏng trong OTcl. Các đối tượng Bộ lập lịch sự kiện và các đối tượng thành phần mạng thực thi bằng C++ và sẵn có cho OTcl qua một liên kết OTcl. Liên kết OTcl này được thực thi dùng TclCL. Tất cả đã làm nên NS, bộ biên dịch Tcl mở rộng hướng đối tượng và các thư viện mô phỏng mạng
NS sử dụng hai ngôn ngữ lập trình: Ngôn ngữ kịch bản OTcl và ngôn ngữ lập trình hệ thống C++
NS là tầng biên dịch Tcl để chạy các kịch bản Tcl
Bằng cách sử dụng C++/OTcl, bộ mô phỏng mạng phải hoàn toàn là hướng đối tượng
Hình 4.4 TclCL hoạt động như liên kết giữa A và B
TclCL là ngôn ngữ được sử dụng để cung cấp liên kết giữa C++ và OTcl. Các kịch bản Tcl/OTcl được viết để thiết lập và cấu hình topology của mạng. TclCL cung cấp liên kết giữa phân cấp lớp, khởi tạo đối tượng, nối kết biến và gửi lệnh
NS phải sử dụng đến 2 ngôn ngữ vì Bộ mô phỏng cần thực hiện hai việc khác nhau:
Việc 1: Các mô phỏng cho các giao thức yêu cầu một ngôn ngữ lập trình hệ thống có thể tính toán hiệu quả các byte, các tiêu đề packet và các thuật toán thực thi đang chạy trên một tập dữ liệu lớn. Với tác vụ này, run-time speed (tốc độ thời gian chạy thực) là quan trọng trong khi turn – around time ( thời gian thay đổi) thì ít quan trọng hơn. Turn- around time bao gồm thời gian chạy mô phỏng, thời gian tìm lỗi, thời gian sửa lỗi, thời gian biên dịch lại và thời gian chạy lại
Việc 2: Khi nghiên cứu mạng thì rất cần quan tâm đến các tham số và cấu hình có thay đổi nhưng không đáng kể, hay quan tâm đến các scenario ( tình huống) cần khám phá thật nhanh chóng. Trong tác vụ này thì iteration time ( thời gian lặp lại, tức là thời gian thay đổi mô hình và chạy lại) là quan trọng hơn. Vì cấu hình chỉ chạy một lần lúc bắt đầu mô phỏng nên run-time trong tác vụ này rõ ràng kém quan trọng hơn
Vì thế mà dùng C++ để:
Mô phỏng giao thức chi tiết theo yêu cầu ngôn ngữ lập trình hệ thống
Thao tác trên byte, xử lý gói, thực thi thuật toán
Tốc độ thời gian thực là quan trọng nhất
Thực hiện bất kỳ việc gì mà cần phải xử lý từng packet của một luồng
Thay đổi hành vi của lớp C++ đang tồn tại theo những hướng đã không được lường trước
Dùng OTcl để:
Mô phỏng những thông số hay cấu hình thay đổi
Cấu hình, thiết lập những gì chỉ làm 1 lần
Thực hiện những cái ta muốn bằng cách thao tác trên các đối tượng C++ đang tồn tại
Đặc điểm của NS-2
NS-2 thực thi những tính năng sau:
Các kỹ thuật quản lý hàng đợi Router như DropTail, RED, CBQ
Multicasting
Mô phỏng mạng không dây
Hành vi nguồn traffic –www, CBR, VBR
Các agent truyền tải - UDP, TCP
Định tuyến
Luồng Packet
Mô hình mạng
Các ứng dụng – Telnet, FTP, Ping
Các Packet tracing trên tất cả các link và trên các link xác định
Lợi ích của NS-2:
Khả năng kiểm tra tính ổn định của các giao thức mạng đang tồn tại
Khả năng đánh giá các giao thức mạng mới trước khi đưa vào sử dụng
Khả năng thực thi những mô hình mạng lớn mà gần như ta không thể thực thi được trong thực tế
Khả năng mô phỏng nhiều loại mạng khác nhau
Giới thiệu phần mềm NAM dùng kết hợp với NS-2
Các tính năng của Nam:
Cung cấp trình diễn ảo cho mạng đã được tạo
Có thể thi hành trực tiếp từ kịch bản Tcl
Nam có giao diện đồ hoạ bắt mắt của CD player với các điều khiển bao gồm play, stop, fast forward, rw, pause …
Biểu diễn thông tin như số packet trên từng link
Cung cấp giao diện rê và thả cho việc tạo ra các topology
Hình 4.5 Giao diện đồ hoạ Nam
Các chức năng của Nam trong giao diện đồ hoạ người dùng
Cửa sổ Nam Console: Sau khi khởi động Nam, cửa sổ Nam console xuất hiện. Trong cửa sổ Nam Console có hai menu chính‘File’và ‘Help’
Trong menu File có:
Tạo mới một topology ns dùng chương trình soạn thảo Nam
Open: Mở các file trace đã tồn tại (mở cửa sổ minh hoạ Nam)
WinList: Mở cửa sổ liệt kê tên của tất cả các file trace đang mở
Quit: Thoát khỏi Nam
Trong menu Help: Các trợ giúp đơn giản, xem phiên bản, thông tin về bản quyền
Cửa sổ minh hoạ Nam: Khi một file trace được tải vào Nam (File/Open) thì cửa sổ minh hoạ Nam xuất hiện. Giao diện chính có Menu File, Views, Analysis
Hình 4.6 Cửa sổ Nam console
Hình 4.7 Cửa sổ minh hoạ Nam
SỬ DỤNG OTCL SCRIPT ĐỂ VIẾT CÁC KỊCH BẢN MÔ PHỎNG MẠNG TRONG NS-2
.Tổng quan về OTCL SCRIPT
- NS là trình biên dịch OTcl với các thư viện đối tượng mô phỏng mạng. Ví dụ sau giúp chúng ta tiếp cận với Otcl
- Chạy ví dụ này bằng cách gõ lệnh “ns ns-simple.tcl”
Hình 4.8 Topology đơn giản và kịch bản mô phỏng.
- Mạng trên gồm 4 node (n0, n1, n2, n3). Duplex-link (liên kết truyền dữ liệu hai chiều diễn ra đồng thời) giữa node n0 và n2, n1 và n2 có bandwith= 2Mbps, delay=10ms. Duplex-link giữa n2 và n3 có bandwidth=1.7Mbps, và delay=20ms. Các node dùng hàng đợi DropTail, maxsize=10
- Agent “tcp” gắn với n0 và agent “sink” gắn với n3. Agent “tcp” có thể tạo packet với maxsize=1 Kbyte. Agent tcp “sink” tạo và gửi packet dạng ACK cho sender (sender là agent gửi packet đi) và giải phóng packet nhận được. Agent “udp” gắn với n1 sẽ kết nối với agent “null” gắn với n3. Agent “null” chỉ giải phóng packet đã nhận được. Bộ khởi tạo lưu lượng “ftp” và “cbr” tương ứng được gắn vào agent “tcp” và “udp”. “cbr” được cấu hình để tạo ra packet 1 Kbyte tại tốc độ 1 Mbps. “cbr” được thiết lập cho start bắt đầu tại thời điểm 0.1 giây và kết thúc tại thời điểm 4.5 giây, “ ftp” bắt đầu lúc 1.0 giây và kết thúc lúc 4.0 giây
#Create a simulator object
set ns [new Simulator]
#Define different colors for data flows (for NAM)
$ns color 1 Blue
$ns color 2 Red
#Open the NAM trace file
set nf [open out.nam w]
$ns namtrace-all $nf
#Define a 'finish' procedure
proc finish {} {
global ns nf
$ns flush-trace
#Close the NAM trace file
close $nf
#Execute NAM on the trace file
exec nam out.nam &
exit 0
}
#Create four nodes
set n0 [$ns node]
set n1 [$ns node]
set n2 [$ns node]
set n3 [$ns node]
#Create links between the nodes
$ns duplex-link $n0 $n2 2Mb 10ms DropTail
$ns duplex-link $n1 $n2 2Mb 10ms DropTail
$ns duplex-link $n2 $n3 1.7Mb 20ms DropTail
#Set Queue Size of link (n2-n3) to 10
$ns queue-limit $n2 $n3 10
#Give node position (for NAM)
$ns duplex-link-op $n0 $n2 orient right-down
$ns duplex-link-op $n1 $n2 orient right-up
$ns duplex-link-op $n2 $n3 orient right
#Monitor the queue for link (n2-n3). (for NAM)
$ns duplex-link-op $n2 $n3 queuePos 0.5
#Setup a TCP connection
set tcp [new Agent/TCP]
$tcp set class_ 2
$ns attach-agent $n0 $tcp
set sink [new Agent/TCPSink]
$ns attach-agent $n3 $sink
$ns connect $tcp $sink
$tcp set fid_ 1
#Setup a FTP over TCP connection
set ftp [new Application/FTP]
$ftp attach-agent $tcp
$ftp set type_ FTP
#Setup a UDP connection
set udp [new Agent/UDP]
$ns attach-agent $n1 $udp
set null [new Agent/Null]
$ns attach-agent $n3 $null
$ns connect $udp $null
$udp set fid_ 2
#Setup a CBR over UDP connection
set cbr [new Application/Traffic/CBR]
$cbr attach-agent $udp
$cbr set type_ CBR
$cbr set packet_size_ 1000
$cbr set rate_ 1mb
$cbr set random_ false
#Schedule events for the CBR and FTP agents
$ns at 0.1 "$cbr start"
$ns at 1.0 "$ftp start"
$ns at 4.0 "$ftp stop"
$ns at 4.5 "$cbr stop"
#Detach tcp and sink agents (not really necessary)
$ns at 4.5 "$ns detach-agent $n0 $tcp ; $ns detach-agent $n3 $sink"
#Call the finish procedure after 5 seconds of simulation time
$ns at 5.0 "finish"
#Print CBR packet size and interval
puts "CBR packet size = [$cbr set packet_size_]"
puts "CBR interval = [$cbr set interval_]"
#Run the simulation
$ns run
Kết quả của kịch bản trên là
Hình 4.9 Minh họa NAM cho kịch bản Otcl
Đầu tiên là quá trình thiết lập mạng cơ bản. NS Script bắt đầu bằng việc tạo ra một instance cho đối tượng Simulator ( đối tượng mô phỏng)
set ns [new Simulator] :
Tạo instance của Simulator, gán vào biến ns. Dòng này sẽ thực hiện lệnh
Khởi tạo định dạng packet
Tạo bộ lập lịch ( mặc định là Calender scheduler – Bộ lập lịch thời gian)
Đối tượng “ Simulator” có các hàm thành viên thực hiện những việc sau
Tạo đối tượng ghép như các node và các link
Connect (nối) các đối tượng thành phần mạng đã được tạo lại với nhau ( ví dụ hàm attach-agent)
Gán giá trị cho các tham số cho các đối tượng thành phần mạng ( thường là cho các đối tượng ghép)
Tạo các connection giữa các agent ( ví dụ tạo connection giữa “tcp” và “sink”)
Xác định tuyến tuỳ chọn trình diễn Nam
Hầu hết các hàm thành viên dùng cho mục đích thiết lập mô phỏng ( được đề cập đến như các hàm plumbing) và cho mục địch lập lịch. Tuy nhiên cũng có những hàm cho việc trình diễn bằng Nam. Các thực thi cho các hàm thành viên của đối tượng “Simulator” được định vị trong file “ns-2/tcl/lib.ns-lib.tcl”
$ns color fid color:
Gán màu các packet cho luồng có mã nhận dạng luồng fid. Hàm thành viên này của đối tượng Simulator được dùng cho việc trình diễn NAM, và không có tác dụng gì trên mô phỏng thực tế
$ns namtrace-all file-descriptor:
Hàm thành viên này yêu cầu mô phỏng lưu lại các dấu vết mô phỏng vào trong định dạng đầu vào cho NAM. Đồng thời có thể cung cấp tên file mà trace ( dấu vết) sẽ được ghi vào bằng lệnh $ns flush-trace tương tự, hàm thành viên trace-all dùng lưu trace theo định tuyến dạng chung
proc finish{}:
Hàm được gọi sau khi mô phỏng đã kết thúc. Trong hàm này các tiến trình post-simulation ( mô phỏng thông báo được xác định)
set n0 [$ns node]:
Hàm thành viên Node khởi tạo một node. Node trong NS là đối tượng ghép bao gồm address (địa chỉ) và port classifiers (bộ phân loại cổng). User có thể tạo node bằng cách tạo riêng đối tượng address và port classifier và nối chúng lại với nhau. Tuy nhiên các hàm thành viên của đối tượng Simulator đã thực hiện việc này rất đơn giản. Xem file “C:\cygwin\usr\local\ns-allinone-2.29.3\ns-allinone-2.29\ns-2.29\tcl\lib\ ns-node.tcl” để viết Simulator tạo node như thế nào
$ns duplex-link node1 node2 bandwidth delay queue-type:
Tạo 2 simplex link (liên kết đơn) với bandwidth và delay xác định tuyến, nối hai node xác định lại với nhau. Trong NS, hàng đợi đầu ra của node được thực thi như một phần của link, vì vậy user nên xác định luôn queue-type khi khởi tạo link. Giống như node, link là đối tượng ghép, user có thể tạo và nối các link với các node. Mã nguồn link được tìm trong file ““C:\cygwin\usr\local\ns-allinone-2.29.3\ns-allinone-2.29\ns-2.29\tcl\lib\ns-lib.tcl” và “C:\cygwin\usr\local\ns-allinone-2.29.3\ns-allinone-2.29\ns-2.29\tcl\lib\ ns-link.tcl”
+ $ns queue-limit node1 node2 number:
Xác định giới hạn hàng đợi của hai simplex link kết nối node1 và node2 với nhau
+ $ns duplex-link-op $n0 $n2 orient right-down:
Dùng cho Nam
Quá trình tiếp theo là thiết lập các agent như FTP, CBR, connect các agent với các node và connect các nguồn traffic với các agent
set tcp [new Agent/TCP]:
Lệnh tạo ra một agent TCP và đây cũng là cách để tạo ra bất kỳ agent hay nguồn traffic nào. Các agent và các nguồn traffic chứa trong các đối tượng cơ bản thực (không phải trong đối tượng kép), hầu như được thực thi trong C++ và được liên kết đến OTcl. Vì vậy, không có hàm thành viên nào của một đối tượng Simulator xác định là có thể tạo ra instance của các đối tượng này. Để tạo ra được Agent và nguồn lưu lượng thì user cần phải biết tên lớp của các đối tượng này (Agent/TCP, Agent/TCPSink, Application/FTP…). Xem thêm trong file “C:\cygwin\usr\local\ns-allinone-2.29.3\ns-allinone-2.29\ns-2.29\tcl\lib\ns default.tcl”. File này chứa các thiết lập giá trị tham số cấu hình mặc định cho các đối tượng mạng sẵn có
$ns attach-agent node agent:
Hàm thành viên attach-agent gắn agent vào node. Hàm này sẽ gọi hàm thành viên attach của một node xác định tuyến, để gắn agent vào node đó. Vì vậy, user có thể làm tương tự, như $n0 attach $tcp chẳng hạn. Ngoài ra, một agent có thể dùng hàm attach của nó để gắn một nguồn traffic vào chính nó
$ns connect agent1 agent2:
Hàm thiết lập liên kết luận lý giữa hai agent, bằng cách thiết lập địa chỉ đích đến mạng của nhau và cặp địa chỉ cổng
Bây giờ giả sử rằng tất cả cấu hình mạng đã được thực hiện. Tiếp theo là ghi kịch bản mô phỏng. Đối tượng Simulator hiện có nhiều hàm thành viên lập lịch
$ns at time “string”:
Hàm này yêu cầu scheduler (bộ lập lịch) lập lịch cho “string” thực thi vào thời gian time. Trong NS, thực tế thì nguồn traffic không truyền dữ liệu thật, nhưng nó lại thông báo cho agent phía dưới rằng nó có dữ liệu cần truyền. Khi đó agent sẽ tạo ra packet để truyền dữ liệu ấy đi
Cuối cùng là chạy mô phỏng bằng lệnh $ns run
Khởi tạo node
Trong NS có hai loại node:
Node unicast có một address classifier ( bộ phân loại địa chỉ) làm nhiệm vụ định tuyến tuyến unicast và một port classifier ( bộ phân loại cổng)
Node multicast có thêm một classifier (bộ phân loại) làm nhiệm vụ phân loại các packet multicast với các packet unicast
Trong NS, các node unicast là node mặc định. Để tạo node multicast user phải thông báo tường minh trong kịch bản OTcl đầu vào rằng tất cả các node sẽ được tạo ra là node multicast, ngay sau khi user tạo ra đối tượng lập lịch
Hình 4.10 Node Unicast và node Multicast
Đối tượng mô phỏng node được dùng để khởi tạo một node. Hai node được tạo với điều khiển n0,n1
set n0 [$ns node]
set n1 [$ns node]
Thiết lập màu cho node bằng lệnh:
$n0 color
Khởi tạo liên kết
Tạo link một chiều giữa 2 node bằng lệnh:
$ns simplex-link $n0 $n1
Và link hai chiều giữa hai node bằng lệnh:
$ns duplex-link $n0 $n1
Giá trị bandwidth và delay tương ứng có thể là 1Mb và 10ms. NS2 hỗ trợ nhiều giá trị queue_type như RED, Drop Tail…
Hình 4.11 Biểu diễn link giữa 2 node
Khởi tạo Network Agent
Hai lớp Agent và Application sẽ tạo nên traffic trong NS-2. Mỗi node trong mạng muốn gửi và nhận tracffic thì phải có Agent gắn vào nó. Trên đỉnh của Agent chạy Application
Có 2 loại Agent trong NS-2 là agent UDP và agent TCP:
UDP:
set udp0 [new Agent/UDP]
set null [new Agent/Null]
$ns attach-agent $n0 $udp0
$ns attach-agent $n1 $null
$ns connect $udp0 $null
Đoạn mã trên tạo Agent UDP và gắn vào node n0 bằng thủ tục attach-agent. Tạo ra agent Null, hoạt động như một traffic sink và gắn vào node n1. Hai agent được nối lại bằng phương thức connect
TCP:
set tcp [new Agent/TCP]
set tcp_sink [new Agent/TCPSink]
$ns attach-agent $n0 $tcp
$ns attach-agent $n1 $tcp_sink
$ns connect $tcp $tcp_sink
Đoạn mã trên tạo agent TCP và gắn vào node TCP dùng thủ tục attach-agent. Agent TCPSink hoạt động như một TCP sink và gắn vào tcp_sink. Hai agent nối với nhau bằng phương thức connect. Các loại TCP có sẵn trong NS-2 là: TCP, TCP/Reno, TCP/Vegas, TCP/Sack1, TCP/Fact, TCPSink
Các loại traffic
Có 4 loại traffic application ( ứng dụng lưu lượng) có thể gắn vào agent UDP để mô phỏng lưu lượng mạng: CBR, Exponential, Pareto, TrafficTrace
Các dịch vụ cơ bản trong internet
Hai application mô phỏng gửi traffic trên đỉnh đối tượng TCP là :Application/FTP và Application/Telnet
Giao thức truyền tin FTP:
set ftp [new Application/FTP]
$ftp attach-agent $tcp
$ns at “$ftp start”
Các tham số:
attach-agent: gắn Application/FTP vào một agent
start: khởi động Application/FTP truyền dữ liệu
stop: ngưng truyền dữ liệu
produre n: n là bộ đếm số packet được truyền
producemore n: n là giá trị số packet vừa mới tăng được truyền
send n: tương tư như produremore, nhưng gửi n byte thay vì n packet
Telnet
set telnet [new Application/Telnet]
$telnet attach-agent $tcp
Các tham số cấu hình:
interval_: thời gian đến nội (inter-arrival) trung bình của packet được tạo bởi đối tượng Telnet
if (interval_==0) Số lần đến nội theo phân bố tcplib
if (interval_!=0) Số lần đến nội theo phân bố mũ, giá trị trung bình được gán bằng giá trị interval_
TraceGraph bộ phân tích file trace
Tracegraph chạy trong hệ điều hành Windows, Linux, Unix và yêu cầu hệ thống có cài đặt Matlab 6.0( Hoặc các phiên bản cao hơn)
Tracegraph hỗ trợ các định dạng file trace như sau:
Wired ( có dây)
Satellite (vệ tinh)
Wireless (không dây)
Tracegraph phiên bản 2.02 có các tính năng sau:
238 đồ thị 2D (hai chiều)
12 đồ thị 3D ( ba chiều)
Các đồ thị và các thống kê về Delay (trì hoãn), jitter (độ rung pha), processing times (số lần xử lý), Round Trip Times (số lần khứ hồi), intermediate nodes (số node trung gian) throughput (thông lượng)
Các đồ thị và các thống kê cho toàn network, link và node
Tất cả các kết quả có thể được lưu vào fiel dạng text, các đồ thị có thể lưu dưới dạng file tiff
Thông tin của trục x, y, z: minimum ( giá trị nhỏ nhất), mean (giá trị trung bình), maximum ( giá trị lớn nhất), standard deviation (độ lệch tiêu chuẩn) và median ( số trung bình)
Nếu các đồ thị lưu trong file text thì trong file này có thể dựa vào thông tin hai hay 3 cột để vẽ lại đồ thị
Xử lý các file kịch bản để phân tích một cách tự động
Hình 4.12 Giao diện đồ hoạ người dùng TraceGraph
Trong NS2, các hoạt động mạng được trace ( lưu dấu) trong các simplex link. Nếu mô phỏng được chỉ trực tiếp đến các hoạt động trace ( bằng lệnh $ns trace-all file hay $ns namtrace-all file) thì các link sẽ có các đối tượng trace được chèn thêm vào. User cũng có thể tạo đối tượng trace với loại xác định để lưu vết mạng từ nguồn đến đích bằng lệnh create-trace {type file src dst}
Khi từng đối tượng được chèn thêm đối tượng trace (EnqT, DeqT, DrpT, RecvT) nhận packet, nó sẽ ghi vào file trace xác định mà không tiêu tốn thời gian mô phỏng. Và truyền packet đến đối tượng mạng kế tiếp
Hình 4.13 Chèn đối tượng Trace
Trace file có tất cả các thông tin để thực hiện minh hoạ - vừa trên sơ đồ biểu diễn mạng tĩnh vừa trên các sự kiện động như sự kiện packet arival( gói đến), packet departure ( gói xuất phát), packet drop (huỷ bỏ gói), và link failre ( hỏng liên kết)
Mã Otcl thực thi Tracing trong mô phỏng
set trace_file [open out.tr w]
$ns trace-all $trace_file
$ns flush-trace
close $trace_file
File trace chuẩn trong NS-2 và định dạng của file này như sau:
Hình 4.14 Định dạng file Trace
event: thao tác được thực hiện trong mô phỏng
time: thời gian xuất hiện sự kiện
from node: node 1 là node được trace
to node: node 2 là node được trace
pkt type: loại packet
pkt size: kích cỡ packet
flags: cờ
fid: mã luồng
src addr: địa chỉ node nguồn
dst addr: địa chỉ node đích
seq num: số trình tự
pkt id: mã packet duy nhất
KẾT LUẬN
? Kết quả đạt được
Nắm được kiến thức chung về mạng MANET
Nắm được cách thức để mô phỏng mạng bằng phần mềm NS-2
? Hạn chế
Tuy đã cố gắng tìm hiểu cách mô phỏng mạng MANET bằng phần mềm NS-2 song vẫn chưa thể thực hiện một cách cụ thể và hoàn chỉnh
? Hướng phát triển
Trong thời gian tới sẽ tiếp tục thực hiện mô phỏng mạng MANET một cách hoàn chỉnh và cụ thể
TÀI LIỆU THAM KHẢO
? Tài liệu tiếng Việt
[1]. Ngô Thị Thu Hà, khóa luận tốt nghiệp, Đại học Sư Phạm Hà Nội
[2]. dv1k1_nhom7_MANET, khóa luận tốt nghiệp, Học Viện Hàng Không Việt Nam
? Tài liệu tiếng Anh
[3]. Kamanshis Biswas and Md. Liakat Ali, Security Threats in Mobile Ad Hoc Network
[4]. Karthik sadasivam, Tutorial for Simulation-based Performance Analysis of MANET Routing Protocols in ns-2
? Internet
[5].
[6].
[7].
[8].
Ý KIẾN CỦA GIẢNG VIÊN HƯỚNG DẪN
Các file đính kèm theo tài liệu này:
- Dasua-Tran Huu Nghi.manet.doc