【问题标题】:All the ports do the same job?所有端口都做同样的工作?
【发布时间】:2014-01-22 17:41:32
【问题描述】:

我现在开始学习计算机网络。我一直在收集有关港口的信息。当我在互联网上搜索时,我可以看到有很多端口。我只想知道端口的用途/功能以及它们是否都做同样的工作。另外,我在大多数地方都看到了 8080 端口。这背后有什么具体原因吗(使用8080)?

【问题讨论】:

    标签: sockets networking port


    【解决方案1】:

    端口以及 IP 地址构成 TCP 网络连接的基本端点。有效端口号范围从 0 到 65535(16 位),它们都做同样的工作。

    现在它们是 Internet 上经常使用的一些知名服务,因此让它们监听知名端口已成为一种很好的做法。大多数这些服务都收集在the IANA web page。您会在那里发现8080 端口号主要由网络服务器和代理使用(您在互联网上进行的基本操作,浏览)。

    更深入地说,端口是一个传输层的概念,用于与目标机器中的特定进程(即:IP地址指向的主机)进行通信。这使得多个服务可以在同一主机上运行而不会发生冲突。

    一个普通的 TCP/IP 连接有两个端点,每个端点都由元组(IP 地址、端口号)组成。

    您可以在the Wikipedia page for TCP 找到更多信息,并且有很多关于这个主题的好书。我个人最喜欢的:Andrew S. Tanenbaum - Computer Networks

    希望这会有所帮助!

    【讨论】:

    • 确切地说,端口范围是从1到65535。0有一个特殊的含义:在bind()上,意味着应该分配一个ephemeral port
    • @glglgl:根据 IANA,端口 0 是保留的。当然,与端口 0 的绑定和地址将分配一个使用高数的动态端口。但这是系统调用的行为。从理论上讲,您可以将数据包发送到端口 0,并且可以对 OS 进行编码以合法地侦听端口 0。虽然这不是标准,但理论上我认为是可能的,并且在 16 位数字范围内。跨度>
    【解决方案2】:

    每个端口都与其他端口相同。唯一的区别是在每个端口上附加和侦听的进程。一些端口已经标准化,例如用于 http 流量的 80。如果 IP 地址就像电话号码,那么端口就像分机号。

    【讨论】:

      【解决方案3】:

      常用端口列表在这里:

      http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers

      此 URL 指出,如果 Web 服务是代理或缓存服务器或以非 root 用户身份运行,则通常使用端口 8080 - 以非 root 用户身份使用端口 8080 将比默认设置安全得多。

      但是,如果端口 80 正在使用中,则可以简单地使用 8080:

      http://answers.yahoo.com/question/index?qid=20070309074112AADBBmL

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-03-07
        • 1970-01-01
        • 2014-11-18
        • 1970-01-01
        • 1970-01-01
        • 2017-02-21
        • 2017-02-24
        相关资源
        最近更新 更多