از ارسال درخواست وب تا باز شدن آن چه مراحلی در شبکه انجام می شود؟

سلام دوستان در ادامه سعی میکنم با استفاده از یک سناریوی فرضی یک مرور کلی از تمام مراحل یک حرکت بسیار ساده در دنیای شبکه یعنی " پیوستن به یک شبکه و بازکردن یک وب سایت در مرورگر!!!!! " رو بررسی کنیم. شاید شما این حرکت رو در حد یک دقیقه انجام بدید ( کابل شبکه را به لپ تاپ تون وصل میکنید ، مرورگر رو باز میکنید و توی نوار آدرس ، URL وب سایت TOSINSO.COM رو وارد میکنید ! همین !!!! ولی نه همین نیست !!!!! به اعتقاد بنده اگر مراحلی که در ادامه بررسی میکنیم رو خوب درک کنیم شاید قسمت اعظم شبکه رو فهمیدیم و بقیه ش میشه برند محوری ( یعنی مثلا برند سیسکو یا برند میکروتیک و ... رو یاد بگیریم ) ﺳﻨﺎرﯾﻮ : ﻓﺮض ﮐﻨﯿﺪ ﯾﮏ ﻟﭗ ﺗﺎپ ﺑﺮاي ﺑﺎر اول از ﻃﺮﯾﻖ ﮐﺎﺑﻞ ﺑﻪ ﺷﺒﮑﻪ داﺧﻠﯽ ﻣﺘﺼﻞ و ﺳﺎﯾﺖ TOSINSO.COM را ﺑﺎز ﻣﯽ ﮐﻨﺪ.ﮐﻠﯿﻪ ﺟﺰﯾﯿﺎت اﯾﻦ ﻓﺮآﯾﻨﺪ را ﺗﺤﻠﯿﻞ ﻧﻤﺎﯾﯿﺪ.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
سناریو
  • ﮔﺎم اول : درﯾﺎﻓﺖ اﻃﻼﻋﺎت از ( DHCP , Ethernet , IP,UDP )
  • گام دوم : ﺑﮑﺎرﮔﯿﺮي ﭘﺮوﺗﮑﻞ DNS و ARP
  • ﮔﺎم ﺳﻮم : ﻣﺴﯿﺮﯾﺎﺑﯽ ﺑﯿﻦ روﺗﺮ ﻫﺎ ﺗﺎ DNS
  • ﮔﺎم ﭼﻬﺎرم : ﺗﻌﺎﻣﻞ ﺑﺮﻧﺎﻣﻪ ﻫﺎي ﻣﺸﺘﺮي و وب ﺳﺮور( TCP,HTTP)
  • ﮔﺎم اول : درﯾﺎﻓﺖ اﻃﻼﻋﺎت از ( DHCP , Ethernet , IP,UDP )

1- اﯾﺠﺎد درﺧﻮاﺳتDHCP

2- ﻗﺮار دادن درﺧﻮاﺳﺖ DHCP در درون ﯾﮏ ﻗﻄﻌﻪ ي UDP ﺑﺎ ﻣﺸﺨﺼﺎت زﯾﺮ :

  • پورت مبدا = 68 ( DHCP Client )
  • پورت مقصد = 67 ( DHCP Server )

3-قرار دادن قطعه ی UDP در درون یک بسته دیتاگرام IP با مشخصات زیر :

  • آدرس IP مبدا = 0.0.0.0 (نشانه نداشتن IP)
  • آدرس IP مقصد = 255.255.255.255 ( Broadcast)

4- قرار دادن دیتاگرام IP در درون یک قاب اترنت با مشخصات زیر :

  • آدرس MAC مبدا = مثلا : 00:16:D3:23:68:8A ( خود کلاینت)
  • آدرس MAC مقصد = FF:FF:FF:FF:FF:FF ( Broadcast )

5- تبدیل شذن بسته اترنت به صفر و یک و تحویل به کارت شبکه و ارسال از طریق کابل

  • به سوییچ لایه 2
ترتیب حرکت دیتا در لایه ها (از بالا به پایین)

6- سوییچ قاب ورودی را دریافت و : آدرس MAC مربوط به کلاینت و پورت متصل به کلاینت را در MAC Table خود ذخیره میکند و سپس قاب را برای همه ی درگاههای خود ارسال می کند ( Broadcast)

7- DHCP Server قاب اترنت Broadcast شده را دریافت می کند و : قاب اترنت را بررسی و >> دیتا گرام IP را زا آن جدا می کند ، سپس دیتاگرام IP را بررسی و >> قطعه ی UDP را از آن جدا می کند ، و در نهایت قطعه ی UDP را بررسی و >> درخواست DHCP را از آن واکشی می کند.

8- فرض کنیم DHCP Server از Scope یا همان IP Pool با رنج 68.85.2.0/24 استفاده می کند بنابراین یک بسته DHCP ACK با مشخصات :

  • مثلا : 68.85.2.101
  • مقدار Subnet Mask : 255.255.255.255
  • آدرس DNS Server مثلا : 68.87.71.226
  • آدرس Defualt Gateway : 68.85.2.1 را ایجاد می کند.

9- درخواست DHCP ACK ایجاد شده را در درون یک قطعه ی UDP قرار می دهد:

  • پورت مبدا = 67
  • پورت مقصد = 68

10- قطعه ی UDP در درون یک بسته دیتاگرام IP با مشخصات زیر قرار داده می شود :

  • آدرس IP مقصد : خالی
  • آدرس IP مبدا : 68.85.2.1 ( آدرس IPخود DHCP )

11- دیتاگرام IP در درون یک قاب اترنت با مشخصات زیر قرار داده می شود:

  • آدرس MAC مبدا : مثلا : 00:22:68:45:1F:1B ( خود DHCP سرور)
  • آئرس MAC مقصد : 00:16:D3:23:68:8A (کلاینت)

12- تبدیل شدن بسته اترنت به صفر و یک و تحویل به کارت شبکه و ارسال از طریق کابل به سوییچ لایه 2

13- سوییچ قاب ورودی را دریاقت می کند : آدرس MAC مربوط به DHCP سرور و پورت متصل به آن را در MAC Table خود ذخیره می کند و سپس قاب را بر اساس جدول مک خود برای کلاینت ارسال می کند.

14- کلاینت قاب اترنت را دریافت و قاب اترنت را بررسی >> دیتاگرام IP زا از آن جدا می کند ، سپس دیتاگرام IP را بررسی و >> قطعه ی UDP را از آن جدا می کند و در نهایت قطعه ی UDP را بررسی و >> درخواست DHCP ACK را از آن واکشی می کند.و بنابر بسته ارسالی IP وdns وdg را در تنظیمات کارت شبکه خود ثبت می کند.

ترتیب حرکت دیتا در لایه ها (از پایین به بالا)

گام دوم : ﺑﮑﺎرﮔﯿﺮي ﭘﺮوﺗﮑﻞ DNS و ARP

1- کاربر URL مربوط به WWW.TOSINSO.COM را در مرورگر خود وارد می کند.( از آنجا که سیستم عامل موجود در لپ تاپ جهت تعریف سوکت TCP و قراردادن درخواست HTTP در آن ، نیاز به IP آدرس مربوط به WWW.TOSINSO.COM ، دارد ، لذا باید از DNS استفاده نماید .اقدامات زیر را انجام می دهد):

2- ایجاد درخواست DNS و قرار دادن رشته WWW.TOSINSO.COM در آن

3- قراردادن درخواست DNS در یک قطعه ی UDP با مشخصات زیر:

  • شماره پورت مقصد : 53 (DNS Server)

4- قرار دادن قطعه ی UDP در درون دیتاگرام IP با مشخصات زیر:

  • آدرس IP مبدا = 68.85.2.101 ( خود کلاینت)
  • آدرس IP مقصد = 68.87.71.226 ( DNS Server )

5- قراردادن دیتاگرام IP در درون فریم یا قاب اترنت با مشخصات زیر:

  • آدرس MAC مبدا : 00:16:D3:23:68:8A ( خود کلاینت)
  • آدرس MAC مقصد :

( با توجه به اینکه DNS سرور لوکال نیست و در شبکه ISP قرار دارد و IP مربوط به DNS Server در رنج IP کلاینت نیست لذا باید رخواست DNS را به سمت روتر و DG بفرستد و از آنجا که جهت قرار دادن دیتاگرام در درون فریم اترنت و ارسال به DG ، نیازمند داشتن آدرس MAC مقصد یعنی آدرس MAC روتر و Default Gatway هستیم و لذا باید با استفاده از پروتکلProtocol) ARP(Address Resolation آدرس روتر و DG را بدست بیاوریم ، بنابراین) :

  • ایجاد درخواست ARP با مشخصات زیر:

آدرس IP مقصد = 68.85.2.1 ( Defualt Gatway )

  • قراردادن پیام ARP در درون فریم یا قاب اترنت با مشخصات زیر:
  • آدرس MAC مقصد = FF:FF:FF:FF:FF:FF (Broadcast)
  • آدرس MAC مبدا : 00:16:D3:23:68:8A ( خود کلاینت)

سوییچ قاب اترنت را دریافت و آن را برای همه درگاههای خود ارسال می کند.(Broadcast)

  • روتر (پورت DG کلاینت ) قاب را دریافت و پس از واکشی درخواست ARPیک پیام پاسخ با مشخصات زیر ایجاد می کند:

محتوی درخواست ARP : آدرس MAC خودش یعنی مثلا : 00:22:6B:45:1F:1B

  • قراردادن پیام ARP در یک قطعه ی UDP
  • قراردادن قطعه ی UDP در فریم اترنت با مشخصات :
  • آدرس MAC مقصد = 00:16:D3:23:68:8A (کلاینت)

ارسال فریم اترنت به سوییچ ، سوییچ نیز ابتدا شماره درگاه متصل و ادرس MAC مربوط به DG را در جدول MAC خود ذخیره و سپس قاب اترنت را با توجه به جدول مک خود به سمت کلاینت ارسال می کند.کلاینت قاب پاسخ به ARP را دریافت و آدرس مک را از آن واکشی مبکند)در نهایت کلاینت آدرس مک مربوط به DG را به قاب اترنت درخواست DNS اضافه کرده و آن را به سمت سوییچ می فرستد.

