VPN چطور کار می‌کند

TCP در برابر UDP: تفاوت‌شان چیست و VPN شما از کدام استفاده می‌کند

TCP تأیید می‌کند که هر بسته رسیده است و بسته‌های گم‌شده را دوباره می‌فرستد؛ UDP بدون انتظار می‌فرستد، برای همین سریع‌تر است اما ممکن است بخشی از داده از دست برود. صفحه‌های وب و ایمیل از TCP استفاده می‌کنند؛ تماس‌ها، بازی‌ها و DNS از UDP. بیشتر VPN‌ها به‌طور پیش‌فرض با UDP کار می‌کنند و اپ Teal VPN وقتی شبکه‌ای UDP را قطع کند، مسیر را خودش عوض می‌کند.

Teal VPN به‌روزرسانی‌شده

TCP برای صفحه‌های وب و ایمیل است که در آن‌ها هر بایت اهمیت دارد. UDP برای تماس‌ها و بازی‌هاست. بیشتر VPNها به‌طور پیش‌فرض از UDP استفاده می‌کنند و Teal VPN خودش خود را با شرایط وفق می‌دهد.

TCP بررسی می‌کند که هر بسته رسیده باشد؛ UDP فقط می‌فرستد و می‌گذرد

TCP (Transmission Control Protocol) و UDP (User Datagram Protocol) دو روشی هستند که یک برنامه داده‌ها را به اینترنت می‌سپارد: TCP رسیدن داده را تأیید می‌کند و ترتیب بسته‌ها را حفظ می‌کند، اما UDP هر بسته را فقط یک بار می‌فرستد و هیچ بررسی‌ای انجام نمی‌دهد.

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

به نظر ما ساده‌ترین تصویر، مقایسه‌ی تماس تلفنی با کارت‌پستال است. TCP مثل تماس تلفنی است: هر دو طرف اول سلام می‌کنند و هر چیزی را که طرف مقابل نشنیده باشد تکرار می‌کنید. UDP مثل یک دسته کارت‌پستال است: ارزان و سریع، و اگر یکی از آن‌ها از کامیون بیفتد کسی به شما خبر نمی‌دهد.

دستی که گوشی هوشمندی را گرفته و برنامه‌ی Teal VPN در حالت تیره را نشان می‌دهد که به شیکاگو وصل شده است
۲۰ تا ۶۰ بایت
سرآیند TCPبا گزینه‌ها بزرگ‌تر می‌شود
۸ بایت
سرآیند UDPهمیشه هم‌اندازه است
۳ پیام
دست‌دهی TCPSYN، SYN-ACK، ACK

TCP اتصال را با دست‌دهی سه‌مرحله‌ای برقرار می‌کند؛ UDP این مرحله را ندارد

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

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

  1. SYN

    دستگاه شما یک پیام همگام‌سازی به سرور می‌فرستد: «می‌خواهم ارتباط بگیرم، این شماره‌ی شروع من است.»

  2. SYN-ACK

    سرور با پیام همگام‌سازی و تأیید پاسخ می‌دهد: «دریافت شد، این هم شماره‌ی من.»

  3. ACK

    دستگاه شما دریافت را تأیید می‌کند. از همین لحظه TCP شروع به ارسال داده‌ی اصلی می‌کند.

  4. FIN و ACK برای بستن اتصال

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

TCP بسته‌های گم‌شده را دوباره می‌فرستد و ترتیب را حفظ می‌کند؛ UDP جای خالی را رها می‌کند

TCP با شماره‌گذاری بسته‌ها و منتظر ماندن برای تأیید دریافت، تضمین می‌کند که هر بایت یک بار و به ترتیب برسد. UDP یک مقدار کنترلی (checksum) دارد تا بسته‌ی آسیب‌دیده را تشخیص دهد و بعد آن را کنار می‌گذارد.

وقتی تأییدیه‌ای برنمی‌گردد، TCP بسته را دوباره می‌فرستد. همچنین وقتی شبکه شلوغ به نظر می‌رسد (کنترل ازدحام) یا گیرنده عقب می‌افتد (کنترل جریان)، سرعتش را کم می‌کند. از دید برنامه، TCP مثل یک جریان پیوسته از بایت‌ها دیده می‌شود.

UDP هیچ‌کدام از این کارها را انجام نمی‌دهد. هر بسته یک پیام مستقل است. اگر بسته ۷ بعد از بسته ۸ برسد یا اصلاً نرسد، برنامه همان چیزی را که رسیده دریافت می‌کند و باید خودش با آن کنار بیاید. در یک تماس صوتی این فقط یک خش‌خش کوچک است؛ اما در انتقال بانکی فاجعه می‌شود و برای همین بانک‌ها هرگز از UDP ساده استفاده نمی‌کنند.

UDP سریع‌تر است چون هدرش ۸ بایت است و منتظر هیچ‌چیز نمی‌ماند

