سرور

network sockets یا سوکت های شبکه چیست؟

network sockets یا سوکت های شبکه چیست؟

network sockets (سوکت های شبکه) شبیه تماس های تلفنی برای کامپیوترها هستند، در دهه ۱۹۶۰ این مفهوم را برای نرم افزار شبکه (network software) طراحی می کردند.پس ما یک تماس می گیریم، ما در تماس صحبت می کنیم، و تلفن را قطع می کنیم.حالا در کامپیوترها قرار هست که داده ها را به اشتراک بگذاریم و برخی از کامپیوترها قرار است داده داشته باشند و کامپیوترهای دیگر قرار است داده ها را بخواهند، آنها فکر کردند، برای اینکار لزوما ارتباط دائمی با آن داده ها نیاز نیست، چرا که قرار است کامپیوترهای زیادی وجود داشته باشند و منابع داده های زیادی وجود داشته باشند، و کامپیوترهای زیادی که می خواهند آن داده ها را مصرف کنند.

و البته در سال 1960 هیچ تصوری نداشتند که میلیاردها نفر وجود داشته باشند که از بخواهند از این قابلیت استفاده کنند، فقط فکر می کردند ده هزار نفر وجود خواهد داشت و فکر می کردند که این تعداد، تعداد خیلی زیادی می باشد.

اما آنها پروتکلی را مطرح کردند که اساسا ً می گفت وقتی دسترسی مداوم و دائمی به داده ها داري، در واقع با هم تماس تلفنی می گیرید.

ميدوني داده ها کجاست، يه جورايي ميگي، شماره ميگيري، چيزایی رو ميگيري، بعد پسش میدی، و بعدش ميذاري ارتباط بره.

و بنابراین بعد این اتفاق بود که با میلیاردها کامپیوتر که هر کدام با یکدیگر صحبت می کنند، شبکه چندان پیچیده نشد. این ارتباط، صحبت کردن، قطع ارتباط وجود دارد.

وصلش کن ، حرف بزن ، قطع کن .

و این شیوه ای است که اینترنت برای همه افرادی که می خواهند از اینترنت استفاده کنند اتفاق میفتد.این اتفاق در داخل نرم افزار به صورت انتزاعی (abstraction) ساخته شده است، یا اینکه از یک کتابخانه، به نام سوکت (socket) استفاده می شود.

سوکت ها (sockets) واقعا تماس های تلفنی کامپیوتری هستند. شما می دانید که در آن شما می خواهید با چه کسی تماس بگیرید، شما می توانید تماس را شروع کنید، صبر کنید تا آنها پاسخ دهند، هنگامی که آنها پاسخ می دهند، یک ارتباط دو طرفه وجود دارد.کمی هم شبیه یک فایل می باشد، با این تفاوت که شما می توانید به طور همزمان از فایل بخوانید و در فایل بنویسید.

اگر چه برای دو بخش نرم افزاری که کار مشابه میکنند مهم است که بدانند چه کسی اول می خواند و چه کسی اول می نویسد، چون انگار وقتی گوشی را بعد از زنگ زدن بلند می کنید، همه می دانیم که بگوییم سلام. و این یک نوع پروتکل(protocol) است، پس باید بگوییم اینکه چه کسی اول صحبت می کند این همان پروتکل (protocol) است.

و بعد شايد اون شخص بره، مثل اينکه، “اين کيه؟” و بعد در نهایت مکالمات خیلی طبیعی اتفاق می افته. يکي حرف ميزنه، گوش ميده، يکي دیگه حرف ميزنه، گوش ميده، و اين جواب ميده،

ولي پروتکل هاي پيچيده اي وجود دارد که شما می توانید به آن فکر کنید نه لزوما چیزی مثل یک مرورگر در لپ تاپ یا تلفن خود که به عنوان صحبت کردن با داده ها بر روی سرور از آن استفاده میکنیم، بلکه در واقع صحبت کردن با یک برنامه دیگر. بنابراین حتی زمانی که فقط یک فایل را با یک برنامه کاربردی بر روی سرور بازیابی می کنید،آن برنامه در حال خواندن فایل و ارسال آن به خارج است.

