RM新时代网站-首页

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

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

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

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

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

TCP和UDP可以同時綁定相同的端口嗎?TCP和UDP可以同時綁定相同的端口嗎?解答這個問題之前,我們需要先來了解什么是TCP和UDP,什么又是網(wǎng)絡(luò)端口。0754a7a0-a3f1-11ed-ad0d-dac502259ad0.pngTCP與UDP介紹
TCP和UDP是IP(Internet Protocol)的獨立的兩個協(xié)議,他們都工作在OSI模型中的網(wǎng)絡(luò)層。其中TCP和UDP最大的區(qū)別就是面向連接和面向無連接。
TCP當(dāng)需要傳輸?shù)臄?shù)據(jù)的可靠性非常重要的時候,我們一般使用TCP進行傳輸,因為TCP協(xié)議傳輸?shù)臄?shù)據(jù)是按照順序依次傳輸。如果數(shù)據(jù)接收方未收到發(fā)送方傳輸?shù)臄?shù)據(jù),TCP會在特定時間之后重新發(fā)包。這就是我們常說的丟包重傳機制,還有就是擁塞控制、流量控制等,TCP的可靠性正是因為有這些特性。
UDPUDP(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ù)的一致性更為重要。0769b9b0-a3f1-11ed-ad0d-dac502259ad0.png什么是網(wǎng)絡(luò)端口?端口有什么作用?
我們的電腦上有許多的通信程序,當(dāng)我們的電腦收到數(shù)據(jù)包之后,數(shù)據(jù)包是如何精準(zhǔn)的分配至不同的應(yīng)用的呢?我們可以這樣理解,在網(wǎng)絡(luò)中的IP地址相當(dāng)于我們現(xiàn)實生活中的小區(qū)名,端口號就像是具體的門牌號。07788ae4-a3f1-11ed-ad0d-dac502259ad0.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é)議。
078cea5c-a3f1-11ed-ad0d-dac502259ad0.pngTCP和UDP的Socket可以綁定同一個端口嗎?
TCP與UDP服務(wù)端網(wǎng)絡(luò)都會調(diào)用bind綁定端口。

079e8852-a3f1-11ed-ad0d-dac502259ad0.jpg

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


07b6dc72-a3f1-11ed-ad0d-dac502259ad0.jpg

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

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

07c6c0c4-a3f1-11ed-ad0d-dac502259ad0.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)系本站處理。 舉報投訴
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1353

    瀏覽量

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

    關(guān)注

    0

    文章

    325

    瀏覽量

    33931
收藏 人收藏

    評論

    相關(guān)推薦

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

    TCP&UDP調(diào)試工具
    發(fā)表于 10-30 10:41 ?1次下載

    深度解析TCPUDP協(xié)議

    計算機與網(wǎng)絡(luò)設(shè)備要相互通信,它們必須遵循一種共同的方法或標(biāo)準(zhǔn)。對于不同硬件平臺和操作系統(tǒng)之間的交互而言,這種共同遵循的規(guī)范尤為關(guān)鍵。我們將這一系列指導(dǎo)通信過程的規(guī)則稱為“協(xié)議”。TCPUDP
    的頭像 發(fā)表于 09-02 14:53 ?385次閱讀
    深度解析<b class='flag-5'>TCP</b>與<b class='flag-5'>UDP</b>協(xié)議

    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ù)報協(xié)議(UDP)是兩種常用的網(wǎng)絡(luò)協(xié)議,它們在許多應(yīng)用場景中發(fā)
    的頭像 發(fā)表于 08-16 11:06 ?586次閱讀

    使用sep_now的同時能不能使用TCP、UDP連接?

    在使用sep_now的同時能不能使用TCP、UDP連接
    發(fā)表于 07-22 06:10

    請問esp8266 rtos sdk能否同時啟動tcp socke clent和udp server?

    我在用的是V1.5的rtos 的sdk,想在esp8266上同時啟動tcp的socket client和udp的socket server。 但是我發(fā)現(xiàn),只要我一啟動upd server,t
    發(fā)表于 07-12 07:07

    如何同時在ESP8266上運行TCP客戶端和TCP服務(wù)?

    客戶端無法連接到 TCP 服務(wù)器。如果不將 TCP 客戶端從 ESP 連接到云服務(wù)器,則 ESP 上的 TCP 服務(wù)器可以很好地接受 TCP
    發(fā)表于 07-08 08:26

    請問ESP32 S3既能TCP通信同時也能UDP通信嗎?

    有一個應(yīng)用需求,即想通過TCP這種保證到達(dá)的方式傳輸指令,又想通過UDP這種方式做圖傳,不知道ESP32 S3模組或者Espressif 有沒有合適的模組同時支持TCP
    發(fā)表于 06-07 07:17

    TCP/IP棧使用bind函數(shù)綁定IP地址和端口失敗的原因?

    TCP/IP 棧使用bind函數(shù)綁定IP地址和端口失敗!softAP模式,TCPserver應(yīng)用,客戶端連接以后IP地址和DNS地址還是原來的192.168.4.X。
    發(fā)表于 06-06 06:10

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

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

    鴻蒙原生應(yīng)用開發(fā)-網(wǎng)絡(luò)管理Socket連接(二)

    。 4.(可選)訂閱TCPSocket相關(guān)的訂閱事件。 5.綁定IP地址和端口,端口可以指定或由系統(tǒng)隨機分配。 6.連接到指定的IP地址和端口
    發(fā)表于 04-02 15:22

    通信必備知識!TCPUDP協(xié)議介紹及使用

    TCPUDP是兩個最常用的通訊協(xié)議。TCP是面向連接的協(xié)議,需要在收發(fā)數(shù)據(jù)前與對方建立可靠的連接,建立連接的過程為3次握手,斷開連接的過程為4次揮手,確保數(shù)據(jù)傳輸?shù)目煽啃浴?b class='flag-5'>UDP是一
    的頭像 發(fā)表于 03-15 08:19 ?1864次閱讀
    通信必備知識!<b class='flag-5'>TCP</b>與<b class='flag-5'>UDP</b>協(xié)議介紹及使用

    能不能說一說TCPUDP的區(qū)別?

    能不能說一說TCPUDP的區(qū)別? TCP(傳輸控制協(xié)議)和UDP(用戶數(shù)據(jù)報協(xié)議)是互聯(lián)網(wǎng)傳輸層協(xié)議的兩種常見形式。它們在數(shù)據(jù)傳輸、連接管理和可靠性等方面存在一些顯著差異。本文將詳細(xì)
    的頭像 發(fā)表于 02-04 11:03 ?531次閱讀

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

    TCPUDP協(xié)議有什么區(qū)別?如何通過網(wǎng)關(guān)實現(xiàn)TCP協(xié)議通信?

    四次握手就是指斷開的過程。而UDP可以立即傳輸數(shù)據(jù),并不需要建立三次握手連接。兩者相比,TCP就像是掛了專家號,可以保證及時看??;而UDP
    的頭像 發(fā)表于 01-24 11:07 ?603次閱讀
    <b class='flag-5'>TCP</b>和<b class='flag-5'>UDP</b>協(xié)議有什么區(qū)別?如何通過網(wǎng)關(guān)實現(xiàn)<b class='flag-5'>TCP</b>協(xié)議通信?

    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 ?811次閱讀
    RM新时代网站-首页