وظایف لایه های OSI
لایه application |
نزدیک ترین لایه به کاربر می باشد و همیشه در خواست در این لایه انجام می گیرد یعنی نقطه ی شروع از application است. برای مثال چک کردن فرستادن ایمیل در این لایه انجام می گیرد.
پروتکل هایی که در این لایه هستند عبارتند از http و https ,برای دانلود کردن و آپلود کردن FTP, برای فرستادن ایمیل smtp وimap4 است.
Load شدن در Inbox همان pop3 می باشد.
وقتی که در خواست ایجاد شد به لایه ی presentation می رسد.
لایه presentation |
کار اصلی که در این لایه انجام می گیرد مشخص کردن format دیتایی است که دریافت و یا ارسال می گردد.
برای مثال زمانی که http را انتخاب می کنیم مشخص می کنیم که به دنبال صفحاتی هستیم که asp یا php یا html نوشته شده است.
یا زمانی که داریم دانلود می کنیم داریم مشخص می کنیم که به دنبال صفحاتی هستیم که با پسوند rar و pdf و غیره می باشند.
2 نکته ی مهم در لایه ی Presentation
- هر زمان که data را کد گذاری می کنیم (encryption) در حقیقت در داخل این لایه این کار را انجام می دهیم که کد گذاری ها دارای الگوریتم ها ی متفاوتی می باشد.اما نکته ی قابل توجه این است که الگوریتمی که انتخاب شده است با الگوریتم انتخاب شده در طرف مقابل باید یکسان باشد.
- compression که همان فشرده سازی است اینکه با چه فرمتی اطلاعات را zip کنیم و طرف مقابل با چه فرمتی اطلاعات راuncompress کند .
لایه ی session |
کلیه ی هماهنگی ها قبل از ایجاد یک ارتباط در این لایه انجام می گیرد. مخصوصا در خصوص پروتکل های انتخاب شده. قبل از ایجاد یک ارتباط در لایه ی مبدا و مقصد در لایه ی session یک ارتباط بر قرار می شود که در چند چیز با یکدیگر به تفاهم می رسند.
نکته در سه لایه ی بالا header ندارند و تنها در آنها data تشکیل می گردد.
در مورد ارتباطاتی که در شبکه موجود است باید به چند نکته توجه کرد:
در شبکه دو نوع ارتباط موجود است مطمئن یا reliable – غیر مطمئن یا unreliable
ارتباط مطمئن (reliable): فرض کنیم که دو pc می خواهند برای هم اطلاعات بفرستند در این حالت فرستنده خیلی برای آن مهم است که اطلاعات به دست گیرنده برسد.
زمانی که فرستنده packet را می فرستد گیرنده باید به فرستنده خبر دهد که packet به دست آن رسیده است.که به این خبر acknowledge گفته می شود که به معنای تایید کردن می باشد.
حال نوع connection type توسط پروتکلی که ما انتخاب کرده ایم مشخص می شود.در داخل پروتکل ها به صورت Default مشخص شده است که مطمئن هستند یا خیر.
حال ممکن است که این سوال پیش بیاید که کدام یک از connection type ها مطمئن هستند و کدام یک نامطمئن هستند.
این بستگی دارد به کاربرد آن برای مثال در ویدئو کنفرانس نیازی به ارتباط امن نیست بنابر این برای صوت و ویدئو از ارتباط نا امن استفاده می شود. ولی برای ایمیل از ارتباط امن استفاده می شود.
Port چیست؟
به درگاه ورود و خروج اطلاعات port گفته می شود.در واقع دو نوع پورت داریم :
پورت های فیزیکال و پورت های لاجیکال.
پورت های فیزیکال پورت هایی هستند که قابل دیدن هستند. ولی پورت های لاجیکال قابل مشاهده نیستند و در واقع درOS قرار دارند. و برای ورود و خروج اطلاعات می باشند.
درواقع دو نوع پورت لاجیکال (logical) داریم.
پورت های udp و پورت های tcp
پورت های tcp همان پورت های reliable هستند و پورت های پورت های udp همان پورت های unreliable هستند.
همه ی نود هایی که در شبکه هستند 1 تا 65535 پورت udp و1تا 65535 پورت tcp دارند.
طبق استاندارد از پورت 1 تا پورت 1024 برای server ها رزرو شده است چه udp و چه tcp
وقتی که data تشکیل شد ابتدا باید از پورت لاجیکال خارج شود سپس از پورت فیزیکال ولی در قسمت گیرنده ابتدا از فیزیکال وارد می شود سپس از لاجیکال وارد می گردد.در داخل os باید پورتی وجود داشته باشد تا data را بتواند دریافت کند.
برای مثال فرض کنید که یک webserver داریم پروتکلی که باید web را ارائه دهد باید پورت 80 آن باز بوده و در حالت listeningقرار دارد.
که اگر درخواستی وارد شد بتواند از طریق آن پورت آن را دریافت کند. در قسمت کلاینت یک پورت به صورت random باز می شود.که این پورت بین 1024 تا 65535 می باشد باز می شود تا data از طریق آن بتواند عبور کند.
لایه ی TRANSPORT |
در header لایه ی 4 source port و اینکه به دنبال چه پورتی می گردیم تعریف شده است.
برای دیدن پورت های باز در سیستم باید در قسمت cmd تایپ شود netstat
در این زمان state 3 حالت دارد:
1-listening: زمانی که server منتظر یک درخواست است اما پورت هنوز بسته است.
Established (برقرار): به این معنی است که ارتباط برقرار شده است.
Time waiting: درخواستی داریم منتظر جواب هستیم اما پورت هنوز بسته است.
flow control: در واقع همان کنترل جریان می باشد.
هر زمان که فرستنده شروع به فرستادن data کند و این کار را تند تند انجام دهد اما گیرنده نتواند آن process را انجام دهد lost data را داریم در واقع اطلاعات از بین می رود.پس باید طبق یک استانداردی فرستنده و گیرنده توافق کنند که این اطلاعات از بین نرود.
برای مثال گیرنده به فرستنده می گوید 2 تا packet که فرستادی صبر کن تا من process را انجام دهم process که تمام شد دوباره 2 تا packet بفرست.
2 تا مکانیزم در کنترل جریان وجود دارد که تقریبا یکی از آنها منسوخ شده است.
اولین روش همان ready و notready می باشد.
در این روش فرستنده به گیرنده یک سیگنال می فرستاد که اسم آن ready بود اگر که گیرنده آمادگی دریافت را داشت یک سیگنال به نام ready را به فرستنده می فرستاد .و فرستنده شروع به فرستادن data می کرد اما اگر گیرنده بافرش پر می شد یک سیگنال به نام not ready می فرستاد تا دیگر فرستنده اطلاعاتی را نفرستد.
مشکلی که در این روش وجود دارد delay می باشد زمانی که گیرنده سیگنال not ready را می فرستد تا زمانی که این سیگنال به فرستنده برسد فرستنده چند packet دیگر را ارسال کرده است. وتازه فرستنده سیگنال not ready را دریافت کرده است در این صورت اطلاعات پایانی از بین می رود.
مکانیزم دیگری که وجود دارد windowing می باشد.
در این روش قبل از فرستاده شدن data فرستنده و گیرنده بر سر حجم packet با یکدیگر تفاهم می کنند.
CONNECTION MULTI PLEXING
ممکن است که یک سرور هم زمان چندین سرویس را ارئه دهد و یک کلاینت نیز به صورت هم زمان چندین درخواست داشته باشد.
و connection ها نیز همه established شود در این صورت کار تفکیک کردن این درخواست ها بر عهده ی کیست؟ این کار برعهده ی لایه ی 4 است.لایه ی 4 این درخواست ها را با شماره ی پورت ها انجام می دهد.
Pdu چیست؟
به data که در هر لایه است به همراه header آن لایه pdu گفته می شود.
PDU لایه 4 چیست؟
pdu موجود در لایه 4 تولید می شود در اصطلاح segment گفته می شود.
لایه ی network |
subnet آدرس های مبدا و مقصد و تشخیص مسیر لازم پروتکل های IP , IPX در این لایه استفاده می گردند.
IPv4:
طول این ip 32 بیت می باشد که هر 8 بیت توسط یک . (نقطه) هم جدا شده اند.
مانند 192.168.110.1 به طور کلی در دنیا 2 به توان 32 تا ipv4 وجود دارد.
در اوایل که ipv4 را ایجاد کردند جمعیت جهان به این اندازه نبود و اینترنت به این اندازه گسترده نبود و ipv4 جوابگوی نیاز ها بود و کفایت می کرد اما با گسترش جمعیت از سال 1997 با تشکیل کمیته ای به این نتیجه رسیدند که با گسترش این روند در سال های 2005 تا 2011 با کمبود ip مواجه خواهیم شد از آن زمان به فکر استراتژی های مختلفی بودند در سال 2003 ipv6ابداع شد.
مزیت های ipv6 نسبت به ipv4:
- طول آن 128 بیت است در واقع 2 به توان 128 ip خواهیم داشت.
- به صورت هگزا دسیمال نوشته می شود و ماشین به حالت باینری آن را می خواند.
Ipv4 از لحاظ ساختاری به 2 قسمت تقسیم می شود network id و hostid درون شبکه فقط نود هایی می توانند با یکدیگر ار تباط برقرار کنند که در قسمت network id کاملا شبیه به یکدیگر می باشند.
Network id: به مشخصه ی شبکه گفته می شود نود هایی که مشخصه ی شبکه آنها مانند یکدیگر می باشد می توانند با یکدیگر ارتباط شبکه ای داشته باشند.
Hostid: مانند اسم کوچک افراد در یک خانواده می باشد مشخصه ی آن نود از شبکه است که در درون شبکه قرار گرفته است. در هیچ شبکه ای 2 نود وجود ندارد که قسمت net و Host یکسان با یکدیگر داشته باشند.
وظیفه ی دیگر لایه ی network روتینگ (routing) می باشد.
تعریف router : یک device می باشد که در لایه ی 3 قرار دارد و کار آن routing می باشد
Routing: ارتباط دادن چندین شبکه به یکدیگر با netid های متفاوت.
کار دوم router: اتصال دادن توپولوژی های مختلف به یکدیگر می باشد.
سوئیچ لایه ی3:
اگر کسی بگوید که سوئیچی دارم که در لایه ی 3 کار می کند به این منظور است که آن سوئیچ کار لایه ی 3 را انجام می دهد.
در واقع کار logical address و routing را انجام می دهد.
حالا ممکن است این سوال پیش می آید که فرق سوئیچ لایه ی3 با router چیست؟
باید به این نکته توجه کرد که پورت های سوئیچ لایه ی 3 همه اترنت rj45 هستند و هیج سوئیچی پیدا نمی شود که rj11 به آن بخورد اما router از همه نوع پورت پشتیبانی می کند.
به طور کلی سوئیچینگ برای داخل شبکه می باشد اما router برای اتصال شبکه ی داخلی به یک شبکه ی دیگر می باشد. در واقعrouter کار ان wan connectivity می باشد . اما lan connectivity می باشد.
pdu لایه ی 3 چیست؟
به pdu در لایه 3 packet یا data gram گفته می شود.
لایه DATALINK |
پروتکل های فیزیکی در این لایه به داده اضافه خواهند شد. در این لایه نوع شبکه و وضعیت بسته های اطلاعاتی (Packet) نیز تعیین می گردند. وظیفه های این لایه عبارتند از :
- انتقال مطمئن داده از طریق محیط انتقال
- آدرس دهی فیزیکی و یا سخت افزاری ( MAC )
همه ی device های شبکه یک logical address و یک physical address دارند. Logical address آدرسی است که آن را مامشخص می کنیم.
اما همه ی device ها یک آدرس هم برای خودشان دارند و آن آدرس physical می باشد.
آدرس physical در تکنولوژی های مختلف متفاوت می باشد برای مثال در تکنولوژی اترنت باید توپولوژی star باشد کابلtwistedpair استفاده شود و کارت شبکه اترنت استفاده شود و از connection rj45 استفاده شود اگر تکنولو ژی ما اترنت باشد اسم physical address ما mac می باشد.
برای دیدن mak باید در run تایپ شود cmd و در صفحه ای که باز می کند نوشته شود ipconfig /all وقتی این دستور را می زنیم در قسمتی نوشته شده است physical address که روبه روی آن یکسری کاراکتر نوشته شده است. که 12 کاراکتر می باشد که با خط تیره از یکدیگر جدا شده اند. که به صورت هگزا دسیمال می باشد که روی هم رفته 48 بیت می باشند در واقع هر کاراکتر یک نیبل می باشد.
Mac address در کل جهان unique می باشد از این 48 بیت 24 بیت اول آن را شرکت سازنده مشخص می کند و 24 بیت بعدی را سازمان ieee که تمام استاندارد های مخابرات الکترونیک و سبکه را صادر می کند می باشد.
Mac address یک چیپست بر روی کارت شبکه است که قابل تغییر می باشد.
تعریف mac address:
یک آدرس physical داخل تکنولوژِی اترنت است طول آدرس آن 48 بیت می باشد و به صورت هگزا دسیمال است 24 بیت اول آن متعلق به شرکت سازنده یآن و 24 بیت بعدی متعلق به سازمان IEEE می باشد.
که این آدرس کاملا منحصر به فرد و قابل تغییر می باشد.
برای تغییر دادن macباید آدرس زیر طی شود.
بر روی کامپیوتر کلیک راست شود
2-manage
3-device manager
4-روی کارت شبکه کلیک راست کرده
5-propertise
6-advanced
7-network address
سپس آدرسی را که می خواهیم می دهیم.
تفاوت موجود در physical address و logical address:
Physical address بر اساس تکنولوژی ها ی مختلف متفاوت می باشد برای مثال در شبکه ی اترنت فیزیکال آدرس macمی باشد.
سوالی که پیش می آید این است که sourcemac را داریم حالا destination mac را چگونه پیدا کنیم؟
پروتکلی به نام arp داریم که مخفف address resolution protocol می باشد.
که این پروتکل بر اساس destination ip برای ما destination mac را به دست می آورد.
پروتکل arp در لایه ی 3 run می شود برای کمک به لایه ی 2 در این حالت mac address کامپیوتر هایی که ارتباط با آنها برقرار شده است cache می شود.
کاربرد cache در شبکه:
هر کاری که در شبکه انجام می دهیم cache می شود تا اگر نخواستیم آن کار را مجددا انجام ندهیم از روی هارد خودمان جواب بگیریم. دیگر نیازی نیست تا آن کار را داخل شبکه انجام دهیم
برای مثال یک بار با pc1 ارتباط برقرار کردیم و mac آن را به دست آوردیم برای یک ارتباط دوم دیگر نیازی نیست که arp اجرا شود از روی data خود مک مقصد را به دست می آوریم.
برای دیدن cache arp باید در cmd تایپ شود arp –a
برای پاک کردن cache arp باید در cmd تایپ شود arp –d
وظیفه ی دیگر لایه ی دو Error checking یا error detection می باشد.
pdu که در لایه ی 2 قرار دارد چیست؟
به Pdu که در لایه ی دوم قرار دارد frame گفته می شود.
لایه ی physical |
بعد از اتمام کار لایه ی 2 حالا نوبت به انتقال data می رسد حالا data که به صورت 1,0 می باشد باید به صورت قابل فهم برایmedia در بیاید.که کار لایه ی physical می باشد.
مدیا ممکن است که کابل مسی باشد در نتیجه باید تبدیل شود به سیگنال الکتریکی و ممکن است که مدیا فیبر نوری باشد در نتیجه باید تبدیل شود به سیگنال نوری.
و اگر که wireless باشد باید تبدیل شود به سیگنال رادیویی و طرف مقابل که این data را تحویل می گیرد باید برعکس این کار را انجام دهد.
حالا باید در نظر گرفت که طرف مقابل از کجا باید بفهمد که محیط بر روی data تاثیر گذار بوده یا خیر اطلاعات صحیح انتقال پیدا کرده است یا خیر؟
لایه ی 2 بعد از قرار دادن physical address از یک فرمول به نام crc استفاده می کند برای مثال اگر x+y=z باشد
اگر x و y معلوم باشد و در فرمول قرار دهیم در این صورت z را به دست می آوریم . در crc نیز به همین صورت می باشد.
در این فرمول معلوم ها همان header ها هستند که در فرمول crc در این قسمت معلوم ها را می گذاریم که خروجی این فرمول fcsیا همان checksum می شود.که این checksum به کل دیتایی که داریم اضافه می شود.
در قسمت گیرنده بعد از تبدیل سیگنال fcs را جدا کرده و کل data را در crc قرار می دهد اگر خروجی که ایجاد می شود در قسمت گیرنده با fcs که جدا شده است یکسان بود به این مفهوم است که محیط noise نداشته است و اطلاعات از بین نرفته وpacket سالم است.
نام دیگر fcs همان trailer است.
اگر خطایی رخ داده باشد ونوع ارتباط امن باشد در این صورت باید این packet دوباره ارسال گردد. و اگر که نوع ارتباط نا امن باشد در این صورت packet کلا از بین می رود.
حال می خواهیم روندی را که یک data در لایه ها طی می کند از اول تا انتها بررسی کنیم.
فرض کنید که پشت pc خود نشسته اید و ایمیل خود را باز کرده اید و می خواهیم ایمیلی را ارسال کنیم از لایه ی application وارد لایه ی presentation می شویم در این قسمت فرمت فایل ارسالی مشخص می شود.
در این لایه ایمیل کد گذاری می شود سپس وارد لایه ی session می شویم.
آیا احتیاج به authentication داریم یا خیر اگر داشته باشیم در این قسمت انجام می شود و از طرف دیگر بر سر پروتکل ارسالی و دریافتی تفاهم می شود که برای کار ما tcp/ip می باشد.
در قسمت بعدی به لایه ی transport می رویم در این قسمت یک عدد تصادفی بین 1024 تا 65535 مثلا 1050
اما پورت destination 25 tcp می باشد. در این قسمت segment تشکیل شده است و بعد به لایه ی network می رویم .
Ip ما در این قسمت 192.168.1.50 می باشد و destination ip هم مشخص می گردد.
در این قسمت packet تشکیل می گردد و در اینجا پروتکل arp اجرا می شود تا بتوانیم physical address طرف مقابل را به دست آوریم.
Destination macو source mac به packet اضافه می شود.
سپس به لایه ی دو می رویم. کل data داخل crc قرار گرفته و fcs نیز به آن اضافه می شود.
دراین مرحله فریم تشکیل می شود و به لایه ی physical می رویم که در این مرحله سیگنال دیجیتال به آنالوگ تبدیل می شود.
در قسمت گیرنده:
ابتدا در لایه ی1 سیگنال آنالوگ به دیجیتال تبدیل می شود که به فریم برسد در نتیجه فریم به datalink میرود ابتدا fcs جدا می شود کل اطلاعات داخل crc قرار می گیرد اگراین دو برابر باشد در واقع اطلاعات سالم است.
لایه ی datalink به دنبال header خود می رود که آیا destination –physical که دراینجا قرار گرفته است pc من است . در این حالتdecapsulation انجام می شود و frame را تبدیل به packet می کند و به لایه ی network می فرستد.
لایه ی 3 header مربوط به خود را چک می کند که آیا ip ثبت شده ip من است یا خیر. اگر درست باشد decapsulation انجام می دهد و segment را به لایه ی 4 می دهد. لایه ی 4 هدر خود را چک می کند که آیا پورتی که set شده است پورت باز من است یا خیر اگر باز باشد decapsulation انجام می دهد در این حالت data به لایه ی 5 همان session می رود.
اگر در این حالت از لحاظ پروتکل و authentication درست بود به لایه 6 همان presentation می رسد و اگر احتیاج به کد گشایی باشدdecompress انجام می دهد