{"id":792,"date":"2026-01-25T09:51:14","date_gmt":"2026-01-25T01:51:14","guid":{"rendered":"https:\/\/ixriver.com\/?p=792"},"modified":"2026-01-25T09:51:14","modified_gmt":"2026-01-25T01:51:14","slug":"%e8%a7%86%e9%a2%91%e4%bc%a0%e8%be%93","status":"publish","type":"post","link":"https:\/\/ixriver.com\/?p=792","title":{"rendered":"\u89c6\u9891\u4f20\u8f93"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_65 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title \" >\u76ee\u5f55<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/ixriver.com\/?p=792\/#Video_Transport\" title=\"Video Transport\">Video Transport<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/ixriver.com\/?p=792\/#%E6%A6%82%E8%BF%B0\" title=\"\u6982\u8ff0\">\u6982\u8ff0<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/ixriver.com\/?p=792\/#%E4%BC%A0%E8%BE%93%E5%8D%8F%E8%AE%AE\" title=\"\u4f20\u8f93\u534f\u8bae\">\u4f20\u8f93\u534f\u8bae<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/ixriver.com\/?p=792\/#RTPRTCP%EF%BC%88Real-time_Transport_Protocol%EF%BC%89\" title=\"RTP\/RTCP\uff08Real-time Transport Protocol\uff09\">RTP\/RTCP\uff08Real-time Transport Protocol\uff09<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/ixriver.com\/?p=792\/#RTMP%EF%BC%88Real-Time_Messaging_Protocol%EF%BC%89\" title=\"RTMP\uff08Real-Time Messaging Protocol\uff09\">RTMP\uff08Real-Time Messaging Protocol\uff09<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/ixriver.com\/?p=792\/#WebRTC%EF%BC%88Web_Real-Time_Communication%EF%BC%89\" title=\"WebRTC\uff08Web Real-Time Communication\uff09\">WebRTC\uff08Web Real-Time Communication\uff09<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/ixriver.com\/?p=792\/#HLS%EF%BC%88HTTP_Live_Streaming%EF%BC%89\" title=\"HLS\uff08HTTP Live Streaming\uff09\">HLS\uff08HTTP Live Streaming\uff09<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/ixriver.com\/?p=792\/#DASH%EF%BC%88Dynamic_Adaptive_Streaming_over_HTTP%EF%BC%89\" title=\"DASH\uff08Dynamic Adaptive Streaming over HTTP\uff09\">DASH\uff08Dynamic Adaptive Streaming over HTTP\uff09<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/ixriver.com\/?p=792\/#%E4%BC%A0%E8%BE%93%E6%9C%BA%E5%88%B6\" title=\"\u4f20\u8f93\u673a\u5236\">\u4f20\u8f93\u673a\u5236<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/ixriver.com\/?p=792\/#%E5%88%86%E5%8C%85%E4%B8%8E%E9%87%8D%E7%BB%84\" title=\"\u5206\u5305\u4e0e\u91cd\u7ec4\">\u5206\u5305\u4e0e\u91cd\u7ec4<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/ixriver.com\/?p=792\/#%E4%B8%A2%E5%8C%85%E9%87%8D%E4%BC%A0\" title=\"\u4e22\u5305\u91cd\u4f20\">\u4e22\u5305\u91cd\u4f20<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/ixriver.com\/?p=792\/#ARQ%EF%BC%88Automatic_Repeat_Request%EF%BC%8C%E8%87%AA%E5%8A%A8%E9%87%8D%E4%BC%A0%E8%AF%B7%E6%B1%82%EF%BC%89\" title=\"ARQ\uff08Automatic Repeat Request\uff0c\u81ea\u52a8\u91cd\u4f20\u8bf7\u6c42\uff09\">ARQ\uff08Automatic Repeat Request\uff0c\u81ea\u52a8\u91cd\u4f20\u8bf7\u6c42\uff09<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/ixriver.com\/?p=792\/#FEC%EF%BC%88Forward_Error_Correction%EF%BC%8C%E5%89%8D%E5%90%91%E7%BA%A0%E9%94%99%EF%BC%89\" title=\"FEC\uff08Forward Error Correction\uff0c\u524d\u5411\u7ea0\u9519\uff09\">FEC\uff08Forward Error Correction\uff0c\u524d\u5411\u7ea0\u9519\uff09<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/ixriver.com\/?p=792\/#%E6%B7%B7%E5%90%88%E6%96%B9%E6%A1%88\" title=\"\u6df7\u5408\u65b9\u6848\">\u6df7\u5408\u65b9\u6848<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/ixriver.com\/?p=792\/#%E6%96%B9%E6%A1%88%E5%AF%B9%E6%AF%94%E4%B8%8E%E9%80%89%E6%8B%A9\" title=\"\u65b9\u6848\u5bf9\u6bd4\u4e0e\u9009\u62e9\">\u65b9\u6848\u5bf9\u6bd4\u4e0e\u9009\u62e9<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-16\" href=\"https:\/\/ixriver.com\/?p=792\/#%E6%8B%A5%E5%A1%9E%E6%8E%A7%E5%88%B6\" title=\"\u62e5\u585e\u63a7\u5236\">\u62e5\u585e\u63a7\u5236<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-17\" href=\"https:\/\/ixriver.com\/?p=792\/#QoS%E4%BF%9D%E9%9A%9C\" title=\"QoS\u4fdd\u969c\">QoS\u4fdd\u969c<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-18\" href=\"https:\/\/ixriver.com\/?p=792\/#%E4%BC%A0%E8%BE%93%E4%BC%98%E5%8C%96\" title=\"\u4f20\u8f93\u4f18\u5316\">\u4f20\u8f93\u4f18\u5316<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-19\" href=\"https:\/\/ixriver.com\/?p=792\/#%E8%87%AA%E9%80%82%E5%BA%94%E7%A0%81%E7%8E%87%EF%BC%88ABR%EF%BC%89\" title=\"\u81ea\u9002\u5e94\u7801\u7387\uff08ABR\uff09\">\u81ea\u9002\u5e94\u7801\u7387\uff08ABR\uff09<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-20\" href=\"https:\/\/ixriver.com\/?p=792\/#%E7%BD%91%E7%BB%9C%E7%8A%B6%E6%80%81%E6%A3%80%E6%B5%8B\" title=\"\u7f51\u7edc\u72b6\u6001\u68c0\u6d4b\">\u7f51\u7edc\u72b6\u6001\u68c0\u6d4b<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-21\" href=\"https:\/\/ixriver.com\/?p=792\/#%E7%BC%93%E5%86%B2%E7%AD%96%E7%95%A5\" title=\"\u7f13\u51b2\u7b56\u7565\">\u7f13\u51b2\u7b56\u7565<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h1><span class=\"ez-toc-section\" id=\"Video_Transport\"><\/span>Video Transport<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<h2><span class=\"ez-toc-section\" id=\"%E6%A6%82%E8%BF%B0\"><\/span>\u6982\u8ff0<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>\u89c6\u9891\u4f20\u8f93\u8d1f\u8d23\u5c06\u7f16\u7801\u540e\u7684\u89c6\u9891\u6570\u636e\u901a\u8fc7\u7f51\u7edc\u4f20\u8f93\u5230\u63a5\u6536\u7aef\u3002<\/p>\n<h2><span class=\"ez-toc-section\" id=\"%E4%BC%A0%E8%BE%93%E5%8D%8F%E8%AE%AE\"><\/span>\u4f20\u8f93\u534f\u8bae<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"RTPRTCP%EF%BC%88Real-time_Transport_Protocol%EF%BC%89\"><\/span>RTP\/RTCP\uff08Real-time Transport Protocol\uff09<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><strong>RTP<\/strong>\uff1a\u5b9e\u65f6\u4f20\u8f93\u534f\u8bae\uff0c\u7528\u4e8e\u4f20\u8f93\u97f3\u89c6\u9891\u6570\u636e<\/li>\n<li><strong>RTCP<\/strong>\uff1aRTP\u63a7\u5236\u534f\u8bae\uff0c\u7528\u4e8e\u4f20\u8f93\u63a7\u5236\u4fe1\u606f\uff08\u4e22\u5305\u7387\u3001\u5ef6\u8fdf\u7b49\uff09<\/li>\n<li><strong>\u7279\u70b9<\/strong>\uff1a\u4f4e\u5ef6\u8fdf\u3001\u652f\u6301\u591a\u64ad\u3001UDP\u4f20\u8f93<\/li>\n<li><strong>\u5e94\u7528\u573a\u666f<\/strong>\uff1a\u89c6\u9891\u4f1a\u8bae\u3001VoIP\u3001\u5b9e\u65f6\u6d41\u5a92\u4f53<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"RTMP%EF%BC%88Real-Time_Messaging_Protocol%EF%BC%89\"><\/span>RTMP\uff08Real-Time Messaging Protocol\uff09<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>Adobe\u5f00\u53d1\u7684\u534f\u8bae\uff0c\u57fa\u4e8eTCP<\/li>\n<li><strong>\u7279\u70b9<\/strong>\uff1a\u5ef6\u8fdf\u8f83\u4f4e\u3001\u652f\u6301\u63a8\u6d41\u548c\u62c9\u6d41<\/li>\n<li><strong>\u5e94\u7528\u573a\u666f<\/strong>\uff1a\u76f4\u64ad\u63a8\u6d41\u3001CDN\u5206\u53d1<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"WebRTC%EF%BC%88Web_Real-Time_Communication%EF%BC%89\"><\/span>WebRTC\uff08Web Real-Time Communication\uff09<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>W3C\u6807\u51c6\uff0c\u7528\u4e8e\u6d4f\u89c8\u5668\u5b9e\u65f6\u901a\u4fe1<\/li>\n<li><strong>\u7279\u70b9<\/strong>\uff1a\u4f4e\u5ef6\u8fdf\u3001P2P\u4f20\u8f93\u3001\u5185\u7f6e\u62e5\u585e\u63a7\u5236<\/li>\n<li><strong>\u5e94\u7528\u573a\u666f<\/strong>\uff1a\u89c6\u9891\u4f1a\u8bae\u3001\u5728\u7ebf\u6559\u80b2\u3001\u5b9e\u65f6\u901a\u4fe1<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"HLS%EF%BC%88HTTP_Live_Streaming%EF%BC%89\"><\/span>HLS\uff08HTTP Live Streaming\uff09<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>Apple\u5f00\u53d1\u7684HTTP\u6d41\u5a92\u4f53\u534f\u8bae<\/li>\n<li><strong>\u7279\u70b9<\/strong>\uff1a\u57fa\u4e8eHTTP\u3001\u652f\u6301\u81ea\u9002\u5e94\u7801\u7387\u3001\u5ef6\u8fdf\u8f83\u9ad8<\/li>\n<li><strong>\u5e94\u7528\u573a\u666f<\/strong>\uff1a\u70b9\u64ad\u3001\u76f4\u64ad\uff08\u5ef6\u8fdf\u8981\u6c42\u4e0d\u9ad8\u7684\u573a\u666f\uff09<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"DASH%EF%BC%88Dynamic_Adaptive_Streaming_over_HTTP%EF%BC%89\"><\/span>DASH\uff08Dynamic Adaptive Streaming over HTTP\uff09<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>MPEG\u6807\u51c6\uff0c\u57fa\u4e8eHTTP\u7684\u81ea\u9002\u5e94\u6d41\u5a92\u4f53<\/li>\n<li><strong>\u7279\u70b9<\/strong>\uff1a\u6807\u51c6\u5316\u3001\u652f\u6301\u591a\u5382\u5546\u3001\u81ea\u9002\u5e94\u7801\u7387<\/li>\n<li><strong>\u5e94\u7528\u573a\u666f<\/strong>\uff1a\u70b9\u64ad\u3001\u76f4\u64ad<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"%E4%BC%A0%E8%BE%93%E6%9C%BA%E5%88%B6\"><\/span>\u4f20\u8f93\u673a\u5236<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"%E5%88%86%E5%8C%85%E4%B8%8E%E9%87%8D%E7%BB%84\"><\/span>\u5206\u5305\u4e0e\u91cd\u7ec4<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>\u5c06\u89c6\u9891\u5e27\u5206\u5272\u4e3a\u9002\u5408\u7f51\u7edc\u4f20\u8f93\u7684\u5305<\/li>\n<li>\u6dfb\u52a0\u5e8f\u5217\u53f7\u3001\u65f6\u95f4\u6233\u7b49\u5143\u6570\u636e<\/li>\n<li>\u63a5\u6536\u7aef\u6839\u636e\u5e8f\u5217\u53f7\u91cd\u7ec4\u6570\u636e<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"%E4%B8%A2%E5%8C%85%E9%87%8D%E4%BC%A0\"><\/span>\u4e22\u5305\u91cd\u4f20<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u4e22\u5305\u662f\u7f51\u7edc\u4f20\u8f93\u4e2d\u7684\u5e38\u89c1\u95ee\u9898\uff0c\u7279\u522b\u662f\u5728UDP\u4f20\u8f93\u4e2d\u3002\u4e1a\u754c\u6709\u591a\u79cd\u65b9\u6848\u6765\u5904\u7406\u4e22\u5305\uff0c\u4e3b\u8981\u5206\u4e3a\u4e24\u5927\u7c7b\uff1aARQ\uff08\u81ea\u52a8\u91cd\u4f20\u8bf7\u6c42\uff09\u548cFEC\uff08\u524d\u5411\u7ea0\u9519\uff09\u3002<\/p>\n<h4><span class=\"ez-toc-section\" id=\"ARQ%EF%BC%88Automatic_Repeat_Request%EF%BC%8C%E8%87%AA%E5%8A%A8%E9%87%8D%E4%BC%A0%E8%AF%B7%E6%B1%82%EF%BC%89\"><\/span>ARQ\uff08Automatic Repeat Request\uff0c\u81ea\u52a8\u91cd\u4f20\u8bf7\u6c42\uff09<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>ARQ\u901a\u8fc7\u68c0\u6d4b\u4e22\u5305\u5e76\u8bf7\u6c42\u91cd\u4f20\u6765\u6062\u590d\u4e22\u5931\u7684\u6570\u636e\u3002<\/p>\n<p><strong>\u5de5\u4f5c\u539f\u7406<\/strong>\uff1a<br \/>\n&#8211; \u53d1\u9001\u7aef\uff1a\u53d1\u9001\u6570\u636e\u5305\uff0c\u7ef4\u62a4\u53d1\u9001\u7a97\u53e3\uff0c\u7b49\u5f85\u786e\u8ba4<br \/>\n&#8211; \u63a5\u6536\u7aef\uff1a\u68c0\u6d4b\u4e22\u5305\uff08\u901a\u8fc7\u5e8f\u5217\u53f7\u95f4\u9699\uff09\uff0c\u53d1\u9001\u91cd\u4f20\u8bf7\u6c42<br \/>\n&#8211; \u53d1\u9001\u7aef\uff1a\u6536\u5230\u91cd\u4f20\u8bf7\u6c42\u540e\uff0c\u91cd\u65b0\u53d1\u9001\u4e22\u5931\u7684\u6570\u636e\u5305<\/p>\n<p><strong>ARQ\u7c7b\u578b<\/strong><\/p>\n<p><strong>Stop-and-Wait ARQ\uff08\u505c\u7b49ARQ\uff09<\/strong><br \/>\n&#8211; <strong>\u539f\u7406<\/strong>\uff1a\u53d1\u9001\u4e00\u4e2a\u5305\u540e\u7b49\u5f85\u786e\u8ba4\uff0c\u6536\u5230\u786e\u8ba4\u540e\u518d\u53d1\u9001\u4e0b\u4e00\u4e2a\u5305<br \/>\n&#8211; <strong>\u7279\u70b9<\/strong>\uff1a<br \/>\n  &#8211; \u5b9e\u73b0\u7b80\u5355\uff0c\u4f46\u6548\u7387\u4f4e<br \/>\n  &#8211; \u6bcf\u4e2a\u5305\u90fd\u9700\u8981\u5f80\u8fd4\u65f6\u95f4\uff08RTT\uff09\u7b49\u5f85\u786e\u8ba4<br \/>\n  &#8211; \u6548\u7387 = \u4f20\u8f93\u65f6\u95f4 \/ (RTT + \u4f20\u8f93\u65f6\u95f4)\uff0c\u541e\u5410\u91cf\u4f4e<br \/>\n  &#8211; \u5ef6\u8fdf\u9ad8\uff0c\u4e0d\u9002\u5408\u5b9e\u65f6\u5e94\u7528<br \/>\n&#8211; <strong>\u9002\u7528\u573a\u666f<\/strong>\uff1a\u4f4e\u5e26\u5bbd\u3001\u53ef\u5bb9\u5fcd\u9ad8\u5ef6\u8fdf\u7684\u573a\u666f\uff0c\u6216\u4f5c\u4e3a\u5176\u4ed6ARQ\u7684\u57fa\u7840\u548c\u6559\u5b66\u793a\u4f8b<\/p>\n<p><strong>Go-Back-N ARQ\uff08\u56de\u9000N\u6b65ARQ\uff09<\/strong><br \/>\n&#8211; <strong>\u539f\u7406<\/strong>\uff1a\u53d1\u9001\u7aef\u7ef4\u62a4\u4e00\u4e2a\u53d1\u9001\u7a97\u53e3\uff08\u5927\u5c0f\u4e3aN\uff09\uff0c\u53ef\u4ee5\u8fde\u7eed\u53d1\u9001\u591a\u4e2a\u5305\uff1b\u63a5\u6536\u7aef\u6309\u5e8f\u63a5\u6536\uff0c\u53d1\u73b0\u4e22\u5305\u540e\u4e22\u5f03\u540e\u7eed\u6240\u6709\u5305\u5e76\u53d1\u9001NACK\uff0c\u53d1\u9001\u7aef\u6536\u5230NACK\u540e\u4ece\u4e22\u5305\u5904\u5f00\u59cb\u91cd\u4f20\u7a97\u53e3\u5185\u7684\u6240\u6709\u5305<br \/>\n&#8211; <strong>\u7279\u70b9<\/strong>\uff1a<br \/>\n  &#8211; \u6548\u7387\u9ad8\u4e8e\u505c\u7b49ARQ\uff0c\u53ef\u4ee5\u8fde\u7eed\u53d1\u9001<br \/>\n  &#8211; \u63a5\u6536\u7aef\u9700\u8981\u7f13\u5b58\u7a97\u53e3\u5927\u5c0f\u7684\u6570\u636e<br \/>\n  &#8211; \u4e22\u5305\u4f1a\u5bfc\u81f4\u540e\u7eed\u5305\u4e5f\u88ab\u4e22\u5f03\uff08\u5373\u4f7f\u5df2\u6536\u5230\uff09\uff0c\u9700\u8981\u91cd\u4f20<br \/>\n  &#8211; \u76f8\u6bd4Selective Repeat\uff0c\u5b9e\u73b0\u7b80\u5355\u4f46\u6548\u7387\u8f83\u4f4e<br \/>\n&#8211; <strong>\u9002\u7528\u573a\u666f<\/strong>\uff1a\u7f51\u7edc\u8d28\u91cf\u8f83\u597d\u3001\u4e22\u5305\u7387\u4f4e\u7684\u573a\u666f<\/p>\n<p><strong>Selective Repeat ARQ\uff08\u9009\u62e9\u91cd\u4f20ARQ\uff09<\/strong><br \/>\n&#8211; <strong>\u539f\u7406<\/strong>\uff1a\u53d1\u9001\u7aef\u548c\u63a5\u6536\u7aef\u90fd\u7ef4\u62a4\u7a97\u53e3\uff0c\u63a5\u6536\u7aef\u53ef\u4ee5\u4e71\u5e8f\u63a5\u6536\u5e76\u7f13\u5b58\uff0c\u53ea\u8bf7\u6c42\u91cd\u4f20\u4e22\u5931\u7684\u5305\uff0c\u5df2\u6536\u5230\u7684\u5305\u53ef\u4ee5\u7ee7\u7eed\u5904\u7406\uff0c\u53d1\u9001\u7aef\u53ea\u91cd\u4f20\u4e22\u5931\u7684\u5305<br \/>\n&#8211; <strong>\u7279\u70b9<\/strong>\uff1a<br \/>\n  &#8211; \u6548\u7387\u6700\u9ad8\uff0c\u53ea\u91cd\u4f20\u4e22\u5931\u7684\u5305\uff0c\u4e0d\u6d6a\u8d39\u5e26\u5bbd<br \/>\n  &#8211; \u63a5\u6536\u7aef\u9700\u8981\u66f4\u5927\u7684\u7f13\u51b2\u533a\u6765\u7f13\u5b58\u4e71\u5e8f\u5305<br \/>\n  &#8211; \u5b9e\u73b0\u590d\u6742\u5ea6\u8f83\u9ad8\uff0c\u9700\u8981\u7ef4\u62a4\u53d1\u9001\u548c\u63a5\u6536\u7a97\u53e3\u72b6\u6001<br \/>\n&#8211; <strong>\u9002\u7528\u573a\u666f<\/strong>\uff1a\u7f51\u7edc\u8d28\u91cf\u4e0d\u7a33\u5b9a\u3001\u4e22\u5305\u7387\u8f83\u9ad8\u7684\u573a\u666f\uff0c\u6216\u5bf9\u6548\u7387\u8981\u6c42\u9ad8\u7684\u5e94\u7528<\/p>\n<p><strong>\u4e1a\u754cARQ\u5b9e\u73b0\u65b9\u6848<\/strong><\/p>\n<p><strong>RTP NACK\uff08Negative Acknowledgment\uff09<\/strong><br \/>\n&#8211; <strong>\u534f\u8bae<\/strong>\uff1a\u57fa\u4e8eRTP\/RTCP\u534f\u8bae<br \/>\n&#8211; <strong>\u539f\u7406<\/strong>\uff1a<br \/>\n  &#8211; \u63a5\u6536\u7aef\u901a\u8fc7RTCP\u53cd\u9988\u5305\uff08RTCP NACK\uff09\u901a\u77e5\u53d1\u9001\u7aef\u4e22\u5305<br \/>\n  &#8211; \u53d1\u9001\u7aef\u6536\u5230NACK\u540e\u91cd\u4f20\u4e22\u5931\u7684RTP\u5305<br \/>\n  &#8211; \u652f\u6301\u6279\u91cfNACK\uff08\u4e00\u6b21\u8bf7\u6c42\u591a\u4e2a\u4e22\u5931\u7684\u5305\uff09<br \/>\n&#8211; <strong>\u7279\u70b9<\/strong>\uff1a<br \/>\n  &#8211; \u6807\u51c6RTP\u534f\u8bae\u652f\u6301<br \/>\n  &#8211; \u5ef6\u8fdf = RTT + \u91cd\u4f20\u65f6\u95f4<br \/>\n  &#8211; \u9002\u5408\u4f4e\u5ef6\u8fdf\u573a\u666f\uff08&amp;lt 200ms\uff09<br \/>\n&#8211; <strong>\u5e94\u7528\u573a\u666f<\/strong>\uff1aWebRTC\u3001\u89c6\u9891\u4f1a\u8bae\u3001\u5b9e\u65f6\u901a\u4fe1<\/p>\n<p><strong>RTX\uff08RTP Retransmission\uff09<\/strong><br \/>\n&#8211; <strong>\u534f\u8bae<\/strong>\uff1aRFC 4588\u5b9a\u4e49\u7684RTP\u91cd\u4f20\u6269\u5c55<br \/>\n&#8211; <strong>\u539f\u7406<\/strong>\uff1a<br \/>\n  &#8211; \u4f7f\u7528\u72ec\u7acb\u7684RTP\u6d41\uff08RTX\u6d41\uff09\u4f20\u8f93\u91cd\u4f20\u5305<br \/>\n  &#8211; \u539f\u59cb\u6d41\u548c\u91cd\u4f20\u6d41\u4f7f\u7528\u4e0d\u540c\u7684SSRC<br \/>\n  &#8211; \u91cd\u4f20\u5305\u4f7f\u7528\u539f\u59cb\u5e8f\u5217\u53f7\u7684\u6620\u5c04\uff08Original Sequence Number\uff09<br \/>\n&#8211; <strong>\u7279\u70b9<\/strong>\uff1a<br \/>\n  &#8211; \u6807\u51c6\u5316\u65b9\u6848\uff0c\u517c\u5bb9\u6027\u597d<br \/>\n  &#8211; \u53ef\u4ee5\u533a\u5206\u539f\u59cb\u5305\u548c\u91cd\u4f20\u5305<br \/>\n  &#8211; \u652f\u6301\u7edf\u8ba1\u548c\u76d1\u63a7<br \/>\n&#8211; <strong>\u5e94\u7528\u573a\u666f<\/strong>\uff1aWebRTC\u3001SIP\u89c6\u9891\u901a\u8bdd<\/p>\n<p><strong>RED\uff08Redundancy Encoding\uff09<\/strong><br \/>\n&#8211; <strong>\u534f\u8bae<\/strong>\uff1aRFC 2198\u5b9a\u4e49\u7684\u5197\u4f59\u7f16\u7801<br \/>\n&#8211; <strong>\u539f\u7406<\/strong>\uff1a<br \/>\n  &#8211; \u5728RTP\u5305\u4e2d\u643a\u5e26\u524d\u4e00\u4e2a\u6216\u591a\u4e2a\u5305\u7684\u5197\u4f59\u6570\u636e<br \/>\n  &#8211; \u5982\u679c\u5f53\u524d\u5305\u4e22\u5931\uff0c\u53ef\u4ee5\u4ece\u540e\u7eed\u5305\u7684\u5197\u4f59\u6570\u636e\u4e2d\u6062\u590d<br \/>\n  &#8211; \u5982\u679c\u540e\u7eed\u5305\u4e22\u5931\uff0c\u53ef\u4ee5\u4ece\u5f53\u524d\u5305\u7684\u5197\u4f59\u6570\u636e\u4e2d\u6062\u590d<br \/>\n&#8211; <strong>\u7279\u70b9<\/strong>\uff1a<br \/>\n  &#8211; \u65e0\u9700\u5f80\u8fd4\u5ef6\u8fdf\uff0c\u6062\u590d\u901f\u5ea6\u5feb<br \/>\n  &#8211; \u589e\u52a0\u5e26\u5bbd\u5f00\u9500\uff08\u901a\u5e3820-50%\uff09<br \/>\n  &#8211; \u9002\u5408\u8fde\u7eed\u4e22\u5305\u8f83\u5c11\u7684\u573a\u666f<br \/>\n&#8211; <strong>\u5e94\u7528\u573a\u666f<\/strong>\uff1aVoIP\u3001\u97f3\u9891\u901a\u8bdd<\/p>\n<h4><span class=\"ez-toc-section\" id=\"FEC%EF%BC%88Forward_Error_Correction%EF%BC%8C%E5%89%8D%E5%90%91%E7%BA%A0%E9%94%99%EF%BC%89\"><\/span>FEC\uff08Forward Error Correction\uff0c\u524d\u5411\u7ea0\u9519\uff09<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>FEC\u901a\u8fc7\u53d1\u9001\u5197\u4f59\u6570\u636e\uff0c\u63a5\u6536\u7aef\u53ef\u4ee5\u5728\u4e0d\u8bf7\u6c42\u91cd\u4f20\u7684\u60c5\u51b5\u4e0b\u6062\u590d\u4e22\u5931\u7684\u6570\u636e\u3002<\/p>\n<p><strong>\u5de5\u4f5c\u539f\u7406<\/strong>\uff1a<br \/>\n&#8211; \u53d1\u9001\u7aef\uff1a\u5bf9\u539f\u59cb\u6570\u636e\u5305\u8fdb\u884c\u7f16\u7801\uff0c\u751f\u6210\u5197\u4f59\u5305\uff08FEC\u5305\uff09<br \/>\n&#8211; \u63a5\u6536\u7aef\uff1a\u5982\u679c\u90e8\u5206\u539f\u59cb\u5305\u4e22\u5931\uff0c\u53ef\u4ee5\u4f7f\u7528\u6536\u5230\u7684\u539f\u59cb\u5305\u548cFEC\u5305\u8fdb\u884c\u89e3\u7801\u6062\u590d<br \/>\n&#8211; \u4f18\u52bf\uff1a\u65e0\u9700\u5f80\u8fd4\u5ef6\u8fdf\uff0c\u6062\u590d\u901f\u5ea6\u5feb<\/p>\n<p><strong>FEC\u7c7b\u578b<\/strong><\/p>\n<p><strong>\u5757FEC\uff08Block FEC\uff09<\/strong><br \/>\n&#8211; <strong>\u539f\u7406<\/strong>\uff1a<br \/>\n  &#8211; \u5c06\u6570\u636e\u5305\u5206\u6210\u5757\uff08Block\uff09\uff0c\u6bcf\u5757\u5305\u542bK\u4e2a\u539f\u59cb\u5305<br \/>\n  &#8211; \u5bf9\u6bcf\u5757\u8fdb\u884c\u7f16\u7801\uff0c\u751f\u6210N\u4e2aFEC\u5305\uff08N &gt; K\uff09<br \/>\n  &#8211; \u63a5\u6536\u7aef\u53ea\u8981\u6536\u5230K\u4e2a\u5305\uff08\u539f\u59cb\u5305+FEC\u5305\uff09\uff0c\u5c31\u53ef\u4ee5\u6062\u590d\u6240\u6709K\u4e2a\u539f\u59cb\u5305<br \/>\n&#8211; <strong>\u7279\u70b9<\/strong>\uff1a<br \/>\n  &#8211; \u5b9e\u73b0\u7b80\u5355\uff0c\u8ba1\u7b97\u5f00\u9500\u5c0f<br \/>\n  &#8211; \u9700\u8981\u7b49\u5f85\u6574\u4e2a\u5757\u624d\u80fd\u89e3\u7801<br \/>\n  &#8211; \u9002\u5408\u6279\u91cf\u4f20\u8f93\u573a\u666f<br \/>\n&#8211; <strong>\u5e94\u7528\u573a\u666f<\/strong>\uff1a\u6587\u4ef6\u4f20\u8f93\u3001\u6279\u91cf\u6570\u636e\u53d1\u9001<\/p>\n<p><strong>\u5377\u79efFEC\uff08Convolutional FEC\uff09<\/strong><br \/>\n&#8211; <strong>\u539f\u7406<\/strong>\uff1a<br \/>\n  &#8211; \u4f7f\u7528\u6ed1\u52a8\u7a97\u53e3\uff0c\u5bf9\u8fde\u7eed\u7684\u591a\u4e2a\u5305\u8fdb\u884c\u7f16\u7801<br \/>\n  &#8211; \u6bcf\u4e2aFEC\u5305\u53ef\u4ee5\u4fdd\u62a4\u591a\u4e2a\u539f\u59cb\u5305<br \/>\n  &#8211; \u53ef\u4ee5\u8fde\u7eed\u89e3\u7801\uff0c\u65e0\u9700\u7b49\u5f85\u6574\u4e2a\u5757<br \/>\n&#8211; <strong>\u7279\u70b9<\/strong>\uff1a<br \/>\n  &#8211; \u5ef6\u8fdf\u66f4\u4f4e\uff0c\u9002\u5408\u5b9e\u65f6\u4f20\u8f93<br \/>\n  &#8211; \u5b9e\u73b0\u590d\u6742\u5ea6\u8f83\u9ad8<br \/>\n  &#8211; \u4fdd\u62a4\u8303\u56f4\u53ef\u914d\u7f6e<br \/>\n&#8211; <strong>\u5e94\u7528\u573a\u666f<\/strong>\uff1a\u5b9e\u65f6\u6d41\u5a92\u4f53\u3001\u76f4\u64ad<\/p>\n<p><strong>\u4e1a\u754cFEC\u5b9e\u73b0\u65b9\u6848<\/strong><\/p>\n<p><strong>ULPFEC\uff08Uneven Level Protection FEC\uff09<\/strong><br \/>\n&#8211; <strong>\u534f\u8bae<\/strong>\uff1aRFC 5109\u5b9a\u4e49\u7684RTP FEC\u6269\u5c55<br \/>\n&#8211; <strong>\u539f\u7406<\/strong>\uff1a<br \/>\n  &#8211; \u57fa\u4e8eXOR\u8fd0\u7b97\u7684\u7b80\u5355FEC<br \/>\n  &#8211; \u53ef\u4ee5\u5bf9\u591a\u4e2aRTP\u5305\u8fdb\u884cXOR\u751f\u6210FEC\u5305<br \/>\n  &#8211; \u652f\u6301\u591a\u7ea7\u4fdd\u62a4\uff08\u4e0d\u540c\u91cd\u8981\u6027\u7684\u5305\u4f7f\u7528\u4e0d\u540c\u7684FEC\u4fdd\u62a4\uff09<br \/>\n&#8211; <strong>\u7279\u70b9<\/strong>\uff1a<br \/>\n  &#8211; \u8ba1\u7b97\u5f00\u9500\u5c0f\uff0c\u5ef6\u8fdf\u4f4e<br \/>\n  &#8211; \u53ef\u4ee5\u4fdd\u62a4\u591a\u4e2a\u5305\uff08\u901a\u5e382-8\u4e2a\uff09<br \/>\n  &#8211; \u6807\u51c6RTP\u534f\u8bae\u652f\u6301<br \/>\n&#8211; <strong>\u5e94\u7528\u573a\u666f<\/strong>\uff1aWebRTC\u3001RTP\u6d41\u5a92\u4f53<\/p>\n<p><strong>Reed-Solomon FEC<\/strong><br \/>\n&#8211; <strong>\u539f\u7406<\/strong>\uff1a<br \/>\n  &#8211; \u57fa\u4e8eReed-Solomon\u7ea0\u9519\u7801<br \/>\n  &#8211; \u53ef\u4ee5\u6062\u590d\u4efb\u610fK\u4e2a\u5305\u4e2d\u7684M\u4e2a\u4e22\u5931\u5305\uff08K+M = N\uff09<br \/>\n  &#8211; \u6570\u5b66\u4e0a\u6700\u4f18\u7684\u7ea0\u9519\u7801<br \/>\n&#8211; <strong>\u7279\u70b9<\/strong>\uff1a<br \/>\n  &#8211; \u7ea0\u9519\u80fd\u529b\u5f3a\uff0c\u53ef\u4ee5\u6062\u590d\u591a\u4e2a\u4e22\u5931\u5305<br \/>\n  &#8211; \u8ba1\u7b97\u5f00\u9500\u8f83\u5927\uff08\u7279\u522b\u662f\u5927\u5757\u65f6\uff09<br \/>\n  &#8211; \u9700\u8981\u7b49\u5f85\u8db3\u591f\u7684\u5305\u624d\u80fd\u89e3\u7801<br \/>\n&#8211; <strong>\u5e94\u7528\u573a\u666f<\/strong>\uff1a\u6587\u4ef6\u4f20\u8f93\u3001\u5b58\u50a8\u7cfb\u7edf\u3001\u536b\u661f\u901a\u4fe1<\/p>\n<p><strong>RaptorQ FEC<\/strong><br \/>\n&#8211; <strong>\u539f\u7406<\/strong>\uff1a<br \/>\n  &#8211; \u57fa\u4e8e\u55b7\u6cc9\u7801\uff08Fountain Code\uff09\u7684FEC<br \/>\n  &#8211; \u53ef\u4ee5\u751f\u6210\u4efb\u610f\u6570\u91cf\u7684FEC\u5305<br \/>\n  &#8211; \u63a5\u6536\u7aef\u6536\u5230\u8db3\u591f\u6570\u91cf\u7684\u5305\uff08\u7565\u591a\u4e8e\u539f\u59cb\u5305\u6570\uff09\u5373\u53ef\u89e3\u7801<br \/>\n&#8211; <strong>\u7279\u70b9<\/strong>\uff1a<br \/>\n  &#8211; \u7075\u6d3b\u6027\u9ad8\uff0c\u53ef\u4ee5\u52a8\u6001\u8c03\u6574\u5197\u4f59\u5ea6<br \/>\n  &#8211; \u8ba1\u7b97\u5f00\u9500\u9002\u4e2d<br \/>\n  &#8211; \u9002\u5408\u5927\u89c4\u6a21\u5206\u53d1\u573a\u666f<br \/>\n&#8211; <strong>\u5e94\u7528\u573a\u666f<\/strong>\uff1aCDN\u5206\u53d1\u3001\u5e7f\u64ad\u573a\u666f<\/p>\n<p><strong>FlexFEC<\/strong><br \/>\n&#8211; <strong>\u534f\u8bae<\/strong>\uff1aRFC 8627\u5b9a\u4e49\u7684\u7075\u6d3bFEC\u65b9\u6848<br \/>\n&#8211; <strong>\u539f\u7406<\/strong>\uff1a<br \/>\n  &#8211; \u652f\u6301\u591a\u79cdFEC\u7f16\u7801\u65b9\u5f0f\uff08XOR\u3001Reed-Solomon\u7b49\uff09<br \/>\n  &#8211; \u53ef\u4ee5\u7075\u6d3b\u914d\u7f6e\u4fdd\u62a4\u53c2\u6570<br \/>\n  &#8211; \u652f\u63011D\u548c2D\u4fdd\u62a4\u6a21\u5f0f<br \/>\n&#8211; <strong>\u7279\u70b9<\/strong>\uff1a<br \/>\n  &#8211; \u7075\u6d3b\u6027\u9ad8\uff0c\u53ef\u914d\u7f6e\u6027\u5f3a<br \/>\n  &#8211; \u6807\u51c6\u534f\u8bae\uff0c\u517c\u5bb9\u6027\u597d<br \/>\n  &#8211; \u9002\u5408\u4e0d\u540c\u573a\u666f\u7684\u9700\u6c42<br \/>\n&#8211; <strong>\u5e94\u7528\u573a\u666f<\/strong>\uff1aWebRTC\u3001\u81ea\u9002\u5e94\u6d41\u5a92\u4f53<\/p>\n<h4><span class=\"ez-toc-section\" id=\"%E6%B7%B7%E5%90%88%E6%96%B9%E6%A1%88\"><\/span>\u6df7\u5408\u65b9\u6848<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><strong>ARQ + FEC \u7ec4\u5408<\/strong><br \/>\n&#8211; <strong>\u539f\u7406<\/strong>\uff1a<br \/>\n  &#8211; \u9996\u5148\u4f7f\u7528FEC\u5c1d\u8bd5\u6062\u590d\u4e22\u5305<br \/>\n  &#8211; \u5982\u679cFEC\u65e0\u6cd5\u6062\u590d\uff0c\u518d\u4f7f\u7528ARQ\u8bf7\u6c42\u91cd\u4f20<br \/>\n  &#8211; \u6839\u636e\u7f51\u7edc\u72b6\u51b5\u52a8\u6001\u8c03\u6574FEC\u5197\u4f59\u5ea6\u548cARQ\u7b56\u7565<br \/>\n&#8211; <strong>\u4f18\u52bf<\/strong>\uff1a<br \/>\n  &#8211; \u7ed3\u5408\u4e24\u79cd\u65b9\u6848\u7684\u4f18\u70b9<br \/>\n  &#8211; FEC\u5904\u7406\u5c0f\u8303\u56f4\u4e22\u5305\uff0cARQ\u5904\u7406\u5927\u8303\u56f4\u4e22\u5305<br \/>\n  &#8211; \u9002\u5e94\u4e0d\u540c\u7f51\u7edc\u6761\u4ef6<br \/>\n&#8211; <strong>\u5e94\u7528\u573a\u666f<\/strong>\uff1aWebRTC\u3001\u81ea\u9002\u5e94\u6d41\u5a92\u4f53<\/p>\n<p><strong>\u5206\u5c42FEC\uff08Layered FEC\uff09<\/strong><br \/>\n&#8211; <strong>\u539f\u7406<\/strong>\uff1a<br \/>\n  &#8211; \u5bf9\u4e0d\u540c\u91cd\u8981\u6027\u7684\u6570\u636e\u4f7f\u7528\u4e0d\u540c\u7ea7\u522b\u7684FEC\u4fdd\u62a4<br \/>\n  &#8211; \u5173\u952e\u5e27\u4f7f\u7528\u66f4\u5f3a\u7684FEC\u4fdd\u62a4<br \/>\n  &#8211; \u975e\u5173\u952e\u5e27\u4f7f\u7528\u8f83\u5f31\u7684FEC\u4fdd\u62a4<br \/>\n&#8211; <strong>\u4f18\u52bf<\/strong>\uff1a<br \/>\n  &#8211; \u5728\u5e26\u5bbd\u548c\u53ef\u9760\u6027\u4e4b\u95f4\u53d6\u5f97\u5e73\u8861<br \/>\n  &#8211; \u4f18\u5148\u4fdd\u8bc1\u5173\u952e\u6570\u636e\u7684\u53ef\u9760\u6027<br \/>\n&#8211; <strong>\u5e94\u7528\u573a\u666f<\/strong>\uff1a\u5206\u5c42\u7f16\u7801\u3001\u53ef\u6269\u5c55\u7f16\u7801<\/p>\n<h4><span class=\"ez-toc-section\" id=\"%E6%96%B9%E6%A1%88%E5%AF%B9%E6%AF%94%E4%B8%8E%E9%80%89%E6%8B%A9\"><\/span>\u65b9\u6848\u5bf9\u6bd4\u4e0e\u9009\u62e9<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p><strong>ARQ vs FEC \u5bf9\u6bd4<\/strong><\/p>\n<table>\n<thead>\n<tr>\n<th>\u7279\u6027<\/th>\n<th>ARQ<\/th>\n<th>FEC<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>\u6062\u590d\u5ef6\u8fdf<\/strong><\/td>\n<td>RTT + \u91cd\u4f20\u65f6\u95f4\uff08\u901a\u5e38100-500ms\uff09<\/td>\n<td>\u65e0\u9700\u5f80\u8fd4\uff0c\u5ef6\u8fdf\u4f4e\uff08\u901a\u5e38&amp;lt50ms\uff09<\/td>\n<\/tr>\n<tr>\n<td><strong>\u5e26\u5bbd\u5f00\u9500<\/strong><\/td>\n<td>\u4ec5\u91cd\u4f20\u4e22\u5931\u7684\u5305\uff08\u901a\u5e385-20%\uff09<\/td>\n<td>\u6301\u7eed\u53d1\u9001\u5197\u4f59\u6570\u636e\uff08\u901a\u5e3820-50%\uff09<\/td>\n<\/tr>\n<tr>\n<td><strong>\u8ba1\u7b97\u5f00\u9500<\/strong><\/td>\n<td>\u4f4e\uff08\u4e3b\u8981\u662f\u7f51\u7edc\u4f20\u8f93\uff09<\/td>\n<td>\u4e2d\u7b49\uff08\u9700\u8981\u7f16\u89e3\u7801\u8ba1\u7b97\uff09<\/td>\n<\/tr>\n<tr>\n<td><strong>\u5ef6\u8fdf\u7279\u6027<\/strong><\/td>\n<td>\u9700\u8981RTT\uff0c\u5ef6\u8fdf\u8f83\u9ad8\uff0c\u9002\u5408\u53ef\u5bb9\u5fcd\u8f83\u9ad8\u5ef6\u8fdf\u7684\u573a\u666f<\/td>\n<td>\u65e0\u9700\u5f80\u8fd4\uff0c\u5ef6\u8fdf\u4f4e\uff0c\u9002\u5408\u8d85\u4f4e\u5ef6\u8fdf\u573a\u666f\uff08&amp;lt100ms\uff09<\/td>\n<\/tr>\n<tr>\n<td><strong>\u9002\u7528\u4e22\u5305\u7387<\/strong><\/td>\n<td>\u4f4e\u5230\u4e2d\u7b49\u4e22\u5305\u7387\uff08&amp;lt10%\uff09<\/td>\n<td>\u4e2d\u7b49\u4e22\u5305\u7387\uff085-20%\uff09<\/td>\n<\/tr>\n<tr>\n<td><strong>\u5b9e\u73b0\u590d\u6742\u5ea6<\/strong><\/td>\n<td>\u4e2d\u7b49<\/td>\n<td>\u4e2d\u7b49\uff08FEC\u7f16\u7801\uff09\u5230\u9ad8\uff08\u590d\u6742FEC\uff09<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>\u4e1a\u754c\u65b9\u6848\u5bf9\u6bd4<\/strong><\/p>\n<table>\n<thead>\n<tr>\n<th>\u65b9\u6848<\/th>\n<th>\u7c7b\u578b<\/th>\n<th>\u5ef6\u8fdf<\/th>\n<th>\u5e26\u5bbd\u5f00\u9500<\/th>\n<th>\u5b9e\u73b0\u590d\u6742\u5ea6<\/th>\n<th>\u4e3b\u8981\u5e94\u7528<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>RTP NACK<\/strong><\/td>\n<td>ARQ<\/td>\n<td>\u4e2d\u7b49\uff08RTT\uff09<\/td>\n<td>\u4f4e\uff08\u4ec5\u91cd\u4f20\uff09<\/td>\n<td>\u4f4e<\/td>\n<td>WebRTC\u3001\u89c6\u9891\u4f1a\u8bae<\/td>\n<\/tr>\n<tr>\n<td><strong>RTX<\/strong><\/td>\n<td>ARQ<\/td>\n<td>\u4e2d\u7b49\uff08RTT\uff09<\/td>\n<td>\u4f4e\uff08\u4ec5\u91cd\u4f20\uff09<\/td>\n<td>\u4e2d\u7b49<\/td>\n<td>WebRTC\u3001SIP<\/td>\n<\/tr>\n<tr>\n<td><strong>RED<\/strong><\/td>\n<td>\u5197\u4f59\u7f16\u7801\/FEC<\/td>\n<td>\u4f4e\uff08\u65e0\u9700\u5f80\u8fd4\uff09<\/td>\n<td>\u4e2d\uff0820-30%\uff09<\/td>\n<td>\u4f4e<\/td>\n<td>VoIP\u3001\u97f3\u9891<\/td>\n<\/tr>\n<tr>\n<td><strong>ULPFEC<\/strong><\/td>\n<td>FEC<\/td>\n<td>\u4f4e\uff08\u65e0\u9700\u5f80\u8fd4\uff09<\/td>\n<td>\u4e2d\uff0820-40%\uff09<\/td>\n<td>\u4f4e<\/td>\n<td>WebRTC\u3001RTP<\/td>\n<\/tr>\n<tr>\n<td><strong>Reed-Solomon<\/strong><\/td>\n<td>FEC<\/td>\n<td>\u4e2d\u7b49\uff08\u9700\u7b49\u5f85\u5757\uff09<\/td>\n<td>\u4e2d\u9ad8\uff0830-50%\uff09<\/td>\n<td>\u9ad8<\/td>\n<td>\u6587\u4ef6\u4f20\u8f93\u3001\u5b58\u50a8<\/td>\n<\/tr>\n<tr>\n<td><strong>FlexFEC<\/strong><\/td>\n<td>FEC<\/td>\n<td>\u4f4e\u5230\u4e2d\u7b49<\/td>\n<td>\u53ef\u914d\u7f6e<\/td>\n<td>\u4e2d\u7b49<\/td>\n<td>WebRTC\u3001\u81ea\u9002\u5e94<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>\u9009\u62e9\u7b56\u7565<\/strong><\/p>\n<p><strong>\u6839\u636e\u5ef6\u8fdf\u8981\u6c42\u9009\u62e9\uff1a<\/strong><br \/>\n&#8211; <strong>\u8d85\u4f4e\u5ef6\u8fdf\uff08&amp;lt100ms\uff09<\/strong>\uff1a\u4f18\u5148\u4f7f\u7528FEC\uff08ULPFEC\u3001RED\uff09\u6216ARQ+FEC\u7ec4\u5408\uff0c\u907f\u514dARQ\u7684RTT\u5ef6\u8fdf<br \/>\n&#8211; <strong>\u4f4e\u5ef6\u8fdf\uff08100-200ms\uff09<\/strong>\uff1a\u4f18\u5148\u4f7f\u7528FEC\uff0c\u5982\u679c\u7f51\u7edcRTT\u8f83\u5c0f\uff08&amp;lt50ms\uff09\u4e5f\u53ef\u4f7f\u7528ARQ\uff08NACK\u3001RTX\uff09<br \/>\n&#8211; <strong>\u4e2d\u7b49\u5ef6\u8fdf\uff08200-500ms\uff09<\/strong>\uff1a\u53ef\u4ee5\u4f7f\u7528ARQ\u6216FEC\uff0cARQ\u5e26\u5bbd\u6548\u7387\u66f4\u9ad8<br \/>\n&#8211; <strong>\u9ad8\u5ef6\u8fdf\uff08&gt;500ms\uff09<\/strong>\uff1a\u4f18\u5148\u4f7f\u7528ARQ\uff0c\u5e26\u5bbd\u6548\u7387\u66f4\u9ad8\uff0c\u5ef6\u8fdf\u5f71\u54cd\u53ef\u63a5\u53d7<\/p>\n<p><strong>\u6839\u636e\u4e22\u5305\u7387\u9009\u62e9\uff1a<\/strong><br \/>\n&#8211; <strong>\u4f4e\u4e22\u5305\u7387\uff08&amp;lt5%\uff09<\/strong>\uff1a\u4f7f\u7528ARQ\uff08NACK\u3001RTX\uff09\uff0c\u5e26\u5bbd\u5f00\u9500\u5c0f<br \/>\n&#8211; <strong>\u4e2d\u7b49\u4e22\u5305\u7387\uff085-15%\uff09<\/strong>\uff1a\u4f7f\u7528FEC\uff08ULPFEC\uff09\u6216ARQ+FEC\u7ec4\u5408<br \/>\n&#8211; <strong>\u9ad8\u4e22\u5305\u7387\uff08&gt;15%\uff09<\/strong>\uff1a\u4f7f\u7528\u5f3aFEC\uff08Reed-Solomon\uff09\u6216\u5206\u5c42FEC<\/p>\n<p><strong>\u6839\u636e\u5e94\u7528\u573a\u666f\u9009\u62e9\uff1a<\/strong><br \/>\n&#8211; <strong>\u5b9e\u65f6\u89c6\u9891\u901a\u8bdd\/\u4f1a\u8bae<\/strong>\uff1aWebRTC\u65b9\u6848\uff08NACK + ULPFEC + RTX\uff09\uff0c\u7efc\u5408\u4f7f\u7528ARQ\u548cFEC<br \/>\n&#8211; <strong>\u76f4\u64ad\u63a8\u6d41<\/strong>\uff1aRTMP\uff08TCP\u81ea\u52a8\u91cd\u4f20\uff0c\u5ef6\u8fdf\u8f83\u9ad8\uff09\u6216UDP + FEC\uff08\u5ef6\u8fdf\u4f4e\u4f46\u9700\u5b9e\u73b0FEC\uff09<br \/>\n&#8211; <strong>\u70b9\u64ad<\/strong>\uff1aHTTP\/TCP\uff08\u5229\u7528TCP\u81ea\u52a8\u91cd\u4f20\uff09\u6216DASH\/HLS\uff08\u81ea\u9002\u5e94\u7801\u7387\uff0c\u5ef6\u8fdf\u8f83\u9ad8\u4f46\u4f53\u9a8c\u597d\uff09<br \/>\n&#8211; <strong>VoIP\u97f3\u9891<\/strong>\uff1aRED\uff08\u5197\u4f59\u7f16\u7801\uff0c\u5ef6\u8fdf\u4f4e\uff09\u6216NACK\uff08ARQ\uff0c\u5ef6\u8fdf\u8f83\u9ad8\u4f46\u5e26\u5bbd\u6548\u7387\u9ad8\uff09<br \/>\n&#8211; <strong>\u6587\u4ef6\u4f20\u8f93<\/strong>\uff1aTCP\uff08\u81ea\u52a8\u91cd\u4f20\uff0c\u53ef\u9760\uff09\u6216Reed-Solomon FEC\uff08\u6279\u91cf\u4f20\u8f93\u573a\u666f\uff09<\/p>\n<p><strong>WebRTC\u7684\u4e22\u5305\u6062\u590d\u65b9\u6848\uff08\u4e1a\u754c\u6700\u4f73\u5b9e\u8df5\uff09<\/strong><\/p>\n<p>WebRTC\u7efc\u5408\u4f7f\u7528\u591a\u79cd\u65b9\u6848\uff0c\u5b9e\u73b0\u6700\u4f73\u7684\u6027\u80fd\u548c\u53ef\u9760\u6027\uff1a<br \/>\n1. <strong>NACK<\/strong>\uff1a\u68c0\u6d4b\u4e22\u5305\u5e76\u8bf7\u6c42\u91cd\u4f20\uff08ARQ\u673a\u5236\uff09<br \/>\n2. <strong>RTX<\/strong>\uff1a\u4f7f\u7528\u72ec\u7acbRTP\u6d41\u8fdb\u884c\u91cd\u4f20\uff0c\u533a\u5206\u539f\u59cb\u5305\u548c\u91cd\u4f20\u5305<br \/>\n3. <strong>ULPFEC<\/strong>\uff1a\u53d1\u9001FEC\u5305\u8fdb\u884c\u524d\u5411\u7ea0\u9519\uff0c\u65e0\u9700\u5f80\u8fd4\u5ef6\u8fdf<br \/>\n4. <strong>RED<\/strong>\uff1a\u5728\u97f3\u9891\u4e2d\u4f7f\u7528\u5197\u4f59\u7f16\u7801\uff0c\u643a\u5e26\u524d\u5e8f\u5305\u7684\u5197\u4f59\u6570\u636e<br \/>\n5. <strong>\u81ea\u9002\u5e94\u7b56\u7565<\/strong>\uff1a\u6839\u636e\u7f51\u7edc\u72b6\u51b5\uff08\u4e22\u5305\u7387\u3001\u5ef6\u8fdf\u3001\u5e26\u5bbd\uff09\u52a8\u6001\u8c03\u6574FEC\u5197\u4f59\u5ea6\u548cARQ\u7b56\u7565<\/p>\n<p><strong>\u5b9e\u73b0\u5efa\u8bae<\/strong><br \/>\n&#8211; <strong>\u5b9e\u65f6\u901a\u4fe1<\/strong>\uff1a\u4f18\u5148\u4f7f\u7528WebRTC\u65b9\u6848\uff08NACK + ULPFEC + RTX\uff09\uff0c\u7efc\u5408ARQ\u548cFEC\u7684\u4f18\u52bf<br \/>\n&#8211; <strong>\u76f4\u64ad\u573a\u666f<\/strong>\uff1a\u6839\u636e\u5ef6\u8fdf\u8981\u6c42\u9009\u62e9TCP\uff08\u53ef\u9760\u4f46\u5ef6\u8fdf\u9ad8\uff09\u6216UDP+FEC\uff08\u5ef6\u8fdf\u4f4e\u4f46\u9700\u5b9e\u73b0FEC\uff09<br \/>\n&#8211; <strong>\u70b9\u64ad\u573a\u666f<\/strong>\uff1a\u4f7f\u7528HTTP\/TCP\uff0c\u5229\u7528TCP\u7684\u81ea\u52a8\u91cd\u4f20\u673a\u5236\uff0c\u5ef6\u8fdf\u8981\u6c42\u4e0d\u4e25\u683c<br \/>\n&#8211; <strong>\u81ea\u5b9a\u4e49\u534f\u8bae<\/strong>\uff1a\u6839\u636e\u5ef6\u8fdf\u8981\u6c42\u3001\u4e22\u5305\u7387\u548c\u5e26\u5bbd\u9650\u5236\u9009\u62e9\u5408\u9002\u7684ARQ\u6216FEC\u65b9\u6848<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%E6%8B%A5%E5%A1%9E%E6%8E%A7%E5%88%B6\"><\/span>\u62e5\u585e\u63a7\u5236<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>\u68c0\u6d4b\u7f51\u7edc\u62e5\u585e\uff08\u4e22\u5305\u7387\u3001\u5ef6\u8fdf\u589e\u52a0\uff09<\/li>\n<li>\u52a8\u6001\u8c03\u6574\u53d1\u9001\u901f\u7387<\/li>\n<li>\u7b97\u6cd5\uff1aTCP\u62e5\u585e\u63a7\u5236\u3001BBR\u3001WebRTC\u7684GCC\u7b49<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"QoS%E4%BF%9D%E9%9A%9C\"><\/span>QoS\u4fdd\u969c<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><strong>\u4f18\u5148\u7ea7\u961f\u5217<\/strong>\uff1a\u5173\u952e\u5e27\u4f18\u5148\u4f20\u8f93<\/li>\n<li><strong>\u5e26\u5bbd\u9884\u7559<\/strong>\uff1a\u4e3a\u97f3\u89c6\u9891\u9884\u7559\u5e26\u5bbd<\/li>\n<li><strong>\u6d41\u91cf\u6574\u5f62<\/strong>\uff1a\u5e73\u6ed1\u53d1\u9001\u901f\u7387<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"%E4%BC%A0%E8%BE%93%E4%BC%98%E5%8C%96\"><\/span>\u4f20\u8f93\u4f18\u5316<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"%E8%87%AA%E9%80%82%E5%BA%94%E7%A0%81%E7%8E%87%EF%BC%88ABR%EF%BC%89\"><\/span>\u81ea\u9002\u5e94\u7801\u7387\uff08ABR\uff09<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>\u6839\u636e\u7f51\u7edc\u72b6\u51b5\u52a8\u6001\u8c03\u6574\u7f16\u7801\u7801\u7387<\/li>\n<li>\u7f51\u7edc\u597d\u65f6\u63d0\u9ad8\u7801\u7387\uff0c\u7f51\u7edc\u5dee\u65f6\u964d\u4f4e\u7801\u7387<\/li>\n<li>\u4fdd\u8bc1\u6d41\u7545\u64ad\u653e\u7684\u540c\u65f6\u5c3d\u53ef\u80fd\u63d0\u9ad8\u8d28\u91cf<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"%E7%BD%91%E7%BB%9C%E7%8A%B6%E6%80%81%E6%A3%80%E6%B5%8B\"><\/span>\u7f51\u7edc\u72b6\u6001\u68c0\u6d4b<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>\u76d1\u63a7\u4e22\u5305\u7387\u3001\u5ef6\u8fdf\u3001\u5e26\u5bbd<\/li>\n<li>\u4f7f\u7528RTCP\u53cd\u9988\u6216\u81ea\u5b9a\u4e49\u673a\u5236<\/li>\n<li>\u5b9e\u65f6\u8c03\u6574\u4f20\u8f93\u7b56\u7565<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"%E7%BC%93%E5%86%B2%E7%AD%96%E7%95%A5\"><\/span>\u7f13\u51b2\u7b56\u7565<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li>\u63a5\u6536\u7aef\u7f13\u51b2\u4e00\u5b9a\u6570\u636e\u518d\u5f00\u59cb\u64ad\u653e<\/li>\n<li>\u5e73\u8861\u5ef6\u8fdf\u548c\u6d41\u7545\u5ea6<\/li>\n<li>\u52a8\u6001\u8c03\u6574\u7f13\u51b2\u5927\u5c0f<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Video Transport \u6982\u8ff0 \u89c6\u9891\u4f20\u8f93\u8d1f\u8d23\u5c06\u7f16\u7801\u540e\u7684\u89c6\u9891\u6570\u636e\u901a\u8fc7\u7f51\u7edc\u4f20\u8f93\u5230\u63a5\u6536\u7aef\u3002 \u4f20\u8f93\u534f\u8bae RTP\/ [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[28],"tags":[],"blocksy_meta":[],"featured_image_urls":{"full":"","thumbnail":"","medium":"","medium_large":"","large":"","1536x1536":"","2048x2048":""},"post_excerpt_stackable":"<p>\u76ee\u5f55 Toggle Video Transport\u6982\u8ff0\u4f20\u8f93\u534f\u8baeRTP\/RTCP\uff08Real-time Transport Protocol\uff09RTMP\uff08Real-Time Messaging Protoc&hellip;<\/p>\n","category_list":"<a href=\"https:\/\/ixriver.com\/?cat=28\" rel=\"category\">\u89c6\u9891<\/a>","author_info":{"name":"admin","url":"https:\/\/ixriver.com\/?author=1"},"comments_num":"0 comments","_links":{"self":[{"href":"https:\/\/ixriver.com\/index.php?rest_route=\/wp\/v2\/posts\/792"}],"collection":[{"href":"https:\/\/ixriver.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ixriver.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ixriver.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ixriver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=792"}],"version-history":[{"count":0,"href":"https:\/\/ixriver.com\/index.php?rest_route=\/wp\/v2\/posts\/792\/revisions"}],"wp:attachment":[{"href":"https:\/\/ixriver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=792"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ixriver.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=792"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ixriver.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=792"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}