理解TCP协议的三次握手和四次挥手

通俗易懂理解TCP协议三次握手和四次挥手及其常见问题 TCP协议三次握手和四次挥手形象比喻三次握手四次挥手 形象比喻 三次握手:将小明当作客户端,小红当作服务器端,两人写信告白: **第一次握手:**小明告诉小红:我喜欢你。 **第二次握手:**小红告诉小明:我知道了,我也喜欢你。 此时小红并不确定小明是否收到了告白信,直到 **第三次握手:**小明回信:我也知道了,我们在一起吧。此时才真正建立连接。 四次挥手:恋爱之后,小明和小红煲电话粥。依旧将小明当作客户端,小红当作服务器端。小明跟小红说话, **第一次挥手:**小明说:我说完了。 **第二次挥手:** 阅读详情

原文链接:https://github.com/jawil/blog/issues/14

HTTP连接

HTTP协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用。
HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。
1)在HTTP 1.0中,客户端的每次请求都要求建立一次单独的连接,在处理完本次请求后,就自动释放连接。

2)在HTTP 1.1中则可以在一次连接中处理多个请求,并且多个请求可以重叠进行,不需要等待一个请求结束后再发送下一个请求。

由于HTTP在每次请求结束后都会主动释放连接,因此HTTP连接是一种“短连接”,要保持客户端程序的在线状态,需要不断地向服务器发起连接请求。通常 的做法是即时不需要获得任何数据,客户端也保持每隔一段固定的时间向服务器发送一次“保持连接”的请求,服务器在收到该请求后对客户端进行回复,表明知道 客户端“在线”。若服务器长时间无法收到客户端的请求,则认为客户端“下线”,若客户端长时间无法收到服务器的回复,则认为网络已经断开。

SOCKET原理

套接字(socket)概念

套接字(socket)是通信的基石,是支持TCP/IP协议的网络通信的基本操作单元。它是网络通信过程中端点的抽象表示,包含进行网络通信必须的五种信息:连接使用的协议,本地主机的IP地址,本地进程的协议端口,远地主机的IP地址,远地进程的协议端口。
应用层通过传输层进行数据通信时,TCP会遇到同时为多个应用程序进程提供并发服务的问题。多个TCP连接或多个应用程序进程可能需要通过同一个 TCP协议端口传输数据。为了区别不同的应用程序进程和连接,许多计算机操作系统为应用程序与TCP/IP协议交互提供了套接字(Socket)接口。应 用层可以和传输层通过Socket接口,区分来自不同应用程序进程或网络连接的通信,实现数据传输的并发服务。

建立socket连接

建立Socket连接至少需要一对套接字,其中一个运行于客户端,称为ClientSocket ,另一个运行于服务器端,称为ServerSocket 。
套接字之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。
服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求。
客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。
连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发 给客户端,一旦客户端确认了此描述,双方就正式建立连接。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。

SOCKET连接与TCP连接

创建Socket连接时,可以指定使用的传输层协议,Socket可以支持不同的传输层协议(TCP或UDP),当使用TCP协议进行连接时,该Socket连接就是一个TCP连接。

Socket连接与HTTP连接

由于通常情况下Socket连接就是TCP连接,因此Socket连接一旦建立,通信双方即可开始相互发送数据内容,直到双方连接断开。但在实际网 络应用中,客户端到服务器之间的通信往往需要穿越多个中间节点,例如路由器、网关、防火墙等,大部分防火墙默认会关闭长时间处于非活跃状态的连接而导致 Socket 连接断连,因此需要通过轮询告诉网络,该连接处于活跃状态。
而HTTP连接使用的是“请求—响应”的方式,不仅在请求时需要先建立连接,而且需要客户端向服务器发出请求后,服务器端才能回复数据。
很多情况下,需要服务器端主动向客户端推送数据,保持客户端与服务器数据的实时与同步。此时若双方建立的是Socket连接,服务器就可以直接将数 据传送给客户端;若双方建立的是HTTP连接,则服务器需要等到客户端发送一次请求后才能将数据传回给客户端,因此,客户端定时向服务器端发送连接请求, 不仅可以保持在线,同时也是在“询问”服务器是否有新的数据,如果有就将数据传给客户端。TCP(Transmission Control Protocol) 传输控制协议

