握手协议

合集下载

SSLTLS协议中的握手过程详解

SSLTLS协议中的握手过程详解

SSLTLS协议中的握手过程详解SSL/TLS协议中的握手过程详解SSL/TLS(安全套接层/传输层安全)协议是一种用于保护网络通信安全的加密协议。

在网络传输中,客户端和服务器之间的握手过程是建立安全通信的基础。

本文将详细解释SSL/TLS协议中的握手过程,以帮助读者更好地理解和应用该协议。

1. 握手协议介绍握手协议是SSL/TLS协议的重要组成部分,用于验证服务器的身份,并协商加密算法和密钥。

握手协议的主要目的是建立安全通道,确保通信的保密性、完整性和可信性。

2. 握手过程概述SSL/TLS握手过程包括以下步骤:2.1 客户端发送ClientHello在握手开始时,客户端向服务器发送ClientHello消息,包含了支持的SSL/TLS版本、加密算法和压缩方法等信息。

此消息允许服务器选择合适的参数进行后续握手协商。

2.2 服务器发送ServerHello服务器收到ClientHello消息后,选择合适的加密算法和相关参数,并向客户端发送ServerHello消息。

ServerHello消息包含服务器选择的SSL/TLS版本、加密算法和密钥等信息。

2.3 服务器发送Certificate服务器发送Certificate消息,将服务器的公钥证书发送给客户端。

客户端可以使用该证书验证服务器的身份,并获取服务器的公钥用于后续的密钥协商。

2.4 服务器发送ServerKeyExchange(可选)在某些情况下,服务器可能会发送ServerKeyExchange消息,用于向客户端发送临时公钥或其他参数,以供密钥协商使用。

这一步骤并非必需,只有在服务器需要向客户端提供额外信息时才会发送。

2.5 服务器发送ServerHelloDone服务器发送ServerHelloDone消息,通知客户端握手过程的结束。

客户端接收到该消息后,即可开始验证服务器的证书和进行密钥协商。

2.6 客户端发送ClientKeyExchange客户端生成一个随机的PreMaster Secret,并使用服务器的公钥加密,并将其发送给服务器,即ClientKeyExchange消息。

xpm_cdc_handshake原理

xpm_cdc_handshake原理

xpm_cdc_handshake原理XPM_CDC握手协议是一种基于密码学技术的安全协议,用于在客户端(Client)和服务器端(Server)之间执行握手过程以建立安全连接。

该协议基于Diffie-Hellman密钥交换算法和数字签名算法,确保密钥的安全传输和身份认证。

下面是XPM_CDC握手协议的原理解释:1.客户端向服务器发送握手请求:客户端向服务器发送一个随机数作为握手请求并请求服务器返回该随机数的签名。

这个请求的目的是验证服务器的身份,并确保服务器具有对应的私钥。

2.服务器回应握手请求:服务器收到客户端的握手请求后,生成一个随机数作为回应,并用自己的私钥对该随机数进行签名。

同时,服务器还向客户端发送自己的公钥,用于后续密钥交换的过程,以及其他必要的握手信息。

3.客户端验证服务器身份:客户端收到服务器的回应后,首先验证服务器的身份。

客户端使用服务器发送的公钥对服务器的签名进行验证,以确保该签名是由服务器私钥生成的。

如果验证通过,客户端可以信任服务器的身份,并继续握手过程。

4. 密钥协商:在验证服务器的身份后,客户端生成一个临时的Diffie-Hellman公私钥对,并使用服务器的公钥进行加密和传输。

服务器使用自己的私钥解密客户端发送的数据,并生成一个临时的Diffie-Hellman公私钥对。

然后,服务器使用客户端的公钥对自己的公钥进行加密和传输。

通过这个过程,客户端和服务器都拥有对方的公钥,并且都生成了相同的共享密钥。

5.握手完成:客户端和服务器通过交换加密后的数据,生成了一个共享的密钥,并且都验证了对方的身份。

此时,握手完成,客户端和服务器可以使用该共享密钥加密和解密后续的通信数据。

