那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

TCP和UDP的特點(diǎn)及使用場(chǎng)景

jf_78858299 ? 來(lái)源:雞仔說(shuō) ? 作者:張小吉 ? 2023-05-18 17:20 ? 次閱讀

前言

在我們開始學(xué)習(xí)網(wǎng)絡(luò)編程的時(shí)候,我們發(fā)現(xiàn)一些名詞出現(xiàn)的頻率極其高,比如 TCP/IP、UDP、OSI 七層網(wǎng)絡(luò)模型等。這肯定不是偶然,因?yàn)樗鼈儤O其重要,才會(huì)被人反復(fù)提及。尤其在面試的時(shí)候,面試官喜歡把它們拿來(lái),當(dāng)作考察面試者基礎(chǔ)功底的重要環(huán)節(jié)。為了不讓文章顯得冗余,我們今天只談網(wǎng)絡(luò)中的 TCP、UDP 和端口

協(xié)議、TCP 和 UDP

在了解 TCP(Transmission Control Protocol 即傳輸控制協(xié)議) 和 UDP(User Datagram Protocol 即用戶數(shù)據(jù)包協(xié)議) 之前,我們先要知道一個(gè)名詞,即協(xié)議。它到底是什么?它其實(shí)就是一套約定成俗的規(guī)則。就像開會(huì)的時(shí)候,我們達(dá)成了一些共識(shí),先開發(fā)那個(gè)接口,項(xiàng)目什么時(shí)候上線等等。

可以毫不夸張地說(shuō)計(jì)算機(jī)網(wǎng)絡(luò)的構(gòu)建與發(fā)展,奠基石就是各種網(wǎng)絡(luò)協(xié)議。它們定義了信息通訊的方式,以及如何收發(fā)信息等,比如:

  • IP 協(xié)議負(fù)責(zé)將多個(gè)包交換網(wǎng)絡(luò)連接起來(lái),并管理通訊 IP 源地址和目標(biāo)地址的協(xié)議
  • TCP 和 UDP 協(xié)議則是位于應(yīng)用層和 IP 層之間,負(fù)責(zé)它們之間信息傳輸?shù)闹匾獏f(xié)議

既然是協(xié)議,大家都必須遵守,否則,今天張三定一個(gè)協(xié)議,李四不同意,他明天再定一個(gè)協(xié)議,這就亂了套。因此,不同的大廠和許多公司就聯(lián)合起來(lái)組成一個(gè)組織,將這些協(xié)議統(tǒng)一規(guī)范起來(lái)。你就必須得用這些規(guī)定好的協(xié)議,否則就無(wú)法通信。這才實(shí)現(xiàn)了“地球村”的夢(mèng)想。今天無(wú)論用什么設(shè)備,在世界的任何角落,用哪種國(guó)家的語(yǔ)言,都可以很方便地使用網(wǎng)絡(luò)進(jìn)行通信

TCP 和 UDP 的特點(diǎn)

用一個(gè)不算嚴(yán)謹(jǐn)?shù)恼f(shuō)法總結(jié) TCP 就是,女孩子如果遇到 TCP 這樣的男生,就嫁了吧。因?yàn)門CP的核心特點(diǎn)就是靠譜。他的特定包括,面向連接、可靠、基于字節(jié)流控制的傳輸,就像一個(gè)管道一樣將應(yīng)用層和 IP 層連接起來(lái)

而與之相對(duì)應(yīng)的,UDP 就像二十多歲的浪子。他們不夠可靠,但卻充滿熱情。一切以效率為先,他們可以馬上答應(yīng)你很多事情,并且愿意立馬付出實(shí)踐。你這一秒說(shuō)佛珠浪漫,他不管身處何處,立馬搭飛機(jī)給你去取,下一秒說(shuō)想去聽周杰倫的演唱會(huì),他立馬給你訂票。當(dāng)然,人的精力和時(shí)間都有限,所以就可能出現(xiàn)不可控的意外,比如根本沒(méi)有足夠的錢買門票等。這和UDP相仿,它提供無(wú)連接通信,但不對(duì)傳送的數(shù)據(jù)包提供可靠性保證

TCP 和 UDP 的使用場(chǎng)景

不同的人,因性格不同,做事的方式也不一樣,你不能說(shuō)這樣就一定好,那樣就一定不好,對(duì)于 TCP 和 UDP 也是一樣,在不同的場(chǎng)景中,他們各有各的妙用

