原创 TCP原理 I/O 緩存

TCP套接字中的 I/O 緩存 由於TCP套接字中數據收發無邊界。 假設服務器端調用write函數一次傳輸100字節數據,客戶端可能分兩次調用read函數每次讀取100字節的數據。 那麼第一次讀取完50字節的數據後,剩下的5

原创 Linux 安裝Redis4.0

安裝 下載, 解壓 和 編譯 Redis: $ wget http://download.redis.io/releases/redis-4.0.6.tar.gz $ tar xzf redis-4.0.6.tar.gz $ cd r

原创 TCP原理 滑動窗口

參考: 百度百科:滑動窗口機制 知乎:TCP協議的滑動窗口具體是怎樣控制流量的? 滑動窗口機制 滑動窗口協議是傳輸層進行流控的一種措施,接收方通過通告發送方自己的窗口大小,從而控制發送方的發送速度,從而達到防止發送方發送速

原创 TCP原理 粘包分包現象

參考: 雲棲社區:就是要你懂 TCP– 最經典的TCP性能問題 粘包現象產生的原因 由於TCP協議本身的機制(三次握手)客戶端與服務器會維持一個連接(Channel),數據在連接不斷開的情況下,可以持續不斷地將多個數據包發往服務

原创 Nagle算法

Nagle算法是以他的發明人John Nagle的名字命名的,它用於自動連接許多的小緩衝器消息;這一過程(稱爲nagling)通過減少必須發送包的個數來增加網絡軟件系統的效率。 TCP/IP協議中,無論發送多少數據,總是要在數據前面加

原创 Linux MySQL-5.7安裝(1)

爲了避免衝突,可以考慮先卸載Linux下自帶的MySQL安裝包,使用“rpm-qa | grep MySQL” 檢測是否安裝了MySQL相關包。 二進制包的安裝 下載 $ wget https://dev.mysql.com/ge

原创 Centos7 shadowsocks服務端安裝

安裝shadowsocks 使用pip用於安裝其他Python packages. yum -y install python-pip 若提示沒有pip就執行下面的安裝 yum -y install epel-release yum -y

原创 VSCode 配置C、C++環境

貌似微軟想讓所有的IDE都最小化安裝了,實現全部插件化,VSCode 中居然連最基本的C環境都需要配置,最新版的Visual Studio也是可以不安裝任何東西,直接運行空殼子。 VSCode中配置環境大概分以下幾步: 下載安裝VS

原创 Java NIO

參考: 知乎:Java NIO淺析 伯樂在線:一個故事講清楚 NIO CSDN:攻破JAVA NIO技術壁壘 併發編程網: Java NIO 系列教程 NIO給我們帶來的好處 事件驅動模型 避免多線程 單線程