TCP是什么?

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。

具体的关于TCP是什么,我不打算详细的说了;当你看到这篇文章时,我想你也知道TCP的概念了,想要更深入的了解TCP的工作,我们就继续。它只是一个超级麻烦的协议,而它又是互联网的基础,也是每个程序员必备的基本功。首先来看看OSI的七层模型:
这里写图片描述

我们需要知道TCP工作在网络OSI的七层模型中的第四层——Transport层,IP在第三层——Network层,ARP在第二层——Data Link层;在第二层上的数据,我们把它叫Frame,在第三层上的数据叫Packet,第四层的数据叫Segment。 同时,我们需要简单的知道,数据从应用层发下来,会在每一层都会加上头部信息,进行封装,然后再发送到数据接收端。这个基本的流程你需要知道,就是每个数据都会经过数据的封装和解封装的过程。 在OSI七层模型中,每一层的作用和对应的协议如下:
这里写图片描述

TCP头部

其中 ACK SYN 序号 这三个部分在以下会用到,它们的介绍也在下面。
这里写图片描述

上面就是TCP协议头部的格式,由于它太重要了,是理解其它内容的基础,下面就将每个字段的信息都详细的说明一下。

  • Source Port和Destination Port:分别占用16位,表示源端口号和目的端口号;用于区别主机中的不同进程,而IP地址是用来区分不同的主机的,源端口号和目的端口号配合上IP首部中的源IP地址和目的IP地址就能唯一的确定一个TCP连接;

  • Sequence Number:用来标识从TCP发端向TCP收端发送的数据字节流,它表示在这个报文段中的的第一个数据字节在数据流中的序号;主要用来解决网络报乱序的问题;

  • Acknowledgment Number:32位确认序列号包含发送确认的一端所期望收到的下一个序号,因此,确认序号应当是上次已成功收到数据字节序号加1。不过,只有当标志位中的ACK标志(下面介绍)为1时该确认序列号的字段才有效。主要用来解决不丢包的问题;

  • Offset:给出首部中32 bit字的数目,需要这个值是因为任选字段的长度是可变的。这个字段占4bit(最多能表示15个32bit的的字,即4*15=60个字节的首部长度),因此TCP最多有60字节的首部。然而,没有任选字段,正常的长度是20字节;

  • TCP Flags:TCP首部中有6个标志比特,它们中的多个可同时被设置为1,主要是用于操控TCP的状态机的,依次为URG,ACK,PSH,RST,SYN,FIN。每个标志位的意思如下:

URG:此标志表示TCP包的紧急指针域(后面马上就要说到)有效,用来保证TCP连接不被中断,并且督促中间层设备要尽快处理这些数据;

ACK:此标志表示应答域有效,就是说前面所说的TCP应答号将会包含在TCP数据包中;有两个取值:0和1,为1的时候表示应答域有效,反之为0;
PSH:这个标志位表示Push操作。所谓Push操作就是指在数据包到达接收端以后,立即传送给应用程序,而不是在缓冲区中排队;
RST:这个标志表示连接复位请求。用来复位那些产生错误的连接,也被用来拒绝错误和非法的数据包;
SYN:表示同步序号,用来建立连接。SYN标志位和ACK标志位搭配使用,当连接请求的时候,SYN=1,ACK=0;连接被响应的时候,SYN=1,ACK=1;这个标志的数据包经常被用来进行端口扫描。扫描者发送一个只有SYN的数据包,如果对方主机响应了一个数据包回来 ,就表明这台主机存在这个端口;但是由于这种扫描方式只是进行TCP三次握手的第一次握手,因此这种扫描的成功表示被扫描的机器不很安全,一台安全的主机将会强制要求一个连接严格的进行TCP的三次握手;
FIN: 表示发送端已经达到数据末尾,也就是说双方的数据传送完成,没有数据可以传送了,发送FIN标志位的TCP数据包后,连接将被断开。这个标志的数据包也经常被用于进行端口扫描。

  • Window:窗口大小,也就是有名的滑动窗口,用来进行流量控制;这是一个复杂的问题,这篇博文中并不会进行总结的;

