آموزشآموزش شبکه به زبان ساده

درس ۳۲ از ۹۹، شبکه و اینترنت، حدود ۱۲ دقیقه خواندن

پورت چیه

جواب کوتاه

پورت توی شبکه یه شماره‌ست، از ۰ تا ۶۵٬۵۳۵، که توی هر بسته نوشته می‌شه. آدرس IP پیام رو به دستگاه درست می‌رسونه، و پورت می‌گه توی اون دستگاه، پیام مال کدوم برنامه‌ست؛ مثل آدرس یه اداره و شماره‌ی باجه. هر بسته دو تا پورت داره: پورت مقصد، که برنامه‌ی سرور روش منتظره، مثلا ۴۴۳ برای سایت‌های امن، و پورت مبدأ، که دستگاه شما برای همون گفت‌وگو برداشته.

یه کلمه، دو تا معنی

اول یه گره رو باز کنیم. توی فارسی به دو تا چیز می‌گن «پورت»، و بیشتر گیج شدن‌ها از همینه:

پورت سخت‌افزاری: سوراخی که کابل توش می‌ره، مثل پورت شبکه یا USB. این درس درباره‌ی این نیست.
شماره‌ی پورت: عددی که توی هر بسته نوشته می‌شه و می‌گه پیام مال کدوم برنامه‌ست. این درس درباره‌ی اینه.

سه تا کلمه

  • پورتیه شماره از ۰ تا ۶۵٬۵۳۵ که می‌گه پیام، توی یه دستگاه، مال کدوم برنامه‌ست.
  • سوکتیه IP و یه پورت با هم، مثلا 203.0.113.80:443؛ یعنی آدرس کامل یه برنامه توی شبکه. هر اتصال بین دو تا سوکته.
  • پورت موقتشماره‌ای که دستگاه شما برای هر گفت‌وگو خودش برمی‌داره تا جواب به همون برگرده؛ مثل شماره‌ی نوبت.

اداره و باجه‌ها

مثلا فرض کنید می‌رید یه اداره که چند تا باجه داره و هر باجه یه کاری می‌کنه. آدرس اداره شما رو تا دم در ساختمون می‌رسونه؛ ولی توی ساختمون باید بدونید برید سراغ کدوم باجه.

یه سرور هم هم‌زمان چند تا برنامه داره: یکی صفحه‌ی وب می‌ده، یکی به سوال اسم‌ها جواب می‌ده (درس DNS)، یکی ایمیل می‌گیره. آدرس IP بسته رو تا خود سرور می‌رسونه؛ پورت می‌گه توی سرور، مال کدوم برنامه‌ست. هر برنامه‌ی سرور روی شماره‌ی خودش «منتظر» می‌شینه، مثل کارمندی که پشت باجه‌شه.

یه بسته، دو تا پورت

هر بسته دو تا پورت داره: پورت مقصد، یعنی باجه‌ای که پیام می‌ره سراغش، و پورت مبدأ، یعنی شماره‌ی نوبتی که دستگاه شما برای این گفت‌وگو برداشته. IP و پورت رو با دونقطه کنار هم می‌نویسن؛ آدرس‌ها فقط مثالن:

مرورگر شما پیام رو می‌فرسته به باجه‌ی ۴۴۳، با شماره‌ی نوبت ۵۱۰۰۰ که خودش برداشته.
جواب درست برعکس میاد: از باجه‌ی ۴۴۳ به همون شماره‌ی نوبت؛ پس می‌رسه به همون مرورگر.

به یه IP و یه پورت با هم می‌گن سوکت ، و هر اتصال بین دو تا سوکته. شماره‌ی پورت توی سربرگ بسته نوشته می‌شه، توی تیکه‌ای که مال لایه‌ی انتقاله (TCP یا UDP، که درس بعده).

سه دسته شماره

شماره‌ی پورت ۱۶ بیته، پس ۶۵٬۵۳۶ تا شماره هست، از ۰ تا ۶۵٬۵۳۵ (درس بیت و بایت). سازمان IANA این شماره‌ها رو سه دسته کرده:

  1. شناخته‌شده (۰ تا ۱۰۲۳): برای کارهای قدیمی و رایج، که IANA می‌دتشون؛ مثلا ۸۰ برای وب و ۵۳ برای DNS.
  2. ثبت‌شده (۱۰۲۴ تا ۴۹۱۵۱): برای برنامه‌هایی که شماره‌ی ثابت خواستن؛ اینا رو هم IANA می‌ده.
  3. موقت (۴۹۱۵۲ تا ۶۵۵۳۵): هیچ‌وقت به کسی داده نمی‌شن؛ برای شماره‌های نوبت موقتن.

TCP و UDP هر کدوم شماره‌های خودشون رو دارن؛ یعنی پورت ۵۳ توی TCP با پورت ۵۳ توی UDP دو تا باجه‌ی جدا توی دو تا راهروی جداست. فهرست پورت‌های مهم توی درس «پورت‌های رایج» میاد.

