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

    文章

    1432

    浏览量

    83757
  • UDP
    UDP
    +关注

    关注

    0

    文章

    335

    浏览量

    35518
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    端口连接异常排查全流程思路

    TCP/IP 网络通信的本质是进程间通信。两台机器之间的数据传输,最终落到"某个 IP 地址的某个端口"这个粒度。端口号是传输层的概念,范围 0-65535,其中 0-1023
    的头像 发表于 03-27 16:00 416次阅读

    工业级4G路由器:TCP/IP与UDP协议,解锁工业物联网高效传输新范式

    /以太网能力,正重新定义工业数据传输的边界。其核心优势,在于对TCP/IP与UDP协议的深度适配,为不同场景提供精准的通信解决方案。    ‌TCP/IP协议:可靠传输的工业基石‌ TCP
    的头像 发表于 01-19 18:25 294次阅读
    工业级4G路由器:<b class='flag-5'>TCP</b>/IP与<b class='flag-5'>UDP</b>协议,解锁工业物联网高效传输新范式

    TCPUDP的区别

    首先概括一下基本的区别: TCP是一个面向连接的、可靠的、基于字节流的传输层协议。 而UDP是一个面向无连接的传输层协议。(就这么简单,其它TCP的特性也就没有了)。 具体来分析,和 U
    发表于 12-09 07:24

    TCP/UDP 三模式!远程监控以太网温湿度传感器,响应快至 1ms

    :支持 TCP Server/Client、UDP 三种工作模式,可灵活对接不同网络架构 ——TCP Server 模式适合中心服
    的头像 发表于 12-04 15:04 981次阅读
    <b class='flag-5'>TCP</b>/<b class='flag-5'>UDP</b> 三模式!远程监控以太网温湿度传感器,响应快至 1ms

    请问TCPUDP 可以使用同一个端口吗?

    TCPUDP 可以使用同一个端口吗?
    发表于 12-03 08:01

    以太网通讯在FPGA上的实现

    的安全。UDP数据格式如下图所示: TCP协议是面向连接的、可靠的流协议,提供可靠的通信传输。TCP数据包包括源、目标端口号字段、顺序号字段、确认号字段、头部长度字段、标志位
    发表于 10-30 07:45

    esp8266 udp server 端口监听错误的原因?

    1、使用esp8266 at组件+sal socket实现使用udpserver_sample.c demo代码 udp server,通信失败 2、跟踪代码发现 packegs 里面
    发表于 09-23 07:03

    NuMicro®系列微控制器中具有相同模块的ADC的每个通道是否可以同时采样?

    NuMicro®系列微控制器中具有相同模块的ADC的每个通道是否可以同时采样?
    发表于 08-26 08:08

    时序约束管脚绑定不成功问题

    {[新手提问]: 关于引脚绑定问题}在绑定vivado引脚中时,选项中没有原理图可绑定的引脚,需要绑定的引脚在l/O Bank88,但是我需要绑定
    发表于 08-21 17:18

    TC3XX 的端口可以同时被 EvADC 和 DSADC 用于 ADC 转换吗?

    1、TC3XX 的端口可以同时被 EvADC 和 DSADC 用于 ADC 转换吗? 例如,TC36X系列的AN1引脚 2、同时重新分配同一个引脚,是否会影响EVAADC和DSADC
    发表于 08-07 08:19

    第二十五章 W55MH32 TCP_Server_Multi_Socket示例

    本文讲解了如何在 W55MH32 芯片上使用 8 个 socket 实现 TCP 服务器模式,让多个客户端连接进行数据回环测试,通过实战例程展示了从初始化 socket 到监听端口、处理客户端连接
    的头像 发表于 07-24 16:10 1311次阅读
    第二十五章 W55MH32 <b class='flag-5'>TCP</b>_Server_Multi_Socket示例

    第二十四章 W55MH32TCP_Client_Multi_Socket示例

    本文讲解了如何在 W55MH32 芯片上使用 8 个 socket 实现 TCP 客户端模式,同时连接 1 个服务器进行数据回环测试,通过实战例程展示了从初始化 socket 到建立连接、数据交互
    的头像 发表于 07-24 16:08 1163次阅读
    第二十四章 W55MH32<b class='flag-5'>TCP</b>_Client_Multi_Socket示例

    【嘉楠堪智K230开发板试用体验】网络收发信息

    /IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议(通常是TCPUDP),本地主机的IP地址,本地进程的协议端口,远地主机的IP地址
    发表于 07-13 08:13

    FA模型绑定Stage模型ServiceExtensionAbility介绍

    FA模型绑定Stage模型ServiceExtensionAbility 本文介绍FA模型的三种应用组件如何绑定Stage模型的ServiceExtensionAbility组件
    发表于 06-04 07:55

    在KaihongOS应用开发中,如何利用Socket进行数据传输

    。 创建一个 TCPSocket 连接,返回一个 TCPSocket 对象。 (可选)订阅 TCPSocket 相关的订阅事件。 绑定 IP 地址和端口端口可以指定或由系统随机分配。
    发表于 05-08 07:25