TCP有連接可靠服務(wù)
TCP特點(diǎn):
1.TCP是面向連接的傳輸層協(xié)議;
2.每條TCP連接只能有兩個(gè)端點(diǎn),每條TCP連接是一對(duì)一的;
3.TCP提供可靠交付,保證傳送數(shù)據(jù)無差錯(cuò),不丟失,不重復(fù)且有序;
4.TCP提供全雙工信道,允許通信雙方同時(shí)發(fā)送數(shù)據(jù)。TCP兩端都設(shè)有發(fā)送緩存和接收緩存,用來臨時(shí)存放雙向通信的數(shù)據(jù);
發(fā)送緩存存放的數(shù)據(jù):1.發(fā)送應(yīng)用程序傳給發(fā)送方TCP準(zhǔn)備發(fā)送的數(shù)據(jù)。2.TCP已發(fā)送但未收到確認(rèn)的數(shù)據(jù)。
接收緩存存放的數(shù)據(jù):1.按序到達(dá)但尚未被接受應(yīng)用程序讀取的數(shù)據(jù)。2.不按序到達(dá)的數(shù)據(jù)。
5.TCP是面向字節(jié)流的,雖然應(yīng)用程序和TCP的交互是一次一個(gè)數(shù)據(jù)塊(大小不等),但TCP把應(yīng)用程序交下來的數(shù)據(jù)僅視為一串無結(jié)構(gòu)的字節(jié)流。(這會(huì)導(dǎo)致粘包問題)UDP報(bào)文長度由發(fā)送應(yīng)用進(jìn)程決定,TCP報(bào)文的長度需要根據(jù)接收方給出的窗口值和網(wǎng)絡(luò)擁塞程度來決定。如果進(jìn)程傳送到TCP緩存的數(shù)據(jù)塊太長,TCP會(huì)把它劃分得短一些傳送,如果太短則積足夠多得字節(jié)再組成報(bào)文段發(fā)出去。
TCP連接的端口為套接字,由IP和端口號(hào)組成,套接字唯一的標(biāo)識(shí)網(wǎng)絡(luò)中的一臺(tái)主機(jī)和其上的一個(gè)應(yīng)用(進(jìn)程)。每條TCP連接唯一的被通信的兩個(gè)端口確定。
三次握手:
1.客戶機(jī)向服務(wù)器發(fā)送請(qǐng)求連接報(bào)文段,報(bào)文段中同步位SYN置1,同時(shí)包含一個(gè)初始序號(hào)seq=x,客戶端進(jìn)入同步已發(fā)送(SYN-SENT)狀態(tài)。
2.服務(wù)器收到客戶端的請(qǐng)求連接報(bào)文,回復(fù)一個(gè)確認(rèn)報(bào)文。報(bào)文中確認(rèn)位ACK、同步位SYN都置1,并包含一個(gè)初始序號(hào)seq=y和確認(rèn)號(hào)ack=x+1,服務(wù)器進(jìn)入同步收到(SYN-RCVD)狀態(tài)。
3.客戶端收到服務(wù)器的確認(rèn)之后再向服務(wù)器發(fā)送一個(gè)確認(rèn)報(bào)文,報(bào)文中確認(rèn)位ACK置1,序號(hào)為seq=x+1,確認(rèn)號(hào)ack=y+1,客戶進(jìn)程進(jìn)入已建立連接(ESTABLISHED)狀態(tài)。
四次揮手:
1.客戶機(jī)發(fā)送釋放鏈接報(bào)文段,并停止發(fā)送數(shù)據(jù),主動(dòng)關(guān)閉TCP連接。報(bào)文段中終止位FIN置1,序號(hào)seq=u為上一個(gè)發(fā)送序號(hào)+1,客戶機(jī)進(jìn)入終止等待1(FIN-WAIT_1)狀態(tài)。
2.服務(wù)器收到報(bào)文段后回復(fù)一個(gè)確認(rèn)報(bào)文段。報(bào)文段中確認(rèn)位ACK置1,確認(rèn)號(hào)ack=u+1,序號(hào)seq=v為前一個(gè)序號(hào)加一,服務(wù)器進(jìn)入關(guān)閉等待狀態(tài)(CLOSE-WAIT)。
3.當(dāng)服務(wù)器沒有要向客戶機(jī)發(fā)送的數(shù)據(jù)時(shí),通知TCP釋放鏈接。發(fā)送釋放連接報(bào)文段。報(bào)文段中終止位FIN確認(rèn)位ACK都置1,確認(rèn)號(hào)ack=u+1,序號(hào)seq=w(可能在這之前服務(wù)器還發(fā)送過一些數(shù)據(jù)),服務(wù)器進(jìn)入最后確認(rèn)狀態(tài)(LAST-ACK)。
4.客戶機(jī)收到報(bào)文,回復(fù)一個(gè)確認(rèn)報(bào)文段。報(bào)文段中確認(rèn)位ACK置1,確認(rèn)號(hào)ack=w+1,序號(hào)seq=u+1。客戶機(jī)等待2MSL(最長報(bào)文段壽命)后進(jìn)入連接關(guān)閉狀態(tài)(CLOSED)。
UDP無連接非可靠服務(wù)
UDP特點(diǎn):
1.無需建立連接,沒有建立連接時(shí)延;
2.無連接狀態(tài),因?yàn)槭菬o連接,因此不必維護(hù)連接狀態(tài)(接收緩存發(fā)送緩存擁塞控制和確認(rèn)之類的);
3.分組首部開銷更?。║DP首部只有8B,而TCP有20B);
4.應(yīng)用層能更好的控制發(fā)送的數(shù)據(jù)和發(fā)送時(shí)間。(沒有擁塞控制不會(huì)受網(wǎng)絡(luò)擁塞影響);
5.UDP支持一對(duì)一,一對(duì)多,多對(duì)多的交互通信,而TCP只支持一對(duì)一通信;文章來源:http://www.zghlxwxcb.cn/news/detail-652134.html
UDP常用于一次性傳送較少數(shù)據(jù)的網(wǎng)絡(luò)應(yīng)用,如DNS,SNMP,也常用于多媒體應(yīng)用,如IP電話,視屏?xí)h,流媒體等。因?yàn)闀r(shí)延小。
UDP不保證可靠交互,但可由用戶在應(yīng)用層來完成可靠交互(可以在應(yīng)用層實(shí)現(xiàn)類似TCP可靠交互的機(jī)制(確認(rèn),重傳,數(shù)據(jù)有序))
UDP是面向報(bào)文,UDP對(duì)應(yīng)用層交下來的報(bào)文既不合并,也不拆分,而是保留報(bào)文的邊界,一次交付一個(gè)完整的報(bào)文(報(bào)文在UDP中是不可分割的,報(bào)文是UDP數(shù)據(jù)報(bào)處理的最小單位)。(但UDP交付給IP層(網(wǎng)絡(luò)層)后可能會(huì)被分片)文章來源地址http://www.zghlxwxcb.cn/news/detail-652134.html
到了這里,關(guān)于計(jì)算機(jī)網(wǎng)絡(luò)筆記的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!