گام سوم : مسیریابی بین روترها تا DNS

1- Defualt Gatway پس از دریافت فریم اترنت و جداسازی دیتاگرام IP از آن ، با توجه به جدول مسیریابی خود ، دیتاگرام را در درون یک فریم لایه 2 مناسب (این فریم به نحوه اتصال روترها به هم بستگی دارد .مثلا اگر از طریق پروتکل اترنت باشد که می شود فریم اترنت و اگر از طریق لینک وایرلس باشد نیز متناسب با استاندارد آن)قرارداده و به سمت روتر مربوطه ارسال می شود.

2- روتر سمت DNS سرور که در این مثال Sobhanijou.com می باشد ، پس از دریافت فریم ، داده گرام را از آن خارج و با توجه به آدرس مقصد ( 68.87.71.226 که مربوط به DNS سرور می باشد) و همچنین جدول مسیریابی خود (این جدول توسط پروتکل های مسیریابی درون شیکه ای نظیر RIP,OSPF,IS-IS یا پروتکل اینترنت BGP ، تکمیل می شود)داده گرام را به سمت DNS سرور می فرستد.

3- DNS سرور پس از دریافت دیتاگرام و جداسازی قطعه ی UDP و واکشی درخواست DNS برا رشته WWW.TOSINSO.COM به شرح زیر عمل می کند:

  • • در بانک اطلاعاتی DNS خود از قبل چنین رکوردی را نداشته باشد : درخواست خود را به سمت DNS سرورهای ROOT در دنیای اینترنت می فرستد و پس از طی مراحل زیاد(در این بحث نمیگنجد) IP مربوط را بدست می آورد و سپس ابتدا این رکورد را در بانک خود جهت درخواست های بعدی ذخیره و سپس به سمت کلاینت میفرسد.
  • • در بانک اطلاعاتی DNS خود از قبل چنین رکوردی را داشته باشد : (که در این مثال فرض میکنیم دارد)

