- Socket五元组
- 协议,本地IP,本地端口,远方IP,远方端口
- 服务端和客户端的五元组是如何确认的?
- 服务端:
- 做服务端的时候只要accept()成功之后五元组就确定了,
- 监听的时候,协议/本地IP/本地端口(监听端口)都是确定的,当收到客户端的报文时,远方IP就是报文的源IP地址,远方端口就是报文的源端口。
- 然后服务器进入处理阶段,服务器开启一个新的线程与客户端交互,此时需要确定一个新的五元组,这时候协议/本地IP/远方IP/远方端口都来自监听阶段确定的五元组,而本地端口会在1024以上随机选取(不再使用监听端口,以便监听其他客户端的请求)。
- 客户端:
- 而客户端则在connect()成功之后确定此五元组,
- 客户端在发送请求时采用随机的本地端口,而接受响应时采用服务器的源端口作为远方端口。
- 服务端: