【问题标题】:how applications using same service communicate ?使用相同服务的应用程序如何通信?
【发布时间】:2014-01-29 12:47:07
【问题描述】:

我很困惑,如果端口用于区分应用程序,以便告诉特定应用程序数据包属于哪个特定应用程序,那么如果我有两个浏览器都使用 FTP 下载文件,那么如何区分数据包去哪个浏览器,因为 FTP 使用端口 21 ?

【问题讨论】:

    标签: networking network-programming operating-system network-protocols


    【解决方案1】:

    FTP 不是最好的例子,因为它的行为会根据主动/被动模式而改变。

    改用 HTTP,它更简单。

    1. Browser_A 启动到 ServerIP:80 的 TCP 连接
    2. PC 分配一个随机端口,例如 HostIP:55123
    3. HostIP:55123 和 ServerIP:80 之间的 TCP 连接已建立
    4. 服务器收到请求并响应HostIP:55123
    5. PC 知道从 ServerIP:80 到 55123 的每个 TCP 数据包都应该传送到 Browser_A

    【讨论】:

      【解决方案2】:

      首先21端口是COMMAND端口,所以在下载文件时确定FTP客户端不会连接到21端口。
      其次,建立从高端口(> 1024)到 FTP 数据端口的连接,因此您的浏览器将打开(在 PASSIVE 模式下)来自高端口的连接。

      回答您的问题,如果您打开 2 个浏览器并开始从 FTP 服务器下载数据,每个浏览器都会从不同的端口连接。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-27
        • 1970-01-01
        • 1970-01-01
        • 2014-01-21
        • 1970-01-01
        • 2016-01-11
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多