NGINXలో HTTP/3కి మద్దతు ఇవ్వడానికి క్లౌడ్‌ఫ్లేర్ మాడ్యూల్‌ను అమలు చేసింది

క్లౌడ్‌ఫ్లేర్ కంపెనీ సిద్ధం మాడ్యూల్ NGINXలో HTTP/3 ప్రోటోకాల్‌కు మద్దతును అందించడానికి. క్లౌడ్‌ఫ్లేర్ అభివృద్ధి చేసిన లైబ్రరీకి యాడ్-ఆన్‌గా మాడ్యూల్ రూపొందించబడింది Quiche QUIC మరియు HTTP/3 రవాణా ప్రోటోకాల్ అమలుతో. quiche కోడ్ రస్ట్‌లో వ్రాయబడింది, అయితే NGINX మాడ్యూల్ కూడా Cలో వ్రాయబడింది మరియు డైనమిక్ లింకింగ్‌ని ఉపయోగించి లైబ్రరీని యాక్సెస్ చేస్తుంది. అభివృద్ధి తెరవండి BSD లైసెన్స్ కింద.

సమీకరించడానికి, డౌన్‌లోడ్ చేయండి పాచ్ nginx 1.16 మరియు వద్ద quiche లైబ్రరీలు, ఆపై nginxని “—with-http_v3_module —with-quiche=../quiche” ఎంపికలతో పునర్నిర్మించండి. నిర్మించేటప్పుడు, TLS మద్దతు BoringSSL లైబ్రరీపై ఆధారపడి ఉండాలి (“--with-openssl=../quiche/deps/boringssl”), OpenSSL వినియోగానికి ఇంకా మద్దతు లేదు. కనెక్షన్‌లను ఆమోదించడానికి, మీరు సెట్టింగులకు “క్విక్” ఫ్లాగ్‌తో వినండి ఆదేశాన్ని జోడించాలి (ఉదాహరణకు, “వినండి 443 క్విక్ రీయూజ్‌పోర్ట్”).

క్లయింట్ సాఫ్ట్‌వేర్‌లో, Chrome Canary మరియు కర్ల్ యుటిలిటీ యొక్క ప్రయోగాత్మక బిల్డ్‌లకు HTTP/3 మద్దతు ఇప్పటికే జోడించబడింది. సర్వర్ వైపు, ఇప్పటి వరకు విడిగా, పరిమితంగా ఉపయోగించడం అవసరం పరీక్ష అమలులు. nginxలో HTTP/3ని ప్రాసెస్ చేయగల సామర్థ్యం HTTP/3 మద్దతుతో సర్వర్‌ల విస్తరణను గణనీయంగా సులభతరం చేస్తుంది మరియు కొత్త ప్రోటోకాల్ యొక్క పరీక్ష అమలును మరింత ప్రాప్యత చేస్తుంది. nginxలో HTTP/3 కోసం ప్రామాణిక మద్దతు యొక్క ఆవిర్భావం అంచనా 1.17-6 నెలలకు 12.x శాఖలో.

HTTP/3 కోసం QUIC ప్రోటోకాల్‌ను రవాణాగా ఉపయోగించడాన్ని HTTP/2 ప్రామాణికం చేస్తుందని గుర్తుంచుకోండి. ప్రోటోకాల్ ఆ సి (త్వరిత UDP ఇంటర్నెట్ కనెక్షన్‌లు) 2013 నుండి Google ద్వారా వెబ్ కోసం TCP+TLS కలయికకు ప్రత్యామ్నాయంగా అభివృద్ధి చేయబడింది, TCPలో కనెక్షన్‌ల కోసం సుదీర్ఘ సెటప్ మరియు చర్చల సమయాల్లో సమస్యలను పరిష్కరిస్తుంది మరియు డేటా బదిలీ సమయంలో ప్యాకెట్లు పోయినప్పుడు ఆలస్యాన్ని తొలగిస్తుంది. QUIC అనేది UDP ప్రోటోకాల్ యొక్క పొడిగింపు, ఇది బహుళ కనెక్షన్‌ల మల్టీప్లెక్సింగ్‌కు మద్దతు ఇస్తుంది మరియు TLS/SSLకి సమానమైన ఎన్‌క్రిప్షన్ పద్ధతులను అందిస్తుంది.

