TCP连贯中的三次握手和四次挥手
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指可能在多个不同网络间实现信息传输的协定簇。TCP/IP协定不仅仅指的是TCP 和IP两个协定,而是指一个由FTP、SMTP、TCP、UDP、IP等协定形成的协定簇, 只是因为在TCP/IP协定中TCP协定和IP协定最具代表性,所以被称为TCP/IP协定。
1.协定简介
TCP/IP协定定义了一个在因特网上传输的包,称为IP数据报,IP数据报由首部和数据两局部组成,IP报头中蕴含大量的信息,如源IP地址,目标IP地址,数据报长度,IP版本号等,数据局部呢保留传输层的数据,如保留TCP、UDP、ICMP等数据。
2.三次握手
在理解三次握手之前,咱们须要先看TCP首部两个要害的属性——序号和确认号。序号字段代表报文端要发送的数据的第一个字节的序号;通信的任何一方收到音讯都要发送一个确认报文,确认报文就须要一个确认号,它的值示意冀望收到下一个报文段的序号值,也就是说在确认报文中确认号才会失效。
如何标识是否为确认报文呢?这里要关注六个标记位,别离是URG、ACK、PSH、PST、SYN、FIN。在这六个标记位中,又要重点关注三个,别离是
- ACK:当ACK=1==确认号字段无效,为确认报文==;当ACK=0,确认号有效
- SYN:同步比特SYN=1,示意这是一个==连贯申请或申请承受报文==。
- FIN:用来==开释一个连贯==。当FIN=1,示意次报文段的发送端的数据曾经发送结束了,用来开释连贯。
第一次握手时,Client向Server发送一个连贯申请,须要设置SYN=1,同时发送本人的序列号Seq到服务器。第二次握手,为服务器收到申请后,发送一个确认报文,ACK=1,同时发送一个确认号,是冀望收到对方的下一个报文段的数据的第一个字节的序号,ACKnum=X+1,+1所示收到 SYN标识。第三次握手为客户端收到服务器的响应报文,他也要回复确认报文,确认报文ACK=1,ACKnum来源gaodai#ma#com搞@@代~&码网=Y+1
3.四次挥手
第一次挥手为客户端发送FIN=1,示意本人没有数据能够发送了,其次携带本人的序列号。第二次挥手为服务器端确认收到客户端的FIN包,发送一个确认包,表明本人接管到了客户端的敞开申请,然而这时并未筹备好敞开连贯。第三次挥手为服务器确认筹备好敞开连贯,这时发送FIN=1。第四次挥手为客户端收到服务端的敞开申请,发送一个确认包,服务器端收到这个申请后就敞开连贯,不再回应客户端,客户端会期待一个固定工夫后,主动敞开。