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

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

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

TCP和UDP可以同時綁定相同的端口嗎?

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

TCP和UDP可以同時綁定相同的端口嗎?

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

01 TCP與UDP介紹

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

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

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

UDP

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

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

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

pYYBAGPgnviAKsD_AABE-UJ3u9I399.png

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

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

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

poYBAGPgnviAe9iuAABInTLT4XM887.jpg

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

poYBAGPgnviAPI8_AABVln0xhcI969.jpg

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

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

poYBAGPgnviAC-KfAAMIf7oIqYw349.png

如上圖, TCP/UDP 各自的端口號是相互獨立的, TCP 有一個 80 號端口,UDP 也可以擁有一個 80 號端口,兩者并不沖突。

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

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

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

因此, TCP/UDP 各自的端口號也相互獨立,互不影響。

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

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

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

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

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

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 網(wǎng)絡(luò)
    +關(guān)注

    關(guān)注

    14

    文章

    7441

    瀏覽量

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

    關(guān)注

    8

    文章

    1335

    瀏覽量

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

    關(guān)注

    0

    文章

    318

    瀏覽量

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

    關(guān)注

    4

    文章

    934

    瀏覽量

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

    關(guān)注

    0

    文章

    66

    瀏覽量

    6958

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

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

收藏 人收藏

    評論

    相關(guān)推薦

    udp_bind這個綁定端口怎么解除?

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

    請問STM32可以同時使用LWIP的TCPUDP協(xié)議嗎?

    直接直入主題吧,請問各位大神使用STM32F107作為主機設(shè)備然后接入一個以太網(wǎng),協(xié)議用的是LWIP,能否同時支持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次下載

    TCPUDP的區(qū)別分析

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

    udp端口怎么測試

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

    如何安裝 unhide 并搜索隱藏的進程和 TCP/UDP 端口

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

    tcpudp協(xié)議的異同

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

    UDPTCP的區(qū)別

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

    TCPUDP可以同時綁定相同端口嗎?

    TCPUDP可以同時綁定相同端口嗎?TCP
    的頭像 發(fā)表于 02-06 11:16 ?1699次閱讀
    <b class='flag-5'>TCP</b>和<b class='flag-5'>UDP</b><b class='flag-5'>可以</b><b class='flag-5'>同時</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é)議通過使用序列號、確認(rèn)應(yīng)答等機制,保證數(shù)據(jù)傳輸?shù)目煽啃裕?b class='flag-5'>UDP協(xié)議不提供可靠性保證,它只是簡單地把應(yīng)用程序傳給
    的頭像 發(fā)表于 06-26 17:47 ?1.1w次閱讀

    TCPUDP的區(qū)別

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

    TCPUDP的基本區(qū)別

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

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

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

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

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