آموزش network – قسمت ششم

لایه های OSI

لایه های OSI از ۷ لایه تشکیل شده اند که عبارتند از:

 

لایه  ۷ APPLICATION
لایه  ۶ PRESENTATION
لایه  ۵ SESSION
لایه  ۴ TRANSPORT
لایه  ۳ NETWORK
لایه  ۲ DATALINK
لایه  ۱ PHYSICAL

 

فرض کنید که می خواهیم نامه ای را در داخل اداره ای رد و بدل کنیم  پروسه ای که رخ می دهد به این صورت می باشد. اولین جایی که باید مراجعه شود دبیر خانه می باشد . دبیر خانه آن را مهر و امضا می کند و بعد به مرحله ی بعدی می رود .

و آقای x زمانی نامه را می خواند که مهر دبیر خانه به آن خورده باشد.و تا از طرف دبیر خانه تایید نشده باشد  آقای x آن را امضا نمی کند.زمانی که نامه به دست آقای y می رسد  برای اینکه متوجه شود که پروسه ی اداری طی شده است امضا ها را چک می کند.

هدف اصلی از مهر و امضا این است که هر کسی وظیفه ی اداری خودش را انجام می دهد.و شواهدی است برای اینکه نشان دهد که هر فردی وظیفه ی اصلی خود را انجام داده است. در لایه های OSI   نیز به همین صورت می باشد  برای اینکه یک سری اطلاعات ایجاد شود هر لایه ای وظیفه ی خودش را دارد.

HEADER چیست؟

هر لایه زمانی که وظیفه ی خود را به اتمام رساند در آخر کار چیزی را به data اضافه می کند.که در اصطلاح به آن header گفته می شود.در واقع HEADER خلاصه کاری است که هر لایه بر روی data انجام می دهد و حکم همان امضا را دارد.

بنابراین  خلاصه کاری را که هر لایه انجام می دهد در  داخل header می نویسد و به معنای همان امضا می باشد.و این بدان معنا می باشد که کار هر لایه با لایه ی دیگر متفاوت می باشد.

ENCAPSULATION چیست؟

به اضافه شدن هر header به لایه ی دریافت شده از لایه ی بالاتر encapsulation  گفته می شود.

حال فرض کنید که ۲ تا کامپیوتر می خواهند با یکدیگر در ارتباط باشند در این صورت جهت حرکت در sender از لایه ی۷ به ۱ می باشد و در reciver از لایه ی ۱ به ۷ می باشد.

یک قانون در لایه ها وجو د دارد و به این صورت است که هر لایه می تواند لایه ی قبلی و بعدی خود و لایه ی متناظر خودش را در طرف مقابل ببیند.

OSI Model

باید به این نکته توجه کرد که فقط ۳ لایه هستند که header دارند  که لایه های transport و network و datalink  می باشد.

باید به این نکته توجه کرد که در reciver همیشه decapsulation انجام می گیرد.

در reciver هر لایه هدری را که  در لایه ی متقابل ساخته شده است چک می شود اگر که ok بود  آن را حذف می کند. و آن را به لایه ی بالایی می فرستد.

Decapsulation چیست؟

به کم شدن header هر لایه و تحویل دادن آن به لایه ی بالاییdecapsulationگفته می شود.

وظایف لایه های OSI

لایه application

نزدیک ترین لایه به کاربر می باشد و همیشه در خواست در این لایه انجام می گیرد یعنی نقطه ی شروع از application   است. برای مثال چک کردن  فرستادن ایمیل در این لایه انجام می گیرد.

پروتکل هایی که در این لایه هستند عبارتند از  http و https ,برای دانلود کردن و آپلود کردن FTP, برای فرستادن ایمیل smtp وimap4 است.

Load شدن در Inbox همان pop3 می باشد.

وقتی که در خواست ایجاد شد به لایه ی  presentation  می رسد.
لایه presentation

کار اصلی که در این لایه انجام می گیرد مشخص کردن format  دیتایی است که دریافت و یا ارسال می گردد.

برای مثال زمانی که http را انتخاب می کنیم مشخص می کنیم که به دنبال صفحاتی هستیم که asp یا php یا html نوشته شده است.

یا زمانی که داریم دانلود می کنیم داریم مشخص می کنیم که به دنبال صفحاتی هستیم که با پسوند rar و pdf و غیره می باشند.