总结起来,XPM_CDC握手协议的原理是:客户端向服务器发送握手请求,并验证服务器的身份。

服务器回应握手请求,并验证客户端的身份。

然后,客户端和服务器通过交换加密后的数据,生成一个共享的密钥,握手完成。

显卡握手协议

显卡握手协议

显卡握手协议引言在计算机领域中,显卡是一种专门用于图形处理的硬件设备。

它的作用是将计算机处理的图形数据转换为可视化输出,供显示器展示。

显卡是一种关键的硬件组件,对于图形渲染和计算性能有着重要影响。

显卡握手协议则是指显卡与其他硬件设备之间进行通信时所遵循的协议。

显卡握手协议的重要性显卡握手协议是显卡与其他硬件设备之间进行通信的基础。

它的主要目的是确保不同设备之间能够正确地进行数据传输和交互。

如果显卡握手协议不合理或不完善,就会导致设备之间的通信出现错误或故障,从而影响计算机的整体性能。

不同类型的显卡握手协议根据不同的硬件架构和通信需求,存在着多种不同类型的显卡握手协议。

下面将介绍几种常见的显卡握手协议。

1. VGA 握手协议VGA(Video Graphics Array)是一种早期的显卡握手协议,它使用模拟信号传输图像数据。

在握手过程中,VGA显卡与显示器之间通过一组指定的电压、时序和传输协议来进行通信。

VGA握手协议通常包括了探测显示器的能力、支持的分辨率和刷新率等信息。

2. DVI 握手协议DVI(Digital Visual Interface)是一种现代化的数字化接口标准,逐渐替代了VGA接口。

DVI握手协议支持数字信号传输,并且提供了更高的图像质量。

在握手过程中,显卡和显示器之间通过交换握手信号来协商最佳的显示模式和分辨率,以确保图像能够以最佳质量展示。

3. HDMI 握手协议HDMI(High-Definition Multimedia Interface)是一种用于音频和视频传输的数字接口标准。

HDMI握手协议兼容DVI接口,并且在音频传输上提供了额外的支持。

显卡和显示器通过HDMI握手过程来确定音频和视频传输的参数,以实现高清音视频的传输和输出。

4. DisplayPort 握手协议DisplayPort是一种新一代的数字接口标准,具有更高的数据传输速度和更广泛的适配性。

DisplayPort握手协议允许显卡和显示器之间进行动态的参数协商,以确保最佳的图像和音频输出质量。

串口通信握手协议 eventchar

串口通信握手协议 eventchar

串口通信握手协议eventchar串口通信握手协议通常用于确保数据传输的可靠性和稳定性。

在串口通信中,握手协议可以分为以下几种:1. XON/XOFF 握手协议:这是一种流控制协议,用于在数据传输过程中控制发送方的速度。

当接收方缓冲区满时,会向发送方发送一个XOFF 字符(ASCII 码为19),告诉发送方暂停发送数据。

当接收方处理完缓冲区中的数据后,会向发送方发送一个XON 字符(ASCII 码为17),告诉发送方可以继续发送数据。

2. RTS/CTS 握手协议:这是一种硬件流控制协议,用于在数据传输过程中防止发送方和接收方的数据丢失。

当发送方准备好发送数据时,会向接收方发送一个RTS(Request To Send)信号,请求发送数据。

接收方收到RTS 信号后,会向发送方回复一个CTS(Clear To Send)信号,表示可以开始发送数据。

在数据传输过程中,如果接收方无法处理数据,会向发送方发送一个RTS 信号,请求暂停发送数据。

3. DTR/DSR 握手协议:这是一种全双工握手协议,用于在数据传输过程中确保双方都可以发送和接收数据。

当双方都准备好进行全双工通信时,DTR(Data Terminal Ready)和DSR (Data Set Ready)信号都会处于高电平状态。

在数据传输过程中,如果一方需要暂时停止通信,可以将DTR 或DSR 信号设置为低电平。

