Đảm bảo giao nhận khi liên kết gãy

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu các giao thức định tuyến trong mạng truyền thông Luận văn ThS. Công nghệ thông tin 1.01.10 (Trang 103)

Khi nút A gửi một gói dữ liệu cho E, và sử dụng tuyến để thực hiện việc giao nhận là A – B – C – D – E. Khi đó thì A chịu trách nhiệm cho việc giao nhận đúng

gói dữ liệu cho B. Và B lại chịu trách nhiệm trong việc giao nhận đúng gói dữ liệu đối với S. Và, cứ thế tiếp tục cho đến khi gói dữ liệu đƣợc giao đúng đích.

Thông báo lỗi Route Error

Khi A khởi tạo thông báo cho E thì có 2 phần trong thông báo: Tuyến từ A đến A, và nội dung của thông báo. Mỗi nút trung gian cố gắng chuyển tiếp thông báo bằng cách tìm các bƣớc truyền kế tiếp cho tuyến. Khi nút C cố gắng chuyển tiếp thông báo cho D và chờ đợi các tín hiệu trả lời (Ack). C sẽ cố gắng truyền lại các thông báo và sửa lại thời gian nếu nhƣ không có tín hiệu trả lời Ack nào. Nếu vẫn thất bại thì C sẽ tạo thông báo lỗi tuyến route error. Trong ví dụ này C sẽ khởi tạo thông báo lỗi route error quay ngƣợc trở về A để chỉ ra rằng liên kết đến D hiện tại đã bị gãy. A sẽ loại bỏ tuyến này trong route cache của nó và tìm một tuyến khác đi đến E, nếu có. Hoặc sẽ khởi tạo một pha tìm tuyến mới.

Việc cứu dữ liệu

Sau khi gửi thông báo lỗi tuyến route error. Nút ở tại nơi phát sinh lỗi cố gắng gửi tiếp gói dữ liệu bằng cách tìm một tuyến mới đến đích trong route cache của nó. Trong ví dụ ở trên, C sẽ tìm kiếm một tuyến mới đi đến E trong route cache của nó. Nếu C tìm thấy một tuyến mới, nó sẽ thay thế tuyến trƣớc đó bởi tuyến mới và gửi dữ liệu đến E. Và C cũng chỉ ra rằng gói dữ liệu này đã đƣợc cứu, vì thế các nút khác không phải cố gắng cứu nút đó.

Thu hẹp tự động các tuyến: Một vài tuyến trở nên dài không cần thiết khi các nút di chuyển. C có thể nhận đƣợc các gói dữ liệu chuyển từ A cho B. Ta nói rằng A gửi hoàn toàn tuyến cho B. E báo cho A rằng B, F, G có thể gỡ ra khỏi tuyến.

A B F G C E A B F G C E Hình 3.19: Thu hẹp tuyến

Sự mở rộng của thông báo lỗi Route Error:

Khi A nhận đƣợc thông báo lỗi RE từ C. A biết rằng liên kết giữa C – D đã bị gãy. A gỡ bỏ tuyến này ra khỏi route cache của nó. A sẽ thử tuyến mới hay sẽ thử

tìm một tuyến mới khác. A sẽ chuyển nhanh các thông báo RE và các nút khác cũng sẽ biết rằng liên kết giữa A và D đã bị gãy [17].

3.4.3. Giao thức AODV (Ad hoc On-demand distance-vector routing)

Giao thức AODV là một trong giao thức quan trọng trong định tuyến trên hệ thống mạng di động, hiện tại là giao thức sử dụng phổ biến nhất.

a. Các đặc trƣng chính của giao thức AODV :

- Là sự kết hợp của cả 2 dạng giao thức: Hƣớng bảng và theo yêu cầu. Do vậy nó phát huy tính năng tối ƣu của cả hai phƣơng pháp này.

- Kích cỡ gói dữ liệu trong AODV là đồng đều không nhƣ DSR. Cũng không nhƣ DSDV, nó không loan truyền rộng rãi do các thay đổi cục bộ.

