ccp和核心互動方式和cubic bbr一樣
1.把自身加入到核心擁塞演算法中
return tcp_register_congestion_control(&tcp_ccp_congestion_ops);
2.使用sock的icsk_ca_priv儲存並且標識每個sock的資料
icsk_ca_priv是每個sock的私有資料
大小如下
#linux/include/net/inet_connection_sock.h
struct inet_connection_sock
struct ccp_connection
//tcp_register_congestion_control(&tcp_ccp_congestion_ops);
//後所有tcp都通過tcp_ccp_init(struct sock *sk)初始化
struct tcp_sock *tp = tcp_sk(sk);
struct ccp_datapath_info dp = ;
cpl = inet_csk_ca(sk);
cpl->dp = ccp_connection_start((void *) sk, &dp);
//ccp_connection_start完成後
//sock的icsk_ca_priv(sk)->dp指向的struct ccp_connection包含了這一條tcp sock的詳細屬性
cpl->dp->conn->impl = impl;//impl就是tcp sock
cpl->dp->conn->index = sid + 1;//分配乙個sid作為conn->index用於唯一標識一條tcp sock鏈結
send_conn_create(datapath, conn){
msg_size = write_create_msg(msg, report_msg_size, conn->index, cr);
ok = datapath->send_msg(datapath, conn, msg, msg_size);
//每條tcp sock的建立都必須通過netlink告知使用者態程式
}
邊緣與互動密度
市面上現有的主流手機作業系統有一些優秀的體驗,比如android從頂部下滑出的通知中心。palm的context menu 從螢幕下部的感應區撥出。nokia n9 就更為純粹,把just swipe 從側面滑動切換手機態視為核心的設計理念。仔細看還挺邪門兒的,從頂部向下,從底部向上,從側面向內 它...
變數與程式互動
變數 變數是什麼?為什麼要有變數 乙個是變 核心在於變化 乙個是量 衡量,計量,表達的一種狀態 變數定於規則 1 只能是數字 字母 下劃線的任意組合 2 不能以數字開頭 3 關鍵字不能作為變數 變數名的定義方式 1 駝峰體 oldboy 2 下劃線 old boy 值的引用計數沒有被引用就會自動 p...
與遊戲世界互動
單例模式 singleton pattern 是程式設計中最簡單的設計模式之一。這種型別的設計模式屬於建立型模式,它提供了一種建立物件的最佳方式。這種模式涉及到乙個單一的類,該類負責建立自己的物件,同時確保只有單個物件被建立。這個類提供了一種訪問其唯一的物件的方式,可以直接訪問,不需要例項化該類的物...