比如在開發(fā)一個(gè)游戲的的程序是,對(duì)于玩家登陸賬號(hào),因?yàn)槲覀円_保不同的玩家能登陸到自己的賬號(hào),這個(gè)時(shí)候就要應(yīng)用 TCP 協(xié)議。而對(duì)于控制游戲中角色的移動(dòng),我們只需根據(jù)玩家鼠標(biāo)的點(diǎn)擊移動(dòng)角色,如果因?yàn)樾「怕实木W(wǎng)絡(luò)問(wèn)題,對(duì)于玩家來(lái)說(shuō),再次進(jìn)行角色移動(dòng)操作即可,成本和風(fēng)險(xiǎn)在可控范圍內(nèi),因此就可以使用 UDP 協(xié)議

我們從以上可以看出,如果是基礎(chǔ)服務(wù)功能,則最好使用 TCP 協(xié)議,保證服務(wù)的可靠性。以確保過(guò)程中,每一個(gè)網(wǎng)絡(luò)包能夠正確抵達(dá)目的地。而相較于 UDP ,程序員則需要自己去進(jìn)一步做丟包情況和字節(jié)傳輸順序的處理

可不要因此就覺(jué)得 UDP 非常難用,正相反,其實(shí)有大量的服務(wù)是基于 UDP 協(xié)議的。比如 DNS 解析服務(wù)。每一臺(tái)電腦訪問(wèn)外網(wǎng)網(wǎng)頁(yè),都需要通過(guò) DNS 服務(wù)解析域名,從中找到對(duì)應(yīng)的 IP 地址。這個(gè)時(shí)候如果 DNS 出了問(wèn)題,我們其實(shí)只需要再一次進(jìn)行 DNS 尋址查詢即可。唯一的副作用,可能就是有一丁點(diǎn)兒延遲罷了

另一個(gè) UDP 的應(yīng)用就是 IP 電話, 我們常把它稱作 VoIP(Voice over IP),它的原理可以簡(jiǎn)化的理解為,把撥打電話從以往的電話通訊,轉(zhuǎn)移到網(wǎng)絡(luò)通訊上,類似于我們現(xiàn)在的微信通話。當(dāng)你和某人通話的時(shí)候,用的就是 UDP ,想象一下,其實(shí)我們這個(gè)時(shí)候需要的并不是可靠性,而是實(shí)時(shí)性。如果不幸中間有一點(diǎn)信息損失了,比如你媽說(shuō):“過(guò)年給我把對(duì)象帶回來(lái),不然就別回來(lái)了”。由于信息損失一部分,像這樣——“過(guò)年給 把對(duì)象帶 來(lái),不然 別回 了”,其實(shí)我們是可以理解一整句話的意思的。而如果用 TCP,我們可能說(shuō)一句話,別人 30 秒之后才能聽到,這顯然是不能忍受的

因此,我們明白了,在日常的開發(fā)過(guò)程中,我們應(yīng)該根據(jù)不同的應(yīng)用場(chǎng)景,選擇對(duì)應(yīng)的 TCP 或者 UDP 作為網(wǎng)絡(luò)傳輸協(xié)議,而不能因?yàn)槲覀儗?duì) UDP 不熟悉,就從心理上抗拒它

端口及其特點(diǎn)

如果 IP 是用來(lái)定位街區(qū)的,那么端口就是對(duì)應(yīng)于該街區(qū)中每一戶的門牌號(hào)。在通訊過(guò)程中,數(shù)據(jù)通過(guò)各種通訊協(xié)議最終抵達(dá)設(shè)備(如計(jì)算機(jī))后,這里的設(shè)備就相當(dāng)于一個(gè)街區(qū),而在設(shè)備計(jì)算機(jī)內(nèi)部有很多程序在跑,數(shù)據(jù)進(jìn)來(lái)之后,必須要給它一個(gè)對(duì)應(yīng)的門牌號(hào)(即端口號(hào)),程序才方便進(jìn)行后續(xù)操作

端口號(hào)屬于傳輸協(xié)議的一部分,因此我們可以說(shuō),數(shù)據(jù)通過(guò) IP 地址發(fā)送對(duì)應(yīng)的數(shù)據(jù)到指定設(shè)備上,而通過(guò)端口號(hào)把數(shù)據(jù)發(fā)送到指定的服務(wù)或程序上

程序一般不止是監(jiān)聽指定的端口號(hào),而且也會(huì)明確對(duì)應(yīng)的傳輸協(xié)議。所以我們?cè)谶M(jìn)行數(shù)據(jù)傳輸?shù)臅r(shí)候,既要指定對(duì)應(yīng)的端口號(hào),也要指定對(duì)應(yīng)的通訊協(xié)議,很多人僅僅會(huì)說(shuō):程序 A 監(jiān)聽著 33001 端口,這個(gè)是不正確的,至少是不完全正確的。相應(yīng)的,我們應(yīng)該這樣說(shuō):程序 A 使用 TCP 協(xié)議,監(jiān)聽 33001 端口,當(dāng)然你也可以說(shuō):程序 A 使用 UDP 協(xié)議,監(jiān)聽 33001 端口

