【问题标题】:Sockets and TCP Sockets套接字和 TCP 套接字
【发布时间】:2010-01-17 17:18:11
【问题描述】:

普通套接字和TCP套接字有什么区别?同样在 IIS 这样的 Web 服务器中,可以在服务器中创建多少个 TCP 套接字?我在某处读到,当客户端连接到 Web 服务器(在端口 80 上)时,Web 服务器会创建一个临时端口并在临时端口上回复客户端。这是真的吗?

【问题讨论】:

  • 我不确定您所说的“普通插座”指的是什么:尽管我对 Andrew Medico 投了赞成票,但他的回答解释了不同种类的插座。

标签: sockets webserver


【解决方案1】:

“socket”是socket(2)系统调用创建的接口的通用术语。套接字可以在多种接口上运行 - TCP/IP、UDP/IP、主机本地“UNIX 域套接字”等。TCP 套接字是一种特定的实例类型。

【讨论】:

    【解决方案2】:

    正如 Andrew 所说,socket 只是一个接口。想想插头和插座;其中socket是插头的外部接口。

    现在想象一下计算机内部的一个插座和一个来自外部世界的插头,插入该插座 - 即连接;现在他们需要告诉对方他们将如何通信(即协议)。协议的标准形式是 TCP 或 UDP。见introduction to TCPIP

    套接字由协议定义,并且 主机上的地址。的格式 地址是特定于每个 协议。在 TCP/IP 中,地址是 IP地址的组合和 港口。两个插座,每端一个 连接,形成双向 通信路径。

    一个操作系统最多可以有 65536 个端口;在高达 1024 的 Windows 中,操作系统为自己保留。

    是的,服务器(包括 IIS)接受初始请求并将连接转发到重定向端口是正确的。值得一看link。此外,如果您想限制与 IIS 的连接,请参阅 performance tuning 部分。

    【讨论】:

      【解决方案3】:

      无法解释 TCP 套接字与常规套接字的详细信息,但您对临时端口是正确的。套接字从端口 80 移交,并在其他一些空闲端口上恢复通信。

      如果您考虑所有的 Web 服务器,这是有道理的。我们中的很多人都在同时尝试访问堆栈溢出。我们都无法在端口 80 上与 SO 服务器通信。因此,服务器在端口 80 上接受我们的初始请求,然后在连接期间将连接移交给其他端口。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-02-10
        • 2011-08-31
        • 2023-03-21
        • 2018-04-03
        • 1970-01-01
        • 1970-01-01
        • 2014-05-27
        相关资源
        最近更新 更多