TCP如何识别应用层协议?
How does TCP identify the application level protocol?
IP
协议数据报 header 包含一个 Protocol
字段来定义 IP 数据报数据部分中使用的协议。
TCP 数据包如何识别其应用层协议?我在 TCP header 格式中没有看到类似的字段。所以这一切都取决于 port number
?
如果是这样,是否意味着我可以在同一端口上静默切换应用程序协议,就像 WebSocket
使用 HTTP 格式的握手请求告诉服务器从 HTTP 切换时发生的情况到 WebSocket 协议?
TCP本身并不关心使用的应用层协议。最接近的是端口号。端口号用于区分同一主机上的不同连接。当收到一个数据包时,操作系统使用端口号来确定它属于哪个程序。虽然很多协议都有标准的端口号,但并不一定要使用。
是的,您可以在同一个端口上切换协议。
IP
协议数据报 header 包含一个 Protocol
字段来定义 IP 数据报数据部分中使用的协议。
TCP 数据包如何识别其应用层协议?我在 TCP header 格式中没有看到类似的字段。所以这一切都取决于 port number
?
如果是这样,是否意味着我可以在同一端口上静默切换应用程序协议,就像 WebSocket
使用 HTTP 格式的握手请求告诉服务器从 HTTP 切换时发生的情况到 WebSocket 协议?
TCP本身并不关心使用的应用层协议。最接近的是端口号。端口号用于区分同一主机上的不同连接。当收到一个数据包时,操作系统使用端口号来确定它属于哪个程序。虽然很多协议都有标准的端口号,但并不一定要使用。
是的,您可以在同一个端口上切换协议。