暂时需要的信息有:

  • ACK : TCP协议规定,只有ACK=1时有效,也规定连接建立后所有发送的报文的ACK必须为1

  • SYN(SYNchronization) : 在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文。对方若同意建立连接,则应在响应报文中使SYN=1和ACK=1. 因此, SYN置1就表示这是一个连接请求或连接接受报文。

  • FIN (finis)即完,终结的意思, 用来释放一个连接。当 FIN = 1 时,表明此报文段的发送方的数据已经发送完毕,并要求释放连接。
    这里写图片描述

三次握手与四次挥手

这里写图片描述

三次握手
  1. 第一次握手:建立连接。客户端发送连接请求报文段,将SYN位置为1,Sequence Number为x;然后,客户端进入SYN_SEND状态,等待服务器的确认;
  2. 第二次握手:服务器收到SYN报文段。服务器收到客户端的SYN报文段,需要对这个SYN报文段进行确认,设置Acknowledgment Number为x+1(Sequence Number+1);同时,自己自己还要发送SYN请求信息,将SYN位置为1,Sequence Number为y;服务器端将上述所有信息放到一个报文段(即SYN+ACK报文段)中,一并发送给客户端,此时服务器进入SYN_RECV状态;
  3. 第三次握手:客户端收到服务器的SYN+ACK报文段。然后将Acknowledgment Number设置为y+1,向服务器发送ACK报文段,这个报文段发送完毕以后,客户端和服务器端都进入ESTABLISHED状态,完成TCP三次握手。

完成了三次握手,客户端和服务器端就可以开始传送数据。以上就是TCP三次握手的总体介绍。

四次分手
  1. 第一次分手:主机1(可以是客户端,也可以是服务器端),设置Sequence Number和Acknowledgment Number,向主机2发送一个FIN报文段;此时,主机1进入FIN_WAIT_1状态;这表示主机1没有数据要发送给主机2了;
  2. 第二次分手:主机2收到了主机1发送的FIN报文段,向主机1回一个ACK报文段,Acknowledgment Number为Sequence Number加1;主机1进入FIN_WAIT_2状态;主机2告诉主机1,我“同意”你的关闭请求;
  3. 第三次分手:主机2向主机1发送FIN报文段,请求关闭连接,同时主机2进入LAST_ACK状态;
  4. 第四次分手:主机1收到主机2发送的FIN报文段,向主机2发送ACK报文段,然后主机1进入TIME_WAIT状态;主机2收到主机1的ACK报文段以后,就关闭连接;此时,主机1等待2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,主机1也可以关闭连接了。
为什么是三次握手

这里写图片描述

为什么是四次挥手

那四次挥手又是为何呢?TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议。TCP是全双工模式,这就意味着,当主机1发出FIN报文段时,只是表示主机1已经没有数据要发送了,主机1告诉主机2,它的数据已经全部发送完毕了;但是,这个时候主机1还是可以接受来自主机2的数据;当主机2返回ACK报文段时,表示它已经知道主机1没有数据发送了,但是主机2还是可以发送数据到主机1的;当主机2也发送了FIN报文段时,这个时候就表示主机2也没有数据要发送了,就会告诉主机1,我也没有数据要发送了,之后彼此就会愉快的中断这次TCP连接。如果要正确的理解四次分手的原理,就需要了解四次分手过程中的状态变化。

  • FIN_WAIT_1: 这个状态要好好解释一下,其实FIN_WAIT_1和FIN_WAIT_2状态的真正含义都是表示等待对方的FIN报文。而这两种状态的区别是:FIN_WAIT_1状态实际上是当SOCKET在ESTABLISHED状态时,它想主动关闭连接,向对方发送了FIN报文,此时该SOCKET即进入到FIN_WAIT_1状态。而当对方回应ACK报文后,则进入到FIN_WAIT_2状态,当然在实际的正常情况下,无论对方何种情况下,都应该马上回应ACK报文,所以FIN_WAIT_1状态一般是比较难见到的,而FIN_WAIT_2状态还有时常常可以用netstat看到。(主动方)
    FIN_WAIT_2:上面已经详细解释了这种状态,实际上FIN_WAIT_2状态下的SOCKET,表示半连接,也即有一方要求close连接,但另外还告诉对方,我暂时还有点数据需要传送给你(ACK信息),稍后再关闭连接。(主动方)
  • CLOSE_WAIT:这种状态的含义其实是表示在等待关闭。怎么理解呢?当对方close一个SOCKET后发送FIN报文给自己,你系统毫无疑问地会回应一个ACK报文给对方,此时则进入到CLOSE_WAIT状态。接下来呢,实际上你真正需要考虑的事情是察看你是否还有数据发送给对方,如果没有的话,那么你也就可以 close这个SOCKET,发送FIN报文给对方,也即关闭连接。所以你在CLOSE_WAIT状态下,需要完成的事情是等待你去关闭连接。(被动方)
  • LAST_ACK: 这个状态还是比较容易好理解的,它是被动关闭一方在发送FIN报文后,最后等待对方的ACK报文。当收到ACK报文后,也即可以进入到CLOSED可用状态了。(被动方)
    TIME_WAIT: 表示收到了对方的FIN报文,并发送出了ACK报文,就等2MSL后即可回到 CLOSED可用状态了。如果FINWAIT1状态下,收到了对方同时带FIN标志和ACK标志的报文时,可以直接进入到TIME_WAIT状态,而无须经过FIN_WAIT_2状态。(主动方)
  • CLOSED: 表示连接中断。
