Hình 2.5 Khám phá tuyến trong DSR

Một phần của tài liệu Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc (Trang 32 - 34)

tuyến tới nút E. Để khởi đầu Khám phá tuyến, A truyền một tin báo RREQ. Mỗi tin báo RREQ nhận dạng nút nguồn và đích của Khám phá tuyến. Nhận dạng yêu cầu được xác định bởi nút nguồn của Yêu cầu. Một RREQ bao gồm một bản ghi danh sách địa chỉ của từng nút trung gian mà tin báo RREQ đã đi qua. Giá trị ban đầu của bản ghi tuyến là một danh sách trống.

Khi một nút nhận được bản tin RREQ này (ví dụ như nút B trong ví dụ), nếu nó là đích của Khám phá tuyến, nó sẽ gửi lại bản tin Trả lời tuyến RREP tới khởi tạo của Khám phá tuyến, chuyển bản copy của bản ghi tuyến được cộng dồn từ RREQ; khi nút nguồn nhận được RREP, nó cất giữ tuyến này trong Bộ nhớ tuyến để sử dụng khi gửi các gói tin tiếp theo tới đích này.

Mặt khác, nếu một nút nhận RREQ mà đã nhận được một bản tin RREQ khác từ nút nguồn, mang theo những nhận dạng yêu cầu và địa chỉ đích giống nhau hoặc nếu địa chỉ riêng của nút này đã nằm trong báo cáo tuyến của RREQ, nó sẽ từ chối Yêu cầu. Nếu không, nút này sẽ gắn địa chỉ riêng của nó vào bản ghi tuyến trong bản tin RREQ và tiếp tục quảng bá nó. Trong ví dụ, nút B sẽ quảng bá bản tin RREQ, nó sẽ được nhận ở nút C, nút C và nút D cũng vậy, nó sẽ broadcast Yêu cầu, kết quả là copy của Yêu cầu sẽ được nhận bởi nút E.

Trong việc bản tin RREP trở lại nút nguồn trong thủ tục Khám phá tuyến, chẳng hạn nút E trả lời nút A trong hình 2.5, nút E sẽ kiểm tra Bộ nhớ tuyến của nó xem liệu có một tuyến ngược về nút A, và nếu tìm được nó sẽ sử dụng tuyến này làm tuyến nguồn để phân phát các gói tin bao gồm cả gói RREP. Nếu không tìm được một tuyến ngược trở lại A, E có thể thực hiện thủ tục Khám phá tuyến từ nó tới A. Để tránh khả năng quay lại vô hạn có thể của các Khám phá tuyến, nó sẽ chèn bản tin RREP vào chính bản tin

RREQ của nó đối với nút A. Sử dụng cơ chế này nó cũng có khả năng cõng theo các gói dữ liệu nhỏ khác ví dụ như gói TCP SYN trên một bản tin RREQ. Nút E còn có thể đảo vị trí sắp xếp của các chặng trong bản ghi tuyến và sử dụng tuyến đã đảo vị trí này như một tuyến nguồn đối với các gói tin mang bản tin RREP của chính nó.

Khi khởi tạo một Khám phá tuyến, nút đang gửi sẽ giữ lại bản sao của gói tin ban đầu trong bộ nhớ đệm nội bộ (Send Buffer) gọi là bộ đệm gửi. Ngoài ra Send Buffer còn chứa các bản sao của các gói tin không truyền đi được do chưa tìm ra một tuyến nguồn tới đích. Mỗi gói trong Send Buffer được gán cho một nhãn thời gian chỉ ra thời gian chúng tồn tại trong Buffer và gói tin sẽ bị loại bỏ sau khi thời gian lưu lại trong Send Buffer quá hạn; để Send Buffer không bị tràn, kĩ thuật FIFO hoặc kĩ thuật tương đương khác có thể được sử dụng để truyền các gói tin đó đi trược khi chúng hết hạn.

Trong trường hợp gói tin còn lưu lại trong Send Buffer mà chưa truyền đi được thì thỉnh thoảng nút mạng lại thiết lập mới thủ tục Khám phá tuyến tùy theo địa chỉ đích của các gói. Tuy nhiên, tần suất khởi tạo các Khám phá tuyến mới cần phải được giới hạn do có thể xảy ra trường hợp đích của thủ tục khởi tạo tuyến đã thay đổi và không thể tới được. Trên thực tế, do giới hạn về phạm vi truyền dẫn vô tuyến và sự di chuyển của các nút trong mạng nên nhiều khi cấu trúc mạng bị phân mảnh, nghĩa là không có thứ tự sắp xếp của các chặng mà qua đó gói tin được chuyển tiếp tới đích. Kiều phân mảnh như vậy có thể hiếm gặp hoặc phổ biến tùy thuộc vào kiểu di chuyển và mật độ của các nút trong mạng.

Trong trường hợp với mỗi gói tin, một thủ tục Khám phá tuyến được khởi tạo thì một số lớn các gói RREQ không hữu ích được truyền từ nút này tới tất cả các nút khác trong mạng. Để giảm phần phụ trội tiêu đề do các Khám phá tuyến trên người ta phải giới hạn tần suất khởi tạo các Khám phá tuyến từ một nút bất kì đến cùng một đích. Nút chỉ được phép khởi tạo Khám phá tuyến mới sau khi đợi hết khoảng thời gian tối thiểu cần thiết để có thể thiết lập thủ tục Khám phá tuyến mới.

Từ kết quả của việc kiểm tra bản sao các tuyến nguồn ghi được, thuật toán Khám phá tuyến đã ngăn chặn được việc lặp các RREQ trong mạng. Đó là một thuộc tính hiệu

các nhận dạng yêu cầu là một tối ưu đơn giản khi đó các RREQ ban đầu trải rộng hướng ra phía ngoài so với nút nguồn và rút bớt số các gói RREQ bao quanh bộ khởi tạo.

2.4.3 Duy trì tuyến

Khi gửi hoặc chuyển tiếp một gói tin tới đích D nào đó sử dụng tuyến nguồn, mỗi nút sẽ có nhiệm vụ giám sát và khẳng định rằng gói tin đó đã đến được chặng tiếp theo trên tuyến nguồn hay chưa; gói tin sẽ được truyền lại (sau một số lần cho phép) cho tới khi nút này nhận được khẳng định rằng nó đã đến được nút tiếp theo.Ví dụ trường hợp được minh họa trong hình 2.6 dưới đây: nút A gửi một gói tin tới E sử dụng một tuyến nguồn thông qua các nút trung gian B, C và D. Trong trường hợp này nút A chịu trách nhiệm về việc nhận gói tin ở nút B, nút B chịu trách nhiệm việc nhận gói tin ở nút C, nút C lại chịu trách nhiệm về việc nhận gói tin ở nút D,… và cứ như thế đến nút cuối cùng nút D phải chịu trách nhiệm về việc nhận gói tin ở nút E. Trong nhiều trường hợp khẳng định việc nhận gói tin không ảnh hưởng gì đối với giao thức DSR do thực tế đây là một phần của các thủ tục lớp MAC.

Hình 2.6 Duy trì tuyến, nút C không thể chuyển tiếp từ A đến E qua

Một phần của tài liệu Đánh giá thông lượng của các giao thức định tuyến trong mạng Ad hoc (Trang 32 - 34)