چند تا تب، چند تا نوبت

اگه یه سایت رو توی سه تا تب مرورگر باز کنید، هر سه تا می‌رن سراغ همون باجه، یعنی همون IP و همون پورت سرور. ولی هر تب شماره‌ی نوبت خودش رو داره، پس جواب‌ها با هم قاطی نمی‌شن. سرور هم هر اتصال رو از روی هر دو تا سوکتش می‌شناسه.

پورت توی آدرس سایت

وقتی آدرس یه سایت رو می‌نویسید، معمولا پورتی نمی‌بینید، چون هر جور آدرس یه پورت پیش‌فرض داره: http پورت ۸۰ و https پورت ۴۴۳. پس https://example.com یعنی همون پورت ۴۴۳.

اگه یه برنامه روی یه پورت دیگه منتظر باشه، پورت رو بعد از دونقطه می‌نویسن: http://localhost:3000 یعنی یه برنامه روی همین دستگاه، پشت باجه‌ی ۳۰۰۰ (درس آدرس‌های خاص).

باجه‌ی باز

«پورت باز» یعنی یه برنامه روی اون شماره منتظره، مثل باجه‌ای که یکی پشتش نشسته. پورتی که برنامه‌ای پشتش نیست، بسته‌ست و پیامی که بهش برسه، یا جوابی نمی‌گیره یا رد می‌شه.

هر پورت باز روی یه سرور، یه دره که از بیرون می‌شه بهش رسید. برای همین سرورها فقط پورت‌هایی رو باز می‌ذارن که لازم دارن، و فایروال بقیه رو می‌بنده. اینا توی درس‌های امنیت میاد. پورت فورواردینگ هم که توی درس NAT دیدید، یعنی باز کردن یه باجه از بیرون به یه دستگاه توی خونه.

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

  1. توی ویندوز، Command Prompt رو باز کنید.
  2. بنویسید netstat -an و Enter رو بزنید.
  3. یه فهرست از اتصال‌ها می‌بینید: آدرس محلی و آدرس طرف مقابل، هر کدوم با پورتش بعد از دونقطه. خط‌هایی که پورت محلیشون یه عدد بزرگه، معمولا شماره‌های نوبت موقت دستگاه شما هستن.

این فرمان پورت‌هایی رو هم نشون می‌ده که برنامه‌های خود دستگاه شما روشون منتظرن.

سه تا اشتباه رایج

  • «پورت همون سوراخ پشت مودمه.»نه. توی شبکه، پورت بیشتر یعنی یه شماره توی بسته. اون سوراخ پشت دستگاه، پورت سخت‌افزاریه؛ یه چیز دیگه‌ست.
  • «پورت ۵۳ توی TCP و توی UDP یکیه.»نه. TCP و UDP هر کدوم شماره‌های خودشون رو دارن؛ ۵۳ توی هر کدوم جداست.
  • «از شماره‌ی پورت همیشه می‌شه فهمید چه برنامه‌ای پشتشه.»نه. شماره فقط یه قرار رایجه؛ هر برنامه‌ای می‌تونه روی هر پورتی منتظر باشه، پس این حدس همیشه درست درنمیاد.

جمع‌بندی. آنچه از این درس با خودتان می‌برید.

  • پورت توی شبکه یه شماره‌ست، نه یه سوراخ پشت دستگاه؛ ۱۶ بیتیه، از ۰ تا ۶۵٬۵۳۵.
  • IP دستگاه رو پیدا می‌کنه، پورت برنامه رو؛ IP و پورت با هم می‌شن یه سوکت.
  • هر بسته پورت مبدأ و مقصد داره؛ جواب با پورت‌های جابه‌جاشده برمی‌گرده.
  • سه دسته: شناخته‌شده ۰ تا ۱۰۲۳، ثبت‌شده ۱۰۲۴ تا ۴۹۱۵۱، موقت ۴۹۱۵۲ تا ۶۵۵۳۵.
  • هر تب مرورگر پورت موقت خودش رو داره.
  • پورت پیش‌فرض توی آدرس سایت نوشته نمی‌شه؛ پورت دیگه بعد از دونقطه میاد.
  • netstat -an پورت‌های باز و اتصال‌ها رو نشون می‌ده.

خودتان را بسنجید

۱۵ پرسش، هر بار تازه از میان ۳۰ پرسش این درس. آخر آزمون فقط کارنامه را می‌بینید: چند درست، چند نادرست.

خودتان را بسنجید

۱۵ پرسش

  • هر بار پرسش‌ها و ترتیب گزینه‌ها تازه است.
  • تا آخر، درست یا نادرست بودن جواب‌ها گفته نمی‌شود؛ می‌توانید برگردید و جوابی را عوض کنید.
  • آخرش کارنامه می‌گیرید: چند پرسش درست و چند نادرست.
  • هر وقت بستید، دوباره که باز کنید از همان‌جا ادامه می‌دهید.

فصل‌های این درس

درس بعد