محمد مرآتی شیرازی
کارشناس ارشد فناوری اطلاعات ، متخصص شبکه و SQL

در پس زمینه جستجوهای اینترنتی چه می گذرد؟ چگونه سرچ می کنیم؟

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

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
  1. درﯾﺎﻓﺖ اﻃﻼﻋﺎت از ( DHCP , Ethernet , IP,UDP )
  2. ﺑﮑﺎرﮔﯿﺮي ﭘﺮوﺗﮑﻞ DNS و ARP
  3. ﻣﺴﯿرﯾﺎﺑﯽ ﺑﯿﻦ روﺗﺮ ﻫﺎ ﺗﺎ DNS
  4. ﺗﻌﺎﻣﻞ ﺑﺮﻧﺎﻣﻪ ﻫﺎي ﻣﺸﺘﺮي و وب ﺳﺮور( 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 با رنج 192.168.1/24 استفاده می کند بنابراین یک بسته DHCP ACK با مشخصات ( مثلا : 192.168.1.101 و مقدار Subnet Mask : 255.255.255.255 و آدرس DNS Server مثلا : 68.87.71.226 و آدرس Default Gateway : 192.168.1.1 را ایجاد می کند.
  9. درخواست DHCP ACK ایجاد شده را در درون یک قطعه ی UDP قرار می دهد : ( پورت مبدا = 67 و پورت مقصد = 68 )
  10. قطعه ی UDP در درون یک بسته دیتاگرام IP با مشخصات زیر قرار داده می شود : ( آدرس IP مقصد : خالی و آدرس IP مبدا : 192.168.1.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.GOOGLE.COM را در مرورگر خود وارد می کند. ( از آنجا که سیستم عامل موجود در لپ تاپ جهت تعریف سوکت TCP و قراردادن درخواست HTTP در آن ، نیاز به IP آدرس مربوط به WWW.GOOGLE.COM ، دارد ، لذا باید از DNS استفاده نماید .اقدامات زیر را انجام می دهد):

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

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

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

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

  • آدرس IP مبدا = 192.168.1.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 Gateway هستیم و لذا باید با استفاده از پروتکلProtocol) ARP(Address Resolution آدرس روتر و DG را بدست بیاوریم ، بنابراین) :
  • - ایجاد درخواست ARP با مشخصات زیر:
  • آدرس IP مقصد = 192.168.1.1 ( Default Gateway )

قراردادن پیام 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- Default Gateway پس از دریافت فریم اترنت و جداسازی دیتاگرام IP از آن ، با توجه به جدول مسیریابی خود ، دیتاگرام را در درون یک فریم لایه 2 مناسب (این فریم به نحوه اتصال روترها به هم بستگی دارد .مثلا اگر از طریق پروتکل اترنت باشد که می شود فریم اترنت و اگر از طریق لینک وایرلس باشد نیز متناسب با استاندارد آن) قرارداده و به سمت روتر مربوطه ارسال می شود.

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

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

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

  • • در بانک اطلاعاتی DNS خود از قبل چنین رکوردی را داشته باشد : (که در این مثال فرض میکنیم دارد)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

منبع : TOSINSO.COM


محمد مرآتی شیرازی
محمد مرآتی شیرازی

کارشناس ارشد فناوری اطلاعات ، متخصص شبکه و SQL

کارشناسی ارشد در رشته IT . دارای مدرک MCSE 2012 Microsoft . مدرک QAL انگلستان . دوره VCAP 6/5 . +Security . کارشناس و مشاور امنیت شبکه . کارشناس Microsoft SQL Server . کارشناس Mikrotik . کارشناس Kerio Control . کارشناس مجازی سازی . کارشناس حسابداری مبتنی بر نرم افزار هلو . کارشناس رده A در خطا یابی , رفع خطا و نصب و راه اندازی نرم افزار حسابداری هلو . راه اندازی بیش از 30 Data Center در شرکت های خصوصی و نیمه دولتی . برنامه نویس . تحت وب سازی نرم افزارهای ویندوزی . شاغل در قسمت آی تی در شرکت نرم

نظرات