The important thing in life is to have a great aim , and the determination

          常用鏈接

          統(tǒng)計(jì)

          IT技術(shù)鏈接

          保險(xiǎn)相關(guān)

          友情鏈接

          基金知識(shí)

          生活相關(guān)

          最新評(píng)論

          TCP/UDP區(qū)別以及UDP如何實(shí)現(xiàn)可靠傳輸

          TCP和UDP是OSI模型中的運(yùn)輸層中的協(xié)議。TCP提供可靠的通信傳輸,而UDP則常被用于讓廣播和細(xì)節(jié)控制交給應(yīng)用的通信傳輸。


          UDP(User Datagram Protocol)

                  UDP不提供復(fù)雜的控制機(jī)制,利用IP提供面向無(wú)連接的通信服務(wù)。并且它是將應(yīng)用程序發(fā)來(lái)的數(shù)據(jù)在收到的那一刻,立刻按照原樣發(fā)送到網(wǎng)絡(luò)上的一種機(jī)制。

                  即使是出現(xiàn)網(wǎng)絡(luò)擁堵的情況下,UDP也無(wú)法進(jìn)行流量控制等避免網(wǎng)絡(luò)擁塞的行為。此外,傳輸途中如果出現(xiàn)了丟包,UDO也不負(fù)責(zé)重發(fā)。甚至當(dāng)出現(xiàn)包的到達(dá)順序亂掉時(shí)也沒有糾正的功能。如果需要這些細(xì)節(jié)控制,那么不得不交給由采用UDO的應(yīng)用程序去處理。換句話說(shuō),UDP將部分控制轉(zhuǎn)移到應(yīng)用程序去處理,自己卻只提供作為傳輸層協(xié)議的最基本功能。UDP有點(diǎn)類似于用戶說(shuō)什么聽什么的機(jī)制,但是需要用戶充分考慮好上層協(xié)議類型并制作相應(yīng)的應(yīng)用程序。


          TCP(Transmission Control Protocol)

                  TCP充分實(shí)現(xiàn)愛呢了數(shù)據(jù)傳輸時(shí)各種控制功能,可以進(jìn)行丟包的重發(fā)控制,還可以對(duì)次序亂掉的分包進(jìn)行順序控制。而這些在UDP中都沒有。此外,TCP作為一種面向有連接的協(xié)議,只有在確認(rèn)通信對(duì)端存在時(shí)才會(huì)發(fā)送數(shù)據(jù),從而可以控制通信流量的浪費(fèi)。

                  TCP通過檢驗(yàn)和、序列號(hào)、確認(rèn)應(yīng)答、重發(fā)控制、連接管理以及窗口控制等機(jī)制實(shí)現(xiàn)可靠性傳輸。此處不一一敘述。


          TCP與UDP如何加以區(qū)分使用?

                  TCP用于在傳輸層有必要實(shí)現(xiàn)可靠性傳輸?shù)那闆r。由于它是面向有連接并具備順序控制、重發(fā)控制等機(jī)制的。所以它可以為應(yīng)用提供可靠傳輸。

                  另一方面,UDP主要用于那些對(duì)高速傳輸和實(shí)時(shí)性有較高要求的通信或廣播通信。舉一個(gè)IP電話進(jìn)行通話的例子。如果使用TCP,數(shù)據(jù)在傳送途中如果丟失會(huì)被重發(fā),但是這樣無(wú)法流暢地傳輸通話人的聲音,會(huì)導(dǎo)致無(wú)法進(jìn)行正常交流。而采用UDP,它不會(huì)進(jìn)行重發(fā)處理。從而也就不會(huì)有聲音大幅度延遲到達(dá)的問題。即使有部分?jǐn)?shù)據(jù)丟失,也只是影響某一小部分的通話。此外,在多播與廣播通信中也使用UDP而不是UDP。RIP、DHCP等基于廣播的協(xié)議也要依賴于UDP。


          TCP與UDP區(qū)別總結(jié):

          1、TCP面向連接(如打電話要先撥號(hào)建立連接);UDP是無(wú)連接的,即發(fā)送數(shù)據(jù)之前不需要建立連接

          2、TCP提供可靠的服務(wù)。也就是說(shuō),通過TCP連接傳送的數(shù)據(jù),無(wú)差錯(cuò),不丟失,不重復(fù),且按序到達(dá);UDP盡最大努力交付,即不保證可靠交付
          3、TCP面向字節(jié)流,實(shí)際上是TCP把數(shù)據(jù)看成一連串無(wú)結(jié)構(gòu)的字節(jié)流;UDP是面向報(bào)文的
          UDP沒有擁塞控制,因此網(wǎng)絡(luò)出現(xiàn)擁塞不會(huì)使源主機(jī)的發(fā)送速率降低(對(duì)實(shí)時(shí)應(yīng)用很有用,如IP電話,實(shí)時(shí)視頻會(huì)議等)
          4、每一條TCP連接只能是點(diǎn)到點(diǎn)的;UDP支持一對(duì)一,一對(duì)多,多對(duì)一和多對(duì)多的交互通信
          5、TCP首部開銷20字節(jié);UDP的首部開銷小,只有8個(gè)字節(jié)

          6、TCP的邏輯通信信道是全雙工的可靠信道,UDP則是不可靠信道


          UDP如何實(shí)現(xiàn)可靠傳輸

          由于在傳輸層UDP已經(jīng)是不可靠的連接,那就要在應(yīng)用層自己實(shí)現(xiàn)一些保障可靠傳輸?shù)臋C(jī)制

          簡(jiǎn)單來(lái)講,要使用UDP來(lái)構(gòu)建可靠的面向連接的數(shù)據(jù)傳輸,就要實(shí)現(xiàn)類似于TCP協(xié)議的

          超時(shí)重傳(定時(shí)器)

          有序接受 (添加包序號(hào))

          應(yīng)答確認(rèn) (Seq/Ack應(yīng)答機(jī)制)

          滑動(dòng)窗口流量控制等機(jī)制 (滑動(dòng)窗口協(xié)議)

          等于說(shuō)要在傳輸層的上一層(或者直接在應(yīng)用層)實(shí)現(xiàn)TCP協(xié)議的可靠數(shù)據(jù)傳輸機(jī)制,比如使用UDP數(shù)據(jù)包+序列號(hào),UDP數(shù)據(jù)包+時(shí)間戳等方法。

          目前已經(jīng)有一些實(shí)現(xiàn)UDP可靠傳輸?shù)臋C(jī)制,比如

          UDT(UDP-based Data Transfer Protocol

          基于UDP的數(shù)據(jù)傳輸協(xié)議(UDP-based Data Transfer Protocol,簡(jiǎn)稱UDT)是一種互聯(lián)網(wǎng)數(shù)據(jù)傳輸協(xié)議。UDT的主要目的是支持高速?gòu)V域網(wǎng)上的海量數(shù)據(jù)傳輸,而互聯(lián)網(wǎng)上的標(biāo)準(zhǔn)數(shù)據(jù)傳輸協(xié)議TCP在高帶寬長(zhǎng)距離網(wǎng)絡(luò)上性能很差。 顧名思義,UDT建于UDP之上,并引入新的擁塞控制和數(shù)據(jù)可靠性控制機(jī)制。UDT是面向連接的雙向的應(yīng)用層協(xié)議。它同時(shí)支持可靠的數(shù)據(jù)流傳輸和部分可靠的數(shù)據(jù)報(bào)傳輸。 由于UDT完全在UDP上實(shí)現(xiàn),它也可以應(yīng)用在除了高速數(shù)據(jù)傳輸之外的其它應(yīng)用領(lǐng)域,例如點(diǎn)到點(diǎn)技術(shù)(P2P),防火墻穿透,多媒體數(shù)據(jù)傳輸?shù)鹊取?/span>

          posted on 2017-07-19 22:25 鴻雁 閱讀(469) 評(píng)論(0)  編輯  收藏 所屬分類: IT技術(shù)相關(guān)

          主站蜘蛛池模板: 易门县| 北安市| 城步| 汉川市| 新宁县| 琼结县| 湘阴县| 斗六市| 原平市| 景谷| 朝阳县| 巩留县| 镶黄旗| 鄄城县| 龙川县| 子洲县| 大连市| 莎车县| 永昌县| 石嘴山市| 专栏| 洛扎县| 项城市| 黎川县| 宁夏| 金昌市| 大悟县| 玉屏| 隆安县| 张家口市| 体育| 南京市| 涪陵区| 高雄市| 安陆市| 合山市| 凤翔县| 南阳市| 高唐县| 浦北县| 黄梅县|