摘要:沒(méi)有擁塞控制網(wǎng)絡(luò)出現(xiàn)擁塞并不會(huì)使源主機(jī)的發(fā)送速率降低很多實(shí)時(shí)應(yīng)用如電話(huà),實(shí)時(shí)視頻會(huì)議等要求主機(jī)以恒定速率發(fā)送數(shù)據(jù),并且允許在擁塞時(shí)有一些數(shù)據(jù)丟失,但不允許有太大的時(shí)延,就可以用,比如打視頻電話(huà),有一兩幀卡頓影響并不大。
Tcp協(xié)議(傳輸控制協(xié)議)
三次“對(duì)話(huà)”的目的是使數(shù)據(jù)包的發(fā)送和接收同步,經(jīng)過(guò)三次“對(duì)話(huà)”之后,主機(jī)A才向主機(jī)B正式發(fā)送數(shù)據(jù)。
四次握手:斷開(kāi)Tcp連接時(shí),需要客戶(hù)端和服務(wù)端總共發(fā)送4個(gè)包以確認(rèn)連接的斷開(kāi)。通俗描述為:
客戶(hù)端A和服務(wù)器B四次握手:
客戶(hù)端A: “B我已經(jīng)沒(méi)有話(huà)說(shuō)了我不會(huì)再給你發(fā)消息了”; (等待B確認(rèn))(一次握手)
服務(wù)端B: “A好的我知道你不會(huì)給我發(fā)消息了”;(此時(shí)A->B的這條通路會(huì)變?yōu)榘腙P(guān)閉狀態(tài)A -> B這個(gè)方向的連接釋放了但是B->A這個(gè)方向的還沒(méi)釋放B發(fā)消息給AA仍能接收到)(二次握手);
服務(wù)端B: “A我也沒(méi)話(huà)要跟你說(shuō)了”;(等待A確認(rèn))(三次握手);
客戶(hù)端A: “好,我知道了,掛了吧”;(收到確認(rèn)后,B斷開(kāi)連接,A斷開(kāi)連接)。
特點(diǎn):
(1)是面向連接的運(yùn)輸層協(xié)議(使用Tcp協(xié)議前必須建立Tcp連接,傳送數(shù)據(jù)完畢后,必須釋放已建立的Tcp連接);
(2)點(diǎn)對(duì)點(diǎn):每條Tcp連接只能有兩個(gè)端點(diǎn)(連接的端點(diǎn)叫套接字(socket)或插口);
(3)Tcp提供可靠交互服務(wù),通過(guò)Tcp連接傳送的數(shù)據(jù),無(wú)差錯(cuò),不丟失,不重復(fù),并且有序到達(dá)。
(4)提供全雙工通信:
(5)面向字節(jié)流。
適用場(chǎng)景:適用于對(duì)效率要求相對(duì)低,但對(duì)準(zhǔn)確性要求相對(duì)高的場(chǎng)景下;
一般用于文件傳輸(對(duì)數(shù)據(jù)準(zhǔn)確性要求高,速度可以相對(duì)慢),發(fā)送或接收郵件(對(duì)數(shù)據(jù)準(zhǔn)確性要求高,非緊急應(yīng)用),遠(yuǎn)程登錄等等。
TCP可以用于網(wǎng)絡(luò)數(shù)據(jù)庫(kù),分布式高精度計(jì)算系統(tǒng)的數(shù)據(jù)傳輸
Tcp的可靠傳輸協(xié)議
(1)停止等待協(xié)議:
超時(shí)重傳:A給B發(fā)送消息后,必須收到B返回的確認(rèn)消息才算發(fā)送成功,A只要在發(fā)送后的一段時(shí)間內(nèi)沒(méi)有收到B的確認(rèn)消息,那就認(rèn)為剛才發(fā)的消息丟失,就會(huì)重新發(fā)送剛才的消息,這就叫超時(shí)重傳。
一種情況是,B在收到重傳的消息后,又收到了之前丟失的消息,此時(shí)B也應(yīng)該向A發(fā)送確認(rèn)信息,但A會(huì)將這個(gè)信息丟棄,B也會(huì)將遲到的那個(gè)信息丟棄。
(2)連續(xù)ARQ協(xié)議
滑動(dòng)窗口協(xié)議:接收方采用累計(jì)確認(rèn)的方式,接收方不必對(duì)收到的分組逐個(gè)發(fā)送確認(rèn),而是在收到幾個(gè)分組后,對(duì)按序到達(dá)的最后一個(gè)分組發(fā)送確認(rèn)。
Tcp的擁塞控制
(1)擁塞:對(duì)網(wǎng)絡(luò)資源的需求超過(guò)了網(wǎng)絡(luò)能提供的資源(需求資源 > 可用資源)就稱(chēng)為擁塞;
(2)擁塞控制:防止過(guò)多的數(shù)據(jù)注入到網(wǎng)絡(luò)中,這樣可以使網(wǎng)絡(luò)中的路由器或鏈路不至于過(guò)載。
(3)幾種擁塞控制方法:
慢開(kāi)始算法 和 擁賽避免算法:發(fā)送數(shù)據(jù)時(shí),由小到大逐漸增大發(fā)送窗口,這樣的方法可以使分組注入到網(wǎng)絡(luò)的速率更合理。
快重傳算法 和 快恢復(fù)算法:收到3個(gè)重復(fù)的確認(rèn),執(zhí)行快重傳算法,轉(zhuǎn)入擁塞避免,將發(fā)送窗口數(shù)量變?yōu)槁_(kāi)始數(shù)量的一半。
Udp協(xié)議
特點(diǎn):
(1)UDP是無(wú)連接的:發(fā)送數(shù)據(jù)之前不需要建立連接,發(fā)送結(jié)束后也沒(méi)有連接釋放,因此減少了開(kāi)銷(xiāo)和發(fā)送數(shù)據(jù)前的時(shí)研;
(2)UDP使用盡最大努力交付:即不保證可靠交互;
(3)UDP是面向報(bào)文的:發(fā)送方的UDP對(duì)應(yīng)用程序交下來(lái)的報(bào)文,在添加首部后就向下交付給IP層。既不拆分,也不合并,而是保留這些報(bào)文的邊界,因此,應(yīng)用程序需要選擇合適的報(bào)文大小。
(4)UDP沒(méi)有擁塞控制:網(wǎng)絡(luò)出現(xiàn)擁塞并不會(huì)使源主機(jī)的發(fā)送速率降低;
很多實(shí)時(shí)應(yīng)用如ip電話(huà),實(shí)時(shí)視頻會(huì)議等要求主機(jī)以恒定速率發(fā)送數(shù)據(jù),并且允許在擁塞時(shí)有一些數(shù)據(jù)丟失,但不允許有太大的時(shí)延,就可以用UDP,比如打視頻電話(huà),有一兩幀卡頓影響并不大。
(5)UDP支持一對(duì)一,一對(duì)多,多對(duì)一,多對(duì)多的交互通信;
(6)UDP首部開(kāi)銷(xiāo)小;
適用場(chǎng)景:UDP協(xié)議適用于對(duì)效率要求相對(duì)高,對(duì)準(zhǔn)確性要求相對(duì)低的場(chǎng)景。
UDP一般用于即時(shí)通信:
聊天軟件 對(duì)數(shù)據(jù)準(zhǔn)確性和丟包要求比較低,但速度必須快;
在線(xiàn)視頻(RTSP 速度一定要快,保證視頻連續(xù),但是偶爾花了一個(gè)圖像幀,人們還是能接受的);
網(wǎng)絡(luò)語(yǔ)音電話(huà)(VoIP 語(yǔ)音數(shù)據(jù)包一般比較小,需要高速發(fā)送,偶爾斷音或串音也沒(méi)有問(wèn)題);
UDP可以用于服務(wù)系統(tǒng)內(nèi)部之間的數(shù)據(jù)傳輸,因?yàn)閿?shù)據(jù)可能比較多,內(nèi)部系統(tǒng)局域網(wǎng)內(nèi)的丟包錯(cuò)包率又很低,即便丟包,頂多是操作無(wú)效,這種情況下,UDP經(jīng)常被使用。
轉(zhuǎn)發(fā)自:https://cloud.tencent.com/developer/article/1479592
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/126105.html
摘要:由于本身發(fā)送的就是一份一份的數(shù)據(jù)報(bào),所以自然而然的就有一個(gè)上限的大小。并且由于本身的不可靠性以及無(wú)序性,如果發(fā)送了這三個(gè)數(shù)據(jù)報(bào)過(guò)來(lái),端接收到的可能是任意順序任意個(gè)數(shù)三個(gè)數(shù)據(jù)報(bào)的排列組合。 前言 最頭疼的問(wèn)題莫過(guò)于到底該選TCP還是UDP作為傳輸層協(xié)議。通過(guò)快速對(duì)比分析 TCP 和 UDP 的區(qū)別,來(lái)幫助即時(shí)通訊初學(xué)者快速了解這些基礎(chǔ)的知識(shí)點(diǎn),從而在IM、消息推送等網(wǎng)絡(luò)通信應(yīng)用場(chǎng)景中能準(zhǔn)...
摘要:該狀態(tài)會(huì)持續(xù)最大段生存期,指報(bào)文段在網(wǎng)絡(luò)中生存的時(shí)間,超時(shí)會(huì)被拋棄時(shí)間,若該時(shí)間段內(nèi)沒(méi)有的重發(fā)請(qǐng)求的話(huà),就進(jìn)入狀態(tài)。 引言 網(wǎng)絡(luò)協(xié)議是每個(gè)前端工程師都必須要掌握的知識(shí),TCP/IP 中有兩個(gè)具有代表性的傳輸層協(xié)議,分別是 TCP 和 UDP,本文將介紹下這兩者以及它們之間的區(qū)別。 想閱讀更多優(yōu)質(zhì)文章請(qǐng)猛戳GitHub博客 一、TCP/IP網(wǎng)絡(luò)模型 計(jì)算機(jī)與網(wǎng)絡(luò)設(shè)備要相互通信,雙方就必須...
摘要:該狀態(tài)會(huì)持續(xù)最大段生存期,指報(bào)文段在網(wǎng)絡(luò)中生存的時(shí)間,超時(shí)會(huì)被拋棄時(shí)間,若該時(shí)間段內(nèi)沒(méi)有的重發(fā)請(qǐng)求的話(huà),就進(jìn)入狀態(tài)。 引言 網(wǎng)絡(luò)協(xié)議是每個(gè)前端工程師都必須要掌握的知識(shí),TCP/IP 中有兩個(gè)具有代表性的傳輸層協(xié)議,分別是 TCP 和 UDP,本文將介紹下這兩者以及它們之間的區(qū)別。 想閱讀更多優(yōu)質(zhì)文章請(qǐng)猛戳GitHub博客 一、TCP/IP網(wǎng)絡(luò)模型 計(jì)算機(jī)與網(wǎng)絡(luò)設(shè)備要相互通信,雙方就必須...
摘要:代表傳輸控制協(xié)議網(wǎng)際協(xié)議,指的是一系列協(xié)議。,傳輸控制協(xié)議是面向連接的協(xié)議,也就是說(shuō),在收發(fā)數(shù)據(jù)前,必須和對(duì)方建立可靠的連接。第二是超文本傳輸協(xié)議,信息是明文傳輸,則是具有安全性的加密傳輸協(xié)議。 IP:網(wǎng)絡(luò)層協(xié)議; TCP和UDP:傳輸層協(xié)議; HTTP:應(yīng)用層協(xié)議; SOCKET:TCP/IP網(wǎng)絡(luò)的API。 TCP/IP代表傳輸控制協(xié)議/網(wǎng)際協(xié)議,指的是一系列協(xié)議。 T...
摘要:協(xié)議族的構(gòu)成數(shù)據(jù)鏈路層網(wǎng)絡(luò)層傳輸層應(yīng)用層和是網(wǎng)絡(luò)層的協(xié)議,但是它所工作的內(nèi)容是鏈路層的。。。發(fā)送的時(shí)候,協(xié)議為每個(gè)包編號(hào),簡(jiǎn)稱(chēng),以便接收的一方按照順序還原。并沒(méi)有提供任何機(jī)制,表示原始文件的大小,這由應(yīng)用層的協(xié)議來(lái)規(guī)定。 TCP/IP協(xié)議族的構(gòu)成 * 數(shù)據(jù)鏈路層:ARP,RARP * 網(wǎng)絡(luò)層: IP,ICMP,IGMP * 傳輸層:TCP ,UDP,UGP * 應(yīng)用層:Telnet,F...
摘要:在網(wǎng)絡(luò)層有協(xié)議協(xié)議協(xié)議協(xié)議和協(xié)議。而且,因?yàn)橛写_認(rèn)機(jī)制三次握手機(jī)制,這些也導(dǎo)致容易被人利用,實(shí)現(xiàn)等攻擊。沒(méi)有的這些機(jī)制,較被攻擊者利用的漏洞就要少一些。但也是無(wú)法避免攻擊的,比如攻擊缺點(diǎn)不可靠,不穩(wěn)定。 簡(jiǎn)介 HTTP協(xié)議(超文本傳輸協(xié)議)和 UDP(用戶(hù)數(shù)據(jù)包協(xié)議),TCP 協(xié)議(傳輸控制協(xié)議) TCP/IP是個(gè)協(xié)議組,可分為四個(gè)層次:網(wǎng)絡(luò)接口層、網(wǎng)絡(luò)層、傳輸層和應(yīng)用層。在網(wǎng)絡(luò)層有I...
閱讀 3514·2023-04-25 20:09
閱讀 3720·2022-06-28 19:00
閱讀 3035·2022-06-28 19:00
閱讀 3058·2022-06-28 19:00
閱讀 3132·2022-06-28 19:00
閱讀 2860·2022-06-28 19:00
閱讀 3014·2022-06-28 19:00
閱讀 2610·2022-06-28 19:00