简要谈谈三次握手,四次挥手

TCP协议

英文名:Transmission Control Protocol 简称:TCP
中文名:传输控制协议
协议说明:TCP是一种面向连接的可靠的、基于字节流的传输层通信协议。

特点:面向连接,可靠,虽然效率低,但数据传输比较安全!

UDP协议

英文名:User Datagram Protocol
中文名:数据报协议
协议说明:UDP是一种面向无连接的传输层通信协议。

特点:效率高,数据传输不安全,容易丢包!

TCP连接和释放:

TCP连接的建立和释放是采用TCP协议传输数据的双方必经的过程,TCP的连接建立在数据发送之前,而TCP的连接释放在数据发送之后。
1、TCP的连接建立。
连接的建立需要解决三个方面的问题:确定通信双方的身份、协商通信所需的参数和对运输实体资源进行分配。
2、TCP的连接释放。
四次挥手是释放或解除TCP连接,连接的释放必须是一方主动释放,另一方被动释放。

3次握手:

  • 先可以用打电话场景来理解:
    1、客户端:听得到吗?
    2、服务端:听得到,你呢?
    3、客户端:我也听得到。

  • 3次握手的具体步骤如下:
    (1)A发送数据“SYN=1,seq=x”,表示发送同步信号,并且数据的起始序号为x;
    (2)B收到数据后,发送“SYN=1,ACK=1,seq=y,ack=x+1”,表示同步信号已接收,并对A的数据进行确认,为了验证A的身份,发出数据y让A进行确认;
    (3)A收到B的数据后,确认B的存在,发送“ACK=1,seq=x+1,ack=y+1”并且对B的数据进行确认,告知自己已经准备好,可以发送数据,数据从x+1序号开始。
    在这里插入图片描述

4次挥手

  • 先用老师下课场景来理解:
    1、客户端:老师,下课了。
    2、服务器端:好,我知道了,我说完这点。
    3、服务器端:好了,说完了,下课吧。
    4、客户端:谢谢老师,老师再见!

  • 4次挥手的具体步骤如下:
    客户端在发出关闭请求后,自己进行终止等待状态。
    服务器端收到客户端的关闭请求后,进入关闭等待状态,并给客户端数据进行确认;
    然后服务器端发出关闭请求指令,并验证客户端的身份,客户端给回确认。服务器在收到确认后进行最后确认状态,关闭连接。而客户端必须等待2MSL的时间后关闭连接。
    在这里插入图片描述

面试问题:为什么“握手”是三次,“挥手”却要四次?

  • TCP建立连接时之所以只需要"三次握手",是因为在第二次"握手"过程中,服务器端发送给客户端的TCP报文是以SYN与ACK作为标志位的。SYN是请求连接标志,表示服务器端同意建立连接;ACK是确认报文,表示告诉客户端,服务器端收到了它的请求报文。即SYN建立连接报文与ACK确认接收报文是在同一次"握手"当中传输的,所以"三次握手"不多也不少,正好让双方明确彼此信息互通。

  • TCP释放连接时之所以需要“四次挥手”,是因为FIN释放连接报文与ACK确认接收报文是分别由第二次和第三次"握手"传输的。释放连接时,被动方服务器,突然收到主动方客户端释放连接的请求时并不能立即释放连接,因为还有必要的数据需要处理,所以服务器先返回ACK确认收到报文,经过CLOSE-WAIT阶段准备好释放连接之后,才能返回FIN释放连接报文。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值