为什么要等待2MSL(Maximum Segment Lifetime)时间, 才从TIME_WAIT到CLOSED?

在Client发送出最后的ACK回复,但该ACK可能丢失。Server如果没有收到ACK,将不断重复发送FIN片段。所以Client不能立即关闭,它必须确认Server接收到了该ACK。Client会在发送出ACK之后进入到TIME_WAIT状态。Client会设置一个计时器,等待2MSL的时间。如果在该时间内再次收到FIN,那么Client会重发ACK并再次等待2MSL。MSL指一个片段在网络中最大的存活时间,2MSL就是一个发送和一个回复所需的最大时间。如果直到2MSL,Client都没有再次收到FIN,那么Client推断ACK已经被成功接收,则结束TCP连接。

例子

TCP的作用是流量控制,主要是控制数据流的传输。下面以浏览网页为例,根据自身理解来解释一下这个过程。(注:第二个ack属于代码段ack位)
这里写图片描述
握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。

第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
握手过程中传送的包里不包含数据,三次握手完毕后,客户端与服务器才正式开始传送数据。理想状态下,TCP连接一旦建立,在通信双方中的任何一方主 动关闭连接之前,TCP 连接都将被一直保持下去。断开连接时服务器和客户端均可以主动发起断开TCP连接的请求,断开过程需要经过“四次握手”(过程就不细写了,就是服务器和客 户端交互,最终确定断开)

对应的实例

IP 192.168.1.116.3337 > 192.168.1.123.7788: S 3626544836:3626544836
IP 192.168.1.123.7788 > 192.168.1.116.3337: S 1739326486:1739326486 ack 3626544837
IP 192.168.1.116.3337 > 192.168.1.123.7788: ack 1739326487,ack 1

第一次握手:192.168.1.116发送位码syn=1,随机产生seq number=3626544836的数据包到192.168.1.123,192.168.1.123由SYN=1知道192.168.1.116要求建立联机;

第二次握手:192.168.1.123收到请求后要确认联机信息,向192.168.1.116发送ack number=3626544837,syn=1,ack=1,随机产生seq=1739326486的包;

第三次握手:192.168.1.116收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,192.168.1.116会再发送ack number=1739326487,ack=1,192.168.1.123收到后确认seq=seq+1,ack=1则连接建立成功。

TCP三次握手,四次挥手的全过程,为什么需要三次握手,四次挥手 文章目录TCP介绍三次握手四次挥手滑动窗口拥塞避免算法 TCP介绍 三次握手 四次挥手 阅读详情

相关推荐

[深入理解TCP协议:三次握手与四次挥手过程详解]——TCP协议连接建立和断开的关键

深入理解TCP协议:三次握手与四次挥手过程详解]——TCP协议连接建立和断开的关键TCP(传输控制协议)是一种面向连接、可靠信道的协议。在网络通信中,TCP协议连接的建立和断开是非常重要的环节,也是保证数据传输可靠性的关键。本文将深入讲解TCP的三次握手和四次挥手过程,帮助开发者更好地理解TCP协议,并编写出高效稳定的网络应用程序。