指定傳輸協(xié)議和端口,顯而易見(jiàn)的好處在于,當(dāng)我們進(jìn)行端口轉(zhuǎn)發(fā)或者構(gòu)建網(wǎng)絡(luò)防火墻的時(shí)候,我們可以很方便的通過(guò)協(xié)議和端口進(jìn)行隔離。以防止不可預(yù)見(jiàn)的意外發(fā)生。對(duì)于計(jì)算機(jī)來(lái)說(shuō),通過(guò)這種方式可以防止外網(wǎng)各種不必要的數(shù)據(jù),進(jìn)入本地局域網(wǎng)

你可能會(huì)想,這么多端口號(hào),如果大家都用同一個(gè),那不是也有沖突。沒(méi)錯(cuò),這就需要一個(gè)專門的組織來(lái)管理它們,IANA( Internet Assigned Numbers Authority 即互聯(lián)網(wǎng)號(hào)碼分配局 ),它負(fù)責(zé)管理端口注冊(cè)。大多數(shù)主流的程序,都有一個(gè)明確的已注冊(cè)端口,比如常見(jiàn)的 FTP 監(jiān)聽 20、 21 端口,而 HTTP 服務(wù)監(jiān)聽 80 端口等。如果有一個(gè)程序想注冊(cè)某個(gè)端口,那么 IANA 會(huì)先去查一查這個(gè)端口是否已被注冊(cè),如果已經(jīng)被注冊(cè)了,它則會(huì)拒絕申請(qǐng)

端口號(hào)根據(jù)范圍分為三種

  1. Well-Known Ports(即公認(rèn)端口號(hào))

它是一些眾人皆知著名的端口號(hào),這些端口號(hào)固定分配給一些服務(wù),我們上面提到的 HTTP 服務(wù)、 FTP服務(wù)等都屬于這一類。知名端口號(hào)的范圍是:0-1023

  1. Registered Ports(即注冊(cè)端口)

它是不可以動(dòng)態(tài)調(diào)整的端口段,這些端口沒(méi)有明確定義服務(wù)哪些特定的對(duì)象。不同的程序可以根據(jù)自己的需要自己定義,注冊(cè)端口號(hào)的范圍是:1024-49151

  1. Dynamic, private or ephemeral ports(即動(dòng)態(tài)、私有或臨時(shí)端口號(hào))

顧名思義,這些端口號(hào)是不可以注冊(cè)的,這一段的端口被用作一些私人的或者定制化的服務(wù),當(dāng)然也可以用來(lái)做動(dòng)態(tài)端口服務(wù),這一段的范圍是:49152–65535

