اینترنت٫ شبکه بزرگ جهانی چگونه کار میکند
این روزها اینترنت به یکی از نیاز های مهم روزمره ما تبدیل شده است به شکلی که اگر به هر دلیلی ساعاتی از روز به اینترنت دسترسی نداشته باشیم٫ قطعا در کارهای روزمره خود به مشکل برخورد خواهیم کرد. اما تا به حال به این موضوع فکر کردید که اینترنت چگونه کار میکند؟ چه طور پیام های برای رسیدن به مقصد حداقل نصف کره زمین را طی میکنند آن هم با صرف فقط چندین میلی ثانیه؟
امروز در این مقاله با هم نحوه کار اینترنت و عواملی که باعث میشوند اینترنت به کار خود ادامه دهد را با هم بررسی می کنیم
پس تا پایان این مقاله با من همراه باشید.
چرا باید بدانیم اینترنت چگونه کار میکند؟
برای حل این سوال به یکی از منابع خارجی به نام roadmap.sh مراجع میکنیم. سایت roadmap.sh یک منبع مسیر های یادگیری برنامهنویسی در حوزه های مختلف مثل فرانتاند٫ بکاند٫ موبایل و .......است که بعد از مشخص کردن مراحل یادگیری٫ برای هر مرحله منابعی ای معرفی میکند.
در نقشه را برنامهنویسی فرانتاند٫ برنامهنویسی بکاند و برنامه نویسی موبایل ٫ اولین مرحله "داشتن اطلاعات کلی از نحوه کار اینترنت" است. در این مرحله شما باید با نحوه کارکرد اینترنت و پروتکل های مختلف مثل tcp/ip ٫ Http ٫ نحوه کار کردن مرورگر ها ٫ DNS و .... آشنا شوید. این اطلاعات باعث دید بهتر شما نسبت به اینترنت میشود که در مباحث مختلف برنامهنویسی کار برد دارند.
اینترنت چیست؟
زمانی که دو یا چند سیستم کامپیوتری به یکدیگر متصل کنیم٫ یک شبکه کامپیوتر ایجاد میشود. کامپیوترهای موجود در این شبکه قابلیت ارسال پیام و فایل را برای یکدیگر دارند. زمانی که می گوییم اینترنت شبکه جهانی٫ دقیقا یعنی برای به وجود آمدن اینترنت چندين هزار کامپیوتر از سراسر جهان به یکدیگر متصل شدند تا این شبکه بزرگ به وجود بیآید.
اینترنت از دل یک پروژه دانشگاهی در سال ۱۹۶۹ در ARPANET (آژانس پروژه های تحقیقاتی پیشرفته ارتش ایالات متحده آمریکا) به وجود آمد ولی هیچ شباهتی به اینترنتی که ما در سال ۲۰۲۲ استفاده میکنیم نداشت.
۴ سال بعد یعنی سال ۱۹۷۳ دو مهندس نرم افزار به نام های وینت سریف و باب کان بر روی نسل جدید استاندارد های شبکه کار کردند. تلاش و کوشش این دو مهندس نرم افزار باعث ساخت TCP/IP Standard شد. در سال ۱۹۸۳ اینترنت با استاندارد tcp/ip ترکیب شد و اینترنتی که ما در حال استفاده از آن هستیم ساخته شد. در سال های اولیه ظهور اینترنت٫ از این شبکه فقط برای مقاصد نظامی استفاده میشد اما با گذشت چند سال٫ دسترسی عموم به اینترنت بازشد و حالا در سال ۲۰۲۲ تقریبا ۲ میلیارد نفر در جهان در حال استفاده از این شبکه بزرگ جهانی هستند.
internet protocol
همان طور که بالاتر بررسی کردیم٫ اینترنت از متصل شدن چندين کامپیوتر ایجاد شده است. هر کدام از این دستگاه های متصل به اینترنت باید مشخصه منحصر به خودشان داشته باشند تا در شبکه شناسایی شوند و بتوانند با دیگر اعضای شبکه ارتباط برقرار کنند.
این مشخصه یکتا internet protocol یا به اختصار ip نام دارد. ip ها با قالب nnn.nnn.nnn.nnn ایجاد میشوند و به جای هر کدوم از nnn اعداد ۰ تا ۲۵۵ قرار داده میشود.
در سال های ابتدایی اینترنت فقط ipv4 وجود داشت چون سازندگان اینترنت پیشبینی این میزان استفاده را نمیکردند. ipv4 فقط برای ۴ میلیارد دستگاه کافی بود اما نیاز جهان خیلی بیشتر از این عدد بود.
برای حل این مشکل مهندسان ipv6 را ساختند. ipv6 از ۳۹ رقم تشکیل شده است که با ظرفیت بیشتر جایگزین ipv4 شود.
protocol stacks
تا حالا بخشی هایی از پازل چگونگی کار کردن اینترنت کامل شد. سیستمها به یکدیگر متصل شدند٫ یک مشخصه یکتا برای هم کدام وجود دارد. حالا باید این توانایی بهشان داده شود تا با یکدیگر صحبت کنند.
برای مثال شما با سیستم ۱.۲.۳.۴ قصد ارسال پیام به سیستم ۵.۶.۷.۸ را دارید. برای ارسال این پیام٫ ابتدا پیام باید به شکلی تبدیل شود که از طریق اینترنت و کابل قابل ارسال باشد و بعد از ارسال باید به شکل اولیه برگردد. بعد از تغییر شکل باید به پیام به سیستم مورد نظر ما ارسال شود. از طرف دیگر پیام ما باید به تیکه های کوچکی تبدیل شده و برای کامپیوتر دیگر ارسال شود. چیزی که اینجا قابل رویت است٫ حجم و پیچیدگی فرآیند ارسال یک متن است ونکته بعدی این است که این فرایند توسط ما انجام نمیشود.اما چه چیزی در حال انجام این فرایند است؟
تمامی شبکه های کامپیوتری برای ایجاد ارتباط بین سیستمها باید از پروتکل هایی استفاده کنند و این پروتکل ها شامل فرایند انجام یک کار هستند. tcp/ip پروتکل ارتباطی در اینترنت است که به ما این قابلیت را میدهند تا با سیستم های دیگر در سراسر جهان ارتباط برقرار کنیم.
به طور کلی tcp/ip از ۴ بخش تشکیل شده است:
- Application layer,
- Transmission Control Protocol layer(tcp)
- Internet Protocol Layer(ip)
- Hardware layer
زمانی که شما یک پیام برای سیستم دیگری ارسال میکنید مراحل زیر برای ارسال پیام صورت میگیرند:
۱- پیام شما در Application layer به بخشهای کوچک ۸ کیلوبایتی به نام packet تبدیل میشوند تا قابلیت ارسال پیدا کنند\
۲- در مرحله بعدی که توسط tcp صورت میگیرد٫ اطلاعات مربوط به پورت دریافت کننده در هر packet قرار میگیرد.
۳- اطلاعات مربوط به گیرنده مثل ip در در هر packet قرار میگیرد تا گیرنده پیام مشخص شود.
۴- هر packet برای Hardware Layout ارسال میشود تا تبدیل به کد های باینری شده و برای سیستم گیرنده ارسال شود.
بعد از ارسال٫ هر packet از طریق اینترنت و روتر ها مسیر خود را مشخص میکنند و به سمت گیرنده حرکت میکنند. هر روتر مجموعه کامپیوتر ها و روتر ها را به یکدیگر متصل میکند.
زمان رسیدن هر packet ٫ روتر اطلاعات گیرنده این بسته را بررسی میکند.اگر گیرنده جز شبکه متصل به روتر است وارد شبکه میشود تا به سیستم مورد نظر خود برسد در غیر این بصورت به سراغ روتر بعدی می رود.
از این طریق تمام packet ها برای سیستم ۵.۶.۷.۸ ارسال میشود. در سیستم گیرنده پروتکل tcp/ip به صورت برعکس اجرا میشود.
۱- اطلاعات با گذشت از Hardware Layer به شکل اولیه خود بازمیگردد.
۲- در مرحله بعد٫ ip بررسی میکند که packet ها برای سیستم درستی ارسال شده است.
۳- بعد از تایید اطلاعات ارسال شده٫ tcp layer بررسی میکند که تمامی packet ها از فرستنده رسیده باشند و اگر packet وجود ندارد یا در زمان ارسال با مشکل مواجه شده است٫ درخواست ارسال دوباره میکند.
۴- در application layer تمامی packet ها به یکدیگر متصل میشوند و پیام به کاربر نمایش داده میشود.
این فرایند به صورت کلی برای تمامی اطلاعاتی که ما از دنیای اینترنت دریافت می کنیم یا ارسال میکنیم صورت میگیرد.
این نکته را در نظر بگیرد که در منابع مختلف از نام های متعددی برای ۴ بخش اصلی tcp/ip نام برده شده است. مثلا به جای بخش tcp از transport استفاده کرده اند ولی این تفاوت در نام هیچگونه تفاوتی در کارکرد ایجاد نمیکند.
اگر قصد کسب اطلاعات بیشتر در مورد tcp/ip را دارید٫ میتوانید ویدیو زیر از کانال CertBros را در یوتیوب تماشا کنید.
حرف آخر
اینترنت امروزه جزئی غیر قابل حذف از زندگی ما بدل شده است و تقریبا روزی ۸ ساعت در حال استفاده مستقیم از آن هستیم.مسائلی که بالاتر بررسی کردیم تنها بخش کوچکی از اینترنت است اگر قصد کسب اطلاعاتی بیشتر در مورد اینترنت را دارید٫ از لینکهای در بخش منابع هستند استفاده کنید. برای درک بهتر اینترنت باید مسائلی مثل نحوه کار مرورگرها٫ http و ssl و .... را هم بررسی کنیم تا با دید بازتری وارد مباحث مختلف برنامهنویسی شویم. برای برنامهنویسان مخصوصا برنامهنویسانی که در حوزه وب فعالیت میکنند٫ داشتن اطلاعات در مورد نحوه کارکرد اینترنت مزیت خوبی به حساب میآید. در مقالات بعدی به سراغ دیگر بخش های تشکیل دهنده این شبکه جهانی میرویم. اگر در مورد محتوای مطرح شده در مقاله انتقاد یا سوالی دارید از طریق ایمیل [email protected] با من در ارتباط باشید.
با آرزوی موفقیت٫ علی امیری
منابع
Powered by Froala Editor