【发布时间】:2017-03-18 03:32:08
【问题描述】:
我知道为了连接一个网站,在TCP层,源端口是一个高随机数,目的是80。所以,响应段有80作为源端口,随机端口号作为目的端口。
据我了解,客户端在等待其 HTTP 请求的响应时会侦听该随机端口号。
当我创建一个 TCP 服务器套接字并且我想让它监听特定的端口 (47860) 时,为什么我应该配置我的路由器并转发端口,而我在使用 Web 浏览器时不需要这样做? HTTP 套接字和通用 TCP 套接字有什么区别?
【问题讨论】:
-
HTTP 是使用 TCP 的应用层协议。 “套接字”与 TCP 层相关,而不是应用程序。没有“HTTP 套接字”
-
你必须阅读 TCP。客户端不听任何东西,连接已经打开。也没有 HTTP 套接字之类的东西。
-
在一个基于HTTP的进程下,我们找到了一个TCP套接字;出于这个原因,我使用了“HTTP 套接字”这个术语。
-
为什么我的路由器接受传入的 HTTP 流量并阻止传入的套接字流量?
-
“据我了解,客户端在等待其 HTTP 请求的响应时侦听该随机端口号。”我不想让你感到困惑,但“听”在这里不是正确的术语。有两种类型的套接字,服务器套接字和客户端套接字。我们说服务器套接字侦听新连接,而客户端套接字连接到服务器套接字。不同之处在于,服务器套接字能够与多个客户端交换流量,而客户端套接字可以与单个服务器通信。
标签: sockets networking tcp port portforwarding