原创 Compare packets loss rate of BBR and CUBIC on ns3

 In this post, I compare the performance of BBR and Cubic on ns3 in term of packets loss rate. And the simulation c

原创 SRT傳輸協議爲什麼可以低延時?

 SRT號稱可以低延時地在網路中傳輸直播流(SRT Streaming Protocol Deliver high-quality, low-latency video across the public internet)。  

原创 gnuplot dash line-gnuplot黑白圖畫虛線

 需要畫黑白圖,但是又有幾條線在一張圖上,就需要有區分度。點的效果又不太好,糊成一片。可以用dash line,查了一些鏈接,最終也沒成功。爲什麼呢。寫的很清楚: In gnuplot version 5 the dash pa

原创 BBR擁塞控制RTT不公平性測試

 之前,我在ns3仿真中驗證了RTT的公平性特性[1]。使用的拓補很簡單,在一個point2point channel中運行了三個數據流。  但是正如[2]中所言,BBR在在相同rtt的組內維持很好的公平性,但是RTT較大的組卻可

原创 理想的擁塞控制曲線

 一個理想的擁塞控制曲線,應該是什麼樣子呢?如下圖:  怎麼樣才能達到這個結果呢?目前有好幾篇文章,都給出了類似的圖例。列出reference供參考。  未完待續。 Reference: [1] Data Center TCP

原创 test quic bbr on ns3

 The network congestion control mechanism is the most important component in computer network. Ever since the Inter

原创 ns3-configure different congestion control algorithms

 本篇解決的問題,怎麼在ns3的仿真實驗中,給不同的socket配置不同的擁塞控制算法。  Someone may want to compare the throughput of different congestion cont

原创 用C實現一個可以嵌套的vector

 嵌套的vector就是c++中的如下形式: std::vector<std::vector<int>> array2  之前寫了用C模擬實現了面向對象編程[1]。我的可嵌套的vector的實現如下。 my_vector.h #if

原创 H264中I幀編碼分析-以jcodec爲例

 計算機工程中知識,只要不是從源代碼中獲取的,都是二手知識。我原來打算,看看能否在視頻編解碼方向找到一些研究點的。當然,現在也沒有找到,準備放棄,遂有此篇,作爲記錄。之前看了很多編碼器相關的博客,大多數講解甚是模糊。也看了一些書,其中

原创 queue的c實現

 用c模擬實現C++中的queue。使用了環形緩衝區,只能向隊列中放指針。純屬個人娛樂。 ringbuf.h #ifndef RING_BUG_H_ #define RING_BUG_H_ #include <memory.h> #i

原创 stl中迭代器的區別

愚自少讀書,有所得輒記之。其有不合,時復改定。或古人先我而有者,則遂削之——顧炎武  下面的代碼,是quic代碼中對已經確認收到的數據包,對其便宜量進行合併,比如收到對數據片(1500,3000)和(3000,4500)的ack,

原创 quic代碼分析-幀重傳

quic的數據重傳邏輯分析  最新的quic代碼裏中的重傳邏輯,實現了兩種處理模式,一個是在connection層實現的重傳,另一個是在session層實現的重傳。在應用中只能啓用一個,要有由connection負責重傳,要麼由ses

原创 Gilbert Elliot丟包模型

 需要一個網絡數據包傳輸的丟包模型,上代碼。 p is the probability of transferring from Good State to the bad state and r is the probabilit

原创 quic協議棧中的數據包發送過程

 打算再從quic協議中挖點礦,我就需要了解quic中的數據包是怎麼打包,序列化的。早期的quic代碼較少,看起來比較直接,我看的是libquic。  QuicPacketCreator::SerializePacket這個函數對qu

原创 C語言原子鎖

atomic_lock.c #include <stdio.h> #include <pthread.h> #include <stdlib.h> //referecne https://github.com/divfor/atomi