TCP和UDP是否可以绑定同一端口进行通信

关于开发中对端口(port)的几点理解 目标主机的 IP 地址是指要进行网络通信的计算机在互联网上唯一的标识号码,用于唯一确定这台计算机在互联网上的位置。在进行网络通信时,发送方需要知道目标主机的 IP 地址,才能向正确的目标主机发送数据,而接收方也需要自己的 IP 地址来接收并处理数据包。过一会重开电脑,访问了新浪,可能还是用1024端口,我不关浏览器,还要再开一个浏览窗口访问百度知道时,系统就不可能为这个浏览进程分配1024端口了,因为被占用了,分配的可能是1025或者5021端口了。命令的输出结果,它用于测试网络连接是否正常。 阅读详情

TCP、UDP可以绑定同一端口来进行通信:

 

      网络中可以被命名和寻址的通信端口,是操作系统可分配的一种资源。 

      按照OSI七层协议的描述,传输层与网络层在功能上的最大区别是传输层提供进程通信能力。从这个意义上讲,网络通信的最终地址就不仅仅是主机地址了,还包括可以描述进程的某种标识符。为此,TCP/IP协议提出了协议端口(protocol   port,简称端口)的概念,用于标识通信的进程。 

      端口是一种抽象的软件结构(包括一些数据结构和I/O缓冲区)。应用程序(即进程)通过系统调用与某端口建立连接(binding)后,传输层传给该端口的数据都被相应进程所接收,相应进程发给传输层的数据都通过该端口输出。在TCP/IP协议的实现中,端口操作类似于一般的I/O操作,进程获取一个端口,相当于获取本地唯一的I/O文件,可以用一般的读写原语访问之。 

      类似于文件描述符,每个端口都拥有一个叫端口号(port   number)的整数型标识符,用于区别不同端口。由于TCP/IP传输层的两个协议TCP和UDP是完全独立的两个软件模块,因此各自的端口号也相互独立,如TCP有一个255号端口,UDP也可以有一个255号端口,二者并不冲突。 

      端口号的分配是一个重要问题。有两种基本分配方式:第一种叫全局分配,这是一种集中控制方式,由一个公认的中央机构根据用户需要进行统一分配,并将结果公布于众。第二种是本地分配,又称动态连接,即进程需要访问传输层服务时,向本地操作系统提出申请,操作系统返回一个本地唯一的端口号,进程再通过合适的系统调用将自己与该端口号联系起来(绑扎)。TCP/IP端口号的分配中综合了上述两种方式。TCP/IP将端口号分为两部分,少量的作为保留端口,以全局方式分配给服务进程。因此,每一个标准服务器都拥有一个全局公认的端口(即周知口,well-known   port),即使在不同机器上,其端口号也相同。剩余的为自由端口,以本地方式进行分配。TCP和UDP均规定,小于256的端口号才能作保留端口。

 

 

· 再讨论一下,一个服务器监控一个端口,比如80端口,它为什么可以建立上成千上万的连接?

 

   首先, 一个TCP连接需要由四元组来形成,即(src_ip,src_port,dst_ip,dst_port)。当一个连接请求过来的时候,服务端调用accept函数,新生成一个socket,这个socket所占用的本地端口依然是80端口。由四元组就很容易分析到了,同一个(src_ip,src_port),它所对应的(dst_ip,dst_port)可以无穷变化,这样就可以建立很多个客户端的请求了。

原文出自:http://nigelzeng.iteye.com/blog/1209538
socket端口复用之TCP和UDP 一文彻底搞懂TCP和UDP端口复用,解决网络编程bind失败问题。 阅读详情

相关推荐

网络端口(包括TCP端口和UDP端口)的作用、定义、分类,以及在视频监控和流媒体通信中的定义

在TCP/IP协议中,端口号是一个16位的整数,用于标识网络应用。端口号的主要作用是让应用层的各种应用进程都能将其数据通过端口向下交付给传输层,以及让传输层知道应当将其报文段中的数据向上通过端口交付给应用层的哪个进程。网络端口号有很多个,多个服务器的端口可以相同,TCP端口、udp端口相互独立。网络视频监控和流媒体通信中经常会用到不同的网络端口。在视频通信中,有时候会出现端口被用完的情况,这种情况下,就需要进行多个服务器的并发处理。

weixin_70208651的博客 1万+

