zoukankan      html  css  js  c++  java
  • TCP的3次握手与4次握手

    为什么连接需要三次握手,断开需要四次握手。


    首先我们知道,TCP协议是去全双工的。可以在发送的同时进行接收数据。
    假定是主机A和主机B进行通信,断开时是A主动断开的。


    1)三次握手:第一次握手表明A可以发数据给B。但是无法保证B发给A的数据可以被收到。所以B也需要发送SYN给A,A对它进行回应,才保证了B也可以发数据给A。
    个人理解可以把三步拆分为四步理解:
    a)主机A给B发送SYN
    b)主机B回复ack --- 这时表明A可以发数据给B
    c)主机B发送SYN给A
    d)主机A回复ack --- 这时表明B也可以发送数据给A
    只不过协议中,把中间两步放在一步进行了。

    2)四次握手,就像下面这样理解:
    a)主机A给B发送FIN,表示对B说“我要断开了”
    b)主机B回复ack进行确认,表示对A说“嗯,我知道了,你可以断开了”
    c)然后B发送FIN给A,表示对A说“A,我也要断开了”
    d)A回复ack进行确认,表示对B说:“嗯,知道了,你断开吧”
    前两步对A进行断开,后两步对B进行断开。
    那么为什么不能把中间两步进行合并呢,因为无法保证被断开的一方的数据已经传送完毕了。

  • 相关阅读:
    wes7配置
    一个很牛逼的工具XueTr
    构造一个好控制一点的长期工作线程
    SmartGit初步使用
    Android开发(一):环境搭建
    zabbix使用短信猫实现报警
    Build Libsvm to dll
    Using OpenCV in VS2012
    My Overlay Icons is Missing
    用Eclipse开发C、C++
  • 原文地址:https://www.cnblogs.com/zizhuocainiao/p/8084680.html
Copyright © 2011-2022 走看看