۲ نکته ی مهم در لایه ی Presentation

  1. هر زمان که data را کد گذاری می کنیم (encryption) در حقیقت  در داخل این لایه این کار را انجام می دهیم که کد گذاری ها دارای الگوریتم ها ی متفاوتی می باشد.اما نکته ی قابل توجه این است که الگوریتمی که انتخاب شده است با الگوریتم انتخاب شده در طرف مقابل باید یکسان باشد.
  2. compression که همان فشرده سازی است اینکه با چه فرمتی اطلاعات را zip کنیم و طرف مقابل با چه فرمتی اطلاعات راuncompress کند .

لایه session

کلیه ی هماهنگی ها قبل از ایجاد  یک ارتباط در این لایه انجام می گیرد. مخصوصا در خصوص پروتکل های انتخاب شده. قبل از ایجاد یک ارتباط در لایه ی مبدا و مقصد در لایه ی session یک ارتباط بر قرار می شود که در چند چیز با یکدیگر به تفاهم می رسند.

نکته در سه لایه ی بالا header ندارند و تنها در آنها  data تشکیل می گردد.

در مورد ارتباطاتی که در شبکه موجود است باید به چند نکته توجه کرد:

در شبکه دو نوع ارتباط موجود است مطمئن یا reliable – غیر مطمئن یا unreliable

ارتباط مطمئن  (reliable)

مطلب پیشنهادی  آموزش Backup گیری با استفاده از Acronis True Image

فرض کنیم که دو pc می خواهند برای هم اطلاعات بفرستند  در این حالت فرستنده خیلی برای آن مهم است که اطلاعات به دست گیرنده برسد.

زمانی که فرستنده packet را می فرستد  گیرنده باید به فرستنده خبر دهد که packet به دست آن رسیده است.که به این خبر  acknowledge گفته می شود که به معنای تایید کردن می باشد.

حال نوع connection type توسط پروتکلی که  ما انتخاب کرده ایم مشخص می شود.در داخل پروتکل ها به صورت Default مشخص شده است که مطمئن هستند یا خیر.

حال ممکن است که این سوال پیش بیاید که کدام یک از connection type ها مطمئن هستند و کدام یک نامطمئن هستند.

این بستگی دارد  به کاربرد آن برای مثال در ویدئو کنفرانس  نیازی به ارتباط امن نیست بنابر این برای صوت و ویدئو از ارتباط نا امن استفاده می شود. ولی برای ایمیل از ارتباط امن استفاده می شود.

Port چیست؟

به درگاه ورود و خروج اطلاعات port گفته می شود.در واقع دو نوع پورت داریم :

پورت های فیزیکال و پورت های لاجیکال.

پورت های فیزیکال پورت هایی هستند که قابل دیدن هستند. ولی پورت های لاجیکال قابل مشاهده نیستند و در واقع درOS قرار دارند. و برای ورود و خروج اطلاعات می باشند.

درواقع دو نوع پورت  لاجیکال (logical) داریم.

پورت های udp  و پورت های tcp

پورت های tcp همان پورت های reliable هستند و پورت های پورت های udp همان پورت های unreliable هستند.

همه ی نود هایی که در شبکه هستند ۱ تا ۶۵۵۳۵ پورت udp  و۱تا ۶۵۵۳۵ پورت tcp دارند.

طبق استاندارد از پورت ۱ تا پورت ۱۰۲۴ برای server ها رزرو شده است چه udp  و چه tcp

وقتی که data تشکیل شد ابتدا باید از پورت لاجیکال خارج شود سپس از پورت فیزیکال ولی در قسمت گیرنده ابتدا از فیزیکال وارد می شود سپس از لاجیکال وارد می گردد.در داخل os باید پورتی وجود داشته باشد تا data  را بتواند دریافت کند.

برای مثال فرض کنید که یک webserver    داریم پروتکلی که باید web  را ارائه دهد باید پورت ۸۰ آن باز بوده و در حالت listeningقرار دارد.

که اگر درخواستی وارد شد بتواند از طریق آن پورت آن را دریافت کند. در قسمت کلاینت یک پورت به صورت random باز می شود.که این پورت بین ۱۰۲۴ تا ۶۵۵۳۵ می باشد باز می شود تا data از طریق آن بتواند عبور کند.
لایه Transport

