TCP 多路复用是指:在一个 IP 链路中(比如本地计算机和亚马逊网站服务器),可以同时传递多个不同的 socket 配对数据段。这是因为每个唯一的TCP 连接由唯一的 [源 IP+源端口] — [目的 IP+目的端口]配对来表征,而在 TCP 包中含有这些信息,将多个不同配对的数据段一起通过链路发送至服务器端,在服务器端 TCP 会根据配对将数据段分配至相应的 socket来处理。

客户端必须使用一个动态的端口号来向服务端请求服务,服务端的服务端口号根据应用层协议一般有 HTTP:80端口等约定,客户端的动态端口号一般大于等于1024,因为1023及以下的端口按约定作为服务器响应使用或其他特定用途,客户端请求只能使用1024及以上的端口号。

服务器在收到数据包后,按照port 来找到绑定的服务程序来处理。

注意:socket连接是一个逻辑概念,socket 一般是系统提供的在应用层与传输层之间的接口(可适用多个协议),应用层协议如 HTTP 通过 socket 和 TCP 协议来实现。

参考

https://www.jianshu.com/p/1e622bb64614

https://www.ccnahub.com/ip-fundamentals/understanding-tcp-and-udp-multiplexing/