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

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

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

TCP和UDP可以同時(shí)綁定相同的端口嗎?

kae1_cdebyte ? 來(lái)源:億佰特物聯(lián)網(wǎng)應(yīng)用專(zhuān)家 ? 2023-02-06 14:31 ? 次閱讀

TCP和UDP可以同時(shí)綁定相同的端口嗎?

TCP和UDP可以同時(shí)綁定相同的端口嗎? 解答這個(gè)問(wèn)題之前,我們需要先來(lái)了解什么是TCP和UDP,什么又是網(wǎng)絡(luò)端口。

01 TCP與UDP介紹

TCP和UDP是IP(Internet Protocol)的獨(dú)立的兩個(gè)協(xié)議,他們都工作在OSI模型中的網(wǎng)絡(luò)層。 其中TCP和UDP最大的區(qū)別就是面向連接和面向無(wú)連接。

技術(shù)合作計(jì)劃(TCP

當(dāng)需要傳輸?shù)臄?shù)據(jù)的可靠性非常重要的時(shí)候,我們一般使用TCP進(jìn)行傳輸,因?yàn)門(mén)CP協(xié)議傳輸?shù)臄?shù)據(jù)是按照順序依次傳輸。 如果數(shù)據(jù)接收方未收到發(fā)送方傳輸?shù)臄?shù)據(jù),TCP會(huì)在特定時(shí)間之后重新發(fā)包。 這就是我們常說(shuō)的丟包重傳機(jī)制,還有就是擁塞控制、流量控制等,TCP的可靠性正是因?yàn)橛羞@些特性。

UDP

UDP(User Datagram Protocol)是一種面向無(wú)連接的服務(wù),UDP的數(shù)據(jù)將不像是TCP那樣保證按序傳輸,接收方無(wú)論收沒(méi)收到數(shù)據(jù)都不會(huì)重傳,因此UDP相對(duì)于TCP有更低的延遲。 在時(shí)間優(yōu)先級(jí)高于數(shù)據(jù)可靠性的應(yīng)用中,UDP更為常用,例如平時(shí)使用的視頻通話、網(wǎng)絡(luò)游戲等。 因?yàn)閷?duì)于這些應(yīng)用來(lái)說(shuō),時(shí)間比數(shù)據(jù)的一致性更為重要。

02 什么是網(wǎng)絡(luò)端口? 端口有什么作用?

我們的電腦上有許多的通信程序,當(dāng)我們的電腦收到數(shù)據(jù)包之后,數(shù)據(jù)包是如何精準(zhǔn)的分配至不同的應(yīng)用的呢? 我們可以這樣理解,在網(wǎng)絡(luò)中的IP地址相當(dāng)于我們現(xiàn)實(shí)生活中的小區(qū)名,端口號(hào)就像是具體的門(mén)牌號(hào)。

pYYBAGPgnviAKsD_AABE-UJ3u9I399.png

端口的作用是讓?xiě)?yīng)用層的各種應(yīng)用進(jìn)程都能將其數(shù)據(jù)通過(guò)端口向下交付給傳輸層,以及讓傳輸層知道應(yīng)當(dāng)將其報(bào)文段中的數(shù)據(jù)向上通過(guò)端口交付給應(yīng)用層的進(jìn)程。 為了對(duì)端口進(jìn)行區(qū)分,將每個(gè)端口進(jìn)行了編號(hào),這就是端口號(hào)。 當(dāng)我們將數(shù)據(jù)從一臺(tái)設(shè)備發(fā)送到另一臺(tái)設(shè)備時(shí),它會(huì)轉(zhuǎn)到特定的 TCP 或 UDP 端口,具體取決于我們用于通信的協(xié)議。

03 TCP和UDP的Socket可以綁定同一個(gè)端口嗎?

TCP與UDP服務(wù)端網(wǎng)絡(luò)都會(huì)調(diào)用bind綁定端口。

poYBAGPgnviAe9iuAABInTLT4XM887.jpg

TCP網(wǎng)絡(luò)編程

poYBAGPgnviAPI8_AABVln0xhcI969.jpg

UDP 網(wǎng)絡(luò)編程

TCP 和 UDP 端口彼此不相關(guān)。 TCP 端口由 TCP 堆棧解釋?zhuān)?UDP 堆棧解釋 UDP 端口。 端口是多路復(fù)用連接的一種方式,以便多個(gè)設(shè)備可以連接到一個(gè)節(jié)點(diǎn)。 因此,從技術(shù)上講,更高級(jí)別的協(xié)議可以使用相同或不同的 TCP 和 UDP 端口號(hào)。 另一方面,一臺(tái)計(jì)算機(jī)可以同時(shí)使用相同的 TCP 和 UDP 端口號(hào)與兩個(gè)不同的服務(wù)進(jìn)行通信。

poYBAGPgnviAC-KfAAMIf7oIqYw349.png

如上圖, TCP/UDP 各自的端口號(hào)是相互獨(dú)立的, TCP 有一個(gè) 80 號(hào)端口,UDP 也可以擁有一個(gè) 80 號(hào)端口,兩者并不沖突。

所以,TCP 和 UDP 是可以同時(shí)綁定相同的端口的。

TCP 和 UDP 傳輸協(xié)議,在內(nèi)核中是由兩個(gè)完全獨(dú)立的軟件模塊實(shí)現(xiàn)的。

當(dāng)主機(jī)收到數(shù)據(jù)包后,可以在 IP 包頭的“協(xié)議號(hào)”字段知道該數(shù)據(jù)包是 TCP還是UDP,所以可以根據(jù)這個(gè)信息確定送給哪個(gè)模塊(TCP/UDP)處理,送給 TCP/UDP 模塊的報(bào)文根據(jù)“端口號(hào)”確定送給哪個(gè)應(yīng)用程序處理。

因此, TCP/UDP 各自的端口號(hào)也相互獨(dú)立,互不影響。

客戶(hù)端的端口可以重復(fù)使用嗎?

只要客戶(hù)端連接的不是相同的服務(wù)器,內(nèi)核是允許端口重復(fù)使用的。 TCP 連接由四元組(源IP地址,源端口,目的IP地址,目的端口)唯一確認(rèn)的,四元組其中任何一個(gè)元素改變,就表示不同的 TCP 連接。

假如客戶(hù)使用端口1與服務(wù)器A建立了連接,客戶(hù)端也可以使用端口1與服務(wù)器B建立連接,即使客戶(hù)端的端口號(hào)相同,但因四元組信息發(fā)生變化,并不會(huì)導(dǎo)致連接沖突。

多個(gè) TCP 服務(wù)進(jìn)程可以綁定同一個(gè)端口嗎?

若多個(gè)TCP服務(wù)進(jìn)程同時(shí)綁定相同的IP地址和端口,那么執(zhí)行bind() 時(shí)候就會(huì)報(bào)錯(cuò)“Address already in use”; 若TCP服務(wù)進(jìn)程只是綁定相同的端口,但綁定的IP地址不同,那么則不會(huì)報(bào)錯(cuò)。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • 網(wǎng)絡(luò)
    +關(guān)注

    關(guān)注

    14

    文章

    7783

    瀏覽量

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

    關(guān)注

    8

    文章

    1399

    瀏覽量

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

    關(guān)注

    0

    文章

    330

    瀏覽量

    34544
  • 端口
    +關(guān)注

    關(guān)注

    4

    文章

    1046

    瀏覽量

    32777
  • 服務(wù)端
    +關(guān)注

    關(guān)注

    0

    文章

    68

    瀏覽量

    7202

原文標(biāo)題:TCP和UDP可以同時(shí)綁定相同的端口嗎?

