TCP協(xié)議的特點
1.TCP是面向連接(虛連接)的傳輸層協(xié)議。
2.每一條TCP連接只能有兩個端點,每一條TCP連接只能是點對點的。
3.TCP提供可靠交付的服務,無差錯、不丟失、不重復、按序到達。可靠有序,不丟不重
4.TCP提供全雙工通信。
發(fā)送緩存:準備發(fā)送的數(shù)據(jù)&已發(fā)送但尚未收到確認的數(shù)據(jù)
接收緩存:按序到達但尚未被接受應用程序讀取的數(shù)據(jù)&不按序到達的數(shù)據(jù)
5.TCP面向字節(jié)流
TCP把應用程序交 下來的數(shù)據(jù)看 成僅僅是一連串的無結(jié)構(gòu)的字節(jié)流。
流:流入到進程或從進程流出的字節(jié)序列。
TCP報文段首部格式

序號:在一個TCP連接中傳送的字節(jié)流中的每一個字節(jié)都按順序編號,本字段表示本報文段所發(fā)送數(shù)據(jù)的第一個字節(jié)的序號。
確認號:期望收到對方下一個報文段的第一個數(shù)據(jù)字節(jié)的序號。若確認號為N,則證明到序號N-1為止的所有數(shù)據(jù)都已正確收到。
數(shù)據(jù)偏移(首部長度) : TCP報文段的數(shù)據(jù)起始處距離TCP報文段的起始處有多遠,以4B位單位,即1個數(shù)值是4B。
6個控制位:
緊急位URG: URG=1時, 標明此報文段中有緊急數(shù)據(jù),是高優(yōu)先級的數(shù)據(jù),應盡快傳送,不用在緩存里排隊,配合緊急指針字段使用。
確認位ACK: ACK=1時確認號有效, 在連接建立后所有傳送的報文段都必須把ACK置為1。
推送位PSH: PSH=1時, 接收方盡快交付接收應用進程,不再等到緩存填滿再向上交付。
復位RST: RST=1時, 表明TCP連接中出現(xiàn)嚴重差錯,必須釋放連接,然后再重新建立傳輸鏈接。
同步位SYN: SYN=1時, 表明是-一個連接請求/連接接受報文。
終止位FIN: FIN=1時, 表明此報文段發(fā)送方數(shù)據(jù)已發(fā)完,要求釋放連接。
窗口:指的是發(fā)送本報文段的一方的接收窗口,即現(xiàn)在允許對方發(fā)送的數(shù)據(jù)量。
檢驗和:檢驗首部+數(shù)據(jù),檢驗時要加上12B偽首部,第四個字段為6。
緊急指針: URG=1時才有意義,指出本報文段中緊急數(shù)據(jù)的字節(jié)數(shù)。
選項:最大報文段長度MSS、窗口擴大、時間戳、選擇確認...