從小我們就被教育tcp三次握手,四次揮手云云.
其實教科書把我們得思維限制死了,現實的狀況更加有趣.譬如伺服器端也會主動"say hi",客戶端和伺服器端會同時向對方發出syn.
博主總結出以下幾條機器對於tcp訊號的反應,對所謂的"客戶端"和"伺服器端"都適用.
建立連線的規則:
1.收到 syn 必定回覆 ack
2.在listen 狀態下收到 syn , 要額外恢復乙個syn , 即syn + ack, 並且轉化到 syn-rcvd 狀態
3.在 syn-sent 狀態下收到syn , 也要轉化到 syn-rcvd 狀態
4.在listen 狀態下發出 syn , 轉化到 syn-sent 狀態
5.在syn-sent 或 syn-rcvd 下收到ack, 轉化到 established
關閉連線的規則:
1.收到 fin 必定回覆 ack
2.在established 下傳送fin 後轉化fin-wait-1
3.在fin-wait-1 下收到ack 後轉化fin-wait-2
4.在fin-wait-2 下收到fin 後轉化time-wait
5.在established 收到fin 後轉化close-wait, 等待全部data 輸送完畢後傳送fin, 爾後轉化last-ack狀態
6.在fin-wait-1 下收到fin 後轉化closing
7.closing 下收到ack 後轉化為time-wait
8.time-wait下等待定時器過期(2msl)後進入closed
可以對照著這個圖一條一條驗證:
三次握手
四次揮手
關於深度學習的一些淺見
就是更深層次的學習,它是機器學習的乙個子領域,就我個人理解而言,它就是乙個深度神經網路。就是擁有很多隱藏層的神經網路,通常只要隱藏層超過2個,我們就可以把這個神經網路定義為深度神經網路,當然,隱藏層的啟用函式應該是非線性的,如果是線性的,即使10000層,它的學習能力也僅僅相當於帶有乙個隱藏層的神經...
ceph的一些淺見 關於日誌(1)
日誌是研究 的第一步。ceph的日誌預設輸入到 var log ceph目錄下,可以進入到該目錄下,查詢相應資訊。總共有20個等級的日誌輸出,從1 20。例如我要調整osd.0的日誌輸出等級為15 15,使用下面的命令設定輸出等級 ceph tell osd.0 injectargs debug o...
關於c 動態陣列的一些粗淺見解
指標基礎 首先引入乙個 塊 int value 1024 int p p value 這樣應該非常直觀了,宣告乙個變數value並將其初始化為1024,宣告乙個int型指標p,將value對應的位址值賦給p。在這個 塊中,p value p value 直接宣告 int valueb 1024 in...