2018-09-25
TCP:
全稱(chēng):Transmission Control Protocol(傳輸控制協(xié)議)停忿,是工作在OSI七層模型(Open System Interconnect绊起,開(kāi)放式系統(tǒng)互聯(lián))中的傳輸層芍阎,是一種面向連接的叫编、可靠的辖佣、基于字節(jié)流的通信協(xié)議。
TCP層將應(yīng)用層的數(shù)據(jù)流分成報(bào)文段搓逾,再繼續(xù)向網(wǎng)絡(luò)層傳輸卷谈。為了數(shù)據(jù)傳輸?shù)目煽啃裕琓CP層將每個(gè)報(bào)文段進(jìn)行了編號(hào)霞篡,用來(lái)保證接收端數(shù)據(jù)的我完整性世蔗。
TCP層每傳輸一個(gè)報(bào)文段,就向接收端發(fā)送一次確認(rèn)信息朗兵。在一定時(shí)間內(nèi)污淋,如果接收端沒(méi)有返回確認(rèn)信息,發(fā)送端將重新發(fā)送丟失的報(bào)文余掖。
UDP:
全稱(chēng):User Datagram Protocol(用戶數(shù)據(jù)報(bào)協(xié)議)寸爆,與TCP一樣工作在傳輸層,是一種面向無(wú)連接的盐欺、不可靠的通信協(xié)議赁豆。
UDP僅將應(yīng)用層的數(shù)據(jù)流分成報(bào)文直接進(jìn)行傳輸,不進(jìn)行排序冗美。數(shù)據(jù)安全沒(méi)有保障魔种,但操作效率高,適合普通數(shù)據(jù)傳輸(QQ)粉洼。
TCP連接的三次握手:
連接時(shí):
1. 客戶端向服務(wù)器發(fā)送一個(gè)SYN置位的TCP報(bào)文节预,其中包含連接的初始序列號(hào)x和一個(gè)窗口大小(表示客戶端上用來(lái)存儲(chǔ)從服務(wù)器發(fā)送來(lái)的傳入段的緩沖區(qū)的大惺羧汀)心铃。
2. 服務(wù)器收到客戶端發(fā)送過(guò)來(lái)的SYN報(bào)文后,向客戶端發(fā)送一個(gè)SYN和ACK都置位的TCP報(bào)文挫剑,其中包含它選擇的初始序列號(hào)y去扣、對(duì)客戶端的序列號(hào)的確認(rèn)x+1和一個(gè)窗口大小(表示服務(wù)器上用來(lái)存儲(chǔ)從客戶端發(fā)送來(lái)的傳入段的緩沖區(qū)的大蟹啤)愉棱。
3. .客戶端接收到服務(wù)器端返回的SYN+ACK報(bào)文后,向服務(wù)器端返回一個(gè)確認(rèn)號(hào)y+1和序號(hào)x+1的ACK報(bào)文哲戚,一個(gè)標(biāo)準(zhǔn)的TCP連接完成奔滑。
#TCP斷開(kāi)連接四次揮手過(guò)程:
1. Client端發(fā)起中斷連接請(qǐng)求,也就是發(fā)送FIN報(bào)文顺少。
∨笃洹2. Server端接到FIN報(bào)文后王浴,意思是說(shuō)"我Client端沒(méi)有數(shù)據(jù)要發(fā)給你了",但是如果你還有數(shù)據(jù)沒(méi)有發(fā)送完成梅猿,則不必急著關(guān)閉Socket氓辣,可以繼續(xù)發(fā)送數(shù)據(jù)。所以你先發(fā)送ACK袱蚓,"告訴Client端钞啸,你的請(qǐng)求我收到了,但是我還沒(méi)準(zhǔn)備好喇潘,請(qǐng)繼續(xù)你等我的消息"体斩。
3. 這個(gè)時(shí)候Client端就進(jìn)入FIN_WAIT狀態(tài),繼續(xù)等待Server端的FIN報(bào)文颖低。當(dāng)Server端確定數(shù)據(jù)已發(fā)送完成絮吵,則向Client端發(fā)送FIN報(bào)文,"告訴Client端忱屑,好了蹬敲,我這邊數(shù)據(jù)發(fā)完了,準(zhǔn)備好關(guān)閉連接了"想幻。
4. Client端收到FIN報(bào)文后话浇,"就知道可以關(guān)閉連接了脏毯,但是他還是不相信網(wǎng)絡(luò),怕Server端不知道要關(guān)閉幔崖,所以發(fā)送ACK后進(jìn)入TIME_WAIT狀態(tài)食店,如果Server端沒(méi)有收到ACK則可以重傳∩涂埽“吉嫩,Server端收到ACK后,"就知道可以斷開(kāi)連接了"嗅定。Client端等待了2MSL后依然沒(méi)有收到回復(fù)自娩,則證明Server端已正常關(guān)閉,那好渠退,我Client端也可以關(guān)閉連接了忙迁。Ok,TCP連接就這樣關(guān)閉了碎乃!
本文來(lái)自 tensorzhl 的CSDN 博客 姊扔,全文地址請(qǐng)點(diǎn)擊:https://blog.csdn.net/tensorzhl/article/details/75797364?utm_source=copy