关于Python网络编程中端口号为什么不会重复问题释义

总所周知,TCP协议端口号只有65536个,其中0 ~ 1023是知名端口,1024 ~ 65535是动态端口。网上应用软件有那么多,那为什么这些端口号都不会重复呢?

1、TCP服务端端口一般程序员开发应用程序时就是设置了的,根据程序功能设置相应的协议端口(如果开发应用时没有设置的话,操作系统会自动在动态端口号这个范围内随机生成一个给开发的应用程序使用,这样TCP客户端访问TCP服务端的时候就会因为无法确认TCP服务端端口号而出现访问不了的问题)

2、TCP客户端端口号是程序访问TCP服务端请求连接时,从用户电脑里面正在运行的程序中随机匹配一个还没有用到的动态端口号,如此就不会存在打开程序和已经在电脑上运行的程序端口号之间出现重复的问题了。

注:如果以上描述还是有些看不懂的话请看下图,下图是同一台TCP客户端在一段时间内相继几次访问同一台TCP服务端时留下的痕迹截图。总之一句号,服务端端口号和客户端端口号是不一致的,程序员在开发应用程序时,服务端一般都会绑定端口号,但是客户端是没有绑定的。客户端端口号是在客户端向服务端发送请求连接时,操作系统从用户电脑里面正在运行的程序中选择没有用到的端口号里面随机匹配的,随机分配的端口号会同客户端发送请求连接的数据包一起发送给服务端,服务端再通过客户端给的ip地址及动态端口号找到相对应的客户端,并给与响应。

端口号重复问题图解.png

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 计算机网络概述 网络编程的实质就是两个(或多个)设备(例如计算机)之间的数据传输。 按照计算机网络的定义,通过一定...
    蛋炒饭_By阅读 1,420评论 0赞 10
  • 名词延伸 通俗的说,域名就相当于一个家庭的门牌号码,别人通过这个号码可以很容易的找到你。如果把IP地址比作一间房子...
    杨大虾阅读 20,910评论 2赞 56
  • 使用网络的目的就是为了联通多方然后进行通信用的,即把数据从一方传递给另外一方。前面的学习编写的程序都是单机的,即不...
    壁花烧年阅读 1,283评论 0赞 0
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,087评论 6赞 13
  • 查看网络端口被占用情况 原文 使用命令Netstat –ano|findstr “<端口号>” 查看该PID对应的...
    冯瑞_FR阅读 1,589评论 0赞 0

友情链接更多精彩内容