4. SDLC(Synchronous Data Link Control)握手协议:这是一种同步数据链路控制协议,用于在数据传输过程中确保数据的可靠传输。

SDLC 协议包括多个子层,如物理层、链路层等。

在链路层,SDLC 使用零比特填充、起始和终止符等技术来确保数据的可靠传输。

5. HDLC(High-Level Data Link Control)握手协议:这是一种高级数据链路控制协议,用于在数据传输过程中实现无差错、有序、无重复的传输。

ssl协议的组成

ssl协议的组成

ssl协议的组成SSL协议(Secure Socket Layer)由以下几个组成部分:1. 握手协议(Handshake Protocol): 握手协议用于建立安全连接。

当客户端请求与服务器建立安全连接时,握手协议会进行一系列的步骤来确认双方的身份、选择加密算法、协商会话密钥等。

2. 记录协议(Record Protocol): 记录协议负责对传输的数据进行加密和认证。

它将待传输的数据划分为小块,并为每个块添加头部信息和尾部校验码(MAC),然后使用加密算法对数据进行加密,并使用MAC来验证数据的完整性。

3. 密钥交换算法(Key Exchange Algorithms): 密钥交换算法用于在握手阶段协商会话密钥。

常用的密钥交换算法包括RSA、Diffie-Hellman和椭圆曲线密码学。

4. 加密算法(Encryption Algorithms): 加密算法用于对传输的数据进行加密。

常用的加密算法包括对称加密算法(如AES、DES)和非对称加密算法(如RSA、DSA)。

5. 校验算法(Integrity Algorithms): 校验算法用于验证传输数据的完整性,防止数据在传输过程中被篡改。

常用的校验算法包括HMAC(Hash Message Authentication Code)和SHA (Secure Hash Algorithm)。

6. 数字证书(Digital Certificates): 数字证书是由可信任的证书颁发机构(CA)签发的,用于验证服务器和客户端的身份。

数字证书包含有证书所有者的公钥、签名等信息,用于确保通信中的安全、信任和完整性。

这些组成部分共同构成了SSL协议,确保了网络通信的安全性和可靠性。

握手协议(HandshakeProtocol)

握手协议(HandshakeProtocol)

握⼿协议(HandshakeProtocol)1、概念通讯设备之间任何实际应⽤信息的传送总是伴随着⼀些控制信息的传递,它们按照既定的通讯协议⼯作,将应⽤信息安全、可靠、⾼效地传送到⽬的地。

握⼿协议就是在两个设备在通信之前,要互相的认识⼀下,然后才能互相传送。

在计算机的概念中,握⼿(Handshaking)预⽰着硬件或软件确⽴或维持两个机器或程序在同步中。

握⼿经常需要在两个系统之间的信息或数据的交换。

在两台计算机之间的硬件握⼿信号被电压⽔平或在电线中的脉冲携带。

软件握⼿有很多握⼿协议。

基本上,这个握⼿协议发送⼀个"hello"信息给接收系统,然后获得⼀个 "ok" 响应。

当这个在两个系统之间的通信完成后,⼀个 "finish"信息应当被发送和被双⽅的系统证实。

2、原理(1)、The master generates the VALID signal to indicate when the data is available.(2)、The slave generates the READY signal to indicate that it accepts the data.(3)、Transfer occurs only when both the VALID and READY signals are HIGH.(4)、RESPONSE signal indicates one transaction is completed.3、valid_ready协议详解:(1)、当sender端有数据要发送时,将valid置1,并保证数据有效,可以不⽤检测ready;(2)、当receiver模块允许接受数据,将ready置1,可以不⽤检测valid是否有效;(3)、在任⼀个cycle,如果valid=1 && ready=1,则接受端将会在紧接着的下⼀个clock posedge将数据采⼊,并通过ready信号来表⽰⾃⼰是否可以接受新的数据;(4)、在任⼀个cycle,如果valid=1 && ready=1,如果发送端仍有数据需要发送,则会在下⼀个clock posedge将新数据放⼊data bus,来表⽰⾃⼰有新的数据需要发送。

