پروتکل OSPF یک پروتکل Link State معرفی می شود. پروتکل های Link State، پروتکل هایی هستند که در شروع کار Router ها با ارسال Hello packet سعی می کنند که یک Adjacencie ایجاد کنند. بعد از برقراری Adjacencie ،Router ها با Neighbor هایشان Packet ها را ردو بدل می کنند که اصطلاحا به این ارسال، ارسال Full Update گفته می شود.
Full Update یعنی یک Update کلی که Router در رابطه با تمامی Link هایی که دارد، برای دیگر Router ها ارسال می کند. یک Link یعنی یک Interface برروی Interface.
Router Link State یعنی Router وضعیت یک Interface یا یک Link را به اطلاع Router های دیگر که با آن ها Adjacencie دارد را می فرستد. اطلاعاتی که Router ها به این فرم، Advertise می کنند را LSAS گفته می شود.
در Router OSPF ها بعد از برقراری Adjacencie بین هم شروع به ارسال LSA به یکدیگر می کنند و این باعث می شود که تمامی Router ها اطلاعات در رابطه با تمامی Link هایی که در Network وجود دارد را به دست بیاورند.
اطلاعاتی که Router ها به این فرم دریافت می کنند باعث بوجود آمدن یک Database می شود که این Database را با نام LSDB می شناسیم. در تمامی Router هایی که در Network ما وجود دارند دارای LSDB یکسانی هستند. بعد از آن که Router ها LSDB را ایجاد کردند براساس الگوریتم SPF، شروع به محاسبه بهترین مسیر برای رسیدن به هر Network که توی این LSDB دارند میپردازند.
OSPF یک پروتکل استاندارد است که برای Network خیلی بزرگ طراحی شده است.
وقتی که تعداد Router ها در شبکه افزایش پیدا می کند، حجم محاسباتی که Router ها انجام می دهند می تواند خیلی زیاد باشد و همچنین فضایی که به LSDB داده می شود خیلی زیاد می باشد. به همین خاطر برای Minimize کردن فضایی که LSDB اشغال می کند یا برای پایین آاوردن میزان محاسبات Router ها،ما شبکه ی خودمان را به یک سری Area تقسیم می کنیم.
هر Area در واقع یک تعداد Router را درون خودش قرار می دهد. یکی از این Area ها که وجودش ضروری است Area،Backbone یا Area نامیده می شود.
شماره Area ها می تواند یا با چهارتا 0.0.0.0 IP نامیده می شود و یا می تواند بصورت یک عدد نامیده می شود.
Area، رابط بین همه ی Area ها می باشد. به این معنی که همه ی Area ها مثل (1,2,3,…) باید مستقیما به Area وصل باشند. به عبارت دیگر Area یک Area ترنزیت است.
در Router ،OSPF هایی که در Area قرار می گیرند، تحت عنوان Backbone Router نامیده می شوند.
Router هایی که در رابطه بین Area و Area های دیگر هستند آن ها را با نام ABR می شناسیم. ( Router هایی را هم داریم که آن ها را با نام ASBR می شناسیم. این ها Router هایی هستند که رابط بین Domain و یک Domain دیگر مثل Eigrp ،RIP یا هر Domain دیگری است.)
Router ها برای برقراری Adjancencie از Hello Packet استفاده می کنند. این Hello packet شامل یک سری اطلاعات می شود. هر Router توی OSPF برای خودش یک Route ID دارد. این Route-ID ،IP یکی از Interface های آن RRoute است.
Hello Packet ها هرچند ثانیه یک بار بین Router ها رد و بدل می شوند. این Interval بستگی به نوع Interface از نوع LAN دارد.
Hello Packet ها هر 10 ثانیه یک بار بین Router ها رد و بدل می شوند.
اگر تا 4 برابر Hello Time یعنی توی چنین Network ها تا 40 ثانیه که بهش Dead Interval گفته می شود و Router ها از هم دیگر Hello Packet دریافت نکنند یا از یک Neighbor، Hello Packet دریافت نکنند، فرض می کنند که آن Network، از بین رفته است.
لیست Neighbor ها جزو اطلاعات دیگری است که Hello packet نوشته می شود که روی این Interface چه Neighbor های وجود دارد.
Area ID شماره ی آن Area است که روی آن Interface به Router های دیگر فرستاده می شود.
Router Priority یک پارامتری است که مورد استفاده Router ها برای انتخاب دوتا رل مهم توی چنین شبکه ای است. ( رل DR و رل BDR )
در شبکه هایی که جنس LAN هستند یک Router حتما بنام DR انتخاب می شود. DR ،Routerی است که اصطلاحا با نام مرکز بخش Update می شناسیم، یعنی هر Router، هر Update ی که داشته باشد، آن را به IP،224.0.0.6 ارسال می کند. این IP ،IPی است که Router ی که رل DR دارد روی این IP در حال گوش دادن استتا Update دریافت بکند.
DR بعد از گرفتن Update برروی این IP، آن Update ها را به سایر Router ها که در داخل آن Segment قرار دارند می رساند. Update هایی که DR توی شبکه به سایر Router ها ارسال می کند روی 224.0.0.5 IP، فوروارد می شوند.
Router دیگری بنام BDR وجود دارد که Backup DR نامیده می شود، که اگر DR از بین رفت، سریعا جایگزین آن بشود.
انتخاب Router های DR ،BDR از روی Priority صورت می گیرد. هر Router که Priority بالاتری داشته باشد آن Router برای رل DR انتخاب می شود. این Priority بصورت پیش فرض روی Interface Router ها با عدد 1 تنظیم شده است. بنابراین هر Router که در آن Segment زودتر بالا بیاید با نام DR انتخاب می شود. اگر بخواهیم می توانیم بین Router ها، Authentication Password راه اندازی کنیم.
این الگوریتم به ازای هرNetwork ی که در LSDB وجود دارد یک TREE درست کرده و خودش را در Root آن Tree قرار می دهد و شروع به انتخاب بهترین مسیر برای رسیدن به آن Network، برای انتخاب بهترین مسیر از یک پارامتری بنام Cost استفاده می کند.
برای محاسبه Cost از Reference Bandwidth استفاده می شود.
Reference Bandwidth بصورت پیش فرض در حال حاضر بر روی Router ها 100 mbt/s است. برای محاسبه Cost از فرمول 10/bandwidth استفاده می شود. اگر Fast Ethernet، باشد Band width ،10 به توان 8 است و cost بصورت 10/10-1 خواهد شد.
اگر Interface از نوع Ethernet باشد Bandwidth ،10 به توان 7 می باشد و 10/10=10 cost خواهد بود و برای Interface های Serial که بصورت پیش فرض Bandwidth ،1549kbit/s است و cost=64 می شود.
Router – ID یکی از IP های Router می باشد. بصورت پیش فرض این IP ،IP هایی است که از همه ی IP ها بزرگتر است. البته برای Interface هایی که Active هستند.
اما اگر Interface Loopback داشته باشیم IPloopback به IP سایر Interface ها ترجیح داده می شود. اگر چندتا Interface Loopback داریم آن Interface Loopback که IP آن از بقیه بزرگتر است را به عنوان Router -ID انتخاب می شود.
چیزی که در OSPF توصیه شده است این است که ما اجازه ندهیم که Router – ID به صورت اتوماتیک انتخاب می شود.