tcp的三次握手和4次挥手
2017-09-03 17:02
281 查看
前言
tcp/ip 协议是我们平常通信用到的最多的协议,像微信,QQ,等网络通信都是用的tcp,(局域网用的是udp),tcp在通信过程都是遵循一定的协议盒规律的,我们今天就简单的说一下,他们是如果建立联系和结束通话的。
三次握手过程(建立练习)
:第一次握手:host1发送一个TCP标志位SYN=1、ACK=0的数据包给host2,并随机会产生一个Sequence number=3233.当host2接收到这个数据后,host2由SYN=1可知客户端是想要建立连接;
第二次握手:host2要对客户端的联机请求进行确认,向host1发送应答号ACK=1、SYN=1、
确认号Acknowledge number=3234,此值是host1的序列号加1,还会产生一个随机的序列号Sequence number=36457,这样就告诉host1可以进行连接;
第三次握手:host1收到数据后检查Acknowledge number是否是3233+1的值,以及ACK的值是否为1,若为1,host1会发送ACK=1、确认号码Acknowledge number=36457,告诉host2,你的请求连接被确认,连接可以建立。
四次挥手过程:(结束通话)
第一次挥手:当传输的数据到达尾部时,host1向host2发送FIN=1标志位;可理解成,host1向host2说,我这边的数据传送完成了,我准备断开了连接;
第二次挥手:因TCP的连接是全双工的双向连接,关闭也是要从两边关闭;当host2收到host1发来的FIN=1的标志位后,host2不会立刻向host1发送FIND=1的请求关闭信息,而是先向host1发送一个ACK=1的应答信息,表示:你请求关闭的请求我已经收到,但我可能还有数据没有完成传送,你再等下,等我数据传输完成了我就告诉你;
第三次挥手:host2数据传输完成,向host1发送FIN=1,host1收到请求关闭连接的请求后,host1就明白host2的数据已传输完成,现在可以断开连接了,
第四次挥手:host1收到FIND=1后,host1还是怕由于网络不稳定的原因,怕host2不知道他要断开连接,于是向host2发送ACK=1确认信息进行确认,把自己设置成TIME_WAIT状态并启动定时器,如果host2没有收到ACK,host2端TCP的定时器到达后,会要求host1重新发送ACK,当host2收到ACK后,host2就断开连接;当host1等待2MLS(2倍报文最大生存时间)后,没有收到host2的重传请求后,他就知道host2已收到了ACK,所以host1此时才关闭自己的连接。这一点我觉得设计得非常巧妙!
相关文章推荐
- TCP为什么需要三次握手,又为什么需要4次挥手?
- tcp 建立连接的三次握手,以及关闭连接的4次挥手
- TCP三次握手,4次挥手
- TCP为什么需要三次握手,又为什么需要4次挥手?
- TCP连接建立与结束(三次握手与4次挥手)
- TCP协议三次握手和四次挥手
- TCP--三次握手及四次挥手
- Tcp为什么要三次握手四次挥手
- TCP协议中的三次握手和四次挥手(图解)
- 简析TCP的三次握手与四次挥手
- TCP详解(三次握手/四次挥手详解)
- TCP的三次握手(建立连接)和四次挥手(关闭连接)
- TCP的三次握手四次挥手
- TCP的三次握手和四次挥手
- 【计算机网络】TCP三次握手四次挥手
- (转)TCP三次握手四次挥手
- TCP协议的三次握手与四次挥手图解
- TCP协议中的三次握手和四次挥手(图解)
- TCP协议中的三次握手和四次挥手
- TCP 与 UDP 对比,以及 TCP 的三次握手与四次挥手