2011-02-03 7 views
0

Matlab에서 AODV (Ad Hoc On Demand Distance Vector) 라우팅 프로토콜을 코딩하려고합니다. 프로토콜 작동 방식을 간략하게 설명합니다.온 디맨드 라우팅 프로토콜

이 프로토콜은 모바일 ad hoc 네트워크에 사용할 수 있습니다. 발신지가 IP를 알고있는 목적지로가는 경로를 시작합니다. 소스 노드는 첫 번째 홉에 RREQ (Route Request)를 브로드 캐스트합니다. 첫 번째 홉 (TTL) 내의 노드가 목적지 또는 목적지까지의 경로를 알고 있으면 경로 응답 (RRP)이 소스로 전달됩니다. 임의의 라우트가 깨진 경우, 라우트 오류 (RERR) 메시지가 목적지에 생성됩니다. 소스는 패킷을 전달하기 위해 대상에 대한 가장 짧은 (최소 홉) 경로를 선택합니다. 소스가 지정된 시간 내에 RREP를 얻지 못하면 TTL이 증가하고 새로운 RREQ가 전송됩니다. [AODV_Wiki] [1]

EDIT 코드는 힌트에 명시된 바와 같이 서로의 노드 연결에 전적으로 의존합니다. 나는 코드를 마무리 짓고있다. 내 생각에, 아쉽게 곧 업로드됩니다.

+0

U 수있는 프로토콜 코드를 얻을 http://www.mathworks.com/matlabcentral/newsreader/view_thread/247556 – Mostafa

답변

2

힌트 : 거리 벡터 알고리즘은 각 네트워크 노드에 거리의 벡터를 유지함으로써 작동합니다. distane 벡터는 현재 노드에서부터 te 네트워크의 모든 다른 노드까지의 거리를 측정합니다. 알고리즘은이 벡터를 반복적으로 업데이트하여 작동합니다.

이러한 거리 벡터를 모두 매트릭스에 결합하면 요소 i, j가 노드 i와 j 사이의 거리를 측정하는 매트릭스가됩니다.

그래서 나는 a[i,j]=1 i 경우 직접 그렇지 않으면 j, 0와 통신 할 수있는 연결 행렬을 계산 시작 것입니다 - 그리고 거기에서 진행합니다. 여기

+0

@ nimrodm 경우 (거리 <= R) M (I, J) = 1; line ([X (i) X (j)], [Y (i) Y (j)], 'LineStyle', ':', 'MarkerSize', 25); store (j) = 거리 (j); % # ok disp ('RREQ') else M (i, j) = 0; disp ('경로를 찾을 수 없음') 끝 끝 ** 자세히 설명해 주시겠습니까? 비록 연결 매트릭스를 가지고 있지만 소스 내에서만 노드가 첫 번째 홉입니다. 따라서, 첫 번째 홉부터 목적지까지가는 법? – Tinglin

+0

힌트를 주셔서 너무 고마워요. – Tinglin