特性
- 提供一種面相連接的,可靠的字節(jié)流服務
- 在一個TCP連接中汽煮,僅有兩方進行彼此通信搏熄,廣播和多播不用于TCP
- 會給數(shù)據(jù)分節(jié)進行排序棚唆,并使用累積確認保證數(shù)據(jù)的順序不變和非重復
TCP 并不能保證數(shù)據(jù)一定會被對方接收到暇赤,因為這是不可能的。TCP 能夠做到的是鞋囊,如果有可能,就把數(shù)據(jù)遞送到接收方溜腐,否則就(通過放棄重傳并且中斷連接這一手段)通知用戶。因此準確說 TCP 也不是 100% 可靠的協(xié)議挺益,它所能提供的是數(shù)據(jù)的可靠遞送或故障的可靠通知。
三次握手四次揮手
所謂三次握手(Three-way Handshake)望众,是指建立一個 TCP 連接時,需要客戶端和服務器總共發(fā)送3個包烂翰。
三次握手的目的是連接服務器指定端口,建立 TCP 連接甘耿,并同步連接雙方的序列號和確認號,交換 TCP 窗口大小信息佳恬。在 socket 編程中捏境,客戶端執(zhí)行 connect() 時殿怜。將觸發(fā)三次握手。
TCP 的連接的拆除需要發(fā)送四個包骏掀,因此稱為四次揮手(Four-way handshake),也叫做改進的三次握手截驮。客戶端或服務器均可主動發(fā)起揮手動作葵袭,在 socket 編程中,任何一方執(zhí)行 close() 操作即可產(chǎn)生揮手操作