关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。
想改进这个问题?将问题更新为 on-topic对于堆栈溢出。
7 天前关闭。
Improve this question
我已经对这个主题进行了广泛的搜索,但我仍然对“端口”到底是什么感到困惑。
我知道它“概念上”是什么,并且我知道有许多不同的端口,并且某些数字(例如 80)是为某些用途保留的,而且我知道通过在 CMD 中输入“netstat”命令我可以检查如果它们正在使用中。
但我还是不明白什么是端口。它“物理”存在于我的计算机上吗?因为我看到的只是我插入的一根以太网连接线,而不是一些做不同事情的 6000 个不同的端口。
而且我真的不明白它与我的互联网浏览器有什么关系。当我点击我的“Chrome.exe”时。图标,这是否“打开”了 80 号端口?
最佳答案
要在任何联网计算机上访问服务,您需要知道 3 个参数。其中一些是您明确提供的,其中一些是由操作系统隐式推断的。三个参数是IP Address
, Protocol
, Port number
.因此,任何正在运行的服务都可以通过这三个数字的组合来唯一地描述。
想象一下,我们没有使用端口号。这意味着在每台计算机上,我们只能拥有使用任何协议(protocol)的一项服务。所以Web服务器只能提供HTTP协议(protocol),邮件服务器只能提供SMTP服务等等。
端口的使用允许我们在同一台计算机上多路复用服务。端口号无非是一个数字,表示哪个服务应该得到一个数据包。所以我们可以让 HTTP 服务器、SMTP 服务器和 SSH 服务器都运行在同一台计算机上,并且都使用相同的协议(protocol)——即 TCP。
此外,这些端口与您在计算机上看到的物理端口无关。再一次 - 它们只是一个数字,允许区分哪个服务(即程序)应该接收哪个数据包。
例如,当我在 Web 浏览器地址栏中输入 www.stackoverflow.com 时,我的操作系统会向 {IP:104.16.34.249, Proto: TCP, Port: 80}
发送 HTTP 请求。 .它是怎么知道这些数字的? IP 地址是使用 DNS 协议(protocol)从主机名解析的。 Web 浏览器运行 HTTP 协议(protocol),该协议(protocol)使用 TCP。端口 80 是 HTTP 的默认端口。在幕后,每个数据包的目标地址 IP 设置为上述值,TCP 有效负载的目标端口设置为 80。在 SO 计算机上,将运行一个 Web 服务器,它正在监听在端口 80 上接收到的数据并回复我的数据包。
关于web - 'port' 到底是什么,它与互联网有什么关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35358596/