TCP SOCKET 的建立流程:
tcp-socket-flow-chart通过代码来实践下:
tcp_server.c以上的代码主要实现:
1. 建立连接(3次握手)
2. 通过accept监听已建立好的连接
3-way handshake process1. 服务端收到客户端发出SYN的请求后,会返回ACK+SYN, 并将请求放入半连接SYN-Q队列
2. 客户端收到服务端发出ACK+SYN请求后,会发送ACK的确认请求
3. 服务端收到客户端的ACK请求后,表明3次握手已完成,将SYN-Q的R1取出,放入ACCEPT-Q的队列(可由tcp_server.c中backlog进行设置)
4. accept()发现有已完成的请求R1, 将其取出,并返回一个新建的socket供后续的数据传输操作(write/read)
网友评论