TCP/IP协议-三次握手四次挥手_xdg15294969271的博客 ...

      最后更新:2021-12-20 21:56:44 手机定位技术交流文章

      原文链接

      背景描述

      使用前一条所述网络模式 采用IP楼层。 ,我们知道网络层,两个主机之间的接触是可能的。但是这并不具体,因为,主机的程序是真正交流的实体。这是一种用于一个主机的程序,即与另一个主机中的另一个程序交换数据。虽然IP协议允许将数据电文发送到项目主机,但需要就这一问题提供进一步信息。 然而,不需要向主机发送任何独特的申请程序。。而端到端的通信申请程序之间应进行沟通。

      UDP,没有必要在传输数据之前先建立连接。在收到联合民主党提交的材料后,远程主机不需要任何确认。虽然联合民主党不能保证交货,但联合民主党不能保证交货。但是正是因为这样,省去和很多的开销,它加快了这一进程。例如,某些服务实时要求更高。经常使用联合民主党。DNS、TFTP、DHCP、SNMP、NFS和其他议定书都有同等应用协议。

      TCP,为了提供连接相关服务,在数据能够传输之前,必须建立链接。数据传输完成后,连接将被断开 。因此,TCP是一种可靠的运输方式。但是正因为这样,支出增加是不可避免的。比如确认,流量控制等。最常见的适用协议是SMTP、TELNET、HTTP、FTP等。

      常用的熟知端口号

      应用程序 FTP TFTP TELNET SMTP DNS HTTP SSH MYSQL
      熟知端口 21,20 69 23 25 53 80 22 3306
      传输层协议 TCP UDP TCP TCP UDP TCP TCP TCP

      TCP的概述

      TCP的最根本目标是相互联系。TCP连接有两个目的。这被称为插座断点 。它被定义为构成合成的港口代码的IP地址。例如,如果您的 IP 地址是和您的端口号是,然后获得以下包件:80。

      TCP报文首部

      1. 来源港口和目的地港口各有两个字节,分别写到源港口和目的地港口。
      2. 序号,占4个字节,通过 TCP 连接传输的每字节按顺序编号。例如,一份报告的序列号实地价值为301,尽管所传送的数据共有100个字段,但以下条目的序号显然应该从401开始(如果有的话);
      3. 4字节确认,这是下一个电文中预计从对方收到的第一批数据字节数。例如,B从A处收到信息,序列号字段为501,数据长度为200字节。这意味着B正确收到A传送的数据,直至序列号700。因此,B预计将收到A,下一个数据序列号为701,因此B在发给A的电文中包括确认号为701。
      4. (a) 数据偏离小数点后四位数,表明TCP提交数据从TCP提交开始起多远;
      5. 已经为今后的使用预留了6个空间,尽管目前应全部为零。
      6. 当 URL 是 1 时, 这意味着紧急指针字段是合法的 。 请告知系统, 此报告中有紧急数据 。
      7. 只有在确认数字字段中的 ACK=1 得到 ACK 的确认。 TCP 授权连接建立后的所有传输均在 1 上放置 ACK ;
      8. 当两个应用程序程序交互交流时,一端的应用程序程序预期在输入命令后立即收到另一端的答复,此时PSH=1;
      9. 当RST=1时,重新定位RST意味着TCP连接有重大错误,必须放弃并随后重新加入。
      10. 同步 SYN, 用于在连接时同步序列号。 当 SYN = 1, ACK = 0 信号连接请求时, 答案应该使 SYN = 1, ACK = 1; 如果连接已经商定, 回复应该使 SYN = 1, ACK = 1;
      11. FIN=1时,提供了报告发件人身份的数据,并要求公布。
      12. 窗口,有两字节提及通知的目的地和发送此电文供接受所需的空间数量;
      13. (a) 用两个字节测试和验证第一个组成部分和数据;
      14. 2字节的紧急指示器,说明本报告中的紧急数据字节数;
      15. 选项选项,变量长度,以及定义一些额外的可选参数

      TCP连接机构(三次握手)

      这里写图片描述

      客户端和服务器在启动时都是 CLOSED 。 建立连接的用户是活跃的, 而打开连接的服务器是被动的 。

      1. TCP服务器程序始于生成传输控制区块TCB,该区块准备接收客户程序连接请求;服务器随后进入 ListEN 状态。
      2. TCP客户程序也是第一个建造传输控制区块(缩写为TCB)的程序。最后,向服务器提出了连接请求,并向服务器提交了连接请求。这是与报告第一节使用的SYN=1相同的SYN=1。同时,选择初始序号后序号。此时,SYN-SENT(同步发送)是TCP客户程序的状况。根据TCP,SYN条目(SYN=1)无法运输数据,而需要输入序列号。
      3. 当TCP服务器收到请求时如果同意连接,则发出确认报文。确认报告AcK=1应该使用。SYN=1,确认值为 k=x+1。你也会为自己制作一个序列号此时,TCP服务器程序已输入SYN-RCVD(同步接收)。它也无法传输数据, 并且需要一个序列号。
      4. TCP客户程序一旦得到验证,确认就会发送给服务器.ACK=1,ack=y+1,每个服务器都有其独有序列号的后序号=x+1,在服务器上形成TCP连接,客户进入建立(连接)状态。TCP规定,ACK报告部分可能包含数据,但如果未传输数据,则不使用序列号。
      5. 服务器在收到客户的确认后,同样处于既定状态,双方可以开始沟通。
        三次握手

      TCP客户端最后发送确认函的目的是什么?

      第一句的目的是避免将失败的连接请求意外送回服务器,从而造成错误。

      让我们想象一下两种握手 用来建立连接的情况吧客户发出了最初的连接请求,该请求并非仅仅因为停留在网络节点太久而丢失。,TCP客户不能这样做,因为他们很晚才收到确认信息。我以为服务器错过了目前,该员额已重新发送到服务器上。此后,客户和服务器通过两次握手连接。传输数据,然后关闭连接。另一方面,有人要求将这两项要求与两项要求联系起来。服务器与网络连接良好。这是预言的结论。但是,由于两个握手程序,客户端和服务器将能够重新连接。这将造成可避免的错误和资源浪费。

      如果握手三次,即使提供了无效电文,服务还是得到了无效电文,对确认作出答复,但客户不会再次发送确认。由于服务器没有收到确认,假定客户没有寻求连接。

      TCP 连接释放(四波)

      这里写图片描述

      最初,客户和服务器都处于既定状态;然而,客户被积极关闭,服务器被被动关闭。

      1. 客户程序发送连接发布信息 。并且停止发送数据。释放数据报文首部,FIN=1,序号是后序号=u(等于先前交付数据的最后字节)加1。此时,FIN-WAIT-1(终止等待1)由客户输入。根据TCP,即使FIN条目不包括数据,它也使用序列号。
      2. 服务器收到连接发布信息后, 发送确认信息, 即 ACK=1, ack=u+1, 并有自己的序列号后继 v, 进入 CLOSE- WAIT (关闭等待) 状态 。TCP 服务器将客户在半封闭状态(即没有数据可供发送)向服务器方向释放的高级应用程序通知高级应用程序,但如果服务器提供,客户将接受该程序。这一条件将持续一段时间,即在CLOSE-WAIT状态期间。
      3. 客户从服务器收到确认请求后,进入FIN-WAIT-2(停止等待2)状态,等待服务器发送连接发布信息。(在此之前,接受服务器的最终数据。 )
      4. 当服务器传输最终数据时,这篇文章是全球之声在线特稿的一部分。FIN=1,ack=u+1,由于在半关闭状态,服务器最有可能发送更多的数据 。假设目前的序号是后序号 = w,此时,服务器处于 LAST-ACK( 最后确认) 状态 。等待客户端的确认。
      5. 客户端收到服务器的连接发布信息后, 它必须发送确认文件, 即 ACK=1, ack=w+1, 而它的序列号是 follow=u+1, 然后再输入时间- WAIT( 时间等待) 。应当指出,TCP连接目前尚未放弃,必须经过两个阶段。

      四次挥手

      为什么顾客最后要等2MSL?

      TCP MSL(最大安全有限公司)允许不同性能水平选择不同的MSL设置。

      其次,为了保证客户最后的ACK信息 到达服务器 因为ACK信息可能丢失从服务器的角度来看,我已经提交了 FIN+ACK 请求, 客户还没有回复。,客户可在此 2MSL 时间段内收到再次发送的信息,然后提供回复报告,并重新启动 2MSL 定时器。

      第二,避免出现类似“三握手”中指定的“已失效连接请求”的外观。在客户发出最后确认信息后在这个2MSL时区网络中将删除在连接寿命期间生成的任何文字信息 。因此,对先前连接的要求不会在新连接中显示。

      为什么在断开连接时 3次握手和4次波的交替?

      收到连接请求的 SYN 信息后,服务器在连接建立时向 ListEN 中的客户端发送 ACK 和 SYN 。
      而关闭连接时,在服务器接收了FIN的另一封信后这仅仅表明,相反一方再也不能提供数据,但可能仍然收到数据。另外,并非所有数据都是相互发送的。因此,我们可能立即将其关闭。我们还可以相互交流数据。除了向另一方发送FIN电文,要求立即终止连接。因此,通常,ACK和FIN是单独发送的。从而导致多了一次。

      如果已经建立了连接,但客户意外下降怎么办?

      TCP还有一个实时计时器。显然,如果客户不成功服务器不能再等待了 。白白浪费资源。每次服务器收到客户端请求, 定时器都会重置 。通常,时间固定在两小时。如果你在两小时内没有从客户那里得到数据,将收取费用。服务器将发送检测器消息 。之后每75秒发一次如果一连串的十份检测报告没有反应 很难找到摆脱困境的方法服务器相信客户端失败 。接着就关闭连接。




      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/15135.html

          热门文章

          文章分类