بنابراین پس از بازیابی IP به درخواست WWW.TOSINSO.COM از رکورد مربوط ، اقدامات زیر را انجام میدهد:

4- یک پیام پاسخ DNS که حامل IP مربوط به درخواست WWW.TOSINSO.COM یعنی مثلا : 185.8.173.236 می باشد ، ایجاد می کند.

5- پیام پاسخ DNS را درون یکه قطعه ی UDP قرار میدهد

6- قطعه ی UDP را درون یک دیتاگرام قرار میدهد

  • آدرس IP مبدا = IP خود DNS سرور
  • آدررس IP مقصد = IP مربوط به کلاینت

7- قطعه ی UDP ایجاد شده را در درون فریم لایه پیوند قرار داده و پس از مسیریابی به کلاینت می رسد و اکنون کلاینت IP مربوط به سرور WWW.TOSINSO.COM را دارد ، بنابراین آماده تعامل با وب سرور این آدرس می بشد.

گام چهارم : تعامل برنامه های مشتری و وب سرور (HTTP,TCP)

1- کلاینت اکنون جهت ارتباط با وب سرور TOSINSO باید یک سوکت TCP برای ارسال HTTP GET ایجاد نماید

با برقراری ارتباط از طریق پروتکل TCP باید کلاینت ابتدا یک دست دهی سه جانبه ( Tree Way Handshake ) انجام دهد ، لذا :

