دانلود - دانشگاه شاهد
Download
Report
Transcript دانلود - دانشگاه شاهد
شبکه هاي کامپيوتري
فصل پنجم:
اليه شبکه ()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
هر روتر اطالعات بردار فاصله خود را برای همسایگانش ارسال میکند
بردار فاصله ارسالی حاوی فاصله هر روتر تا تمامی روترهای شبکه میباشد
مشکل بینهایت گرایی دارد
روش قدیمی تری است
هر روتر اطالعات پیوندهای خودش (فاصله تا همسایگانش) را برای تمامی روترهای شبکه،
بصورت همه پخش ی ارسال میکند.
پروتکلهای جدید از این روش استفاده میکنند.