0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

TCP和UDP可以同时绑定相同的端口吗?

亿佰特物联网应用专家 2023-02-06 11:16 次阅读

TCP和UDP可以同时绑定相同的端口吗?TCP和UDP可以同时绑定相同的端口吗?解答这个问题之前,我们需要先来了解什么是TCP和UDP,什么又是网络端口。0754a7a0-a3f1-11ed-ad0d-dac502259ad0.pngTCP与UDP介绍
TCP和UDP是IP(Internet Protocol)的独立的两个协议,他们都工作在OSI模型中的网络层。其中TCP和UDP最大的区别就是面向连接和面向无连接。
TCP当需要传输的数据的可靠性非常重要的时候,我们一般使用TCP进行传输,因为TCP协议传输的数据是按照顺序依次传输。如果数据接收方未收到发送方传输的数据,TCP会在特定时间之后重新发包。这就是我们常说的丢包重传机制,还有就是拥塞控制、流量控制等,TCP的可靠性正是因为有这些特性。
UDPUDP(User Datagram Protocol)是一种面向无连接的服务,UDP的数据将不像是TCP那样保证按序传输,接收方无论收没收到数据都不会重传,因此UDP相对于TCP有更低的延迟。在时间优先级高于数据可靠性的应用中,UDP更为常用,例如平时使用的视频通话、网络游戏等。因为对于这些应用来说,时间比数据的一致性更为重要。0769b9b0-a3f1-11ed-ad0d-dac502259ad0.png什么是网络端口?端口有什么作用?
我们的电脑上有许多的通信程序,当我们的电脑收到数据包之后,数据包是如何精准的分配至不同的应用的呢?我们可以这样理解,在网络中的IP地址相当于我们现实生活中的小区名,端口号就像是具体的门牌号。07788ae4-a3f1-11ed-ad0d-dac502259ad0.png端口的作用是让应用层的各种应用进程都能将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层的进程。为了对端口进行区分,将每个端口进行了编号,这就是端口号。当我们将数据从一台设备发送到另一台设备时,它会转到特定的 TCP 或 UDP 端口,具体取决于我们用于通信的协议。
078cea5c-a3f1-11ed-ad0d-dac502259ad0.pngTCP和UDP的Socket可以绑定同一个端口吗?
TCP与UDP服务端网络都会调用bind绑定端口。

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

TCP网络编程


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

UDP 网络编程

TCP 和 UDP 端口彼此不相关。TCP 端口由 TCP 堆栈解释,而 UDP 堆栈解释 UDP 端口。端口是多路复用连接的一种方式,以便多个设备可以连接到一个节点。因此,从技术上讲,更高级别的协议可以使用相同或不同的 TCP 和 UDP 端口号。另一方面,一台计算机可以同时使用相同的 TCP 和 UDP 端口号与两个不同的服务进行通信。

07c6c0c4-a3f1-11ed-ad0d-dac502259ad0.png

如上图, TCP/UDP 各自的端口号是相互独立的, TCP 有一个 80 号端口,UDP 也可以拥有一个 80 号端口,两者并不冲突。所以,TCP 和 UDP 是可以同时绑定相同的端口的。TCP 和 UDP 传输协议,在内核中是由两个完全独立的软件模块实现的。当主机收到数据包后,可以在 IP 包头的“协议号”字段知道该数据包是 TCP还是UDP,所以可以根据这个信息确定送给哪个模块(TCP/UDP)处理,送给 TCP/UDP 模块的报文根据“端口号”确定送给哪个应用程序处理。因此, TCP/UDP 各自的端口号也相互独立,互不影响。

客户端的端口可以重复使用吗?只要客户端连接的不是相同的服务器,内核是允许端口重复使用的。TCP 连接由四元组(源IP地址,源端口,目的IP地址,目的端口)唯一确认的,四元组其中任何一个元素改变,就表示不同的 TCP 连接。假如客户使用端口1与服务器A建立了连接,客户端也可以使用端口1与服务器B建立连接,即使客户端的端口号相同,但因四元组信息发生变化,并不会导致连接冲突。多个 TCP 服务进程可以绑定同一个端口吗?若多个TCP服务进程同时绑定相同的IP地址和端口,那么执行bind() 时候就会报错“Address already in use”;若TCP服务进程只是绑定相同的端口,但绑定的IP地址不同,那么则不会报错。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1348

    浏览量

    78979
  • UDP
    UDP
    +关注

    关注

    0

    文章

    322

    浏览量

    33870