握手挥手协议

握手挥手协议1. 引言握手挥手协议,又称为握手协议和挥手协议,是计算机网络中常用的通信协议。

它用于建立和终止网络连接,确保通信双方能够正确地进行数据传输。

本文将深入探讨握手挥手协议的定义、原理以及常见的应用场景。

2. 握手协议的定义及原理2.1 定义握手协议是指在建立网络连接时,通信双方通过交换特定的信号或数据进行互相识别、确认和验证的过程。

2.2 原理握手协议的原理基于以下几个关键步骤: 1. 建立连接请求:一个通信节点向另一个节点发送连接请求。

2. 确认连接请求:接收到连接请求的节点确认请求,并发送确认信号给请求方。

3. 验证身份:双方进行身份验证,确保连接的双方是授权的节点。

4. 协商通信参数:双方协商通信参数,如加密算法、压缩格式等。

5. 连接建立:成功验证身份和协商参数后,建立可靠的连接。

3. 握手协议的应用场景握手协议广泛应用于各种网络通信场景,以下是几个常见的应用场景:3.1 互联网浏览器与服务器的握手当用户在浏览器中输入网址访问一个网站时,浏览器会向服务器发送连接请求,请求获取网页内容。

服务器接收到请求后进行验证和身份确认,并与浏览器协商通信参数。

一旦握手成功,服务器便可向浏览器发送所请求的网页内容。

这个过程中,握手协议确保了用户与服务器之间的安全连接。

3.2 无线局域网的握手在无线局域网中,设备之间需要进行握手以建立连接。

当一个设备想要加入一个局域网时,它会广播连接请求。

其他设备接收到请求后,进行验证和协商,最终建立连接。

这个过程中的握手协议确保了设备能够正常地进行无线通信。

3.3 蓝牙设备的握手当两个蓝牙设备之间想要建立连接时,它们需要进行握手过程。

设备之间通过广播的方式发送握手信号,对方设备接收到信号后进行身份验证和参数协商,最终成功建立蓝牙连接。

这个握手过程确保了蓝牙设备之间的安全通信。

3.4 安全通信的握手在涉及加密的通信场景中,握手协议起到了重要的作用。

双方通过握手协议交换公钥、验证身份和协商加密算法等信息,确保双方建立起安全的通信连接。

ssl握手协议

ssl握手协议SSL握手协议。

SSL握手协议是建立在传输层安全协议(TLS)之上的一种安全协议,用于在客户端和服务器之间建立安全连接。

在SSL握手过程中,客户端和服务器之间会进行一系列的通信和验证,以确保双方能够安全地交换数据。

本文将对SSL握手协议的过程和相关内容进行详细介绍。

首先,SSL握手协议的过程可以分为以下几个步骤,客户端发送握手请求、服务器回应握手请求、双方协商加密算法和密钥、双方验证证书、客户端和服务器生成会话密钥。

在这个过程中,客户端和服务器会进行一系列的加密和解密操作,以确保通信过程中的数据安全性。

在SSL握手协议中,客户端和服务器之间的通信是基于非对称加密算法的。

客户端首先向服务器发送一个握手请求,请求建立安全连接。

服务器在收到握手请求后,会回应一个握手确认,表明服务器愿意与客户端建立安全连接。

然后,双方会协商使用的加密算法和密钥,以确保数据在传输过程中不会被窃取或篡改。

在SSL握手协议中,双方还会进行证书的验证。

服务器会向客户端发送自己的数字证书,客户端会对服务器的证书进行验证,以确保服务器的身份是合法的。

同时,客户端也会向服务器发送自己的数字证书,服务器也会对客户端的证书进行验证。

通过证书的验证,双方可以确保彼此的身份是合法的,从而建立起安全的通信连接。

最后,在SSL握手协议的最后阶段,客户端和服务器会生成会话密钥,用于后续通信过程中的数据加密和解密。

会话密钥是在握手过程中协商生成的,只有客户端和服务器知道,用于保护通信过程中的数据安全性。

总的来说,SSL握手协议是建立在TLS之上的一种安全协议,用于在客户端和服务器之间建立安全连接。

在握手过程中,客户端和服务器会进行一系列的通信和验证,以确保双方能够安全地交换数据。

通过SSL握手协议,可以保证通信过程中的数据安全性,防止数据被窃取或篡改。

SSL握手协议在网络安全领域起着非常重要的作用,是保障网络通信安全的重要手段之一。

五次握手 协议

五次握手协议五次握手协议是TCP/IP协议族中用于建立可靠的连接的一种协议。

TCP (Transmission Control Protocol) 是一种面向连接的协议,它提供可靠的数据传输。

在进行网络通信时,客户端与服务器之间需要先建立连接,然后才能进行数据的传输。

而建立连接的过程就是通过握手来完成的。

五次握手协议是指在建立连接时,需要进行五次握手才能完成连接的建立。

第一次握手:客户端向服务器发送一个SYN(同步)包,其中包含初始序列号(ISN)。

第二次握手:服务器收到客户端发送的SYN包后,向客户端发送一个SYN+ACK(同步确认)包,其中包含确认号(ACK)和自己的初始序列号。

第三次握手:客户端收到服务器发送的SYN+ACK包后,向服务器发送一个确认包ACK,其中包含确认号。

第四次握手:服务器收到客户端发送的ACK包后,连接建立完毕,可以开始进行数据传输。

第五次握手:在通信完成后,当一方想要关闭连接时,需要进行第五次握手。

关闭连接时,发送方发送一个FIN(结束)包,并等待对方的ACK包。

对方收到FIN包后,发送一个ACK包作为确认,然后向发送方发送一个FIN+ACK包。

最后发送方再发送一个ACK 包进行确认。

这样,连接就成功关闭了。

五次握手协议的设计主要是为了确保连接的可靠性和完整性。

通过五次握手,双方可以互相确认对方的能力和准备就绪状态,从而建立起可靠的连接。

握手过程中的每一步都起到了重要的作用,确保了数据的可靠传输。

不过,需要注意的是,五次握手协议只是在连接建立和关闭时才会进行,而在连接的数据传输过程中,并不需要进行握手。

握手的目的是为了确保连接的可靠性,而在数据传输过程中,TCP协议本身已经提供了可靠的传输机制,包括数据分包、序列号、确认应答等机制,可以保证数据的正确传输和顺序。

总结起来,五次握手协议是TCP协议用于建立可靠连接的一种协议。

通过五次握手,双方可以确认对方的能力和准备就绪状态,建立起可靠的连接。

两次握手协议

两次握手协议关键信息项合同名称:两次握手协议合同合同双方:甲方(发起方)、乙方(接收方)协议目的:明确双方在特定操作中采用两次握手协议的规则和流程协议内容:握手步骤:明确两次握手的具体步骤协议确认:如何确认协议的达成协议有效期:协议的有效时间范围违约条款:违约的处理方式和赔偿要求争议解决:争议处理机制和法律适用合同签署:签署地点、时间和签署人合同甲方(发起方):_________________________乙方(接收方):_________________________合同名称:两次握手协议合同协议目的:为了明确甲乙双方在数据传输、连接建立等操作中采用两次握手协议的规则和流程,确保双方在执行过程中能够有效沟通与配合,达成一致的操作标准。

协议内容:握手步骤:第一次握手:发起请求:甲方向乙方发出连接请求或数据传输请求。

接收确认:乙方接收到请求后,发送确认响应给甲方。

第二次握手:再次确认:甲方在收到乙方的确认响应后,发送最终确认信号或数据。

完成确认:乙方接收到最终确认信号后,确认连接或数据传输成功,并返回最终确认信息给甲方。

协议确认:双方需在协议中规定确认方式,包括但不限于电子邮件、书面确认或系统消息。

确认的时间和方式应在协议中明确规定,以确保双方对协议的达成有清晰的记录。

