دانلود - دانشگاه شاهد

Report
‫شبکه هاي کامپيوتري‬
‫فصل پنجم‪:‬‬
‫اليه شبکه (‪)NetworkLayer‬‬
‫مقدمه‪ ،‬الگوریتم مسیریابی‬
‫وحید حقیقت دوست‬
‫دانشکده فنی و مهندس ی دانشگاه شاهد‬
‫‪1‬‬
‫وظایف الیه شبکه‬
‫‪network‬‬
‫‪data link‬‬
‫‪physical‬‬
‫‪application‬‬
‫‪transport‬‬
‫‪network‬‬
‫‪data link‬‬
‫‪physical‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫انتقال بسته های فرستنده به گیرنده‬
‫پروتکلهای الیه شبکه در تمامی میزبانها (‪)host‬‬
‫و مسیریابها (‪ )router‬اجرا میگردد‬
‫سه وظیفه اصلی الیه شبکه عبارتند از‪:‬‬
‫تعیین مسیر (‪:)path determination‬‬
‫‪‬‬
‫‪‬‬
‫‪application‬‬
‫‪transport‬‬
‫‪network‬‬
‫‪data link‬‬
‫‪physical‬‬
‫‪2‬‬
‫هدایت بسته ها (‪: )forwarding‬‬
‫‪‬‬
‫‪‬‬
‫مسیر انتقال بسته ها از مبدا به سمت مقصد تعیین‬
‫میشود (الگوریتم مسیریابی)‬
‫انتقال بسته ورودی به روتر به پورت خروجی مناسب‬
‫برقراری تماس (‪:)call setup‬‬
‫‪‬‬
‫در برخی معماریهای شبکه نیاز است یک تماس قبل از‬
‫ارسال بسته ها در مسیر بین فرستنده و گیرنده تنظیم‬
‫شود‬
‫وظایف الیه شبکه (ادامه)‬
‫‪network‬‬
‫‪data link‬‬
‫‪physical‬‬
‫‪application‬‬
‫‪transport‬‬
‫‪network‬‬
‫‪data link‬‬
‫‪physical‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪application‬‬
‫‪transport‬‬
‫‪network‬‬
‫‪data link‬‬
‫‪physical‬‬
‫‪‬‬
‫‪3‬‬
‫در الیه پیوند داده ارتباطات بین دو ایستگاه که‬
‫روی یک رسانه مشترک (بصورت منطقی)‬
‫هستند میپردازد‬
‫ولی الیه شبکه ارتباطات بین دو میزبان که بین‬
‫آنها عناصر مسیریابی مختلفی وجود دارد‬
‫میپردازد‬
‫الیه پیوند داده (الیه ‪ )2‬با آدرس فیزیکی که برای‬
‫هر میزبان منحصر بفرد است کار میکند ولی الیه‬
‫شبکه برای شناسایی هر میزبان از آدرس منطقی‬
‫استفاده میکند‬
‫‪ ‬آدرسهای منطقی در هر شبکه منحصر بفرد هستند‪.‬‬
‫الیه شبکه برای رسیدن به اهدافش باید توپولوژی زیر شبکه‬
‫(گراف مسیریابها) را بداند‬
‫خدمات الیه شبکه‬
‫‪‬‬
‫خدماتی که الیه شبکه برای الیه انتقال تدارک میبیند با اهداف زیر تهیه شده اند‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪4‬‬
‫الیه شبکه پایین ترین الیه ای است که با انتقال انتها به انتها سروکار دارد‪.‬‬
‫خدمات باید مستقل از فناوری باشند‬
‫انتقال بسته باید مستقل از تعداد‪ ،‬نوع و توپولوژی مسیریابها باشد‬
‫آدرس دهی میزبانها باید براساس اصول منطقی باشد‬
‫گروهی اعتقاد دارند این الیه باید خدمات اتصال گرا ارائه دهد و برخی معتقدند این خدمات باید بدون‬
‫اتصال باشد‬
‫‪‬پروسس ‪ P1‬در میزبان ‪ H1‬قصد ارتباط با پروسس ‪ P2‬در میزبان ‪ H2‬دارد‬
‫‪‬بین این دو میزبان عناصر راه گزینی مختلفی وجود دارد‪.‬‬
‫خدمات بدون اتصال یا بی اتصال (‪)Connection less‬‬
‫‪‬‬
‫‪‬‬
‫در خدمات بدون اتصال‪ ،‬هر بسته ماهیت مستقل دارد و به زیرشبکه تزریق‬
‫میشود و هر بسته مستقل از دیگر بسته ها مسیریابی میشود و برای ارسال نیاز به‬
‫هماهنگی قبلی وجود ندارد‪.‬‬
‫در این بستر‪ ،‬بسته ها را داده گرام و زیر شبکه را زیرشبکه داده گرام میگویند‬
‫‪Routing within a diagram subnet.‬‬
‫‪5‬‬
‫ مدل استفاده شده در اینترنت‬:‫زیر شبکه داده گرام‬