收藏 人收藏

    评论

    相关推荐

    TCP&UDP调试工具

    TCP&UDP调试工具
    发表于 10-30 10:41 1次下载

    深度解析TCPUDP协议

    计算机与网络设备要相互通信,它们必须遵循一种共同的方法或标准。对于不同硬件平台和操作系统之间的交互而言,这种共同遵循的规范尤为关键。我们将这一系列指导通信过程的规则称为“协议”。TCPUDP
    的头像 发表于 09-02 14:53 325次阅读
    深度解析<b class='flag-5'>TCP</b>与<b class='flag-5'>UDP</b>协议

    tcpudp的区别和联系

    一、引言 在现代网络通信中,数据传输是至关重要的。为了确保数据的可靠传输,网络协议发挥着关键作用。传输控制协议(TCP)和用户数据报协议(UDP)是两种常用的网络协议,它们在许多应用场景中发
    的头像 发表于 08-16 11:06 516次阅读

    使用sep_now的同时能不能使用TCPUDP连接?

    在使用sep_now的同时能不能使用TCPUDP连接
    发表于 07-22 06:10

    请问esp8266 rtos sdk能否同时启动tcp socke clent和udp server?

    我在用的是V1.5的rtos 的sdk,想在esp8266上同时启动tcp的socket client和udp的socket server。 但是我发现,只要我一启动upd server,t
    发表于 07-12 07:07

    如何同时在ESP8266上运行TCP客户端和TCP服务?

    客户端无法连接到 TCP 服务器。如果不将 TCP 客户端从 ESP 连接到云服务器,则 ESP 上的 TCP 服务器可以很好地接受 TCP
    发表于 07-08 08:26

    请问ESP32 S3既能TCP通信同时也能UDP通信吗?

    有一个应用需求,即想通过TCP这种保证到达的方式传输指令,又想通过UDP这种方式做图传,不知道ESP32 S3模组或者Espressif 有没有合适的模组同时支持TCP
    发表于 06-07 07:17

    TCP/IP栈使用bind函数绑定IP地址和端口失败的原因?

    TCP/IP 栈使用bind函数绑定IP地址和端口失败!softAP模式,TCPserver应用,客户端连接以后IP地址和DNS地址还是原来的192.168.4.X。
    发表于 06-06 06:10

    udp_bind这个绑定端口怎么解除?

    请教下,udp_bind 这个绑定端口,刚开始是可以的,但是重新绑定时返回错误,有什么方法可以
    发表于 04-22 07:41

    通信必备知识!TCPUDP协议介绍及使用

    TCPUDP是两个最常用的通讯协议。TCP是面向连接的协议,需要在收发数据前与对方建立可靠的连接,建立连接的过程为3次握手,断开连接的过程为4次挥手,确保数据传输的可靠性。UDP是一
    的头像 发表于 03-15 08:19 1725次阅读
    通信必备知识!<b class='flag-5'>TCP</b>与<b class='flag-5'>UDP</b>协议介绍及使用

    udp是什么意思 简述TCPUDP的区别和联系

    UDP (User Datagram Protocol) 是一种在计算机网络中使用的传输层协议。它与TCP (Transmission Control Protocol) 一样,都是在因特网协议套件
    的头像 发表于 02-02 16:33 1218次阅读

    TCPUDP协议有什么区别?如何通过网关实现TCP协议通信?

    四次握手就是指断开的过程。而UDP可以立即传输数据,并不需要建立三次握手连接。两者相比,TCP就像是挂了专家号,可以保证及时看病;而UDP
    的头像 发表于 01-24 11:07 565次阅读
    <b class='flag-5'>TCP</b>和<b class='flag-5'>UDP</b>协议有什么区别?如何通过网关实现<b class='flag-5'>TCP</b>协议通信?

    UDPTCP的主要区别 UDP能否像TCP一样实现可靠传输?

    据包的传输不进行确认和重传,而TCP是一种面向连接的协议,通过确认和重传来实现可靠的数据传输。 首先,UDP无连接的特点使得它在传输时的开销较小。UDP的数据包不需要建立和维护连接,仅包括源
    的头像 发表于 01-22 16:10 751次阅读

    如何选择传输层协议?TCPUDP的优缺点和适用场合

    如何选择传输层协议?TCPUDP的优缺点和适用场合  传输层协议是计算机网络中的重要组成部分,它负责在主机之间传输数据。常见的传输层协议有TCPUDP。选择合适的传输层协议对于网络
    的头像 发表于 12-11 11:42 948次阅读

    UDP分片和丢包与TCP效果对比

    UDP(用户数据报协议)和TCP(传输控制协议)在很多方面都有显著的区别。总体来说,TCP更适合需要可靠传输的应用,例如网页浏览、电子邮件等,而UDP则更适合对速度有高要求,但对数据完
    的头像 发表于 11-23 13:55 602次阅读