自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

TCP的交互數(shù)據(jù)流知識點記錄

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
TCP 報文段所攜帶的應(yīng)用程序數(shù)據(jù)按照長度分為兩種:交互數(shù)據(jù)和成塊數(shù)據(jù)。交互數(shù)據(jù)僅包含很少的字節(jié)。使用交互數(shù)據(jù)的應(yīng)用程序?qū)崟r性要求高,比如 Telnet、ssh 等。

TCP 報文段所攜帶的應(yīng)用程序數(shù)據(jù)按照長度分為兩種:交互數(shù)據(jù)和成塊數(shù)據(jù)。交互數(shù)據(jù)僅包含很少的字節(jié)。使用交互數(shù)據(jù)的應(yīng)用程序(或協(xié)議)對實時性要求高,比如 Telnet、ssh 等。成塊數(shù)據(jù)的長度則通常為 TCP 報文段允許的最大數(shù)據(jù)長度。使用成塊數(shù)據(jù)的應(yīng)用程序(或協(xié)議)對傳輸效率要求高,比如 FTP。

TCP 的交互數(shù)據(jù)流

交互數(shù)據(jù)流總是以小于最大報文段長度的分組發(fā)送,即進(jìn)行小分組數(shù)據(jù)傳輸。主要應(yīng)用在實時性要求比較高的場合。比如 Rlogin 遠(yuǎn)程登錄中,需要回顯客戶端輸入的字符,每發(fā)送一個字節(jié)到服務(wù)端,并回顯到客戶端的過程如下:

客戶端產(chǎn)生一個41bit長的報文(20字節(jié)的IP首部,20字節(jié)的TCP首部,1字節(jié)的數(shù)據(jù)),發(fā)送到服務(wù)端;

服務(wù)端發(fā)送確認(rèn)報文,不包含應(yīng)用數(shù)據(jù)(長度為0);

服務(wù)端發(fā)送回顯的字符;

客戶端發(fā)送確認(rèn)報文,不包含應(yīng)用數(shù)據(jù)(長度為0)。

上面的過程中,雖然達(dá)到了實時性要求,但是交互數(shù)據(jù)太頻繁,并且在服務(wù)器發(fā)送的確認(rèn)報文中并沒有返回有用應(yīng)用程序數(shù)據(jù),回顯數(shù)據(jù)是服務(wù)器單獨發(fā)送,并不跟確認(rèn)報文一起發(fā)送,這樣頻繁的交互數(shù)據(jù)會導(dǎo)致網(wǎng)絡(luò)擁塞。為了防止網(wǎng)絡(luò)擁塞,在進(jìn)行交互數(shù)據(jù)流時可采用兩種方法:捎帶 ACK和Nagle 算法;

捎帶 ACK

當(dāng)服務(wù)器收到遠(yuǎn)程主機(jī)的 TCP 數(shù)據(jù)報之后,通常不立即發(fā)送 ACK 確認(rèn)數(shù)據(jù)報,而是推遲發(fā)送,即等待一個短暫的時間,這個時間一般是 200 ms。如果這段時間里面服務(wù)器有需要發(fā)送給遠(yuǎn)程主機(jī)的 TCP 數(shù)據(jù)報,那么就把這個 ACK 確認(rèn)數(shù)據(jù)報“捎帶”著發(fā)送出去,把本來兩個 TCP 數(shù)據(jù)報整合成一個發(fā)送。由于 TCP 具有超時重傳機(jī)制,若等待時間超過了200 ms,若此時服務(wù)器依然沒有數(shù)據(jù)要一起發(fā)送,就直接發(fā)送 ACK 確認(rèn)報文段。這種機(jī)制可以提高 TCP 數(shù)據(jù)報的利用率。

使用捎帶 ACK 機(jī)制的交互數(shù)據(jù)流時,客戶端針對服務(wù)器返回的數(shù)據(jù)所發(fā)送的確認(rèn)報文段都不攜帶任何應(yīng)用程序數(shù)據(jù)(長度為0),而服務(wù)器每次發(fā)送的確認(rèn)報文段都包含它需要發(fā)送的應(yīng)用程序數(shù)據(jù)。服務(wù)器的這種處理方式稱為延遲確認(rèn),即它不馬上確認(rèn)上次收到的數(shù)據(jù),而是在一段延遲時間后查看本端是否有數(shù)據(jù)需要發(fā)送,如果有,則和確認(rèn)信息一起發(fā)出。因為服務(wù)器對客戶請求處理得很快,所以它發(fā)送確認(rèn)報文段的時候總是有數(shù)據(jù)一起發(fā)送。延遲確認(rèn)可以減少發(fā)送 TCP 報文段的數(shù)量。而由于用戶的輸入速度明顯慢于客戶端程序的處理速度,所以客戶端的確認(rèn)報文段總是不攜帶任何應(yīng)用程序數(shù)據(jù)。

Nagle 算法

該算法要求一個 TCP 連接的通信雙方在任意時刻最多只能發(fā)送一個未被確認(rèn)的 TCP 報文段,在該 TCP 報文段的確認(rèn)到達(dá)之前不能發(fā)送其他TCP報文段。另一方面,發(fā)送方在等待確認(rèn)的同時收集本端需要發(fā)送的微量數(shù)據(jù),并在確認(rèn)到來時以一個 TCP 報文段將它們?nèi)堪l(fā)出。這樣就極大地減少了網(wǎng)絡(luò)上的微小 TCP 報文段的數(shù)量。該算法的另一個優(yōu)點在于其自適應(yīng)性:確認(rèn)到達(dá)得越快,數(shù)據(jù)也就發(fā)送得越快。

責(zé)任編輯:林琳 來源: CSDN
相關(guān)推薦

2020-08-06 00:41:17

TCPIP網(wǎng)絡(luò)協(xié)議

2020-08-04 07:02:00

TCPIP算法

2011-12-14 15:57:13

javanio

2010-08-17 14:56:00

HCNE認(rèn)證

2011-04-15 12:25:21

BGP路由

2016-05-30 17:31:34

Spring框架

2019-11-25 21:46:12

數(shù)據(jù)湖云計算數(shù)據(jù)倉庫

2016-11-14 19:01:36

數(shù)據(jù)流聊天系統(tǒng)web

2020-12-24 13:32:31

大數(shù)據(jù)數(shù)據(jù)分析SQL

2018-01-25 12:50:33

數(shù)據(jù)庫OracleROWNUM

2010-05-31 10:19:09

MySQL數(shù)據(jù)庫時區(qū)

2019-07-10 15:46:05

大數(shù)據(jù)數(shù)據(jù)庫信息安全

2010-05-26 17:40:14

MySQL數(shù)據(jù)庫

2021-04-13 08:25:12

測試開發(fā)Java注解Spring

2011-04-01 15:28:40

Zabbix配置安裝

2009-08-19 10:41:12

Java輸入數(shù)據(jù)流

2022-03-18 08:57:17

前端數(shù)據(jù)流選型

2021-12-30 08:17:27

Springboot數(shù)據(jù)訪問DataSourceB

2017-11-16 19:26:34

海量數(shù)據(jù)算法計算機(jī)

2021-10-27 10:43:36

數(shù)據(jù)流中位數(shù)偶數(shù)
點贊
收藏

51CTO技術(shù)棧公眾號