یکی از بزرگترین مزایای اینترنت این است که هیچکس واقعاً مالک آن نیست. اینترنت یک مجموعه جهانی از شبکهها، هم بزرگ و هم کوچک است. این شبکهها به طرق مختلفی به هم متصل میشوند تا واحدی را تشکیل دهند که ما آن را بهعنوان اینترنت (Internet) میشناسیم.
از زمان آغاز آن در سال 1969، اینترنت از چهار سیستم کامپیوتری میزبان به دهها میلیون سیستم تبدیل شده است. با این حال، فقط به این دلیل که هیچکس مالک اینترنت نیست، به این معنی نیست که این شبکه به طرق مختلف نظارت و مدیریت نمیشود. جامعه اینترنت (Internet Society)، یک گروه غیرانتفاعی است که در سال 1992 تأسیس شده است و وظایف نظارت بر تدوین سیاستها و پروتکلهایی را که تعریف میکند چگونه از اینترنت استفاده میکنیم و با آن تعامل داریم را بر عهده دارد.
در این مقاله، شما با ساختار پایهای اینترنت آشنا خواهید شد. شما درباره سرورهای نام دامنه، نقاط دسترسی شبکه و ستونهای فقرات یاد خواهید گرفت. اما ابتدا یاد میگیرید که چگونه کامپیوتر شما به دیگران متصل میشود.
اینترنت: سلسلهمراتب شبکههای کامپیوتری
هر دستگاهی که به اینترنت متصل است، بخشی از یک شبکه است، حتی کامپیوتری که در خانه شما قرار دارد. به عنوان مثال، کامپیوتر شما ممکن است از طریق یک مودم کابلی یا فیبر نوری به یک ارائهدهنده خدمات اینترنتی (Internet Service Provider (ISP)) متصل شود. در محل کار، دستگاه شما ممکن است بخشی از یک شبکه محلی (Local Area Network (LAN)) باشد، اما اتصال اینترنت شما توسط ISP کارفرمای شما تأمین میشود. هنگامی که شما کامپیوتر خود را متصل میکنید، به بخشی از شبکه کارفرما تبدیل میشوید. ISP سپس ممکن است به یک شبکه بزرگتر متصل شود. اینترنت به سادگی یک شبکه از شبکهها است.
شرکتهای بزرگ مخابراتی دارای ستون فقرات (backbone) اختصاصی خود هستند که بهطور دائمی به اینترنت متصل هستند و دارای پهنای باند کافی هستند تا اجازه دهند افراد زیادی به طور همزمان از این اتصال استفاده کنند. در هر منطقه، یک شرکت دارای دفتری محلی است که خانهها و کسبوکارهای محلی را به شبکه اصلی خود متصل میکند. نکته شگفتانگیز در اینجا این است که هیچ شبکه متمرکزی وجود ندارد. ترافیک از نقطهای به نقطه دیگر منتقل میشود و اگر یک کامپیوتر از شبکه خارج شود، بستههایی که یک فایل دیجیتال را تشکیل میدهند، به کامپیوتر دیگری هدایت میشوند. فایلها مطابق انتظار به مقصد میرسند و شما هرگز تغییر در الگوی ترافیک را متوجه نمیشوید.
مثالی از شبکه اینترنت
به عنوان مثال، تصور کنید که شرکت A یک شرکت کوچک است که شبکه اداری خود را با یک سرور و یک چاپگر شبکهای راهاندازی کرده است. تصور کنید که شرکت B یک ISP شرکتی است. شرکت B در شهرهای بزرگ دفترهایی را میسازد یا اجاره میکند تا سرورها و تجهیزات مسیریابی خود را ذخیره کند. شرکت B به قدری بزرگ است که خطوط فیبر نوری خود را بین ساختمانهایش راهاندازی کرده است تا همه آنها به هم متصل شوند.
در این ساختار، همه مشتریان شرکت A میتوانند با یکدیگر صحبت کنند و همه مشتریان شرکت B نیز میتوانند با یکدیگر ارتباط برقرار کنند، اما شبکههای این دو شرکت به هم متصل نیستند. هر دو شرکت میتوانند بهطور داخلی ارتباط برقرار کنند، اما هیچکدام نمیتوانند با دیگری ارتباط برقرار کنند. بنابراین، شرکت A و شرکت B هر دو توافق میکنند که به نقاط دسترسی اینترنت (Internet Access Points (IXP)) در شهرهای مختلف متصل شوند. اکنون شبکههای این دو شرکت میتوانند به یکدیگر و دیگر سازمانها از طریق اینترنت متصل شوند.
این مثال نشان میدهد که چگونه شبکههای دو شرکت با یکدیگر ارتباط برقرار میکنند، اما این دو کسبوکار تنها یک مثال نزدیک هستند که نشان میدهد چگونه دو شبکه آنها به اینترنت وسیع متصل میشوند. برای دیدن نمای کلی از اینکه این شبکههای متصل چگونه به نظر میرسند، به پروژه اپته (Opte) (کلیک کنید) بارنت لیون (Barrett Lyon) نگاهی بیندازید که در تلاش است نقشهای در حال تکامل از خطوط اینترنتی ایجاد کند.
عملکرد یک روتر اینترنت
تمام این شبکهها به IXPs، زیرساختهای اصلی و روترها (Routers) برای برقراری ارتباط با یکدیگر وابسته هستند. نکته شگفتانگیز در این فرآیند این است که یک پیام میتواند از یک کامپیوتر خارج شود و در کسری از ثانیه از طریق چندین شبکه به کامپیوتر دیگری در نیمه دیگر جهان برسد!
روترها تعیین میکنند که اطلاعات از یک کامپیوتر به کجا ارسال شود. روترها دستگاههای تخصصی هستند که پیامهای شما و پیامهای هر کاربر اینترنتی دیگر را با سرعت به سمت مقصد خود هدایت میکنند و این کار را از طریق هزاران مسیر انجام میدهند. یک روتر دو وظیفه جدا اما مرتبط دارد:
- اطمینان حاصل میکند که اطلاعات به جایی نرود که نیازی به آن نیست. این برای جلوگیری از مسدود شدن حجم زیادی از دادهها در اتصالات “شاهدان بیگناه (Innocent Bystanders)” بسیار حائز اهمیت است.
- اطمینان حاصل میکند که اطلاعات به مقصد مورد نظر میرسد.
با انجام این دو وظیفه، یک روتر در مدیریت دو شبکه کامپیوتری بسیار مفید است. این دستگاه دو شبکه را به هم متصل میکند و اطلاعات را از یکی به دیگری منتقل میکند. روتر همچنین شبکهها را از یکدیگر محافظت میکند و از سرریز ترافیک یکی به دیگری جلوگیری میکند. صرفنظر از تعداد شبکههای متصل، عملکرد و کارکرد اساسی روتر ثابت میماند. از آنجایی که اینترنت یک شبکه بزرگ است که از شبکههای کوچکتر بیشماری تشکیل شده، استفاده از روترها یک ضرورت است.
ستون فقرات اینترنت
بنیاد ملی علوم (National Science Foundation (NSF)) در سال ۱۹۸۶ اولین ستونفقرات پرسرعت اینترنتی را ایجاد کرد. این زیرساخت که NSFNET نامیده میشود، یک خط T1 بود که ۱۷۰ شبکه کوچکتر را به هم متصل میکرد و با سرعت Mbps ۱٫۵ (میلیون بیت بر ثانیه) کار میکرد. IBM، MCI و Merit با NSF همکاری کردند تا ستونفقراتی با سرعت T3 (Mbps ۴۵) را در سال بعد توسعه دهند.
ستونهای فقرات اتصالات اینترنتی هستند که اجازه میدهند ترافیک بسیار بیشتری نسبت به اتصال شما از خانه به دفتر مرکزی در نزدیکیتان منتقل شود. در روزهای اولیه اینترنت، تنها بزرگترین شرکتهای مخابراتی توانایی مدیریت این نوع پهنای باند را داشتند.
امروز شرکتهای بیشتری ستونهای فقرات با ظرفیت بالا را اداره میکنند و همه آنها در نقاط تبادل اینترنت (IXP) مختلف در سراسر جهان به هم متصل میشوند. به این ترتیب، هر کسی که به اینترنت متصل است، بدون توجه به مکان یا ارائهدهنده خدمات خود، میتواند با همه افراد دیگر در سراسر جهان ارتباط برقرار کند. کل اینترنت یک توافق بزرگ و گسترده بین افراد برای برقراری ارتباط آزاد است.
پروتکل اینترنت: آدرسهای IP
هر دستگاهی که به اینترنت متصل است، یک شماره شناسایی منحصر به فرد دارد که به آن آدرس IP (IP Address) گفته میشود. IP مخفف پروتکل اینترنت (Internet Protocol) است که یکی از دو پروتکلی است که کامپیوترها برای ارتباط با یکدیگر در اینترنت استفاده میکنند. پروتکل دیگر، پروتکل کنترل انتقال (Transmission Control Protocol (TCP)) است و این دو معمولاً در عبارت TCP/IP ادغام میشوند. پروتکل (Protocol) روشی از پیشتعیینشده است که فردی که میخواهد از یک سرویس استفاده کند، با آن سرویس ارتباط برقرار میکند. این “فرد” میتواند یک شخص باشد، اما بیشتر اوقات یک برنامه کامپیوتری مانند مرورگر وب است.
یک آدرس IP نسخه ۴ (IPv4) معمولاً به این شکل است: 216.27.61.137 .
برای آسانتر کردن یادآوری آدرسها برای انسانها، آدرسهای IP معمولاً به صورت عددی در قالب عدد اعشاری نقطهدار (Dotted Decimal Number) بیان میشوند، مانند نمونه بالا. اما کامپیوترها در قالب باینری (دودویی -مترجم) ارتباط برقرار میکنند. به همان آدرس IPv4 بالا در قالب باینری نگاه کنید: 11011000.00011011.00111101.10001001.
هر دنباله عددی در یک آدرس IPv4 به نام یک اکتت یا هشتایی (Octet) شناخته میشود، زیرا هر کدام دارای هشت موقعیت زمانی است که به صورت باینری مشاهده میشوند. اگر همه موقعیتها را با هم جمع کنید، به ۳۲ میرسید، زیرا آدرسهای IPv4 به عنوان اعداد ۳۲ بیتی در نظر گرفته میشوند. از آنجا که هر یک از هشت موقعیت، میتواند دو حالت مختلف (۱ یا ۰) داشته باشد، تعداد کل ترکیبهای ممکن در هر اکتت ۲۸ یا ۲۵۶ است. بنابراین، هر اکتت میتواند هر مقداری بین صفر تا ۲۵۵ را شامل شود. با ترکیب چهار اکتت، تعداد کل مقادیر ممکن به ۲۳۲ یا تقریباً ۴.۲۹۴.۹۶۷.۲۹۶ میرسد!
از نزدیک به ۴٫۳ میلیارد ترکیب ممکن در آدرسهای IPv4، برخی مقادیر به عنوان آدرسهای IP معمولی ممنوع شدهاند. به عنوان مثال، آدرس آیپی 0.0.0.0 برای ماشینها در شبکه محلی رزرو شده است و آدرس 255.255.255.255 برای پخش (broadcasts) استفاده میشود.
اگرچه ۴٫۳ میلیارد به نظر زیاد میرسد، اما اینترنت به سرعت رشد کرده است و یک سیستم آدرسدهی ۱۲۸ بیتی جدید برای جایگزینی IPv4 مورد نیاز بود. کارشناسان گروه مهندسی اینترنت (IETF) از اواخر سال ۱۹۹۸ بر روی یک سیستم جدید کار کردند. IP نسخه ۶ (IPv6) که به طور رسمی در تاریخ ۶ ژوئن ۲۰۱۲ راهاندازی شد، ظرفیت ۳۴۰ تریلیون۳ آدرس را دارد، بنابراین برای همه دستگاههای ما فضای کافی وجود خواهد داشت. (البته فعلاً!) به طور رسمی، IPv5 هرگز به عنوان یک استاندارد پذیرفته نشد.
همانطور که انتظار میرود، آدرسهای IPv6 کمی متفاوت از IPv4 هستند که در دهه ۱۹۷۰ ایجاد شده است. هر بخش در یک آدرس IPv6 از چهار عدد تشکیل شده و با یک دو نقطه (:) از یکدیگر جدا میشود.
یک مثال به این شکل است: ba5a:9a72:4aa5:522e:b893:78dd:a6c4:f033.
از آنجاییکه IPv6 از نمادگذاری هگزادسیمال (Hexadecimal Notation) استفاده میکند، ۱۶ رقم باید نمایش داده شود. بنابراین علاوه بر اعداد صفر تا نه، حروف A-F نیز به نمایندگی از اعداد دو رقمی به کار رفتهاند.
در حال حاضر به IPv4 برگردیم، اکتتها هدفی فراتر از جداسازی اعداد دارند. آنها برای ایجاد کلاسهای آدرس IP استفاده میشوند که میتوانند به یک کسب و کار، دولت یا نهاد بر اساس اندازه و نیاز اختصاص یابند. اکتتها به دو بخش تقسیم میشوند: شبکه (Network) و میزبان (Host). اولین اکتت برای شناسایی شبکهای که یک کامپیوتر به آن تعلق دارد، استفاده میشود. میزبان (که گاهی به آن گره (Node) نیز گفته میشود) کامپیوتر واقعی در شبکه را شناسایی میکند. آخرین اکتت بخش میزبان را نشان میدهد. پنج کلاس IP به علاوه برخی آدرسهای خاص وجود دارد. میتوانید اطلاعات بیشتری درباره کلاسهای IP در مقاله “آدرس IP چیست؟” بیابید.
پروتکل اینترنت: سیستم اسمی دامنه
زمانی که اینترنت در مراحل ابتدایی خود بود، شامل تعداد کمی کامپیوتر بود که با مودمها و خطوط تلفن به هم متصل شده بودند. شما تنها میتوانستید با ارائه آدرس IP کامپیوتری که میخواستید با آن ارتباط برقرار کنید، اتصالات برقرار کنید. به عنوان مثال، یک آدرس IP معمولی ممکن است 216.27.22.162. باشد. این روش در زمان وجود تعداد کمی میزبان، مناسب بود، اما با آنلاین شدن سیستمهای بیشتر، این روش به دردسر افتاد.
اولین راهحل برای این مشکل یک فایل متنی ساده به نام جدول میزبان (Host Table) بود که توسط مرکز اطلاعات شبکه (Network Information Center (NIC)) نگهداری میشد و نامها را به آدرسهای IP متصل میکرد. به زودی این فایل متنی آنقدر بزرگ شد که مدیریت آن دشوار بود. در نوامبر ۱۹۸۳، پائول موکاپتریس (Paul Mockapetris) دو درخواست برای نظرات به گروه کاری شبکه بینالمللی ارسال کرد. RFC 882 مفاهیم سیستم اسمی دامنه (Domain Name System (DNS)) را که نامهای متنی را به آدرسهای IP به طور خودکار متصل میکند، توضیح میدهد. RFC 883 راههایی برای پیادهسازی این سیستم را پیشنهاد میکند. به لطف تلاشهای او و بسیاری دیگر، اکنون شما تنها نیاز دارید که www.howstuffworks.com را به یاد داشته باشید، به جای مجموعهای از اعداد و نشانهگذاری که آدرس IP سایت HowStuffWorks است.
URL: منبعیاب یکنواخت
زمانی که از وب استفاده میکنید یا یک پیام ایمیل ارسال میکنید، از یک نام دامنه برای این کار استفاده میکنید. به عنوان مثال، منبعیاب یکنواخت (Uniform Resource Locator (URL)) ” “https://www.howstuffworks.com شامل نام دامنه howstuffworks.com است. همچنین این آدرس ایمیل: example@howstuffworks.com نیز همینطور است. هر بار که از یک نام دامنه استفاده میکنید، سرورهای DNS اینترنت نام دامنه قابل خواندن برای انسان را به آدرس IP قابل خواندن برای ماشین تبدیل میکنند. برای اطلاعات بیشتر درباره نحوه کارکرد سرورهای نام دامنه، به مقاله “نحوه کارکرد سرورهای نام دامنه” مراجعه کنید.
نامهای دامنه سطح بالا، که به نامهای دامنه سطح اول نیز شناخته میشوند، شامل .COM، .ORG، .NET، .EDU و.GOV هستند. در هر دامنه سطح بالا، لیست بزرگی از دامنههای سطح دوم وجود دارد. به عنوان مثال، در دامنه سطح اول .COM، نامهای زیر وجود دارند:
HowStuffWorks •
Yahoo •
Microsoft •
هر نام در دامنه سطح بالای .COM باید منحصر به فرد باشد. چپترین بخش سمت، مانند “www”، نام میزبان است. این نام مشخصکننده یک دایرکتوری در یک ماشین خاص (با یک آدرس IP خاص) در یک دامنه است. یک دامنه میتواند به طور بالقوه شامل میلیونها نام میزبان باشد، به شرطی که همه آنها در آن دامنه منحصر به فرد باشند.
سرورهای DNS درخواستها را از برنامهها و سایر سرورهای اسمی برای تبدیل نامهای دامنه به آدرسهای IP قبول میکنند. هنگامی که یک درخواست به سرور DNS میرسد، میتواند یکی از چهار کار زیر را انجام دهد:
- میتواند درخواست را با یک آدرس IP پاسخ دهد زیرا از قبل آدرس IP مربوط به نام درخواست شده را میداند.
- میتواند با یک سرور DNS دیگر تماس بگیرد و سعی کند آدرس IP نام درخواست شده را پیدا کند. ممکن است مجبور باشد این کار را چندین بار انجام دهد.
- میتواند بگوید: “من آدرس IP دامنهای که درخواست کردهاید را نمیدانم، اما این آدرس IP برای یک سرور DNS است که بیشتر از من میداند.”
- میتواند یک پیام خطا برگرداند زیرا نام دامنه درخواست شده نامعتبر بوده و یا وجود ندارد.
یک مثال از DNS
فرض کنید URL سایت www.howstuffworks.com را در مرورگر خود تایپ میکنید. مرورگر با یک سرور DNS تماس میگیرد تا آدرس IP را دریافت کند. یک سرور DNS جستجوی خود را برای آدرس IP با تماس با یکی از سرورهای ریشه DNS (DNS Root Servers) آغاز میکند. سرورهای ریشه، آدرسهای IP مربوط به تمام سرورهای DNS که دامنههای سطح بالا (.COM، .NET، .ORG و غیره) را مدیریت میکنند، میدانند. سرور DNS شما از ریشه میپرسد که آیا آدرس IP www.howstuffworks.com را میداند، و ریشه میگوید: “من آدرس IP www.howstuffworks.com را نمیدانم، اما این آدرس IP برای سرور DNS .COM است.”
سپس سرور اسمی شما یک پرسوجو به سرور DNS .COM ارسال میکند و از آن میپرسد آیا آدرس IP www.howstuffworks.com را میداند. سرور DNS برای دامنه .COM آدرسهای IP مربوط به سرورهای نامی که دامنه www.howstuffworks.com را مدیریت میکنند، میداند، بنابراین آنها را برمیگرداند.
پس سرور اسمی شما با سرور DNS برای www.howstuffworks.com تماس میگیرد و از آن میپرسد آیا آدرس IP www.howstuffworks.com را میداند. در واقعیت، این سرور آن را میداند، بنابراین آدرس IP را به سرور DNS شما برمیگرداند که سپس آن را به مرورگر بازمیگرداند و مرورگر به سرور www.howstuffworks.com متصل میشود تا صفحه وب را دریافت کند.
یکی از کلیدهای موفقیت این سیستم، افزونگی یا کثرت (Redundancy) است. در هر سطح چندین سرور DNS وجود دارد، بنابراین اگر یکی از آنها خراب شود، دیگران میتوانند درخواستها را مدیریت کنند. کلید دیگر ذخیرهسازی یا کَشکردن (Caching) است. هنگامی که یک سرور DNS یک درخواست را حل میکند، آدرس IP دریافتی را ذخیره میکند. هنگامی که برای هر دامنه .COM به یک سرور ریشه DNS درخواست میفرستد، آدرس IP سرور DNS مربوط به دامنه .COM را میداند، بنابراین دیگر نیازی به پرسش از سرورهای ریشه ندارد. سرورهای DNS میتوانند این کار را برای هر درخواست انجام دهند و این ذخیرهسازی به جلوگیری از کند شدن سیستم کمک میکند.
با اینکه سرورهای DNS کاملاً نامرئی هستند، آنها روزانه میلیاردها درخواست را مدیریت میکنند و برای عملکرد روان اینترنت ضروری هستند. این واقعیت که این پایگاه داده توزیعشده بهطور مؤثر و نامرئی به طور پیوسته کار میکند، گواهی بر طراحی کارای آن است.
سرورها و مشتریان اینترنت
هر ماشینی (دستگاه) در اینترنت یا یک سرور است یا یک مشتری یا کلاینت (Client). ماشینهایی که خدماتی به سایر ماشینها ارائه میدهند، سرور (Server) نامیده میشوند. و ماشینهایی که برای اتصال به آن خدمات استفاده میشوند، مشتری نامیده میشوند. سرورهای وب، سرورهای ایمیل، سرورهای FTP و غیره به نیازهای کاربران اینترنت در سرتاسر جهان پاسخ میدهند.
زمانی که به www.howstuffworks.com متصل میشوید تا یک صفحه را بخوانید، شما یک کاربر هستید که پشت یک دستگاه مشتری نشستهاید. شما به سرور وب HowStuffWorks دسترسی پیدا میکنید. ماشین سرور، صفحهای که درخواست کردهاید را پیدا کرده و آن را برای شما ارسال میکند. مشتریها که به یک ماشین سرور میآیند، با یک هدف خاص این کار را انجام میدهند، بنابراین مشتریها درخواستهای خود را به یک سرور نرمافزاری خاص که روی ماشین سرور اجرا میشود، هدایت میکنند. به عنوان مثال، اگر شما یک مرورگر وب روی ماشین خود اجرا میکنید، سعی میکند با سرور وب روی ماشین سرور ارتباط برقرار کند، نه با سرور ایمیل.
یک سرور دارای یک آدرس IP ثابت است که تغییر نمیکند. از سوی دیگر، یک ماشین خانگی که از طریق یک مودم متصل میشود، معمولاً هر بار که وارد میشود، یک آدرس IP از ISP دریافت میکند. این آدرس IP منحصر به فرد برای آن جلسه یا آن دفعه شما است — احتمالاً در دفعه بعدی که دوباره وارد میشوید، آیپی متفاوت خواهد بود. به این ترتیب، یک ISP فقط به یک آدرس IP برای هر دستگاه نیاز دارد، نه یک آدرس برای هر مشتری.
پورتها و HTTP
هر سرور خدمات خود را با استفاده از پورتهای شمارهگذاریشده در دسترس قرار میدهد – یکی به ازای هر کدام از خدماتی که بر روی سرور موجود است. بهعنوان مثال، اگر یک دستگاه سرور یک سرور وب و یک سرور پروتکل انتقال فایل (File Transfer Protocol (FTP)) را اجرا کند، سرور وب معمولاً بر روی پورت 80 و سرور FTP بر روی پورت 21 در دسترس خواهد بود. مشتریها با استفاده از یک آدرس IP خاص و یک شماره پورت خاص به هر سرویسی متصل میشوند.
به محض اینکه یک کلاینت به یک سرویس در یک پورت خاص متصل شد، از یک پروتکل خاص برای دسترسی به آن سرویس استفاده میکند. پروتکلها به سادگی نحوهی گفتگوی کلاینت و سرور را توصیف میکنند. هر سرور وب در اینترنت مطابق با پروتکل انتقال ابرمتن (Hypertext Transfer Protocol (HTTP)) عمل میکند. میتوانید برای کسب اطلاعات بیشتر درباره سرورهای اینترنتی، پورتها و پروتکلها به مقاله “چگونه سرورهای وب کار میکنند” مراجعه کنید.
شبکهها، روترها، NAPها، ISPها، DNS و سرورهای قدرتمند همگی امکانپذیری اینترنت را فراهم میکنند. وقتی به این واقعیت فکر میکنید که تمام این اطلاعات در عرض چند میلیثانیه در سراسر جهان ارسال میشود، واقعاً شگفتانگیز است! این اجزا در زندگی مدرن بسیار مهم هستند – بدون آنها، اینترنت وجود نداشت. و بدون اینترنت، زندگی برای بسیاری از ما بهطور قابل توجهی متفاوت بود.