1.
google congestion control(就是webrtc中用的)
webrtc通控制傳送端資料傳送位元速率來達到控制網路擁塞。
draft-ietf-rmcat-gcc-02.pdf
(較早的草案draft-alvestrand-rmcat-congestion-03.pdf)
2.(1)從webrtc的最初級階段開始,**引擎(由google搭建,但是firefox和chrome都在使用)
就是基於遠端頻寬估計理論而搭建的。正像我之前說的那樣,接收端會分析包間延時,
並且會對可用頻寬產生乙個估計值,然後使用rtcp資訊報回給傳送端,其中rtcp資訊使用了
一種被設計來完成這項工作的資訊型別:remb。
remb文件: draft-alvestrand-rmcat-remb-03.pdf
(2)另乙個關於webrtc實現的細節是,傳送端不會只使用這個在remb包中接收的頻寬估計值,
send_side_bandwidth_estimation.cc
updateestimate中更新lossrate;
(3)源**
控制上行頻寬的檔案在webrtc/modules/bitrate_controller,
下行頻寬的檔案是webrtc/modules/remote_bitrate_estimator
(4)傳輸與反饋
#1 傳輸寬序列號的報頭擴充套件;
#2 傳輸反饋:接收端會周期性地將包含有關已接收資料報和包間延時的資訊反饋給傳送端。為了完成這項工作,接收端使用了新的rtcp包(傳輸反饋)
採用了部分google建議的規範:
採用了部分官方標準化:
源**中的具體實現:webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.cc
這個rtcp反饋預設100ms傳送一次,但是實際上是動態適應的,只會使用5%的可用頻寬(最小值是50ms,最大值是250ms)。
為了將大小控制在最小,這種新的rtcp包的格式十分簡潔,包括塊內的分組包,以base+diff的形式儲存數字,
或者將粒度降低到0.25ms為間隔。有人做了乙個簡單的測試,有了這些改進方案,其依舊會使用16kbps來每50ms傳送一次反饋資料報。
反饋機制的源**參考:
webrtc/modules/rtp_rtcp/source/rtcp_packet/transport_feedback.cc
webrtc/modules/remote_bitrate_estimator/remote_estimator_proxy.cc
4. webrtc中的網路反饋與控制
5. webrtc gcc演算法介紹
比較詳細)
比較詳細)
源**分析:
簡單一點的分析:
一些stl相關
vector swap ivec 清記憶體,單純的clear或remove是不會把記憶體清掉的 ivec.reserve 100000 預設vector空間大小,避免因為vec分配得不夠,後期還需要重新分配空間 ivec.swap vector ivec or vector ivec swap iv...
一些時間相關操作
1.求星期公式 星期 5 a 實際天數 mod 7 2.干支計算公式 六十甲子干支序號,從1 59 0。六十甲子干支序號 23 a 實際天數 mod 60 3.二十八宿計算公式 二十八宿序號 23 a 實際天數 mod 28 4.實際天數a的計算 a b 基本天數 c 閏日天數 b 計算年 1 36...
相關的一些東西
這幾天一直在看關於http和前端效能優化相關的內容,今天先寫一篇關於http的文章,如果時間允許的話再接著把前端效能優化的寫完。畢竟還要留著時間去看小片嘛?接下來就是正文啦!瀏覽器輸入url後http請求返回的完整過程 就是下圖這個啦 這個可是我從某課網偷來的 從輸入位址到頁面渲染 在http的五層...