UDP به دو دلیل از نظر سرعت جلوتر است: سرآیند ۸ بایتی در برابر ۲۰ تا ۶۰ بایت در TCP، و نداشتن مکث برای دست‌دهی، تأییدیه یا ارسال مجدد.

در یک اتصال سیمی سالم، تفاوت هر بسته کم است. در یک اتصال Wi-Fi که بسته از دست می‌دهد، تفاوت زیاد است، چون TCP برای بازیابی هر بسته گم‌شده می‌ایستد، اما UDP به ارسال ادامه می‌دهد. ماجرای واقعی «سرعت TCP در مقابل UDP» همین است: یک سیم یکسان، اما رفتار متفاوت هنگام از دست رفتن بسته‌ها.

TCPUDP
اتصالابتدا دست‌دهی سه‌مرحله‌ایندارد؛ اولین بسته همان داده است
تحویلتضمین‌شده، با تأیید دریافتتلاش در حد امکان، بدون تأیید دریافت
بسته‌های گم‌شدهارسال مجددحذف می‌شوند
ترتیبحفظ می‌شودتضمین نمی‌شود
کنترل جریان و ازدحامبلهخیر
اندازه سرآیند۲۰ تا ۶۰ بایت۸ بایت
مدل دادهجریان پیوسته بایتپیام‌های جداگانه
پخش همگانی / پخش گروهیخیربله
برنامه‌های رایجHTTP، HTTPS، FTP، SMTPDNS، DHCP، VoIP، پخش زنده

شماره پورت‌های TCP و UDP یکسان است؛ آنچه فرق دارد خود پروتکل است

پورت عددی است که به دستگاه گیرنده می‌گوید یک بسته برای کدام برنامه است. TCP و UDP هرکدام فهرست پورت‌های جداگانه خودشان را دارند، پس پورت ۸۰ در TCP و پورت ۸۰ در UDP دو در متفاوت هستند.

به همین دلیل در قانون روتر باید هم پورت و هم پروتکل مشخص شود. بعضی سرویس‌ها یک شماره را روی هر دو باز می‌کنند: برای مثال DNS برای جستجوهای معمولی روی UDP پاسخ می‌دهد و برای پاسخ‌های بزرگ روی TCP. در سرآیند IP یک شماره پروتکل جداگانه وجود دارد که پیش از بررسی پورت، به دستگاه گیرنده می‌گوید بسته را به TCP بدهد یا به UDP.

روی TCP اجرا می‌شود

  • صفحه‌های وب (HTTP و HTTPS)
  • ارسال ایمیل (SMTP)
  • انتقال فایل (FTP)
  • هر چیزی که باید تک‌تک بایت‌هایش به مقصد برسد

روی UDP اجرا می‌شود

  • درخواست‌های DNS
  • DHCP (دریافت آدرس IP)
  • تماس‌های صوتی و تصویری (VoIP)
  • پخش زنده و بیشتر بازی‌های آنلاین

وقتی بسته‌ی دیررسیده فایده‌ای ندارد از UDP استفاده کنید؛ وقتی از دست رفتن بسته قابل قبول نیست از TCP

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

بازی‌ها روشن‌ترین نمونه‌اند. به‌روزرسانی موقعیتی که ۲۰۰ میلی‌ثانیه پیش ثبت شده دیگر ارزشی ندارد، برای همین موتورهای بازی داده‌ها را با UDP می‌فرستند و فقط از جدیدترین بسته استفاده می‌کنند. تماس‌های تصویری هم همین کار را می‌کنند و برای همین به‌جای یک توقف طولانی، فقط یک اختلال کوتاه می‌شنوید.

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

VPN با UDP یا TCP: پیش‌فرض UDP است و در جایی که VPNهای دیگر متوقف می‌شوند، مسیری شبیه TCP

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

اجرای TCP داخل تونل TCP کند است: هر دو لایه همان بسته‌ی گم‌شده را دوباره می‌فرستند و هر دو هم‌زمان سرعت را کم می‌کنند. این همان مصالحه‌ی «OpenVPN UDP در برابر TCP» است که در برنامه‌های قدیمی‌تر می‌بینید و از شما می‌خواهند یکی را انتخاب کنید. UDP برای سرعت، TCP وقتی UDP وصل نمی‌شود.

Teal VPN که Fxolio LLC ساخته، یک طرح رایگان (۵۰۰ مگابایت در روز) و یک طرح Pro دارد، با برنامه‌هایی برای Android، Windows، Mac، Linux، Android TV و Chromebook. برنامه از شما نمی‌خواهد TCP یا UDP را انتخاب کنید. Teal Secure برای هر اتصال و در هر طرح فعال است: ترافیک مبهم‌سازی می‌شود و وقتی شبکه‌ای یک مسیر را می‌بندد، برنامه خودش مسیرهای دیگر را امتحان می‌کند. هیچ VPN‌ای تضمین نمی‌کند که روی هر شبکه‌ای وصل شود، پس پیش از سفر قوانین محلی را بررسی کنید. پس از اتصال، تست نشت Teal VPN در tealvpn.com/ip-leak-test نشان می‌دهد کدام سرورهای DNS به جستجوهای UDP شما پاسخ می‌دهند.