- AODV hỗ trợ cả hai phƣơng thức định tuyến multicastingunicasting. Mỗi tuyến có một thời gian tồn tại (time-live) sau khi nó hết công dụng nếu nó không đƣợc sử dụng. Một tuyến chỉ lƣu trữ khi nó đƣợc sử dụng vì thế các tuyến cũ và hết hiệu lực không bao giờ đƣợc sử dụng nữa.

- Khác với DSR, AODV chỉ lƣu trữ một tuyến giữa một cặp nguồn đích. - Thiết lập các tuyến unicast (Unicast route) từ một nguồn đến một đích :

oSử dụng hai loại thông báo: route request (RREQ) và route reply (RREP). giống nhƣ trong giao thức DSR

oSử dụng số tuần tự để lƣu giữ dấu vết của các tuyến trong khoảng thời gian gần đây. Ở mọi thời điểm, một nút gửi một thông báo mới, nó sử dụng một số tuần tự tăng dần đều giống nhƣ DSDV [18]

b. Thông báo RREQ (route request):

Khi nút S muốn gửi thông báo cho nút D, nó kiểm tra lại bảng định tuyến của nó để tìm một tuyến đi đến D. Nếu không thấy tuyến nào, nó sẽ khởi tạo một thông báo RREQ với các thành phần sau đây [18]:

- Địa chỉ IP của S và D.

- Số tuần tự hiện tại của S và số tuần tự đã biết cuối cùng của D.

- Loan truyền định danh {broadcast ID} theo kiểu broadcast từ S. Sự loan truyền ID này đƣợc tăng dần đều mỗi khi S gửi một thông báo RREQ [18].

S Q P D

S Q P D

c. Xử lý thông báo RREQ:

Một cặp {broadcast ID, IP address} của nguồn S tạo thành một định danh duy nhất cho thông báo RREQ gửi đi. Nếu một nút P nhận đƣợc thông báo RREQ từ S. P sẽ kiểm tra xem nó đã nhận thông báo này trƣớc hay chƣa bằng cách:

- Mỗi nút lƣu trữ các cặp {broadcast ID, IP address} cho tất cả các thông báo trong khoảng thời gian gần nhất mà nó đã nhận. Xảy ra hai trƣờng hợp:

Hình 3.20: Gửi thông báo RREQ từ S

o P thấy thông báo RREQ từ S đã có rồi (đã nhận), P loại bỏ thông báo này.

o P thấy thông báo RREQ là mới (lần đầu), nó sẽ xử lý RREQ này nhƣ sau:

P cài đặt danh mục tuyến đảo ngƣợc với nút S vào bảng route của nó.

Mỗi danh mục chứa địa chỉ IP và số tuần tự hiện hành của S, số các bƣớc truyền đến S, điạ chỉ của nút lân cận mà P nhận thông báo RREQ từ nút đó.

d. Thời gian tồn tại của một danh mục tuyến trong bảng định tuyến:

Mỗi danh mục tuyến route trong bảng định tuyến đều đƣợc gắn thời gia tồn tại. Nếu danh mục một tuyến nào đó trong bảng route không đƣợc sử dụng trong thời gian chỉ định thì nó sẽ bị xoá bỏ [18]. Cách thực hiện nhƣ sau:

- Một tuyến chỉ đƣợc lƣu giữ khi nó đƣợc sử dụng. Một tuyến không đƣợc sử dụng trong khoảng thời gian dài thì đƣợc cho là đã cũ.

- P có thể trả lời thông báo RREQ từ S nếu P còn có danh mục còn hiệu lực cho D trong bảng route.

- Số tuần tự của D mà P có phải nhỏ hơn số tuần tự của D ở trong thông báo RREQ từ S. Điều này đảm bảo rằng không có định tuyến lặp.

- Nếu P thoả mãn cả hai yêu cầu ở trên. P thiết lập một tuyến và truyền thông báo RREP ngƣợc lại S.

