赞
踩
声明: 本文不保证每个定义绝对严谨, 只是通过更加通俗易懂的语言来让阅读者更好的理解三次握手及四次挥手的过程!!!
首先我们来明白几个定义:
1. FIN: 请求关闭报文
2. SYN: 请求建立连接
3. ACK: 确认收到
4. MSL: 最大报文生存时间
三次握手:
三次握手理解起来比较简单, 说白了就是一个确认双方都能发送且都能接收的一个过程.
第一步: 客户端想要与服务器建立连接, 于是向服务器发送SYN报文请求连接.
第二步: 服务器收到客户端的连接请求之后, 服务器向客户端发送确认报文ACK及请求连接报文SYN
第三步: 客户端收到服务器的连接请求, 向服务器发送确认报文ACK
然后我们用通俗易懂的话来说一下这三步都在做什么:
第一步让服务器知道客户端能够发送, 第二步让客户端知道服务器能够接收并且能够发送, 第三步在服务器接收到ACK之后,服务器知道了客户端能够发送, 至此双方都能确认了对方能够收和发, 接下来就是愉快的互相收发数据的过程啦~
四次挥手:
四次挥手是一个双方断开连接的过程, 这个过程中大家要理解的点有三个:
1. 为什么第二次挥手和第三次挥手不能合并为一次
2. 第二次挥手和第三次挥手之间的等待是在干什么
3. 主动发起方为什么要在第四次挥手之后等待2MSL的时间
我们逐步来解释:
第一步: 客户端做为主动发起方想要与服务器断开连接, 所以向服务器发送FIN报文
第二步: 服务器收到客户端的FIN报文, 向客户端发送ACK确认报文, 也就是说服务器告诉客户端说我收到你的关闭请求了
第三步: 服务器等待时间结束之后, 向客户端发送FIN报文, 告诉说客户端我请求关闭
第四步: 客户端收到服务器的FIN报文之后, 向服务器发送ACK确认报文, 告诉服务器说我也收到了你的关闭请求了. 此
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。