reset報文是指tcp報頭的標誌欄位中的reset位置一的報文
這一般是客戶端嘗試與伺服器未提供服務的埠建立連線
vpp1807版本是設定乙個tcp_timer_waitclose定時器,超時後釋放所有資源。
新版本1810改為立即釋放。
tcp_connection_reset
case tcp_state_syn_sent:
session_stream_connect_notify (&tc->connection, 1 /* fail */ );
tcp_connection_cleanup (tc);
break;
void tcp_done(struct sock *sk)
延伸閱讀:vpp hoststack的session管理(與核心協議棧對應的是半連線和全連線佇列)
舉例:查詢半連線狀態的session
大概流程:
fib_index—>st(session table)----->half_open bihash session table—>index—>tc(tcp_connection)
u64
session_lookup_half_open_handle (transport_connection_t * tc)
else
return half_open_lookup_invalid_value;
}
然後用connection index直接取出乙個tcp連線
利用fib_index分類管理session table陣列,陣列元素是bihash結構。
TCP協議 連線的狀態
tcp連線生命週期的狀態 1 listen 等待遠端的tcp連線請求 2 syn sent 傳送了建立連線的請求,等待確認訊息 3 syn recieved 收到了對方建立連線的請求且傳送了建立連線的請求 確認對方建立建立連線的請求 等待對方確認自己傳送的連線請求 4 established 連線已...
uip協議棧學習(二)
uip的記憶體管理方法 記憶體管理的實現在memb.c memb.h裡。這兩個檔案負責 uip的記憶體塊的管理,記憶體塊是由 memb 巨集宣告。記憶體從宣告的記憶體塊裡用 memb alloc 分配,用 memb free 釋放。因為命名空間的衝突,每個 c模組只能有乙個 memb 巨集宣告。先看...
zigbee協議棧學習(二)
協議棧規範的 id號可以通過查詢裝置傳送的 beacon 幀獲得。在裝置加入網路之前,首先 需要確認協議棧規範的 id。特定網路 規範 id號為0 zigbee協議棧規範的 id號為1 zigbee ro 協議棧規範的 id 號為 2。協議棧規範的 id stack profile id 在 nwk...