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

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

3天内不再提示

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

kae1_cdebyte 来源:亿佰特物联网应用专家 2023-02-06 14:31 次阅读

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

TCP和UDP可以同时绑定相同的端口吗? 解答这个问题之前,我们需要先来了解什么是TCP和UDP,什么又是网络端口。

01 TCP与UDP介绍

TCP和UDP是IP(Internet Protocol)的独立的两个协议,他们都工作在OSI模型中的网络层。 其中TCP和UDP最大的区别就是面向连接和面向无连接。

技术合作计划(TCP

当需要传输的数据的可靠性非常重要的时候,我们一般使用TCP进行传输,因为TCP协议传输的数据是按照顺序依次传输。 如果数据接收方未收到发送方传输的数据,TCP会在特定时间之后重新发包。 这就是我们常说的丢包重传机制,还有就是拥塞控制、流量控制等,TCP的可靠性正是因为有这些特性。

UDP

UDP(User Datagram Protocol)是一种面向无连接的服务,UDP的数据将不像是TCP那样保证按序传输,接收方无论收没收到数据都不会重传,因此UDP相对于TCP有更低的延迟。 在时间优先级高于数据可靠性的应用中,UDP更为常用,例如平时使用的视频通话、网络游戏等。 因为对于这些应用来说,时间比数据的一致性更为重要。

02 什么是网络端口? 端口有什么作用?

我们的电脑上有许多的通信程序,当我们的电脑收到数据包之后,数据包是如何精准的分配至不同的应用的呢? 我们可以这样理解,在网络中的IP地址相当于我们现实生活中的小区名,端口号就像是具体的门牌号。

pYYBAGPgnviAKsD_AABE-UJ3u9I399.png

端口的作用是让应用层的各种应用进程都能将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层的进程。 为了对端口进行区分,将每个端口进行了编号,这就是端口号。 当我们将数据从一台设备发送到另一台设备时,它会转到特定的 TCP 或 UDP 端口,具体取决于我们用于通信的协议。

03 TCP和UDP的Socket可以绑定同一个端口吗?

TCP与UDP服务端网络都会调用bind绑定端口。

poYBAGPgnviAe9iuAABInTLT4XM887.jpg

TCP网络编程

poYBAGPgnviAPI8_AABVln0xhcI969.jpg

UDP 网络编程

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

poYBAGPgnviAC-KfAAMIf7oIqYw349.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地址不同,那么则不会报错。

审核编辑:汤梓红

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

    关注

    14

    文章

    7553

    浏览量

    88724
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1353

    浏览量

    79054
  • UDP
    UDP
    +关注

    关注

    0

    文章

    325

    浏览量

    33931
  • 端口
    +关注

    关注

    4

    文章

    963

    浏览量

    32049
  • 服务端
    +关注

    关注

    0

    文章

    66

    浏览量

    7004

原文标题:TCP和UDP可以同时绑定相同的端口吗?

文章出处:【微信号:cdebyte,微信公众号:亿佰特物联网应用专家】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

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

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

    请问STM32可以同时使用LWIP的TCPUDP协议吗?

    直接直入主题吧,请问各位大神使用STM32F107作为主机设备然后接入一个以太网,协议用的是LWIP,能否同时支持UDPTCP的网络传输协议?就是使用TCP作服务端,
    发表于 10-12 10:22

    TCP/UDP调试工具

    TCP-UDP调试工具,可以设置服务器模式和客服端模式。
    发表于 09-28 13:02 39次下载
    <b class='flag-5'>TCP</b>/<b class='flag-5'>UDP</b>调试工具

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

    网络---11-端口安全-端口绑定操作
    发表于 02-14 17:19 6次下载

    TCPUDP的区别分析

      传输层协议主要有TCPUDPUDP提供无连接的通信,不能保证数据包被发送到目标地址,典型的即时传输少量数据的应用程序通常使用UDPTCP
    发表于 09-18 10:29 2次下载

    udp端口怎么测试

    怎样测试远程UDP端口,我们一般情况下,应用服务都使用的TCP端口,但是某些情况下,我们也需要开启UDP
    发表于 12-08 08:48 12.5w次阅读
    <b class='flag-5'>udp</b><b class='flag-5'>端口</b>怎么测试

    如何安装 unhide 并搜索隐藏的进程和 TCP/UDP 端口

    unhide 是一个小巧的网络取证工具,能够发现那些借助 rootkit、LKM 及其它技术隐藏的进程和 TCP/UDP 端口。这个工具在 Linux、UNIX 类、MS-Windows 等操作系统下都
    的头像 发表于 01-31 09:57 2.7w次阅读

    tcpudp协议的异同

    UDP 协议 UDP 协议是无连接、不可靠的一个传输层协议。下图是 UDP 数据报格式。 端口号用来区分发送进程和接收进程。UDP 总长度表
    的头像 发表于 11-12 14:45 4064次阅读
    <b class='flag-5'>tcp</b>和<b class='flag-5'>udp</b>协议的异同

    UDPTCP的区别

    与联系呢? 相同点那就是说:`UDP` 和 `TCP` 是 `TCP/IP` 体系结构运输层中的两个重要协议,下图是`TCP/IP`的
    的头像 发表于 01-20 17:05 1734次阅读
    <b class='flag-5'>UDP</b>和<b class='flag-5'>TCP</b>的区别

    TCPUDP可以同时绑定相同端口吗?

    TCPUDP可以同时绑定相同端口吗?TCP
    的头像 发表于 02-06 11:16 1836次阅读
    <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是什么协议 TCPUDP的区别

    TCP协议提供可靠的数据传输,UDP协议提供尽量高效的数据传输。TCP协议通过使用序列号、确认应答等机制,保证数据传输的可靠性,而UDP协议不提供可靠性保证,它只是简单地把应用程序传给
    的头像 发表于 06-26 17:47 1.1w次阅读

    TCPUDP的区别

    1.TCPUDP的区别 TCP是面向连接的,UDP是面向无连接的; TCP只能一对一通信,UDP
    的头像 发表于 11-09 09:35 5925次阅读
    <b class='flag-5'>TCP</b>和<b class='flag-5'>UDP</b>的区别

    TCPUDP的基本区别

    TCPUDP基本区别 基于连接与无连接 TCP要求系统资源较多,UDP较少; UDP程序结构较简单 流模式(
    的头像 发表于 11-13 15:27 4608次阅读
    <b class='flag-5'>TCP</b>与<b class='flag-5'>UDP</b>的基本区别

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

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

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

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