应用程序是在 TCP 握手之前还是之后确定的?

网络工程 tcp
2022-02-18 00:35:53

我是 TCP 的新手,并试图绕过它。我了解基础知识,例如建立连接的三次握手,然后是应用程序到应用程序的命令。

我的问题是:客户端何时向服务器指示它要与哪个应用程序通信。假设一台服务器正在端口 80 上监听 HTTP 连接,我尝试通过 ftp 访问端口 80。是不是:

1)客户端向服务器发送 SYN 请求,服务器以 SYN-ACK 响应。客户端以 SYN 响应,连接建立。

2nd)客户端向服务器发送“retrieve ftp://joe.com/file ”命令。

3)服务器说“我没有 ftp 服务器应用程序,错误。” 连接终止并在客户端出错。

或者,在三次握手和建立连接之前,是否以某种方式通信了所需的应用程序/协议?

1个回答

TCP 中实际上没有任何请求应用程序的信号。应用程序由目标端口号暗示。Web 服务器将在端口 80 上打开一个侦听 TCP 套接字。希望连接到 Web 服务器的客户端将打开到端口 80 的连接,然后发送 HTTP 命令。如果配置错误的客户端连接到端口 80 并期望 FTP 服务器,它将发送 FTP 命令,并且这些命令将同样传递给 Web 服务器应用程序,则由 Web 服务器应用程序来处理错误并终止连接。