
T C P是一個面向連接的協議。無論哪一方向另一方發送數據之前,都必須先在雙方之間建立一條連接。

RST:復位連接,將連接重置,一般用在異常關閉

發送第一個S Y N的一端將執行主動打開(active open),另一端執行被動打開( passive open),
建立連接超時,經測試為,1,2,4,8,16,32,

四次揮手的時候,兩個方向的斷開是獨立的,每個方向發送一個FIN,對方回復一個ACK,但同時,TCP規定ACK可以捎帶在其他數據包當中,所以你看到的主動斷開連接一方本應收到的ACK,是被對方的FIN包捎帶過來的,就變成了三個包。並不是所有的情況下都是這樣,典型的一種情況是,主動斷開的一方發送FIN之后,被動一方仍然有數據要繼續發送,就會先ACK這個FIN,然后繼續發送數據(在此過程中主動斷開一方仍然會繼續ACK這些數據),直到數據發送完畢之后再發送FIN並接收對方的ACK
T C P提供了連接的一端在結束它的發送后還能接收來自另一端數據的能力。這就是所謂的半關閉。正如我們早些時候提到的只有很少的應用程序使用它。如果應用程序不調用c l o s e而調用s h u t d o w n,且第2個參數值為1,則插口的A P I支持半關閉。

半關閉的一個例子,就是Unix的 rsh(1) 在另一個系統上執行命令,輸入和輸出都是TCP連接。

T I M E _ WA I T狀態也稱為 2 M S L等待狀態。

一個T C P連接由一個 4元組唯一確定:本地 I P地址、本地端口號、遠端 I P地址和遠端端口
號。無論何時關閉一個連接,一端必須保持這個連接,我們看到 T I M E _ WA I T狀態將處理這個
問題。處理的原則是執行主動打開的一端在進入這個狀態時要保持的時間為 T C P實現中規定
的M S L值的兩倍。
異常終止一個連接
一方關閉后,Connection reset by peer: socket write error
異常關閉一方,發送RST復位連接,另一方如果進行操作報上面的錯誤
一個同時打開的連接需要交換 4個報文段,比正常的三次握手多一個。
呼入連接請求隊列
正等待連接請求的一端有一個固定長度的連接隊列,該隊列中的連接已被 T C P接受(即三次握手已經完成),但還沒有被應用層所接受。注意區分 T C P接受一個連接是將其放入這個隊列,而應用層接受連接是將其從該隊列中移出,測試50,多的連接將超時或者拒絕