oNếu P không thể trả lời bằng thông báo RREP đến S. P sẽ tăng giá trị bộ đếm bƣớc truyền của RREP và loan truyền nó đến các trạm lân cận. Đƣơng nhiên nút đích D luôn luôn có khả năng gửi thông báo RREP khi mà nó có một số tuần tự cao nhất.

oNếu thông báo RREQ bị thất lạc, nút S không nhận thông tin phản hồi trong khoảng thời gian xác định, thì nút nguồn S cố gắng thực hiện lại pha phát hiện tuyến một số lần nữa.

e. Mở rộng việc tìm kiếm vòng:

Khi phát hiện tuyến, nút nguồn S phải loan truyền thông báo RREQ đi qua mạng. Điều này có thể tạo ra rất nhiều các thông báo trong một mạng máy tính lớn [18]. Để giảm bớt lƣợng thông báo gửi đi, nút nguồn S sử dụng chiến lƣợc sau:

- Chiến lƣợc tìm kiếm vòng tròn mở rộng. Với đƣờng kính vòng tròn K, thông báo RREQ sẽ bị loại bỏ sau khi số đếm bƣớc truyền của nó vƣợt quá K.

- Nếu việc thông báo RREQ bị thất bại, nút nguồn tăng giá trị của bán kính K lên tuần tự một cách tuần tự.

f. Thiết lập đƣờng đi ngƣợc: Một thông báo RREP có rất nhiều trƣờng [18]: - Địa chỉ IP của hai nút nguồn và đích.

- Nếu nút đích đang gửi thông báo RREP, nó gửi các thông số gồm: Số tuần tự hiện hành của nó, thời gian tồn tại của tuyến, và đặt số đếm bƣớc truyền là 0.

- Nếu một nút trung gian thực hiện trả lời, nó gửi số tuần tự đã biết cuối cùng từ đích, đặt bộ đếm bƣớc truyền bằng với khoảng cách từ đích đến và đặt thời gian sống cho tuyến.

- Một nút sẽ gửi thông báo RREP ngƣợc trở về các nút lân cận, là các nút mà nó nhận đƣợc thông báo RREQ. Khi một nút trung gian nhận đƣợc thông báo

- RREP trả lời nó sẽ đặt đƣờng đi ngƣợc đến đích trong bảng định tuyến của nó.

RREP S D M N RREP S D M N

- Bảng này chứa địa chỉ IP của nút lân cận và nút đích, bộ đếm bƣớc truyền đi đến đích và thời gian sống cho tuyến đƣợc lập.

g. Giữ nhiều thông báo RREP:

Một nút trung gian P có thể nhận đƣợc nhiều thông báo trả lời RREP sau khi chuyển đi một thông báo RREQ. Khi đó, P sẽ chuyển tiếp thông báo RREP mà nó nhận đƣợc đầu tiên và có thể chuyển tiếp gói thông báo RREP thứ hai trễ hơn chỉ khi:

- Thông báo RREP trễ này có chứa số tuần tự lớn hơn với đích đến, hoặc bộ đếm số bƣớc truyền đến đích nhỏ hơn.

- Trong mọi trƣờng hợp khác P không chuyển tiếp các thông báo RREP, điều này làm giảm số lƣợng các thông báo RREP truyền hƣớng về đến nút nguồn.

h. Sự duy trì tuyến: 1 2 3 1 2 3 S D RERR RERR 3´ 1 2 3 S D RERR RERR 3´

Hình 3.22: Duy trì tuyến unicast