WangWEel的博客 139

HTTPS协议的详细讲解(四次握手)

HTTPS 协议(HyperText Transfer Protocol over Secure Socket Layer):可以理解为HTTP+SSL/TLS, 即 HTTP 下加入 SSL 层,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL,用于安全的 HTTP 数据传输。HTTPS协议是在HTTP的基础上加上了一个协议。SSL(Secure Socket Layer,安全套接字层)

m0_52165864的博客 4万+

实战演练 | ABAQUS显式动力学分析在金属切削仿真中的应用

本文详细介绍了如何利用ABAQUS显式动力学分析进行金属切削过程的二维仿真。通过从零开始的完整流程,包括几何建模、材料本构与失效定义、网格划分、接触设置、边界条件施加,到结果后处理与切削力提取,为工程师和研究人员提供了实用的仿真方法,以优化刀具设计和加工工艺。

purple的博客 930

HTTPS的四次握手

了解https的四次握手

qq_52367191的博客 951

从谱峰搜索到多项式求根:Root-MUSIC算法原理与MATLAB实践

本文深入解析Root-MUSIC算法在阵列信号处理中的原理与应用,通过多项式求根替代传统MUSIC算法的谱峰搜索,显著提升计算效率和精度。文章详细介绍了算法核心思想、MATLAB实现步骤及工程优化技巧,帮助读者掌握这一高效的DOA估计方法。

weixin_30832143的博客 80

五段式S型算法笔记

又因为有 v-v0= 0.5jt通式: 所以有 vm-v0= 0.5jtm 所以有4vm-4v0= 2jtm。算法1: v=2vm-v0-0.5*jt+2jt*tm-2jtm*tm。加加速度j 自己设置 已知,vmax自己设置已知;所以有4vm-4v0= 2jtm带入算法1。

qq_36658033的博客 681

2MSL

【什么是2MSL】  MSL是Maximum Segment Lifetime英文的缩写,中文可以译为“报文最大生存时间”,他是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃。因为tcp报文(segment)是ip数据报(datagram)的数据部分,具体称谓请参见《数据在网络各层中的称呼》一文,而ip头中有一个TTL域,TTL是time to live的缩写,中文可以译为“生存时间”,...

zxx2096的博客 1万+

从永恒之蓝看内网安全:企业如何用Nmap+MSF快速检测445端口风险

本文探讨了企业如何利用Nmap和Metasploit快速检测445端口风险,防范永恒之蓝(MS17-010)漏洞攻击。通过分阶段检测流程和自动化工具组合,企业可高效识别内网风险主机,并实施紧急隔离与长效防护策略,提升整体网络安全防护能力。

weixin_30772105的博客 599

time_wait状态产生的原因,危害,如何避免

前言   请说说你对TCP连接中time_wait状态的理解 解答: 先上TCP的状态变迁图 这幅图来自《TCP IP详解卷1:协议 原书第2版中文》13.5 TCP状态转换图 这幅图来自《UNIX网络编程,卷1:套接字联网API》2.6.4 TCP状态转换图 1. time_wait状态如何产生?  由上面的变迁图,首先调用close()发起主动关闭的一方,在发送最后一个...

weixin_37990128的博客 347

用C#和MQTTnet在WinForm里做个简易物联网监控后台(附完整源码)

本文详细介绍了如何使用C#和MQTTnet库在WinForm中构建一个简易物联网监控后台。通过实战案例,包括环境配置、MQTT服务端实现、客户端监控功能及高级优化技巧,帮助开发者快速搭建高效的物联网监控系统,适用于工业自动化和智能家居场景。

weixin_29540599的博客 392

延迟相乘叠加求和 DMAS (Field II 仿真代码)

(Delay Multiply and Sum, DMAS)算法,最初是为雷达微波系统设计的,研究者们对 DMAS 波束合成方法进行了修改,并应用超声成像。结果表明,DMAS 波束合成在模拟和实验中的表现都优于传统的延时叠加(Delay and Sum, DAS),这种新方法带来的主要改进是对比度分辨率明显提高(即主瓣和侧瓣更窄),从而增加了动态范围,提高了 B 型超声图像质量。与传统 DAS 相似,DMAS 算法通过对来自超声换能器阵元的信号应用几何计算延迟来聚焦接收到的波束。

