首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >客户端使用高端口号

客户端使用高端口号
EN

Stack Overflow用户
提问于 2010-02-20 12:43:51
回答 5查看 16.4K关注 0票数 4

为什么连接的客户端使用高端口号(临时端口),而应用程序监听通常较小的端口号?

Thx in advans,Karthik Balaguru

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-02-20 12:51:11

低于1024的端口号称为已注册端口号,大于1024的端口号称为未注册端口号(限制为65535)。所有这两个术语都意味着1024以下的端口具有与其关联的标准服务。例如: 53用于DNS,80用于HTTP,25用于SMTP等。请注意,它们是关联的-没有什么可以阻止您将应用程序设置为使用端口53、25等,但不建议这样做,因为其他服务将尝试连接和/或操作这些端口,因此可能会导致问题。

未注册的端口区域由客户端应用程序动态使用。IE:您在连接到StackOverflow.com are服务器的80端口时正在阅读此答案,但您的浏览器正在使用未注册的端口来发起该请求。

票数 5
EN

Stack Overflow用户

发布于 2010-02-21 01:57:25

服务器监听固定的端口号,以便客户端知道连接的位置。客户端不需要使用固定的端口号,因为没有人发起到它们的连接,并且实际上,如果在同一台机器(例如,web浏览器)上运行的多个客户端连接到相同的服务器,则它们不能使用固定的端口号。范围为0..49151的IANA has designated端口为特定服务的固定端口号,范围为49152至65535的端口为动态(临时)端口,未分配给任何服务,可在不需要固定端口号时使用。

端口范围0..1023进一步划分为众所周知的范围0..1023和注册范围1024..1023,只有特权进程才能绑定到该范围(至少在Unix/Linux上)。1024..49151范围内的端口可由可能以未授权用户身份运行的服务器进程使用,如果服务器未使用此范围内的端口,客户端也可以使用这些端口(例如,Linux和Solaris上的动态端口默认从32768开始,而不是49152)。

票数 14
EN

Stack Overflow用户

发布于 2010-02-20 12:51:41

因为服务器端口通常是众所周知的端口。在Unix机器上,您将在/etc/services文件中看到它们的分配。另一方面,客户端端口通常由TCP/IP堆栈从特定的高范围中挑选。因此,服务器知道要侦听哪些端口,客户端知道要连接到哪个端口,并且没有人关心连接是从哪个端口发起的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2301075

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档