در header لایه ی ۴ source port  و اینکه به دنبال چه پورتی می گردیم تعریف شده است.

برای دیدن پورت های باز در سیستم باید در قسمت cmd تایپ شود netstat

در این زمان state ۳ حالت دارد:

listening: زمانی که server منتظر یک درخواست است اما پورت هنوز بسته است.

Established  (برقرار): به این معنی است که ارتباط برقرار شده است.

Time waiting: درخواستی داریم منتظر جواب هستیم اما پورت هنوز بسته است.

flow control: در واقع همان کنترل جریان می باشد.

هر زمان که فرستنده شروع به فرستادن data کند و این کار را تند تند انجام دهد اما گیرنده نتواند آن process را انجام دهد lost data را داریم در واقع  اطلاعات از بین می رود.پس باید طبق یک استانداردی فرستنده و گیرنده توافق کنند که این اطلاعات از بین نرود.

برای مثال گیرنده به فرستنده می گوید ۲ تا packet که فرستادی صبر کن تا من process را انجام دهم process که تمام شد دوباره ۲ تا packet بفرست.

۲ تا مکانیزم در کنترل جریان وجود دارد که تقریبا یکی از آنها منسوخ شده است.

اولین روش همان ready و notready می باشد.

در این روش فرستنده به گیرنده یک  سیگنال می فرستاد که اسم آن ready بود اگر که گیرنده آمادگی دریافت را داشت یک سیگنال به نام ready  را به فرستنده می فرستاد .و فرستنده شروع به فرستادن data می کرد اما اگر گیرنده بافرش پر می شد یک سیگنال به نام not ready می فرستاد تا دیگر فرستنده اطلاعاتی را نفرستد.

مشکلی که در این روش وجود دارد delay می باشد زمانی که گیرنده سیگنال not ready را می فرستد تا زمانی که این سیگنال به فرستنده برسد  فرستنده چند packet دیگر را ارسال کرده است. وتازه فرستنده سیگنال not ready را دریافت کرده است در این صورت اطلاعات پایانی از بین می رود.

مکانیزم دیگری که وجود دارد windowing می باشد. در این روش قبل از فرستاده شدن data فرستنده و گیرنده  بر سر حجم packet با یکدیگر تفاهم می کنند.

 

CONNECTION  MULTI PLEXING

ممکن است که یک سرور هم زمان چندین سرویس را ارئه دهد و یک کلاینت نیز به صورت هم زمان چندین درخواست داشته باشد. در این صورت کار تفکیک کردن این درخواست ها بر عهده ی کیست؟

این کار برعهده ی لایه ی ۴ است. لایه ی ۴ این درخواست ها را با شماره ی  پورت ها انجام می دهد.

Pdu چیست؟

به data که در هر لایه است به همراه header آن لایه pdu گفته می شود.

PDU لایه ۴ چیست؟

pdu  موجود  در لایه ۴ تولید می شود در اصطلاح segment  گفته می شود.
لایه network

subnet آدرس های مبدا و مقصد و تشخیص مسیر لازم پروتکل های IP , IPX در این لایه استفاده می گردند.

IPv4:

طول این ip ۳۲  بیت می باشد که هر ۸ بیت توسط یک . (نقطه) هم جدا شده اند.

مانند ۱۹۲٫۱۶۸٫۱۱۰٫۱  به طور کلی در دنیا ۲ به توان ۳۲ تا ipv4 وجود دارد.

مطلب پیشنهادی  آشنایی با پروتکل HTTP - بخش اول

در اوایل که ipv4 را ایجاد کردند جمعیت جهان به این اندازه نبود  و اینترنت به این اندازه گسترده نبود  و ipv4 جوابگوی نیاز ها بود  و کفایت می کرد اما با گسترش جمعیت از سال ۱۹۹۷ با تشکیل کمیته ای به این نتیجه رسیدند که با گسترش این روند در سال های ۲۰۰۵ تا ۲۰۱۱  با کمبود ip مواجه خواهیم شد از آن زمان به فکر استراتژی های مختلفی بودند  در سال ۲۰۰۳ ipv6 ابداع شد.

مزیت های ipv6 نسبت به ipv4:

  1. طول آن ۱۲۸ بیت است در واقع ۲ به توان ۱۲۸ ip خواهیم داشت.
  2. به صورت هگزا دسیمال نوشته می شود و ماشین به حالت باینری آن را می خواند.

