TCP的三次握手和四次挥手
一、TCP三次握手图解
- 三次握手的目的是:发送方和接收方确认自己与对方的接收和发送都是正常的,建立可靠的通信信道。
- 第一次握手:Server确认了自己接收正常,对方发送正常;
- 第二次握手:Client确认自己发送正常、接收正常,对方发送正常、接收正常;
- 第三次握手:Server确认自己发送正常、对方接收正常,加上第一次握手Server所确定的,这时Server也已经确认自己和对方发送接收均为正常;
- 由上可以看出来,发送方和接收方必须经过三次握手才能确认自己与对方的发送和接收都正常,所以三次握手缺一不可;
- 三次握手成功建立连接之后, 双方都会开辟资源进行下一步操作;
二、四次挥手图解
- 举个例子:
- C对S说:我们分手吧
- S收到这个消息之后,给C回了一条消息说我知道了(注意这里S并没有同意分手哦),我考虑一下(考虑的时候可能是去找备胎了...)
- S考虑好之后,决定要和C分手,然后S给C发了一条消息说,我同意分手了,我们可以分手了
- C收到这个消息之后十分高兴,赶紧给S回了一条消息说好,然后他们就分手成功了
- 经过这么一个过程,C和S互相确认了要断开连接之后,就开始释放自己的资源
三、双方通信建立了连接,但是十年没有发送数据包,连接是有效的吗?
- 认为是有效的,但是这期间可能由于对方挂了,光缆断了等原因这个连接就会挂断。为了解决这个问题衍生出了:心跳
- 心跳:时不时的给对方发一个数据包过去确认一下对方有没有挂掉