TCP、UDP绑定同一端口通信的解释

昨日突然讨论起TCP与UDP是否可以在同一端口进行绑定,通信。 在印象当中我记得是可以的,今日google了相关资料, 确定以及肯定的: TCP、UDP可以绑定同一端口来进行通信:         网络中可以被命名和寻址的通信端口,是操作系统可分配的一种资源。        按照OSI七层协议的描述,传输层与网络层在功能上的最大区别是传输层提供进程通信能力。从这个意义上讲,网络通信的最...

成长的日子 2388

【程序设计艺术】TCP和UDP为何可以共用同一端口

网络七层协议: 其中,传输层: 同一台机器的同一个端口只可以被一个进程使用,一般用于tcp,或者udp。那一个进程使用同一个端口同时监听tcp、udp请求,是否可以呢? 答案:可以。 端口可以形象地比喻成操作系统上的编号唯一的文件,应用程序和网络协议可以对其进行i/o操作。 但是既然唯一又为何tcp udp可以用相同的端口号呢?这样的话,程序在连接到端口时,...

AI天才研究院 1万+

linux端口重用

需要改/usr/include/asm/socket.h:/* To add :#define SO_REUSEPORT 15 */freebsd与linux下bind系统调用小结只考虑AF_INET的情况(同一端口指ip地址与端口号都相同)1.freebsd支持SO_REUSEPORT和SO_REUSEADDR选项,而linux只支持SO_REUSEADDR选项。

活到老、学到老 1万+

YOLO车牌检测实战:1019张图像数据集训练与避坑指南

目标检测是计算机视觉的核心任务,YOLO算法因实时性与精度平衡被广泛应用。其原理是将图像划分为网格,直接回归边界框与类别。在车牌检测场景中,小数据集微调是快速落地的关键路径。基于1019张带标签图像,可完整实践数据格式转换、训练参数配置与推理后处理。通过YOLO训练,能有效识别停车场、道闸等场景中的车牌,并借助数据增强与增量迭代提升模型泛化能力。

weixin_34354173的博客 332

数据库系统概论课后习题答案(第五版 王珊、萨师煊)

第1章 绪论 1 .试述数据、数据库、数据库系统、数据库管理系统的概念。 答: ( l )数据( Data ) :描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、声音、正文等。数据与其语义是不可分的。解析在现代计算机系统中数据的概念是广义的。早期的计算机系统主要用于科学计算,处理的数据是整数、实数、浮点数等传统数学中的数据。现代计算机能存储和处理的对象十分广泛,表

早知晓的博客 11万+

【转】TCP 和 UDP 绑定同一端口通信的解释

TCP、UDP绑定同一端口通信的解释-转 昨日突然讨论起TCP与UDP是否可以在同一端口进行绑定,通信。 在印象当中我记得是可以的,今日google了相关资料, 确定以及肯定的: TCP、UDP可以绑定同一端口来进行通信:         网络中可以被命名和寻址的通信端口,是操作系统可分配的一种资源。        按照OSI七层协议的描述,传输层与网络层在功能上的最大区别是传输

iw1210的专栏 1570

《Hadoop大数据技术原理与应用》(第2版)黑马程序员的课后习题答案

《Hadoop大数据技术原理与应用》(第2版)黑马程序员的课后习题答案

qq_36773158的博客 4646

TCP 和 UDP 绑定同一端口通信的解释

昨日突然讨论起TCP与UDP是否可以在同一端口进行绑定,通信。 在印象当中我记得是可以的,今日google了相关资料, 确定以及肯定的: TCP、UDP可以绑定同一端口来进行通信:         网络中可以被命名和寻址的通信端口,是操作系统可分配的一种资源。        按照OSI七层协议的描述,传输层与网络层在功能上的最大区别是传输层提供进程通信能力。从这个意义上讲,网络通信

liujiayu2的专栏 832

企业微信会话存档SDK集成与动态库加载实战

本文详细解析了企业微信会话存档SDK的集成与动态库加载实战,重点解决Windows与Linux环境下动态库加载的差异问题。通过实战案例和优化建议,帮助开发者高效完成企业微信API集成,确保合规存档功能稳定运行。

weixin_26934905的博客 464

MySQL连接异常:Communications link failure 解决方案

困扰一晚上的问题终于解决了。

weixin_44704776的博客 1086

TCP 和UDP绑定同一端口