文章出處:【微信號(hào):cdebyte,微信公眾號(hào):億佰特物聯(lián)網(wǎng)應(yīng)用專(zhuān)家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 0人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    udp_bind這個(gè)綁定端口怎么解除?

    請(qǐng)教下,udp_bind 這個(gè)綁定端口,剛開(kāi)始是可以的,但是重新綁定時(shí)返回錯(cuò)誤,有什么方法可以
    發(fā)表于 04-22 07:41

    請(qǐng)問(wèn)STM32可以同時(shí)使用LWIP的TCPUDP協(xié)議嗎?

    直接直入主題吧,請(qǐng)問(wèn)各位大神使用STM32F107作為主機(jī)設(shè)備然后接入一個(gè)以太網(wǎng),協(xié)議用的是LWIP,能否同時(shí)支持UDPTCP的網(wǎng)絡(luò)傳輸協(xié)議?就是使用TCP作服務(wù)端,
    發(fā)表于 10-12 10:22

    TCP/UDP調(diào)試工具

    TCP-UDP調(diào)試工具,可以設(shè)置服務(wù)器模式和客服端模式。
    發(fā)表于 09-28 13:02 ?39次下載
    <b class='flag-5'>TCP</b>/<b class='flag-5'>UDP</b>調(diào)試工具

    11-端口安全-端口綁定操作

    網(wǎng)絡(luò)---11-端口安全-端口綁定操作
    發(fā)表于 02-14 17:19 ?6次下載

    udp端口怎么測(cè)試

    怎樣測(cè)試遠(yuǎn)程UDP端口,我們一般情況下,應(yīng)用服務(wù)都使用的TCP端口,但是某些情況下,我們也需要開(kāi)啟UDP
    發(fā)表于 12-08 08:48 ?12.6w次閱讀
    <b class='flag-5'>udp</b><b class='flag-5'>端口</b>怎么測(cè)試

    如何安裝 unhide 并搜索隱藏的進(jìn)程和 TCP/UDP 端口

    unhide 是一個(gè)小巧的網(wǎng)絡(luò)取證工具,能夠發(fā)現(xiàn)那些借助 rootkit、LKM 及其它技術(shù)隱藏的進(jìn)程和 TCP/UDP 端口。這個(gè)工具在 Linux、UNIX 類(lèi)、MS-Windows 等操作系統(tǒng)下都
    的頭像 發(fā)表于 01-31 09:57 ?2.8w次閱讀

    tcpudp協(xié)議的異同

    UDP 協(xié)議 UDP 協(xié)議是無(wú)連接、不可靠的一個(gè)傳輸層協(xié)議。下圖是 UDP 數(shù)據(jù)報(bào)格式。 端口號(hào)用來(lái)區(qū)分發(fā)送進(jìn)程和接收進(jìn)程。UDP 總長(zhǎng)度表
    的頭像 發(fā)表于 11-12 14:45 ?4403次閱讀
    <b class='flag-5'>tcp</b>和<b class='flag-5'>udp</b>協(xié)議的異同

    UDPTCP的區(qū)別

    與聯(lián)系呢? 相同點(diǎn)那就是說(shuō):`UDP` 和 `TCP` 是 `TCP/IP` 體系結(jié)構(gòu)運(yùn)輸層中的兩個(gè)重要協(xié)議,下圖是`TCP/IP`的
    的頭像 發(fā)表于 01-20 17:05 ?2044次閱讀
    <b class='flag-5'>UDP</b>和<b class='flag-5'>TCP</b>的區(qū)別

    TCPUDP可以同時(shí)綁定相同端口嗎?

    TCPUDP可以同時(shí)綁定相同端口嗎?TCP
    的頭像 發(fā)表于 02-06 11:16 ?2164次閱讀
    <b class='flag-5'>TCP</b>和<b class='flag-5'>UDP</b><b class='flag-5'>可以</b><b class='flag-5'>同時(shí)</b><b class='flag-5'>綁定相同</b>的<b class='flag-5'>端口</b>嗎?

    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次閱讀

    TCPUDP的區(qū)別

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

    TCPUDP的基本區(qū)別

    TCPUDP基本區(qū)別 基于連接與無(wú)連接 TCP要求系統(tǒng)資源較多,UDP較少; UDP程序結(jié)構(gòu)較簡(jiǎn)單 流模式(
    的頭像 發(fā)表于 11-13 15:27 ?5116次閱讀
    <b class='flag-5'>TCP</b>與<b class='flag-5'>UDP</b>的基本區(qū)別

    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í)的開(kāi)銷(xiāo)較小。UDP的數(shù)據(jù)包不需要建立和維護(hù)連接,僅包括源
    的頭像 發(fā)表于 01-22 16:10 ?1133次閱讀

    udp是什么意思 簡(jiǎn)述TCPUDP的區(qū)別和聯(lián)系

    UDP (User Datagram Protocol) 是一種在計(jì)算機(jī)網(wǎng)絡(luò)中使用的傳輸層協(xié)議。它與TCP (Transmission Control Protocol) 一樣,都是在因特網(wǎng)協(xié)議套件
    的頭像 發(fā)表于 02-02 16:33 ?1805次閱讀

    Web端TCP/UDP測(cè)試工具!小白必學(xué)~

    測(cè)試工具作為TCP server進(jìn)行測(cè)試。 ▼ ??TCP測(cè)試示例 ? ▼ 01. 打開(kāi)TCP/UDP web測(cè)試工具,點(diǎn)擊【打開(kāi)TCP】按
    的頭像 發(fā)表于 01-08 18:17 ?1166次閱讀
    Web端<b class='flag-5'>TCP</b>/<b class='flag-5'>UDP</b>測(cè)試工具!小白必學(xué)~

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品