2015-10-22 200 views
0

这是我关于端口和端口号(纠正我,如果我不正确的)理解:端口和端口号的关系?

  • “端口”是传输层

  • “端口号”中的一个通信端点是分配给端口的地址。

是一个港口和一个这样的网络接口和IP地址之间的端口号之间的关系,在给定一个端口,我们可以改变分配给它的端口号,类似于有可能更改分配给网络接口的IP地址?

或者是更像网络接口和MAC地址的关系,因为网络接口的MAC地址几乎不会改变,更像是身份而不是地址?

回答

1

将IP地址视为建筑物的街道地址,将端口号作为该建筑物的房间号码。不同的建筑物有不同的街道地址,但它们都可以有相同的房间号码。

+0

谢谢。区分端口和其端口号是否正确,就像网络接口及其IP地址或MAC地址一样?我的问题是端口号是否可以改变。 – Tim

+0

端口号是0到65535.你对改变数字的问题没有任何意义。应用程序决定它将响应哪个端口号。例如,默认情况下,大多数Web服务器都会响应HTTP端口80。大多数Web服务器应用程序都允许您将其更改为不同的端口号,但不会更改端口号;您正在更改Web服务器响应的端口。基本上,网络服务器改变了大楼中的房间,但它并不改变房间上的房间号码。 –

+0

在应用程序保留端口号并开始使用端口号之前,端口号是毫无意义的。所有65,536个端口号都可以发送到主机上,但除非应用程序决定使用其中一个端口号,否则不会发生任何事情。当你敲门房间时,如果房间空了,没人回答。只有当应用程序占用房间时,端口号才意味着什么。端口号仅仅是一个概念,让流量流向保留该端口号的特定应用程序。 –

1

我假设您在这里询问TCP和/或UDP端口。

在这种情况下,端口是16位数字,它允许在您的操作系统中运行的许多应用程序都使用像TCP和UDP这样的协议而不会相互干扰。一个应用程序可能使用端口2000来接收数据,而另一个应用程序可能使用端口2000.另外,当您的TCP/IP协议栈接收到一个IP数据包时,如果它是TCP或UDP,并且应用程序已经绑定了该端口号该本地IP地址,或没有IP地址)数据包中的数据可以被路由到正确的应用程序。

当一个应用程序建立一个传出连接时,它会绑定一个本地端口并将其用作传出TCP或UDP数据包的源端口,当另一端(对等端)响应时,应答数据包将返回将目标端口设置为本地源端口,确保将回复传递回正确的应用程序。

有一些所谓的众所周知的端口,例如端口80.Web服务器通常在端口80上侦听,所有常用的服务通常都有一个众所周知的端口,以便这些服务的客户端知道将哪个端口用作目的地端口发送数据包时。

要回答你有关MAC地址类比的问题......端口号有点像操作系统中本地应用程序的地址,就像你的IP是你的操作系统或计算机的地址一样互联网或您的网络接口卡的MAC地址是本地网络上您的操作系统或计算机的地址(尽管实际上该网卡的地址完全准确,因为计算机可以在不同的物理网络上有多个网卡)。

TCP和UDP实际上是传输层协议,所以你可以说端口是这方面的通信端点,但是它们与IP地址(或其他协议,如果它们被封装在别的东西中)一起工作。

+0

谢谢。区分端口和其端口号是否正确,就像网络接口及其IP地址或MAC地址一样?我的问题是端口号是否可以改变。 – Tim

+0

你的意思是没有给端口分配端口号(考虑将IP地址分配给网络接口)?端口号是否永远固定在端口号上? – Tim