فناوری پروتکل آزمایشی گوگل QUIC
فناوری پروتکل آزمایشی گوگل QUIC، پروتکل QUIC محفف Quick UDP Internet Connection است، به لطف دسترسی سریعتر به اینترنت در زمان فعلی، زمان بارگذاری سایت های اینترنتی به میزان قابل توجهی کاهش یافته است. در نتیجه، بارگذاری سریع صفحات در حال حاضر بدیهی تلقی می شود، به این معنی که وب سایت های با سرعت بارگذاری کندتر شانس کمی جهت بقا در بازار دارند. بدتر از همه، موضوع رمزگذاری اطلاعات اهمیت فزایندهای پیدا نوده است: استاندارد HTTPS یک متحد قابل اعتماد برای محافظت از حریم خصوصی کاربران می باشد، اگرچه تبادل TLS، گواهی و تعویض کلید منجر به تاخیرهای اضافی در فرآیند بارگیری میشود. پروتکل QUIC گوگل این مشکل را حل خواهد نمود.
فناوری پروتکل آزمایشی گوگل QUIC
فهرست مطالب
- پروتکل آزمایشی گوگل QUIC
QUIC (اتصالات اینترنت پرسرعت UDP) چیست؟
QUIC یک پروتکل آزمایشی است که توسط غول موتور جستجو گوگل فراهم گردیده است و در سال 2013 به عموم معرفی شد. QUIC مخفف Quick UDP Internet Connections و به معنای “اتصالات اینترنت پرسرعت UDP” می باشد و علت نامگذاری به این دلیل است که امکان ارسال سریع و آسان بسته های ساده را از طریق اینترنت فراهم می نماید. پروتکل دیتاگرام کاربر بدون اتصال (UDP). دلیل توسعه QUIC تمایل به ارائه جایگزینی جهت راه حل امنیتی ایجاد شده TCP، HTTP/2 و TLS/SSL با توسعه حفاظت مشابه و البته با کاهش تاخیر در اتصال و انتقال و اجازه دادن به اتصالات چندگانه بود.
گوگل QUIC را به این صورت طراحی کرده است تا خود پروتکل اتصال را کنترل نماید. در طی اولین handshake بین فرستنده و گیرنده، آنها گواهی ها و کلیدهای مورد نیاز جهت رمزگذاری دیتاگرام های ارسالی را مبادله می نمایند. ارتباطات بعدی این تبادل را از بین می برد، که تاخیر را به حداقل می رساند. پروتکل رمزگذاری نسخه 1.3 TLS فعلی و بهینه شده با سرعت (استاندارد شده در مارس 2017) است که نسبت به راه حل رمزنگاری داخلی ترجیح داده می شود. هنگامی که صحبت از مالتی پلکسینگ به میان می آید، پروتکل QUIC از پروتکل SPDY توسعه یافته توسط گوگل پیروی می نماید، که الگوی HTTP/2 را ارائه می دهد: یک اتصال کلاینت-سرور واحد که می تواند جهت انتقال چندین جریان داده مختلف استفاده شود و زمان بارگذاری را به میزان قابل توجهی کاهش دهد.
توجه داشته باشید که از سال 2016، یک کارگروه رسمی IEFT روی بهینه سازی پروتکل QUIC فعایت می نماید. نزدیک به 50 توسعهدهنده از گوگل Google، موزیلا Mozilla، مایکروسافت Microsoft و سایر شرکتهای مطرح توسط Lars Eggert لارس اگرت و Mark Nottingham مارک ناتینگهام با هدف پیشرفت و انتشار مشخصات QUIC هدایت میشوند. این پروتکل برای چندین سال (از سال 2013) در سرورهای Google استفاده می گردید. علاوه بر این، QUIC در مرورگر Chrome داخلی نیز پیادهسازی شده است، به همین دلیل است که برخی از ترافیک اینترنت (مانند YouTube) در حال حاضر با استفاده از پروتکل انتقال پیشرفته UDP پردازش میشود.
QUIC چه مزایایی ارائه می دهد؟
برخی از ویژگی ها و مزایای مهم QUIC در ابتدا ذکر گردید، در اینجا با جزئیات بیشتر و با اشاره به پیشرفت های اخیر این موارد بیشتر مورد بررسی قرار خواهند گرفت. TCP که به عنوان یک پیشگام در مفهوم پروتکل انتقال نوظهور نقش مهمی را ایفا می نماید، به عنوان یک مقایسه پروتکلی خوب عمل می نماید. با این حال، همانطور که راهنمای زیر نشان خواهد داد، از برخی جهات به وضوح از پروتکل Google ضعیف تر است:
اتصالات سریعتر
جنبه اصلی عملکردی که به QUIC نسبت به TCP برتری می دهد این است که راه اندازی اتصال بسیار سریعتر می باشد. حتی بدون رمزگذاری از طریق SSL/TLS، اتصال با استفاده از پروتکل انتقال سنتی با «handshake سهطرفه» گامهای بیشتری نسبت به راهحل Google مبتنی بر UDP دارد. QUIC اتصال را با یک بسته (یا دو بسته اگر اولین اتصال باشد) شروع می نماید و حتی تمام پارامترهای لازم TLS یا HTTPS را ارسال می نماید. در بیشتر موارد، یک کلاینت میتواند بدون تکیه بر پاسخ، دادهها را مستقیماً به سرور ارسال نماید، در حالی که TCP باید ابتدا تأییدیه سرور را دریافت نموده و سپس پردازش نماید.
گزینه های اتصال چندگانه
TCP از پورت های TCP و آدرس های IP سیستم های متصل جهت شناسایی اتصال استفاده می کند. به همین دلیل، امکان برقراری ارتباط کلاینت با سرور از طریق چندین پورت در یک اتصال واحد وجود ندارد. پروتکل QUIC وضعیت را با روش و راه حل متفاوتی ارائه می دهد: از تشخیص اتصال 64 بیتی و جریان های مختلف جهت انتقال داده ها در یک اتصال استفاده می نماید. بنابراین، یک اتصال QUIC لزوماً به یک پورت خاص (در این مثال یک پورت UDP)، یک آدرس IP یا یک نقطه پایانی خاص متصل نیست. در نتیجه، تغییرات پورت و IP که هر دو گزینه های تاثیر گذاری می باشند، همانطور که قبلاً اتصال چندگانه توضیح داده شد.
اختصاص دنباله اعداد خاص
هر بخش داده از یک اتصال QUIC، صرف نظر از اینکه سگمنت اصلی و یا فوروارد شده باشد.، توالی دنباله ای خود را دریافت می نماید. بهطور پیشفرض، TCP این کار را انجام نمیدهد، به همین دلیل است که میزبان نمیتواند وضعیت یک دنباله را تعیین نماید – تنها با استفاده از یک پسوند مهر زمانی، پروتکل انتقال کلاسیک میتواند این نوع تمایز را مجاز نماید. برچسب گذاری مداوم پکت ها سودمند است چراکه تخمین زمان رفت و برگشت (RTT) دقیق تری را امکان پذیر می نماید.
تصحیح خطای فوروارد
بسته های مفقود شده مشکل بزرگی در هنگام انتقال داده از طریق QUIC ایجاد نمی سازند. به لطف یک سیستم تصحیح خطای ساده مبتنی بر XOR، نیازی به ارسال مجدد داده های مربوطه نیست. این بسته ها را می توان در هر زمان با استفاده از FEC (تصحیح خطای پیش رو) بسته های پشتیبان گیری شده از بسته های اصلی برای یک گروه داده، بازتولید نمود. با این حال، اگر چندین بسته از یک گروه داده وجود نداشته باشد، تصحیح خطا کار نخواهد کرد.
کنترل اضافه بار Overload
TCP همیشه سعی می کند داده ها را با بیشترین سرعت ممکن ارسال نماید، که از نظر داشتن اتصال سریع داده یک مزیت است، اما با نرخ تلفات خاصی نیز همراه می باشد. اگر بسته ای گم شود، ارسال مجدد (TCP Fast Retransmit) به سرعت آغاز می شود. اگرچه برای این منظور، TCP به طور موقت اندازه پنجره ارسال را کاهش می دهد که اغلب منجر به انتقال متناوب داده ها می شود. پروتکل QUIC این پیکهای بار را با «گامسازی بسته» خنثی می نماید. این روش تضمین می کند که سرعت انتقال به طور خودکار محدود شود. بنابراین، حتی با اتصالات پهنای باند کم، اضافه بار وجود ندارد. با این حال، این یک تکنیک جدید نیست: برخی از هسته های لینوکس نیز از این روش برای پروتکل TCP استفاده می کنند.
احراز هویت و رمزگذاری
امنیت از همان ابتدا یک جنبه کلیدی در برنامه ریزی و طراحی QUIC بوده است. توسعه دهندگان همچنین یافتن راه حلی برای یکی از بزرگترین مشکلات TCP را در اولویت قرار داده اند: هِدر بسته ارسالی به صورت متنی ساده است و می توان آن را بدون احراز هویت قبلی خواند. در نتیجه حملات Man in the middle مرد میانی غیر معمول نیست. با این حال، بسته های QUIC همیشه احراز هویت می شوند و تا حد زیادی رمزگذاری می شوند (از جمله بار). قسمت هایی از هدر که به صورت رمزگذاری شده نیستند با احراز هویت در انتهای گیرنده از تزریق و دستکاری محافظت می شوند.
بی نیازی به سخت افزارهای خاص
یکی دیگر از مزایای مهم QUIC نسبت به TCP این است که پروتکل گوگل از سیستم جدا شده است. در حالی که TCP برای برقراری ارتباط به پشتیبانی از پلتفرم ها یا دستگاه های مربوطه نیاز دارد، پشتیبانی QUIC فقط در سطح اپلیکیشن مورد نیاز است. ادغام نرمافزار بر عهده شرکتهای نرمافزاری جداگانه است – آنها به تولیدکنندگان سختافزار وابسته نیستند. تا به امروز، عمدتاً برنامه های Google مانند سرورهای Google یا Google Chrome هستند که QUIC را پیاده سازی کرده اند. با این حال، برنامههایی مانند مرورگر Opera، نرمافزار سرور Caddy، و محصولات LiteSpeed Technologies متعادلسازی بار و سرور وب در حال حاضر دارای برنامههای شخص ثالث هستند که اتصالات را از طریق پروتکل انتقال جدید امکانپذیر میسازند.
معایب پروتکل QUIC
این واقعیت که QUIC احتمالاً محبوب تر می شود به لطف تعهد IETF است. با تعدیل استانداردهای رایج از زمان شروع فعالیت این کارگروه در سال 2016، این پروتکل از یک پروتکل گوگل محور به یک پروتکل شبکه اشتراکی تبدیل شده است. با این حال، فرآیند بهینهسازی هنوز به پایان نرسیده است: تیم QUIC در رسیدگی به مسائل موجود که هنوز به راهحل مناسب نیاز دارند، ادامه میدهد.
از مهم ترین چالش هایی که همچنان پروتکل QUIC با آن مواجه است امنیت است. در حالی که احراز هویت و رمزگذاری روش امنتری جهت انتقال دادهها ارائه می نماید، اما یکی از اشکالات مهم QUIC نیز از آنجایی که هدر پکت ها حاوی اطلاعات متنی ساده کمتری نسبت به موارد با اتصالات TCP هستند، وظایفی مانند عیبیابی، تنظیم ترافیک یا مدیریت شبکه با اتصالات QUIC دشوارتر می شود. به همین دلیل، اپراتورهای شبکه و سازندگان فایروال در میان سایرین تضمین کیفیت محصول خود را دشوار می دانند.
مشکل دیگر پروتکل QUIC این است که کنترل ازدحام خودکار روی اتصالات داده با پهنای باند بالا ممکن است در برخی موارد منجر به نرخ انتقال ضعیفتر شود.
فعال سازی و غیرفعال کردن QUIC و نحوه کار آن
اگرچه توسعه QUIC بهویژه در سالهای اخیر پیشرفت چشمگیری داشته است، اما فقط به صورت آزمایشی در مرورگرهای Google Chrome و Opera استفاده شده است. بهطور پیشفرض در کروم فعال میگردد، در حالی که کاربران Opera باید به صورت دستی قفل پروتکل را بازگشایی نمایند تا از افزایش عملکرد بالقوه استفاده کنند. در ادامه نحوه فعال و غیرفعال کردن QUIC در هر دوی این مرورگرها دقیقا توضیح داده می شود.
پیکربندی QUIC در کروم Chrome
جهت تغییر تنظیمات پروتکل QUIC در Google Chrome، باید به منوی پیکربندی ویژگی های آزمایشی experimental features بروید. کافیست دستور زیر را در نوار آدرس وارد کنید:
chrome://flags
مورد منوی آزمایشی پروتکل QUIC را با استفاده از عملکرد جستجو پیدا نمایید، شما می توانید با فشار دادن کلید ترکیبی [CRTL+F] نیز این فرایند را اجرا نمایید. چنانچه هنوز هیچ تغییری در تنظیمات اولیه ایجاد نکردهاید، گزینه «پیشفرض» باید برای پروتکل انتخاب شود. از نظر QUIC، این پیکربندی پیشفرض کروم به این معنی است که پروتکل فعال است.
چنانچه میخواهید پروتکل را غیرفعال نمایید، فقط روی «Disabled» و سپس «Start Now» کلیک کنید. سپس کروم بسته می شود، اما دفعه بعد که مرورگر خود را راه اندازی می کنید، تنظیمات جدید فعال می شوند. اگر میخواهید پروتکل را دوباره فعال کنید، به همین ترتیب ادامه دهید، اما «پیشفرض» یا «فعال» را انتخاب نمایید.
Chrome امکان مشاهده sessions ها یا نشست های فعال QUIC را ارائه می دهد. فقط باید دستور chrome://net-internals/#quic را در آدرس QUIC وارد کنید.
خاموش و روشن کردن QUIC در Opera و سایر مرورگرها
اپرا که مبتنی بر کرومیوم Chromium است، از نسخه 16 که در آگوست 2013 منتشر شد، نسخه آزمایشی پروتکل QUIC را ادغام نموده است. تفاوت با گوگل کروم این است که پروتکل به طور پیش فرض در اپرا غیرفعال است. جهت استفاده از فناوری نوین انتقال داده، باید خودتان آن را فعال کنید. میتوانید این گزینه را در منوی پیکربندی برای ویژگیهای آزمایشی، مانند Google Chrome، پیدا کنید. در اپرا، به آن “experiments” گفته می شود و می توان با وارد نمودن دستور زیر در نوار آدرس آن را فراخوانی نمود:
opera://flags
در لیست ویژگیها، پروتکل را در زیر «پروتکل QUIC» خواهید یافت. جهت روشن کردن QUIC، کافی است «Enabled» و سپس «Restart Now» را انتخاب نمایید. اگر میخواهید بعداً به تنظیمات اصلی برگردید، میتوانید این کار را به همین ترتیب انجام دهید، اما با انتخاب «غیرفعال».
توسعه دهندگان Opera به صراحت در بخش “Experiments” اشاره می کنند که فعال یا غیرفعال کردن ویژگی ها می تواند منجر به بروز مشکلاتی شود.
Opera به شما امکان می دهد اتصالات داده فعالی را که در QUIC اجرا می شوند مشاهده نمایید. جهت انجام این کار، پس از فعال کردن پروتکل، دستور opera://net-internals/#quic را به مرورگر اضافه کنید.
کدام وب سایت ها قبلاً از پروتکل QUIC استفاده می کنند؟
گوگل به عنوان یکی از توسعه دهندگان QUIC، در اوایل سال 2013 این پروتکل را در سرورهای خود ادغام نمود، به همین دلیل است که سرویس های مختلف گوگل از جمله شناخته شده ترین اپلیکیشن های کاربردی وب هستند که امکان انتقال داده ها از طریق پروتکل مترقی progressive را فراهم می کنند. اولین و مهمترین موتور جستجو، Google و سایر سرویسهای وب سایت های Google مانند Maps ، Gmail، Google Docs و YouTube همگی با استفاده از پروتکل QUIC قابل ارائه هستند، مشروط بر اینکه از کلاینت مناسب استفاده شده باشد.
کاربران کروم می توانند از شاخص HTTP/2 و SPDY جهت اجرای QUIC در سایر وب سایت ها استفاده نمایند. extension فوق یک نماد رعد و برق کوچک در کنار نوار آدرس اضافه می نماید که وقتی صفحه فراخوانی شده آبی می شود و تأیید می کند که می تواند از پروتکل انتقال پشتیبانی نماید. با قرار دادن ماوس روی نماد، ابزار شماره نسخه را نیز نمایش می دهد.
آموزش شبکه
نظرات کاربران