TCP實(shí)現(xiàn)原理和為什么需要三次握手?兩次握手不可以?四次握手不可以?
1. 什么是TCP協(xié)議?
- TCP:Transmission Control Protocol翻譯過來就是傳輸控制協(xié)議,TCP協(xié)議是一個(gè)面向連接的、可靠的、基于字節(jié)流的傳輸層協(xié)議
- RFC 793對(duì)TCP連接的定義
> Connections:
> The reliability and flow control mechanisms described above require that TCPs initialize and maintain certain
> status information for each data stream.
> The combination of this information, including sockets, sequence numbers, and window sizes, is called a
> connection.
其大致意思是TCP連接是為了用于保證可靠性和流控制機(jī)制的,包括 Socket、序列號(hào)及窗口大小。
2. TCP協(xié)議的特性
- 面向連接:是指TCP是通過服務(wù)端和客戶端進(jìn)行連接的協(xié)議
- 面向字節(jié)流:TCP服務(wù)端和客戶端之間的數(shù)據(jù)通訊是通過字節(jié)流數(shù)據(jù)傳輸?shù)?/li>
- 可靠的:是指TCP服務(wù)端客戶端之間的數(shù)據(jù)傳輸是很穩(wěn)定的,即使網(wǎng)絡(luò)很差的情況,TCP都能保證將數(shù)據(jù)傳輸?shù)浇邮辗健?/li>
3. TCP三次握手執(zhí)行流程
關(guān)鍵字說明:
SYN:Synchronize Sequence Numbers,同步序列編號(hào)
ACK:Acknowledge Character,確認(rèn)字符
SEQ:Sequence Number,序列號(hào)
TCP三次握手執(zhí)行過程:
- 首先,服務(wù)端和客戶端都是處于CLOSED狀態(tài)的,然后服務(wù)端啟動(dòng),監(jiān)聽端口,狀態(tài)變?yōu)長ISTEN(監(jiān)聽)狀態(tài)
- 客戶端為了請(qǐng)求資源,發(fā)送連接,發(fā)送同步序列號(hào)SYN,此時(shí)客戶端就變成了SYN-SEND狀態(tài)
- 服務(wù)端接收到客戶端請(qǐng)求之后,發(fā)送SYN和ACK,然后服務(wù)端狀態(tài)就變成SYN-RCVD狀態(tài)
- 客戶端接收到信息之后,再次發(fā)送ACK,然后變成ESTABLISHED(已確認(rèn))狀態(tài),服務(wù)端接收到返回信息后,狀態(tài)也變成ESTABLISHED(已確認(rèn))狀態(tài)
TCP協(xié)議為什么需要三次握手?
- RFC 793 Transmission Control Protocol里就有指出為什么要三次握手的原因
> The principle reason for the three-way handshake is to prevent old duplicate connection initiations from causing confusion.
> 翻譯為中文大致意思是主要原因是為了防止舊的重復(fù)連接引起連接混亂問題
設(shè)計(jì)成三次握手的情況,客戶端在接收到服務(wù)端SEQ+1的返回消息之后,就會(huì)知道這個(gè)連接是歷史連接,所以會(huì)發(fā)送報(bào)文給服務(wù)端,告訴服務(wù)端。
TCP設(shè)計(jì)成三次握手的目的就是為了避免重復(fù)連接文章來源:http://www.zghlxwxcb.cn/news/detail-604296.html
設(shè)計(jì)成四次握手?五次握手?不可以?
可以的,不過為了節(jié)省資源,三次握手就可以符合實(shí)際情況,所以就沒必要設(shè)計(jì)成四次握手、五次握手等等情況文章來源地址http://www.zghlxwxcb.cn/news/detail-604296.html
到了這里,關(guān)于TCP實(shí)現(xiàn)原理和為什么需要三次握手?兩次握手不可以?四次握手不可以?的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!