• پروتکل های حمل و نقل - UDP. ببینید "UDP" در سایر لغت نامه ها چیست

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

    TCP و UDP به چه معناست؟

    TCP- یک پروتکل حمل و نقل برای انتقال داده در شبکه های TCP/IP که ابتدا اتصال به شبکه را برقرار می کند.

    UDP- یک پروتکل حمل و نقل که پیام های دیتاگرام را بدون نیاز به برقراری اتصال در یک شبکه IP ارسال می کند.

    به شما یادآوری می کنم که هر دو پروتکل در لایه انتقال مدل OSI یا TCP / IP کار می کنند و درک تفاوت آنها بسیار مهم است.

    تفاوت بین پروتکل های TCP و UDP

    تفاوت بین پروتکل های TCP و UDP به اصطلاح "ضمانت تحویل" است. TCP به یک پاسخ از مشتری که بسته داده به آن تحویل داده می شود، تأیید تحویل نیاز دارد، و برای این کار به یک اتصال از پیش تعیین شده نیاز دارد. همچنین، پروتکل TCP قابل اعتماد در نظر گرفته می شود، در حالی که UDP حتی نام "پروتکل دیتاگرام غیر قابل اعتماد" را دریافت کرده است. TCP از بین رفتن داده ها، کپی برداری و مخلوط کردن بسته ها، تاخیرها را حذف می کند. UDP همه اینها را امکان پذیر می کند و برای کار کردن نیازی به اتصال نیست. فرآیندهایی که داده‌ها از طریق UDP به آنها ارسال می‌شود باید با آنچه دریافت می‌کنند، حتی با تلفات، کنار بیایند. TCP تراکم اتصال را کنترل می کند، UDP چیزی جز یکپارچگی دیتاگرام های دریافتی را کنترل نمی کند.

    از سوی دیگر، به دلیل عدم انتخاب و عدم کنترل، UDP بسته‌های داده (داده‌گرام) را بسیار سریع‌تر تحویل می‌دهد، بنابراین برای برنامه‌هایی که برای کاربردهای گسترده طراحی شده‌اند. توان عملیاتیو تبادل سریع، UDP را می توان پروتکل بهینه در نظر گرفت. اینها شامل بازی‌های شبکه و مرورگر، و همچنین پخش جریانی بینندگان ویدیو و برنامه‌های ارتباط ویدیویی (یا صوتی) می‌شوند: از گم شدن بسته، کامل یا جزئی، چیزی تغییر نمی‌کند، نیازی به تکرار درخواست نیست، اما دانلود انجام می‌شود. خیلی سریعتر. پروتکل TCP، به عنوان قابل اعتماد تر، با موفقیت حتی در برنامه های ایمیل، به شما امکان می دهد نه تنها ترافیک، بلکه طول پیام و نرخ تبادل ترافیک را نیز کنترل کنید.

    بیایید به تفاوت های اصلی بین tcp و udp نگاه کنیم.

    1. TCP تحویل بسته های داده را به شکل بدون تغییر، ترتیب و بدون از دست دادن تضمین می کند، UDP هیچ چیزی را تضمین نمی کند.
    2. TCP بسته ها را در حین انتقال شمارش می کند، اما UDP این کار را نمی کند.
    3. TCP در کار می کند حالت دوبلکس، در یک بسته می توانید اطلاعات را ارسال کرده و دریافت بسته قبلی را تأیید کنید.
    4. TCP از قبل نیاز دارد ارتباط برقرار کرد، UDP نیازی به اتصال ندارد، بلکه فقط یک جریان داده است.
    5. UDP بیشتر فراهم می کند سرعت بالاانتقال داده
    6. TCP قابل اعتمادتر است و فرآیند ارتباط را کنترل می کند.
    7. UDP برای برنامه هایی که پخش ویدئو، ویدئوفونی و تلفن، بازی های شبکه ای را انجام می دهند ترجیح داده می شود.
    8. UPD دارای ویژگی های بازیابی اطلاعات نیست

    نمونه‌هایی از برنامه‌های UDP عبارتند از، به عنوان مثال، انتقال منطقه DNS، اکتیو دایرکتوری، نیازی به قابلیت اطمینان نیست. اغلب آنها دوست دارند چنین سوالاتی را در مصاحبه بپرسند، بنابراین دانستن تفاوت بین tcp و udp بسیار مهم است.

    هدرهای TCP و UDP

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

    هدر UDP

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

    هدر TCP

    • پورت منبع 16 بیت > شماره پورت منبع
    • پورت مقصد 16 بیتی > شماره درگاه مقصد
    • شماره توالی 32 بیتی > شماره دنباله توسط منبع تولید می شود و توسط مقصد برای مرتب کردن مجدد بسته ها برای ایجاد پیام اصلی و ارسال یک تأییدیه به منبع استفاده می شود.
    • شماره تصدیق 32 بیتی > اگر بیت ACK فیلد Control تنظیم شده باشد، این فیلد حاوی شماره دنباله مورد انتظار بعدی است.
    • 4 بیت طول سرصفحه > اطلاعات مربوط به ابتدای بسته داده.
    • رزرو > برای استفاده در آینده رزرو شده است.
    • جمع کنترلی 16 بیتی > سرصفحه و جمع کنترلی داده. تعیین می کند که آیا بسته خراب شده است یا خیر.
    • نشانگر 16 بیتی فوری > در این قسمت، دستگاه مورد نظر اطلاعاتی در مورد ماهیت فوری داده ها دریافت می کند.
    • پارامترها > مقادیر اختیاری که در صورت لزوم مشخص می شوند.

    اندازه پنجره به شما امکان می دهد ترافیک را ذخیره کنید، زمانی را در نظر بگیرید که مقدار آن 1 است، سپس برای هر پاسخ ارسال شده، فرستنده منتظر تایید است که کاملا منطقی نیست.

    با اندازه پنجره 3، فرستنده قبلاً 3 فریم ارسال می کند و منتظر 4 می شود که به این معنی است که هر سه فریم را دارد، +1.

    امیدوارم اکنون ایده ای در مورد تفاوت بین پروتکل های tcp udp داشته باشید.

    پروتکل های TCP و UDP

    TCP- پروتکل کنترل انتقال

    ارتباط اتصال گرا می تواند از ارتباطات قابل اعتماد استفاده کند، که پروتکل لایه 4 تأییدیه دریافت داده را ارسال می کند و در صورت عدم دریافت یا خراب شدن داده، درخواست ارسال مجدد می کند. پروتکل TCP از چنین اتصال قابل اعتمادی استفاده می کند. TCP در چنین مواردی استفاده می شود پروتکل های کاربردیمانند HTTP، FTP، SMTP و Telnet.

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

    سرور باید یک تأییدیه (ACK) به همراه یک شماره ترتیبی (SYN) سرور به مشتری ارسال کند. به نوبه خود، مشتری با یک ACK پاسخ می دهد و اتصال برقرار می شود.

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

    فیلدهای هدر TCP در جدول زیر فهرست شده اند:

    هدر TCP
    رشته طول شرح
    پورت منبع 2 بایت شماره پورت منبع
    بندر مقصد 2 بایت شماره پورت مقصد
    شماره سریال 4 بایت شماره دنباله توسط منبع تولید می شود و توسط مقصد برای مرتب کردن مجدد بسته ها برای ایجاد پیام اصلی و ارسال یک تأییدیه به منبع استفاده می شود.
    شماره تأیید 4 بایت اگر بیت ACK فیلد Control تنظیم شده باشد، این فیلد حاوی شماره دنباله مورد انتظار بعدی است.
    افست داده ها 4 بیت اطلاعات مربوط به آغاز بسته داده.
    ذخیره 6 بیت برای استفاده در آینده رزرو شده است.
    کنترل 6 بیت بیت‌های کنترل حاوی پرچم‌هایی هستند که نشان می‌دهند آیا فیلدهای تأیید (ACK)، نشانگر فوری (URG) صحیح هستند، آیا اتصال باید بازنشانی شود (RST)، آیا یک شماره دنباله همگام‌سازی (SYN) ارسال شده است یا خیر.
    اندازه پنجره 2 بایت این فیلد اندازه بافر دریافت را مشخص می کند. با استفاده از پیام های تایید، گیرنده می تواند حداکثر مقدار داده ای را که فرستنده می تواند ارسال کند، به فرستنده اطلاع دهد.
    جمع را بررسی کنید 2 بایت سربرگ و جمع چک داده ها؛ تعیین می کند که آیا بسته خراب شده است یا خیر.
    نشانگر فوریت 2 بایت در این زمینه، دستگاه مورد نظر اطلاعاتی در مورد فوریت داده ها دریافت می کند.
    گزینه ها متغیر مقادیر اختیاری که در صورت لزوم مشخص می شوند.
    اضافه متغیر صفرهای زیادی به فیلد padding اضافه می شود به طوری که هدر به مرز 32 بیتی ختم می شود.

    TCP به دلیل مکانیزم برقراری اتصال، پروتکلی پیچیده و زمان‌بر است، اما از تحویل تضمینی بسته مراقبت می‌کند بدون اینکه ما نیازی به آن داشته باشیم. عملکردبه پروتکل برنامه

    پروتکل TCP دارای قابلیت تحویل قابل اعتماد داخلی است. اگر پیام به درستی ارسال نشود، پیغام خطا دریافت خواهیم کرد. پروتکل TCP در RFC 793 تعریف شده است.

    UDP - پروتکل دیتاگرام کاربر

    برخلاف TCP، UDP یک پروتکل بسیار سریع است زیرا حداقل مکانیسم مورد نیاز برای انتقال داده را تعریف می کند. البته معایبی هم دارد. پیام‌ها به هر ترتیبی می‌رسند و پیام‌هایی که اول ارسال می‌شوند ممکن است آخرین دریافت شوند. تحویل پیام های UDP به هیچ وجه تضمین شده نیست، ممکن است پیام گم شود و دو نسخه از همان پیام دریافت شود. مورد دوم زمانی رخ می دهد که از دو مسیر مختلف برای ارسال پیام به یک آدرس استفاده شود.

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

    بنابراین مزایای UDP چیست، چرا ممکن است چنین پروتکل غیر قابل اعتمادی مورد نیاز باشد؟ برای درک دلیل استفاده از UDP، باید بین یونیکست، پخش و چندپخشی تمایز قائل شد.

    پیام Unicastاز یک گره فقط به یک گره دیگر ارسال می شود. به این ارتباط نقطه به نقطه نیز می گویند. پروتکل TCP فقط از ارتباط یک طرفه پشتیبانی می کند. اگر یک سرور نیاز به برقراری ارتباط با چندین مشتری با استفاده از TCP داشته باشد، هر کلاینت باید یک اتصال برقرار کند زیرا پیام ها فقط به گره های منفرد ارسال می شوند.

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

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

    در کانال و لایه شبکهپروتکل ها بسته TCP/IPکه با مکانیسم اساسی برای انتقال بلوک های داده بین کشورها و بین شبکه ها سر و کار دارند، پایه ها هستند TCP/IP. آنها از پشته پروتکل استفاده می کنند، اما مستقیماً در برنامه هایی که روی پروتکل اجرا می شوند استفاده نمی شوند. TCP/IP. در این مقاله به دو پروتکلی که توسط برنامه‌ها استفاده می‌شود نگاه می‌کنیم: پروتکل Datagram کاربر (UDP) و پروتکل کنترل انتقال (TCP).

    پروتوکل دیتاگرام کاربر
    پروتکل User Datagram یک پروتکل بسیار ساده است. پسندیدن IP، یک پروتکل قابل اعتماد بدون اتصال است. برای برقراری ارتباط با هاست، نیازی به اتصال به هاست ندارید UDPو هیچ مکانیزمی برای اطمینان از انتقال داده وجود ندارد.
    بلوک داده های منتقل شده با استفاده از UDPدیتاگرام نامیده می شود. UDPچهار فیلد هدر 16 بیتی (8 بایت) را به داده های ارسالی اضافه می کند. این فیلدها عبارتند از: طول میدان، میدان چک جمعو شماره پورت مبدا و مقصد. "پورت"، در این زمینه، نرم افزار پورت است، نه پورت سخت افزاری.
    مفهوم شماره پورت برای هر دو مشترک است UDP و TCP. شماره پورت تعیین می کند که کدام ماژول پروتکل در حال ارسال (یا دریافت) داده است. اکثر پروتکل ها دارای پورت های استانداردی هستند که معمولا برای این کار استفاده می شوند. به عنوان مثال، پروتکل Telnet معمولاً از پورت 23 استفاده می کند. پروتکل انتقال نامه ساده (SMTP) از پورت 25 استفاده می کند. استفاده اتاق های استانداردپورت ها به کلاینت ها اجازه می دهد بدون نیاز به سرور با سرور ارتباط برقرار کنند از پیش تعیین شدهاز کدام پورت استفاده کنید
    شماره پورت و پروتکل در قسمت هدر IPتا حدی همپوشانی دارند، اگرچه فیلدهای پروتکل برای پروتکل های سطح بالاتر در دسترس نیستند. IPاز فیلد پروتکل برای تعیین اینکه داده ها باید به کجا منتقل شوند استفاده می کند UDPیا TCPماژول ها UDPیا TCPاز شماره پورت برای تعیین اینکه کدام پروتکل لایه برنامه باید داده را دریافت کند استفاده کنید.
    با وجود، UDPقابل اعتماد نیست، هنوز هم هست انتخاب مناسببرای بسیاری از برنامه ها این توسط برنامه های بلادرنگ مانند پخش صدا و تصویر استفاده می شود، که در صورت از بین رفتن داده ها، بهتر است بدون آن کار کنید تا دوباره به ترتیب ارسال کنید. همچنین توسط پروتکل هایی مانند پروتکل مدیریت شبکه ساده (SNMP) استفاده می شود.
    پخش
    UDPبرای پخش مناسب است زیرا به اتصال باز نیاز ندارد. اهداف پیام پخش توسط فرستنده و به آدرس IP مقصد مشخص شده تعیین می شود. UDPدیتاگرام ها با آدرس IP مقصد همه باینری 255.255.255.255) و توسط هر میزبان در شبکه محلی. به کلمه local توجه کنید: دیتاگرام هایی با این آدرس توسط روتر به اینترنت پذیرفته نمی شوند.
    ارسال ها را می توان به شبکه های خاص. دیتاگرام های UDPبا قسمت های میزبان و زیرشبکه آدرس IP که به صورت باینری تنظیم شده اند، برای همه میزبان ها در تمام زیرشبکه های شبکه که با قسمت خالص آدرس IP مطابقت دارد، پخش می شود. اگر فقط پایان دریافت (به عبارت دیگر، تمام بیت هایی که در زیر شبکه ماسک صفر هستند) روی باینری تنظیم شود، پخش به همه میزبان های زیر شبکه که با بقیه آدرس مطابقت دارند محدود می شود.
    Multicast برای ارسال داده به گروهی از میزبان ها که تمایل به دریافت آن را ابراز کرده اند استفاده می شود. چندپخشی UDPدیتاگرام دارای یک آدرس مقصد است که در آن به چهار بیت اول، 1110، آدرس هایی در محدوده 224.xxx تا 239.xxx داده می شود. بیت های باقی مانده از آدرس برای تعیین یک گروه چندپخشی استفاده می شوند. بیشتر شبیه یک کانال رادیویی یا تلویزیونی است. بنابراین، برای مثال، 224.0.1.1 برای پروتکل NTP استفاده می شود. اگر TCP/IPبرنامه‌هایی که می‌خواهند یک پیام چندپخشی دریافت کنند، باید به گروه چندپخشی مناسب بپیوندند، که با ارسال آدرس گروه به بالای پشته پروتکل انجام می‌شود.
    رادیوها، در واقع، انتقال را فیلتر می کنند. Multicaster در نظر نمی گیرد پیام های فردیبرای هر میزبانی که به گروه می پیوندد. در عوض، پیام ها پخش می شوند و درایورهای هر میزبان تصمیم می گیرند که آیا آنها را نادیده بگیرند یا محتویات را به پشته پروتکل فشار دهند.
    این بدان معنی است که پیام های چندپخشی باید در سراسر اینترنت پخش شوند، زیرا Multicaster نمی داند کدام میزبان ها می خواهند پیام ها را دریافت کنند. خوشبختانه این کار ضروری نیست. IP از پروتکلی به نام پروتکل مدیریت گروه اینترنت (IGMP) استفاده می‌کند تا به روترها بگوید کدام میزبان‌ها می‌خواهند پیام‌های گروهی چندپخشی را دریافت کنند، بنابراین پیام‌ها فقط در جاهایی که لازم است ارسال می‌شوند.
    پروتکل کنترل انتقال
    پروتکل کنترل انتقال یک پروتکل لایه انتقال است که توسط اکثر برنامه های کاربردی اینترنتی مانند Telnet، FTP و HTTP استفاده می شود. این یک پروتکل اتصال گرا است. این بدان معناست که دو کامپیوتر - یک کلاینت، یک سرور دیگر - باید قبل از اینکه داده ها بین آنها منتقل شود، یک ارتباط بین آنها برقرار کنند.
    TCPقابلیت اطمینان را فراهم می کند. برنامه ای که استفاده می کند TCPمی داند که داده های دریافتی را در انتهای دیگر ارسال می کند و آن را به درستی دریافت کرده است. TCPاز جمع‌های کنترلی هم در هدرها و هم در داده‌ها استفاده می‌کند. هنگام دریافت داده ها، TCPیک تأییدیه را برای فرستنده ارسال می کند. اگر فرستنده در مدت زمان معینی تاییدیه دریافت نکند، داده ها مجددا ارسال می شوند.
    TCPشامل مکانیسم هایی برای اطمینان از رسیدن داده ها به ترتیب معکوس ارسال شده است. همچنین کنترل جریان را اجرا می کند تا فرستنده نتواند گیرنده داده را تحت الشعاع قرار دهد.
    TCPداده ها را با استفاده از IP در بلوک هایی به نام سگمنت ارسال می کند. طول بخش توسط پروتکل تعیین می شود. علاوه بر هدر IP، هر بخش از یک هدر 20 بایتی تشکیل شده است. سرتیتر TCPبا فیلد شماره پورت مبدا و مقصد 16 بیتی شروع می شود. پسندیدن UDP، این فیلدها سطح برنامه را تعریف می کنند که هدف آن دریافت داده است. آدرس IP و شماره پورت با هم به طور منحصربه‌فرد سرویس‌های در حال اجرا بر روی هاست و جفت شناخته شده به عنوان سوکت را شناسایی می‌کنند.
    بعدی در هدر یک شماره توالی 32 بیتی است. این عدد موقعیتی را در جریان داده مشخص می کند که باید اولین بایت داده در بخش را اشغال کند. شماره سریال TCPبه شما اجازه می دهد تا جریان داده ها را در داخل نگه دارید نظم درست، اگرچه بخش ها را می توان از یک دنباله مشتق کرد.
    فیلد بعدی یک فیلد 32 بیتی است که برای ارسال سیگنال به فرستنده استفاده می شود که داده ها به درستی دریافت شده اند. اگر ACK پرچمی است که معمولاً همینطور است، پس این فیلد حاوی موقعیت بایت داده بعدی است که فرستنده بخش انتظار دریافت آن را دارد.
    که در TCPنیازی به شناسایی هر بخش داده نیست. مقدار در فیلد تایید به صورت "تمام داده های دریافت شده تا کنون خوب" تفسیر می شود. این باعث صرفه جویی در پهنای باند زمانی که همه داده ها در یک جهت ارسال می شوند، نیاز به تشخیص بخش را کاهش می دهد. اگر داده ها در هر دو جهت به طور همزمان ارسال شوند، مانند ارتباطات دوطرفه کامل، در این صورت هیچ هزینه ای در رابطه با علامت ها وجود ندارد، زیرا یک بخش داده یک طرفه ممکن است حاوی تاییدیه ای برای داده های ارسال شده از راه دیگر باشد.
    قسمت بعدی در هدر یک فیلد 16 بیتی است که حاوی طول سرصفحه و پرچم ها است. TCPهدرها می توانند حاوی فیلدهای اضافی باشند، بنابراین طول آن می تواند از 20 تا 60 بایت متغیر باشد. پرچم ها: URG، ACK (که قبلا ذکر کردیم)، PSH، RST، SYN و FIN. بعداً به چند پرچم دیگر خواهیم پرداخت.
    هدر حاوی فیلدی به نام اندازه پنجره است که تعداد بایت هایی را که گیرنده می تواند دریافت کند را نشان می دهد. همچنین یک جمع 16 بیتی وجود دارد که هم سرصفحه و هم داده ها را پوشش می دهد. در نهایت (قبل از داده های اضافی) فیلدی به نام "اشاره گر فوریت" وجود دارد. هنگامی که پرچم URG تنظیم می شود، این مقدار به عنوان یک افست تفسیر می شود شماره سریال. شروع داده ها را در جریان تعریف می کند که نیاز به پردازش فوری دارند. این داده ها اغلب به عنوان داده های "خارج از باند" نامیده می شوند. نمونه ای از کاربرد آن زمانی است که کاربر کلید break را فشار می دهد تا خروج از برنامه را در طول جلسه Telnet متوقف کند.

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

    یک پورت همیشه با یک آدرس IP میزبان و یک نوع مرتبط است و بنابراین تخصیص آدرس جلسه را کامل می کند. برای هر آدرس و پروتکل با یک عدد 16 بیتی که معمولاً به عنوان شماره پورت شناخته می شود، شناسایی می شود. شماره پورت های خاص اغلب برای شناسایی سرویس های خاص استفاده می شود. از هزاران شماره فهرست شده، 1024 شماره پورت شناخته شده توسط قرارداد محافظت می شوند تا انواع خاصی از خدمات را در یک میزبان شناسایی کنند. پروتکل هایی که عمدتاً از پورت ها استفاده می کنند برای کنترل فرآیند هستند (مانند پروتکل کنترل انتقال (TCP) و پروتکل Datagram کاربر (UDP) مجموعه پروتکل اینترنت).

    معنی

    هنگامی که کامپیوترهای هر انتها فقط می توانند یک برنامه را در یک زمان اجرا کنند، به پورت های TCP روی پیوندهای مستقیم نقطه به نقطه نیازی نیست. آنها بعد از اینکه ماشین ها توانستند بیش از یک برنامه را همزمان اجرا کنند و به آن متصل شدند ضروری شدند شبکه های مدرنبا سوئیچینگ بسته در مدل معماری مشتری-سروربرنامه‌ها، پورت‌ها و کلاینت‌های شبکه به راه‌اندازی سرویس متصل می‌شوند، خدمات مالتی پلکسی را ارائه می‌کنند، پس از ارتباط اولیه با یک شماره پورت شناخته‌شده، و با تغییر هر نمونه سرویس درخواستی به یک خط اجاره‌ای آزاد می‌شود. اتصال به یک شماره خاص وجود دارد و به لطف این مشتریان اضافیبدون انتظار قابل سرو است.

    جزئیات

    پروتکل های انتقال داده - پروتکل کنترل انتقال (TCP) و پروتکل دیتاگرام کاربر (UDP) - برای نشان دادن شماره پورت مقصد و منبع در هدرهای بخش آنها استفاده می شود. شماره پورت یک عدد صحیح بدون علامت 16 بیتی است. بنابراین می تواند از 0 تا 65535 متغیر باشد.

    با این حال، پورت‌های TCP نمی‌توانند از عدد 0 استفاده کنند. یک پورت منبع برای UDP اختیاری است و مقدار صفر به معنای هیچ است.

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

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

    نحوه استفاده از آنها

    برنامه‌هایی که سرویس‌های مشترک را پیاده‌سازی می‌کنند، اغلب از یک لیست خاص رزرو شده و شناخته شده از پورت‌های TCP و UDP برای پذیرش درخواست‌های سرویس از مشتریان استفاده می‌کنند. این فرآیند به عنوان گوش دادن شناخته می شود و شامل دریافت درخواست از یک پورت شناخته شده و برقراری یک مکالمه یک به یک بین سرور و مشتری با استفاده از همان شماره پورت محلی است. سایر کلاینت ها ممکن است به اتصال ادامه دهند - این امکان پذیر است زیرا یک اتصال TCP به عنوان زنجیره ای از آدرس ها و پورت های محلی و راه دور شناسایی می شود. استاندارد پورت های TCPو UDP بر اساس کنوانسیون تحت نظارت سازمان شماره های اختصاص داده شده اینترنت (IANA) تعریف شده است.

    خدمات شبکه اصلی (عمدتاً WorldWideWeb) تمایل به استفاده از شماره پورت های کوچک - کمتر از 1024 دارند. سیستم های عاملبرای اتصال برنامه‌ها به آن‌ها، امتیازات ویژه‌ای لازم است، زیرا اغلب برای عملکرد شبکه‌های IP حیاتی در نظر گرفته می‌شوند. از طرف دیگر، مشتری نهایی اتصال تمایل دارد از تعداد زیادی از آنها برای استفاده کوتاه مدت استفاده کند، بنابراین به اصطلاح پورت های زودگذر وجود دارد.

    ساختار

    پورت‌های TCP در سربرگ بسته پروتکل انتقال کدگذاری می‌شوند و نه تنها توسط رایانه‌های فرستنده و گیرنده، بلکه توسط سایر مؤلفه‌ها نیز به راحتی قابل تفسیر هستند. زیرساخت شبکه. به خصوص فایروال هامعمولاً برای تمایز بین بسته ها بر اساس شماره پورت مبدا یا مقصد آنها پیکربندی می شوند. تغییر مسیر یک مثال کلاسیک از این است.

    عمل تلاش برای اتصال به طیف وسیعی از پورت ها به صورت سری در یک کامپیوتر به عنوان اسکن پورت شناخته می شود. این معمولاً به دلیل تلاش‌های مخرب شکست یا مدیران شبکهبه دنبال آسیب‌پذیری‌های احتمالی برای کمک به جلوگیری از چنین حملاتی هستند.

    اقداماتی که بر تعداد دفعات نظارت و ضبط رایانه ها انجام می شود. این تکنیک از تعدادی اتصال یدکی برای اطمینان از اتصال بدون وقفه به سرور استفاده می کند.

    نمونه هایی از استفاده

    مهمترین مثالی که در آن از پورت های TCP/UDP به طور فعال استفاده می شود، سیستم پست اینترنتی است. سرور برای کار با ایمیل (ارسال و دریافت) استفاده می شود و به طور کلی نیاز به دو سرویس دارد. اولین سرویس برای حمل و نقل از طریق ایمیل و سایر سرورها استفاده می شود. این امر با برنامه سرویس SMTP که معمولاً به پورت TCP شماره 25 گوش می دهد تا درخواست های دریافتی را پردازش کند، به دست می آید. سرویس دیگر POP (کلیه پروتکل های اداره پست) یا IMAP (یا پیام اینترنتی) است پروتکل دسترسی) که برای برنامه های کاربردی مشتریدر ایمیل در ماشین های کاربران برای دریافت پیام از سرور پست الکترونیک. سرویس‌های POP در پورت TCP 110 گوش می‌دهند. سرویس‌های فوق هر دو می‌توانند روی یک دستگاه میزبان اجرا شوند. وقتی این اتفاق می افتد، شماره پورت سرویس درخواستی را متمایز می کند دستگاه از راه دور- رایانه شخصی کاربر یا سرور ایمیل دیگر.

    در حالی که شماره پورت گوش دادن سرور به درستی تعریف شده است (IANA آنها را پورت های شناخته شده می نامد) پارامتر داده شدهمشتری اغلب از بین انتخاب می شود محدوده دینامیکی. در برخی موارد، کلاینت ها و سرور به صورت جداگانه از پورت های TCP اختصاص داده شده توسط IANA استفاده می کنند. یک مثال خوب DHCP است که در آن کلاینت همیشه از UDP 68 و سرور از UDP 67 استفاده می کند.

    کاربرد در URL ها

    شماره پورت گاهی اوقات به وضوح در اینترنت یا سایر مکان یاب های یکنواخت قابل مشاهده است. منابع اطلاعات(URL). به طور پیش فرض، HTTP از 443 و HTTPS از 443 استفاده می کند. با این حال، تغییرات دیگری نیز وجود دارد. به عنوان مثال، URL http://www.example.com:8080/path/ نشان می دهد که مرورگر وب به جای سرور HTTP به 8080 متصل می شود.

    لیست پورت های TCP و UDP

    همانطور که اشاره شد، Internet Assigned Numbers Authority (IANA) مسئول هماهنگی جهانی DNS-Root، آدرس دهی IP و سایر منابع پروتکل اینترنت است. این شامل ثبت شماره پورت های رایج برای سرویس های اینترنتی شناخته شده است.

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

    نمونه های شناخته شده

    نمونه هایی که در این لیست، عبارتند از:

    • پورت TCP 443: HTTP Secure (HTTPS).
    • 22: پوسته ایمن (SSH).
    • 25: پروتکل انتقال نامه ساده (SMTP).
    • 53: سیستم نام دامنه (DNS).
    • 80: پروتکل انتقال ابرمتن (HTTP).
    • 119: پروتکل انتقال اخبار شبکه (NNTP).
    • 123: پروتکل زمان شبکه (NTP)..
    • 143: پروتکل دسترسی به پیام اینترنتی (IMAP)
    • 161: پروتکل مدیریت شبکه ساده (SNMP)1.
    • 94: گفتگوی رله اینترنتی (IRC).

    پورت های ثبت شده شامل اعداد از 1024 تا 49151 هستند. IANA پشتیبانی می کند لیست رسمیمحدوده های شناخته شده و گزارش شده پویا یا خصوصی - 49152 تا 65535. یک مورد استفاده برای این محدوده برای پورت های زودگذر است.

    تاریخچه خلقت

    مفهوم شماره پورت توسط توسعه دهندگان اولیه ARPANET از طریق همکاری غیررسمی بین نویسندگان ایجاد شد. نرم افزارو مدیران سیستم

    اصطلاح "شماره پورت" هنوز در آن زمان استفاده نشده بود. رشته شماره برای میزبان راه دور یک عدد 40 بیتی بود. 32 بیت اول مشابه آدرس IPv4 امروزی بود، اما 8 بیت اول مهم ترین بودند. کمترین بخش مهم عدد (بیت های 33 تا 40) نشان دهنده موجودیت دیگری بود که AEN نام داشت. این نمونه اولیه شماره پورت مدرن است.

    در 26 مارس 1972، ایجاد کاتالوگ اعداد سوکت برای اولین بار در RFC 322 پیشنهاد شد. آنها خواستار توصیف هر شماره دائمی از نظر عملکرد و خدمات شبکه شدند. این دایرکتوری متعاقباً در RFC 433 در دسامبر 1972 منتشر شد و شامل لیستی از میزبان ها، شماره پورت آنها و تابع مربوطه مورد استفاده در هر گره در شبکه بود. در می 1972، تخصیص شماره پورت رسمی برای اولین بار مستند شد. خدمات شبکهو همچنین یک عملکرد اداری ویژه برای نگهداری این رجیستری.

    اولین لیست پورت های TCP دارای 256 مقدار AEN بود که به محدوده های زیر تقسیم می شدند:

    • 0 تا 63: توابع استاندارد کل شبکه
    • 64 تا 127: ویژگی های خاص میزبان
    • 128 تا 239: برای استفاده در آینده رزرو شده است
    • 240 تا 255: هر ویژگی آزمایشی.

    سرویس Telnet اولین تخصیص رسمی خود را با مقدار 1 دریافت کرد. در روزهای اولیه ARPANET، AEN همچنین یک نام سوکت بود که با پروتکل اتصال اصلی (MSP) و برنامه کنترل شبکه (NCP) استفاده می شد. در همان زمان، NCP پیشرو پروتکل های اینترنت مدرن با استفاده از پورت های TCP / IP بود.

    پروتکل دیتاگرام کاربر (UDP)(پروتکل داده‌گرام کاربر) یک پروتکل TCP/IP است که در RFC 768، "پروتکل داده‌گرام کاربر (UDP)" تعریف شده است. UDP به جای TCP برای انتقال داده سریع و غیرقابل اعتماد بین میزبان های TCP/IP استفاده می شود.

    پروتکل UDPیک سرویس بدون اتصال را ارائه می دهد، بنابراین UDP تحویل یا توالی هیچ دیتاگرام را تضمین نمی کند. میزبانی که به ارتباط قابل اعتماد نیاز دارد باید از پروتکل TCP یا برنامه ای استفاده کند که دنباله دیتاگرام ها را پیگیری کند و دریافت هر بسته را تأیید کند.

    برنامه های کاربردی حساس به زمان اغلب از UDP (داده های ویدیویی) استفاده می کنند، زیرا ترجیح داده می شود بسته ها را به جای منتظر ماندن برای بسته های تاخیری رها کنید، که ممکن است در سیستم های بلادرنگ امکان پذیر نباشد. همچنین، از دست دادن یک یا چند فریم، در هنگام انتقال داده های ویدئویی از طریق UDP، برخلاف انتقال، چندان مهم نیست. فایل های باینری، جایی که از دست دادن یک بسته می تواند کل فایل را خراب کند. یکی دیگر از مزایای پروتکل UDP این است که طول هدر UDP 4 بایت است و پروتکل TCP- 20 بایت

    پیام های UDP کپسوله شده و به صورت دیتاگرام IP ارسال می شوند.

    هدر UDP

    شکل فیلدهای موجود در هدر UDP را نشان می دهد.

    • پورت فرستنده - این قسمت شماره پورت فرستنده را مشخص می کند. این مقدار قرار است پورتی را مشخص کند که در صورت لزوم پاسخ به آن ارسال می شود. در غیر این صورت، مقدار باید 0 باشد. اگر میزبان منبع یک مشتری باشد، به احتمال زیاد شماره پورت زودگذر خواهد بود. اگر منبع یک سرور باشد، پورت آن یکی از "معروف" خواهد بود.
    • بندر مقصد - این قسمت الزامی است و حاوی پورت مقصد است. مشابه پورت مبدا، اگر مشتری میزبان مقصد باشد، شماره پورت زودگذر است، در غیر این صورت (سرور مقصد است) یک "پورت شناخته شده" است.
    • طول دیتاگرام - فیلدی که طول کل دیتاگرام (هدر و داده) را بر حسب بایت مشخص می کند. حداقل طول برابر است با طول هدر - 8 بایت. در تئوری، حداکثر اندازهفیلدها - 65535 بایت برای دیتاگرام UDP (8 بایت برای هدر و 65527 برای داده). محدودیت واقعی طول داده هنگام استفاده از IPv4 65507 است (علاوه بر 8 بایت در هر هدر UDP، 20 بایت دیگر برای هر سرصفحه IP مورد نیاز است).
    • Checksum - فیلد checksum برای بررسی سرصفحه و داده ها از نظر خطا استفاده می شود. اگر مقدار توسط فرستنده تولید نشود، فیلد با صفر پر می شود.

    ساختار عنوان را در نظر بگیرید UDPبا استفاده از تحلیلگر شبکه Wireshark:

    پورت های UDP

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

    شماره پورتیک عدد 16 بیتی مشروط از 1 تا 65535 است که نشان می دهد بسته برای کدام برنامه در نظر گرفته شده است.

    پورت های UDP امکان ارسال و دریافت پیام های UDP را فراهم می کنند. پورت UDP به عنوان یک صف پیام واحد عمل می کند تا تمام دیتاگرام های مقصد برنامه مشخص شده توسط شماره پورت پروتکل را دریافت کند. این بدان معنی است که برنامه های UDP می توانند بیش از یک پیام را در یک زمان دریافت کنند.

    تمام شماره‌های پورت UDP کمتر از 1024 رزرو شده و در مرجع شماره‌های اختصاص داده شده اینترنت (IANA) ثبت شده‌اند.
    شماره پورت UDP و TCP با هم همپوشانی ندارند.

    هر پورت UDP با شماره پورت رزرو شده یا شناخته شده مشخص می شود. جدول زیر لیستی جزئی از شماره پورت های شناخته شده UDP را نشان می دهد که توسط برنامه های استاندارد UDP استفاده می شود.