1.TCP是面向連接的傳輸協(xié)議,傳輸前雙方需建立連接通道,而UDP可以直接傳輸。
2.TCP傳輸信息可靠,信息傳輸無(wú)差錯(cuò),不丟失,不重復(fù),且按序到達(dá)。UDP傳輸不保證可靠。
3.TCP是字節(jié)流傳輸(較長(zhǎng)數(shù)據(jù)分割成數(shù)據(jù)塊進(jìn)行傳輸),而UDP是報(bào)文流傳輸(給多少傳多少)。
4.TCP為了實(shí)現(xiàn)傳輸可靠性使用了較為復(fù)雜的算法和實(shí)現(xiàn)過(guò)程,不適用于實(shí)時(shí)傳輸,UDP實(shí)時(shí)性較好。
5.每一條TCP連接只能是點(diǎn)對(duì)點(diǎn)的,UDP支持一對(duì)一,一對(duì)多,多對(duì)一,多對(duì)多。
6.TCP占用系統(tǒng)資源較多,UDP相對(duì)較少。
第一次握手:客戶端向服務(wù)端發(fā)出請(qǐng)求,發(fā)送SYN包(同步序列編號(hào))到客戶端,并進(jìn)入SYN_SENT狀態(tài)。
第二次握手:服務(wù)端獲取到SYN包后,需要回復(fù)確認(rèn)ACK,同時(shí)發(fā)送自己的SYN,并進(jìn)入SYN_RECV狀態(tài)。
第三次握手:客戶端獲取到服務(wù)端發(fā)送的ACK和SYN后,需要回復(fù)確認(rèn)ACK,發(fā)送完畢后,兩端同時(shí)進(jìn)入ESTABLISHED(TCP連接成功)狀態(tài),完成三次握手。
TCP可視為全雙工通信,分為兩個(gè)通信方向:Client>>Server / Server>>Client。
第一次握手:客戶端提交數(shù)據(jù)傳輸請(qǐng)求。
(C提交申請(qǐng),但C自身并不知道C>>S 和S>>C是否可行)
第二次握手:服務(wù)端應(yīng)答客戶端,表示確認(rèn)接收到客戶端數(shù)據(jù),并發(fā)出SYN,等待客戶端應(yīng)答。
(S對(duì)C的請(qǐng)求進(jìn)行應(yīng)答,S可確認(rèn)C>>S可行,但不知道S>>C是否可行)
第三次握手:客戶端應(yīng)答服務(wù)端,表示確認(rèn)接收到服務(wù)端數(shù)據(jù),建立連接。
(C對(duì)S請(qǐng)求進(jìn)行應(yīng)答,C可知S>>C和C>>S均可行,S接收應(yīng)答后可知S>>C可行,即可建立連接)
三次握手是對(duì)可靠傳輸進(jìn)行確認(rèn)的必要過(guò)程,完成三次握手可確保信息傳輸?shù)目煽啃浴T趦啥宋创_認(rèn)的情況下進(jìn)行傳輸,可能會(huì)導(dǎo)致信息重發(fā)等問(wèn)題出現(xiàn)。
第一步,當(dāng)主機(jī)A的應(yīng)用程序通知TCP數(shù)據(jù)已經(jīng)發(fā)送完畢時(shí),TCP向主機(jī)B發(fā)送一個(gè)帶有FIN附加標(biāo)記的報(bào)文段(FIN表示英文finish)。
第二步,主機(jī)B收到這個(gè)FIN報(bào)文段之后,并不立即用FIN報(bào)文段回復(fù)主機(jī)A,而是先向主機(jī)A發(fā)送一個(gè)確認(rèn)序號(hào)ACK,同時(shí)通知自己相應(yīng)的應(yīng)用程序:對(duì)方要求關(guān)閉連接(先發(fā)送ACK的目的是為了防止在這段時(shí)間內(nèi),對(duì)方重傳FIN報(bào)文段)。
第三步,主機(jī)B的應(yīng)用程序告訴TCP:我要徹底的關(guān)閉連接,TCP向主機(jī)A送一個(gè)FIN報(bào)文段。
第四步,主機(jī)A收到這個(gè)FIN報(bào)文段后,向主機(jī)B發(fā)送一個(gè)ACK表示連接徹底釋放。
同樣,關(guān)閉連接前要兩端都確認(rèn)自己本端和對(duì)端數(shù)據(jù)傳輸完畢。即獲取對(duì)方發(fā)送的FIN并應(yīng)答(ACK)告訴對(duì)方自己獲取到了對(duì)方的FIN。
第一步,A主機(jī)給發(fā)給B主機(jī)的消息傳輸完畢,向B發(fā)送FIN,告知B自己發(fā)送完畢,準(zhǔn)備關(guān)閉連接。
(此時(shí)A傳輸完畢發(fā)出FIN,但不知道B是否發(fā)送完畢,也不知道B是否接收到自己的FIN報(bào)文)
第二步,B主機(jī)在未發(fā)送完畢的情況下接收到A的FIN,向A回復(fù)ACK且通知本機(jī)應(yīng)用層,并將未發(fā)送完畢的數(shù)據(jù)繼續(xù)發(fā)送完。
(B得知A發(fā)送完畢,A接收ACK后得知B接收到自己發(fā)送的FIN報(bào)文)
第三步,B主機(jī)發(fā)送完畢后,發(fā)出FIN報(bào)文,并等待A的應(yīng)答(2MSL內(nèi)沒(méi)有收到A的應(yīng)答,則重發(fā))
(B傳輸完畢,但不知道A是否接收到自己的FIN報(bào)文)
(MSL指一個(gè)片段在網(wǎng)絡(luò)中大的存活時(shí)間,2MSL就是一個(gè)發(fā)送和一個(gè)回復(fù)所需的大時(shí)間)
第四步,A收到B的FIN報(bào)文,做出ACK應(yīng)答,在等待2MSL后自行關(guān)閉。
(A應(yīng)答,B收到后得知A收到了自己的FIN報(bào)文,B關(guān)閉,A在2MSL內(nèi)沒(méi)有收到B的FIN重發(fā),判斷B已經(jīng)收到了自己的ACK,A關(guān)閉)
四次揮手可以看作是改良版的三次握手,只不過(guò)在第二次握手時(shí)考慮到B端數(shù)據(jù)沒(méi)有發(fā)送完畢的情況,因此ACK和FIN分兩次進(jìn)行發(fā)送,變成了四次。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
創(chuàng)新互聯(lián)是一家專業(yè)提供城廂企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站制作、成都網(wǎng)站建設(shè)、H5建站、小程序制作等業(yè)務(wù)。10年已為城廂眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
分享名稱:Python學(xué)習(xí)【TCP/IP】-創(chuàng)新互聯(lián)
分享地址:http://www.rwnh.cn/article26/ccigcg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、品牌網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)公司、標(biāo)簽優(yōu)化、用戶體驗(yàn)、全網(wǎng)營(yíng)銷(xiāo)推廣
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)