參考資料

  • List of TCP and UDP port numbers
  • Understanding TCP/IP Network Stack & Writing Network Apps
  • UDP and TCP, two ways of sending traffic
  • TCP and UDP Ports Explained
  • TCP/IP Ports and Sockets Explained
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • IP
    IP
    +關(guān)注

    關(guān)注

    5

    文章

    1718

    瀏覽量

    149961
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1378

    瀏覽量

    79301
  • UDP
    UDP
    +關(guān)注

    關(guān)注

    0

    文章

    327

    瀏覽量

    34043
  • 應(yīng)用層
    +關(guān)注

    關(guān)注

    0

    文章

    46

    瀏覽量

    11544
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RK3308的特點(diǎn)及應(yīng)用場(chǎng)景是什么?

    RK3308的特點(diǎn)及應(yīng)用場(chǎng)景是什么?
    發(fā)表于 03-09 08:04

    TCPUDP的區(qū)別分析

      傳輸層協(xié)議主要有TCPUDPUDP提供無(wú)連接的通信,不能保證數(shù)據(jù)包被發(fā)送到目標(biāo)地址,典型的即時(shí)傳輸少量數(shù)據(jù)的應(yīng)用程序通常使用UDPTCP
    發(fā)表于 09-18 10:29 ?2次下載

    tcpudp的應(yīng)用場(chǎng)景

    特點(diǎn)上我們已經(jīng)知道,TCP 是可靠的但傳輸速度慢 ,UDP 是不可靠的但傳輸速度快。因此在選用具體協(xié)議通信時(shí),應(yīng)該根據(jù)通信數(shù)據(jù)的要求而決定。若通信數(shù)據(jù)完整性需讓位與通信實(shí)時(shí)性,則應(yīng)該選用 T
    發(fā)表于 12-08 10:16 ?1.5w次閱讀
    <b class='flag-5'>tcp</b>和<b class='flag-5'>udp</b>的應(yīng)<b class='flag-5'>用場(chǎng)景</b>

    tcpudp協(xié)議的異同

    UDP 校驗(yàn)和則是包含 UDP 首部和數(shù)據(jù)在內(nèi)的校驗(yàn)結(jié)果。 TCP協(xié)議 TCP協(xié)議基于網(wǎng)絡(luò)層的 IP 協(xié)議提供的是有連接、可靠服務(wù),是基于字節(jié)流的。
    的頭像 發(fā)表于 11-12 14:45 ?4144次閱讀
    <b class='flag-5'>tcp</b>和<b class='flag-5'>udp</b>協(xié)議的異同

    UDP的主要特點(diǎn)及其使用場(chǎng)景

    的傳輸層協(xié)議,提供面向十五的簡(jiǎn)單不可靠詳細(xì)傳送服務(wù)。 UDP 的主要特點(diǎn) 1、UDP 是無(wú)連接的,即發(fā)送數(shù)據(jù)之前不需要建立連接,因此減少了開銷和發(fā)送數(shù)據(jù)之前的時(shí)延。 2、UDP 使用盡
    的頭像 發(fā)表于 08-31 17:25 ?1.7w次閱讀

    TCPUDP的原理以及區(qū)別

    TCP是基于連接的,而UDP是基于非連接的。 **tcp傳輸數(shù)據(jù)穩(wěn)定可靠** ,適用于對(duì)網(wǎng)絡(luò)通訊質(zhì)量要求較高的場(chǎng)景,需要準(zhǔn)確無(wú)誤的傳輸給對(duì)方,比如,傳輸文件,發(fā)送郵件,瀏覽網(wǎng)頁(yè)等
    的頭像 發(fā)表于 05-18 17:14 ?1023次閱讀
    <b class='flag-5'>TCP</b>和<b class='flag-5'>UDP</b>的原理以及區(qū)別

    UDP能否像TCP一樣實(shí)現(xiàn)可靠傳輸?

    連接的協(xié)議,基于字節(jié)流的傳輸方式。它通過(guò)確認(rèn)和重傳等機(jī)制來(lái)保證數(shù)據(jù)的完整性和順序性,實(shí)現(xiàn)數(shù)據(jù)包的可靠傳輸。UDPTCP的主要區(qū)別但在某些運(yùn)用場(chǎng)景下,使用TCP協(xié)議
    的頭像 發(fā)表于 06-08 14:50 ?970次閱讀
    <b class='flag-5'>UDP</b>能否像<b class='flag-5'>TCP</b>一樣實(shí)現(xiàn)可靠傳輸?

    udp是什么協(xié)議 TCPUDP的區(qū)別

    TCP協(xié)議提供可靠的數(shù)據(jù)傳輸,UDP協(xié)議提供盡量高效的數(shù)據(jù)傳輸。TCP協(xié)議通過(guò)使用序列號(hào)、確認(rèn)應(yīng)答等機(jī)制,保證數(shù)據(jù)傳輸?shù)目煽啃裕?b class='flag-5'>UDP協(xié)議不提供可靠性保證,它只是簡(jiǎn)單地把應(yīng)用程序傳給
    的頭像 發(fā)表于 06-26 17:47 ?1.2w次閱讀

    TCP/UDP簡(jiǎn)介、特點(diǎn)及優(yōu)劣勢(shì)

    TCPUDP是兩種常見(jiàn)的互聯(lián)網(wǎng)傳輸協(xié)議,它們都是在IP網(wǎng)絡(luò)上運(yùn)行的傳輸層協(xié)議。
    的頭像 發(fā)表于 10-16 10:16 ?2928次閱讀
    <b class='flag-5'>TCP</b>/<b class='flag-5'>UDP</b>簡(jiǎn)介、<b class='flag-5'>特點(diǎn)</b>及優(yōu)劣勢(shì)

    TCPUDP的區(qū)別

    1.TCPUDP的區(qū)別 TCP是面向連接的,UDP是面向無(wú)連接的; TCP只能一對(duì)一通信,UDP
    的頭像 發(fā)表于 11-09 09:35 ?6496次閱讀
    <b class='flag-5'>TCP</b>和<b class='flag-5'>UDP</b>的區(qū)別

    TCPUDP的基本區(qū)別

    順序,UDP不保證 UDP應(yīng)用場(chǎng)景: 面向數(shù)據(jù)報(bào)方式 網(wǎng)絡(luò)數(shù)據(jù)大多為短消息 擁有大量Client 對(duì)數(shù)據(jù)安全性無(wú)特殊要求 網(wǎng)絡(luò)負(fù)擔(dān)非常重,但對(duì)響應(yīng)速度要求高 TCP報(bào)頭
    的頭像 發(fā)表于 11-13 15:27 ?4701次閱讀
    <b class='flag-5'>TCP</b>與<b class='flag-5'>UDP</b>的基本區(qū)別

    UDP的特性與應(yīng)用場(chǎng)景

    一、UDP的特性與應(yīng)用場(chǎng)景 采用UDP有3個(gè)關(guān)鍵點(diǎn): 網(wǎng)絡(luò)帶寬需求較小,而實(shí)時(shí)性要求高 大部分應(yīng)用無(wú)需維持連接 需要低功耗 應(yīng)用場(chǎng)景: 網(wǎng)頁(yè)瀏覽:新浪微博就已經(jīng)用了QUIC協(xié)議 流媒體
    的頭像 發(fā)表于 11-13 15:34 ?981次閱讀
    <b class='flag-5'>UDP</b>的特性與應(yīng)<b class='flag-5'>用場(chǎng)景</b>

    如何選擇傳輸層協(xié)議?TCPUDP的優(yōu)缺點(diǎn)和適用場(chǎng)

    如何選擇傳輸層協(xié)議?TCPUDP的優(yōu)缺點(diǎn)和適用場(chǎng)合? 傳輸層協(xié)議是計(jì)算機(jī)網(wǎng)絡(luò)中的重要組成部分,它負(fù)責(zé)在主機(jī)之間傳輸數(shù)據(jù)。常見(jiàn)的傳輸層協(xié)議有TCP
    的頭像 發(fā)表于 12-11 11:42 ?1107次閱讀

    UDPTCP的主要區(qū)別 UDP能否像TCP一樣實(shí)現(xiàn)可靠傳輸?

    據(jù)包的傳輸不進(jìn)行確認(rèn)和重傳,而TCP是一種面向連接的協(xié)議,通過(guò)確認(rèn)和重傳來(lái)實(shí)現(xiàn)可靠的數(shù)據(jù)傳輸。 首先,UDP無(wú)連接的特點(diǎn)使得它在傳輸時(shí)的開銷較小。UDP的數(shù)據(jù)包不需要建立和維護(hù)連接,僅
    的頭像 發(fā)表于 01-22 16:10 ?869次閱讀

    tcpudp的區(qū)別和聯(lián)系

    一、引言 在現(xiàn)代網(wǎng)絡(luò)通信中,數(shù)據(jù)傳輸是至關(guān)重要的。為了確保數(shù)據(jù)的可靠傳輸,網(wǎng)絡(luò)協(xié)議發(fā)揮著關(guān)鍵作用。傳輸控制協(xié)議(TCP)和用戶數(shù)據(jù)報(bào)協(xié)議(UDP)是兩種常用的網(wǎng)絡(luò)協(xié)議,它們?cè)谠S多應(yīng)用場(chǎng)景中發(fā)
    的頭像 發(fā)表于 08-16 11:06 ?676次閱讀
    大发888游戏场下载| 伟易博娱乐城| 网上百家乐官网可靠| 宝马会线上娱乐| 百家乐官网庄闲的比例| 百家乐有方法赚反水| 大发888官网e世博备用网址| 广州百家乐赌博机| 丹东棋牌网| 百家乐官网积分| 百家乐人生信条漫谈| 大发888娱乐城备用网址| 百家乐官网网上投注作弊| 百家乐有真假宝单吗| 德州扑克中文版| 新利百家乐官网的玩法技巧和规则| 百家乐开过的路纸| bodog博狗| 百家乐官网有诈吗| YY百家乐的玩法技巧和规则| 高密市| 百家乐真人荷官| 大发888娱乐城 真钱| 百家乐官网网哪一家做的最好呀| 真人版百家乐试玩| 真人百家乐官网平台排行| 百家乐珠盘路| 百家乐官网波音平台路单| 明升百家乐QQ群| 定陶县| 美国百家乐怎么玩| 百家乐官网赢钱秘密| 网球比赛直播| 百家乐注码论坛| 顺平县| 百家乐赌博彩| 博狗百家乐官网开户| 电子百家乐规则| 多台百家乐官网的玩法技巧和规则| 伯爵百家乐娱乐场| 皇室百家乐官网娱乐城|