ప్రధాన особенности క్విక్:

  • TLS మాదిరిగానే అధిక భద్రత (ముఖ్యంగా QUIC UDP ద్వారా TLSని ఉపయోగించగల సామర్థ్యాన్ని అందిస్తుంది);
  • ప్రవాహ సమగ్రత నియంత్రణ, ప్యాకెట్ నష్టాన్ని నివారించడం;
  • తక్షణమే కనెక్షన్‌ని ఏర్పాటు చేయగల సామర్థ్యం (0-RTT, దాదాపు 75% కేసులలో కనెక్షన్ సెటప్ ప్యాకెట్‌ని పంపిన వెంటనే డేటాను ప్రసారం చేయవచ్చు) మరియు అభ్యర్థనను పంపడం మరియు ప్రతిస్పందనను స్వీకరించడం (RTT, రౌండ్ ట్రిప్ సమయం) మధ్య కనీస ఆలస్యాన్ని అందించడం;
  • ప్యాకెట్‌ను తిరిగి ప్రసారం చేసేటప్పుడు అదే క్రమ సంఖ్యను ఉపయోగించకపోవడం, అందుకున్న ప్యాకెట్‌లను గుర్తించడంలో సందిగ్ధతను నివారిస్తుంది మరియు గడువు ముగిసే సమయాలను తొలగిస్తుంది;
  • ప్యాకెట్ యొక్క నష్టం దానితో అనుబంధించబడిన స్ట్రీమ్ యొక్క డెలివరీని మాత్రమే ప్రభావితం చేస్తుంది మరియు ప్రస్తుత కనెక్షన్ ద్వారా ప్రసారం చేయబడిన సమాంతర స్ట్రీమ్‌లలో డేటా డెలివరీని ఆపదు;
  • కోల్పోయిన ప్యాకెట్‌ల పునఃప్రసారం కారణంగా ఆలస్యాన్ని తగ్గించే ఎర్రర్ దిద్దుబాటు లక్షణాలు. పోగొట్టుకున్న ప్యాకెట్ డేటా యొక్క పునఃప్రసారం అవసరమయ్యే పరిస్థితులను తగ్గించడానికి ప్యాకెట్ స్థాయిలో ప్రత్యేక ఎర్రర్ కరెక్షన్ కోడ్‌లను ఉపయోగించడం.
  • క్రిప్టోగ్రాఫిక్ బ్లాక్ సరిహద్దులు QUIC ప్యాకెట్ సరిహద్దులతో సమలేఖనం చేయబడ్డాయి, ఇది తదుపరి ప్యాకెట్ల కంటెంట్‌లను డీకోడింగ్ చేయడంపై ప్యాకెట్ నష్టాల ప్రభావాన్ని తగ్గిస్తుంది;
  • TCP క్యూ నిరోధించడంలో సమస్యలు లేవు;
  • కనెక్షన్ ఐడెంటిఫైయర్‌కు మద్దతు, ఇది మొబైల్ క్లయింట్‌ల కోసం రీకనెక్షన్‌ని ఏర్పాటు చేయడానికి పట్టే సమయాన్ని తగ్గిస్తుంది;
  • అధునాతన కనెక్షన్ రద్దీ నియంత్రణ విధానాలను కనెక్ట్ చేసే అవకాశం;
  • ప్యాకెట్లు సరైన ధరల వద్ద పంపబడుతున్నాయని నిర్ధారించడానికి ప్రతి-దిశ నిర్గమాంశ అంచనా పద్ధతులను ఉపయోగిస్తుంది, అవి రద్దీగా మారకుండా మరియు ప్యాకెట్ నష్టాన్ని కలిగించకుండా చేస్తుంది;
  • గ్రహించదగినది వృద్ధి TCPతో పోలిస్తే పనితీరు మరియు నిర్గమాంశ. YouTube వంటి వీడియో సేవల కోసం, QUIC వీడియోలను చూసేటప్పుడు రీబఫరింగ్ కార్యకలాపాలను 30% తగ్గించగలదని చూపబడింది.
  • మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి