zoukankan      html  css  js  c++  java
  • 【网络】TCP三次握手

    在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
    第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
    第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器 进入SYN_RECV状态;
    第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入 ESTABLISHED状态,完成三次握手。
    通过这样的三次握手,客户端与服务端建立起可靠的双工的连接,开始传送数据。
    三次握手的最主要目的是保证连接是双工的,可靠更多的是通过重传机制来保证的。
    结果乙带着耳机听歌呢,根本没听到,没反应。甲心里想:跟你说话也没个音,不跟你说了,沟通失败。说明乙接受不到甲传过来的信息的情况下沟通肯定是失败的。
    如果乙听到了甲说的话,那么第一次对话成功,接下来进行第二次对话。第二次对话:
    如果乙听到了甲的话,做出了正确的应答,并且还进行了反问:我吃饭了,你呢?那么第二次握手成功。
    通过前两次对话证明了乙能够听懂甲说的话,并且能做出正确的应答。
    接下来进行第三次对话。第三次对话:
    如果甲也做出了正确的应答:我也吃了。那么第三次对话成功,两人已经建立起了顺畅的沟通渠道,接下来开始持续的聊天。
    通过第二次和第三次的对话证明了甲能够听懂乙说的话,并且能做出正确的应答。
    为了保证服务端能收接受到客户端的信息并能做出正确的应答而进行前两次(第一次和第二次)握手,
    为了保证客户端能够接收到服务端的信息并能做出正确的应答而进行后两次(第二次和第三次)握手。
    ------------------------------------------------------------第一次:甲 – 乙,乙反应
    第二次:乙反应正确,乙 – 甲,第三次:甲正确反应,成功------------------------------------------------------------
    感谢阅读,一起努力呗!
  • 相关阅读:
    python json模块(15)
    python random模块(14)
    python time模块(13)
    python sys模块(12)
    python zip函数(11)
    python递归函数(10)
    python 浅拷贝和深拷贝(9)
    python is 和 == 区别(8)
    python 可变数据类型和不可变数据类型(7)
    python局部变量和全局变量(6)
  • 原文地址:https://www.cnblogs.com/jennyhui/p/3930468.html
Copyright © 2011-2022 走看看