پورت 0 اهمیت ویژه ای در برنامه نویسی شبکه دارد، به ویژه در سیستم عامل یونیکس وقتی صحبت از برنامه نویسی سوکت می شود، جایی که پورت برای درخواست پورت های پویا و تخصیص یافته به سیستم استفاده می شود. پورت 0 یک پورت عام است که به سیستم می گوید شماره پورت مناسب را پیدا کند.
برخلاف اکثر شمارههای پورت، پورت ۰ یک پورت رزرو شده در شبکه TCP/IP است، به این معنی که نباید در پیامهای TCP یا UDP استفاده شود. پورت های شبکه در TCP و UDP از عدد صفر تا 65535 متغیر است. شماره پورت ها در محدوده صفر تا 1023 به عنوان پورت های غیر زودگذر، پورت های سیستم یا پورت های شناخته شده تعریف می شوند. مرجع شماره های اختصاص داده شده اینترنت (IANA) فهرستی رسمی از استفاده مورد نظر از این شماره پورت ها در اینترنت دارد و پورت 0 سیستم نباید استفاده شود.
چگونه پورت TCP/UDP 0 در برنامه نویسی شبکه کار می کند
پیکربندی یک اتصال سوکت شبکه جدید مستلزم آن است که یک شماره پورت در طرف مبدا و مقصد تخصیص داده شود. پیامهای TCP یا UDP ارسال شده توسط مبدأ (منبع) حاوی هر دو شماره پورت هستند تا گیرنده پیام (مقصد) بتواند پیامهای پاسخ را به نقطه پایانی پروتکل صحیح صادر کند.
IANA پورت های سیستمی را از قبل برای برنامه های کاربردی اینترنتی اصلی مانند سرورهای وب (پورت 80) اختصاص داده است، اما بسیاری از برنامه های شبکه TCP و UDP پورت سیستم خود را ندارند و باید هر بار که اجرا می شوند، یک پورت سیستم را از سیستم عامل دستگاه خود دریافت کنند..
برای تخصیص شماره پورت منبع، برنامهها توابع شبکه TCP/IP مانند bind() را فراخوانی میکنند تا یکی را درخواست کنند. برنامه می تواند یک عدد ثابت (هاردکد شده) برای bind() ارائه دهد، اگر آنها ترجیح می دهند یک عدد خاص را درخواست کنند، اما چنین درخواستی ممکن است با شکست مواجه شود، زیرا ممکن است برنامه دیگری که روی سیستم در حال اجرا است در حال حاضر از آن استفاده کند.
به طور متناوب، می تواند پورت 0 را برای bind() به عنوان پارامتر اتصال خود ارائه دهد. این باعث می شود که سیستم عامل به طور خودکار یک پورت موجود مناسب را در محدوده شماره پورت پویا TCP/IP جستجو کرده و برگرداند.
به برنامه پورت 0 داده نمی شود، بلکه به یک پورت پویا دیگر اعطا می شود. مزیت این کنوانسیون برنامه نویسی کارایی است. به جای اینکه هر برنامه کدی را پیاده سازی و اجرا کند تا چندین پورت را امتحان کند تا زمانی که یک پورت معتبر به دست آورد، برنامه ها به سیستم عامل متکی هستند.
یونیکس، ویندوز، و سایر سیستمعاملها در مدیریت پورت ۰ متفاوت هستند، اما همان قرارداد کلی اعمال میشود.
پورت 0 و امنیت شبکه
ترافیک شبکه ارسال شده در سراسر اینترنت به میزبان هایی که در پورت ۰ گوش می دهند ممکن است از مهاجمان شبکه یا به طور تصادفی توسط برنامه هایی که به اشتباه برنامه ریزی شده اند ایجاد شود. پیامهای پاسخی که میزبانها در پاسخ به ترافیک پورت 0 تولید میکنند به مهاجمان کمک میکند تا رفتار و آسیبپذیریهای شبکه احتمالی آن دستگاهها را بیاموزند.
بسیاری از ارائه دهندگان خدمات اینترنتی (ISP) برای محافظت در برابر این سوء استفاده ها، ترافیک پورت 0، پیام های ورودی و خروجی را مسدود می کنند.
سوالات متداول
شماره پورت چیست؟
شمارههای پورت مورد استفاده برای اتصالات شبکه TCP/IP به عنوان اطلاعات آدرس عمل میکنند و فرستنده و گیرنده پیام را شناسایی میکنند. شماره پورت به برنامههای مختلف در یک شبکه اجازه میدهد منابع را به طور همزمان به اشتراک بگذارند.
چگونه شماره پورت را پیدا کنم؟
برای پیدا کردن شماره پورت یک آدرس IP خاص، به خط فرمان بروید، netstat -a را تایپ کنید، سپس Enter را فشار دهید. لیستی از اتصالات TCP فعال به همراه آدرسهای IP و شماره پورتها را میبینید که با دو نقطه از هم جدا شدهاند.
آیا می توانم به پورت 0 وصل شوم؟
خیر. به طور رسمی، پورت 0 وجود ندارد و شما نمی توانید به آن متصل شوید، زیرا یک شماره پورت نامعتبر است. با این حال، میتوانید یک بسته اینترنتی به و از پورت 0 ارسال کنید، همانطور که با شماره پورت دیگری ارسال میکنید.