昨日突然讨论起TCP与UDP是否可以在同一端口进行绑定,通信。

在印象当中我记得是可以的,今日google了相关资料,

确定以及肯定的:

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)可以无穷变化,这样就可以建立很多个客户端的请求了。

TCP 和 UDP 绑定同一端口通信的解释相关推荐

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

    昨日突然讨论起TCP与UDP是否可以在同一端口进行绑定,通信. 在印象当中我记得是可以的,今日google了相关资料, 确定以及肯定的: TCP.UDP可以绑定同一端口来进行通信: 网络中可以被命名和 ...

  2. TCP、UDP绑定同一端口通信的解释-转

    昨日突然讨论起TCP与UDP是否可以在同一端口进行绑定,通信. 在印象当中我记得是可以的,今日google了相关资料, 确定以及肯定的: TCP.UDP可以绑定同一端口来进行通信: 网络中可以被命名和 ...

  3. TCP 和 UDP 可以使用相同端口吗?

    之前有读者在面试的时候,被问到:TCP 和 UDP 可以同时监听相同的端口吗? 关于端口的知识点,还是挺多可以讲的,比如还可以牵扯到这几个问题: 多个 TCP 服务进程可以同时绑定同一个端口吗? 客户 ...

  4. 转载一个很经典的--C# Socket TCP和UDP报文及端口测试工具的开发(提供源码)

    转载地址:http://www.ltmonitor.com/blog/?p=285 因为自己经常做Socket开发,经常要调试各种协议,如TCP.UDP和SIP等协议,还要维护多个服务器端和客户端的通 ...

  5. TCP和UDP都是全双工通信的吗

    是的,TCP和UDP都是全双工通信协议.这意味着在通信过程中,双方都能同时发送和接收数据. TCP(传输控制协议)是一种面向连接的协议,它提供了可靠的数据传输服务.TCP在传输数据之前会建立一条逻辑连 ...

  6. tcp和udp可以共用端口

    1.tcp的端口不是物理概念,仅仅是协议栈中的两个字节 2.TCP和UDP传输协议监听同一个端口后,接收数据互不影响,不冲突.因为数据接收时时根据五元组{传输协议,源IP,目的IP,源端口,目的端口} ...

  7. Socket、TCP和UDP协议、端口含义

    1.如何理解Socket 两台计算机相互通讯靠的就是Socket,类似于2个人通讯要靠电话,也就是说Socket就是程序之间的电话.Socket英文意思是孔.插座,作为进程通讯机制,取后一种意思,通常 ...

  8. TCP和UDP协议常用端口汇总

    端口 协议 说明 UDP常用端口 7 Echo 将收到的数据包送给发送端 25 SMTP 简单邮件传输协议 42 Host Name Server 主机名服务 49 TACACS 登录主机协议 53 ...

  9. pcb可以给用户进程读吗_「TCP/UDP」一个端口号可以同时被两个进程绑定吗? - 一口Linux...

    一.1个端口号可以同时被两个进程绑定吗? 根据端口号的绑定我们分以下几种情况来讨论: 2个进程分别建立TCP server,使用同一个端口号8888 2个进程分别建立UDP server,使用同一个端 ...

最新文章

  1. 马云成功靠的是机遇还是努力?网友戏谑:是那张其貌不扬的脸
  2. 【最佳实践】如何通过OSS的Bucket Policy设置访问授权?
  3. Windows批处理(cmd/bat)常用命令
  4. 腾讯翻译君在线翻译怎么翻译整个文件_藏语怎么翻译成中文?这两方法非常好用...
  5. 【Python 必会技巧】copy 模块中 copy() 与 deepcopy() 函数的区别
  6. win7怎么解压rar文件_win7解压rar文件的方法
  7. Moodle: 如何修改moodle——theme主题皮肤
  8. HTML5 canvas绘制雪花飘落动画(需求分析、知识点、程序编写分布详解)
  9. 【Java】Java8 LocalDate日期时间用法总结
  10. 为informix数据库中的表创建同义词
  11. float取整数部分_python的除法问题 取整取余/向上向下取整/四舍五入
  12. 欢迎使用CSDN-markdown编辑器
  13. Linux运行exe程序
  14. 排队论的计算机模拟,8.2 排队论模型(二)-----计算机模拟.pdf
  15. 手机安装 Linux 系统教程
  16. CTGU实验6_1-创建能否借书存储过程
  17. 怎么在合同谈判,计划和执行阶段分别进行范围管理
  18. 教你快速使用AD7606的简单驱动方法--并行
  19. 倍福TwinCAT(贝福Beckhoff)应用教程13.1 TwinCAT控制松下伺服 NC高级
  20. 不用linux转录组数据分析,RNA-seq转录组数据分析

热门文章

  1. mybatisdb.sql
  2. Spring Boot整合@CacheEvict注解使用
  3. 适配器模式源码解析(jdk+spring+springjpa+springmvc)
  4. 全国计算机一级d类考试内容,全国计算机一级考试WPS office复习题及答案2017
  5. php的验证码要gd库,怎么在PHP中使用GD库实现一个验证码功能
  6. 我犯的错误--关于主键
  7. 每天一个Linux命令之ps-查看系统进程信息
  8. Centos7KVM的安装与配置及创建虚拟机
  9. TCP IP基础知识的复习
  10. 多数据源使用spring-data-jpa无法部署到JBoss As Server