{"id":293430,"date":"2019-08-15T15:00:52","date_gmt":"2019-08-15T15:00:52","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=293430"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=293430","title":{"rendered":"TCP \u043f\u0440\u043e\u0442\u0438\u0432 UDP \u0438\u043b\u0438 \u0431\u0443\u0434\u0443\u0449\u0435\u0435 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432"},"content":{"rendered":"\n<div class=\"post__text post__text-html js-mediator-article\">\u041f\u0435\u0440\u0435\u0434 \u043a\u0430\u0436\u0434\u044b\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u043c, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u043c \u0445\u043e\u0442\u044f \u0431\u044b 1 \u041c\u0431\u0438\u0442\/\u0441\u0435\u043a \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0432\u043e\u043f\u0440\u043e\u0441: \u00ab\u041a\u0430\u043a? \u043f\u043e TCP \u0438\u043b\u0438 \u043f\u043e UDP?\u00bb \u0412 \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u044b\u0445 \u043e\u0431\u043b\u0430\u0441\u0442\u044f\u0445, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u0445 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0443\u0436\u0435 \u0441\u043b\u043e\u0436\u0438\u043b\u0438\u0441\u044c \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0435\u043d\u0438\u044f \u0438 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u0438 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439.<\/p>\n<p>  \u041f\u043e \u0438\u0434\u0435\u0435, \u0435\u0441\u043b\u0438 \u0431\u044b, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u043e\u0434\u043d\u0430\u0436\u0434\u044b \u043e\u0434\u0438\u043d \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u0432\u043e\u0439 ML \u043d\u0430 Python (\u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0433\u043e \u0438 \u0437\u043d\u0430\u043b), \u043c\u0438\u0440 \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043f\u0440\u043e\u043d\u0438\u043a\u0441\u044f \u0431\u044b \u0442\u0430\u043a\u043e\u0439 \u043b\u044e\u0431\u043e\u0432\u044c\u044e \u043a \u043f\u0440\u0435\u0437\u0440\u0435\u043d\u043d\u043e\u043c\u0443 \u00ab\u0441\u0443\u043f\u0435\u0440-\u0434\u0436\u0430\u0432\u0430-\u043a\u043e\u0434\u0435\u0440\u0430\u043c\u0438\u00bb \u044f\u0437\u044b\u043a\u0443. \u0410 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0441\u043b\u0430\u0431\u043e\u0441\u0442\u0438 \u044d\u0442\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0431\u0435\u0437\u043e\u0433\u043e\u0432\u043e\u0440\u043e\u0447\u043d\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0442 \u0435\u043c\u0443 \u043f\u0435\u0440\u0432\u0435\u043d\u0441\u0442\u0432\u043e \u0432 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0438 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u043c\u0430\u0439\u043d\u0435\u0440\u0441\u043a\u0438\u0445 \u0410\/\u0411.<\/p>\n<p>  \u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043c\u043d\u043e\u0433\u043e\u0435: ARM \u0441 Intel, iOS \u0438 Android, \u0430 Mortal Combat \u0441 Injustice. \u0418 \u043d\u0430\u0440\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043a\u043e\u0441\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0445\u043e\u043b\u0438\u0432\u0430\u0440, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043a \u0442\u0435\u043c\u0435 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043c\u043e\u0432 \u0440\u0430\u0437\u043d\u043e\u0444\u043e\u0440\u043c\u0430\u0442\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430.<\/p>\n<p>  \u0414\u0435\u0441\u044f\u0442\u044c \u043b\u0435\u0442 \u043d\u0430\u0437\u0430\u0434 \u0432\u0441\u0435 \u0431\u044b\u043b\u0438 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0443\u0432\u0435\u0440\u0435\u043d\u044b, UDP \u2014 \u044d\u0442\u043e \u0447\u0442\u043e-\u0442\u043e \u043f\u0440\u043e \u043d\u0435\u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0443. \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u0435\u043d \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u2014 \u044d\u0442\u043e TCP. \u0418 \u0432\u043e\u043f\u0440\u0435\u043a\u0438 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u044f\u043c \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435, \u043a\u0430\u0436\u0443\u0449\u0438\u0435\u0441\u044f \u043d\u0435\u0441\u0440\u0430\u0432\u043d\u0438\u043c\u044b\u043c\u0438 \u0432\u0435\u0449\u0438, \u043a\u0430\u043a TCP \u0438 UDP.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/p5\/tk\/9z\/p5tk9z_pumv5hmxly_ob3rvdikg.jpeg\"><br \/>  <i>\u041e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u043e, \u043f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c 99 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0439 \u0438 \u0441\u0445\u0435\u043c \u0438 \u0432\u0441\u0435 \u0432\u0430\u0436\u043d\u044b\u0435. <\/i><br \/>  <a name=\"habracut\"><\/a><br \/>  \u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442 \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c \u0412\u0438\u0434\u0435\u043e \u0438 \u041b\u0435\u043d\u0442\u0430 \u0432 OK <b>\u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0422\u043e\u0431\u043e\u043b\u044c<\/b> (<a href=\"https:\/\/habr.com\/ru\/users\/alatobol\/\" class=\"user_link\">alatobol<\/a>). \u0421\u0435\u0440\u0432\u0438\u0441\u044b \u0412\u0438\u0434\u0435\u043e \u0438 \u041b\u0435\u043d\u0442\u0430 \u041d\u043e\u0432\u043e\u0441\u0442\u0435\u0439 \u0432 \u0441\u043e\u0446\u0441\u0435\u0442\u0438 \u041e\u041a \u2014 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u0438 \u0435\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0443 \u043d\u0430 \u0432\u0441\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0438\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0432 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443\u0433\u043e\u0434\u043d\u043e \u043f\u043b\u043e\u0445\u0438\u0445 \u0438\u043b\u0438 \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u0441\u0435\u0442\u0438, \u0438 \u0432\u043e\u043f\u0440\u043e\u0441, \u043a\u0430\u043a \u0435\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u2014 \u043f\u043e TCP \u0438\u043b\u0438 \u043f\u043e UDP \u2014 \u0438\u043c\u0435\u0435\u0442 \u0440\u0435\u0448\u0430\u044e\u0449\u0435\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435.<\/p>\n<div class=\"oembed\">\n<div>\n<div style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.2493%;\"><iframe src=\"https:\/\/www.youtube.com\/embed\/aXYJlizk3CQ?rel=0&amp;showinfo=1&amp;hl=en-US\" style=\"border: 0; top: 0; left: 0; width: 100%; height: 100%; position: absolute;\" allowfullscreen scrolling=\"no\"><\/iframe><\/div>\n<\/div>\n<\/div>\n<p>  <\/p>\n<h2>TCP vs UDP. \u041c\u0438\u043d\u0438\u043c\u0443\u043c \u0442\u0435\u043e\u0440\u0438\u0438<\/h2>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e, \u043d\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0442\u0435\u043e\u0440\u0438\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/fd\/2q\/ko\/fd2qkoeptll1vmmm0ptkscrhu9i.jpeg\"><\/p>\n<p>  \u0427\u0442\u043e \u043c\u044b \u0437\u043d\u0430\u0435\u043c \u043e\u0431 IP \u0441\u0435\u0442\u044f\u0445? \u041f\u043e\u0442\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0435, \u0440\u0430\u0437\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0430\u043a\u0435\u0442\u044b, \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u0447\u0435\u0440\u043d\u044b\u0439 \u044f\u0449\u0438\u043a \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u044d\u0442\u0438 \u043f\u0430\u043a\u0435\u0442\u044b \u0434\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430. \u041a\u043b\u0438\u0435\u043d\u0442 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442 \u043f\u0430\u043a\u0435\u0442\u044b \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u043f\u043e\u0442\u043e\u043a \u0434\u0430\u043d\u043d\u044b\u0445. \u041e\u0431\u044b\u0447\u043d\u043e \u044d\u0442\u043e \u0432\u0441\u0435 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e \u0438 \u043d\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0434\u0443\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u0442\u0430\u043c \u043d\u0430 \u043d\u0438\u0436\u043d\u0438\u0445 \u0443\u0440\u043e\u0432\u043d\u044f\u0445.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/dj\/6r\/xm\/dj6rxmcr3xayjlmfnblkxet-1le.jpeg\"><\/p>\n<p>  \u041d\u0430 \u0441\u0445\u0435\u043c\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b TCP\/IP \u0438 UDP\/IP \u0441\u0442\u0435\u043a. \u0412\u043d\u0438\u0437\u0443 \u0435\u0441\u0442\u044c Ethernet-\u043f\u0430\u043a\u0435\u0442\u044b, IP-\u043f\u0430\u043a\u0435\u0442\u044b, \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u041e\u0421 \u0435\u0441\u0442\u044c TCP \u0438 UDP. TCP \u0438 UDP \u0432 \u044d\u0442\u043e\u043c \u0441\u0442\u0435\u043a\u0435 \u043d\u0435 \u0441\u0438\u043b\u044c\u043d\u043e \u0434\u0440\u0443\u0433 \u043e\u0442 \u0434\u0440\u0443\u0433\u0430 \u043e\u0442\u043b\u0438\u0447\u0430\u044e\u0442\u0441\u044f. \u041e\u043d\u0438 \u0438\u043d\u043a\u0430\u043f\u0441\u0443\u043b\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0432 IP-\u043f\u0430\u043a\u0435\u0442\u044b, \u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u0438\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f. \u0427\u0442\u043e\u0431\u044b \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043e\u0442\u043b\u0438\u0447\u0438\u044f, \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u043d\u0443\u0442\u0440\u044c TCP- \u0438 UDP-\u043f\u0430\u043a\u0435\u0442\u0430.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/mz\/pr\/lt\/mzprltftvytepznp_xufo63xb0g.jpeg\"><\/p>\n<p>  \u0418 \u0442\u0430\u043c, \u0438 \u0442\u0430\u043c \u0435\u0441\u0442\u044c \u043f\u043e\u0440\u0442\u044b. \u041d\u043e <strong>\u0432 UDP \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u0430\u044f \u0441\u0443\u043c\u043c\u0430<\/strong> \u2014 \u0434\u043b\u0438\u043d\u0430 \u043f\u0430\u043a\u0435\u0442\u0430, \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u043f\u0440\u043e\u0441\u0442\u043e\u0439. \u0410 \u0432 TCP \u2014 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f\u0432\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u043e\u043a\u043d\u043e, acknowledgement, sequence, \u043f\u0430\u043a\u0435\u0442\u044b \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, <strong>TCP \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0439<\/strong>.<\/p>\n<blockquote><p>\u0415\u0441\u043b\u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043e\u0447\u0435\u043d\u044c \u0433\u0440\u0443\u0431\u043e, \u0442\u043e TCP \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0439 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438, \u0430 UDP \u2014 \u043d\u0435\u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0439.<\/p><\/blockquote>\n<p>  \u0418 \u0432\u0441\u0451 \u0436\u0435, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0437\u0430\u044f\u0432\u043b\u0435\u043d\u043d\u0443\u044e \u043d\u0435\u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u044c UDP, \u043c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0451\u043c, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u043b\u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u0438 \u043d\u0430\u0434\u0435\u0436\u043d\u0435\u0435 \u0447\u0435\u043c \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c TCP. \u041f\u043e\u043f\u0440\u043e\u0431\u0443\u0435\u043c \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u0430 \u0441\u0435\u0442\u044c \u0438\u0437\u043d\u0443\u0442\u0440\u0438 \u0438 \u043f\u043e\u043d\u044f\u0442\u044c, \u043a\u0430\u043a \u043e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041f\u043e\u043f\u0443\u0442\u043d\u043e \u0437\u0430\u0442\u0440\u043e\u043d\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b:<\/p>\n<ul>\n<li>\u0437\u0430\u0447\u0435\u043c \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c TCP \u0438\u043b\u0438 \u0447\u0442\u043e \u0441 \u043d\u0438\u043c \u043d\u0435 \u0442\u0430\u043a;<\/li>\n<li>\u0441 \u0447\u0435\u043c \u0438 \u043d\u0430 \u0447\u0435\u043c \u043d\u0430\u0434\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c TCP;<\/li>\n<li>\u043a\u0430\u043a \u043f\u043e\u0441\u0442\u0443\u043f\u0438\u043b Google \u0438 \u043a\u0430\u043a\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u043d\u044f\u043b;<\/li>\n<li>\u043a\u0430\u043a\u043e\u0435 \u0431\u0443\u0434\u0443\u0449\u0435\u0435 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u0432 \u043d\u0430\u0441 \u0436\u0434\u0435\u0442.<\/li>\n<\/ul>\n<p>  \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0442\u0435\u043e\u0440\u0438\u0438: \u0443\u0440\u043e\u0432\u043d\u0435\u0439 \u0438 \u043c\u043e\u0434\u0435\u043b\u0435\u0439 OSI, \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043c\u043e\u0434\u0435\u043b\u0435\u0439, \u0445\u043e\u0442\u044f \u0447\u0435\u0440\u0435\u0437 \u043d\u0438\u0445 \u0432\u0441\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c. \u0411\u0443\u0434\u0435\u043c \u043f\u043e \u043c\u0430\u043a\u0441\u0438\u043c\u0443\u043c\u0443 \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0442\u044c, \u043a\u0430\u043a \u043f\u043e\u0442\u0440\u043e\u0433\u0430\u0442\u044c \u0441\u0435\u0442\u044c \u043d\u0435 \u0432 \u0442\u0435\u043e\u0440\u0438\u0438, \u0430 \u0441\u0432\u043e\u0438\u043c\u0438 \u0440\u0443\u043a\u0430\u043c\u0438.<\/p>\n<h2>\u0417\u0430\u0447\u0435\u043c \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c TCP \u0438\u043b\u0438 \u0447\u0442\u043e \u0441 \u043d\u0438\u043c \u043d\u0435 \u0442\u0430\u043a<\/h2>\n<p>  TCP \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u0438 \u0432 1974 \u0433\u043e\u0434\u0443, \u0430 \u043b\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 20, \u043a\u043e\u0433\u0434\u0430 \u044f \u043f\u043e\u0448\u0435\u043b \u0432 \u0448\u043a\u043e\u043b\u0443, \u044f \u043f\u043e\u043a\u0443\u043f\u0430\u043b \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043a\u0430\u0440\u0442\u044b, \u0441\u0442\u0438\u0440\u0430\u043b \u043a\u043e\u0434 \u0438 \u043a\u0443\u0434\u0430-\u0442\u043e \u0437\u0432\u043e\u043d\u0438\u043b. \u041f\u0440\u0438\u0447\u0435\u043c, \u0435\u0441\u043b\u0438 \u0437\u0432\u043e\u043d\u0438\u0442\u044c \u0441 2 \u043d\u043e\u0447\u0438 \u0434\u043e 7 \u0443\u0442\u0440\u0430, \u0442\u043e \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0431\u044b\u043b \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0439, \u043d\u043e \u0434\u043e\u0437\u0432\u043e\u043d\u0438\u0442\u044c\u0441\u044f \u0431\u044b\u043b\u043e \u0442\u0440\u0443\u0434\u043d\u043e.<\/p>\n<p>  \u041f\u0440\u043e\u0448\u043b\u043e \u0435\u0449\u0435 20 \u043b\u0435\u0442, \u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043d\u0430 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u044b\u0445 \u0441\u0435\u0442\u044f\u0445 \u0441\u0442\u0430\u043b\u0438 \u043f\u0440\u0435\u0432\u0430\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0434 \u00ab\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u044b\u043c\u0438\u00bb \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c TCP \u043a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u043d\u0435 \u043c\u0435\u043d\u044f\u043b\u0441\u044f.<\/p>\n<blockquote><p>\u041c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \u043c\u0438\u0440 \u043f\u043e\u0431\u0435\u0434\u0438\u043b, \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u044b\u0435 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b, \u0430 TCP \u0431\u044b\u043b \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u043d\u0435\u0438\u0437\u043c\u0435\u043d\u0435\u043d.<\/p><\/blockquote>\n<p>  \u0421\u0435\u0433\u043e\u0434\u043d\u044f 80% \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 Wi-Fi \u0438\u043b\u0438 \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0443\u044e 3G-4G \u0441\u0435\u0442\u044c.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/mw\/a9\/u4\/mwa9u4ew7v6e1uevlbgrvf2jlrw.jpeg\"><\/p>\n<p>  \u0412 \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u044b\u0445 \u0441\u0435\u0442\u044f\u0445 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0442:<\/p>\n<ul>\n<li>packet loss \u2014 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e 0,6% \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c, \u0442\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u043f\u043e \u043f\u0443\u0442\u0438;<\/li>\n<li>reordering \u2014 \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043c\u0435\u0441\u0442\u0430\u043c\u0438, \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0436\u0438\u0437\u043d\u0438 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0440\u0435\u0434\u043a\u043e\u0435 \u044f\u0432\u043b\u0435\u043d\u0438\u0435, \u043d\u043e \u0441\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0432 0,2% \u0441\u043b\u0443\u0447\u0430\u0435\u0432;<\/li>\n<li>jitter \u2014 \u043a\u043e\u0433\u0434\u0430 \u043f\u0430\u043a\u0435\u0442\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e, \u0430 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u043e\u0447\u0435\u0440\u0435\u0434\u044f\u043c\u0438 \u0441 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0432 50\u00a0\u043c\u0441. <\/li>\n<\/ul>\n<p>  \u0412\u0441\u0435 \u044d\u0442\u0438 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u0433\u0435\u0442\u0435\u0440\u043e\u0433\u0435\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u044f\u0445 TCP \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u043e\u0442 \u0432\u0430\u0441, \u0438 \u0432\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u044c.<\/p>\n<p>  \u041d\u0438\u0436\u0435 \u043d\u0430 \u043a\u0430\u0440\u0442\u0435 \u0441\u0440\u0435\u0434\u043d\u044f\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e TCP \u0432 \u0420\u043e\u0441\u0441\u0438\u0438. \u0415\u0441\u043b\u0438 \u0443\u0431\u0440\u0430\u0442\u044c \u0437\u0430\u043f\u0430\u0434\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c, \u0442\u043e \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0441\u043a\u043e\u0440\u0435\u0435 \u0432 \u043a\u0438\u043b\u043e\u0431\u0438\u0442\u0430\u0445, \u0447\u0435\u043c \u0432 \u043c\u0435\u0433\u0430\u0431\u0438\u0442\u0430\u0445.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ck\/a4\/y5\/cka4y5puk4gyorr-uaq2xcdtuom.jpeg\"><\/p>\n<p>  \u0422\u043e \u0435\u0441\u0442\u044c \u0432 \u0441\u0440\u0435\u0434\u043d\u0435\u043c \u0443 \u043d\u0430\u0448\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 (\u0435\u0441\u043b\u0438 \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0437\u0430\u043f\u0430\u0434\u043d\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0420\u043e\u0441\u0441\u0438\u0438): \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c 1,1 \u041c\u0431\u0438\u0442\/\u0441\u0435\u043a, 0,6 % packet loss, RTT (round-trip time) \u043f\u043e\u0440\u044f\u0434\u043a\u0430 200\u00a0\u043c\u0441.<\/p>\n<h3>\u041a\u0430\u043a \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u044c RTT<\/h3>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u044f \u0443\u0432\u0438\u0434\u0435\u043b \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0432 200\u043c\u0441, \u043f\u043e\u0434\u0443\u043c\u0430\u043b \u0447\u0442\u043e \u0432 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0435 \u043e\u0448\u0438\u0431\u043a\u0430, \u0438 \u0440\u0435\u0448\u0438\u043b \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c RTT \u0434\u043e \u043d\u0430\u0448\u0438\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0432 \u041c\u0421\u041a \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e RIPE Atlas. \u042d\u0442\u043e \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0441\u0431\u043e\u0440\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430. \u0423\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u043e \u0437\u043e\u043d\u0434 \u043e\u0442 <a href=\"https:\/\/atlas.ripe.net\/results\/maps\/network-coverage\/\">RIPE Atlas<\/a> \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u043e.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/za\/rj\/3g\/zarj3gndghr0wnxs4yqt_odm68a.jpeg\"><\/p>\n<p>  \u0421\u0443\u0442\u044c \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0435 \u0435\u0435 \u043a \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u043c\u0443 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0443 \u0438 \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0435 \u00ab\u043a\u0430\u0440\u043c\u0443\u00bb. \u041e\u043d\u0430 \u0441\u0443\u0442\u043a\u0430\u043c\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043b\u044e\u0434\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u043d\u0430 \u043d\u0435\u0439 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0441\u0432\u043e\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u044b. \u041f\u043e\u0442\u043e\u043c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0430\u043c\u0438 \u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438. \u041f\u0440\u0438\u043c\u0435\u0440 \u0442\u0430\u043a\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438: \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u043e \u0432\u0437\u044f\u0442\u044c 30 \u0442\u043e\u0447\u0435\u043a \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435, \u0438 \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u043f\u043e\u043c\u0435\u0440\u0438\u0442\u044c RTT, \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443 ping \u0434\u043e \u0441\u0430\u0439\u0442\u0430 \u041e\u0434\u043d\u043e\u043a\u043b\u0430\u0441\u0441\u043d\u0438\u043a\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/kb\/qa\/5k\/kbqa5k7sgl6wt5modhjfpa2fg00.jpeg\"><\/p>\n<p>  \u041a\u0430\u043a \u043d\u0438 \u0441\u0442\u0440\u0430\u043d\u043d\u043e, \u0441\u0440\u0435\u0434\u0438 \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0445 \u0442\u043e\u0447\u0435\u043a \u043c\u043d\u043e\u0433\u043e \u0442\u0430\u043a\u0438\u0445, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 ping \u043e\u0442 200 \u0434\u043e 300 \u043c\u0441.<\/p>\n<p>  \u0418\u0442\u043e\u0433\u043e, <strong>\u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b \u0438 \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b<\/strong> (\u0445\u043e\u0442\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u043e\u0431\u044b\u0447\u043d\u043e \u0438\u0433\u043d\u043e\u0440\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0441 \u044d\u0442\u0438\u043c \u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f TCP):<\/p>\n<ul>\n<li>\u0411\u043e\u043b\u0435\u0435 80% \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442;<\/li>\n<li>\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u043d\u043e \u043c\u0435\u043d\u044f\u044e\u0442\u0441\u044f \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0442 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u043e\u0432\u0435\u0440\u043d\u0443\u043b \u0437\u0430 \u0443\u0433\u043e\u043b;<\/li>\n<li>\u0411\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u0438\u043c\u0435\u044e\u0442 \u0432\u044b\u0441\u043e\u043a\u0438\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 packet loss, jitter, reordering;<\/li>\n<li>\u0424\u0438\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0430\u0441\u0441\u0438\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b\u0439 \u043a\u0430\u043d\u0430\u043b, \u0441\u043c\u0435\u043d\u0430 IP-\u0430\u0434\u0440\u0435\u0441\u0430.<\/li>\n<\/ul>\n<p>  <\/p>\n<h3>\u041f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430<\/h3>\n<p>  \u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043b\u0435\u0433\u043a\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u2014 \u0435\u0441\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0434\u0430\u043d\u043d\u044b\u0445. \u042f \u0432\u0437\u044f\u043b <a href=\"https:\/\/opensignal.com\/reports\/2018\/09\/state-of-mobile-video\">\u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443<\/a> \u043f\u043e \u0432\u0438\u0434\u0435\u043e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e \u0447\u0435\u043c \u0432\u044b\u0448\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u0432 \u0441\u0442\u0440\u0430\u043d\u0435, \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0441\u043c\u043e\u0442\u0440\u044f\u0442 \u0432\u0438\u0434\u0435\u043e.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/de\/6q\/_r\/de6q_ruks-vpbgoo4yt5vokfkno.jpeg\"><\/p>\n<p>  \u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0435 \u0432 \u0420\u043e\u0441\u0441\u0438\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0418\u043d\u0442\u0435\u0440\u043d\u0435\u0442, \u043e\u0434\u043d\u0430\u043a\u043e \u043f\u043e \u043d\u0430\u0448\u0438\u043c \u0432\u043d\u0443\u0442\u0440\u0435\u043d\u043d\u0438\u043c \u0434\u0430\u043d\u043d\u044b\u043c \u0441\u0440\u0435\u0434\u043d\u044f\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043d\u0438\u0436\u0435.<\/p>\n<p>  \u0412 \u043f\u043e\u043b\u044c\u0437\u0443 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430 \u0432 \u0446\u0435\u043b\u043e\u043c \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u0430\u044f, \u0433\u043e\u0432\u043e\u0440\u0438\u0442 \u0442\u043e, \u0447\u0442\u043e \u0432\u0441\u0435 \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u0438 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0441\u043e\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439, \u0432\u0438\u0434\u0435\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u0443\u044e\u0442 \u0441\u0432\u043e\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432 \u043f\u043b\u043e\u0445\u043e\u0439 \u0441\u0435\u0442\u0438. \u0423\u0436\u0435 \u043f\u043e\u0441\u043b\u0435 10 \u041a\u0431\u0430\u0439\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043c\u043e\u0436\u043d\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u043b\u0435\u043d\u0442\u0435, \u0430 \u043d\u0430 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 500 \u041a\u0431\u0438\u0442 \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0438\u0434\u0435\u043e.<\/p>\n<h3>\u041a\u0430\u043a \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443<\/h3>\n<p>  \u0412 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b \u0412\u0438\u0434\u0435\u043e, \u043c\u044b \u043f\u043e\u043d\u044f\u043b\u0438, \u0447\u0442\u043e TCP \u043d\u0435 \u043e\u0447\u0435\u043d\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u0435\u043d \u0432 \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u044b\u0445 \u0441\u0435\u0442\u044f\u0445. \u041a\u0430\u043a \u043f\u0440\u0438\u0448\u043b\u0438 \u043a \u0442\u0430\u043a\u043e\u043c\u0443 \u0432\u044b\u0432\u043e\u0434\u0443?<\/p>\n<p>  \u041c\u044b \u0440\u0435\u0448\u0438\u043b\u0438 \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0438 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0442\u0440\u044e\u043a.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/n2\/gg\/xf\/n2ggxfu9tzoskihc7itlm28j7ui.jpeg\"><\/p>\n<p>  \u0413\u0440\u0443\u0437\u0438\u043b\u0438 \u0432\u0438\u0434\u0435\u043e \u0441 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440, \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u0442\u043e\u043a\u043e\u0432, \u0442\u043e \u0435\u0441\u0442\u044c 40 \u041c\u0431\u0430\u0439\u0442 \u0434\u0435\u043b\u0438\u043c \u043d\u0430 4 \u0447\u0430\u0441\u0442\u0438 \u043f\u043e 10 \u041c\u0431\u0430\u0439\u0442 \u0438 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u043c \u0438\u0445 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e. \u0417\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u044d\u0442\u043e \u043d\u0430 Android \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438, \u0447\u0442\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c \u0432 \u043e\u0434\u043d\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 (<a href=\"https:\/\/youtu.be\/aXYJlizk3CQ?t=537\">\u0434\u0435\u043c\u043e<\/a> \u0432 \u0434\u043e\u043a\u043b\u0430\u0434\u0435). \u0421\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435, \u0447\u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u043c\u044b \u0432\u044b\u043a\u0430\u0442\u0438\u043b\u0438 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u0443\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0432 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d, \u0442\u043e \u0443\u0432\u0438\u0434\u0435\u043b\u0438, \u0447\u0442\u043e \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0440\u0435\u0433\u0438\u043e\u043d\u0430\u0445 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432\u044b\u0440\u043e\u0441\u043b\u0430 \u0432 3 \u0440\u0430\u0437\u0430!<\/p>\n<blockquote><p>\u041f\u043e \u0447\u0435\u0442\u044b\u0440\u0435\u043c TCP-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f\u043c \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0432 3 \u0440\u0430\u0437\u0430 \u0431\u044b\u0441\u0442\u0440\u0435\u0435.<\/p><\/blockquote>\n<p>  \u0422\u0430\u043a \u043c\u044b \u043f\u043e\u0432\u044b\u0441\u0438\u043b\u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432\u0438\u0434\u0435\u043e \u0438 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0432\u044b\u0432\u043e\u0434, \u0447\u0442\u043e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043d\u0443\u0436\u043d\u043e \u0440\u0430\u0441\u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0432\u0430\u0442\u044c.<\/p>\n<h3>TCP \u0432 \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0442\u044f\u0445<\/h3>\n<p>  \u041d\u0435\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u044b\u0439 \u044d\u0444\u0444\u0435\u043a\u0442 \u0441 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0437\u043c\u043e\u043c \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0442\u0440\u043e\u0433\u0430\u0442\u044c. \u0414\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0432\u0437\u044f\u0442\u044c \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u0435\u043b\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f\/\u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 Speed Test) \u0438 \u0442\u0440\u0430\u0444\u0438\u043a \u0448\u0435\u0439\u043f\u0435\u0440 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 network link Conditioner, \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 Mac) \u041e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0432\u0430\u0435\u043c \u0441\u0435\u0442\u044c \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 1 \u041c\u0431\u0438\u0442\/\u0441\u0435\u043a \u043d\u0430 upload \u0438 download \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0440\u0430\u0441\u0442\u0438\u0442\u044c \u043f\u043e\u0442\u0435\u0440\u044e \u043f\u0430\u043a\u0435\u0442\u043e\u0432.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/lk\/ki\/j8\/lkkij8appdgsvglvlp1rdt3em7s.jpeg\"><\/p>\n<p>  \u0412 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u0443\u043a\u0430\u0437\u0430\u043d\u044b RTT \u0438 \u043f\u043e\u0442\u0435\u0440\u0438. \u0412\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 0% \u043f\u043e\u0442\u0435\u0440\u044c, \u0441\u0435\u0442\u044c \u0443\u0442\u0438\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u043d\u0430 100%.<\/p>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0435\u0439 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u043c packet loss \u043d\u0430 5%, \u0438 \u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0441\u0435\u0442\u044c \u0443\u0442\u0438\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u0433\u043e \u043d\u0430 74%. \u0412\u0440\u043e\u0434\u0435 \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u0442\u0440\u0430\u0448\u043d\u043e\u0433\u043e \u2014 \u043f\u0440\u0438 packet loss \u0432 5% \u0442\u0435\u0440\u044f\u0435\u0442\u0441\u044f 26% \u0441\u0435\u0442\u0438. \u041d\u043e \u0435\u0441\u043b\u0438 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0435\u0449\u0435 \u0438 ping, \u0442\u043e \u043e\u0441\u0442\u0430\u043d\u0435\u0442\u0441\u044f <strong>\u043c\u0435\u043d\u044c\u0448\u0435 \u043f\u043e\u043b\u043e\u0432\u0438\u043d\u044b \u043a\u0430\u043d\u0430\u043b\u0430<\/strong>.<\/p>\n<blockquote><p>\u0415\u0441\u043b\u0438 \u043a\u0430\u043d\u0430\u043b \u0441 \u0432\u044b\u0441\u043e\u043a\u0438\u043c RTT \u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u043c packet loss, \u0442\u043e \u043e\u0434\u043d\u043e TCP \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043d\u0435 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0443\u0442\u0438\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0441\u0435\u0442\u044c.<\/p><\/blockquote>\n<p>  \u0414\u0430\u043b\u044c\u043d\u0435\u0439\u0448\u0438\u0439 \u0442\u0440\u044e\u043a \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043d\u0430\u0447\u0430\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0435 TCP-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f (\u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e Speed Test-\u0432 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e), \u0432\u0438\u0434\u0435\u043d \u043e\u0431\u0440\u0430\u0442\u043d\u044b\u0439 \u0440\u043e\u0441\u0442 \u0443\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u043a\u0430\u043d\u0430\u043b\u0430.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/co\/n7\/v_\/con7v_t-dxmnrsxe6e0kkakbnwm.jpeg\"><\/p>\n<p>  \u0421 \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435\u043c \u0447\u0438\u0441\u043b\u0430 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u044b\u0445 TCP-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u0443\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0435\u0442\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043f\u043e\u0447\u0442\u0438 \u0440\u0430\u0432\u043d\u043e\u0439 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438, \u0437\u0430 \u0432\u044b\u0447\u0435\u0442\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u043d\u0442\u0430 \u043f\u043e\u0442\u0435\u0440\u044c.<\/p>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c:<\/p>\n<ul>\n<li>\u0411\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u044b\u0435 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u043f\u043e\u0431\u0435\u0434\u0438\u043b\u0438 \u0438 \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b.<\/li>\n<li>TCP \u043d\u0435 \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u0443\u0442\u0438\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u043a\u0430\u043d\u0430\u043b \u0432 \u043d\u0435\u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0442\u044f\u0445.<\/li>\n<li>\u041f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430: \u0447\u0435\u043c \u0432\u044b\u0448\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0430, \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0441\u043c\u043e\u0442\u0440\u044f\u0442, \u0430 \u043c\u044b \u043e\u0447\u0435\u043d\u044c \u043b\u044e\u0431\u0438\u043c \u043d\u0430\u0448\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u0445\u043e\u0442\u0438\u043c, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u0438 \u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438 \u0431\u043e\u043b\u044c\u0448\u0435.<\/li>\n<\/ul>\n<p>  \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u043d\u0430\u0434\u043e \u043a\u0443\u0434\u0430-\u0442\u043e \u0434\u0432\u0438\u0433\u0430\u0442\u044c\u0441\u044f \u0438 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u044b TCP.<\/p>\n<h2>TCP vs \u043d\u0435 \u0422\u0421\u0420<\/h2>\n<p>  \u0421 \u0447\u0435\u043c \u0441\u0440\u0430\u0432\u043d\u0438\u0442\u044c \u0442\u0451\u043f\u043b\u043e\u0435? \u0415\u0441\u0442\u044c \u0434\u0432\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430.<\/p>\n<p>  \u041f\u0435\u0440\u0432\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u2014 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 IP \u0435\u0441\u0442\u044c TCP \u0438 UDP, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442\u044c \u0441\u0435\u0431\u0435 \u0435\u0449\u0435 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0441\u0432\u0435\u0440\u0445\u0443. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0441 TCP \u0438 UDP \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u0442\u043e \u043f\u0440\u043e \u043d\u0435\u0433\u043e \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0437\u043d\u0430\u0442\u044c Firewall, Brandmauer, \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u044b \u0438 \u0432\u0435\u0441\u044c \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0438\u0440, \u0443\u0447\u0430\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0432 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0435 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0433\u043e\u0434\u0430\u043c\u0438 \u0436\u0434\u0430\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u0432\u0441\u0435 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0438 \u043d\u0430\u0447\u043d\u0435\u0442 \u0441 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u043d\u043e\u0432\u044b\u043c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u043e\u043c.<\/p>\n<p>  \u0412\u0442\u043e\u0440\u043e\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u2014 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u0432\u0435\u0440\u0445 \u043d\u0435\u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0433\u043e UDP. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0436\u0434\u0430\u0442\u044c, \u043f\u043e\u043a\u0430 Linux, Android \u0438 iOS \u0434\u043e\u0431\u0430\u0432\u044f\u0442 \u043d\u043e\u0432\u044b\u0439 \u0432 \u0441\u0432\u043e\u0435 \u044f\u0434\u0440\u043e \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u043b\u0433\u043e, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430\u0434\u043e \u043f\u0438\u043b\u0438\u0442\u044c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0432 User Space.<\/p>\n<p>  \u0422\u0430\u043a\u043e\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u043c, \u0431\u0443\u0434\u0435\u043c \u043d\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0435\u0433\u043e self-made UDP-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b. \u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c \u0435\u0433\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c, \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0433\u043e: \u043f\u0440\u043e\u0441\u0442\u043e \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0435\u043c UDP socket \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/zy\/zt\/sn\/zyztsnsutwgufcqwlhxb6qslhpg.jpeg\"><\/p>\n<p>  \u0411\u0443\u0434\u0435\u043c \u0435\u0433\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0442\u044c, \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0438\u0437\u0443\u0447\u0430\u044f, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u0435\u0442\u044c.<\/p>\n<h2>TCP vs self-made UDP<\/h2>\n<p>  \u0425\u043e\u0440\u043e\u0448\u043e, \u0430 \u043d\u0430 \u0447\u0435\u043c \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c?<\/p>\n<p>  \u0421\u0435\u0442\u0438 \u0431\u044b\u0432\u0430\u044e\u0442 \u0440\u0430\u0437\u043d\u044b\u0435:<\/p>\n<ul>\n<li>\u0421 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0430\u043c\u0438, \u043a\u043e\u0433\u0434\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0438 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043d\u0438\u0445 \u0434\u0440\u043e\u043f\u0430\u044e\u0442\u0441\u044f \u0438\u0437-\u0437\u0430 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0438 \u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u0438\u043b\u0438 \u043e\u0431\u043e\u0440\u0443\u0434\u043e\u0432\u0430\u043d\u0438\u044f.<\/li>\n<li>\u0412\u044b\u0441\u043e\u043a\u043e\u0441\u043a\u043e\u0440\u043e\u0441\u0442\u043d\u044b\u0435 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 round-trip (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u043a\u043e\u0433\u0434\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0440\u0430\u0441\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442\u0441\u044f \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0434\u0430\u043b\u0435\u043a\u043e).<\/li>\n<li>\u0421\u0442\u0440\u0430\u043d\u043d\u044b\u0435 \u2014 \u043a\u043e\u0433\u0434\u0430 \u0432 \u0441\u0435\u0442\u0438 \u0432\u0440\u043e\u0434\u0435 \u0431\u044b \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442, \u043d\u043e \u043f\u0430\u043a\u0435\u0442\u044b \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043f\u0440\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u0442\u043e\u043c\u0443-\u0447\u0442\u043e Wi-Fi \u0442\u043e\u0447\u043a\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0437\u0430 \u0441\u0442\u0435\u043d\u043a\u043e\u0439.<\/li>\n<\/ul>\n<p>  \u041f\u0440\u043e\u0444\u0438\u043b\u0438 \u0441\u0435\u0442\u0438 \u0432\u044b \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0442\u0440\u043e\u0433\u0430\u0442\u044c \u0441\u0430\u043c\u0438: \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043d\u0430 \u0441\u0432\u043e\u0435\u043c \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0435 \u0442\u043e\u0442 \u0438\u043b\u0438 \u0438\u043d\u043e\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c Speed Test.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/v1\/0j\/-p\/v10j-p8absukvs6s4jn2ntd8qau.jpeg\"><\/p>\n<p>  \u041a\u0440\u043e\u043c\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u0435\u0439 \u0441\u0435\u0442\u0438, \u043d\u0443\u0436\u043d\u043e \u0435\u0449\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u0441\u044f \u0441 \u043f\u0440\u043e\u0444\u0438\u043b\u0435\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u0442\u0440\u0430\u0444\u0438\u043a\u0430. \u0412\u043e\u0442 \u0442\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438 \u043c\u044b:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/3k\/dc\/fb\/3kdcfbeyhjpduwbumk1n1iz2-c0.jpeg\"><\/p>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a \u044f \u043e\u0442\u0432\u0435\u0447\u0430\u044e \u0437\u0430 \u0412\u0438\u0434\u0435\u043e \u0438 \u041b\u0435\u043d\u0442\u0443, \u0442\u043e \u043f\u0440\u043e\u0444\u0438\u043b\u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435:<\/p>\n<ul>\n<li>\u041f\u0440\u043e\u0444\u0438\u043b\u044c \u0412\u0438\u0434\u0435\u043e, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0435\u0441\u044c \u0438 \u0441\u0442\u0440\u0438\u043c\u0438\u0442\u0435 \u0442\u043e\u0442 \u0438\u043b\u0438 \u0438\u043d\u043e\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442. \u0421\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u043a\u0430\u043a \u043d\u0430 \u0432\u0435\u0440\u0445\u043d\u0435\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0435. \u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443: \u043d\u0438\u0437\u043a\u0438\u0435 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u0438 \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u044f \u0431\u0438\u0442\u0440\u0435\u0439\u0442\u0430.<\/li>\n<li>\u0412\u0430\u0440\u0438\u0430\u043d\u0442 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 \u041b\u0435\u043d\u0442\u044b: \u0438\u043c\u043f\u0443\u043b\u044c\u0441\u043d\u0430\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445, \u0444\u043e\u043d\u043e\u0432\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u043f\u0440\u043e\u043c\u0435\u0436\u0443\u0442\u043a\u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u044f. \u0422\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u043a \u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0443: \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0438 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0438\u0437\u0438\u0440\u0443\u044e\u0442\u0441\u044f, \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u0432\u044b\u0448\u0435 \u0444\u043e\u043d\u043e\u0432\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432, \u0435\u0441\u0442\u044c \u043e\u0442\u043c\u0435\u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438.<\/li>\n<\/ul>\n<p>  \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b \u043d\u0443\u0436\u043d\u043e \u043d\u0430 \u0441\u0430\u043c\u044b\u0445 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 HTTP.<\/p>\n<h3>HTTP 1.1 \u0438 HTTP 2.0<\/h3>\n<p>  \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0441\u0442\u0435\u043a 2000-\u0445 \u0432\u044b\u0433\u043b\u044f\u0434\u0435\u043b \u043a\u0430\u043a HTTP 1.1 \u043f\u043e\u0432\u0435\u0440\u0445 SSL. \u0421\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0441\u0442\u0435\u043a \u2014 \u044d\u0442\u043e HTTP 2.0, TLS 1.3, \u0438 \u0432\u0441\u0435 \u044d\u0442\u043e \u043f\u043e\u0432\u0435\u0440\u0445 TCP.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/k9\/yp\/ng\/k9ypngmth9i_4m8pqzx5n-kipf0.jpeg\"><\/p>\n<p>  \u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0435 \u043e\u0442\u043b\u0438\u0447\u0438\u0435 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e HTTP 1.1 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u0439 \u043f\u0443\u043b \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u043a \u043e\u0434\u043d\u043e\u043c\u0443 \u0434\u043e\u043c\u0435\u043d\u0443, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u0435\u043b\u0430\u044e\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0439 \u0434\u043e\u043c\u0435\u043d \u0434\u043b\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a, \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435. HTTP 2.0 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u0442 \u043e\u0434\u043d\u043e \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0435 \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/uo\/aj\/uu\/uoajuubf2yfz_femlhzhvq6buty.jpeg\"><\/p>\n<p>  HTTP 1.1 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u0430\u043a: \u0434\u0435\u043b\u0430\u0435\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0434\u0435\u043b\u0430\u0435\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/1y\/nv\/xd\/1ynvxdxpfkluduputf3szhfi75a.jpeg\"><\/p>\n<p>  \u041e\u0431\u044b\u0447\u043d\u043e \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0438\u043b\u0438 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u0443\u043b\u0438\u0442, \u0442\u043e \u0435\u0441\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a, \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e API, \u0438 \u0432\u044b \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0435 \u0437\u0430\u043f\u0440\u043e\u0441 \u0437\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u043e\u0439, \u0437\u0430 API, \u0437\u0430 \u0432\u0438\u0434\u0435\u043e \u0438 \u0442\u0430\u043a \u0434\u0430\u043b\u0435\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/cn\/ub\/kl\/cnubklsdxjrcuwpamcckap5_uu8.jpeg\"><\/p>\n<p>  \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u2014 \u043a\u043e\u043d\u043a\u0443\u0440\u0435\u043d\u0446\u0438\u044f. \u0412\u044b \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u043c\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438. \u0412\u044b \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442\u0435, \u0447\u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0443\u0436\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043e\u043d \u043f\u0440\u043e\u043b\u0438\u0441\u0442\u0430\u043b, \u043d\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c.<\/p>\n<blockquote><p>\u0421 HTTP 1.1 \u0432\u044b \u0432\u0441\u0435 \u0440\u0430\u0432\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0435 \u0442\u043e, \u0447\u0442\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u043b\u0438, \u043e\u0442\u043c\u0435\u043d\u0438\u0442\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0442\u0440\u0443\u0434\u043d\u043e.<\/p><\/blockquote>\n<p>  \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0448\u0430\u043d\u0441 \u2014 socket close \u2014 \u044d\u0442\u043e \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435. \u0414\u0430\u043b\u044c\u0448\u0435 \u0443\u0432\u0438\u0434\u0438\u043c, \u043f\u043e\u0447\u0435\u043c\u0443 \u044d\u0442\u043e \u043f\u043b\u043e\u0445\u043e.<\/p>\n<h3>\u041e\u0442\u043b\u0438\u0447\u0438\u044f HTTP 2.0<\/h3>\n<p>  HTTP 2.0 \u0440\u0435\u0448\u0430\u0435\u0442 \u044d\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b:<\/p>\n<ul>\n<li>\u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0439, \u0441\u0436\u0430\u0442\u0438\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u043e\u0432;<\/li>\n<li>\u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445;<\/li>\n<li>\u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0438\u0437\u0430\u0446\u0438\u044f;<\/li>\n<li>\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430 \u043e\u0442\u043c\u0435\u043d\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438;<\/li>\n<li>server push<\/li>\n<\/ul>\n<p>  \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0431\u043e\u043b\u0435\u0435 \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e \u0432\u0430\u0436\u043d\u044b\u0435 \u0434\u043b\u044f \u043d\u0430\u0441 \u043c\u043e\u043c\u0435\u043d\u0442\u044b.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/tb\/nl\/ur\/tbnlurtfdzcqaxpy6_hgcphtye0.jpeg\"><\/p>\n<p>  \u0417\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443 \u0438 API. \u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0441\u0440\u0430\u0437\u0443 \u043e\u0442\u0434\u0430\u0435\u0442\u0441\u044f, API \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u0438\u043b\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0432\u0440\u0435\u043c\u044f. \u041e\u0442\u0434\u0430\u043b\u0441\u044f API \u2014 \u043e\u0442\u0434\u0430\u043b\u0430\u0441\u044c \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430. \u0412\u0441\u0435 \u044d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e. <strong>\u0412\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0440\u0430\u043d\u044c\u0448\u0435.<\/strong><\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/gw\/ws\/wp\/gwwswpducmtjv2huz9jprbhwpha.jpeg\"><\/p>\n<p>  <strong>Server push<\/strong> \u2014 \u044d\u0442\u043e \u0442\u0430\u043a\u0430\u044f \u0448\u0442\u0443\u043a\u0430, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u043f\u043e\u043f\u0440\u043e\u0441\u0438\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0435 \u0442\u0438\u043f\u0430 API, \u043d\u043e \u0435\u0449\u0435 \u0432 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u0437\u0430\u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u043e\u0447\u043d\u043e \u043f\u043e\u043d\u0430\u0434\u043e\u0431\u044f\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043b\u0435\u043d\u0442\u044b.<\/p>\n<p>  \u0415\u0449\u0435 \u0435\u0441\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0430 <strong>Reset stream<\/strong>, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u0430\u043c, \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u0435 \u043c\u0435\u0436\u0434\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u043c\u0438 \u0438 \u0442.\u0434. \u0414\u043b\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0433\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0441 \u0435\u0451 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043d\u0435 \u0440\u0430\u0437\u0440\u044b\u0432\u0430\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435.<\/p>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0431\u0443\u0434\u0435\u043c \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c TCP \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445:<\/p>\n<ul>\n<li>\u041f\u0440\u043e\u0444\u0438\u043b\u044f\u0445 \u0441\u0435\u0442\u0438: Wi-Fi, 3G, LTE.<\/li>\n<li>\u041f\u0440\u043e\u0444\u0438\u043b\u044f\u0445 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f: c\u0442\u0440\u0438\u043c\u0438\u043d\u0433 (\u0432\u0438\u0434\u0435\u043e), \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0441 \u043e\u0442\u043c\u0435\u043d\u043e\u0439 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 (HTTP\/2) \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430 \u043b\u0435\u043d\u0442\u044b.\u00a0<\/li>\n<\/ul>\n<p>  <\/p>\n<h3>\u041c\u043e\u0434\u0435\u043b\u044c \u0431\u0435\u0437 \u043f\u043e\u0442\u0435\u0440\u044c<\/h3>\n<p>  \u041d\u0430\u0447\u043d\u0435\u043c \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u0441 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u0441\u0435\u0442\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u0432\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430: round-trip time \u0438 bandwidth.<\/p>\n<p>  <b>RTT<\/b> \u2014 \u044d\u0442\u043e ping, \u0432\u0440\u0435\u043c\u044f \u043e\u0431\u043e\u0440\u043e\u0442\u0430 \u043f\u0430\u043a\u0435\u0442\u0430, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f acknowledgement \u0438\u043b\u0438 \u0432\u0440\u0435\u043c\u044f \u044d\u0445\u0430 \u043d\u0430 response.<\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c <b>bandwidth<\/b> \u2014 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u0443\u044e \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u044c \u0441\u0435\u0442\u0438 \u2014 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0430\u0447\u043a\u0443 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0438 \u0441\u0447\u0438\u0442\u0430\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0438\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043d\u0430 \u043a\u0430\u043a\u043e\u043c-\u0442\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/6r\/du\/2l\/6rdu2lwrhgztjekbwsfgvtuwdec.jpeg\"><\/p>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c \u0441 \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u043c\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c\u0438, \u0442\u043e, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0435\u0441\u0442\u044c acknowledgement \u2014 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0430\u043a\u0435\u0442\u044b \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u043e \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438.<\/p>\n<h3>\u0417\u0430\u0434\u0430\u0447\u0430 \u043f\u0440\u043e \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442<\/h3>\n<p>  \u041d\u0430 \u0437\u0430\u0440\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043d\u0430\u0448\u0435\u0433\u043e \u0432\u0438\u0434\u0435\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u0432 2013 \u0433\u043e\u0434\u0443 \u043c\u043e\u0439 \u0434\u0440\u0443\u0433 \u043f\u043e\u0435\u0445\u0430\u043b \u0432 \u041a\u0430\u043b\u0438\u0444\u043e\u0440\u043d\u0438\u044e \u0438 \u0440\u0435\u0448\u0438\u043b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u0441\u0435\u0440\u0438\u044e \u0441\u0432\u043e\u0435\u0433\u043e \u043b\u044e\u0431\u0438\u043c\u043e\u0433\u043e \u0441\u0435\u0440\u0438\u0430\u043b\u0430 \u043d\u0430 \u041e\u0434\u043d\u043e\u043a\u043b\u0430\u0441\u0441\u043d\u0438\u043a\u0430\u0445. \u0423 \u043d\u0435\u0433\u043e \u0431\u044b\u043b RTT \u0432 250 \u043c\u0441, \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0439 Wi-Fi 400 \u041c\u0431\u0438\u0442\/\u0441 \u0432 \u043a\u0430\u043c\u043f\u0443\u0441\u0435 Google, \u043e\u043d \u0445\u043e\u0442\u0435\u043b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043d\u043e\u0432\u0443\u044e \u0441\u0435\u0440\u0438\u044e \u0432\u0441\u0435\u0433\u043e \u043b\u0438\u0448\u044c \u0432 FullHD.<\/p>\n<p>  \u041a\u0430\u043a \u0432\u044b \u0434\u0443\u043c\u0430\u0435\u0442\u0435, \u0441\u043c\u043e\u0433 \u043b\u0438 \u043e\u043d \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0438\u0434\u0435\u043e? \u041e\u0442\u0432\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u0438\u0442 \u043e\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 send\/recv buffer \u043d\u0430 \u043d\u0430\u0448\u0438\u0445 \u0441\u0435\u0440\u0432\u0435\u0440\u0430\u0445.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/qf\/sk\/qj\/qfskqjvyygm-klersirdlmfdreo.jpeg\"><\/p>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a \u0443 \u043d\u0430\u0441 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0441 acknowledgement, \u0442\u043e \u0432\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u043e \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0435, \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432 \u0431\u0443\u0444\u0435\u0440\u0435. \u0415\u0441\u043b\u0438 send buffer \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d 128 \u041a\u0431, \u0442\u043e \u044d\u0442\u0438 128 \u041a\u0431 \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u0437\u0430 RTT, \u043c\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043d\u0435 \u043c\u043e\u0436\u0435\u043c. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u043e\u0442 \u043d\u0430\u0448\u0435\u0439 \u0441\u0435\u0442\u0438 \u0432 400 \u041c\u0431\u0438\u0442\/\u0441 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c 4 \u041c\u0431\u0438\u0442\/\u0441. \u042d\u0442\u043e\u0433\u043e \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u043e\u043d\u043b\u0430\u0439\u043d \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0438\u0434\u0435\u043e \u0432 FullHD.<\/p>\n<p>  \u0422\u043e\u0433\u0434\u0430 \u044f \u043f\u043e\u0442\u044e\u043d\u0438\u043b \u0440\u0430\u0437\u043c\u0435\u0440 \u0431\u0443\u0444\u0435\u0440\u0430 \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043b, \u043a\u0430\u043a \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043e\u0442\u0434\u0430\u0447\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0441\u0435\u0433\u043c\u0435\u043d\u0442\u0430 \u0432\u0438\u0434\u0435\u043e \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0431\u0443\u0444\u0435\u0440\u0430. \u0421\u0440\u0430\u0437\u0443 \u043e\u0433\u043e\u0432\u043e\u0440\u044e\u0441\u044c, \u0447\u0442\u043e recv buffer \u043f\u043e\u0434\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u043b\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438, \u0442.\u0435. \u0442\u043e, \u0447\u0442\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u043b \u0441\u0435\u0440\u0432\u0435\u0440, \u043a\u043b\u0438\u0435\u043d\u0442 \u0432\u0441\u0435\u0433\u0434\u0430 \u043c\u043e\u0433 \u043f\u0440\u0438\u043d\u044f\u0442\u044c.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/vj\/yi\/ef\/vjyiefcatf55inm_ka-0b1vpake.jpeg\"><\/p>\n<blockquote><p>\u041e\u0447\u0435\u0432\u0438\u0434\u043d\u044b\u0439 \u0440\u0435\u0446\u0435\u043f\u0442 TCP: \u0435\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0451\u0442\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0441\u043a\u043e\u0440\u043e\u0441\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0440\u0430\u0441\u0441\u0442\u043e\u044f\u043d\u0438\u044f, \u043d\u0443\u0436\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0431\u0443\u0444\u0435\u0440 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438.<\/p><\/blockquote>\n<p>  \u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u0432\u0441\u0435 \u043d\u0435\u043f\u043b\u043e\u0445\u043e. \u041c\u043e\u0436\u043d\u043e \u0437\u0430\u0439\u0442\u0438 \u043d\u0430 \u0441\u0435\u0440\u0432\u0438\u0441 fast.com, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043c\u0435\u0440\u044f\u0435\u0442 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0432\u0430\u0448\u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0434\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 Netflix. \u0418\u0437 \u043e\u0444\u0438\u0441\u0430 \u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c 210 \u041c\u0431\u0438\u0442\/\u0441. \u0410 \u043f\u043e\u0442\u043e\u043c \u0447\u0435\u0440\u0435\u0437 net shaper \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u0438 \u0437\u0430\u0448\u0435\u043b \u043d\u0430 \u044d\u0442\u043e\u0442 \u0441\u0430\u0439\u0442 \u0435\u0449\u0435 \u0440\u0430\u0437. \u041c\u0430\u0433\u0438\u044f \u2014 \u044f \u043f\u043e\u043b\u0443\u0447\u0438\u043b 4 \u041c\u0431\u0438\u0442\/\u0441 \u0440\u043e\u0432\u043d\u043e.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/xx\/sl\/nr\/xxslnr1m5syfgyludnghfp7d6yw.jpeg\"><\/p>\n<p>  \u041a\u0430\u043a \u044f \u043d\u0438 \u043a\u0440\u0443\u0442\u0438\u043b, \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c \u043e\u0442 Netflix \u0434\u043e\u0431\u0438\u0442\u044c\u0441\u044f \u0431\u0443\u0444\u0435\u0440\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 128 \u041a\u0431\u0430\u0439\u0442.<\/p>\n<h3>\u0420\u0430\u0437\u043c\u0435\u0440 \u0431\u0443\u0444\u0435\u0440\u0430<\/h3>\n<p>  \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0441 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c \u0431\u0443\u0444\u0435\u0440\u0430, \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 On-the-fly packets.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/cl\/ym\/ws\/clymwsmlyixceklwgevvv00izru.jpeg\"><\/p>\n<p>  \u0415\u0441\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0441\u0435\u0442\u0438:<\/p>\n<ul>\n<li>\u043f\u0430\u043a\u0435\u0442\u044b 1 \u0438 2 \u0443\u0436\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u044b, \u0434\u043b\u044f \u043d\u0438\u0445 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435;<\/li>\n<li>\u043f\u0430\u043a\u0435\u0442\u044b 3, 4, 5, 6 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u044b, \u043d\u043e \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d (on-the-fly packets);<\/li>\n<li>\u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438.<\/li>\n<\/ul>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/if\/oh\/m0\/ifohm0lal6uotlodse6vrehnoqc.jpeg\"><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0432 On-the-fly \u0440\u0430\u0432\u043d\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0443 \u0431\u0443\u0444\u0435\u0440\u0430, \u0442\u043e \u043e\u043d \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0435\u0442\u044c \u0433\u043e\u043b\u043e\u0434\u0430\u0435\u0442, \u043d\u0435 \u0434\u043e \u043a\u043e\u043d\u0446\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f.<\/p>\n<p>  \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f \u2014 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0431\u0443\u0444\u0435\u0440. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0440\u0430\u0441\u043f\u0443\u0445\u0430\u043d\u0438\u0435 \u0431\u0443\u0444\u0435\u0440\u0430. \u0427\u0435\u043c \u044d\u0442\u043e \u043f\u043b\u043e\u0445\u043e?<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/m1\/4y\/fk\/m14yfka8426esfgz8a8xeglxko4.jpeg\"><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c \u043f\u0440\u043e \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u0432 \u044d\u0442\u043e \u0436\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0438 API, \u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u0432\u0441\u044f \u043e\u0433\u0440\u043e\u043c\u043d\u0430\u044f \u043c\u0435\u0433\u0430\u0431\u0430\u0439\u0442\u043d\u0430\u044f \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0432\u043b\u0435\u0437\u043b\u0430 \u0432 \u0431\u0443\u0444\u0435\u0440, \u0430 \u043c\u044b \u043f\u044b\u0442\u0430\u0435\u043c\u0441\u044f \u0437\u0430\u043f\u0438\u0445\u043d\u0443\u0442\u044c \u0435\u0449\u0435 \u0438 \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u044b\u0439 API, \u0442\u043e \u0431\u0443\u0444\u0435\u0440 \u0440\u0430\u0441\u043f\u0443\u0445\u0430\u0435\u0442. \u041f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043e\u0447\u0435\u043d\u044c \u0434\u043e\u043b\u0433\u043e \u0436\u0434\u0430\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0443\u0439\u0434\u0435\u0442.<\/p>\n<p>  \u041f\u0440\u043e\u0441\u0442\u044b\u043c \u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0431\u0443\u0444\u0435\u0440\u0430. \u0421\u0435\u0439\u0447\u0430\u0441 \u044d\u0442\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u043d\u0430 \u043c\u043d\u043e\u0433\u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u0445 \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/pm\/dj\/rj\/pmdjrjtekrknmzgogzn6bzkgplq.jpeg\"><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0441\u0435\u0439\u0447\u0430\u0441 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e \u043c\u043d\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0431\u0443\u0444\u0435\u0440 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0443\u0441\u043a\u043e\u0440\u044f\u0435\u0442\u0441\u044f, \u0440\u0430\u0437\u043c\u0435\u0440 \u0431\u0443\u0444\u0435\u0440\u0430 \u0440\u0430\u0441\u0442\u0435\u0442, \u0432\u0440\u043e\u0434\u0435 \u0431\u044b \u0432\u0441\u0435 \u0437\u0434\u043e\u0440\u043e\u0432\u043e.<\/p>\n<p>  \u041d\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430. \u0415\u0441\u043b\u0438 \u0431\u0443\u0444\u0435\u0440 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u043b\u0441\u044f, \u0435\u0433\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c. \u042d\u0442\u043e \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430. \u0415\u0441\u043b\u0438 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0441\u0435\u0434\u0430\u0435\u0442, \u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0442\u043e \u0441\u0430\u043c\u043e\u0435 \u0440\u0430\u0441\u043f\u0443\u0445\u0430\u043d\u0438\u0435 \u0431\u0443\u0444\u0435\u0440\u0430. \u0411\u0443\u0444\u0435\u0440 \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0438 \u0432\u0435\u0441\u044c \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d, \u043d\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0436\u0434\u0430\u0442\u044c, \u043f\u043e\u043a\u0430 \u0432\u0441\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u044f\u0442\u0441\u044f \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043c\u044b \u043f\u0438\u0448\u0435\u043c \u0441\u0432\u043e\u0439 UDP-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u0442\u043e \u0432\u0441\u0435 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u2014 \u0443 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0431\u0443\u0444\u0435\u0440\u0443.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ow\/lz\/5m\/owlz5m0em5dqvtz3ni14pgc3khm.jpeg\"><\/p>\n<p>  \u0415\u0441\u043b\u0438 TCP \u0432 \u0442\u0430\u043a\u0438\u0445 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f\u0445 \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043a\u043e\u043d\u0435\u0446, \u0438 \u0432\u044b \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0442\u043e \u0432 self-made \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043c\u0435\u0449\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0432\u043f\u0435\u0440\u0435\u0434, \u0441\u0440\u0430\u0437\u0443 \u0436\u0435 \u0437\u0430 On-the-fly packets.<\/p>\n<p>  \u0410 \u0435\u0441\u043b\u0438 \u043f\u0440\u0438\u0434\u0435\u0442 cancel, \u0438 \u043a\u043b\u0438\u0435\u043d\u0442 \u0441\u043a\u0430\u0436\u0435\u0442, \u0447\u0442\u043e \u044d\u0442\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043d\u0443\u0436\u043d\u0430, \u0435\u043c\u0443 \u043d\u0443\u0436\u043d\u044b API \u0434\u0430\u043d\u043d\u044b\u0435, \u043e\u043d \u043f\u0440\u043e\u043b\u0438\u0441\u0442\u0430\u043b \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u0434\u0430\u043b\u044c\u0448\u0435, \u043c\u043e\u0436\u043d\u043e \u0432\u0441\u0435 \u044d\u0442\u043e \u0432\u044b\u0431\u0440\u043e\u0441\u0438\u0442\u044c \u0438\u0437 \u0431\u0443\u0444\u0435\u0440\u0430 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043d\u0443\u0436\u043d\u043e\u0435.<\/p>\n<p>  \u041a\u0430\u043a \u044d\u0442\u043e \u0434\u0435\u043b\u0430\u0435\u0442\u0441\u044f? \u0418\u0437\u0432\u0435\u0441\u0442\u043d\u043e, \u0447\u0442\u043e \u0447\u0442\u043e\u0431\u044b \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u043e\u0439, \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c acknowledgements, \u043d\u0443\u0436\u0435\u043d \u043a\u0430\u043a\u043e\u0439-\u0442\u043e sequence_id \u043f\u0430\u043a\u0435\u0442\u043e\u0432. Sequence_id \u043c\u044b \u0432\u044b\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f on-the-fly packets, \u0442\u043e \u0435\u0441\u0442\u044c \u0432\u044b\u0434\u0430\u0435\u043c \u0435\u0433\u043e \u0442\u043e\u043b\u044c\u043a\u043e, \u043a\u043e\u0433\u0434\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0430\u043a\u0435\u0442\u044b. \u0412\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0432 \u0431\u0443\u0444\u0435\u0440\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0432\u0438\u0433\u0430\u0442\u044c \u043a\u0430\u043a \u0445\u043e\u0442\u0438\u043c \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u044b \u043d\u0435 \u0443\u0448\u043b\u0438.<\/p>\n<p>  <strong>\u0412\u044b\u0432\u043e\u0434: <\/strong>\u0432 TCP \u0431\u0443\u0444\u0435\u0440 \u043d\u0430\u0434\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c, \u043f\u043e\u0439\u043c\u0430\u0442\u044c \u0431\u0430\u043b\u0430\u043d\u0441, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u0443\u043f\u0438\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0441\u0435\u0442\u044c \u0438 \u043d\u0435 \u0440\u0430\u0437\u0434\u0443\u0432\u0430\u0442\u044c \u0431\u0443\u0444\u0435\u0440. \u0414\u043b\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0433\u043e UDP-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u0432\u0441\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u2014 \u044d\u0442\u0438\u043c \u043c\u043e\u0436\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c.<\/p>\n<h3>\u041c\u043e\u0434\u0435\u043b\u044c \u0441\u0435\u0442\u0438 \u0441 \u043f\u043e\u0442\u0435\u0440\u044f\u043c\u0438<\/h3>\n<p>  \u041f\u0435\u0440\u0435\u0434\u0432\u0438\u0433\u0430\u0435\u043c\u0441\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0432\u044b\u0448\u0435, \u0441\u0435\u0442\u044c \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0447\u0443\u0442\u044c-\u0447\u0443\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u0435\u0435, \u0432 \u043d\u0435\u0439 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f packet loss. \u0414\u043b\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439 \u044d\u0442\u043e \u043e\u0431\u044b\u0447\u043d\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f. \u0427\u0430\u0441\u0442\u044c \u0438\u0437 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043d\u0435 \u0434\u043e\u0445\u043e\u0434\u0438\u0442 \u0434\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430. \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f retransmit \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u0430\u043a:<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/tg\/z7\/tv\/tgz7tvr6zchscr49onnqepvjvje.jpeg\"><\/p>\n<p>  \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0430\u043a\u0435\u0442\u044b, \u043d\u0430 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0430\u043a\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 acknowledgement. \u0415\u0441\u043b\u0438 \u0447\u0435\u0440\u0435\u0437 Retransmit timeout (RTO) \u0440\u0430\u0432\u043d\u043e\u043c\u0443 RTT \u043f\u043b\u044e\u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u044b \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u043d\u0435\u0442, \u0442\u043e \u043f\u0435\u0440\u0435\u043f\u043e\u0441\u044b\u043b\u0430\u0435\u0442 \u043f\u0430\u043a\u0435\u0442.<\/p>\n<p>  \u0412\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043a \u043a\u0440\u0438\u0432\u043e\u0439 \u043d\u0435\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 TCP, \u043a\u043e\u0433\u0434\u0430 \u0442\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u0432\u0441\u0435\u0433\u043e 5% \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0430 \u0443\u0442\u0438\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0435\u0442\u0438 \u0440\u0430\u0432\u043d\u0430 50%.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ob\/vi\/qf\/obviqfawoiesuiex2yqf_idbvei.jpeg\"><\/p>\n<p>  \u041f\u0440\u0438 retransmit, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0441\u0442\u043e \u0434\u043e\u0441\u044b\u043b\u0430\u0435\u0442 \u043f\u0430\u043a\u0435\u0442\u044b, \u043c\u044b \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u044b \u043d\u0430\u0431\u043b\u044e\u0434\u0430\u0442\u044c \u0442\u0430\u043a\u0443\u044e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443. \u0427\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u0445, \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0435 Congestion control.<\/p>\n<h3>Congestion control<\/h3>\n<p>  \u0415\u0433\u043e \u043e\u0447\u0435\u043d\u044c \u0447\u0430\u0441\u0442\u043e \u043f\u0443\u0442\u0430\u044e\u0442 \u0441 flow control, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0438\u0445 \u043e\u0431\u0430.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/bc\/3k\/g9\/bc3kg9sb5k5sppttampxxaeaypu.jpeg\"><\/p>\n<ul>\n<li><b>Flow control<\/b> \u2014 \u044d\u0442\u043e \u043d\u0435\u043a\u0438\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0437\u0430\u0449\u0438\u0442\u044b \u043e\u0442 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0438. \u041f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044c \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u043d\u0430 \u043a\u0430\u043a\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0434\u0430\u043d\u043d\u044b\u0445 \u0443 \u043d\u0435\u0433\u043e \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0435\u0441\u0442\u044c \u043c\u0435\u0441\u0442\u043e \u0432 \u0431\u0443\u0444\u0435\u0440\u0435, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u0431\u044b\u043b \u0433\u043e\u0442\u043e\u0432 \u0438\u0445 \u043f\u0440\u0438\u043d\u044f\u0442\u044c. \u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0441\u0432\u0435\u0440\u0445 flow control \u0438\u043b\u0438 recv window, \u0442\u043e \u044d\u0442\u0438 \u043f\u0430\u043a\u0435\u0442\u044b \u043f\u0440\u043e\u0441\u0442\u043e \u0431\u0443\u0434\u0443\u0442 \u0432\u044b\u043a\u0438\u043d\u0443\u0442\u044b. \u0417\u0430\u0434\u0430\u0447\u0430 flow control \u2014 \u044d\u0442\u043e back pressure \u043e\u0442 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438, \u0442\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u043e \u043a\u0442\u043e-\u0442\u043e \u043d\u0435 \u0443\u0441\u043f\u0435\u0432\u0430\u0435\u0442 \u0432\u044b\u0447\u0438\u0442\u044b\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435.<\/li>\n<li>\u0423 <b>congestion control<\/b> \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u043d\u043e \u0434\u0440\u0443\u0433\u0430\u044f \u0437\u0430\u0434\u0430\u0447\u0430. \u041c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b \u0441\u0445\u043e\u0436\u0438\u0435, \u043d\u043e \u0437\u0430\u0434\u0430\u0447\u0430 \u2014 \u0441\u043f\u0430\u0441\u0442\u0438 \u0441\u0435\u0442\u044c \u043e\u0442 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0438.<\/li>\n<\/ul>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/mf\/b5\/9d\/mfb59d5xp1ph_irk_rhkckjpbew.jpeg\"><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u0438\u0442\u044c \u0441\u0435\u0442\u044c, \u0442\u043e \u0432\u043f\u043e\u043b\u043d\u0435 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u0430 \u0442\u0430\u043a\u0430\u044f \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f: \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0447\u0430\u0441\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043d\u0435 \u0434\u043e\u0445\u043e\u0434\u0438\u0442, \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u0442\u0435 \u0435\u0449\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u0438 \u0432\u0441\u0435 \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u043f\u044f\u0442\u044c \u043f\u0440\u043e\u043f\u0430\u0434\u0430\u044e\u0442. \u0417\u0430 \u0442\u043e \u0447\u0442\u043e\u0431\u044b \u043b\u0438\u043c\u0438\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u044b\u0434\u0430\u0447\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u043f\u043e\u0440\u0446\u0438\u044f\u043c\u0438, \u043a\u0430\u043a \u0440\u0430\u0437 \u0438 \u043e\u0442\u0432\u0435\u0447\u0430\u0435\u0442 congestion control.<\/p>\n<p>  \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 TCP window.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/tj\/u0\/9s\/tju09sic8asow88ehlwsuyfjj6q.jpeg\"><\/p>\n<p>  \u042d\u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u0438\u043d\u0438\u043c\u0443\u043c \u0438\u0437 flow control \u0438 congestion control, \u0442\u043e \u0435\u0441\u0442\u044c \u044f\u0432\u043d\u043e \u043d\u0435 \u043f\u0440\u0435\u0432\u044b\u0448\u0430\u0435\u0442 \u044d\u0442\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0440\u044b:<\/p>\n<ul>\n<li>\u0415\u0441\u043b\u0438 TCP window = 1, \u0442\u043e \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u044e\u0442\u0441\u044f \u043a\u0430\u043a \u043d\u0430 \u0441\u0445\u0435\u043c\u0435 \u0441\u043b\u0435\u0432\u0430: \u0434\u043e\u0436\u0438\u0434\u0430\u0435\u043c\u0441\u044f acknowledgement, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0430\u043a\u0435\u0442 \u0438 \u0442.\u0434.\u00a0<\/li>\n<li>\u0415\u0441\u043b\u0438 TCP window = 4, \u0442\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0441\u0440\u0430\u0437\u0443 \u043f\u0430\u0447\u043a\u0443 \u0438\u0437 \u0447\u0435\u0442\u044b\u0440\u0435\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0434\u043e\u0436\u0438\u0434\u0430\u0435\u043c\u0441\u044f acknowledgement \u0438 \u0434\u0430\u043b\u044c\u0448\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u043c.<\/li>\n<\/ul>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0441\u0442\u0430\u0440\u0442\u0443\u0435\u0442, \u0440\u0430\u0437\u043c\u0435\u0440 \u043e\u043a\u043d\u043e \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f. \u0420\u0430\u0437\u043c\u0435\u0440 initial window \u0432 TCP = 10.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ar\/jf\/ja\/arjfjayzxewtfl-iulsna677qa0.jpeg\"><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0430 \u0441\u0435\u0442\u0438, \u043f\u0440\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u043f\u0430\u043a\u0435\u0442\u044b, \u0442\u043e \u043e\u043a\u043d\u043e \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0441\u0443\u0436\u0430\u0435\u0442\u0441\u044f \u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u0440\u0430\u0437\u0433\u043e\u043d\u044f\u0442\u044c\u0441\u044f \u0437\u0430\u043d\u043e\u0432\u043e.<\/p>\n<p>  \u041a\u0430\u043a \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u0435\u0442\u044c?<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/yj\/ck\/_t\/yjck_tpkuuze0pjmkdb5mhfrlri.jpeg\"><\/p>\n<ul>\n<li>\u041d\u0430 \u0432\u0435\u0440\u0445\u043d\u0435\u0439 \u0441\u0445\u0435\u043c\u0435 \u0441\u0435\u0442\u044c, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0432\u0441\u0435 \u0445\u043e\u0440\u043e\u0448\u043e. \u041f\u0430\u043a\u0435\u0442\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439, \u0441 \u0442\u0430\u043a\u043e\u0439 \u0436\u0435 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f.\u00a0<\/li>\n<li>\u0412\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0435 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437 \u0441\u0435\u0442\u0438: \u043f\u0430\u043a\u0435\u0442\u044b \u0438\u0434\u0443\u0442 \u0447\u0430\u0449\u0435, acknowledgements \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u0441 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439.\u00a0<\/li>\n<li>\u0414\u0430\u043d\u043d\u044b\u0435 \u043a\u043e\u043f\u044f\u0442\u0441\u044f \u0432 \u0431\u0443\u0444\u0435\u0440\u0430\u0445 \u043d\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u0430\u0445 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445 \u0438 \u0432 \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b, acknowledgements \u043d\u0430 \u044d\u0442\u0438 \u043f\u0430\u043a\u0435\u0442\u044b \u043d\u0435 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 (\u043d\u0438\u0436\u043d\u044f\u044f \u0441\u0445\u0435\u043c\u0430).<\/li>\n<\/ul>\n<p>  \u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u044d\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0442\u0430\u043a.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/jp\/6c\/di\/jp6cdirmtiqosalz9vw-mvkjkei.jpeg\"><\/p>\n<p>  \u041c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440 \u043d\u0435\u043c\u043d\u043e\u0436\u043a\u043e \u0443\u043c\u043d\u044b\u0439, \u043e\u043d \u043d\u0435 \u0434\u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0437\u043a\u0438, \u0438 \u0441\u0440\u0430\u0437\u0443 \u0434\u0440\u043e\u043f\u0430\u0435\u0442. \u0423 \u043d\u0435\u0433\u043e \u0435\u0441\u0442\u044c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0442\u0438\u043a\u0435\u0442\u043e\u0432: \u043e\u043d \u0432\u044b\u0434\u0430\u0435\u0442 \u0442\u0438\u043a\u0435\u0442 \u043d\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0443, \u0435\u0441\u043b\u0438 \u043a\u0430\u043d\u0430\u043b \u043e\u0441\u0432\u043e\u0431\u043e\u0434\u0438\u0442\u0441\u044f \u0438 \u0442.\u0434. \u0421\u0443\u0442\u044c \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043e\u043d \u0434\u0440\u043e\u043f\u0430\u0435\u0442 \u043f\u0430\u043a\u0435\u0442\u044b \u0447\u0443\u0442\u044c \u0440\u0430\u043d\u044c\u0448\u0435. \u0422\u043e\u0433\u0434\u0430 \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 congestion control, \u0441\u0445\u043b\u043e\u043f\u044b\u0432\u0430\u0435\u0442 TCP window, \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440 \u043f\u0430\u0434\u0430\u0435\u0442, \u0438 \u0432\u0441\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/__\/w0\/zg\/__w0zgqdiycta2u7yla0svmhof4.jpeg\"><\/p>\n<p>  \u0422\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0441\u0442\u0430\u0440\u044b\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u044b congestion control, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e \u0441\u0435\u0442\u044c \u2014 \u044d\u0442\u043e \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0441\u0432\u0435\u0440\u0445\u0443. \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043b\u044e\u0431\u043e\u0439 packet loss \u2014 \u0441\u043b\u0435\u0434\u0441\u0442\u0432\u0438\u0435 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0441\u0435\u0442\u044c \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0435\u043d\u0430. \u0423 \u043d\u0430\u0441 \u0435\u0441\u0442\u044c \u0441\u0435\u0442\u0438 \u043a\u0430\u043a \u043d\u0430 \u043d\u0438\u0436\u043d\u0435\u0439 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0435, \u043f\u0440\u043e \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e \u0432 \u043d\u0438\u0445 \u043f\u043e\u0442\u0435\u0440\u044f \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0437\u043d\u0430\u0447\u0438\u0442 \u2014 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0442\u0430\u043a\u0430\u044f \u0441\u0435\u0442\u044c, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043e\u043d\u0430 \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u0430\u044f.<\/p>\n<p>  \u041f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e TCP \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u043b\u0441\u044f, \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f, \u0438 \u043f\u0435\u0440\u0432\u044b\u0439 congestion control \u043e\u043f\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043b \u0442\u043e\u043b\u044c\u043a\u043e loss-\u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439. \u041f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c congestion control \u043d\u0430 loss delay, \u0442\u043e \u0435\u0441\u0442\u044c \u0438 \u043d\u0430 \u043f\u043e\u0442\u0435\u0440\u0438, \u0438 \u043d\u0430 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/44\/no\/5k\/44no5kuc601zfx2h8dm_kwoqete.jpeg\"><\/p>\n<p>  \u0420\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c:<\/p>\n<ul>\n<li><b>Cubic<\/b> \u2014 \u0434\u0435\u0444\u043e\u043b\u0442\u043d\u044b\u0439 Congestion Control \u0441 Linux 2.6. \u0418\u043c\u0435\u043d\u043d\u043e \u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043f\u0440\u0438\u043c\u0438\u0442\u0438\u0432\u043d\u043e: \u043f\u043e\u0442\u0435\u0440\u044f\u043b \u043f\u0430\u043a\u0435\u0442 \u2014 \u0441\u0445\u043b\u043e\u043f\u043d\u0443\u043b \u043e\u043a\u043d\u043e.<\/li>\n<li><b>BBR<\/b> \u2014 \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0439 Congestion Control, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438\u0434\u0443\u043c\u0430\u043b\u0438 \u0432 Google \u0432 2016 \u0433\u043e\u0434\u0443. \u0423\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u0431\u0443\u0444\u0435\u0440\u0430.<\/li>\n<\/ul>\n<p>  <\/p>\n<h3>BBR Congestion Control<\/h3>\n<p>  \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043d\u0430 Cubic \u0438 BBR \u043f\u043e \u043c\u0435\u0442\u043e\u0434\u0430\u043c feedback.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/7u\/5z\/zr\/7u5zzrcv5cr3eyywvi0ui75qxr8.jpeg\"><\/p>\n<p>  \u041d\u0430 \u0441\u0445\u0435\u043c\u0435 \u0441\u0432\u0435\u0440\u0445\u0443 \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u044b\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440 \u0438 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442 \u043a\u043e\u043f\u0438\u0442\u044c\u0441\u044f \u2014 \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 acknowledgement \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0432\u0441\u0451 \u0434\u043e\u043b\u044c\u0448\u0435 \u0438 \u0434\u043e\u043b\u044c\u0448\u0435 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435:<\/p>\n<ul>\n<li>BBR \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442, \u0447\u0442\u043e \u0438\u0434\u0435\u0442 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0431\u0443\u0444\u0435\u0440\u0430, \u0438 \u043f\u044b\u0442\u0430\u0435\u0442\u0441\u044f \u0441\u0445\u043b\u043e\u043f\u043d\u0443\u0442\u044c \u043e\u043a\u043d\u043e, \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043d\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440.\u00a0<\/li>\n<li>Cubic \u0434\u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0442\u0435\u0440\u0438 \u043f\u0430\u043a\u0435\u0442\u0430 \u0438 \u043f\u043e\u0441\u043b\u0435 \u044d\u0442\u043e\u0433\u043e \u0441\u0445\u043b\u043e\u043f\u044b\u0432\u0430\u0435\u0442 \u043e\u043a\u043d\u043e.<\/li>\n<\/ul>\n<p>  \u041d\u0438\u0436\u0435 \u0433\u0440\u0430\u0444\u0438\u043a \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f, \u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0440\u0430\u0437\u043d\u044b\u0445 Congestion Control.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/xn\/l5\/c_\/xnl5c_gfgpby_vchj-lt5ftptta.jpeg\"><\/p>\n<p>  BBR \u0432\u043d\u0430\u0447\u0430\u043b\u0435 \u043f\u0440\u043e\u0449\u0443\u043f\u044b\u0432\u0430\u0435\u0442 \u0432\u0440\u0435\u043c\u044f round-trip, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0431\u043e\u043b\u044c\u0448\u0435 \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u043f\u043e\u0442\u043e\u043c \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u0442, \u0447\u0442\u043e \u0431\u0443\u0444\u0435\u0440 \u0437\u0430\u0431\u0438\u0432\u0430\u0435\u0442\u0441\u044f, \u0438 \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0443.<\/p>\n<p>  Cubic \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0430\u0433\u0440\u0435\u0441\u0441\u0438\u0432\u043d\u043e \u2014 \u043e\u043d \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0446\u0435\u043b\u0438\u043a\u043e\u043c \u0431\u0443\u0444\u0435\u0440, \u0438, \u043a\u043e\u0433\u0434\u0430 \u0431\u0443\u0444\u0435\u0440 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0438\u043b\u0441\u044f, packet loss \u0441\u043b\u0443\u0447\u0438\u043b\u0441\u044f, \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442 \u043e\u043a\u043d\u043e.<\/p>\n<p>  \u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e BBR \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0431\u044b \u0440\u0435\u0448\u0438\u0442\u044c \u0432\u0441\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u043d\u043e \u0432 \u0441\u0435\u0442\u044f\u0445 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 <strong>jitter<\/strong> \u2014 \u043f\u0430\u043a\u0435\u0442\u044b \u0438\u043d\u043e\u0433\u0434\u0430 \u0437\u0430\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f, \u0438\u043d\u043e\u0433\u0434\u0430 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u043f\u0430\u0447\u043a\u0430\u043c\u0438. \u0412\u044b \u0438\u0445 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0435 \u0441 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u043e\u0442\u043e\u0439, \u0430 \u043e\u043d\u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u0433\u0440\u0443\u043f\u043f\u0430\u043c\u0438. \u0415\u0449\u0435 \u0445\u0443\u0436\u0435, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0435 acknowledgements \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u043d\u0430 \u044d\u0442\u0438 \u043f\u0430\u043a\u0435\u0442\u044b, \u0438 \u043e\u043d\u0438 \u0442\u043e\u0436\u0435 \u043a\u0430\u043a-\u0442\u043e \u00abjitter\u2019\u044f\u0442\u0441\u044f\u00bb.<\/p>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a \u044f \u043e\u0431\u0435\u0449\u0430\u043b, \u0447\u0442\u043e \u0432\u0441\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0442\u0440\u043e\u0433\u0430\u0442\u044c \u0440\u0443\u043a\u0430\u043c\u0438, \u0442\u043e \u043f\u0438\u043d\u0433\u0443\u0435\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441\u0430\u0439\u0442 <a href=\"https:\/\/www.highload.ru\/moscow\/2019\/\">HighLoad++<\/a>, \u0441\u043c\u043e\u0442\u0440\u0438\u043c ping \u0438 \u0441\u0447\u0438\u0442\u0430\u0435\u043c jitter \u043c\u0435\u0436\u0434\u0443 \u043f\u0430\u043a\u0435\u0442\u0430\u043c\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/be\/pu\/fj\/bepufjz6mtygfhqppfkeyvi3phq.jpeg\"><\/p>\n<p>  \u0412\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u043f\u0430\u043a\u0435\u0442\u044b \u043f\u0440\u0438\u0445\u043e\u0434\u044f\u0442 \u043d\u0435\u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u043e, \u0441\u0440\u0435\u0434\u043d\u0438\u0439 jitter \u043f\u043e\u0440\u044f\u0434\u043a\u0430 50 \u043c\u0441. \u0415\u0441\u0442\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e, BBR \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043e\u0448\u0438\u0431\u0438\u0442\u044c\u0441\u044f.<\/p>\n<p>  BBR \u0445\u043e\u0440\u043e\u0448 \u0442\u0435\u043c, \u0447\u0442\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u0430\u0435\u0442: \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0439 congestion loss, \u043f\u043e\u0442\u0435\u0440\u044e \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0432 \u0432\u0438\u0434\u0443 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0431\u0443\u0444\u0435\u0440\u043e\u0432 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432, \u0438 random loss \u0438\u0437-\u0437\u0430 \u043f\u043b\u043e\u0445\u043e\u0439 \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u043e\u0439 \u0441\u0435\u0442\u0438. \u041d\u043e \u043f\u043b\u043e\u0445\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0433\u043e jitter. \u041a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0435\u043c\u0443 \u043f\u043e\u043c\u043e\u0447\u044c?<\/p>\n<h3>\u041a\u0430\u043a \u0441\u0434\u0435\u043b\u0430\u0442\u044c Congestion control \u043b\u0443\u0447\u0448\u0435<\/h3>\n<p>  \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0443 TCP \u0432 acknowledgement \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u043c\u0430\u043b\u043e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438, \u0432 \u043d\u0435\u0439 \u0435\u0441\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u043e, \u043a\u0430\u043a\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u043e\u043d \u0432\u0438\u0434\u0435\u043b. \u0415\u0441\u0442\u044c \u0435\u0449\u0435 selective acknowledgement, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u0441\u044f, \u043a\u0430\u043a\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u044b, \u043a\u0430\u043a\u0438\u0435 \u0435\u0449\u0435 \u043d\u0435 \u0434\u043e\u0448\u043b\u0438. \u041d\u043e \u0438 \u044d\u0442\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/fs\/9j\/gm\/fs9jgmfd67brdk7wynu6sqjprk8.jpeg\"><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u043c\u0435\u0435\u0442\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0434\u0443\u0442\u044c acknowledgement, \u0442\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u0435\u0449\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0432\u0441\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0430 \u2014 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u044d\u0442\u0438\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u043d\u043e \u0438 \u043f\u0440\u0438\u0445\u043e\u0434\u0430 \u0438\u0445 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442. \u0422\u043e \u0435\u0441\u0442\u044c, \u043f\u043e \u0441\u0443\u0442\u0438, \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0441\u043e\u0431\u0440\u0430\u0442\u044c jitter \u043a\u043b\u0438\u0435\u043d\u0442\u0430.<\/p>\n<p>  \u041f\u043e\u0447\u0435\u043c\u0443 \u0432\u043e\u043e\u0431\u0449\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0437\u0434\u0443\u0432\u0430\u0442\u044c acknowledgement? \u041f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u0441\u0435\u0442\u0438 \u0430\u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043e\u0431\u044b\u0447\u043d\u043e \u0443 3G \u0438\u043b\u0438 LTE 70% \u043f\u0440\u043e\u043f\u0443\u0441\u043a\u043d\u043e\u0439 \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0432\u044b\u0434\u0435\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 30% \u2014 \u043d\u0430 upload. \u041f\u0435\u0440\u0435\u0434\u0430\u0442\u0447\u0438\u043a \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f: upload \u2014 download, upload \u2014 download, \u0438 \u0432\u044b \u043d\u0430 \u044d\u0442\u043e \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0432\u043b\u0438\u044f\u0435\u0442\u0435. \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u0435\u0442\u0435, \u0442\u043e \u043e\u043d \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u0430\u0438\u0432\u0430\u0435\u0442. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u044b\u0435 \u0438\u0434\u0435\u0438, \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0439\u0442\u0435 acknowledgement, \u043d\u0435 \u0441\u0442\u0435\u0441\u043d\u044f\u0439\u0442\u0435\u0441\u044c \u2014 \u044d\u0442\u043e \u043d\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/cv\/0t\/gd\/cv0tgdq9vzirpmrvzx4optqe0ik.jpeg\"><\/p>\n<p>  \u041f\u0440\u0438\u043c\u0435\u0440 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e acknowledgement \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c jitter \u043d\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0443 \u0438 jitter \u043d\u0430 \u043f\u0440\u0438\u0435\u043c, \u0438 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0438\u0445 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e. \u0422\u043e\u0433\u0434\u0430 \u043c\u044b \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u043c\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u0433\u0438\u0431\u043a\u0438\u043c\u0438, \u0438 \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u043c, \u043a\u043e\u0433\u0434\u0430 \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u0435\u043b congestion loss, \u0430 \u043a\u043e\u0433\u0434\u0430 random loss. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0441\u043a\u043e\u043b\u044c\u043a\u043e jitter \u0432 \u043a\u0430\u0436\u0434\u0443\u044e \u0441\u0442\u043e\u0440\u043e\u043d\u0443, \u0438 \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043e\u043a\u043d\u043e.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ti\/qj\/zk\/tiqjzkihljlcb2pn2oj-wdlbmkq.jpeg\"><\/p>\n<h3>\u041a\u0430\u043a\u043e\u0439 Congestion control \u0432\u044b\u0431\u0440\u0430\u0442\u044c<\/h3>\n<p>  \u041e\u0434\u043d\u043e\u043a\u043b\u0430\u0441\u0441\u043d\u0438\u043a\u0438 \u2014 \u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0441\u0435\u0442\u044c, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043d\u043e\u0433\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430: \u0432\u0438\u0434\u0435\u043e, API, \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438. \u0418 \u0435\u0441\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430, \u043a\u0430\u043a\u0438\u0435 congestion control \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u043b\u0443\u0447\u0448\u0435 \u0432\u044b\u0431\u0440\u0430\u0442\u044c.<\/p>\n<p>  BBR \u0432\u0441\u0435\u0433\u0434\u0430 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u0435\u043d \u0434\u043b\u044f \u0432\u0438\u0434\u0435\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438. \u0412 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043e\u0431\u044b\u0447\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f Cubic \u2014 \u043e\u043d \u0445\u043e\u0440\u043e\u0448 \u0434\u043b\u044f \u0444\u043e\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0439. \u041d\u043e \u0435\u0441\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/9m\/ea\/gd\/9meagdum2m9dvmtn4eeawrmbtay.jpeg\"><\/p>\n<p>  \u0415\u0441\u0442\u044c \u0434\u0435\u0441\u044f\u0442\u043a\u0438 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u043e\u0432 congestion control. \u0414\u043b\u044f \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043b\u0443\u0447\u0448\u0438\u0439, \u043c\u043e\u0436\u043d\u043e \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443 \u043f\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0443 \u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u043f\u0440\u043e\u0444\u0438\u043b\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u0442 \u0438\u043b\u0438 \u0438\u043d\u043e\u0439 congestion control.<\/p>\n<p>  \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u044d\u0442\u043e \u044d\u0444\u0444\u0435\u043a\u0442 \u043e\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 BBR \u043d\u0430 \u0432\u0438\u0434\u0435\u043e.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/hy\/h8\/dh\/hyh8dhiugrgtyl6vgaozjzitnxq.jpeg\"><\/p>\n<p>  \u041d\u0430\u043c \u0443\u0434\u0430\u043b\u043e\u0441\u044c \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0442\u044c \u0433\u043b\u0443\u0431\u0438\u043d\u0443 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430. Google \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e \u0443 \u043d\u0438\u0445 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043d\u0430 10% \u0443\u043c\u0435\u043d\u044c\u0448\u0430\u0435\u0442\u0441\u044f \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0443\u0444\u0435\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 \u043f\u043b\u0435\u0435\u0440\u0435 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 BBR.<\/p>\n<p>  \u0417\u0434\u043e\u0440\u043e\u0432\u043e, \u043d\u043e \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u0445?<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/np\/m1\/uy\/npm1uywvt78qoudkof3mkebqrj8.jpeg\"><\/p>\n<p>  \u041a\u043b\u0438\u0435\u043d\u0442\u044b \u043d\u0435\u043c\u043d\u043e\u0436\u043a\u043e \u0437\u0430\u0442\u043e\u0440\u043c\u043e\u0436\u0435\u043d\u043d\u044b\u0435, \u0443 \u043d\u0438\u0445 \u0443 \u0432\u0441\u0435\u0445 Cubic, \u0438 \u0432\u044b \u043d\u0430 \u044d\u0442\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0432\u043b\u0438\u044f\u0442\u044c. \u041d\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u0442\u0440\u0430\u0448\u043d\u043e\u0433\u043e, \u0438\u043d\u043e\u0433\u0434\u0430 \u043c\u043e\u0436\u043d\u043e \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435, \u0438 \u0431\u0443\u0434\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u043e.<\/p>\n<p>  <strong>\u0412\u044b\u0432\u043e\u0434\u044b \u043f\u0440\u043e congestion control:<\/strong><\/p>\n<ul>\n<li>\u0414\u043b\u044f \u0432\u0438\u0434\u0435\u043e \u0432\u0441\u0435\u0433\u0434\u0430 \u0445\u043e\u0440\u043e\u0448 BBR.\u00a0<\/li>\n<li>\u0412 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u0435\u0441\u043b\u0438 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0441\u0432\u043e\u0439 UDP-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u043c\u043e\u0436\u043d\u043e \u0432\u0437\u044f\u0442\u044c congestion control \u0441 \u0441\u043e\u0431\u043e\u0439.<\/li>\n<li>\u0421 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f TCP \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e congestion control, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0435\u0441\u0442\u044c \u0432 \u044f\u0434\u0440\u0435. \u0415\u0441\u043b\u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0439 congestion control \u0432 \u044f\u0434\u0440\u043e, \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 TCP. \u041d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e \u0440\u0430\u0437\u0434\u0443\u0442\u044c acknowledgement, \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u0438\u0445 \u043d\u0435\u0442 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435.<\/li>\n<\/ul>\n<p>  <\/p>\n<blockquote><p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0434\u0435\u043b\u0430\u0435\u0442\u0435 \u0441\u0432\u043e\u0439 UDP-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u0443 \u0432\u0430\u0441 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0441\u0432\u043e\u0431\u043e\u0434\u044b \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f congestion control.<\/p><\/blockquote>\n<p>  <\/p>\n<h3>\u041c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0438\u0437\u0430\u0446\u0438\u044f<\/h3>\n<p>  \u042d\u0442\u043e \u043d\u043e\u0432\u044b\u0439 \u0442\u0440\u0435\u043d\u0434, \u0432\u0441\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 \u044d\u0442\u0438\u043c \u0437\u0430\u043d\u0438\u043c\u0430\u044e\u0442\u0441\u044f. \u041a\u0430\u043a\u0438\u0435 \u0437\u0434\u0435\u0441\u044c \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b? \u0415\u0441\u043b\u0438 \u043c\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c TCP, \u043d\u0430\u0432\u0435\u0440\u043d\u044f\u043a\u0430 \u0432\u0441\u0435 (\u0438\u043b\u0438 \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435) \u0437\u043d\u0430\u044e\u0442 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e head-of-line blocking.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/zv\/rt\/6t\/zvrt6t3igpnzn4vea3lgdw7vb1e.jpeg\"><\/p>\n<p>  \u0415\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u0438\u0440\u0443\u044e\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 \u043e\u0434\u043d\u043e TCP-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435. \u041c\u044b \u0438\u0445 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u0432 \u0441\u0435\u0442\u044c, \u043d\u043e \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043f\u0430\u043a\u0435\u0442 \u043f\u0440\u043e\u043f\u0430\u043b. TCP-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u044d\u0442\u043e\u0442 \u043f\u0430\u043a\u0435\u0442 \u0440\u0435\u0442\u0440\u0430\u043d\u0441\u043c\u0438\u0442\u0438\u0442\u044c, \u043e\u043d \u0437\u0430\u0440\u0435\u0442\u0440\u0430\u043d\u0441\u043c\u0438\u0442\u0438\u0442\u0441\u044f \u0437\u0430 \u0432\u0440\u0435\u043c\u044f, \u0431\u043b\u0438\u0437\u043a\u043e\u0435 \u043a RTT \u0438\u043b\u0438 \u0431\u043e\u043b\u044c\u0448\u0435. \u0412 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043c\u044b \u043d\u0438\u0447\u0435\u0433\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0435 \u0441\u043c\u043e\u0436\u0435\u043c, \u0445\u043e\u0442\u044f \u0432 TCP-\u0431\u0443\u0444\u0435\u0440\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442 \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430, \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e\u0431\u044b \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0437\u0430\u0431\u0440\u0430\u0442\u044c.<\/p>\n<blockquote><p>\u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0432\u0435\u0440\u0445 TCP, \u0435\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 HTTP 2.0, \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u0432 \u043f\u043b\u043e\u0445\u0438\u0445 \u0441\u0435\u0442\u044f\u0445.<\/p><\/blockquote>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u2014 \u044d\u0442\u043e \u0440\u0430\u0441\u043f\u0443\u0445\u0430\u043d\u0438\u0435 \u0431\u0443\u0444\u0435\u0440\u0430.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/fy\/zh\/rw\/fyzhrwlr4mmtdgxwhp-mxfa9k-y.jpeg\"><\/p>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0443, \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0431\u0443\u0444\u0435\u0440. \u041c\u044b \u0435\u0433\u043e \u0434\u043e\u043b\u0433\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c, \u0430 \u043f\u043e\u0442\u043e\u043c \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f API-\u0437\u0430\u043f\u0440\u043e\u0441, \u0438 \u043e\u043d \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d. \u0412 \u0442\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 TCP-\u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0438\u0437\u0430\u0446\u0438\u044f.<\/p>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0435\u0441\u043b\u0438 \u0441\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u043f\u043e\u0442\u0435\u0440\u044f \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0435\u0441\u0442\u044c head-of-Line blocking, \u0430 \u043a\u043e\u0433\u0434\u0430 \u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0439 \u0431\u0438\u0442\u0440\u0435\u0439\u0442 (\u0430 \u0443 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u044d\u0442\u043e \u0431\u044b\u0432\u0430\u0435\u0442 \u0447\u0430\u0441\u0442\u043e), \u0442\u043e \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u044d\u0444\u0444\u0435\u043a\u0442 bufferbloat. \u0412 \u0438\u0442\u043e\u0433\u0435 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0438 \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u043d\u0438 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0438\u0437\u0430\u0446\u0438\u044f, \u043d\u0438 server push, \u043d\u0438 \u0432\u0441\u0435 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0443 \u043d\u0430\u0441 \u0438\u043b\u0438 \u0437\u0430\u0431\u0438\u0442\u044b \u0431\u0443\u0444\u0435\u0440\u044b, \u0438\u043b\u0438 \u043a\u043b\u0438\u0435\u043d\u0442 \u0447\u0442\u043e-\u0442\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u0442.<\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043c\u044b \u0434\u0435\u043b\u0430\u0435\u043c \u0441\u0432\u043e\u0435 \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0442\u043e \u043c\u043e\u0436\u0435\u043c \u043f\u043e\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0442\u0443\u0434\u0430 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/_g\/er\/5g\/_ger5gqpdxllo3-p1eo7ytzupce.jpeg\"><\/p>\n<p>  \u042d\u0442\u043e \u043d\u0435\u0442\u0440\u0443\u0434\u043d\u043e, \u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u043c \u0432 \u0431\u0443\u0444\u0435\u0440 \u043f\u0430\u043a\u0435\u0442\u044b \u0441 \u043d\u043e\u043c\u0435\u0440\u0430\u043c\u0438. On-the-fly \u2014 \u0442\u043e, \u0447\u0442\u043e \u0443\u0436\u0435 \u0431\u044b\u043b\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e, \u043d\u0435 \u0442\u0440\u043e\u0433\u0430\u0435\u043c, \u0430 \u0442\u043e, \u0447\u0442\u043e \u0435\u0449\u0435 \u043d\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043e, \u043c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c. \u0412\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u044d\u0442\u043e \u0442\u0430\u043a.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/9g\/_v\/xr\/9g_vxrrlkavxucnmocy3kggc-f8.jpeg\"><\/p>\n<p>  \u041e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438, \u0440\u0430\u0437\u0431\u0438\u043b\u0438 \u043d\u0430 \u043f\u0430\u043a\u0435\u0442\u044b, \u043f\u0440\u0438\u0448\u0435\u043b \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u044b\u0439 API-\u0437\u0430\u043f\u0440\u043e\u0441: \u0435\u0433\u043e \u0432\u0441\u0442\u0430\u0432\u0438\u043b\u0438, \u0434\u043e\u0441\u043b\u0430\u043b\u0438 \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0443. \u0414\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u043f\u0430\u043b \u043f\u0430\u043a\u0435\u0442, \u043c\u044b \u0438\u0437 \u0431\u0443\u0444\u0435\u0440\u0430 \u043c\u043e\u0436\u0435\u043c \u0434\u043e\u0441\u0442\u0430\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0439 API-\u0437\u0430\u043f\u0440\u043e\u0441, \u043e\u043d \u0432\u044b\u0441\u043e\u043a\u043e\u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u044b\u0439 \u0438 \u0431\u044b\u0441\u0442\u0440\u043e \u0434\u043e\u0439\u0434\u0435\u0442 \u0434\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u0430. \u0412 TCP \u043f\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044e \u043f\u0440\u0438 \u0441\u0442\u0440\u0438\u043c\u0438\u043d\u0433\u043e\u0432\u043e\u0439 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0442\u0430\u043a\u043e\u0435 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e.<\/p>\n<h3>\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f<\/h3>\n<p>  \u0415\u0441\u043b\u0438 \u043f\u043e\u043f\u0440\u043e\u0444\u0438\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0448\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435, \u0442\u043e \u043c\u044b \u0443\u0432\u0438\u0434\u0438\u043c, \u0447\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430 \u0441\u0442\u0430\u0440\u0442\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u0435\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u0430\u0438\u0432\u0430\u0435\u0442, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0434\u043e API, \u043f\u043e\u0442\u043e\u043c \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0434\u0430\u043d\u043d\u044b\u0435, \u043f\u043e\u0442\u043e\u043c \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0434\u043e \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a, \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u0438 \u0442.\u0434. \u0422\u0430\u043a \u0432\u0441\u0435\u0433\u0434\u0430 \u0438 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u2014 \u0441\u0435\u0442\u044c \u0443\u0442\u0438\u043b\u0438\u0437\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u043f\u0438\u043a\u0430\u043c\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/14\/cn\/ck\/14cnckztbu1v-otwf__j9dqzahu.jpeg\"><\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u0441 \u044d\u0442\u0438\u043c \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f, \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u043a\u0430\u043a \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ca\/eb\/ij\/caebijcqzlqj0h5soblnfudqedo.jpeg\"><\/p>\n<p>  \u041f\u0435\u0440\u0432\u043e\u0435 \u2014 \u044d\u0442\u043e resolve DNS \u2014 \u0441 \u044d\u0442\u0438\u043c \u043c\u044b \u043d\u0438\u0447\u0435\u0433\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0435 \u043c\u043e\u0436\u0435\u043c. \u0414\u0430\u043b\u044c\u0448\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 TCP-\u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f, \u043f\u043e\u0442\u043e\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 \u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043e\u0442\u0432\u0435\u0442\u0430. \u0421\u0430\u043c\u043e\u0435 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e\u0435, \u0447\u0442\u043e \u0447\u0430\u0441\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442 \u0441\u0435\u0440\u0432\u0435\u0440, \u043e\u0442\u0432\u0435\u0447\u0430\u044f \u043d\u0430 \u0437\u0430\u043f\u0440\u043e\u0441, \u043e\u0431\u044b\u0447\u043d\u043e \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442 \u043c\u0435\u043d\u044c\u0448\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0447\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f.<\/p>\n<p>  \u0421\u0435\u0439\u0447\u0430\u0441 \u043e\u0447\u0435\u043d\u044c \u043c\u043e\u0434\u043d\u043e \u0438\u0437\u043c\u0435\u0440\u044f\u0442\u044c latency numbers \u0434\u043b\u044f \u043f\u0430\u043c\u044f\u0442\u0438, \u0434\u043b\u044f \u0434\u0438\u0441\u043a\u043e\u0432, \u0435\u0449\u0435 \u0434\u043b\u044f \u0447\u0435\u0433\u043e-\u0442\u043e. \u041c\u043e\u0436\u043d\u043e \u0438\u0445 \u0434\u043b\u044f \u0441\u0435\u0442\u0438 3G, 4G \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c \u0438 \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0439\u043c\u0435\u0442 \u0432 \u0445\u0443\u0434\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u043f\u043e TCP \u0441 TLS.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/qe\/ux\/1p\/qeux1p7brp9mvpxeptinhubywmc.jpeg\"><\/p>\n<p>  \u0418 \u044d\u0442\u043e \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0441\u0435\u043a\u0443\u043d\u0434\u044b! \u0414\u0430\u0436\u0435 \u043d\u0430 4G \u0434\u043e 700 \u043c\u0441 \u2013\u0442\u043e\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e. \u041d\u043e TCP \u043d\u0435 \u043c\u043e\u0433 \u0442\u0430\u043a \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u0441\u0435 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0436\u0438\u0442\u044c.<\/p>\n<p>  \u0412 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c <strong>TCP 3-way handshake<\/strong>. \u0414\u0435\u043b\u0430\u0435\u0442\u0435 syn, syn + ack, \u043f\u043e\u0434\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0435 \u0443\u0436\u0435 \u043f\u043e\u0442\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441 (\u0441\u043b\u0435\u0432\u0430 \u043d\u0430 \u0441\u0445\u0435\u043c\u0435).<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ty\/mj\/-a\/tymj-amfsa1c4j8sirtaspnvq1o.jpeg\"><\/p>\n<p>  \u0415\u0441\u0442\u044c <strong>TCP Fast Open<\/strong> (\u0441\u043f\u0440\u0430\u0432\u0430). \u0415\u0441\u043b\u0438 \u0432\u044b \u0441 \u044d\u0442\u0438\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u043c \u0443\u0436\u0435 \u0445\u044d\u043d\u0434\u0448\u0435\u0439\u043a\u0438\u043b\u0438\u0441\u044c, \u0435\u0441\u0442\u044c cookie, \u043c\u043e\u0436\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0437\u0430 zero-RTT \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u0437\u0430\u043f\u0440\u043e\u0441. \u0427\u0442\u043e\u0431\u044b \u044d\u0442\u0438\u043c \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f, \u043d\u0443\u0436\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u0442\u044c socket, \u0441\u0434\u0435\u043b\u0430\u0442\u044c sendto() \u043f\u0435\u0440\u0432\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 FASTOPEN.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ab\/kl\/b9\/abklb93dq3g__tw2rihxrhagkl8.jpeg\"><\/p>\n<p>  Nginx \u0432\u0441\u0435 \u044d\u0442\u043e \u0443\u043c\u0435\u0435\u0442 \u2014 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435, \u0432\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c (\u0438\u043b\u0438 \u0432 \u044f\u0434\u0440\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435).<\/p>\n<h2>TLS<\/h2>\n<p>  \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u043c, \u0447\u0442\u043e TLS \u2014 \u044d\u0442\u043e \u043f\u043b\u043e\u0445\u043e.<\/p>\n<p>  \u042f \u043e\u043f\u044f\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b net shaper \u043d\u0430 200 \u043c\u0441, \u043f\u043e\u043f\u0438\u043d\u0433\u043e\u0432\u0430\u043b google.com \u0438 \u0443\u0432\u0438\u0434\u0435\u043b, \u0447\u0442\u043e RTT = 220 \u2013 \u043c\u043e\u0439 RTT + RTT shaper. \u041f\u043e\u0442\u043e\u043c \u0441\u0434\u0435\u043b\u0430\u043b \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u043e HTTP \u0438 HTTPS. \u0412\u044b\u044f\u0441\u043d\u0438\u043b, \u0447\u0442\u043e \u043f\u043e HTTP \u043c\u043e\u0436\u043d\u043e \u0437\u0430 \u0432\u0440\u0435\u043c\u044f RTT \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0442\u0432\u0435\u0442, \u0442\u043e \u0435\u0441\u0442\u044c TFO \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0434\u043b\u044f Google \u0441 \u043c\u043e\u0435\u0433\u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430. \u0414\u043b\u044f HTTPS \u044d\u0442\u043e \u0437\u0430\u043d\u044f\u043b\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/po\/hl\/kj\/pohlkjs39dl7kk3rp5kzbxrwsna.jpeg\"><\/p>\n<p>  \u042d\u0442\u043e \u0442\u0430\u043a\u0438\u0435 \u043e\u0431\u044b\u0447\u043d\u044b\u0435 \u043d\u0430\u043a\u043b\u0430\u0434\u043d\u044b\u0435 \u0440\u0430\u0441\u0445\u043e\u0434\u044b TLS, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043e\u0431\u043c\u0435\u043d \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/zf\/j2\/qn\/zfj2qndcohpiok8cqpc82kiun3s.jpeg\"><\/p>\n<p>  \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0437\u0430 \u043d\u0430\u0441 \u043f\u043e\u0434\u0443\u043c\u0430\u043b\u0438, \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 TLS 1.3. \u0415\u0433\u043e \u0442\u043e\u0436\u0435 \u043b\u0435\u0433\u043a\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432 nginx.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/m5\/eo\/i0\/m5eoi0z5a2rzb4hthqlbjchxhyi.jpeg\"><\/p>\n<p>  \u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u041d\u043e \u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u043c, \u0447\u0442\u043e \u0442\u0430\u043c \u043d\u0430 \u043d\u0430\u0448\u0438\u0445 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0441\u0435\u043c \u044d\u0442\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f.<\/p>\n<h3>\u0427\u0442\u043e \u0442\u0430\u043c \u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432<\/h3>\n<p>  TCP Fast Open \u2014 \u043a\u043b\u0430\u0441\u0441\u043d\u0430\u044f \u0448\u0442\u0443\u043a\u0430. \u041f\u043e \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/pq\/yy\/l8\/pqyyl89jhtoulpwalg61q8pqbnw.jpeg\"><\/p>\n<p>  \u0415\u0441\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0441\u0442\u0430\u0442\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e \u043f\u0440\u043e\u0439\u0434\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u043d\u0430 10%. \u041d\u043e \u043d\u0430 Android 8.1.0 (\u044f \u0441\u043c\u043e\u0442\u0440\u0435\u043b \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430) \u043d\u0438 \u0443 \u043a\u043e\u0433\u043e \u043d\u0435\u0442 TFO. \u041d\u0430 Android 9 \u044f \u0432\u0438\u0434\u0435\u043b TFO \u043d\u0430 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0435, \u043d\u043e \u043d\u0435 \u043d\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430\u0445. \u0421 iOS \u0447\u0443\u0442\u044c \u043f\u043e\u043b\u0443\u0447\u0448\u0435. \u0412\u043e\u0442 \u0442\u0430\u043a \u044d\u0442\u043e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c:<\/p>\n<pre><code class=\"plaintext\">sysctl -a | grep fast  net.ipv4.tcp_fastopen = 0<\/code><\/pre>\n<p>  \u041f\u043e\u0447\u0435\u043c\u0443 \u0442\u0430\u043a \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u043e? TCP Fast Open \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b\u0438 \u0435\u0449\u0435 \u0432 2014 \u0433\u043e\u0434\u0443, \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u043d \u0443\u0436\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0432 Linux \u0438 \u0432\u0441\u0435 \u0437\u0434\u043e\u0440\u043e\u0432\u043e. \u041d\u043e \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430, \u0447\u0442\u043e TFO handshake \u0441\u0442\u0430\u043b\u0438 \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0435\u0442\u044f\u0445 \u0440\u0430\u0437\u0432\u0430\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f. \u042d\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u043e\u0442\u043e\u043c\u0443, \u0447\u0442\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0432\u0430\u0439\u0434\u0435\u0440\u044b (\u0438\u043b\u0438 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0430) \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438 \u0438\u043d\u0441\u043f\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c TCP, \u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438, \u0438 \u043d\u0435 \u043e\u0436\u0438\u0434\u0430\u043b\u0438, \u0447\u0442\u043e \u0442\u0430\u043c \u0431\u0443\u0434\u0435\u0442 TFO handshake. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0433\u043e \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0435 \u0437\u0430\u043d\u044f\u043b\u043e \u0442\u0430\u043a \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u0438 \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u044b \u0435\u0433\u043e \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435 \u043c\u0435\u0440\u0435, Android.<\/p>\n<p>  \u0421 TLS 1.3, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0430\u043c \u043e\u0431\u0435\u0449\u0430\u0435\u0442 zero-RTT \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u0435\u0449\u0435 \u043b\u0443\u0447\u0448\u0435. \u042f \u043d\u0435 \u043d\u0430\u0448\u0435\u043b \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u043d\u0430 Android, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0431\u044b \u043e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u043b. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 Facebook \u0441\u0434\u0435\u043b\u0430\u043b \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0443 <a href=\"https:\/\/github.com\/facebookincubator\/fizz\">Fizz<\/a>. \u041f\u0430\u0440\u0443 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u043d\u0430\u0437\u0430\u0434 \u043e\u043d\u0430 \u0441\u0442\u0430\u043b\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0432 \u043e\u043f\u0435\u043d\u0441\u043e\u0440\u0441\u0435, \u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u0442\u0430\u0449\u0438\u0442\u044c \u0441 \u0441\u043e\u0431\u043e\u0439 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c TLS 1.3. \u041f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0434\u0430\u0436\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u043d\u0443\u0436\u043d\u043e \u0442\u0430\u0449\u0438\u0442\u044c \u0441 \u0441\u043e\u0431\u043e\u0439, \u0432 \u044f\u0434\u0440\u0435 \u044d\u0442\u043e\u0433\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u043f\u043e\u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/07\/qm\/kf\/07qmkfwywo3llz5nrrh04kg3a_o.jpeg\"><\/p>\n<p>  \u041d\u0430 \u0434\u0438\u0430\u0433\u0440\u0430\u043c\u043c\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430\u0448\u0438\u043c\u0438 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u043c\u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 Android. V 9.x \u0441\u043e\u0432\u0441\u0435\u043c \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u2014 \u0442\u0430\u043c, \u0433\u0434\u0435 TFO \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u044f\u0432\u0438\u0442\u044c\u0441\u044f, \u0430 TLS1.3 \u043f\u043e\u043a\u0430 \u043d\u0435\u0442 \u043d\u0438\u0433\u0434\u0435.<\/p>\n<p>  <strong>\u0412\u044b\u0432\u043e\u0434\u044b \u043f\u0440\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f:<\/strong><\/p>\n<ul>\n<li>TFO \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0434\u043b\u044f 95% \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432.<\/li>\n<li>TLS1.3 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u0438\u0442\u0430\u0449\u0438\u0442\u044c \u0441 \u0441\u043e\u0431\u043e\u0439.<\/li>\n<li>\u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u043d\u043e \u044d\u0442\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u0432 UDP, \u0442\u043e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0438\u0432 \u0432\u0441\u0435 \u044d\u0442\u043e \u043d\u0430 UDP \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c.<\/li>\n<\/ul>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/n2\/tj\/v1\/n2tjv1g-04l2jfghy_6--uqaqjc.jpeg\"><\/p>\n<p>  \u0412\u044b\u044f\u0441\u043d\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e 97% \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u0443\u0436\u0435 \u0438\u043c\u0435\u044e\u0449\u0438\u0439\u0441\u044f \u043a\u043b\u044e\u0447, \u0442\u043e \u0435\u0441\u0442\u044c 97% \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0437\u0430 zero RTT, \u0438 \u0442\u043e\u043b\u044c\u043a\u043e 3% \u043d\u043e\u0432\u044b\u0445. \u041a\u043b\u044e\u0447 \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0445\u0440\u0430\u043d\u0438\u0442\u0441\u044f \u043d\u0430 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432\u0435.<\/p>\n<p>  TCP \u044d\u0442\u0438\u043c \u043f\u043e\u0445\u0432\u0430\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u043d\u0435 \u043c\u043e\u0436\u0435\u0442. \u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c \u0432 5% \u0441\u043b\u0443\u0447\u0430\u0435\u0432, \u0435\u0441\u043b\u0438 \u0432\u044b \u0432\u0441\u0435 \u0441\u0434\u0435\u043b\u0430\u0435\u0442\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e, \u0432\u0430\u043c \u0443\u0434\u0430\u0441\u0442\u0441\u044f \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0438\u0439 zero-RTT, \u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u0435\u0439\u0447\u0430\u0441 \u0432\u0441\u0435 \u0440\u0430\u0437\u0433\u043e\u0432\u0430\u0440\u0438\u0432\u0430\u044e\u0442.<\/p>\n<h2>\u0421\u043c\u0435\u043d\u0430 IP-\u0430\u0434\u0440\u0435\u0441\u0430<\/h2>\n<p>  \u0427\u0430\u0441\u0442\u043e, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u0443\u0445\u043e\u0434\u0438\u0442\u0435 \u0438\u0437 \u0434\u043e\u043c\u0430, \u0432\u0430\u0448 \u0442\u0435\u043b\u0435\u0444\u043e\u043d \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0441 Wi-Fi \u043d\u0430 4G.<\/p>\n<blockquote><p>TCP \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0442\u0430\u043a: \u0441\u043c\u0435\u043d\u0438\u043b\u0441\u044f IP-\u0430\u0434\u0440\u0435\u0441 \u2014 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0440\u0430\u0437\u0432\u0430\u043b\u0438\u043b\u043e\u0441\u044c.<\/p><\/blockquote>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/km\/nu\/u8\/kmnuu8dtr8jeipuzx4bhpfezuwm.jpeg\"><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b \u043f\u0438\u0448\u0438\u0442\u0435 \u0441\u0432\u043e\u0439 UDP \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e, \u0432\u043d\u0435\u0434\u0440\u044f\u044f \u0432 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0430\u043a\u0435\u0442 connection ID (CUID), \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0435\u0433\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043e\u043d \u043f\u0440\u0438\u0448\u0435\u043b \u0441 \u0434\u0440\u0443\u0433\u043e\u0433\u043e IP-\u0430\u0434\u0440\u0435\u0441\u0430.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/xu\/ga\/r_\/xugar_l9pbltv6419btnrimfhv8.jpeg\"><\/p>\n<p>  \u041f\u043e\u043d\u044f\u0442\u043d\u043e, \u0447\u0442\u043e \u043d\u0430\u0434\u043e \u0443\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u0438\u0442\u044c\u0441\u044f \u0432 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0447\u0442\u043e \u0443 \u043d\u0435\u0433\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u043a\u043b\u044e\u0447, \u0432\u0441\u0435 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u044b\u0432\u0430\u0435\u0442\u0441\u044f, \u0438 \u0442.\u0434. \u041d\u043e \u0432 \u043f\u0440\u0438\u043d\u0446\u0438\u043f\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0447\u0430\u0442\u044c \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043d\u0430 \u044d\u0442\u043e\u0442 \u0430\u0434\u0440\u0435\u0441, \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u044d\u0442\u0438\u043c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442.<\/p>\n<blockquote><p>\u0412 TCP IP Migration \u2014 \u044d\u0442\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430\u044f \u0432\u0435\u0449\u044c.<\/p><\/blockquote>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b \u0434\u0435\u043b\u0430\u0435\u0442\u0435 \u0441\u0432\u043e\u0439 UDP, \u0438 \u043f\u0440\u0438\u0448\u043b\u0438 \u043d\u0430 \u0442\u043e\u0442 \u0436\u0435 \u0441\u0430\u043c\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440, \u043d\u0443\u0436\u043d\u043e \u043d\u0435\u043c\u043d\u043e\u0436\u043a\u043e \u043f\u043e\u043a\u043e\u043b\u0434\u043e\u0432\u0430\u0442\u044c, \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c CID \u0432 \u043a\u0430\u0436\u0434\u044b\u0439 \u043f\u0430\u043a\u0435\u0442, \u0438 \u0432\u0430\u043c \u0443\u0434\u0430\u0441\u0442\u0441\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u043e\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0438 \u0441\u043c\u0435\u043d\u0435 IP \u0430\u0434\u0440\u0435\u0441\u0430.<\/p>\n<h2>Connection reuse<\/h2>\n<p>  \u0412\u0441\u0435 \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u2014 \u043e\u0447\u0435\u043d\u044c \u0434\u043e\u0440\u043e\u0433\u0430\u044f \u0432\u0435\u0449\u044c.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/8-\/lr\/ot\/8-lrot44ac9mwo6m7ue_ksezk0g.jpeg\"><\/p>\n<p>  \u041d\u043e \u0432 \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0435\u0441\u0442\u044c \u043f\u043e\u0434\u0432\u043e\u0434\u043d\u044b\u0435 \u043a\u0430\u043c\u043d\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/_n\/aa\/z3\/_naaz3uac-hwdd7uikndioiupry.jpeg\"><\/p>\n<p>  \u041d\u0430\u0432\u0435\u0440\u043d\u043e\u0435, \u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u043e\u043c\u043d\u044f\u0442 (\u0435\u0441\u043b\u0438 \u043d\u0435\u0442, \u0442\u043e \u0441\u043c. <a href=\"https:\/\/habr.com\/ru\/company\/oleg-bunin\/blog\/428217\/\">\u0441\u044e\u0434\u0430<\/a>), \u0447\u0442\u043e \u043d\u0435 \u0443 \u0432\u0441\u0435\u0445 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0435 \u0430\u0434\u0440\u0435\u0441\u0430, \u0430 \u0435\u0441\u0442\u044c NAT, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u044b\u0447\u043d\u043e \u043d\u0430 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u043c \u0440\u043e\u0443\u0442\u0435\u0440\u0435 \u0445\u0440\u0430\u043d\u0438\u0442 \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0432\u0440\u0435\u043c\u044f mapping. \u0414\u043b\u044f TCP \u043f\u043e\u043d\u044f\u0442\u043d\u043e, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0445\u0440\u0430\u043d\u0438\u0442\u044c, \u0430 \u0434\u043b\u044f UDP \u2014 \u043d\u0435\u043f\u043e\u043d\u044f\u0442\u043d\u043e. NAT \u043e\u043f\u0435\u0440\u0438\u0440\u0443\u0435\u0442 timeout, \u0435\u0441\u043b\u0438 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c \u044d\u0442\u043e\u0442 timeout, \u0442\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u043c, \u0447\u0442\u043e \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0437\u0430 15-30 \u0441\u0435\u043a\u0443\u043d\u0434 \u0431\u043e\u043b\u0435\u0435 50% \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0439 \u043d\u0430\u0447\u043d\u0443\u0442 \u0440\u0430\u0437\u0440\u0443\u0448\u0430\u0442\u044c\u0441\u044f.<\/p>\n<p>  \u041d\u0438\u0447\u0435\u0433\u043e \u0441\u0442\u0440\u0430\u0448\u043d\u043e\u0433\u043e \u2014 \u0441\u0434\u0435\u043b\u0430\u0435\u043c ping-pong \u043f\u0430\u043a\u0435\u0442\u0430 \u043f\u043e 15 \u0441. \u0414\u043b\u044f \u0441\u043b\u0443\u0447\u0430\u0435\u0432, \u043a\u043e\u0433\u0434\u0430 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0442\u0430\u043a\u0438 \u0440\u0430\u0437\u0440\u0443\u0448\u0438\u043b\u043e\u0441\u044c, \u0435\u0441\u0442\u044c IP Migration, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435\u0434\u043e\u0440\u043e\u0433\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0441\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u043e\u0440\u0442 \u043d\u0430 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/7g\/mu\/bf\/7gmubflfj-yenwqvgiqbkc8toa8.jpeg\"><\/p>\n<h2>Packet pacing<\/h2>\n<p>  \u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u0430\u044f \u0432\u0435\u0449\u044c, \u0435\u0441\u043b\u0438 \u0432\u044b \u0434\u0435\u043b\u0430\u0435\u0442\u0435 \u0441\u0432\u043e\u0439 UDP-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/cf\/d5\/97\/cfd597jt4v7uopygyyu-dfsx_8s.jpeg\"><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442\u043e, \u0442\u043e \u0447\u0435\u043c \u0434\u043e\u043b\u044c\u0448\u0435 \u0432\u044b \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u0442\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u0432 \u0441\u0435\u0442\u044c, \u0442\u0435\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c packet loss. \u0415\u0441\u043b\u0438 \u043f\u0430\u043a\u0435\u0442\u044b \u043f\u0440\u043e\u0440\u0435\u0434\u0438\u0442\u044c, \u0442\u043e packet loss \u0431\u0443\u0434\u0435\u0442 \u043d\u0438\u0436\u0435.<\/p>\n<p>  \u0415\u0441\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043d\u044b\u0445 \u0442\u0435\u043e\u0440\u0438\u0439, \u043a\u0430\u043a \u044d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442, \u043d\u043e \u043c\u043d\u0435 \u043d\u0440\u0430\u0432\u0438\u0442\u0441\u044f \u044d\u0442\u0430.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/75\/79\/xl\/7579xlvo70vmotoqjjp3zmmplr8.jpeg\"><\/p>\n<p>  \u0415\u0441\u0442\u044c 3 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0437\u0434\u0430\u044e\u0442\u0441\u044f \u0432 \u043e\u0434\u0438\u043d \u043c\u043e\u043c\u0435\u043d\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0423 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0442\u0430\u043a \u043d\u0430\u0437\u044b\u0432\u0430\u0435\u043c\u044b\u0439 initial window \u2014 10 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e. \u041a\u043e\u043d\u0435\u0447\u043d\u043e, \u0432 \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043c\u043e\u0436\u0435\u0442 \u043d\u0435 \u0445\u0432\u0430\u0442\u0438\u0442\u044c bandwidth. \u041d\u043e \u0435\u0441\u043b\u0438 \u0438\u0445 \u0430\u043a\u043a\u0443\u0440\u0430\u0442\u043d\u043e \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c, \u0442\u043e \u0432\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043b\u0438\u0447\u043d\u043e, \u043a\u0430\u043a \u043d\u0430 \u043f\u0440\u0430\u0432\u043e\u043c \u0440\u0438\u0441\u0443\u043d\u043a\u0435.<\/p>\n<p>  \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0435\u0441\u043b\u0438 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u0440\u0430\u0432\u043d\u043e\u043c\u0435\u0440\u043d\u044b\u0439 \u0442\u0435\u043c\u043f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u043f\u0440\u043e\u0440\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0438\u0445, \u0442\u043e \u0432\u0435\u0440\u043e\u044f\u0442\u043d\u043e\u0441\u0442\u044c \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0435\u0434\u0438\u043d\u043e\u043c\u043e\u043c\u0435\u043d\u0442\u043d\u043e\u0435 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0431\u0443\u0444\u0435\u0440\u043e\u0432, \u0441\u0442\u0430\u043d\u0435\u0442 \u043d\u0438\u0436\u0435. \u042d\u0442\u043e \u043d\u0435 \u0434\u043e\u043a\u0430\u0437\u0430\u043d\u043e, \u043d\u043e \u0442\u0435\u043e\u0440\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0442\u0430\u043a.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/vw\/mg\/vw\/vwmgvw6oyq3v_yaliklp4ilnocm.jpeg\"><\/p>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u043d\u0443\u0436\u043d\u043e \u043f\u0440\u043e\u0440\u0435\u0436\u0430\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b (\u0434\u0435\u043b\u0430\u0442\u044c pacing):<\/p>\n<ul>\n<li>\u041a\u043e\u0433\u0434\u0430 \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0435 \u043e\u043a\u043d\u043e.<\/li>\n<li>\u041a\u043e\u0433\u0434\u0430 \u0443\u0432\u0435\u043b\u0438\u0447\u0438\u0432\u0430\u0435\u0442\u0435 \u043e\u043a\u043d\u043e, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0437\u0430 RTT\/2. \u042d\u0442\u043e \u043d\u0435 \u0443\u0445\u0443\u0434\u0448\u0438\u0442 \u0432\u0440\u0435\u043c\u044f \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438, \u043d\u043e \u0441\u043d\u0438\u0437\u0438\u0442 packet loss.<\/li>\n<li>\u0412 \u0441\u043b\u0443\u0447\u0430\u0435 congestion loss \u0434\u043b\u044f \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044f \u043e\u043a\u043d\u0430 \u043d\u0443\u0436\u043d\u043e \u0435\u0449\u0435 \u0431\u043e\u043b\u044c\u0448\u0435 \u0440\u0430\u0437\u043c\u0430\u0437\u0430\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b. 4\/5 RTT \u2014 \u044d\u043c\u043f\u0438\u0440\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u0434\u043e\u0431\u0440\u0430\u043d\u043d\u0430\u044f \u0446\u0438\u0444\u0440\u0430.\u00a0<\/li>\n<\/ul>\n<p>  <\/p>\n<h2>MTU<\/h2>\n<p>  \u041f\u0440\u0438 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0438 \u0441\u0432\u043e\u0435\u0433\u043e UDP-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u043c\u043d\u0438\u0442\u044c \u043f\u0440\u043e MTU. MTU \u2014 \u044d\u0442\u043e \u0440\u0430\u0437\u043c\u0435\u0440 \u0434\u0430\u043d\u043d\u044b\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0435\u0440\u0435\u043f\u0440\u0430\u0432\u0438\u0442\u044c.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/c2\/7_\/ow\/c27_ow36h5amg3d4zkskjph_ama.jpeg\"><\/p>\n<p>  \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u0430\u043a\u0435\u0442\u044b \u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c 1500. \u0415\u0441\u043b\u0438 \u043d\u0430 \u043f\u0443\u0442\u0438 \u0432\u0441\u0442\u0440\u0435\u0447\u0430\u0435\u0442\u0441\u044f \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u044d\u0442\u043e\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 MTU, \u043e\u043d \u0435\u0433\u043e \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u0443\u0435\u0442. \u0415\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043f\u043e\u0442\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u0438\u043d \u043f\u0430\u043a\u0435\u0442, \u043f\u043e\u0442\u0435\u0440\u044f\u044e\u0442\u0441\u044f \u043e\u0431\u0430, \u0438 \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u0432\u0441\u0435 \u044d\u0442\u043e \u0440\u0435\u0442\u0440\u0430\u0441\u043c\u0438\u0442\u0438\u0442\u044c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432 TCP \u0435\u0441\u0442\u044c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f MTU \u2014 PMTU.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/je\/gs\/ks\/jegskszkwrb3pm2nghgfpplez8o.jpeg\"><\/p>\n<p>  \u041a\u0430\u0436\u0434\u044b\u0439 \u043c\u0430\u0440\u0448\u0440\u0443\u0442\u0438\u0437\u0430\u0442\u043e\u0440 \u0441\u043c\u043e\u0442\u0440\u0438\u0442 MTU \u0441\u0432\u043e\u0435\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0435\u0433\u043e \u043e\u0434\u043d\u043e\u043c\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0443, \u0434\u0440\u0443\u0433\u043e\u0439 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0441\u0432\u043e\u0435\u043c\u0443 \u043a\u043b\u0438\u0435\u043d\u0442\u0443, \u0432\u0441\u0435 \u0437\u043d\u0430\u044e\u0442, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0443 \u043d\u0438\u0445 MTU \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435. \u041f\u043e\u0442\u043e\u043c \u0444\u043b\u0430\u0433\u043e\u043c \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0435\u0442\u0441\u044f \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043f\u0430\u043a\u0435\u0442\u044b \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u043c MTU. \u0415\u0441\u043b\u0438 \u0432 \u044d\u0442\u043e\u0442 \u043c\u043e\u043c\u0435\u043d\u0442 \u043a\u0442\u043e-\u0442\u043e \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0435\u0442\u0438 \u043f\u043e\u0439\u043c\u0435\u0442, \u0447\u0442\u043e \u0443 \u043d\u0435\u0433\u043e MTU \u043c\u0435\u043d\u044c\u0448\u0435, \u0442\u043e \u043f\u043e ICMP \u0441\u043e\u043e\u0431\u0449\u0438\u0442: \u00ab\u0418\u0437\u0432\u0438\u043d\u0438\u0442\u0435, \u043f\u0430\u043a\u0435\u0442 \u043f\u0440\u043e\u043f\u0430\u043b, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u0430 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\u00bb \u0438 \u0443\u043a\u0430\u0436\u0435\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 MTU. \u041c\u044b \u043f\u043e\u043c\u0435\u043d\u044f\u0435\u043c \u044d\u0442\u043e\u0442 \u0440\u0430\u0437\u043c\u0435\u0440 \u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0443. \u0412 \u0445\u0443\u0434\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0430\u0448 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 overhead \u2014 \u044d\u0442\u043e RTT\/2. \u042d\u0442\u043e \u0432 TCP.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/vl\/br\/fo\/vlbrfo8a7p80neysmtjguosakww.jpeg\"><\/p>\n<p>  \u0415\u0441\u043b\u0438 \u0432 UDP \u0432\u0430\u043c \u043d\u0435 \u043e\u0445\u043e\u0442\u0430 \u0437\u0430\u043c\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0441 ICMP, \u0442\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435: \u043f\u0440\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e. \u0422\u043e \u0435\u0441\u0442\u044c \u043f\u043e\u0441\u044b\u043b\u0430\u0442\u044c \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u2014 \u043f\u0443\u0441\u0442\u044c \u043e\u043d\u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442. \u0410 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u0442 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e, \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u043c \u043f\u043e\u0438\u0441\u043a\u043e\u043c \u043f\u043e\u0434\u0431\u0435\u0440\u0435\u0442 \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 MTU, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u044b \u043f\u043e\u0442\u043e\u043c \u0432\u044b\u0439\u0434\u0435\u043c. \u042d\u0442\u043e \u043d\u0435 \u0441\u043e\u0432\u0441\u0435\u043c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0432\u043d\u0430\u0447\u0430\u043b\u0435 MTU \u0431\u0443\u0434\u0435\u0442 \u043a\u0430\u043a \u0431\u044b \u043f\u0440\u043e\u0433\u0440\u0435\u0432\u0430\u0442\u044c\u0441\u044f.<\/p>\n<p>  \u0411\u043e\u043b\u0435\u0435 \u0445\u0438\u0442\u0440\u044b\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u2014 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 MTU \u043f\u043e \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u043c \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ie\/a5\/w8\/iea5w8h3msrkprfxpgfhb2nkjyu.jpeg\"><\/p>\n<p>  \u0421\u043e \u0432\u0441\u0435\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043c\u044b \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u043f\u0430\u043a\u0435\u0442\u044b \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430 \u0441 \u0437\u0430\u043f\u0440\u0435\u0442\u043e\u043c \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438. \u0422\u043e \u0435\u0441\u0442\u044c \u0435\u0441\u043b\u0438 \u043f\u0430\u043a\u0435\u0442 \u043d\u0435 \u0434\u043e\u0439\u0434\u0435\u0442, \u043e\u043d \u0434\u0440\u043e\u043f\u043d\u0435\u0442\u0441\u044f, \u0430 \u0441\u0430\u043c\u044b\u0439 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0439 MTU \u0434\u043e\u043b\u0436\u0435\u043d \u0434\u043e\u0445\u043e\u0434\u0438\u0442\u044c \u0441\u0442\u043e\u043f\u0440\u043e\u0446\u0435\u043d\u0442\u043d\u043e. \u041d\u043e \u0435\u0441\u0442\u044c \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u043e\u0439 packet loss, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0435\u0441\u0442\u044c \u0434\u0432\u0435 \u0433\u043e\u0440\u043a\u0438:<\/p>\n<ol>\n<li>1350 \u0431\u0430\u0439\u0442 \u2014 \u0443 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u043e 98% \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0430 \u0441\u0440\u0430\u0437\u0443 95%.<\/li>\n<li>1500 \u0431\u0430\u0439\u0442 \u2014 MTU, \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0443\u0436\u0435 80% \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0442\u0430\u043a\u0438\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u043d\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442.<\/li>\n<\/ol>\n<p>  <\/p>\n<blockquote><p>\u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c \u0442\u0430\u043a: \u043f\u0440\u0435\u043d\u0435\u0431\u0440\u0435\u0436\u0435\u043c 1-2% \u043d\u0430\u0448\u0438\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u043f\u0443\u0441\u0442\u044c \u043e\u043d\u0438 \u0436\u0438\u0432\u0443\u0442 \u043d\u0430 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u0430\u0445. \u0417\u0430\u0442\u043e \u043c\u044b \u0441\u0440\u0430\u0437\u0443 \u0431\u0443\u0434\u0435\u043c \u0441\u0442\u0430\u0440\u0442\u043e\u0432\u0430\u0442\u044c \u0441 \u0442\u043e\u0433\u043e, \u0441 \u0447\u0435\u0433\u043e \u043d\u0430\u0434\u043e \u2014 \u044d\u0442\u043e \u0441 1350.<\/p><\/blockquote>\n<p>  <\/p>\n<h2>\u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043e\u043a (SACK, NACK, FEC)<\/h2>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b \u0434\u0435\u043b\u0430\u0435\u0442\u0435 \u0441\u0432\u043e\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u0432\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438. \u0415\u0441\u043b\u0438 \u043f\u0430\u043a\u0435\u0442 \u043f\u0440\u043e\u043f\u0430\u043b (\u0434\u043b\u044f \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u044b\u0445 \u0441\u0435\u0442\u0435\u0439 \u044d\u0442\u043e \u043d\u043e\u0440\u043c\u0430\u043b\u044c\u043d\u043e), \u0435\u0433\u043e \u043d\u0443\u0436\u043d\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c.<\/p>\n<p>  \u0412 \u0441\u0430\u043c\u043e\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 (\u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 <a href=\"https:\/\/habr.com\/ru\/company\/oleg-bunin\/blog\/413479\/\">\u0442\u0443\u0442<\/a>), \u0435\u0441\u0442\u044c \u0440\u0435\u0442\u0440\u0430\u043d\u0441\u043c\u0438\u0442 \u0447\u0435\u0440\u0435\u0437 Retransmit Time Out (RTO). \u0415\u0441\u043b\u0438 \u043f\u0430\u043a\u0435\u0442 \u043f\u0440\u043e\u043f\u0430\u043b, \u0436\u0434\u0435\u043c \u0432\u0440\u0435\u043c\u044f \u0440\u0435\u0442\u0440\u0430\u043d\u0441\u043c\u0438\u0442\u0430 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0435\u0433\u043e \u0437\u0430\u043d\u043e\u0432\u043e.<\/p>\n<p>  \u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c \u2014 \u044d\u0442\u043e <b>Fast retransmit<\/b>. \u042d\u0442\u043e \u0432\u0441\u0435 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b TCP, \u043d\u043e \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u043b\u0435\u0433\u043a\u043e \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0432 UDP \u0437\u0430\u0431\u0440\u0430\u0442\u044c.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/hm\/s1\/ee\/hms1eey-ntpj2x0piswhxc4e5fa.jpeg\"><\/p>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u043f\u0430\u043a\u0435\u0442 \u043f\u0440\u043e\u043f\u0430\u043b, \u043c\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u043f\u043e\u0441\u044b\u043b\u0430\u0442\u044c \u2014 \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0430 \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u0412 \u044d\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u0441\u0435\u0440\u0432\u0435\u0440 \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e \u043e\u043d \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043f\u0430\u043a\u0435\u0442, \u043d\u043e \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0433\u043e \u043d\u0435 \u0431\u044b\u043b\u043e. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043e\u043d \u0434\u0435\u043b\u0430\u0435\u0442 \u0445\u0438\u0442\u0440\u044b\u0439 acknowledgement, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0430\u0432\u0435\u043d \u043d\u043e\u043c\u0435\u0440\u0443 \u043f\u0430\u043a\u0435\u0442\u0430 + 1, \u0438 \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0444\u043b\u0430\u0433 duplicate ack. \u041e\u043d \u0442\u0430\u043a \u044d\u0442\u0438 dup ack \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u0442, \u0438 \u043d\u0430 \u0442\u0440\u0435\u0442\u044c\u0435\u043c \u043c\u044b \u043e\u0431\u044b\u0447\u043d\u043e \u043f\u043e\u043d\u0438\u043c\u0430\u0435\u043c, \u0447\u0442\u043e \u043f\u0430\u043a\u0435\u0442 \u043f\u0440\u043e\u043f\u0430\u043b \u0438 \u043f\u043e\u0441\u044b\u043b\u0430\u0435\u043c \u0435\u0433\u043e \u0437\u0430\u043d\u043e\u0432\u043e.<\/p>\n<p>  \u0427\u0442\u043e \u0435\u0449\u0435 \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u043a\u043b\u0430\u0441\u0441\u043d\u043e\u0433\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u0447\u0435\u0433\u043e \u043d\u0435\u0442 \u0432 TCP \u0438 \u0447\u0442\u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u0432 UDP \u2014 \u044d\u0442\u043e <b>Forward Error Correction<\/b>.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/ex\/_u\/gg\/ex_uggyt0-4ntdgzy-vn7hvmyzg.jpeg\"><\/p>\n<p>  \u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0435\u0441\u043b\u0438 \u043c\u044b \u0437\u043d\u0430\u0435\u043c, \u0447\u0442\u043e \u043f\u0430\u043a\u0435\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u043e\u043f\u0430\u0441\u0442\u044c, \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0432\u0437\u044f\u0442\u044c \u043d\u0430\u0431\u043e\u0440 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a \u043d\u0435\u043c\u0443 XOR-\u043f\u0430\u043a\u0435\u0442 \u0438 \u043f\u043e\u0447\u0438\u043d\u0438\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0431\u0435\u0437 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u0435\u0442\u0440\u0430\u043d\u0441\u043c\u0438\u0442\u043e\u0432 \u0441\u0440\u0430\u0437\u0443 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 \u0434\u0430\u043d\u043d\u044b\u0445. \u041d\u043e \u0435\u0441\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430, \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u043f\u0430\u0434\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u041a\u0430\u0436\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 parity protection, Reed-Solomon \u0438 \u0442.\u0434.<\/p>\n<p>  \u041c\u044b \u0442\u0430\u043a \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b\u0438, \u0443 \u043d\u0430\u0441 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e \u043d\u0430 \u0441\u0430\u043c\u043e \u0434\u0435\u043b\u0435 \u043f\u0430\u043a\u0435\u0442\u044b \u043f\u0440\u043e\u043f\u0430\u0434\u0430\u044e\u0442 \u043f\u0430\u0447\u043a\u0430\u043c\u0438.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/fg\/qo\/jj\/fgqojj1gas9pgutyyyzkla_m5ze.jpeg\"><\/p>\n<p>  \u0421\u0440\u0435\u0434\u043d\u0438\u0439 packet gap \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0441\u044f 6. \u042d\u0442\u043e \u043e\u0447\u0435\u043d\u044c \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u044b\u0439 packet gap \u2014 \u043d\u0443\u0436\u043d\u043e \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u043a\u043e\u0434\u043e\u0432 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a. \u041f\u0440\u0438 \u044d\u0442\u043e\u043c \u0435\u0441\u0442\u044c \u043a\u0430\u043a\u043e\u0439-\u0442\u043e \u043f\u0438\u043a \u043d\u0430 11 \u2014 \u043d\u0435 \u0437\u043d\u0430\u044e \u043f\u043e\u0447\u0435\u043c\u0443, \u043d\u043e \u043f\u0430\u043a\u0435\u0442\u044b \u0438\u043d\u043e\u0433\u0434\u0430 \u043f\u0430\u0447\u043a\u0430\u043c\u0438 \u043f\u043e 11 \u043f\u0440\u043e\u043f\u0430\u0434\u0430\u044e\u0442. \u0418\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e packet gap \u044d\u0442\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/p>\n<p>  Google \u0442\u0430\u043a\u043e\u0435 \u0442\u043e\u0436\u0435 \u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b, \u0432\u0441\u0435 \u0433\u0440\u0435\u0437\u044f\u0442 FEC, \u043d\u043e \u043f\u043e\u043a\u0430 \u043d\u0438 \u0443 \u043a\u043e\u0433\u043e \u043d\u0435 \u0437\u0430\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u043e.<\/p>\n<p>  \u0415\u0441\u0442\u044c \u0435\u0449\u0435 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0432\u0430\u0440\u0438\u0430\u043d\u0442, \u043a\u043e\u0433\u0434\u0430 FEC \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043c\u043e\u0447\u044c.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/d9\/tb\/tw\/d9tbtwafxbt_t08_j9wvarw5icc.jpeg\"><\/p>\n<p>  \u041a\u0440\u043e\u043c\u0435 \u0440\u0435\u0442\u0440\u0430\u043d\u0441\u043c\u0438\u0442\u0430 \u0447\u0435\u0440\u0435\u0437 Retransmit Time Out, Fast Retransmit, \u0435\u0441\u0442\u044c \u0435\u0449\u0435 <strong>tail loss probe<\/strong>. \u042d\u0442\u043e \u0442\u0430\u043a\u0430\u044f \u0448\u0442\u0443\u043a\u0430, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u0448\u043b\u0435\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0438 \u0445\u0432\u043e\u0441\u0442\u0438\u043a \u043f\u0440\u043e\u043f\u0430\u043b. \u0422\u043e \u0435\u0441\u0442\u044c \u0432\u044b \u043f\u043e\u0441\u043b\u0430\u043b\u0438 \u0447\u0430\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445, \u043f\u043e\u0441\u043b\u0430\u043b\u0438 \u043f\u044f\u0442\u044b\u0439 \u043f\u0430\u043a\u0435\u0442 \u2014 \u043e\u043d \u0434\u043e\u0448\u0435\u043b. \u041f\u043e\u0442\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u0438 \u043f\u0440\u043e\u043f\u0430\u0434\u0430\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0441\u0435\u0442\u044c \u043f\u0440\u043e\u0432\u0430\u043b\u0438\u043b\u0430\u0441\u044c. \u041f\u0430\u043a\u0435\u0442\u044b \u043f\u0440\u043e\u043f\u0430\u0434\u0430\u044e\u0442, \u043f\u0440\u043e\u043f\u0430\u0434\u0430\u044e\u0442, \u0438 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0438 acknowledgement \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u043f\u044f\u0442\u044b\u0439 \u043f\u0430\u043a\u0435\u0442.<\/p>\n<p>  \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u0434\u043e\u0448\u043b\u0438 \u043b\u0438 \u044d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435, \u0432\u044b \u0447\u0435\u0440\u0435\u0437 \u043a\u0430\u043a\u043e\u0435-\u0442\u043e \u0432\u0440\u0435\u043c\u044f \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0435 \u0434\u0435\u043b\u0430\u0442\u044c TLP (tail loss probe), \u0441\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c, \u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d \u043b\u0438 \u043a\u043e\u043d\u0435\u0446. \u0414\u0435\u043b\u043e \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043f\u0435\u0440\u0435\u0441\u044b\u043b\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u043b\u0430\u0441\u044c, \u0438 \u0432\u044b \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0448\u043b\u0435\u0442\u0435, \u0442\u043e Fast Retransmit \u043d\u0435 \u0441\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442. \u0427\u0442\u043e\u0431\u044b \u044d\u0442\u043e \u043f\u043e\u0447\u0438\u043d\u0438\u0442\u044c, \u0434\u0435\u043b\u0430\u0439\u0442\u0435 TLP.<\/p>\n<p>  \u041a TLP \u043c\u043e\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c FEC. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0441\u0435 \u043f\u0430\u043a\u0435\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u043f\u0440\u0438\u0448\u043b\u0438, \u043f\u043e\u0441\u0447\u0438\u0442\u0430\u0442\u044c \u043f\u043e \u043d\u0438\u043c parity \u0438 \u0434\u0435\u043b\u0430\u0442\u044c \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0443 TLP \u0441 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u043c parity-\u043f\u0430\u043a\u0435\u0442\u043e\u043c.<\/p>\n<p>  \u042d\u0442\u043e \u0432\u0441\u0435 \u043a\u043b\u0430\u0441\u0441\u043d\u043e, \u043a\u0430\u0436\u0435\u0442\u0441\u044f, \u0434\u043e\u043b\u0436\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c. \u041d\u043e \u0435\u0441\u0442\u044c \u0442\u0430\u043a\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/pt\/y5\/qm\/pty5qmye2nqwrocxnp3fv5-gll4.jpeg\"><\/p>\n<p>  \u041c\u044b \u0441\u043e\u0431\u0440\u0430\u043b\u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0443, \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u043e\u0441\u044c, \u0447\u0442\u043e 98% \u043e\u0448\u0438\u0431\u043e\u043a \u0447\u0438\u043d\u0438\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 Fast Retransmit. \u041e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u0447\u0438\u043d\u0438\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 Retransmit Time Out, \u0438 \u043c\u0435\u043d\u044c\u0448\u0435 1% \u2014 \u0447\u0435\u0440\u0435\u0437 TLP. \u0415\u0441\u043b\u0438 \u0432\u044b \u0435\u0449\u0435 \u0447\u0442\u043e-\u0442\u043e \u043f\u043e\u0447\u0438\u043d\u0438\u0442\u0435 FEC, \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c 0,5%.<\/p>\n<blockquote><p>TCP \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 FEC. \u0412 UDP \u043d\u0435 \u0442\u0440\u0443\u0434\u043d\u043e \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c, \u043d\u043e \u0432 \u043e\u0431\u0449\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f TCP \u0445\u0432\u0430\u0442\u0430\u0435\u0442.<\/p><\/blockquote>\n<p>  <\/p>\n<h2>Performance<\/h2>\n<p>  \u041d\u0435\u043b\u044c\u0437\u044f \u0431\u044b\u043b\u043e \u0431\u044b \u043d\u0435 \u0437\u0430\u0434\u0435\u0442\u044c performance, \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044f TCP \u0441 UDP.<\/p>\n<p>  TCP \u2014 \u043e\u0447\u0435\u043d\u044c \u0441\u0442\u0430\u0440\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0439, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, LSO (large segment offload) \u0438 zerocopy. \u0421\u0435\u0439\u0447\u0430\u0441 \u0434\u043b\u044f UDP \u044d\u0442\u043e \u0432\u0441\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c UDP \u0432\u0441\u0435\u0433\u043e 20% \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e TCP \u0441 \u0442\u0435\u0445 \u0436\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432. \u041d\u043e \u0443\u0436\u0435 \u0435\u0441\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f (<a href=\"https:\/\/lwn.net\/Articles\/752184\/\">UDP GSO<\/a>, <a href=\"https:\/\/lwn.net\/Articles\/655299\/\">zerocopy<\/a>), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0432 Linux \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u044d\u0442\u043e.<\/p>\n<p>  \u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e zerocopy \u0438 LSO \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0442\u0435\u0440\u044f\u0435\u0442\u0441\u044f pacing.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/qu\/6i\/th\/qu6ith66mowy_jm9iznjsstsadm.jpeg\"><\/p>\n<h2>Time to market \u0438\u043b\u0438 \u0447\u0442\u043e \u0443\u0431\u0438\u043b\u043e TCP<\/h2>\n<p>  \u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0433\u0434\u0430 \u0441\u0442\u0430\u043b\u0438 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u0431\u0435\u0441\u043f\u0440\u043e\u0432\u043e\u0434\u043d\u044b\u0435 \u0441\u0435\u0442\u0438, \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043e\u0432 TCP: TLP, TFO, \u043d\u043e\u0432\u044b\u0435 Congestion control, RACK, BBR \u0438 \u043f\u0440\u043e\u0447\u0435\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/nq\/lx\/5a\/nqlx5a_sq5zzvi2au81ulptczew.jpeg\"><\/p>\n<blockquote><p>\u041d\u043e \u043e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u0438\u0437 \u043d\u0438\u0445 \u043d\u0435 \u0432\u043d\u0435\u0434\u0440\u044f\u044e\u0442\u0441\u044f, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e TCP, \u043a\u0430\u043a \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u043e\u043a\u043e\u0441\u0442\u0435\u043d\u0435\u043b. \u0412\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u044b \u0437\u0430\u0433\u043b\u044f\u0434\u044b\u0432\u0430\u044e\u0442 \u0432 TCP \u043f\u0430\u043a\u0435\u0442\u044b \u0438 \u043e\u0436\u0438\u0434\u0430\u044e\u0442 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u043e\u043d\u0438 \u043e\u0436\u0438\u0434\u0430\u044e\u0442. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0435\u0433\u043e \u043e\u0447\u0435\u043d\u044c \u0442\u0440\u0443\u0434\u043d\u043e \u043c\u0435\u043d\u044f\u0442\u044c.<\/p><\/blockquote>\n<p>  \u041a \u0442\u043e\u043c\u0443 \u0436\u0435 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u043a\u043b\u0438\u0435\u043d\u0442\u044b \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u0434\u043e\u043b\u0433\u043e, \u0438 \u043c\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u043c \u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f. \u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u0447\u0442\u043e \u0438\u0437 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0441\u0432\u0435\u0436\u0438\u0445 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435, \u0430 \u0447\u0442\u043e \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435, \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u0430\u0437\u0430\u0442\u044c, \u0447\u0442\u043e \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435 \u043f\u043e\u0447\u0442\u0438 \u043d\u0438\u0447\u0435\u0433\u043e.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/au\/57\/iw\/au57iwnkvrjzkvrpo2osdo7f49e.jpeg\"><\/p>\n<p>  \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0432 user space, \u043f\u043e \u043a\u0440\u0430\u0439\u043d\u0435\u0439 \u043c\u0435\u0440\u0435 \u043f\u043e\u043a\u0430 \u0432\u044b \u0432\u0441\u0435 \u044d\u0442\u0438 \u0444\u0438\u0447\u0438 \u043d\u0430\u043a\u0430\u043f\u043b\u0438\u0432\u0430\u0435\u0442\u0435, \u043a\u0430\u0436\u0435\u0442\u0441\u044f \u043d\u0435 \u0442\u0430\u043a\u0438\u043c \u043f\u043b\u043e\u0445\u0438\u043c.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/6i\/o6\/po\/6io6poew2qopzofy3vbflm3-5a8.jpeg\"><\/p>\n<p>  \u0421 TCP \u0444\u0438\u0447\u0438 \u0440\u0430\u0441\u043a\u0430\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0433\u043e\u0434\u0430\u043c\u0438. \u0414\u043b\u044f \u0441\u0432\u043e\u0435\u0433\u043e UDP-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0432\u0435\u0440\u0441\u0438\u044e \u0431\u0443\u043a\u0432\u0430\u043b\u044c\u043d\u043e \u0437\u0430 \u043e\u0434\u0438\u043d \u0430\u043f\u0434\u0435\u0439\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041d\u043e \u043d\u0430\u0434\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c version negotiation.<\/p>\n<h2>TCP vs self-made UDP. Final fighting<\/h2>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/fx\/q6\/ct\/fxq6ctnz94vaf7pfr7jmrcbz7lu.jpeg\"><\/p>\n<ul>\n<li>Send\/recv buffer: \u0434\u043b\u044f \u0441\u0432\u043e\u0435\u0433\u043e \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430 \u043c\u043e\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c mutable buffer, \u0441 TCP \u0431\u0443\u0434\u0443\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 buffer bloat.<\/li>\n<li>Congestion control \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435. \u0423 UDP \u043e\u043d\u0438 \u043b\u044e\u0431\u044b\u0435.\u00a0<\/li>\n<li>\u041d\u043e\u0432\u044b\u0439 Congestion control \u0442\u0440\u0443\u0434\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 TCP, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u043d\u0443\u0436\u043d\u043e \u043c\u043e\u0434\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c acknowledgement, \u0432\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u044d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435.<\/li>\n<li>\u041c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u2014 \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u0430\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430. \u0421\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f head-of-line blocking, \u043f\u0440\u0438 \u043f\u043e\u0442\u0435\u0440\u0435 \u043f\u0430\u043a\u0435\u0442\u0430 \u0432\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043c\u0443\u043b\u044c\u0442\u0438\u043f\u043b\u0435\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432 TCP. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 HTTP2.0 \u043f\u043e TCP \u043d\u0435 \u0434\u043e\u043b\u0436\u0435\u043d \u0434\u0430\u0432\u0430\u0442\u044c \u0441\u0435\u0440\u044c\u0435\u0437\u043d\u043e\u0433\u043e \u043f\u0440\u0438\u0440\u043e\u0441\u0442\u0430.<\/li>\n<li>\u0421\u043b\u0443\u0447\u0430\u0438, \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u044f \u0437\u0430 0-RTT \u0432 TCP \u043a\u0440\u0430\u0439\u043d\u0435 \u0440\u0435\u0434\u043a\u0438, \u043f\u043e\u0440\u044f\u0434\u043a\u0430 5 %, \u0438 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 97 % \u0434\u043b\u044f self-made UDP.<\/li>\n<\/ul>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/4f\/_f\/oe\/4f_foen6zvxf5mexl8p6jfu2izm.jpeg\"><\/p>\n<ul>\n<li>IP Migration \u2014 \u043d\u0435 \u0442\u0430\u043a\u0430\u044f \u0432\u0430\u0436\u043d\u0430\u044f \u0444\u0438\u0447\u0430, \u043d\u043e \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043f\u043e\u0434\u043f\u0438\u0441\u043e\u043a \u0438 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u043e\u043d\u0430 \u043e\u0434\u043d\u043e\u0437\u043d\u0430\u0447\u043d\u043e \u043d\u0443\u0436\u043d\u0430, \u043d\u043e \u0432 TCP \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u0430.<\/li>\n<li>Nat unbinding \u043d\u0435 \u0432 \u043f\u043e\u043b\u044c\u0437\u0443 UDP. \u0412 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0432 UDP \u043d\u0430\u0434\u043e \u0447\u0430\u0441\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c ping-pong \u043f\u0430\u043a\u0435\u0442\u044b.<\/li>\n<li>Packet pacing \u0432 UDP \u043f\u0440\u043e\u0441\u0442\u043e\u0439, \u043f\u043e\u043a\u0430 \u043d\u0435\u0442 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438, \u0432 TCP \u044d\u0442\u0430 \u043e\u043f\u0446\u0438\u044f \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442.<\/li>\n<li>\u00a0MTU \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u0442\u0430\u043c, \u0438 \u0442\u0430\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0441\u0440\u0430\u0432\u043d\u0438\u043c\u044b.<\/li>\n<li>\u041f\u043e \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 TCP, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0447\u0435\u043c UDP \u0441\u0435\u0439\u0447\u0430\u0441, \u0435\u0441\u043b\u0438 \u0432\u044b \u0440\u0430\u0437\u0434\u0430\u0435\u0442\u0435 \u0442\u043e\u043d\u043d\u0443 \u0442\u0440\u0430\u0444\u0438\u043a\u0430. \u041d\u043e \u0437\u0430\u0442\u043e \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043e\u0447\u0435\u043d\u044c \u0434\u043e\u043b\u0433\u043e \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f.<\/li>\n<\/ul>\n<p>  \u0415\u0441\u043b\u0438 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0435 \u0441\u0430\u043c\u043e\u0435 \u0432\u0430\u0436\u043d\u043e\u0435, \u0442\u043e \u0443 UDP, \u0441\u043a\u043e\u0440\u0435\u0435, \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043b\u044e\u0441\u043e\u0432, \u0447\u0435\u043c \u043c\u0438\u043d\u0443\u0441\u043e\u0432.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/p4\/7k\/ys\/p47kysilkuqtb-x-zc0cwhigeoe.jpeg\"><\/p>\n<p>  <b>\u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c UDP!<\/b><\/p>\n<h2>\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 self-made UDP \u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u0445<\/h2>\n<p>  \u041c\u044b \u0441\u043e\u0431\u0440\u0430\u043b\u0438 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0441\u0442\u0435\u043d\u0434.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/rh\/er\/ec\/rherec8kewip9-ycek5qimdgvuw.jpeg\"><\/p>\n<p>  \u0415\u0441\u0442\u044c \u043a\u043b\u0438\u0435\u043d\u0442 \u043d\u0430 TCP \u0438 \u043d\u0430 UDP. \u041d\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0442\u0440\u0430\u0444\u0438\u043a \u0447\u0435\u0440\u0435\u0437 net shaper, \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442 \u0438 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440. \u041e\u0434\u0438\u043d \u0441\u0435\u0440\u0432\u0438\u0441 REST API, \u0432\u0442\u043e\u0440\u043e\u0439 \u0441 UDP. \u041f\u0440\u0438\u0447\u0451\u043c UDP \u0445\u043e\u0434\u0438\u0442 \u043d\u0430 \u0442\u043e\u0442 \u0436\u0435 REST API \u0432\u043d\u0443\u0442\u0440\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0434\u0430\u0442\u0430-\u0446\u0435\u043d\u0442\u0440\u0430, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435. \u0421\u043e\u0431\u0440\u0430\u043b\u0438 \u0440\u0430\u0437\u043d\u044b\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u0438 \u043d\u0430\u0448\u0438\u0445 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u0438 <a href=\"https:\/\/www.youtube.com\/watch?v=aXYJlizk3CQ&amp;amp;feature=youtu.be&amp;amp;t=3139\">\u0437\u0430\u043f\u0443\u0441\u0442\u0438\u043b\u0438 \u0442\u0435\u0441\u0442<\/a>.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/sy\/rf\/nf\/syrfnflhcgpr13bngr1y7cv5fle.jpeg\"><\/p>\n<p>  \u0418\u0437\u043c\u0435\u0440\u0438\u0432 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u043f\u043e \u043f\u043e\u0440\u0442\u0430\u043b\u0443, \u043c\u044b \u0443\u0432\u0438\u0434\u0435\u043b\u0438, \u0447\u0442\u043e \u043c\u044b \u0441\u043c\u043e\u0433\u043b\u0438 \u0443\u043c\u0435\u043d\u044c\u0448\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u0437\u043e\u0432\u0430 API \u043d\u0430 10%, \u043a\u0430\u0440\u0442\u0438\u043d\u043a\u0438 \u043d\u0430 7%. User activity \u0432\u044b\u0440\u043e\u0441\u043b\u0430 \u0432\u0441\u0435\u0433\u043e-\u043d\u0430\u0432\u0441\u0435\u0433\u043e \u043d\u0430 1 %, \u043d\u043e \u043c\u044b \u043d\u0435 \u0441\u0434\u0430\u0435\u043c\u0441\u044f, \u0434\u0443\u043c\u0430\u0435\u043c, \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u043b\u0443\u0447\u0448\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/o9\/wr\/bj\/o9wrbjk45dk58yjji6t8boe9-xw.jpeg\"><\/p>\n<p>  \u041f\u043e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430\u043c \u0443 \u043d\u0430\u0441 \u0441\u0435\u0439\u0447\u0430\u0441 \u043f\u043e\u0440\u044f\u0434\u043a\u0430 10 \u043c\u043b\u043d \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430 \u043d\u0430\u0448\u0435\u043c self-made UDP, \u0442\u0440\u0430\u0444\u0438\u043a \u0434\u043e 80 \u0413\u0431\u0438\u0442\/c, 6 \u043c\u043b\u043d \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0432 \u0441\u0435\u043a\u0443\u043d\u0434\u0443 \u0438 20 \u0441\u0435\u0440\u0432\u0435\u0440\u043e\u0432 \u0432\u0441\u0435 \u044d\u0442\u043e \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u044e\u0442.<\/p>\n<h2>UDP checklist<br \/>  <\/h2>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u043f\u0438\u0441\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b, \u0432\u0430\u043c \u043d\u0443\u0436\u0435\u043d \u0447\u0435\u043a \u043b\u0438\u0441\u0442:<\/p>\n<ul>\n<li>Pacing.<\/li>\n<li>MTU discovery.<\/li>\n<li><strong>\u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e\u0448\u0438\u0431\u043e\u043a \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e<\/strong>.<\/li>\n<li>Flow control \u0438 Congestion control.<\/li>\n<li>\u041e\u043f\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u0442\u044c IP Migration, TLP \u2014 \u044d\u0442\u043e \u043b\u0435\u0433\u043a\u043e.<\/li>\n<\/ul>\n<p>  \u041f\u043e\u043c\u043d\u0438\u0442\u0435, \u0447\u0442\u043e \u043a\u0430\u043d\u0430\u043b\u044b \u0430\u0441\u0438\u043c\u043c\u0435\u0442\u0440\u0438\u0447\u043d\u044b, \u0438 \u043f\u043e\u043a\u0430 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u0442 \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u0432\u0430\u0448 upload \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0441\u0442\u0430\u0438\u0432\u0430\u0442\u044c, \u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c.<\/p>\n<h2>QUIC<\/h2>\n<p>  \u0411\u044b\u043b\u043e \u0431\u044b \u043d\u0435\u0447\u0435\u0441\u0442\u043d\u043e \u0433\u043e\u0432\u043e\u0440\u0438\u0442\u044c, \u0447\u0442\u043e Google \u0442\u0430\u043a\u043e\u0433\u043e \u043d\u0435 \u0434\u0435\u043b\u0430\u043b.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/z0\/b9\/-v\/z0b9-v9kmmobln4nv2yado-rble.jpeg\"><\/p>\n<p>  \u0415\u0441\u0442\u044c \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b QUIC, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b Google \u043f\u043e\u0434 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u043e\u043c HTTP 2.0, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u0442\u043e \u0436\u0435 \u0441\u0430\u043c\u043e\u0435.<\/p>\n<h3>\u041f\u043e\u0447\u0435\u043c\u0443 QUIC \u043d\u0435 \u0442\u0430\u043a quick<\/h3>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u0432\u044b\u0448\u0435\u043b QUIC, \u043f\u043e\u044f\u0432\u0438\u043b\u043e\u0441\u044c \u043e\u0447\u0435\u043d\u044c \u043c\u043d\u043e\u0433\u043e \u0445\u0435\u0439\u0442\u0438\u043d\u0433\u0430 \u043f\u043e \u043f\u043e\u0432\u043e\u0434\u0443 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e Google \u0433\u043e\u0432\u043e\u0440\u0438\u0442, \u0447\u0442\u043e \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0431\u044b\u0441\u0442\u0440\u0435\u0435, \u0430 \u00ab\u044f \u043f\u043e\u043c\u0435\u0440\u044f\u043b \u0443 \u0441\u0435\u0431\u044f \u0434\u043e\u043c\u0430 \u043d\u0430 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435 \u2014 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u0435\u0435\u00bb.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/db\/5a\/vd\/db5avdtu1zaito8ntcmg-hdvwy8.jpeg\"><\/p>\n<p>  \u0412 \u044d\u0442\u043e\u0439 <a href=\"https:\/\/www.kth.se\/social\/files\/573b9e20f276545953b688f3\/Performance%20testing%20TCP%20and%20QUIC.pdf\">\u0441\u0442\u0430\u0442\u044c\u0435<\/a> \u043a\u0443\u0447\u0430 \u043a\u0430\u0440\u0442\u0438\u043d\u043e\u043a \u0438 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u0439.<\/p>\n<p>  \u0427\u0442\u043e \u0436\u0435, \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442\u0441\u044f, \u043c\u044b \u0432\u0441\u0435 \u044d\u0442\u043e \u0437\u0440\u044f \u0434\u0435\u043b\u0430\u043b\u0438, \u043b\u044e\u0434\u0438 \u043f\u043e\u043c\u0435\u0440\u0438\u043b\u0438 \u0437\u0430 \u043d\u0430\u0441? \u0415\u0441\u0442\u044c \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0434\u043e\u043c\u0430\u0448\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044f, \u0434\u0430\u0436\u0435 \u0441 \u043f\u0440\u0438\u043c\u0435\u0440\u0430\u043c\u0438 \u043a\u043e\u0434\u0430.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/id\/wr\/39\/idwr39saesks74hbadevlunieua.jpeg\"><\/p>\n<p>  \u041d\u0430 \u0441\u0430\u043c\u043e\u043c \u0434\u0435\u043b\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0439 \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u0432\u044b \u043d\u0435 \u0431\u0443\u0434\u0435\u0442\u0435 \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u044b, \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0442\u044f\u0445, \u0438 \u043f\u043e\u043a\u0430 \u043f\u043e\u0442\u0435\u0440\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043d\u0430 congestion loss \u0438 random loss. \u041d\u0443\u0436\u043d\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u0430\u044f \u044d\u043c\u0443\u043b\u044f\u0446\u0438\u044f \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0438.<\/p>\n<p>  \u041d\u043e \u0435\u0441\u0442\u044c \u0438 \u043f\u043e\u0437\u0438\u0442\u0438\u0432, \u0433\u043e\u0432\u043e\u0440\u044f\u0442, QUIC \u043d\u0435 \u043b\u0443\u0447\u0448\u0435 \u0438 \u043d\u0435 \u0445\u0443\u0436\u0435. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c \u0432 \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0442\u044f\u0445 QUIC \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u043e.<\/p>\n<h2>\u0411\u0443\u0434\u0443\u0449\u0435\u0435<\/h2>\n<p>  \u041d\u0435\u0434\u0430\u0432\u043d\u043e Google \u043d\u0430\u0437\u0432\u0430\u043b \u0432\u0435\u0440\u0441\u0438\u044e HTTP 2.0 \u043f\u043e\u0432\u0435\u0440\u0445 QUIC HTTP 3, \u0447\u0442\u043e\u0431\u044b \u043d\u0435 \u043f\u0443\u0442\u0430\u0442\u044c\u0441\u044f, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e HTTP 2.0 \u043c\u043e\u0433 \u0431\u044b\u0442\u044c \u043f\u043e\u0432\u0435\u0440\u0445 TCP \u0438 \u043f\u043e\u0432\u0435\u0440\u0445 QUIC. \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u043d HTTP 3.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/go\/ra\/z4\/goraz4ktgsje7ankwyipapzeow0.jpeg\"><\/p>\n<p>  \u0411\u044b\u043b \u0435\u0449\u0435 <a href=\"https:\/\/mailarchive.ietf.org\/arch\/msg\/quic\/RLRs4nB1lwFCZ_7k0iuz0ZBa35s\">Google QUIC<\/a> \u2014 \u044d\u0442\u043e QUIC, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u0432 Chrome, \u0438 iQUIC \u2014 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 QUIC. \u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0439 QUIC \u043f\u043e \u0444\u0430\u043a\u0442\u0443 \u043d\u0438\u0433\u0434\u0435 \u043d\u0435 \u0438\u043c\u043f\u043b\u0435\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0441\u044f, \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u044b iQUIC \u043d\u0435 \u0445\u044d\u043d\u0434\u0448\u0435\u0439\u043a\u0430\u043b\u0438\u0441\u044c \u0441 Google QUIC. \u0421\u0435\u0439\u0447\u0430\u0441 \u043e\u043d\u0438 \u043e\u0431\u0435\u0449\u0430\u044e\u0442 \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443 \u0440\u0435\u0448\u0438\u0442\u044c, \u0438 \u0441\u043a\u043e\u0440\u043e \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e.<\/p>\n<h3>QUIC \u043f\u043e\u0432\u0441\u044e\u0434\u0443<\/h3>\n<p>  \u0415\u0441\u043b\u0438 \u0432\u044b \u0435\u0449\u0435 \u043d\u0435 \u0432\u0435\u0440\u0438\u0442\u0435, \u0447\u0442\u043e TCP \u0443\u043c\u0435\u0440, \u0442\u043e \u044f \u0432\u0430\u043c \u0441\u043a\u0430\u0436\u0443, \u0447\u0442\u043e \u043a\u043e\u0433\u0434\u0430 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 Chrome, Android, \u0430 \u0441\u043a\u043e\u0440\u043e \u0438 iOS, \u0438 \u0445\u043e\u0434\u0438\u0442\u0435 \u0432 google, youtube \u0438 \u043f\u0440\u043e\u0447\u0435\u0435, \u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 QUIC \u0438 UDP (<a href=\"https:\/\/datatracker.ietf.org\/doc\/draft-ietf-quic-transport\/\">\u043f\u0440\u0443\u0444\u043b\u0438\u043d\u043a<\/a>).<\/p>\n<p>  <a href=\"https:\/\/w3techs.com\/technologies\/details\/ce-quic\/all\/all\">QUIC \u0441\u0435\u0439\u0447\u0430\u0441<\/a> \u2014 \u044d\u0442\u043e:<\/p>\n<ul>\n<li>1,9 % \u0432\u0441\u0435\u0445 \u0432\u0435\u0431\u0441\u0430\u0439\u0442\u043e\u0432;<\/li>\n<li>12 % \u0432\u0441\u0435\u0433\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430;<\/li>\n<li>30 % \u0432\u0438\u0434\u0435\u043e \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0432 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0441\u0435\u0442\u044f\u0445.<\/li>\n<\/ul>\n<p>  \u041a\u0430\u043a \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c, \u0447\u0442\u043e \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 QUIC, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0432\u0435\u0440\u0438\u0442\u0435? \u041e\u0442\u043a\u0440\u043e\u0439\u0442\u0435 \u0432 Chrome Wireshark. \u042f \u0438\u0441\u043a\u0430\u043b iQUIC, \u043d\u0438\u0433\u0434\u0435 \u043d\u0435 \u043d\u0430\u0448\u0435\u043b, \u043d\u043e GQUIC \u0431\u044b\u0432\u0430\u0435\u0442.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/t_\/8v\/9q\/t_8v9qsq9jcgbjkf9vqqr67vw7k.jpeg\"><\/p>\n<p>  \u0422\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0439\u0442\u0438 \u0432 \u0441\u0435\u0442\u044c \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u0438 \u0442\u043e\u0436\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u0447\u0442\u043e \u0442\u0430\u043c \u0435\u0441\u0442\u044c GQUIC.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/av\/ko\/p5\/avkop5nphmxm6ee3rqc2hi23wzu.jpeg\"><\/p>\n<h3>\u0415\u0449\u0451 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u0431\u0443\u0434\u0443\u0449\u0435\u0433\u043e<\/h3>\n<p>  \u0421\u043a\u043e\u0440\u043e \u043d\u0430\u0441 \u0436\u0434\u0451\u0442 multipath.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/d8\/bi\/wo\/d8biwobqjbdjqdn8g-wb7gegka0.jpeg\"><\/p>\n<p>  \u041a\u043e\u0433\u0434\u0430 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0439 \u043a\u043b\u0438\u0435\u043d\u0442, \u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0435\u0441\u0442\u044c \u0438 Wi-Fi, \u0438 3G, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0431\u0430 \u043a\u0430\u043d\u0430\u043b\u0430. Multipath TCP \u0441\u0435\u0439\u0447\u0430\u0441 \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435, \u0441\u043a\u043e\u0440\u043e \u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u0432 \u044f\u0434\u0440\u0435 Linux. \u041e\u0447\u0435\u0432\u0438\u0434\u043d\u043e, \u0447\u0442\u043e \u0434\u043e \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432 \u043e\u043d \u0434\u043e\u0439\u0434\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u0440\u043e, \u0434\u0443\u043c\u0430\u044e, \u043d\u0430 UDP \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/pb\/7o\/yt\/pb7oytnkrhutg6qtqlwq0jf3p4o.jpeg\"><\/p>\n<p>  \u0422\u0430\u043a \u043a\u0430\u043a \u043c\u044b \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043c \u043c\u0430\u0441\u0441\u0443 \u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u0439 \u043e\u0431\u044a\u0435\u043c\u043e\u043c \u043f\u043e 3 \u0422\u0431, \u043c\u044b \u043e\u0447\u0435\u043d\u044c \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0442\u0430\u043a\u0438\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 \u043a\u0430\u043a CDN \u0438 p2p \u0440\u0430\u0437\u0434\u0430\u0447\u0430, \u043a\u043e\u0433\u0434\u0430 \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043c\u043d\u043e\u0433\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043f\u043e \u0432\u0441\u0435\u043c\u0443 \u043c\u0438\u0440\u0443.<\/p>\n<p>  \u0412 IPv6 \u0435\u0441\u0442\u044c multicast \u0441 UDP, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0430\u043a\u0435\u0442\u044b \u0441\u0440\u0430\u0437\u0443 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u043c \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u0432\u0448\u0438\u043c\u0441\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c. \u041f\u043e\u044d\u0442\u043e\u043c\u0443 \u044f \u0434\u0443\u043c\u0430\u044e, \u0447\u0442\u043e \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0438 CDN \u0438 p2p \u0432 \u0441\u043a\u043e\u0440\u043e\u043c \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u0431\u0443\u0434\u0443\u0442 \u043d\u0435 \u043d\u0443\u0436\u043d\u044b, \u0435\u0441\u043b\u0438 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u0435\u0441\u044c \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c multicast \u043d\u0430 IPv6.<\/p>\n<h2>\u0412\u044b\u0432\u043e\u0434\u044b<\/h2>\n<p>  \u041d\u0430\u0434\u0435\u044e\u0441\u044c, \u0447\u0442\u043e \u0432\u0430\u043c \u0441\u0442\u0430\u043b\u043e \u043f\u043e\u043d\u044f\u0442\u043d\u0435\u0435:<\/p>\n<ul>\n<li>\u041a\u0430\u043a \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0441\u0435\u0442\u044c, \u0438 \u0447\u0442\u043e TCP \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u044c \u043f\u043e\u0432\u0435\u0440\u0445 UDP \u0438 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043b\u0443\u0447\u0448\u0435.\u00a0<\/li>\n<li>\u0427\u0442\u043e TCP \u043d\u0435 \u0442\u0430\u043a \u043f\u043b\u043e\u0445, \u0435\u0441\u043b\u0438 \u0435\u0433\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c, \u043d\u043e \u043e\u043d \u0440\u0435\u0430\u043b\u044c\u043d\u043e \u0441\u0434\u0430\u043b\u0441\u044f \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u0443\u0436\u0435 \u043f\u043e\u0447\u0442\u0438 \u043d\u0435 \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f.<\/li>\n<li>\u041d\u0435 \u0432\u0435\u0440\u044c\u0442\u0435 \u0445\u0435\u0439\u0442\u0435\u0440\u0430\u043c UDP, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0433\u043e\u0432\u043e\u0440\u044f\u0442, \u0447\u0442\u043e \u0432 user space \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043d\u0435 \u0431\u0443\u0434\u0435\u0442. \u0412\u0441\u0435 \u044d\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c. \u041f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u2014 \u044d\u0442\u043e \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0431\u0443\u0434\u0443\u0449\u0435\u0435.<\/li>\n<li>\u0415\u0441\u043b\u0438 \u043d\u0435 \u0432\u0435\u0440\u0438\u0442\u0435, \u0442\u043e \u0441\u0435\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u0438 \u043d\u0443\u0436\u043d\u043e \u0442\u0440\u043e\u0433\u0430\u0442\u044c \u0440\u0443\u043a\u0430\u043c\u0438. \u042f \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b, \u043a\u0430\u043a \u043f\u043e\u0447\u0442\u0438 \u0432\u0441\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c.<\/li>\n<\/ul>\n<p>  \u0412\u044b \u0432\u0441\u0451 \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u043b\u0438 \u0438 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u043b\u0438\u0441\u044c, \u0447\u0442\u043e \u0434\u0430\u043b\u044c\u0448\u0435?<\/p>\n<ul>\n<li>\u041d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0439\u0442\u0435 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b (TCP, UDP \u2014 \u043d\u0435\u0432\u0430\u0436\u043d\u043e) \u043f\u043e\u0434 \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e (\u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0441\u0435\u0442\u0438 + \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438).<\/li>\n<li>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u0440\u0435\u0446\u0435\u043f\u0442\u044b TCP, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u044f \u0432\u0430\u043c \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u043b: TFO, send\/recv buffer, TLS1.3, CC&#8230;\u00a0<\/li>\n<li>\u0414\u0435\u043b\u0430\u0439\u0442\u0435 \u0441\u0432\u043e\u0438 UDP-\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u044b, \u0435\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u044b.\u00a0<\/li>\n<li>\u0415\u0441\u043b\u0438 \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0441\u0432\u043e\u0439 UDP, \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 UDP check list, \u0447\u0442\u043e \u0432\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0432\u0441\u0435, \u0447\u0442\u043e \u043d\u0430\u0434\u043e. \u0417\u0430\u0431\u0443\u0434\u0435\u0442\u0435 \u043a\u0430\u043a\u0443\u044e-\u043d\u0438\u0431\u0443\u0434\u044c \u0435\u0440\u0443\u043d\u0434\u0443 \u0442\u0438\u043f\u0430 pacing, \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c.<\/li>\n<\/ul>\n<p>  \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u043d\u0435\u0442 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432, \u0433\u043e\u0442\u043e\u0432\u044c\u0442\u0435 \u0441\u0432\u043e\u044e \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443 \u043f\u043e\u0434 QUIC. \u041e\u043d \u0440\u0430\u043d\u043e \u0438\u043b\u0438 \u043f\u043e\u0437\u0434\u043d\u043e \u043a \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442.<\/p>\n<blockquote><p>\u041c\u044b \u0441 \u0432\u0430\u043c\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u043c \u0431\u0443\u0434\u0443\u0449\u0435\u0435. \u0422\u043e, \u043a\u0430\u043a\u0438\u043c\u0438 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b\u0430\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f, \u0440\u0435\u0448\u0430\u0435\u043c \u043c\u044b \u0441\u0430\u043c\u0438. \u0425\u043e\u0442\u0438\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c QUIC \u2014 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435, \u0445\u043e\u0442\u0438\u0442\u0435 \u0441\u0432\u043e\u0435 UDP \u0438\u043b\u0438 \u043e\u0441\u0442\u0430\u0442\u044c\u0441\u044f \u043d\u0430 TCP \u2014 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0439\u0442\u0435 \u0431\u0443\u0434\u0443\u0449\u0435\u0435 \u0441\u0430\u043c\u0438.<\/p><\/blockquote>\n<p>  <\/p>\n<h3>\u041f\u043e\u043b\u0435\u0437\u043d\u044b\u0435 \u0441\u0441\u044b\u043b\u043a\u0438<\/h3>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/habr.com\/ru\/company\/oleg-bunin\/blog\/428217\/\">\u041c\u0438\u043b\u043b\u0438\u043e\u043d \u0432\u0438\u0434\u0435\u043e\u0437\u0432\u043e\u043d\u043a\u043e\u0432 \u0432 \u0441\u0443\u0442\u043a\u0438 \u0438\u043b\u0438 \u00ab\u041f\u043e\u0437\u0432\u043e\u043d\u0438 \u043c\u0430\u043c\u0435!\u00bb<\/a>.<\/li>\n<li><a href=\"https:\/\/habr.com\/ru\/company\/oleg-bunin\/blog\/413479\/\">\u041f\u0438\u0448\u0435\u043c \u0441\u0432\u043e\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u043f\u043e\u0432\u0435\u0440\u0445 UDP<\/a>.<\/li>\n<li><a href=\"https:\/\/sdcast.ksdaemon.ru\/2019\/01\/sdcast-97\/\">\u041f\u043e\u0434\u043a\u0430\u0441\u0442 \u043f\u0440\u043e \u0441\u0435\u0442\u0435\u0432\u0443\u044e \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044e<\/a>.<\/li>\n<li><a href=\"https:\/\/linuxpiter.com\/materials\/2476\">\u0423\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u0435 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 \u043f\u043b\u043e\u0445\u0438\u0445 \u0441\u0435\u0442\u044f\u0445<\/a>.<\/li>\n<\/ul>\n<p>  <\/p>\n<blockquote><p>\u0414\u043e 7 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f \u043d\u0430 \u043c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u0438\u0439 <a href=\"https:\/\/www.highload.ru\/moscow\/2019\">HighLoad++<\/a> \u0435\u0449\u0435 \u043c\u043e\u0436\u043d\u043e <a href=\"https:\/\/conf.ontico.ru\/lectures\/propose\/?conference=hl2019\">\u043f\u043e\u0434\u0430\u0442\u044c \u0437\u0430\u044f\u0432\u043a\u0443<\/a> \u0438 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f, \u0430 \u043a\u0430\u043a \u0432\u044b \u0433\u043e\u0442\u043e\u0432\u0438\u0442\u0435 \u0441\u0432\u043e\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u044b \u0434\u043b\u044f \u0432\u044b\u0441\u043e\u043a\u0438\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u043a. \u041d\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0430 \u0443\u0436\u0435 \u043f\u043e\u0441\u0442\u0435\u043f\u0435\u043d\u043d\u043e \u043d\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f, \u043e\u0442 \u041e\u0434\u043d\u043e\u043a\u043b\u0430\u0441\u0441\u043d\u0438\u043a\u043e\u0432 \u043f\u0440\u0438\u043d\u044f\u0442\u044b \u0434\u043e\u043a\u043b\u0430\u0434\u044b \u043e <a href=\"https:\/\/www.highload.ru\/moscow\/2019\/abstracts\/5793\">\u043d\u043e\u0432\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435<\/a> \u0433\u0440\u0430\u0444\u0430 \u0434\u0440\u0443\u0437\u0435\u0439, \u043e\u0431 <a href=\"https:\/\/www.highload.ru\/moscow\/2019\/abstracts\/5854\">\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u0435\u0440\u0432\u0438\u0441\u0430 \u043f\u043e\u0434\u0430\u0440\u043e\u0447\u043a\u043e\u0432<\/a> \u043f\u043e\u0434 \u0432\u044b\u0441\u043e\u043a\u0438\u0435 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0438 \u043e \u0442\u043e\u043c, <a href=\"https:\/\/www.highload.ru\/moscow\/2019\/abstracts\/5664\">\u0447\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c<\/a>, \u0435\u0441\u043b\u0438 \u0432\u044b \u0432\u0441\u0435 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043b\u0438, \u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0434\u043e\u0445\u043e\u0434\u044f\u0442 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e.<\/p><\/blockquote>\n<\/div>\n<p>               <script class=\"js-mediator-script\">!function(e){function t(t,n){if(!(n in e)){for(var r,a=e.document,i=a.scripts,o=i.length;o--;)if(-1!==i[o].src.indexOf(t)){r=i[o];break}if(!r){r=a.createElement(\"script\"),r.type=\"text\/javascript\",r.async=!0,r.defer=!0,r.src=t,r.charset=\"UTF-8\";var d=function(){var e=a.getElementsByTagName(\"script\")[0];e.parentNode.insertBefore(r,e)};\"[object Opera]\"==e.opera?a.addEventListener?a.addEventListener(\"DOMContentLoaded\",d,!1):e.attachEvent(\"onload\",d):d()}}}t(\"\/\/mediator.mail.ru\/script\/2820404\/\",\"_mediator\")}(window);<\/script>     <br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/company\/oleg-bunin\/blog\/461829\/\"> https:\/\/habr.com\/ru\/company\/oleg-bunin\/blog\/461829\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html js-mediator-article\">\u041f\u0435\u0440\u0435\u0434 \u043a\u0430\u0436\u0434\u044b\u043c \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u043c, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u043c \u0445\u043e\u0442\u044f \u0431\u044b 1 \u041c\u0431\u0438\u0442\/\u0441\u0435\u043a \u0442\u0440\u0430\u0444\u0438\u043a\u0430 \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u0432\u043e\u043f\u0440\u043e\u0441: \u00ab\u041a\u0430\u043a? \u043f\u043e TCP \u0438\u043b\u0438 \u043f\u043e UDP?\u00bb \u0412 \u043f\u0440\u0438\u043a\u043b\u0430\u0434\u043d\u044b\u0445 \u043e\u0431\u043b\u0430\u0441\u0442\u044f\u0445, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430\u0445 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u0443\u0436\u0435 \u0441\u043b\u043e\u0436\u0438\u043b\u0438\u0441\u044c \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0435\u043d\u0438\u044f \u0438 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u0438 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u044f \u043f\u043e\u0434\u043e\u0431\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439.<\/p>\n<p>  \u041f\u043e \u0438\u0434\u0435\u0435, \u0435\u0441\u043b\u0438 \u0431\u044b, \u043a \u043f\u0440\u0438\u043c\u0435\u0440\u0443, \u043e\u0434\u043d\u0430\u0436\u0434\u044b \u043e\u0434\u0438\u043d \u043b\u0435\u043d\u0438\u0432\u044b\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u043d\u0435 \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0441\u0432\u043e\u0439 ML \u043d\u0430 Python (\u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0435\u0433\u043e \u0438 \u0437\u043d\u0430\u043b), \u043c\u0438\u0440 \u0441\u043a\u043e\u0440\u0435\u0435 \u0432\u0441\u0435\u0433\u043e \u043d\u0438\u043a\u043e\u0433\u0434\u0430 \u043d\u0435 \u043f\u0440\u043e\u043d\u0438\u043a\u0441\u044f \u0431\u044b \u0442\u0430\u043a\u043e\u0439 \u043b\u044e\u0431\u043e\u0432\u044c\u044e \u043a \u043f\u0440\u0435\u0437\u0440\u0435\u043d\u043d\u043e\u043c\u0443 \u00ab\u0441\u0443\u043f\u0435\u0440-\u0434\u0436\u0430\u0432\u0430-\u043a\u043e\u0434\u0435\u0440\u0430\u043c\u0438\u00bb \u044f\u0437\u044b\u043a\u0443. \u0410 \u0441\u0435\u0433\u043e\u0434\u043d\u044f \u0441\u043b\u0430\u0431\u043e\u0441\u0442\u0438 \u044d\u0442\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430 \u0432 \u043f\u0440\u043e\u0448\u043b\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0431\u0435\u0437\u043e\u0433\u043e\u0432\u043e\u0440\u043e\u0447\u043d\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u044e\u0442 \u0435\u043c\u0443 \u043f\u0435\u0440\u0432\u0435\u043d\u0441\u0442\u0432\u043e \u0432 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0438 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043c\u043d\u043e\u0433\u043e\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u044b\u0445 \u043c\u0430\u0439\u043d\u0435\u0440\u0441\u043a\u0438\u0445 \u0410\/\u0411.<\/p>\n<p>  \u0421\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043c\u043d\u043e\u0433\u043e\u0435: ARM \u0441 Intel, iOS \u0438 Android, \u0430 Mortal Combat \u0441 Injustice. \u0418 \u043d\u0430\u0440\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043a\u043e\u0441\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0445\u043e\u043b\u0438\u0432\u0430\u0440, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u0435\u0440\u043d\u0435\u043c\u0441\u044f \u043a \u0442\u0435\u043c\u0435 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043c\u043e\u0432 \u0440\u0430\u0437\u043d\u043e\u0444\u043e\u0440\u043c\u0430\u0442\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0435\u043d\u0442\u0430.<\/p>\n<p>  \u0414\u0435\u0441\u044f\u0442\u044c \u043b\u0435\u0442 \u043d\u0430\u0437\u0430\u0434 \u0432\u0441\u0435 \u0431\u044b\u043b\u0438 \u0430\u0431\u0441\u043e\u043b\u044e\u0442\u043d\u043e \u0443\u0432\u0435\u0440\u0435\u043d\u044b, UDP \u2014 \u044d\u0442\u043e \u0447\u0442\u043e-\u0442\u043e \u043f\u0440\u043e \u043d\u0435\u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0443\u044e \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0443. \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u0435\u043d \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u2014 \u044d\u0442\u043e TCP. \u0418 \u0432\u043e\u043f\u0440\u0435\u043a\u0438 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u044f\u043c \u0432 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u0438\u0435, \u043a\u0430\u0436\u0443\u0449\u0438\u0435\u0441\u044f \u043d\u0435\u0441\u0440\u0430\u0432\u043d\u0438\u043c\u044b\u043c\u0438 \u0432\u0435\u0449\u0438, \u043a\u0430\u043a TCP \u0438 UDP.<\/p>\n<p>  <img decoding=\"async\" src=\"https:\/\/habrastorage.org\/webt\/p5\/tk\/9z\/p5tk9z_pumv5hmxly_ob3rvdikg.jpeg\"><br \/>  <i>\u041e\u0441\u0442\u043e\u0440\u043e\u0436\u043d\u043e, \u043f\u043e\u0434 \u043a\u0430\u0442\u043e\u043c 99 \u0438\u043b\u043b\u044e\u0441\u0442\u0440\u0430\u0446\u0438\u0439 \u0438 \u0441\u0445\u0435\u043c \u0438 \u0432\u0441\u0435 \u0432\u0430\u0436\u043d\u044b\u0435. <\/i>  <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-293430","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/293430","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=293430"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/293430\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=293430"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=293430"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=293430"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}