weixin_38452364的博客 3083

HTTPS详细解析、TLS四次握手

前言 在互联网刚诞生的时候,Honeywell Information System公司便提出了OSI网络模型,并最终推广使用。 HTTP协议作为OSI模型的应用层中不可或缺的一个协议,凭其优秀的性能得到了广泛的应用,但是随后人们发现了一个重大漏洞,HTTP协议使用了明文传输数据,这使得任何人只要拦截下数据包就可以直接查看交互信息甚至可以随意修改交互信息,这是非常危险的。 这份危险刺激着密码学的发展,随着对称加密算法、公私钥加密算法和消息摘要算法相继提出和发展完善,信息的保密性、完整性和可用性得到了极大的保

咸鱼的博客 7558

记一次使用STM32F042K6芯片内部HSI48M时钟导致CAN总线报错问题

深入去解决某个问题时,也会加深你对其它部分的了解和思考,比如这里让我又重新了解和CAN的采样点和CAN报错机制。

ApexYuan 860

【计算机网络】深入理解TCP协议的三次握手和四次挥手 一、前言

在计算机网络中,TCP协议是一种面向连接、可靠的、基于字节流的传输层通信协议。它的核心特性就是提供了数据的可靠传输,这种可靠性主要体现在连接的建立(三次握手)和断开(四次挥手)的过程。在这篇博客中,我们将详细探讨这两个过程。TCP协议的三次握手和四次挥手是其核心的特性,它们确保了TCP连接的可靠性。理解这两个过程,对于深入理解TCP协议以及网络通信的原理是非常有帮助的。希望这篇博客能帮助你更好地理解TCP协议的工作原理。

tr6666的博客 568

IPOP 使用详解 (附IPOP工具包)

IP 地址动态绑定功能;路由信息查询和配置功能;MAC 地址信息查询和修改功能;MAC 、主机信息扫描功能;本机网络报文统计功能;本机端口列表、远程端口扫描功能;端口映射功能;网卡流量统计功能;本机 IP 报文捕获和发送功能;终端控制功能(支持 telnet 、 dos、 ssh、 sftp 、ftp、com 等协议);TCL 脚本支持;多种服务功能( tcp/udp/ping/telnet/ftp/tftp/web/team/syslog/smtp );

悦分享 1万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

对于tcp协议三次握手和四次挥手的理解

对于tcp协议三次握手和四次挥手的理解 三次握手:每一次握手都是全双工方式 第一次握手: 客户端发送一个报文给服务端,进入一个状态,证明客户端有发送的能力。 第二次握手: 服务端接收到这个报文之后,发送一段报文给客户端,表示我已经接收到你发送的报文,进入准备状态。 第三次握手: 客户端接收到这段报文之后,在回应一段报文,证明客户端有接收的能力。 至此三次握手·全部完成。三次握手证明了客户端和服务端有就有接收和发送的能力,才能保证整个TCP链接的可靠性。 四次挥手: 第一次挥手: 客户端向服务端发送一个数据包

sm520sm的博客 204

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

对TCP协议三次握手和四次挥手简单理解

首先要先了解TCP数据包的一些字段的作用: 这里只写出了用到的几个。 序号(seq):占4个字节,32位。 发送端告诉接收端这组的首部第一个是第多少个字节。 一整个数据包要放到缓冲区中分组传输,分组之后的每个数据包都要加上TCP首部,这里表明发送方发送该组的第一个字节是一整个大的数据包(没有放缓冲区的分组之前的整个数据包)的...

一个塑料袋 368

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

深入理解TCP协议的三次握手和四次挥手

互联网中最常用的传输层协议,它为可靠的数据传输提供了强大的支持。在 TCP 连接的建立和断开过程中,使用了三次握手和四次挥手的机制。本文将深入探讨 TCP 协议中三次握手和四次挥手的过程以及其重要性。

qq_64409509的博客 636

TCP协议三次握手和四次挥手机制理解

