Đề tài Tìm hiểu và thực hiện mô phỏng mạng Manet

MỤC LỤC

LỜI CẢM ƠN i

MỤC LỤC ii

DANH MỤC CÁC TỪ VIẾT TẮT iv

DANH MỤC HÌNH ẢNH v

LỜI MỞ ĐẦU vi

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 ĐỘNG 4

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ất 4

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ẾN 9

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ẾN 10

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-2 25

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ết 32

4.2.4. Khởi tạo Network Agent 32

4.2.5. Các loại traffic 33

4.2.6. Các dịch vụ cơ bản trong internet 33

4.3. TraceGraph bộ phân tích file trace 34

KẾT LUẬN 37

TÀI LIỆU THAM KHẢO 38

 

 

doc45 trang | Chia sẻ: netpro | Ngày: 11/04/2013 | Lượt xem: 4858 | Lượt tải: 30download
Bạn đang xem nội dung tài liệu Đề tài Tìm hiểu và thực hiện mô phỏng mạng Manet, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
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 at

Các file đính kèm theo tài liệu này:

  • docDasua-Tran Huu Nghi.manet.doc