3此握手建立连接
4此握手连接关闭
直接上图
1.建立连接
2.关闭连接
3.解释
(1)为什么建立连接要3次?关闭连接要4次握手?
因为TCP是一个全双工的连接。
建立连接之前,双方都是准备好的,并且并无多余的信息需要传递。
所以在Server回复的过程中,可以又传递ACK,又传递SYN
而连接断开的时候,由于全双工,通信一方只能确定自己一端没有信息要发送,
所以采取半关闭,自身不发,但是能够接受。
细节:
①自身半关闭,不能发送,应用不能通过套接字再调用类似write的操作,但是对于对端发来的消息
内核的协议栈会有自动的ACK功能
②自身半关闭,会向对端发送FIN,然后对端通过read会读取到EOF,read就会返回0
这个时候应用程序就能进行相应地处理(不应该向该套接字再调用read,应该发送完必要的信息关闭该套接字。)。