以下是我对端口号和端口号的理解(如果我不正确,请纠正我):
端口和端口号之间的关系是否类似于网络接口和IP地址之间的关系,在给定的端口中,我们是否可以更改分配给它的端口号,就像可以更改分配给网络接口的IP地址一样?
还是这种关系更像是一个网络接口和一个MAC地址,因为网络接口的MAC地址几乎从未改变,更像是一个身份而不是一个地址?
发布于 2015-10-22 17:54:52
假设IP地址是建筑物的街道地址,而端口号是该建筑物的房间号。不同的建筑物有不同的街道地址,但它们都可以有相同的房间号。
发布于 2015-10-22 17:57:03
我假设您在这里询问的是TCP和/或UDP端口。
在这种情况下,端口是16位数,允许运行在操作系统中的许多应用程序都使用TCP和UDP之类的协议,而不相互干扰。一个应用程序可以使用端口2000来接收有关它的数据,另一个应用程序可能使用3000端口。当您的TCP/IP堆栈接收到以本地IP地址为目的地的IP数据包时,如果它是TCP或UDP,并且应用程序已经“绑定”了该端口号(使用该本地IP地址,或者没有IP地址),则数据包中的数据可以路由到正确的应用程序。
当应用程序进行传出连接时,它会“绑定”本地端口,并将其用作传出TCP或UDP数据包的源端口,而当另一端(对等方)响应时,应答数据包将返回目的地端口,并将其设置为本地源端口,确保回复返回到正确的应用程序。
有所谓的众所周知的端口,如端口80。Web服务器通常在端口80上监听,所有常用的服务通常都有一个众所周知的端口,以便这些服务的客户端知道在发送数据包时使用哪个端口作为目的地端口。
来回答你关于MAC地址类比的问题..。端口号有点像操作系统中的本地应用程序的地址,就像您的IP是您的操作系统或计算机在internet上的地址,或者您的网络接口卡的MAC地址是您的操作系统或计算机在本地网络上的地址一样(尽管确切地说,该网卡的地址是完全准确的,因为计算机可以在不同的物理网络上拥有多个网卡)。
TCP和UDP实际上是传输层协议,因此您可以说端口在这方面是一个通信端点,但是它们与IP地址(或者其他协议封装在其他协议中)一起工作。
发布于 2019-02-19 07:32:49
你的问题是“港口与港口号的关系”。在计算机科学中,当你提到一个端口时,它有以下含义:
如果您对IP和端口之间的差异表示怀疑,请参阅我在这里的帖子What is the difference between a port and a socket?
有关端口号的更多信息,请参阅我在这里的帖子https://stackoverflow.com/a/52707197/2197108
https://stackoverflow.com/questions/33287213
复制相似问题