MỤC LỤC
TÓM TẮT
DANH MỤC HÌNH VẼ
DANH MỤC BẢNG
BẢNG CÁC KÝ HIỆU, CHỮ VIẾT TẮT
LỜI CẢM ƠN
Chương 1. GIỚI THIỆU 1
1.1. Sự ra đời và phát triển của các mạng không dây 1
1.2. Mục tiêu nghiên cứu của khóa luận 4
1.3. Công cụ nghiên cứu chính – NS-2 5
1.3.1. Giới thiệu về NS-2 5
1.3.2. Khả năng mô phỏng của NS-2 7
1.4. Tổ chức của KLTN 8
Chương 2. GIAO THỨC MAC CỦA MẠNG LAN VÀ WLAN 9
2.1. Mạng LAN và mạng WLAN 9
2.2. Chuẩn 802.3 và giao thức CSMA/CD 10
2.3. Chuẩn 802.11 và giao thức CSMA/CA 12
Chương 3. MẠNG MANET VÀ BÀI TOÁN ĐỊNH TUYẾN 15
3.1. Mạng MANET 15
3.1.1. Lịch sử phát triển và các ứng dụng 15
3.1.2. Các đặc điểm chính của mạng MANET 16
3.2. Vấn đề định tuyến trong mạng MANET 17
3.2.1 Các thuật toán định tuyến truyền thống 17
3.2.2. Các yêu cầu chính đối với việc định tuyến trong mạng MANET 18
3.2.3. Phân loại các kỹ thuật định tuyến 19
3.2.3.1. Link state và Distance Vector 19
3.2.3.2. Định tuyến chủ ứng và phản ứng 20
3.2.3.3. Định tuyến nguồn và định tuyến theo chặng 21
3.3. Các giao thức định tuyến chính trong mạng MANET 22
3.3.1. DSDV 22
3.3.2 OLSR [8] 23
3.3.3. AODV [12] 25
3.3.4. DSR [7] 27
3.3.5. TORA [11] 28
Chương 4. ĐÁNH GIÁ BẰNG MÔ PHỎNG ẢNH HƯỞNG CỦA SỰ CHUYỂN ĐỘNG CỦA CÁC NÚT MẠNG ĐẾN HIỆU SUẤT CỦA MỘT SỐ GIAO THỨC ĐỊNH TUYẾN 30
4.1. Xác định các tham số hiệu suất cần đánh giá và cách thức phân tích kết quả mô phỏng 30
4.1.1. Các tham số hiệu suất cần đánh giá 30
4.1.2. Cách thức phân tích kết quả mô phỏng của NS-2 30
4.1.2.1. Cấu trúc tệp vết 30
4.1.2. Công cụ để phân tích và biểu diễn kết quả mô phỏng 33
4.1.2.1. Perl 33
4.1.2.2. GNUPLOT 33
4.2. Thiết lập mạng mô phỏng MANET 35
4.2.1. Thiết lập tô-pô mạng 35
4.2.2. Thiết lập mô hình chuyển động của các nút mạng và thời gian mô phỏng 36
4.2.2.1. Mô hình Random Waypoint 37
4.2.2.2. Mô hình Random Walk 38
4.2.3 Thiết lập các nguồn sinh lưu lượng đưa vào mạng 39
4.2.4. Lựa chọn thời gian mô phỏng 40
4.3. Thực hiện mô phỏng các giao thức định tuyến 40
4.3.1. Phân tích kết quả bằng công cụ perl 40
4.3.2. Sử dụng gnuplot để vẽ đồ thị 44
4.4. Đánh giá ảnh hưởng của sự chuyển động của nút mạng đến hiệu suất của các giao thức định tuyến 47
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 49
TÀI LIỆU THAM KHẢO 51
PHỤ LỤC 53
1. Bảng các trường phụ thêm vào trong cấu trúc tệp vết phụ thuộc vào kiểu gói tin 53
2. Mô phỏng mạng MANET 56
3. Tỷ lệ phân phát gói tin thành công 58
4. Thời gian thiết lập kết nối 59
69 trang |
Chia sẻ: netpro | Lượt xem: 2436 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Khóa luận Khảo sát ảnh hưởng của sự chuyển động các nút mạng đến hiệu suất của một số giao thức định tuyến trong Manet, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
uting protocols)
Khi áp dụng các thuật toán trạng thái kết nối, mỗi nút sử dụng dữ liệu cơ sở của nó như là một bản đồ của mạng với dạng một đồ thị. Để làm điều này, mỗi nút phát đi tới toàn mạng những thông tin về các nút khác mà nó có thể kết nối được, và từng nút góp thông tin một cách độc lập vào bản đồ. Sử dụng bản đồ này, mỗi nút sau đó sẽ xác định được tuyến đường tốt nhất từ nó đến mọi nút khác.
Thuật toán đã làm theo cách này là Dijkstra, bằng cách xây dựng cấu trúc dữ liệu khác, dạng cây, trong đó nút hiện tại là gốc, và chứa mọi nút khác trong mạng. Bắt đầu với một cây ban đầu chỉ chứa chính nó. Sau đó lần lượt từ tập các nút chưa được thêm vào cây, nó sẽ thêm nút có chi phí thấp nhất để đến một nút đã có trên cây. Tiếp tục quá trình đến khi mọi nút đều được thêm vào cây.
Cây này sau đó phục vụ để xây dựng bảng định tuyến, đưa ra bước truyền kế tiếp tốt ưu, … để từ một nút đến bất kỳ nút khác trên mạng.
So sánh các thuật toán định tuyến
Các giao thức định tuyến theo thuật toán vector khoảng cách đơn giản và hiệu quả hơn trong các mạng nhỏ, đòi hỏi ít (nếu có) sự giám sát. Tuy nhiên nhược điểm của nó là khả năng hội tụ chậm khi mạng lớn và thay đổi, điều này dẫn đến sự phát triển của các thuật toán trạng thái kết nối tuy phức tạp hơn nhưng tốt hơn để dùng trong các mạng lớn.
Ưu điểm chính của định tuyến bằng trạng thái kết nối là phản ứng nhanh nhạy hơn, và trong một khoảng thời gian có hạn, đối với sự thay đổi kết nối. Ngoài ra, những gói được gửi qua mạng trong định tuyến bằng trạng thái kết nối thì nhỏ hơn những gói dùng trong định tuyến bằng vector. Định tuyến bằng vector đòi hỏi bảng định tuyến đầy đủ phải được truyền đi, trong khi định tuyến bằng trạng thái kết nối thì chỉ có thông tin về “hàng xóm” của nút được truyền đi. Vì vậy, các gói này dùng tài nguyên mạng ở mức không đáng kể. Khuyết điểm chính của định tuyến bằng trạng thái kết nối là nó đòi hỏi nhiều sự lưu trữ và tính toán để chạy hơn định tuyến bằng vector.
3.2.3.2. Định tuyến chủ ứng và phản ứng
Các giao thức định tuyến trong mạng MANET được người ta phân chia thành các loại: định tuyến chủ ứng (proactive), định tuyến phản ứng (reactive) và định tuyến lai ghép giữa hai loại trên. Các giao thức định tuyến chủ ứng sử dụng phương pháp phát tràn (Floading) để quảng bá thông tin tới các thiết bị. Phương pháp này cho phép thời gian thiết lập đường nhanh dựa trên các tham số gửi tới thiết bị sẵn sàng cho kết nối. Tuy nhiên, phương pháp này cũng làm lưu lượng các gói tin tìm đường tăng lên rất lớn, đây chính là nhược điểm của phương pháp này. Giao thức định tuyến trạng thái liên kết tối ưu OLSR (Optimized Link State Routing) và giao thức định tuyến vector khoảng cách tuần tự đích DSDV (Dynamic Destination-Sequenced Distance-Vector Routing) là hai ví dụ của giao thức định tuyến chủ ứng.
Các giao thức định tuyến phản ứng thiết lập tuyến dựa theo từng yêu cầu kết nối. Phương pháp này hạn chế được chi phí tìm đường, nhưng nhược điểm cơ bản là gây trễ lớn cho các khung truyền dẫn đầu tiên cũng như thời gian chọn đường dẫn chậm. Hai giao thức phản ứng điển hình là giao thức định tuyến vector khoảng cách theo yêu cầu AODV (On-demand Distance Vector Routing) và giao thức định tuyến định tuyến nguồn động DSR (Dynamic Source Routing).
Một khi xảy ra lỗi tại nút, các giao thức định tuyến thường khôi phục đường dẫn bằng phương pháp thiết lập tuyến mới. Hầu hết các tiếp cận hiện nay đều sử dụng thông tin phản hồi tới thiết bị nguồn nhằm khởi tạo tuyến mới, vì vậy lưu lượng bản tin trao đổi là rất lớn và tăng lên rất nhanh khi kích thước mạng lớn, nhất là đối với các giao thức định tuyến chủ ứng. Khi kích thước mạng tăng cũng đồng nghĩa với sự suy giảm hiệu năng mạng do hiện tượng trễ của thủ tục định tuyến và truyền khung đầu tiên tăng lên rất lớn nếu sử dụng giao thức định tuyến phản ứng.
3.2.3.3. Định tuyến nguồn và định tuyến theo chặng
Với định tuyến nguồn, toàn bộ thông tin về đường đi tới đích được đặt trong trường tiêu đề của gói tin dữ liệu, các nút trung gian chỉ việc chuyển tiếp gói tin theo đường trong tiêu đề. Lợi điểm của giao thức này là loại bỏ được nhu cầu quảng bá đường định kỳ và các gói tin khám phá (discovery) hàng xóm.
Trong định tuyến theo chặng, khi một nút nhận được gói tin cần chuyển tới đích, nút đó chuyển tiếp gói tin theo chặng tiếp theo hướng tới đích mà nó biết. Nút tiếp theo lại chuyển tiếp gói tin đến đích theo những chặng mà nó biết dựa vào bảng định tuyến của nó. Quá trình trên sẽ dừng lại khi gói tin được chuyển tới đích. Nhược điểm của phương pháp này là tất cả các nút cần duy trì thông tin định tuyến nên phải xử lý nhiều hơn và có khả năng tạo thành các vòng lặp định tuyến.
3.3. Các giao thức định tuyến chính trong mạng MANET
Hình 7: Phân loại các giao thức định tuyến trong mạng MANET
3.3.1. DSDV
DSDV (Destination-Sequenced Distance-Vector Routing) là giao thức chủ ứng dựa trên dựa trên thuật toán Distance vector được xây dựng bởi C.Perkins và P.Bhagwat năm 1994 [13]. Giao thức này được xây dựng dựa trên tiêu chí giữ nguyên sự đơn giản của giải thuật Bellman-Ford và loại bỏ vấn đề vòng lặp.
Truyền thông tin định tuyến: Thông tin định tuyến được gửi quảng bá (broadcast) tới tất cả các nút hàng xóm liền kề nó. Thông tin cập nhật được phát định kỳ hoặc ngay khi có các thay đổi xảy ra trong mạng. Để tránh lặp định tuyến DSDV gắn số thứ tự chẵn cho mỗi đường. Số thứ tự được gắn bởi nút đích, được gửi đi trong gói tin cập nhập. Số thứ tự này cho thấy độ mới của mỗi đường, đường nào có số thứ tự cao hơn được xem là tốt hơn. [10]
Hình 8: Tô-pô mạng thay đổi
Số thứ tự này sẽ tăng lên một đơn vị khi một nút phát hiện đường đi tới đích có liên kết bị hỏng khi nó không nhận được cập nhật định kỳ. Khi ấy trong gói tin cập nhật kế tiếp nó gửi đi sẽ quảng bá đường tới đích này có số chặng bằng vô hạn (metric ~ ∞) và tăng thứ tự đường.
Khi một nút nhận được thông tin mới về một tuyến đường, tuyến này sẽ được chọn nếu nó có số thứ tự lớn hơn các số thứ tự khác của cùng tuyến đó trong bảng định tuyến. Nếu nó có cùng số thứ tự thì nó sẽ được chọn nếu có số metric tốt hơn.
Để làm giảm kích thước gói tin cập nhập, DSDV sử dụng hai loại thông điệp cập nhật là:
Full dump: Cập nhật đầy đủ. Thông điệp này bao gồm toàn bộ thông tin định tuyến mà nút đó biết đến thời điểm đó.
Incremental dump: cập nhật bổ sung. Gói thông điệp này chỉ bao gồm các thông tin về những thay đổi từ lần cập nhật đầy đủ gần nhất.
Hai loại thông điệp cật nhật này được lưu vào hai bảng khác nhau, một bảng để chuyển tiếp các gói tin đầy đủ, một để phát các gói tin cập nhật. Gói tin cập nhật đầy đủ chỉ được phát thường xuyên khi các nút thường xuyên di chuyển, khi mạng ít thay đổi, chủ yếu chỉ có gói tin cập nhật bổ sung được gửi đi.
3.3.2 OLSR [8]
OLSR (Optimized Link State Routing Protocol) là giao thức chủ ứng dựa trên thuật toán trạng thái kết nối (Link state). Các nút gửi định kỳ ra toàn mạng thông điệp “Hello” để trao đổi thông tin về hàng xóm. Thông tin này bao gồm IP của nút, số thứ tự và danh sách các thông tin khoảng cách của các nút hàng xóm. Sau khi cập nhật những thông tin này nút sẽ xây dựng lên bảng định tuyến của nó và có cái nhìn tổng thể về toàn mạng. Dựa vào bảng định tuyến này nó có thể tự tính được đường đi tới các nút khác dựa vào thuật toán tìm đường đi ngắn nhất. Khi một nút nhận được một gói tin trùng lặp với cùng số thứ tự nó sẽ loại bỏ gói tin này. Trong bảng định tuyến nút lưu trữ thông tin định tuyến tới tất cả các nút khác trong mạng. Những thông tin này chỉ được cập nhật khi:
Khi nút nhận thấy sự thay đổi trong quan hệ hàng xóm (vd: mất liên kết đến nút hàng xóm,…)
Tuyến đường tới các nút đích khác hết hạn (quá lâu không được cập nhập)
Phát hiện ra đường đi mới ngắn hơn để tới đích.
Điểm khác biệt giữa OLSR và LSR (Link State Protocol) là việc giao thức OLSR hoạt động dựa trên việc một nhóm nút mạng cộng tác với nhau tạo nên một kíp phát chuyển tiếp đa điểm (Multi-Point Relays - MPR). Mỗi nút N trong mạng sẽ lựa chọn ra một tập các nút hàng xóm của nó vào kíp đa điểm MPR(N), các nút thuộc kíp đa điểm này sẽ chuyển tiếp các gói tin điều khiển được gửi từ N. Nút không thuộc kíp đa điểm của N vẫn xử lý gói tin này nhưng sẽ không chuyển tiếp đến các nút khác.
Hình 9: Quy trình chuyển tiếp gói tin khi sử dụng kíp đa điểm – MPR
Ưu điểm đầu tiên của việc sử dụng kíp đa điểm (MPR) là việc làm giảm thiểu các thông điệp quảng bá phát tràn trong mạng, giúp cho băng thông được cải thiện đáng kể. Lợi điểm thứ hai là việc giảm được kích thước của gói tin “Hello” vì nó chỉ lưu trữ các thông tin liên quan tới các nút trong kíp đa điểm của nó.
Hình 10: OLSR ngăn chặn vòng lặp bằng việc sử dụng MPR để chuyển phát gói tin.
3.3.3. AODV [12]
AODV (Ad Hoc On-Demand Distance Vector) là giao thức dựa trên thuật toán vector khoảng cách. AODV tối thiểu hoá số bản tin quảng bá cần thiết bằng cách tạo ra các tuyến trên cơ sở theo yêu cầu, ngược với việc duy trì một danh sách hoàn chỉnh các tuyến như thuật toán DSDV.
Hình 11: quá trình khám phá tuyến trong AODV
Khi một nút nguồn muốn gởi một bản tin đến một nút đích nào đó và không biết rằng đã có một tuyến đúng đến đích đó, nó phải khởi đầu một quá trình khám phá đường truyền. Nó phát quảng bá một gói yêu cầu tuyến (RREQ) đến các nút lân cận. Các nút lân cận này sau đó sẽ chuyển tiếp gói yêu cầu đến nút lân cận khác của chúng. Quá trình cứ tiếp tục như vậy cho đến khi có một nút trung gian nào đó xác định được một tuyến “đủ tươi” để đạt đến đích. AODV sử dụng số thứ tự đích để đảm bảo rằng tất cả các tuyến không lặp và chứa hầu hết thông tin tuyến hiện tại. Mỗi nút duy trì số tuần tự của nó cùng với một ID quảng bá. ID quảng bá được tăng lên mỗi khi nút khởi đầu một RREQ, và cùng với địa chỉ IP của nút, xác định duy nhất một RREQ. Cùng với số tuần tự và ID quảng bá, nút nguồn bao gồm trong RREQ hầu hết số tuần tự hiện tại của đích mà nó có. Các nút trung gian có thể trả lời RREQ chỉ khi nào chúng có một tuyến đến đích mà số tuần tự đích tương ứng lớn hơn hoặc bằng số tuần tự chứa trong RREQ.
Trong suốt quá trình chuyển tiếp RREQ, các nút trung gian ghi vào Bảng định tuyến của chúng địa chỉ của các nút lân cận từ khi nhận được bản sao đầu tiên của gói quảng bá, theo đó thiết lập được một đường dẫn theo thời gian. Nếu các bản sao của cùng một RREQ được nhận sau đó, các gói này sẽ bị huỷ bỏ. Một khi RREQ đã đạt đến đích hay một nút trung gian với tuyến “đủ tươi”, nút đích (hoặc nút trung gian) đáp ứng lại bằng cách phát đơn phương một gói đáp ứng tuyến (RREP) ngược về nút lân cận mà từ đó nó thu được RREQ. Khi RREP được định tuyến ngược theo đường dẫn, các nút trên đường dẫn đó thiết lập các thực thể tuyến chuyển tiếp trong Bảng định tuyến của chỉ nút mà nó nhận được RREP. Các thực thể tuyến chuyển tiếp này chỉ thị tuyến chuyển tiếp tích cực. Cùng với mỗi thực thể tuyến là một bộ định thời tuyến có nhiệm vụ xoá các thực thể nếu nó không được sử dụng trong một thời hạn xác định. Do một RREP chuyển tiếp trên đường dẫn được thiết lập bởi một RREQ nên AODV chỉ hỗ trợ việc sử dụng đường truyền đối xứng.
Trong AODV, các tuyến đươc duy trì điều kiện như sau: Nếu một nút nguồn chuyển động, nó phải khởi động lại giao thức khám phá tuyến để tìm ra một tuyến mới đến đích. Nếu một nút trên tuyến chuyển động, nút lân cận luồng lên của nó chú ý đến chuyển động đó và truyền một bản tin “Khai báo sự cố đường thông” (một RREP không xác định) đến mỗi nút lân cận tích cực luồng lên để thông báo cho các nút này xoá phần tuyến đó. Các nút này thực chất truyền một “Thông báo sự cố đường thông” đến các nút lân cận luồng lên. Quá trình cứ tiếp tục như vậy cho đến khi đạt đến nút nguồn. Nút nguồn sau đó có thể chọn khởi động lại một quá trình khám phá tuyến cho đích đó nếu một tuyến vẫn cần thiết [4].
Ngoài ra, giao thức này sử dụng bản tin HELLO được phát quảng bá định kỳ bởi một nút để thông báo cho tất cả các nút khác về những nút lân cận của nó. Các bản tin HELLO có thể được sử dụng để duy trì khả năng kết nối cục bộ của một nút. Tuy nhiên, việc sử dụng bản tin HELLO là không cần thiết. Các nút lắng nghe việc truyền lại gói dữ liệu để đảm bảo rằng vẫn đạt đến chặng kế tiếp. Nếu không nghe được việc truyền lại như thế, nút có thể sử dụng một trong số các kỹ thuật, kể cả việc tiếp nhận bản tin HELLO. Các bản tin HELLO có thể liệt kê các nút khác mà từ đó nút di động đã nghe tin báo, do đó tạo ra khả năng liên kết lớn hơn cho mạng.
3.3.4. DSR [7]
Giao thức DSR (Dynamic Source Routing) là một giao thức định tuyến phản ứng từ nút nguồn. Trong đó, các nút di động cần duy trì bộ nhớ đệm về tuyến chứa các nút nguồn mà nút di động nhận biết được. Các thực thể trong bộ nhớ đệm về tuyến được cập nhật liên tục.
Hình 12: Định tuyến nguồn động (DSR)
Giao thức này bao gồm 2 giai đoạn chính: a) Khám phá tuyến và b) Duy trì tuyến. Khi một nút di động gởi một gói đến một nút đích nào đó, trước hết nó phải tham vấn bộ nhớ đệm tuyến để xác định là nó đã có một tuyến để đến đích chưa. Nếu nó có một tuyến chưa hết hiệu lực để đến đích, nó sẽ sử dụng tuyến này để gởi gói đi. Trái lại, nếu không có một tuyến như thế, nó phải khởi đầu một quá trình khám phá tuyến bằng cách phát quảng bá một gói yêu cầu tuyến. Bản tin yêu cầu này chứa địa chỉ đích, cùng với địa chỉ nút nguồn và số nhận dạng duy nhất. Mỗi nút nhận được gói này sẽ tiến hành kiểm tra là nó có biết một tuyến nào để đến đích không. Nếu không, nó thêm địa chỉ của nó vào Bảng ghi định tuyến của gói và sau đó chuyển tiếp gói trên các đường truyền ngõ ra. Để giới hạn số yêu cầu tuyến phát trên các đường truyền ngõ ra của nút, một nút chỉ chuyển tiếp yêu cầu tuyến nếu nó chưa biết yêu cầu đó và nếu địa chỉ của nút di động chưa xuất hiện trong Bảng ghi tuyến. Một đáp ứng tuyến được tạo ra khi hoặc là yêu cầu tuyến đạt đến đích hoặc là khi nó đạt đến một nút trung gian chứa trong bộ nhớ đệm tuyến của nó một tuyến đến đích chưa hết hiệu lực. Đến lúc gói có thể đạt đến đích hay đến một nút trung gian như thế, nó chứa một Bảng ghi tuyến cho biết số tuần tự chặng đã trải qua.
Nếu nút tạo ra đáp ứng tuyến là đích thì nó đặt Bảng ghi tuyến chứa trong yêu cầu tuyến vào đáp ứng tuyến. Nếu nút tương ứng là một nút trung gian, nó gắn thêm tuyến trong bộ nhớ đệm của nó vào Bảng ghi tuyến và sau đó tạo ra một đáp ứng tuyến. Để trả về đáp ứng tuyến, nút tương ứng phải có một tuyến để khởi đầu. Nếu nó có một tuyến để khởi đầu trong bộ nhớ đệm tuyến của nó, nó có thể sử dụng tuyến đó. Trái lại, nếu các đường truyền đối xứng được hỗ trợ, nút có thể khởi đầu một quá trình khám phá tuyến của nó và tiếp tục gởi đi đáp ứng tuyến trên một yêu cầu tuyến mới.
Việc duy trì tuyến được hoàn thành thông qua sử dụng các gói lỗi tuyến và các bản tin xác nhận. Các gói lỗi tuyến được tạo ra ở một nút khi lớp liên kết dữ liệu gặp sự cố đường truyền. Nút nguồn luôn luôn bị dừng khi một tuyến bị cắt đứt (có một liên kết trên tuyến bị lỗi). Khi nhận được một gói lỗi tuyến, chặng bị lỗi sẽ bị loại bỏ khỏi bộ nhớ đệm tuyến của nút và tất cả các tuyến chứa chặng này đều bị cắt ở điểm đó. Ngoài các bản tin lỗi tuyến, các bản tin xác nhận được sử dụng để xác minh sự hoạt động chính xác của các đường thông tuyến. Các bản tin xác nhận như thế bao gồm cả xác nhận thụ động (khi nút di động có thể nghe việc chuyển tiếp gói ở chặng kế tiếp trên tuyến).
3.3.5. TORA [11]
TORA (Temporally Ordered Routing Algorithm) là một thuật toán định tuyến phân bố không có vòng lặp và độ thích nghi cao, dựa trên khái niệm đảo ngược đường thông. TORA được đề xuất cho môi trường nối mạng có tính linh động cao. Nó là một giao thức khởi phát từ nguồn và cung cấp đa tuyến cho mọi cặp nút nguồn/đích cần thiết. Nguyên lý chủ đạo trong TORA là định vị các bản tin điều khiển đối với mọi tập hợp các nút gần với nơi xảy ra sự thay đổi topo mạng. Để thực hiện được điều này, các nút cần duy trì thông tin định tuyến về các nút kế cận (chỉ một chặng). Giao thức này thực hiện 3 chức năng cơ bản: Tạo tuyến, Duy trì tuyến, và Xoá tuyến.
Trong suốt giai đoạn tạo ra và duy trì tuyến, các nút sử dụng một tham số “độ cao” để thiết lập một DAG (sơ đồ hình xoắn ốc) có gốc ở nút đích. Sau đó, các đường truyền được chỉ định một hướng (luồng lên hay luồng xuống) dựa trên tham số độ cao tương đối của các nút lân cận. Quá trình thiết lập DAG tương tự như quá trình vấn tin/đáp ứng trong LMR (Light-Weight Moblie Routing - Định tuyến di động trọng số thấp).
Trong thời gian một nút di chuyển, tuyến DAG bị phá vỡ và việc duy trì tuyến cần để thiết lập lại một DAG có gốc ở cùng đích đó. Khi đường thông luồng xuống cuối cùng bị sự cố thì một nút tạo ra một mức tham chiếu mới dựa vào mức tham chiếu của các nút lân cận, phối hợp hoạt động có hiệu quả để phản ứng lại sự cố đó một cách có cấu trúc. Các đường thông được đảo ngược để phản ánh những thay đổi trong việc thích nghi với mức tham chiếu mới. Việc này có hiệu quả giống như sự đảo hướng của một hay nhiều đường thông khi một nút không có các đường thông luồng xuống. Việc định thời là một yếu tố quan trọng đối với TORA do tham số “độ cao” độc lập với thời gian sự cố đường thông; TORA giả sử rằng tất cả các nút đều có đồng hồ đồng bộ (thực thi qua một nguồn thời gian bên ngoài như hệ thống định vị toàn cầu - GPS).
Các tham số của TORA gồm: a) Thời gian sự cố đường thông, b) ID duy nhất của nút xác định mức tham chiếu mới, c) Bit chỉ thị phản ánh, d) Tham số thứ tự truyền, và e) ID duy nhất của nút. Tham số thứ 3 thể hiện mức tham chiếu một cách có chọn lọc. Một mức tham chiếu mới được xác định mỗi khi một nút không còn đường thông luồng xuống cuối cùng do sự cố đường thông. Giai đoạn xoá tuyến của TORA bao gồm một bản tin quảng bá “Xoá tuyến” (CLR) trong toàn mạng để xoá các tuyến không còn hiệu lực nữa.
Trong TORA có một sự biến động tiềm tàng xảy ra, đặc biệt khi nhiều tập hợp các nút đang liên kết là phần hiện đang bị xoá, các tuyến đang xoá, và các tuyến đang xây dựng mới. Do TORA sử dụng toà độ liên nút nên bài toán bất cân bằng của nó tương tự như bài toán tính đến vô cùng trong các giao thức định tuyến theo vector cự ly, ngoại trừ các biến động là tạm thời và sự hội tụ tuyến cuối cùng vẫn đạt được.
Chương 4. ĐÁNH GIÁ BẰNG MÔ PHỎNG ẢNH HƯỞNG CỦA SỰ CHUYỂN ĐỘNG CỦA CÁC NÚT MẠNG ĐẾN HIỆU SUẤT CỦA MỘT SỐ GIAO THỨC ĐỊNH TUYẾN
4.1. Xác định các tham số hiệu suất cần đánh giá và cách thức phân tích kết quả mô phỏng
4.1.1. Các tham số hiệu suất cần đánh giá
Hiệu suất là khái niệm chỉ độ đo công việc mà hệ thống thực hiện được. Đối với lĩnh vực nghiên cứu mạng máy tính, hiệu suất bao gồm các độ đo thông dụng như: tính sẵn sàng, thông lượng, độ trễ và thời gian đáp ứng... Do còn nhiều giới hạn về tài nguyên nên các giao thức định tuyến trong mạng MANET cần phải đảm bảo việc sử dụng hiệu quả các tài nguyên hạn chế này. Chúng tôi sử dụng các độ đo sau để đánh giá hiệu suất hoạt động của các giao thức định tuyến khi các nút mạng thay đổi về hướng và tốc độ di chuyển:
Tỷ lệ phân phát gói tin thành công: Là tỷ lệ giữa số gói tin được phân phát thành công tới đích so với số gói tin được gửi đi nguồn phát.
Thời gian phản ứng của các giao thức định tuyến: Là thời gian tính từ thời điểm nút nguồn có nhu cầu truyền tới khi bắt đầu truyền dữ liệu.
Thông lượng: Là tổng dung lượng dữ liệu truyền đến đích thành công trong 1 đơn vị thời gian (Kbps,…).
4.1.2. Cách thức phân tích kết quả mô phỏng của NS-2
4.1.2.1. Cấu trúc tệp vết
Tệp vết là file dạng văn bản (text), mỗi dòng như một bản ghi (record), có cấu trúc như nhau, bao gồm một số trường phân cách nhau bởi ký tự trống (mã ASCII bằng 32). Cấu trúc một dòng của tệp vết thường có dạng:
r 160.093884945 _6_ RTR --- 5 tcp 1492 [a2 4 6 800] ------- [36:0 16777984:0 31 16777984] [1 0] 2 0
Tên các trường của một dòng tệp vết trên là: Event, Time, Node ID, Trace Name, Reason, Event Identifier, Packet Type, Packet Size, [Time To Send Data, Destination MAC Address, Source MAC Address, Type (ARP, IP)]. Ý nghĩa của các trường được giải thích tại bảng 4.
Bảng 3: Cấu trúc tệp vết
Event
Type
Value
Ý Nghĩa
Wireless Event
s: Sendr: Received: Dropf: Forward
%.9f %d (%6.2f %6.2f) %3s %4s %d %s %d [%x %x %x %x]
%.9f _%d_ %3s %4s %d %s %d [%x %x %x %x]
double
Time
Thời gian
int
Node ID
Chỉ số của nút
double
X Coordinate
Tọa độ trục x – Chỉ lưu lại nếu được log lại vị trí
double
Y Coordinate
Tọa độ trục y – Chỉ lưu lại nếu được log lại vị trí
string
Trace Name
Tên vết như: RTR, AGT,..
string
Reason
Lý do tạo ra sự kiện
int
Event Identifier
Số thứ tự gói tin
string
Packet Type
Kiểu gói tin: TCP, UDP, ACK
int
Packet Size
Kích thước gói tin
hexadecimal
Time To Send Data
Thời gian trông đợi gói tin được gửi xuống kênh truyền
hexadecimal
Destination MAC Address
Địa chỉ MAC của nút đích
hexadecimal
Source MAC Address
Địa chỉ MAC của nút nguồn
hexadecimal
Type (ARP, IP)
Kiểu của trường MAC
VD: 800à ETHERTYPE_IP
Phụ thuộc vào kiểu của gói tin mà cấu trúc tệp vết còn có thêm một số trường sau: ------- [Source IP Address: Source Port Number, Destination IP Address: Destination Port Number, TTL Value, Next Hop Address, If Any], [Sequence Number, Acknowledgment Number], Number Of Times Packet Was Forwarded, Optimal Number Of Forwards. Ý nghĩa của các trường này được giải thích tại bảng 5 bên dưới.
Bảng 4: Các trường thêm vào trong cấu trúc tệp vết phụ thuộc vào kiểu gói tin
Event
Type
Value
Ý Nghĩa
IP Trace
------- [%d:%d %d:%d %d %d]
int
Source IP Address
Địa chỉ IP nguồn
int
Source Port Number
Chỉ số cổng nguồn
int
Destination IP Address
Địa chỉ IP đích
int
Destination Port Number
Chỉ số cổng đích
int
TTL Value
Time To Live: Thời gian tồn tại của gói tin
int
Next Hop Address, If Any
Địa chỉ của nút kế tiếp gói tin sẽ chuyể tiếp tới.
TCP Trace
[%d %d] %d %d
int
Sequence Number
Số thứ tự
int
Acknowledgment Number
Số thứ tự của gói biên nhận
int
Number Of Times Packet Was Forwarded
Số lần gói tin được chuyển tiếp
int
Optimal Number Of Forwards
Số chuyển tiếp tối ưu
CBR Trace
[%d] %d %d
int
Sequence Number
Số thứ tự
int
Number Of Times Packet Was Forwarded
Số lần gói tin được chuyển tiếp
int
Optimal Number Of Forwards
Số chuyển tiếp tối ưu
Chi tiết các trường phụ thêm vào của các kiểu gói tin khác được nêu trong phần PHỤ LỤC.
4.1.2. Công cụ để phân tích và biểu diễn kết quả mô phỏng
. Perl
Ban đầu, Perl (Practical Extraction and Report Language) là một ngôn ngữ lập trình được phát triển cho thao tác văn bản, sau này được phát triển để sử dụng cho một loạt các ứng dụng khác như: quản trị hệ thống, phát triển web, lập trình mạng, giao diện phát triển,…Ưu điểm vượt trội của Perl là nhỏ gọn, dễ sử dụng, hỗ trợ cả lập trình hướng đối tượng (OOP), được xây dựng hỗ trợ xử lý văn bản.
Sử dụng Perl
Để chạy Perl trên Linux, ta dùng lệnh sau:
perl progName.pl
Viết Script bằng perl, đặt dòng sau lên trên đầu trong Script
#!/usr/bin/perl
Sau đó chạy lệnh:
/duongdan/script.pl
ví dụ : chmod 755 script.pl
/duongdan/script.pl
Cú pháp cơ bản của Perl:
Một đoạn code Perl script hay một chương trình đều bao gồm nhiều các statements. Các statements này chỉ đơn giản được viết bằng các kiểu cách đơn giản trong script. Không nhất thiết phải có main() hoặc tương tự.
perl statements kết bằng dấu “ ; “
Ví dụ: print”Hello, I’m Tu”;
Sử dụng “#” để Comments trong Perl, ví dụ :
# Comment ở đây
GNUPLOT
Gnuplot là một công cụ vẽ đồ thị gọn nhẹ và rất hữu dụng trên Linux. Gnuplot tỏ ra khó dùng lúc ban đầu, tuy nhiên, nếu nắm được các cú pháp cơ bản của nó, chúng ta sẽ thấy đây là một công cụ mạnh mẽ và đầy hiệu quả. Với chức năng tạo script để vẽ, việc tạo hoặc sửa đổi một đồ thị trở nên rất dễ dàng.
Gnuplot có thể nhận vào tệp văn bản (input file) có nhiều cột, lúc ấy cần chỉ ra hai cột cụ thể để lấy dữ liệu vẽ đồ thị. Gnuplot còn có thể nhận vào từ nhiều file và vẽ trên cùng một đồ thị, điều này rất thuận lợi cho việc so sánh và nghiên cứu.
Ví dụ: File đầu vào là: Time_of_connection_setup.data
STT DSDV AODV DSR
0 0,0045 0,6204 0,0333
5 1,1788 1,6365 1,4792
10 5,4950 1,4021 3,8303
15 5,0125 2,3528 3,4793
20 6,9357 1,4003 0,5594
Thiết lập định dạng cho bản vẽ và thực hiện vẽ đồ thị:
#plot.script
set title "Thoi gian thiet lap ket noi"
set xlabel "Van Toc (m/s)"
set ylabel "Thoi gian (s)"
set key right top
set pointsize 1
set xr [0:20]
set yr [0:8]
set size 0.8,0.8
set terminal postscript eps enhanced mono dashed lw 1
set output " Time_of_connection_setup.eps"
plot "connection_time_RandomWaypoint" using 1:2 title 'DSDV' with linespoints lt 1 pt 6 lw 1, \
"connection_time_RandomWaypoint" using 1:3 title 'AODV' with linespoints lt 2 pt 12 lw 1, \
"connection_time_RandomWaypoint" using 1:4 title 'DSR' with linespoints lt -1 pt 3 lw 1
4.2. Thiết lập mạng mô phỏng MANET
Tôi đã xây dựng chương trình mô phỏng, có sử dụng đoạn mã ví dụ về mô phỏng mạng ad-hoc với giao thức DSDV trong cuốn "NS Simulator for beginners" [1] của tác giả Eitan Altman và Tania Jimenez. Chương trình mô phỏng của tôi có tên là: MANET_Simulation.tcl, được in trong mục 2.Mô phỏng mạng M
Các file đính kèm theo tài liệu này:
- Khảo sát ảnh hưởng của sự chuyển động các nút mạng đến hiệu suất của một số giao thức định tuyến trong manet.doc