TCP三次握手和四次挥手

1、TCP提供了面向连接的可靠的字节流服务,是一种端到端的传输层服务。它主要解决两个应用进程之间传输的可靠、有序、无丢失和不重复问题。

与网络层不同的是,网络层提供主机之间的逻辑通信,而传输层提供的是两台主机之间的应用进程之间的逻辑通信。

2、三次握手建立连接:

1)客户机的TCP 首先向服务器的TCP 发送一个连接请求报文段。这个特殊的报文段中不含 应用层数据,其首部中的SYN标志位被置为1 。另外,客户机会随机选择一个起始序号seq = x(连接请求报文不携带数据,但要消耗一个序号)。

2)服务器的TCP 收到连接请求报文段后,如同意建立连接,就向客户机发回确认,并为该 TCP 连接分配TCP 缓存和变量。在确认报文段中, SYN ACK 位都被置为1, 确认号字段的值为 x+ 1, 并且服务器随机产生起始序号seq= y( 确认报文不携带数据,但也要消耗一个序号)。确认报文段同样不包含应用层数据。

3)当客户机收到确认报文段后,还要向服务器给出确认,并且也要给该连接分配缓存和变量。这个报文段的ACK 标志位被置1, 序号字段为x+ 1, 确认号字段ack=y+ 1 。该报文段可以携带数据,若不携带数据则不消耗序号。

上述三步完成之后,TCP就成功的建立了连接,之后就可以传输应用层数据。TCP提供的是一种全双工通信,服务器的资源是在第二次握手时分配的,客户端的资源是在第三次握手时分配的。

3、为什么是三次握手而不是两次或四次?

如果A发送的一个连接请求在网络结点的时间滞留,以至于延误到连接释放的某个时间才到达B。B收到这个请求的报文段后,误以为A又发出了一次新的请求连接,于是向A发送确认报文段,同意建立连接。但是由于A并没有发出新的请求连接,所以A不会理睬的确认也不会向B发送数据。但B却认为连接已经建立,一直等待A发来数据。B的资源就浪费了。

4、四次挥手释放连接:

1)客户端打算关闭连接时,向服务器端发送一个连接释放报文段,然后停止发送数据。报文段中FIN=1,代表数据发送完毕,其序列号seq=u,它等于前面已传送数据最后一个字节的seq+1。
2)服务端收到客户端的释放报文段后发出确认,确认号ACK=u+1,服务端自己的确认报文段的序列号为v。至此,客户端到服务器这个方向上的连接就释放了,TCP连接处于半关闭状态。但是服务器仍然可以向客户端发送数据。
3)如果服务器已经没有要发送到客户端的数据,服务器就发送释放报文段FIN=1。
4)客户端在收到服务器的释放报文段后,需要确认。在确认报文段中ACK = v+1。此时,TCP连接还未释放,经过2MSL后连接才关闭。

5、为什么是四次挥手?
因为TCP的通信是全双工通信。释放连接需要两端都关闭连接才算是真正断开连接。

要实现可靠的连接关闭,客户端发送结束报文FIN,收到服务器端的确认后,客户端到服务器的连接关闭,客户端不能再向服务器发送数据。但是服务器还可以向客户端发送数据,客户端还可以接收数据。只有当服务器发送结束报文FIN,收到客户端的确认后,才真正断开连接。

 

 

 

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值