简介 TCP协议(Transmission Control Protocol, 传输控制协议),为应用层提供可靠的、面向连接的、基于流的服务。在OSI七层模型中,属于传输层。如果对OSI七层模型不了解的小伙伴,请参考OSI七层网络参考模型 TCP报文格式说明 TCP报文字段说明: 端口号:用来标识同一台计算机的不同的应用进程。 源端口号: 源端口和IP地址的作用是标识报文的返回地址,本机应用程序用来通信的端口。 目的端口号: 接收计算机上的应用程序进行通信使用的端口。 注意: TCP.

zhujm320的专栏 257

TCP协议的三次握手和四次挥手的过程,简单理解!

1.三次握手

qq_44890362的博客 747

深入理解Linux网络——TCP协议三次握手和四次挥手详细流程

并且假如说节省第二次挥手的ACK包,那么因为下一个FIN的时间是不确定的,有可能很久,那么实现的时候得让FIN_WAIT_1等待一个很久的时间。如果是发生了如网络错误、断线或程序崩溃等错误或异常,那么自己这边的系统可能关闭所有的网络接口,释放所有的网络相关的内存等(取决于操作系统和协议栈的实现),而对端发送的保活数据包将接收不到ACK,重试几次后,就会进行连接的关闭,这个时候是不会进行四次挥手的。:等到一定时间后收不到服务端的反馈的时候来开启重传。每次超时时间为2的指数递增(1,2,4,8,16,32)

qq_25046827的博客 1143

关于tcp协议的三次握手和四次挥手理解(面试提问之一)

TCP通信过程包括三个步骤: 1.建立TCP连接通道 2.传输数据 3.断开TCP连接通道。 如图所示,给出了TCP通信过程的示意图。 上图主要包括三部分:建立连接、传输数据、断开连接。 建立TCP连接很简单,通过三次握手便可建立连接。建立好连接后,开始传输数据。TCP数据传输牵涉到的概念很多:超时重传、快速重传、流量控制、拥塞控制等等。断开连接的过程也很简单,通过四次握手完成断开连接的过...

weixin_40740993的博客 189

分步理解TCP协议三次握手和四次挥手(奶奶来了都能看懂)

首先要明确三次握手和四次挥手是什么: 三次握手是客户端和服务器端准备通信前做的准备,而四次挥手是客户端和服务器端准备结束通信做的准备。 贴一张三次挥手的过程图 第一次握手 客户端在和服务器端建立TCP连接前,客户端首先会发送一个报文,其中携带了客户端的seq(Sequence Number)。 第二次握手 服务器端在收到来自客户端的报文后,会回复客户端一个Ack(Acknowledge Number)报文,其中此次的Ack报文的值为第一次客户端发送的(Seq + 1),同时也会携带一个自身的seq给到

qq_42546585的博客 212

从打电话角度通俗理解TCP协议的三次握手和四次挥手

2、B收到了A的断开请求,但是B还有话没说完,就对A说“好的,我知道你要挂电话了,但是我这边还有点话要说”,相当于第二次挥手,B向A继续发送剩余数据和确认报文(ACK)4、A收到了B的断开请求,说了一句“好的,那挂了”,相当于第四次挥手,A发送了确认报文(ACK)然后A挂断了电话,B收到了确认之后也挂断了电话。1、A认为该说的话已经说完了,想要挂断电话,对B说“我这边已经说完了,准备挂电话了”,相当于第一次挥手,A发送断开请求(FIN)三次握手:建立同步连接通信。至此,同步通信建立。

weixin_57945376的博客 234

一文搞懂TCP的三次握手和四次挥手

一文搞懂TCP的三次握手和四次挥手

不脱发的程序猿 19万+

wireshark抓包分析TCP三次握手和四次挥手的过程

1. TCP的通信过程        TCP连接的建立需要经过三次握手,连接的关闭需要经过四次挥手。读TCP/IP协议不是很好理解,通过工具手动抓包分析会对协议有更深刻的理解。因为工作中经常用到wireshark,所以就通过wireshark来分析,记录自己的学习过程。 TCP的整个通信过程如下图所示: 2. TCP的三次握手过程      下图是wireshark抓取的浏览器与web...

lss926的博客 1万+
上一篇: 数据结构——浙大网易云课堂记录(一)树(中篇)
下一篇: 排序(上)
扬扬羊
博客等级 码龄9年 11粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值