Khi một tuyến truyền dữ liệu (unicast route) đƣợc thiết lập giữa hai nút S và D, nó sẽ đƣợc duy trì cho đến khi nào mà nút nguồn S còn cần đến sự hoạt động trong tuyến. Nếu nút S di chuyển trong khi đang thực hiện một phiên làm việc, nó có thể khởi tạo lại phase khám phá tuyến để thiết lập một tuyến mới đi đến nút đích D. Khi D hay các nút trung gian di chuyển thì một thông báo báo lỗi tuyến RRER sẽ đƣợc gửi đến S. Trong hình 3.22 môt tả liên kết giửa nút 3 và D bị gãy khi nút 3 di chuyển đến vị trí 3’. Nút 2 sẽ gửi thông báo đến cho nút 1 và nút 1 gửi thông báo cho S. S sẽ khởi tạo lại pha khám phá tuyến nếu nó vẫn cần đến tuyến để trao đổi thông tin. Giả sử rằng các nút 4 và 5 là các nút lân cận của nút 2 trong tuyến từ S đến D. Nút D sẽ loan truyền thông báo RERR đến tất cả các trạm lân cận nhƣ thế. Các nút này sẽ cập nhật bảng định tuyến của chúng.

i. Ghép nối cục bộ:

Thông tin về các nút lân cận vẫn đƣợc tồn tại thông qua các thông báo “hello”. Mỗi nút loan truyền thông báo “hello” đến các trạm lân cận của nó một cách thƣờng xuyên. Khi một nút M nhận đƣợc thông báo “hello” từ một nút N, nút M cập nhật

thời gian sống (tồn tại) liên kết với N trong bảng định tuyến của nó. Thông báo “hello” chỉ truyền trong một bƣớc truyền, trong phạm vi các trạm lân cận của nút.

k. Sự thiết lập các tuyến multicast:

Các thông báo RREQ và RREP đƣợc sử dụng cho việc thiết lập ra các tuyến multicast. Một cây multicast có hai dạng thành viên. Một thành viên nhóm là một nút thuộc một bộ phận của nhóm multicast. Một cây thành viên không phải là một bộ phận của nhóm multicast nhƣng đƣợc sử dụng để kết nối với cây multicast. Ví dụ về cây Multicast:

Hình 3.23: nhóm multicast

Chú thích các nút:

Phát hiện cây Multicast đƣợc thực hiện khi có một trong hai điều kiện sau: - Có một nút S nào đó muốn gia nhập vào nhóm multicast.

- Nút S có dữ liệu muốn gửi cho nhóm multicast nhƣng lại không có tuyến liên kết với nhóm multicast đó. Nút S cũng có thể tự chọn khi nào nó muốn gia nhập nhóm multicast bằng cách đặt cờ join. Rồi S loan truyền thông báo RREQ đó đến các nút lân cận của nó. Nếu thông báo RREQ là các yêu cầu gia nhập và chỉ khi nào nút đó là thành viên của nhóm multicast thì mới đƣợc trả lời phản hồi.

- Nếu một nút nào đó bất kỳ mà có một tuyến đang sử dụng liên kết với nhóm multicast thì cũng nhận đƣợc thông báo trả lời.

- Thực hiện gia nhập với nhóm Multicast:

Nút thành viên nhóm multicast Nút tổ chức cây

Nút không thuộc thành viên nhóm multicast

Hình 3.24a: Gửi thông báo RREQ Hình 3.24b: Thông báo trả lớp RREP

Nút tự do Nút thuộc nhóm multicast

Nút gửi thông báo RREQ Nút thuộc cây

Nút tự do Nút thuộc nhóm multicast

Nút gửi thông báo RREQ Nút thuộc cây

m. Đƣờng chuyển tiếp cho thông báo RREP:

Đƣờng chuyển tiếp cho một thông báo RREP đƣợc thiết lập giống nhƣ cách đã thiết lập tuyến unicast. Một thành viên của nhóm multicast có thể gửi thông báo RREP thay cho thông báo RREQ nếu nó có số tuần tự cho nhóm multicast lớn hơn số tuần tự trong RREQ.

n. Sự kích hoạt cho tuyến Unicast:

Kích hoạt tuyến unicast: Khi một nút S gửi thông báo RREQ thì nói chung nó sẽ nhận đƣợc nhiều thông báo trả lời RREP.