زمانی که ما کارهایی مانند آپلود تصاویر را انجام می دهیم. ما عکس ها را آپلود می کنیم و بعد باید در واقع آنها ارائه دهیم. ما نمی توانیم فقط بگوییم: «اوه، عکس ها آنجا هستند، شما می توانید آنها را بگیرید.» چون گاهی همه نمی توانند هر عکسی را ببینند.

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

در واقعا دو قطعه از نرم افزار کامپیوتر در حال صحبت کردن با یکدیگرند، و ما از اینترنت به عنوان آن واسطه استفاده می کنیم تا اجازه دهیم آن گفتگو اتفاق بیفتد.

هر کامپیوتری دارای یک آدرس آی پی (IP) است که یک عدد است. دو نوع آدرس آی پی IPv4 و IPv6 وجود دارد. IPv4، نسخه 4 می باشد که به صورت چهار تایی مانند 142.16.42.114 است، اما در داخل هر یک از قسمت ها اعدادی است که به آن شماره پورت TCP میگویند از آنجا که تمام این ها در اینترنت مانند صحبت کردن با برنامه های کاربردی است، ما باید یک راه خوب برای دانستن اینکه با کدام برنامه صحبت می کنیم داشته باشیم، و این جایی است که اعداد پورت TCP بکار می آیند. که چیزی شبیه به پسوند تلفن می باشد.

پس فهمیدیم شماره های پورت TCP برای چه کاری هستند. بنابراین ما نمی توانیم یک آدرس خاص برای هر برنامه داشته باشیم، اما یک برنامه دارای یک آدرس و یک پورت در داخل آن آدرس، و یا یک شماره تلفن و پسوند در داخل آن شماره تلفن می باشد مثلا پورت ۲۵ برای ارتباط ایمیل سرور به سرور استفاده می شود.

در قديم، ما از چيزي به اسم تلنت(telnet) استفاده ميکرديم، در پورت (port) 23. در تصویر بالا مشتری در سمت راست قرار دارد، و ممکن است یک کامپیوتر باشد که در آن شما یک صفحه کلید داشته باشید و یا ممکن است سروری باشد که مقداری ایمیل دارد که از جایی ارسال می شود و همه به یک آدرس آی پی متصل می شوند. در این حالت 74.208.28.177 آدرس آی پی این رایانه است و سپس پورت ۲۵ پسوند است که در آن یک کامپیوتر به کامپیوتر دیگری ایمیل می فرستد.

و هر کدام از پیکان های بین آن ها یک پروتکل جداگانه است. بنابراین اگر شما در حال فراخوانی یک سرور ایمیل باشید، شما انتظار دارید که در پروتکل ایمیل فراخوانی صورت بگیرد، و اگر شما در حال فراخوانی یک سرور ورود به سیستم باشید، شما یک پروتکل ورود به سیستم، که نوع ساده تری است را فراخوانی کرده اید. یک وب سرور می تواند اگر ناامن باشد در پورت ۸۰ قرار میگیردو اگر امن باشد که به آن HTTPS گفته میشود در پورت 443 قرار میگیرد. اگر شما یک برنامه الکترونیکی مانند Thunderbird ، که وظیفه خواندن جی میل را دارد، آن را در پورت های 109 یا 110 ، و یا چند مورد دیگر فراخوانی می کند.

بنابراین این پورت ها بر روی سرورها وجود دارند که پروتکل(protocols) دارند، در حالت Production، پورت 443 برای HTTP، اسناد وب، و اسناد برنامه های وب می باشد.حالا که با مفهوم سوکت نتورک آشنا شدیم بزودی مقاله درباره به پروتکل انتقال ابر متن (HyperText Transport Protocol) خواهم نوشت آن را پروتکل انتقال ابر متن (HyperText Transport Protocol) یا به اختصار HTTP، پروتکلی است که ما با پورت 80 یا پورت 443 آن را فراخوانی می کنیم.

برای خواندن مقاله قدرت عبارات در افترافکت بر روی لینک کلیک کنید

امیرحسین باقری

امیرحسین باقری هستم عاشق برنامه نویسی مخصوصا با python و همینطور طراح قالب و متخصص فرانت اند؛ از دانشی که تو این مدت بدست آوردم میشه به HTML, CSS, Bootstrap, Flexbox, SASS, Python, Django, DRF و هوش مصنوعی اشاره کرد.

دیدگاهتان را بنویسید

دکمه بازگشت به بالا