{"id":115667,"date":"2024-05-10T13:52:08","date_gmt":"2024-05-10T11:52:08","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/predlozhenie-po-vklyucheniyu-rezhima-tcp_nodelay-po-umolchaniyu"},"modified":"2024-05-10T13:52:08","modified_gmt":"2024-05-10T11:52:08","slug":"predlozhenie-po-vklyucheniyu-rezhima-tcp_nodelay-po-umolchaniyu","status":"publish","type":"post","link":"https:\/\/prohoster.info\/cs\/blog\/news\/predlozhenie-po-vklyucheniyu-rezhima-tcp_nodelay-po-umolchaniyu","title":{"rendered":"Nab\u00eddka pro v\u00fdchoz\u00ed zapnut\u00ed re\u017eimu TCP_NODELAY","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Marc Brooker, in\u017een\u00fdr spole\u010dnosti Amazon Web Services (AWS), vyvr\u00e1til m\u00fdty spojen\u00e9 se zvy\u0161ov\u00e1n\u00edm efektivity p\u0159enosu mal\u00fdch zpr\u00e1v pomoc\u00ed algoritmu Nagle, kter\u00fd je ve v\u00fdchoz\u00edm nastaven\u00ed pou\u017e\u00edv\u00e1n v TCP\/IP z\u00e1sobn\u00edku. Doporu\u010den\u00ed spo\u010d\u00edv\u00e1 v tom, \u017ee algoritmus Nagle by m\u011bl b\u00fdt ve v\u00fdchoz\u00edm nastaven\u00ed vypnut, co\u017e je mo\u017en\u00e9 v kontextu jednotliv\u00fdch aplikac\u00ed nastaven\u00edm volby TCP_NODELAY pro s\u00ed\u0165ov\u00e9 sokety pomoc\u00ed vol\u00e1n\u00ed setsockopt, co\u017e je ji\u017e dlouho implementov\u00e1no v takov\u00fdch projektech jako Node.js a curl.     <\/p>\n<p>Nagle\u016fv algoritmus umo\u017e\u0148uje agregaci mal\u00fdch zpr\u00e1v pro sn\u00ed\u017een\u00ed provozu \u2013 pozastavuje odes\u00edl\u00e1n\u00ed nov\u00fdch TCP segment\u016f do potvrzen\u00ed p\u0159ijet\u00ed p\u0159edchoz\u00edch dat. Nap\u0159\u00edklad bez pou\u017eit\u00ed agregace, kdy\u017e se odes\u00edl\u00e1 1 bajt, je nav\u00edc odesl\u00e1no 40 bajt\u016f s TCP a IP hlavi\u010dkami paketu. V sou\u010dasn\u00fdch podm\u00ednk\u00e1ch pou\u017eit\u00ed Nagleova algoritmu vede k v\u00fdznamn\u00e9mu zv\u00fd\u0161en\u00ed zpo\u017ed\u011bn\u00ed, kter\u00e9 je nep\u0159ijateln\u00e9 pro interaktivn\u00ed a distribuovan\u00e9 aplikace.     <\/p>\n<p>Uv\u00e1d\u00ed se t\u0159i z\u00e1kladn\u00ed d\u016fvody pro v\u00fdchoz\u00ed pou\u017eit\u00ed volby TCP_NODELAY, kter\u00e1 vyp\u00edn\u00e1 algoritmus Nagle:  <\/p>\n<ul>\n<li class=\"l\"> Inkompatibilita Nagleova algoritmu s optimalizac\u00ed \u201edelayed ACK\u201c, p\u0159i kter\u00e9 je ACK odpov\u011b\u010f zasl\u00e1na ne ihned, ale a\u017e po obdr\u017een\u00ed odpov\u00eddaj\u00edc\u00edch dat. Probl\u00e9m je v tom, \u017ee v Nagleov\u011b algoritmu je p\u0159ijet\u00ed ACK paketu sign\u00e1lem k odesl\u00e1n\u00ed agregovan\u00fdch dat, a pokud ACK paket nep\u0159ijde, odesl\u00e1n\u00ed se prov\u00e1d\u00ed po vypr\u0161en\u00ed \u010dasov\u00e9ho limitu. Tak vznik\u00e1 uzav\u0159en\u00fd kruh a ACK paket jako sign\u00e1l nefunguje, proto\u017ee druh\u00e1 strana nedost\u00e1v\u00e1 data kv\u016fli jejich hromad\u011bn\u00ed na stran\u011b odes\u00edlatele, a odes\u00edlatel je neode\u0161le, dokud nevypr\u0161\u00ed \u010dasov\u00fd limit, proto\u017ee nedost\u00e1v\u00e1 ACK paket.\n<li class=\"l\"> RFC pro algoritmus Nagle byl p\u0159ijat v roce 1984 a nen\u00ed ur\u010den pro parametry modern\u00edch vysokorychlostn\u00edch s\u00edt\u00ed a <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/cs\/server\/\"   title=\"servery\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1546\">servery<\/a> datacenter, co\u017e vede k probl\u00e9m\u016fm s odezvou. Zpo\u017ed\u011bn\u00ed mezi odesl\u00e1n\u00edm po\u017eadavku a p\u0159ijet\u00edm odpov\u011bdi (RTT) v modern\u00edch s\u00edt\u00edch \u010din\u00ed 0,5 ms + n\u011bkolik milisekund p\u0159i v\u00fdm\u011bn\u011b dat mezi datacentry v jednom regionu + a\u017e stovky milisekund p\u0159i odes\u00edl\u00e1n\u00ed po cel\u00e9m sv\u011bt\u011b. B\u011bhem t\u011bchto milisekund je modern\u00ed server schopen prov\u00e9st ohromn\u00e9 mno\u017estv\u00ed pr\u00e1ce.\n<li class=\"l\"> Modern distributed applications no longer send single bytes of data; instead, the aggregation of small data is usually implemented at the application level. Even if the size of the useful data is just a few bytes, the actual size of the information sent tends to increase significantly after serialization, the use of JSON API wrappers, and transmission using TLS encryption. The saving of 40 bytes becomes less relevant.      <\/ul>\n<p>Zdroj: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=61145\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u0430\u0440\u043a \u0411\u0440\u0443\u043a\u0435\u0440 (Marc Brooker), \u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Amazon Web Services (AWS), \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u044f, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u0435\u043c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043c\u0435\u043b\u043a\u0438\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u041d\u0435\u0439\u0433\u043b\u0430, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432 TCP\/IP \u0441\u0442\u0435\u043a\u0435. \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438 \u0441\u0432\u043e\u0434\u044f\u0442\u0441\u044f \u043a \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044e \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u041d\u0435\u0439\u0433\u043b\u0430, \u0447\u0442\u043e \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u043f\u0446\u0438\u0438 TCP_NODELAY \u0434\u043b\u044f \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0441\u043e\u043a\u0435\u0442\u043e\u0432 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0432\u044b\u0437\u043e\u0432\u0430 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-115667","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u0430\u0440\u043a \u0411\u0440\u0443\u043a\u0435\u0440 (Marc Brooker), \u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Amazon Web Services (AWS), \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u044f, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u0435\u043c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043c\u0435\u043b\u043a\u0438\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u041d\u0435\u0439\u0433\u043b\u0430, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u043f\u043e.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/cs\/blog\/news\/predlozhenie-po-vklyucheniyu-rezhima-tcp_nodelay-po-umolchaniyu\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044e \u0440\u0435\u0436\u0438\u043c\u0430 TCP_NODELAY \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u0430\u0440\u043a \u0411\u0440\u0443\u043a\u0435\u0440 (Marc Brooker), \u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Amazon Web Services (AWS), \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u044f, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u0435\u043c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043c\u0435\u043b\u043a\u0438\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u041d\u0435\u0439\u0433\u043b\u0430, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u043f\u043e.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/cs\/blog\/news\/predlozhenie-po-vklyucheniyu-rezhima-tcp_nodelay-po-umolchaniyu\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-05-10T11:52:08+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-05-10T11:52:08+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Proposal to enable TCP_NODELAY mode by default | ProHoster","description":"Marc Brooker, an engineer at Amazon Web Services (AWS), discussed misconceptions related to improving the efficiency of small message transmission when using Nagle's algorithm.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/news\/predlozhenie-po-vklyucheniyu-rezhima-tcp_nodelay-po-umolchaniyu","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044e \u0440\u0435\u0436\u0438\u043c\u0430 TCP_NODELAY \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e | ProHoster","og:description":"\u041c\u0430\u0440\u043a \u0411\u0440\u0443\u043a\u0435\u0440 (Marc Brooker), \u0438\u043d\u0436\u0435\u043d\u0435\u0440 \u0438\u0437 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Amazon Web Services (AWS), \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u044f, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u0435\u043c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u043c\u0435\u043b\u043a\u0438\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0430 \u041d\u0435\u0439\u0433\u043b\u0430, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u043c\u043e\u0433\u043e \u043f\u043e.","og:url":"https:\/\/prohoster.info\/cs\/blog\/news\/predlozhenie-po-vklyucheniyu-rezhima-tcp_nodelay-po-umolchaniyu","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2024-05-10T11:52:08+00:00","article:modified_time":"2024-05-10T11:52:08+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"115667","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-02-09 17:22:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 00:03:19","updated":"2026-02-09 17:22:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/115667","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=115667"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/115667\/revisions"}],"predecessor-version":[{"id":158790,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/115667\/revisions\/158790"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=115667"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=115667"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=115667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}