سیستمها در شبکه به یکدیگر متصل میشوند تا بتوانند اطلاعات و منابع را با یکدیگر به اشتراک بگذارند و کاربران آنها با همدیگر در تعامل باشند. با این کار، دادهها به راحتی از یک سیستم به سیستم دیگر منتقل شده و کاربران امکان دسترسی به منابع مختلف را خواهند داشت.بطور کلی، کامپیوترهایی که در شبکه وجود دارند تحت عنوان میزبان شناخته میشوند. این کامپیوترها ممکن است از طریق یک یا چند روش به شبکه اتصال داشته باشند، مانند کارت های اترنت، کارت های وایفای یا کارتهای وایرلس WAN.منظور از لایه کانکشن یا ارتباط، اتصال مستقیم از طریق اتصال فیزیکی از یک سیستم به یک سیستم دیگر است. آدرس MAC (کنترل دسترسی به رسانه) آدرس لایه کانکشن دستگاه برای اینگونه اتصالات فیزیکی است.
آدرس MAC چیست؟
آدرس MAC یک شماره منحصر به فرد 48 بیتی است که به هر دستگاه اختصاص داده شده است. با 48 بیت، فضای قابل دسترسی برای بیش از 200 هزار میلیارد دستگاه در شبکه وجود دارد.بنابراین، به عبارتی، هر کامپیوتر میتواند یک یا چند اتصال فیزیکی به شبکه داشته باشد. برای این اتصالات فیزیکی، آدرس MAC به عنوان آدرس لایه کانکشن استفاده میشود.گاهی اوقات، شبکهها به صورت غیرمستقیم از طریق یک شبکه واسط، به یکدیگر متصل میشوند. این شبکه واسط را میتوان به عنوان یک پل ارتباطی بین دو شبکه دانست.
پورت در شبکه
Port در شبکه به شناسه ای از یک دستگاه اشاره دارد که ترافیک شبکه را از طریق آن بین سیستم ها جا به جا می کند. هر دستگاهی که از شبکه استفاده میکند، به پورت مشخصی برای انتقال دادهها نیاز دارد.این پورتها شمارههای مشخصی هستند که توسط سیستم عامل و برنامههای خاصی ایجاد می شوند. برای مثال، وب سرور از پورت یا درگاه ۸۰ برای دریافت ترافیک HTTP و پورت ۴4۳ را برای دریافت ترافیک HTTPS استفاده میکند.
لیست زیر پرکاربردترین پورت های شبکه را معرفی خواهد کرد:
- پورت 80: برای انتقال دادههای وب از طریق پروتکل HTTP
- پورت 443: برای انتقال دادههای وب از طریق پروتکل HTTPS
- پورت 22: برای دسترسی امن به سرور از طریق SSH (Secure Shell)
- پورت 25: برای انتقال ایمیل از طریق SMTP (Simple Mail Transfer Protocol)
- پورت 53: برای نامگذاری وبسایتها و نشانیهای آیپی از طریق پروتکل DNS (Domain Name System)
- پورت 21: برای انتقال فایل از طریق FTP (File Transfer Protocol)
برای درک بهتر موضوع، لازم است آدرس های IP را بخوبی بشناسید؛
آدرس IP در شبکه
آدرس آیپی یک شناسه منحصر به فرد است که به هر دستگاهی که به اینترنت متصل است، اختصاص داده میشود. این آدرس برای شناسایی دستگاه در شبکه، مسیریابی و تحویل بستههای اطلاعاتی به دستگاه مورد نظر استفاده میشود.آدرس IP در شبکه نیز به عنوان شناسه ای از دستگاهها، برای ارسال و دریافت اطلاعات مورد استفاده قرار میگیرد. هر دستگاه در شبکه باید یک آدرس IP داشته باشد تا بتواند با سایر شبکه ها ارتباط برقرار کرده و اطلاعات را دریافت و ارسال کند.برای ارسال اطلاعات به دستگاهی دیگر، باید آدرس IP آن دستگاه را بدانیم تا بتوانیم اطلاعات را برای مقصد ارسال کنیم.آدرس IP، روتینگ و پورتها اجزایی جداناپذیر در ارتباطات شبکه هستند. هر دستگاه در شبکه با یک آدرس IP مشخص شناخته شده و این آدرس، برای مسیردهی به ترافیک در شبکه مورد استفاده قرار میگیرد.با استفاده از پورتها، بستههای شبکه (Data packets) به مقاصد مختلفی هدایت میشوند. به عنوان مثال، بستههای HTTP با استفاده از پورت 80 و بستههای HTTPS با استفاده از پورت 443 به دستگاه مقصد ارسال میشوند. در نتیجه، برای برقراری ارتباط و تعامل با دستگاههای دیگر در شبکه، نیاز است که آدرس IP، روتینگ و پورتها را بخوبی بشناسیم.
مسیریابی در شبکه
شبکهها برای پیدا کردن مسیر رسیدن به مقصد از "الگوریتمهای مسیریابی" استفاده میکنند. این الگوریتمها با استفاده از اطلاعات موجود در جداول مسیریابی، بهترین مسیر را برای ارسال بستههای داده به مقصد را مشخص میکنند.این جداول اطلاعات را در خود ذخیره می کنند که باید مرتباً آنها را بروز کنند؛ اطلاعاتی از قبیل شبکههای متصل به مسیریاب (روتر)، مسیرهای پیشفرض و اطلاعات جمعآوریشده توسط پروتکلهای مسیریابی. هر روتر، اطلاعات جداول مسیریابی خود را با روترهای دیگر به اشتراک میگذارد تا هر دستگاهی که در شبکه وجود دارد، بتواند به بهترین شکل ممکن مسیر خود را پیدا کند.همچنین، در هر شبکه، دستگاهها با استفاده از شماره پورت، تعیین میکنند که بستههای دادهای که برایشان ارسال میشود باید به کدام مقصد ارسال شود. در واقع، پورتها به عنوان درگاههایی عمل میکنند که از آنها میتوان به دستگاه های مختلف دسترسی پیدا کرد.
ارتباط Mac address و پورت های شبکه
همانطور که اشاره شد، هر دستگاه در شبکه یک آدرس MAC دارد که برای شناسایی آدرس سخت افزار شبکهی آن دستگاه کاربرد دارد. هر دستگاه پورت هایی نیز دارد که از طریق آنها با سایر دستگاهها ارتباط برقرار میکند.هر پورت نیز یک شناسه عددی دارد که به آن پورت نسبت داده میشود. در مدل OSI، پورتها در لایه ۴ و آدرس MAC در لایه ۲ قرار دارند.در فرآیند ارسال و دریافت داده، ابتدا برای یافتن مسیریابی مناسب از آدرس IP استفاده میشود، سپس پورت مورد نظر برای ارتباط با دستگاه مقصد تعیین شده و در نهایت داده از طریق پورت و آدرس MAC به دستگاه مقصد ارسال میشود. لذا آدرس MAC و پورت به طور مستقیم با یکدیگر ارتباط ندارند، بلکه پورت با آدرس IP و آدرس MAC با لایه ۲ شبکه ارتباط دارد.
سوکت چیست؟
سوکت (Socket) یک واسط بین برنامه ها و شبکه جهت برقراری ارتباط است. سوکت ها شامل یک آدرس IP و یک شماره پورت بوده و برنامه ها (نرم افزارها) میتوانند برای ارسال و دریافت دادهها، از طریق یک سوکت مشخص، به یک دستگاه خاص در شبکه متصل شوند.بنابراین سوکتها برای ارسال و دریافت دادهها به کار میروند و میتوانند به صورت دوطرفه یا یکطرفه باشند. برای ایجاد ارتباط بین دو سوکت، یک سوکت باید به عنوان کلاینت و دیگری به عنوان سرور تعریف شود. به این ترتیب، سوکتِ کلاینت درخواستی را به سوکتِ سرور ارسال و سپس پاسخ را دریافت می کند.وب سوکت در این میان، یک پروتکل ارتباطی است که برای ارتباط real-time بین کلاینت و سرور. در این پروتکل، ارتباط بین کلاینت و سرور مستمر بوده و هر دو به صورت همزمان میتوانند پیامی ارسال و دریافت کنند. وب سوکت در بسیاری از برنامههای وب، مانند بازیهای آنلاین، چت، ویدیوکنفرانس و ... مورد استفاده قرار می گیرد.
تعریف مفاهیم در قالب یک فرآیند
یک فرآیند کلی برای درک بهتر توپولوژی های بالا:
- ابتدا، دستگاههایی که به شبکه متصل هستند با استفاده از پورتهای مشخص به یکدیگر متصل میشوند.
- هر دستگاه برای شناسایی و ارسال اطلاعات به دستگاه دیگر، باید از یک IP آدرس منحصر به فرد استفاده کند.
- در مسیریابی بین دستگاهها، هر بسته (Packet) با استفاده از روترها و دروازههای شبکه به مقصد نهایی هدایت میشود.
- در هر دستگاه، برای نرمافزارهای مختلف مانند وب سرور، ایمیل، فایلهای اشتراکی، بازیهای شبکهای و... پورتهای اختصاصی تعریف می شود.
- برنامههایی که درون دستگاهها اجرا میشوند، برای ارسال و دریافت اطلاعات، فایلها، پیامها و دستورات مختلف از سوکتها استفاده می کنند.
- اگر ارتباط برقرار شده برای مدت زمان طولانی در نظر گرفته شده باشد، از وب سوکتها استفاده میشود که اتصالی پایدارتر و دائمی بین دستگاهها را فراهم میکنند.
به این ترتیب، با استفاده از پورت، IP آدرس، روترها و سوکتها، دستگاهها در یک شبکه با یکدیگر ارتباط برقرار کرده و از طریق این فرآیندها، اطلاعات ارسال و دریافت می شوند.
جمع بندی
به طور خلاصه، در شبکههای کامپیوتری سیستمها به وسیلهی پورتها به یکدیگر متصل و با استفاده از IP آدرسها به سمت یکدیگر هدایت میشوند. در شبکههای بزرگتر از روترها برای پیدا کردن مسیر و از سوکتها به عنوان ابزاری برای ارتباط برنامهها در شبکه کمک گرفته می شود.
ارائه دهنده خدمات زیرساخت یکپارچه ابری