协议有效期:本协议自双方签署之日起生效,有效期为 ___________ 年。

协议有效期届满前,双方可协商续签或修改协议。

违约条款:若一方未按约定执行两次握手协议,另一方有权要求违约方承担违约责任,包括但不限于赔偿损失、重新进行协议等。

违约方需在收到违约通知后 ___________ 天内采取补救措施。

争议解决:本协议在履行过程中如发生争议,双方应友好协商解决。

若协商不成,争议应提交至甲方所在地人民法院处理。

本协议适用中华人民共和国法律。

合同签署:签署地点:_________________________签署时间:_________________________甲方签署人:_________________________乙方签署人:_________________________甲方(发起方):_________________________乙方(接收方):_________________________签署日期:_________________________这份合同旨在提供两次握手协议的清晰框架,确保双方明确各自的权利与义务。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

TCP/IP协议三次握手与四次握手流程解析
TCP/IP协议三次握手与四次握手流程解析
一、TCP报文格式
TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。

下面是TCP报文格式图:
图1 TCP报文格式
上图中有几个字段需要重点介绍下:
(1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。

(2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。

(3)标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义如下:
(A)URG:紧急指针(urgent pointer)有效。

(B)ACK:确认序号有效。

(C)PSH:接收方应该尽快将这个报文交给应用层。

(D)RST:重置连接。

(E)SYN:发起一个新连接。

(F)FIN:释放一个连接。

需要注意的是:
(A)不要将确认序号Ack与标志位中的ACK搞混了。

(B)确认方Ack=发起方Req+1,两端配对。

二、三次握手
所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。

在socket 编程中,这一过程由客户端执行connect来触发,整个流程如下图所示:
图2 TCP三次握手
(1)第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。

(2)第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。

(3)第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server 检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server 进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。

SYN攻击:
在三次握手过程中,Server发送SYN-ACK之后,收到Client的ACK之前的TCP连接称为半连接(half-open connect),此时Server处于SYN_RCVD状态,当收到ACK后,Server转入ESTABLISHED状态。

SYN攻击就是Client在短时间内伪造大量不存在的IP地址,并向Server不断地发送SYN包,Server回复确认包,并等待Client的确认,由于源地址是不存在的,因此,Server需要不断重发直至超时,这些伪造的SYN包将产时间占用未连接队列,导致正常的SYN
请求因为队列满而被丢弃,从而引起网络堵塞甚至系统瘫痪。

SYN攻击时一种典型的DDOS攻击,检测SYN攻击的方式非常简单,即当Server上有大量半连接状态且源IP地址是随机的,则可以断定遭到SYN攻击了,使用如下命令可以让之现行:
#netstat -nap | grep SYN_RECV
三、四次挥手
三次握手耳熟能详,四次挥手估计就,所谓四次挥手(Four-Way Wavehand)
即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。

在socket编程中,这一过程由客户端或服务端任一方执行close来触发,整个流程如下图所示:
图3 TCP四次挥手
由于TCP连接时全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。

首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭,上图描述的即是如此。

(1)第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。

(2)第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT 状态。

(3)第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。

(4)第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。

上面是一方主动关闭,另一方被动关闭的情况,实际中还会出现同时发起主动关闭的情况,具体流程如下图:
图4 同时挥手
流程和状态在上图中已经很明了了,在此不再赘述,可以参考前面的四次挥手解析步骤。

四、附注
关于三次握手与四次挥手通常都会有典型的面试题,在此提出供有需求的XDJM们参考:
(1)三次握手是什么或者流程?四次握手呢?答案前面分析就是。

(2)为什么建立连接是三次握手,而关闭连接却是四次挥手呢?
这是因为服务端在LISTEN状态下,收到建立连接请求的SYN报文后,把ACK 和SYN放在一个报文里发送给客户端。

而关闭连接时,当收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,己方也未必全部数据都发送给对方了,所以己方可以立即close,也可以发送一些数据给对方后,再发送FIN 报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送。

相关文档
最新文档