packets forwarded using destination host address

packets between same source-destination pair may take different
paths
2. Receive Data application
transport
network
data link
physical
application
transport
network
data link
physical
1. Send Data
6
‫خدمات اتصال گرا‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫برای خدمات اتصال گرا به زیر شبکه مدار مجازی نیاز داریم‪.‬‬
‫در این روش وقتی اتصال برقرار شد‪ ،‬مسیری از ماشین مبدا به مقصد بعنوان بخش ی از تنظیم‬
‫اتصال انتخاب میشود و در جداول مسیریاب های میانی ذخیره میشود‪.‬‬
‫مسیریابها و میزبانها در این روش اقدامات زیر را انجام میدهند‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪7‬‬
‫نگهداری وضعیت هر یک از اتصاالت‬
‫‪ ‬جایگزین کردن برچسب مسیر (در مسیریابهای میانی)‬
‫‪ ‬حذف برچسب مسیر (در مسیریاب یا میزبان انتهایی)‬
‫‪ ‬درج برچسب (در مسیریاب یا میزبان ابتدایی)‬
‫در منابع به این روش راهگزینی برچسب‬
‫‪ label switcing‬نیز میگویند‬
‫‪Routing within a virtual-circuit subnet.‬‬
)Forwarding table( ‫جدول هدایت‬
VC number
12
1
a
2
22
32
3
Interface number
‫مسیریابها وضعیت تمامی اتصالها را نگه میدارند‬
Forwarding table in router a
Incoming interface
1
2
3
1
…
Incoming VC #
12
63
7
97
…
Outgoing interface
3
1
2
3
…
Outgoing VC #
22
18
17
87
…
8
Virtual Circuits: Signaling Protocols
VC ‫ نگهداری و خاتمه دهی به یک‬،‫فرایندهای مربوط به برقراری‬
‫ استفاده شده‬X.25 ‫ و‬frame-relay ،ATM ‫در پشته های پروتکلی‬
.‫در اینترنت امروزی استفاده نشده است‬



6. Receive data
application
3. Accept call
transport
2. Incoming call network
5. Data flow begins
4. Call connected
application 1. Initiate call
data link
physical
transport
network
data link
physical
9
‫مقایسه زیر شبکه داده گرام و زیر شبکه مدار مجازی‬
‫‪10‬‬
‫تحلیل جدول‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫مدارهای مجازی اجازه میدهند بسته ها بجای آدرس کامل‪ ،‬تنها شماره مدار مجازی را حمل کنند‬
‫اگر طول پیام کوتاه باشد‪ ،‬حمل آدرس مبدا و مقصد‪ ،‬سربار زیادی را ایجاد میکند‬
‫روش اتصال گرا مستلزم آماده سازی اتصال قبل از ارسال است ولی شناسایی پورت خروجی در‬
‫مسیریاب ساده تر است‬
‫در شبکه داده گرام آماده سازی اولیه وجود ندارد ولی یافتن وارده ای از جدول که حاوی مقصد‬
‫باشد‪ ،‬روش پیچیده تری احتیاج دارد‪.‬‬
‫مهمترین سرویسهایی که توسط این الیه ارائه میشود عباتند از“‬
‫مسیر مجازی (‪ )virtual circuit‬یا داده گرام (‪)datagram‬‬
‫‪11‬‬
‫در پشته پروتکلی ‪ TCP/IP‬الیه شبکه خدمات بدون‬
‫اتصال را ارائه میدهد‬
‫مسائل اصلی در الیه شبکه‬
‫‪‬‬
‫نام گذاری منطقی‬
‫‪‬‬
‫‪‬‬
‫الگوریتم مسیریابی‬
‫‪‬‬
‫‪‬‬
‫دو دسته کلی الگوریتمهای ”بردار‪-‬فاصله“ و ”حالت پیوند“ بررس ی خواهند شد‬
‫کنترل ازدحام‬
‫‪‬‬
‫‪12‬‬
‫با عنایت به اینکه در آینده بررس ی پشته پروتکلی ‪ TCP/IP‬ارائه خواهد شد‪،‬‬
‫این موضوع در فصل بعد بطور جدی بررس ی میگردد‬
‫مطالب مربوط به صف بندی بیان میگردد‬
‫مسیریاب‬
‫‪‬‬
‫‪‬‬
‫‪13‬‬
‫مسیریاب عنصری راهگزین در شبکه است که هر پورت آن به یک زیر‬
‫شبکه متصل میباشد‪.‬‬
‫بررس ی الزم روی بسته وارد شده به روتر انجام میگیرد و باتوجه به آدرس‬
‫مقصد‪ ،‬در زیر شبکه مناسب قرار داده میشود‪.‬‬
‫الگوریتم مسیریابی‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫همانطور که بیان شد‪ ،‬وظیفه اصلی الیه شبکه‪ ،‬هدایت بسته ها از ماشین مبدا‬
‫به ماشین مقصد است‬
‫در اغلب زیر شبکه ها بسته ها باید چند جهش (‪ )hop‬انجام دهند تا به مقصد‬
‫برسند‬
‫در حاالتی که مبدا و مقصد در یک شبکه نباشند‪ ،‬مسیریابی باید انجام شود‬
‫”‪“A‬‬
‫”‪“B‬‬
‫‪R‬‬
‫‪14‬‬
‫‪How does R choose a next-hop‬‬
‫?‪on the path towards host B‬‬
‫خواص الگوریتم مسیریابی‬
‫‪‬‬
‫صرفنظر از اینکه آیا مسیرها برای هر بسته بطور مستقل انتخاب شود و‬
‫یا وقتی اتصال جدیدی در حال شکل گیری است (در ارتباطات اتصال‬
‫گرا) خواص زیر باید در الگوریتم وجود داشته باشد‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪15‬‬
‫صحت (‪)Correctness‬‬
‫سهولت (‪)Simplicity‬‬
‫تحمل عیب (‪)robustness‬‬
‫پایداری (‪)stability‬‬
‫عدالت و بهینگی (‪)fairness & optimality‬‬
‫‪‬‬
‫صحت (‪)Correctness‬‬
‫‪‬‬
‫‪‬‬
‫سهولت (‪)Simplicity‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫چنانچه تغییری در شرایط اتصاالت ایجاد نشود باید الگوریتم مسیریابی همگرا گردد‬
‫عدالت و بهینگی (‪)fairness & optimality‬‬
‫‪‬‬
‫‪16‬‬
‫انتظار میرود که شبکه های بزرگ‪ ،‬سالها بدون عیب به کار خود ادامه دهند‬
‫در این مدت ممکن است اشکاالت سخت افزاری و نرم افزاری گوناگونی حادث شوند و توپولوژی چندین بار‬
‫تغییر پیدا کند‪ ،‬الگوریتم مسیریابی باید بتواند بدون توقف کار کند و از عهده برخورد با تغییرات در شبکه‬
‫برآید‬
‫پایداری (‪)stability‬‬
‫‪‬‬
‫‪‬‬
‫باتوجه به محدودیتهای حافظه و توان پردازش ی در مسیریابها و از طرف دیگر حجم باالی ترافیک عبوری از هر‬
‫مسیریاب باید الگوریتمهای مسیریابی دارای پیچیدگی پایین باشند‬
‫تحمل عیب (‪)robustness‬‬
‫‪‬‬
‫‪‬‬
‫باید اقدامات صورت گرفته برای هدایت بسته در نهایت منتج به رسیدن بسته به مقصد گردد‬
‫الگوریتم باید به نحوی عمل کند تا توازن بار روی تمامی مسیریابها و لینکهای ارتباطی وجود داشته باشد‬
forwarding ‫ و‬routing ‫ساز و کار‬
routing algorithm
local forwarding table
dest. net. addr. Output port
65/8
128.9/16
128.9.16/20
128.9.19/24
3
2
2
1
dest. IP addr. in arriving
packet’s header
128.9.16.14
1
3 2
17
Graph ‫مدلسازی زیر شبکه با‬
2
u
Graph: G = (N,E)
1
5
v
2
x
3
w
3
1
5
z
1
y
2
N = ‫ { = مجموعه روترها‬u, v, w, x, y, z }
E = ‫( {=مجموعه لینکها‬u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z) }
18
)costs( ‫ هزینه ها‬:Graph ‫مدلسازی‬
c(x,x’) = cost of link (x,x’)
 e.g., c(w,z) = 5
 cost could always be 1, or inversely
related to
 Inverse of bandwidth,
 congestion level & queue length
 Stability (Is path up or down?)

2
u
1
5
v
2
x
3
w
3
1
5
z
1
y
2

Cost of path (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)
‫ چیست ؟‬z ‫ و‬u ‫ کوتاه ترین مسیر بین دو گره‬:‫سوال‬
‫الگوریتم مسیریابی پاسخ این سوال را خواهد داد‬
19
‫تکنیک ‪ :1‬راهکار ساده لوحانه‬
‫سیل آسا (‪ :)Flood‬بسته ورودی را در تمامی پورتهای خروجی بجز پورتی که بسته از آن وارد شده‬
‫ارسال کنیم‬
‫‪R‬‬
‫مزایا‪:‬‬
‫‪‬بسیار ساده‬
‫‪‬تمامی مقصدها در شبکه در دسترس هستند‬
‫معایب‪:‬‬
‫‪‬برخی روترها یک بسته را چندین بار دریافت میکنند‬
‫‪‬ممکن است بسته ها برای همیشه درون یک حلقه گرفتار شوند‬
‫‪‬غیرکارآمد است‬
‫‪20‬‬
‫درختهای پوشا (‪)Spanning Trees‬‬
‫سوال‪ :‬یافتن کم هزینه ترین مسیر از تمامی گره های‬
‫)‪ (R1, …, R7‬به ‪R8.‬‬
‫”‪“A‬‬
‫‪R6‬‬
‫‪4‬‬
‫‪3 R‬‬
‫‪7‬‬
‫‪2‬‬
‫‪R8‬‬
‫”‪“B‬‬
‫‪21‬‬
‫‪R4‬‬
‫‪3‬‬
‫‪R2‬‬
‫‪1‬‬
‫‪1‬‬
‫‪2‬‬
‫‪2‬‬
‫‪R1‬‬
‫‪2‬‬
‫‪R5‬‬
‫‪4‬‬
‫‪R3‬‬
‫یک درخت پوشا‬
‫‪4‬‬
‫‪R7‬‬
‫‪2‬‬
‫‪R8‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪2‬‬
‫‪2‬‬
‫‪2‬‬
‫‪R5‬‬
‫‪R3‬‬
‫‪4‬‬
‫یک راه حل یافتن درخت پوشا که ریشه آن ‪ R8‬است میباشد‪.‬‬
‫خاصیت درخت این است که در آن حلقه وجود ندارد‬
‫خاصیت پوشا بودن به این معنی است که تمامی گره ها را در بر میگیرد‬
‫دو الگوریتم اصلی در این خصوص مورد بررس ی قرار میگیرند‪:‬‬
‫‪‬‬
‫‪‬‬
‫‪22‬‬
‫‪3‬‬
‫‪1‬‬
‫‪3‬‬
‫‪1‬‬
‫‪R1‬‬
‫الگوریتم بلمن فورد (‪ )Bellman-Ford‬با عنوان بردار فاصله ( ‪)Distance Vector‬‬
‫الگوریتم کوتاهترین مسیر دگسترا ( ‪ )Dijkstra’s shortest path first‬با عنوان حالت پیوند‬
‫(‪)Link State‬‬
‫دسته بندی های مختلف الگوریتم های مسیریابی ‪1‬‬
‫‪‬‬
‫بصورت مرکزی (‪ )Centralized‬در مقایسه با توزیع شده (‪)Distributed‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫مسیریابی توسط مبدا (‪ )Source based‬در مقایسه با گام به گام ( ‪hop‬‬
‫‪)by hop‬‬
‫‪‬‬
‫‪‬‬
‫‪23‬‬
‫مرکزی‪ :‬یک گره اطالعات را جمع آوری میکند و سپس اطالعات مسیریابی (جداول مسیریابی)‬
‫را برای تمامی گره ها ارسال میدارد‬
‫توزیع شده‪ :‬تمامی گره ها با یکدیگر برای تکمیل جدول مسیریابی همکاری میکنند‬
‫‪ :Source routing‬بسته های دیتا حاوی گام بعدی در خود هستند‬
‫‪ :Hop by hop‬در هر گام روتر تصمیم میگیرد که گام بعدی کدامیک از روترهای‬
‫همسایه هستند‪.‬‬
‫دسته بندی های مختلف الگوریتم های مسیریابی ‪2‬‬
‫‪‬‬
‫مسیریابی آماری ( ‪ )Stochastic‬در مقایسه با مسیریابی متقن‬
‫(‪)deterministic‬‬
‫‪‬‬
‫‪ :Stochastic‬در این روش ممکن است در جدول مسیریابی به ازای یک‬
‫مسیر مشخص چندین وارده بعنوان گام بعدی باشند‪.‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪ :Deterministic‬همواره برای رسیدن به یک مقصد فقط یک گزینه برای‬
‫گام بعدی وجود دارد‪.‬‬
‫پویا (‪ )Dynamic‬در مقایسه با ایستا (‪)Static‬‬
‫‪‬‬
‫‪‬‬
‫‪24‬‬
‫بصورت تصادفی در هر لحظه یکی از خروجی ها مشخص میشود‬
‫قابلیت توزیع بار فراهم میگردد‬
‫پویا (‪:: )Dynamic‬مسیریابی براساس اطالعات بدست آمده از وضعیت‬
‫شبکه تعیین و به روز میشود‪.‬‬
‫ایستا (‪ :)Static‬مسیرها بسیار کند به روز رسانی میشوند‬
‫اصل بهینگی‬
‫‪‬‬
‫صرفنظر از توپولوژی شبکه و ترافیک‪ ،‬برای تمامی شبکه ها در‬
‫مسیرهای بهینه حکمی بنام اصل بهینگی وجود دارد‬
‫‪‬‬
‫‪25‬‬
‫این اصل بیان میکند که اگر مسیریاب ‪ j‬در مسیر بهینه از مسیریاب ‪ i‬تا‬
‫مسیریاب ‪ k‬قرار دارد‪ ،‬آنگاه مسیر ‪ i‬تا ‪ j‬و مسیر ‪ j‬تا ‪ k‬نیز مسیرهای بهینه‬
‫هستند‪.‬‬
‫‪Sink tree‬‬
‫الگوریتم بردار فاصله ( بلمن فورد)‪:‬‬
‫فرضیات ما در خصوص اطالعات موجود در هر روتر‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪26‬‬
‫روتر آدرس تمامی روترهای همسایه اش را میداند‬
‫روتر میتواند با همسایگانش به تبادل اطالعات بپردازد‬
‫روتر میتواند کم هزینه ترین مسیر به دیگر روترهای شبکه را بصورت‬
‫بردار فاصله به اطالع همسایگانش برساند‬
‫روتر بردارهای فاصله را از همسایگانش دریافت میکند‬
‫روتر اطالعات مسیرهای بهینه و گام بعدی تا دیگر روترها را به روز رسانی‬
‫میکند‬
‫مثالی از الگوریتم بردار فاصله‬
(a) A subnet. (b) Input from A, I, H, K, and the new routing table for J.
27
‫الگوریتم کلی مسیریابی بردار فاصله‬
‫هر گره در شبکه‪:‬‬
‫‪wait for (change in local link‬‬
‫‪cost or message from‬‬
‫)‪neighbor‬‬
‫‪recompute distance table‬‬
‫بصورت تکراری و غیر همزمان‪:‬‬
‫هر تکرار در هر گره بدالیل زیر رخ میدهد‪:‬‬
‫‪ ‬هزینه لینک محلی تغییر یابد‬
‫‪ ‬دریافت پیام از همسایه که منجر به تغییر‬
‫هزینه ها شود‬
‫‪Distributed:‬‬
‫‪‬‬
‫‪if least cost path to any‬‬
‫‪destination has changed,‬‬
‫‪notify neighbors‬‬
‫‪28‬‬
‫هر گره به محض تغییر در بردار فاصله خود تا‬
‫ً‬
‫یکی از روترهای شبکه سریعا آنرا به‬
‫همسایگانش اطالع میدهد‬
‫مساله بینهایت گرایی (‪)infinity problem‬‬
‫‪‬‬
‫‪‬‬
‫‪30‬‬
‫همانطور که در شکل مشخص است در صورتی که ارتباط بین روتر ‪ A‬و‬
‫‪ B‬قطع شود‪ ،‬گره های دیگر متوجه قطع شدن آن نمیشوند‪.‬‬
‫برای حل این روش یک مقدار ماکس ی مم برای فاصله تا یک گره تعیین‬
‫میشود‪.‬‬
‫مسیر یابی‬
‫‪‬‬
‫روش دگسترا‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪31‬‬
‫حالت پیوند (‪)Link-State Routing Algorithm‬‬
‫هزینه تمامی لینکهای شبکه برای تمامی گره های شبکه شناخته شده است‬
‫هر گره فاصله خود تا همسایگانش را بصورت همه پخش ی برای تمامی‬
‫مسیریابها ارسال میکند‬
‫هر گره باتوجه به اطالعات دریافتی توپولوژی کامل شبکه را در اختیار دارد‬
‫طبق الگوریتم دگسترا کوتاهترین مسیر به تمامی مقصدها محاسبه و جدول‬
‫مسیریابی تکمیل میگردد‬
‫اصطالحات‬
‫‪5‬‬
‫‪C‬‬
‫‪5‬‬
‫‪1‬‬
‫‪F‬‬
‫‪2‬‬
‫‪E‬‬
‫‪3‬‬
‫‪3‬‬
‫‪1‬‬
‫‪5‬‬
‫‪B‬‬
‫‪2‬‬
‫‪D‬‬
‫‪C(A,C)=5; C(C,A)=5‬‬
‫‪C(B,D)=2; C(D,B)=3‬‬
‫…‬
‫‪Source=A‬‬
‫‪p(F): A-D-E-F‬‬
‫‪D(F)=4‬‬
‫‪‬‬
‫‪A‬‬
‫‪23‬‬
‫‪N: A, B, C, D, E, F‬‬
‫‪32‬‬
‫‪‬‬
‫‪1‬‬
‫‪‬‬
‫‪:‬مثال‬
‫‪‬‬
‫‪ :N‬مجموعه گره هایی که فاصله تا آنها از‬
‫مسیریاب ‪ A‬بینهایت نیست‪.‬‬
‫)‪ :c(i,j‬هزینه لینک از گره ‪ i‬تا گره ‪ .j‬اگر‬
‫دو گره همسایه مستقیم نباشند این‬
‫هزینه بینهایت است‪.‬‬
‫)‪ :p(v‬گره های قرار گرفته از راس مبدا‬
‫تا مقصد ‪v‬‬
‫)‪ :D(v‬مقدار صحیح از هزینه بین راس‬
‫مبدا و راس مقصد ‪v‬‬
n = number of nodes (except the source)
)‫ (دگسترا‬Shortest Path ‫الگوریتم کوتاهترین مسیر‬
1 Initialization:
2 N = {A}
D(v)
3 for all nodes v
4
if v adjacent to A
5
then D(v) = c(A,v)
6
else D(v) = infinity
A
7
8 Loop
9
find w not in N such that D(w) is a minimum
10 add w to N
n(n+1)/2) 11 update D(v) for all v adjacent to w and not in N:
times 12
D(v) = min( D(v), D(w) + c(w,v) )
13 /* new cost to v is either old cost to v or known
14
shortest path cost to w plus cost from w to v */
15 until all nodes in N
v
c(w,v)
w
D(w)
33
‫ مثال‬:Dijkstra’s Algorithm
computes least cost paths from node A to all other nodes
Step
0
1
2
3
4
5
start N
A
AD
ADE
ADEB
ADEBC
ADEBCF
D(B),p(B) D(C),p(C) D(D),p(D) D(E),p(E)
5,A-C
2,A-B
infinity
1,A-D
4,A-D-C
2,A-B
2,A-D-E
1,A-D
2,A-D-E
1,A-D
2,A-B 3,A-D-E-C
2,A-D-E
1,A-D
2,A-B 3,A-D-E-C
2,A-B
2,A-B
2,A-D-E
2,A-D-E
1,A-D
1,A-D
3,A-D-E-C
3,A-D-E-C
D(F),p(F)
infinity
infinity
4,A-D-E-F
4,A-D-E-F
4,A-D-E-F
4,A-D-E-F
5
D(v): Distance (cost) of A to v.
P(v): nodes along path fromA to v.
2
A
B
2
1
D
3
3
1
C
5
1
E
F
2
34
‫مثالی دیگر از اجرای الگوریتم دگسترا‬
The first 5 steps used in computing the shortest path from A to D.
The arrows indicate the working node.
35
‫مقایسه روش بردار فاصله و حالت پیوند‬
‫‪‬‬
‫بردار فاصله (‪)Distance vector‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫‪‬‬
‫حالت پیوند (‪)Link-state‬‬
‫‪‬‬
‫‪‬‬
‫‪36‬‬
‫هر روتر اطالعات بردار فاصله خود را برای همسایگانش ارسال میکند‬
‫بردار فاصله ارسالی حاوی فاصله هر روتر تا تمامی روترهای شبکه میباشد‬
‫مشکل بینهایت گرایی دارد‬
‫روش قدیمی تری است‬
‫هر روتر اطالعات پیوندهای خودش (فاصله تا همسایگانش) را برای تمامی روترهای شبکه‪،‬‬
‫بصورت همه پخش ی ارسال میکند‪.‬‬
‫پروتکلهای جدید از این روش استفاده میکنند‪.‬‬

similar documents