Ipv4 از لحاظ ساختاری به ۲ قسمت تقسیم می شود network id و hostid درون شبکه فقط نود هایی می توانند با یکدیگر  ار تباط برقرار کنند که در قسمت network id کاملا شبیه به یکدیگر می باشند.

Network id: به مشخصه ی شبکه گفته می شود نود هایی که مشخصه ی شبکه آنها مانند یکدیگر می باشد می توانند با یکدیگر ارتباط شبکه ای داشته باشند.

Hostid: مانند اسم کوچک افراد در یک خانواده می باشد مشخصه ی آن نود از شبکه است که در درون شبکه قرار گرفته است. در هیچ شبکه ای ۲ نود وجود ندارد که قسمت net و Host یکسان با یکدیگر داشته باشند.

وظیفه ی دیگر لایه ی  network  روتینگ (routing) می باشد.

تعریف router : یک device می باشد که در لایه ی ۳ قرار دارد و کار آن routing می باشد

Routingارتباط دادن چندین شبکه به یکدیگر با netid  های متفاوت.

کار دوم router: اتصال دادن توپولوژی های مختلف به یکدیگر  می باشد.

سوئیچ لایه ی۳:

اگر کسی بگوید که سوئیچی دارم که در لایه ی ۳ کار می کند به این منظور است که آن سوئیچ کار لایه ی ۳ را انجام می دهد.

در واقع کار logical address و routing را انجام می دهد.

حالا ممکن است این سوال پیش می آید که فرق سوئیچ لایه ی۳ با router چیست؟

باید به این نکته توجه کرد که پورت های سوئیچ لایه ی ۳ همه اترنت rj45 هستند و هیج سوئیچی پیدا نمی شود که rj11 به آن بخورد اما router از همه نوع پورت پشتیبانی می کند.

به طور کلی سوئیچینگ برای داخل شبکه می باشد اما router برای اتصال شبکه ی داخلی به یک شبکه ی دیگر می باشد. در واقعrouter  کار ان wan connectivity می باشد . اما lan connectivity می باشد.

pdu لایه ی ۳ چیست؟

به pdu  در لایه ۳  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 که روبه روی آن یکسری کاراکتر نوشته شده است. که ۱۲ کاراکتر می باشد که با خط تیره از یکدیگر جدا شده اند. که به صورت هگزا دسیمال می باشد که روی هم رفته ۴۸ بیت می باشند  در واقع هر کاراکتر  یک نیبل می باشد.

Mac address در کل جهان unique  می باشد  از این ۴۸ بیت  ۲۴ بیت اول آن را شرکت سازنده  مشخص می کند و ۲۴ بیت بعدی را  سازمان ieee  که تمام استاندارد های مخابرات الکترونیک و سبکه را صادر می کند می باشد.

Mac address یک چیپست بر روی کارت شبکه است که قابل تغییر می باشد.

تعریف mac address

یک آدرس physical داخل تکنولوژِی اترنت است  طول آدرس آن ۴۸ بیت می باشد و به صورت هگزا دسیمال است ۲۴ بیت اول آن متعلق به شرکت سازنده یآن و ۲۴ بیت بعدی متعلق به سازمان IEEE می باشد. که این آدرس کاملا منحصر به فرد و قابل تغییر می باشد. برای تغییر دادن mac باید آدرس زیر طی شود.

۱-بر روی کامپیوتر کلیک راست شود

۲-manage

۳-device manager

۴-روی کارت شبکه کلیک راست کرده

۵-propertise

۶-advanced

۷-network address

سپس آدرسی را که می خواهیم می دهیم.

تفاوت موجود در physical address و logical address:

Physical address بر اساس تکنولوژی ها ی مختلف متفاوت می باشد  برای مثال در شبکه ی اترنت فیزیکال آدرس macمی باشد.

سوالی که پیش می آید این است که sourcemac  را داریم  حالا destination mac  را چگونه پیدا کنیم؟

پروتکلی به نام arp داریم که مخفف  address resolution protocol  می باشد.

که این پروتکل بر اساس  destination ip برای ما destination mac را به دست می آورد.

مطلب پیشنهادی  محاسبه میزان سرمایش اتاق سرور