برنامهٔ Teal VPN در Android متصل به لیتوانی با پینگ ۴۶ میلی‌ثانیه و وضعیت سبزِ محافظت‌شده

HTTP روی TCP کار می‌کند و ICMP نه TCP است و نه UDP

HTTP رقیب TCP یا UDP نیست، بلکه لایه‌ای بالاتر از آن‌هاست: HTTP کلاسیک و HTTPS داخل TCP حرکت می‌کنند، در حالی که HTTP/3 جدیدتر داخل UDP حرکت می‌کند و قابلیت اطمینان خودش را روی آن می‌سازد.

ICMP حالتی متفاوت دارد. کنار TCP و UDP قرار می‌گیرد، نه بالاتر از آن‌ها، اصلاً پورت ندارد و پیام‌های کنترلی مثل پیام‌هایی را که ping و traceroute استفاده می‌کنند حمل می‌کند. پس «tcp vs udp vs icmp» در واقع سه کار متفاوت است: رساندن مطمئن داده، رساندن سریع داده و گزارش وضعیت خود شبکه.

ادامه مطلب

منابع

برای Teal کمک لازم دارید؟ با پشتیبانی تماس بگیرید.

پرسش‌ها

آیا UDP از TCP سریع‌تر است؟

بله. UDP هدر ۸ بایتی دارد و دست‌دهی (handshake) و ارسال مجدد ندارد؛ برای همین سربار کمتری دارد و هیچ‌وقت متوقف نمی‌شود. روی یک اتصال سالم تفاوت کم است، اما روی اتصالی که بسته گم می‌کند زیاد می‌شود.

کدام امن‌تر است، TCP یا UDP؟

هیچ‌کدام به‌تنهایی چیزی را رمزگذاری نمی‌کنند. امنیت از لایه بالاتر می‌آید، مثل HTTPS روی TCP یا تونل VPN روی UDP. جعل کردن TCP به‌خاطر دست‌دهی سخت‌تر است، اما این یک ویژگی برای قابل‌اعتماد بودن انتقال است، نه رمزگذاری.

آیا VPN از TCP استفاده می‌کند یا UDP؟

بیشتر پروتکل‌های VPN برای سرعت، UDP را به‌عنوان حالت پیش‌فرض دارند. بعضی برنامه‌ها یک حالت TCP هم دارند، برای شبکه‌هایی که UDP را محدود می‌کنند. برنامه Teal VPN مسیر را خودش انتخاب می‌کند و وقتی یکی از مسیرها از کار بیفتد، به مسیر دیگر می‌رود. این توضیح مربوط به وضعیت نوامبر ۲۰۲۶ است.

OpenVPN با UDP یا TCP: کدام را انتخاب کنم؟

UDP را انتخاب کنید، مگر اینکه وصل نشود. حالت TCP روی شبکه‌های سخت‌گیرتر کار می‌کند اما کندتر است، چون وقتی یک بسته گم شود، TCP داخل TCP ارسال مجدد را دو برابر می‌کند.

آیا می‌توان از UDP برای انتقال فایل استفاده کرد؟

فقط اگر برنامه خودش بررسی‌های اضافه‌ای انجام دهد. UDP ساده بسته‌های گم‌شده را رها می‌کند و در نتیجه فایل ناقص به دست می‌رسد. به همین دلیل FTP و بیشتر ابزارهای دانلود از TCP استفاده می‌کنند.

آیا TCP و UDP از پورت‌های یکسانی استفاده می‌کنند؟

شماره پورت‌ها در یک محدوده هستند، اما هر پروتکل مجموعه‌ی جداگانه‌ی خودش را دارد؛ بنابراین پورت ۸۰ در TCP و پورت ۸۰ در UDP از هم جدا هستند. قانون در روتر هم شماره‌ی پورت را لازم دارد و هم پروتکل را.

چرا بازی‌ها از UDP استفاده می‌کنند؟

چون به‌روزرسانی قدیمیِ موقعیت دیگر به کاری نمی‌آید. UDP به جای اینکه برای ارسال دوباره‌ی بسته‌ی قبلی صبر کند، جدیدترین بسته را بلافاصله می‌رساند و بازی روان می‌ماند.

Teal VPN را به‌عنوان منبع مورد نظر خود در Google اضافه کنید

اینترنت شما، زیر بال شما.

با Teal VPN آشنا شوید.

Teal VPN مسیر را برای شما انتخاب می‌کند، پس لازم نیست بین TCP و UDP یکی را انتخاب کنید.

دریافت Teal VPN