昨日突然讨论起TCP与UDP是否可以在同一端口进行绑定,通信。答案是确定以及肯定的: TCP、UDP可以绑定同一端口来进行通信:         网络中可以被命名和寻址的通信端口,是操作系统可分配的一种资源。        按照OSI七层协议的描述,传输层与网络层在功能上的最大区别是传输层提供进程通信能力。从这个意义上讲,网络通信的最终地址就不仅仅是主机地址了,还包括可以描述进程的某种标识

huangshanchun的专栏 3320

LPDDR4 JEDEC标准测试实例解析--写操作

LPDDR4的JEDEC标准一致性测试项详解以及实例分享,满满干货!感兴趣的小伙伴可以持续关注!!

一只豌豆象的博客 7774

小程序公司排行榜怎么用?SaaS、轻量工具与定制开发选型指南

在数字化业务快速发展的今天,企业建设小程序时常被各类“小程序公司排行榜”所吸引。但榜单的真正价值并非直接给出答案,而是帮助筛选候选服务商。理解SaaS、轻量工具与定制开发三者的原理与边界,是做出正确决策的前提。SaaS提供标准化在线业务系统,适合通用流程;轻量工具以模板快速生成页面,适用轻场景;定制开发则按需设计,满足复杂业务逻辑。从技术价值看,它们对应不同的数据控制权、扩展性与成本结构。结合电商门店、冷链管理等应用场景,企业可通过需求清单、试用验证、合同审查等步骤,将排行榜作为漏斗入口,找到真正匹配的交付

weixin_34389926的博客 384

大数据分析实验,包含五个子实验:wordCount实验,PageRank实验,关系挖掘实验,k-means算法,推荐系统算法。

大数据分析实验,包含五个子实验:wordCount实验,PageRank实验,关系挖掘实验,k-means算法,推荐系统算法。

805

零基础学习CANoe Panel(5)——改变变量的值,控件图像也改变,这是怎么回事?

Panel 中控件的图像随着值变化,是怎么回事?

蚂蚁小兵 2145

TCP和UDP使用同一端口通信

文章目录TCP和UDP可以同时监听相同的端口吗?一个端口可以同时多个TCP / UDP 吗? TCP和UDP可以同时监听相同的端口吗? 同一台机器的同一个端口只可以被一个进程使用,一般用于tcp,或者udp。那一个进程使用同一个端口同时监听tcp、udp请求,是否可以呢? 答案是:可以 端口可以形象地比喻成操作系统上的编号唯一的文件,应用程序和网络协议可以对其进行i/o操作。 但是既然唯一又为何tcp udp可以用相同的端口号呢?这样的话,程序在连接到端口时,怎么知道此时从该端口进来的数据是tcp的还是ud

“逛丢一只鞋”的博客 7593

Python爬虫抓取学术期刊数据(Springer、Elsevier)

本文详细介绍了如何使用Python爬虫抓取学术期刊网站(如Springer、Elsevier)上的文章信息,并进行数据清洗和存储。我们使用了requestsSeleniumpandas等技术,通过模拟浏览器行为来绕过反爬虫机制,并将数据保存为Excel文件,方便后续分析。未来,我们可以通过加入更多的期刊网站数据源,扩展爬虫的功能,抓取更多的学术数据。同时,结合自然语言处理(NLP)技术,可以对抓取的文章进行自动化的摘要提取和主题分类,为学术研究提供更多的支持。

2201_76125261的博客 1487

UDP和TCP可以使用同一个端口吗?

之前有读者在面试的时候,被问到:TCP 和 UDP 可以同时监听相同的端口吗?关于端口的知识点,还是挺多可以讲的,比如还可以牵扯到这几个问题:多个 TCP 服务进程可以同时绑定同一个端口吗?客户端的端口可以重复使用吗?客户端 TCP 连接 TIME_WAIT 状态过多,会导致端口资源耗尽而无法建立新的连接吗?所以,这次就跟大家盘一盘这些问题。TCP 和 UDP 可以同时绑定相同的端口吗? 其实我感觉这个问题「TCP 和 UDP 可以同时监听相同的端口吗?」表述有问题,这个问题应该表述成「TCP 和 UDP

资料免费分享,点击名片 4422

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: SpringMVC详解
下一篇: 多进程侦听同一端口
ProfeSir
博客等级 码龄11年 5粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值