پروتکل  arp در لایه ی ۳ run می شود  برای کمک به لایه ی ۲  در این حالت mac address    کامپیوتر هایی که ارتباط با آنها برقرار شده است cache می شود.

کاربرد cache  در شبکه:

هر کاری که در شبکه انجام می دهیم cache می شود  تا اگر نخواستیم آن کار را مجددا  انجام ندهیم از روی هارد خودمان جواب بگیریم. دیگر نیازی نیست تا آن کار را داخل شبکه انجام دهیم

برای مثال یک بار با pc1 ارتباط برقرار کردیم و mac آن را به دست آوردیم  برای یک ارتباط دوم دیگر نیازی نیست  که arp  اجرا شود از روی data خود مک مقصد را به دست می آوریم.

برای دیدن cache arp باید در cmd تایپ شود arp –a

برای پاک کردن cache arp باید در cmd تایپ شود arp –d

وظیفه ی دیگر لایه ی دو Error checking یا error detection می باشد.

pdu که در لایه ی ۲ قرار دارد چیست؟

به Pdu که در لایه ی دوم قرار دارد frame گفته می شود.
لایه physical

بعد از اتمام کار لایه ی ۲ حالا نوبت به انتقال data می رسد  حالا  data که به صورت ۱,۰  می باشد باید به صورت قابل فهم برایmedia در بیاید.که کار لایه ی physical می باشد.

مدیا ممکن است که کابل مسی باشد در نتیجه باید تبدیل شود به سیگنال الکتریکی و ممکن است که مدیا فیبر نوری باشد در نتیجه باید تبدیل شود به سیگنال نوری.

و اگر که wireless باشد باید تبدیل شود به سیگنال رادیویی  و طرف مقابل که این data  را تحویل می گیرد باید برعکس این کار را انجام دهد.

حالا باید در نظر گرفت که طرف مقابل از کجا باید بفهمد که محیط بر روی data تاثیر گذار بوده یا خیر اطلاعات صحیح انتقال پیدا کرده است  یا خیر؟

لایه ی ۲ بعد از قرار دادن 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 می رویم  در این قسمت یک عدد تصادفی بین ۱۰۲۴ تا ۶۵۵۳۵  مثلا ۱۰۵۰

اما پورت destination  ۲۵ tcp می باشد. در این قسمت segment  تشکیل شده است و بعد به لایه ی network می رویم .

Ip ما در این قسمت ۱۹۲٫۱۶۸٫۱٫۵۰ می باشد و destination ip هم مشخص می گردد.

در این قسمت packet تشکیل می گردد و در اینجا پروتکل arp اجرا می شود  تا بتوانیم physical address طرف مقابل را به دست آوریم.

Destination macو source mac    به packet اضافه می شود.

سپس به لایه ی دو می رویم. کل data داخل crc  قرار گرفته و  fcs نیز به آن اضافه می شود.

دراین مرحله فریم تشکیل می شود و به لایه ی physical می رویم که در این مرحله سیگنال دیجیتال به آنالوگ تبدیل می شود.

در قسمت گیرنده:

ابتدا در لایه ی۱  سیگنال آنالوگ به دیجیتال تبدیل می شود که به فریم برسد در نتیجه فریم به datalink میرود ابتدا fcs جدا می شود کل اطلاعات داخل crc قرار می گیرد  اگراین  دو برابر باشد در واقع اطلاعات سالم است.

لایه ی datalink به دنبال header خود می رود که آیا destination –physical که دراینجا قرار گرفته است pc من است . در این حالتdecapsulation انجام می شود و frame را تبدیل به packet می کند و به لایه ی network می فرستد.

لایه ی ۳ header مربوط به خود را چک می کند که آیا ip ثبت شده  ip من است یا خیر. اگر درست باشد decapsulation انجام می دهد و segment را به لایه ی ۴ می دهد. لایه ی ۴  هدر خود را چک می کند که آیا پورتی که set شده است پورت باز من است یا خیر  اگر باز باشد decapsulation انجام می دهد در این حالت data به لایه ی ۵ همان session می رود.

اگر در این حالت از لحاظ پروتکل و authentication  درست بود به لایه ۶ همان presentation می رسد و اگر احتیاج به کد گشایی باشد decompress انجام می دهد.

.

منبع : scipost.ir