最近在学习TCP/IP协议,通过看书和实践终于理解了三次握手和四次挥手,也终于不用总去查什么是三次握手什么是四次挥手了~
下图是在本子上画的,Linux系统下实在没找到好用的画图工具,SYN和ACK是根据telnet登入和退出的抓包记录记录的,抓包工具是使用tcpdump,client是我的本机,server是我的虚拟机,使用桥接网络通信方式。
抓包命令:
> tcpdump -S port 23
TCP连接半关闭:
TCP连接是全双工的,所以如果要真正的断开连接两端都需要发送关闭请求,这也是为什么有四次挥手的原因。如果一端关闭了主动发起关闭连接,另一端没有发起关闭,那就是TCP的半关闭状态,半关闭状态的用途,当发起关闭请求的一端完成数据传输,但是还需要从另一端接收数据。如果tcp/ip详解卷1中提到的rsh命令。刚才搜索了下rsh,全名remote shell,跟ssh是一样的功能,是一种比较老的调用方式,已经被ssh替代了。