在我的包1上,根据信息说明(来源)54841> 80(目标)。我可以知道这些术语是什么意思以及为什么使用这些特定端口。我知道对于tcp,他们使用80作为目标端口。但有特殊原因吗?谢谢
答案 0 :(得分:0)
事实上,有两个问题有两个不同的答案。
首先,您必须准确:端口定义是Internet Proctocol(通常称为TCP / IP)application
层的一部分。 tcp
协议是底层transport
层的协议,因此没有为tcp
定义/使用端口80,而是为http
应用协议定义(实际的端口使用情况发生在transport
层)。
关于目标端口,您几乎自己给出了答案:对于定义良好的应用程序协议,已定义了众所周知的端口。该列表由IANA(https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml)维护。通常,端口是在特权低数字范围(最多1024)中定义的。当该范围变满时,也会分配更高的端口号。
明确定义的端口号背后的原因是,服务只能侦听特定端口,如果数字是按惯例知道的,则必须将它们与服务器地址一起记忆。对于您的示例,HTTP,这意味着,如果您启动http://www.example.com请求,您的浏览器(或其他软件)知道http通常使用端口80,连接到该端口以获取html页面。您仍然可以在不同的端口(例如,12345)上运行http服务器,但是,用户必须输入http://www.example.com:12345才能到达服务器。您可以看到使用定义良好的端口在这里很有帮助。
对于源端口,这是一个完全不同的故事。由于传输层连接通常使用端口在源和目标上进行多路复用/多路分解,因此每个连接也必须具有源端口。较低的端口号不能用于此目的,因为一方面,它们通常用于监听服务,另一方面,它们的使用在某些操作系统上具有特权,因此普通用户根本不能使用它们。出于这个原因,IANA为此目的分配了49152到65535(2 ^ 15 + 2 ^ 14到2 ^(16-1))的端口范围。大多数操作系统将为传出连接源端口选择其中一个端口。但是,选择是短暂的 - 当连接关闭时,端口被释放,下一个连接可以使用另一个端口。