Những thông báo RREP này thiết lập các nhánh tiềm năng cho S để hội nhập với cây multicast. S sẽ chọn đƣờng đi với nhánh có số tuần tự lớn nhất và số đếm bƣớc truyền nhỏ nhất. S kích hoạt tuyến này bằng cách gửi một thông báo kích hoạt tuyến unicast MACT(multicast activation) cho bƣớc truyền kế tiếp của tuyến này. Thông báo này đƣợc chuyển tiếp bởi các nút khác dọc theo tuyến.

Ngừng kích hoạt cây multicast: Một nút nhánh có thể rời bỏ cây multicast bằng một thủ tục đơn giản sau đây, bằng cách gửi một thông báo MACT và thực hiện xoá thông tin nhóm trong bảng định tuyến của nó. Tuy nhiên một nút không phải là là không thể thực hiện tự xoá ra khỏi cây khi nó là một phần của cây. Một

nút không phải nút lá tiếp tục hoạt động nhƣ là một bộ định tuyến cho nhóm unicast ngay cả khi nó rời bỏ nhóm.

o. Các liên kết gãy:

Một thành viên hay một nút trong cây multicast có thể cảnh báo trƣớc nguy cơ gãy liên kết khi:

- Không nhận đƣợc thông báo “hello” nào từ bƣớc truyền kế tiếp tại thời điểm nào đó.

- Khi một nút không thể gửi một gói dữ liệu đến nút truyền kế tiếp.

- Khi đó một nút gần với nút nguồn S chịu trách nhiệm sửa lại các liên kết gãy này. Điều này đƣợc thực hiện thông qua việc gởi một thông báo RREQ.

M N M N RREQ M M N M N RREQ M N RREQ

Hình 3.25: Sửa chữa liên kết gãy

Phương thức sửa chữa: Khi nút phát hiện ra liên kết gãy loan truyền thông báo RREQ đến các nút lân cận của nó. Thông báo RREQ này yêu cầu một tuyến đi đến nhóm multicast. Mỗi lần các thông báo RREP đƣợc nhận, nút sẽ chọn một tuyến mới đến nhóm multicast bằng cách gửi đi một thông báo MACT.

3.4.4. Giao thức định tuyến vùng ZRP (Zone Routing Procotol): a. Định tuyến theo Reactive và Proactive: a. Định tuyến theo Reactive và Proactive:

Các giao thức Reactive: Là các giao thức khi hoạt động cố gắng tìm ra một tuyến từ nút S đến nút D khi nào cần đáp ứng các yêu cầu về tuyến (nhƣ các giao thức AODV và DSR). Lợi thế chính của giao thức reactive là giảm bớt tình trạng

tràn ngập các thông tin điều khiển trong mạng. Tuy nhiên, các giao thức dạng reactive có độ trễ cao trong quá trình phát hiện các tuyến [19].

Các giao thức Proactive: Lƣu giữ bảng định tuyến chứa các tuyến đến các đích bao quát toàn bộ hệ thống mạng. Khi có yêu cầu, tuyến đến đích sẽ đƣợc tìm ra ngay bằng cách tra cứu trong bảng. Lợi thế chính cuả các giao thức Proractive là có độ trễ thấp trong thời gian phát hiện tuyến.Tuy nhiên các giao thức proactive phát sinh ra một số lƣợng lớn các thông báo điều khiển cho việc cập nhật các bảng định tuyến cục bộ [19].

Giao thức kết hợp: Là giao thức đƣợc xây dựng, khai thác những đặc điểm mạnh của cả hai giao thức Reactive và Proactive nhằm tìm ra một giao thức định

Một phần của tài liệu (LUẬN VĂN THẠC SĨ) Nghiên cứu các giao thức định tuyến trong mạng truyền thông Luận văn ThS. Công nghệ thông tin 1.01.10 (Trang 103)

Tải bản đầy đủ (PDF)

(135 trang)