2- کلاینت یک درخواست HTTTP ایجاد می کند

3- درخواست برقراری ارتباط امن با TCPرا درون یک قطعه ی TCP SYN قرار می دهد.

  • شماره پورت مبدا = به صورت رندوم (تصادفی)انتخاب می شود.
  • شماره پورت مقصد:80

4- قطعه ی TCP SYNدرون یک داده گرام IP قرار داده می شود

  • آدرس IP مقصد = 185.8.173.236 ( وب سرور WWW.TOSINSO.COM )

5- دیتاگرام ایجاد شده در درون یک فریم لایه پیوند قرار داده می شود

  • آدرس MAC مقصد = 00:22:68:45:1F:1B (Defualt Gatway) : زیرا ip وب سرور در سابنت کلاینت نیست!

6- روترهای شیکه لوکال و شبکه ISP و TOSINSo.com با استفاده از جدول های مسیریابی خود دیتاگرام مربوطه را تا وب سرور هدایت می کنند.

7- وب سرور پس از دریافت دیتاگرام ، پیام TCP SYN را جدا و وارد سوکت پورت 80 می کند

8- وب سرور یک پیام TCP SYN ACK ایجاد می کند و آن را درون یک دیتاگرام و سپس قاب مناسب لایه پیوند قرارداده و به سمت کلاینت میفرستد

9- روترهای شیکه لوکال و شبکه ISP و TOSINSo.com با استفاده از جدول های مسیریابی خود دیتاگرام مربوطه را تا وب سرور هدایت می کنند.

10- کلاینت دیتاگرام و پیام TCP SYN ACK را واکشی و اکنون ارتباط امن با استفاده از TCP بین وب سرور و کلاینت ایجاد شده است.

11- مرورگر کلاینت پیام HTTP GET را از طریق ارتباط امن TCP ایجاده شده ، تعریف و رشته WWW.TOSINSO.COM را درون آن قرار داده و مشابه مراحل بالا به دست وب سرور می رساند

12- وب سرور پیام HTTP GET را دریافت و یک پیام پاسخ HTTP را ایجاد و صفحه ی وب مورد تقاضا را وارد بدنه ی آن می کند و از طریق سوکت TCP و ارتباط امن ایجاده شده پس از طی مراحلی نظیر بالا به دست مرورگر می رساند و مرورگر وب پیام HTTP را دریافت و بخش HTML را از بدنه ی پاسخ جدا می کند و به صفحه ی وب مورد نظر دست می یابد.

نکات :

  • • از رنج IP عمومی یا Valid استفاده کردیم تا متن کوتاه شود و نیاز به استفاده از NAT نباشد
  • • از نحوه ی بدست آوردن IP بین DNS شبکه ISP و DNS سرورهای ROOT چیزی نگفتیم

sobhanijou
sobhanijou

همیشه بهترین های من صادق ترین ها بودن ... تو رو خدا یه بار دیگه صداقت رو روانه زندگی کنیم ... حتی اگه بد باشیم ولی صادق باشیم ..

نظرات