返回顶部
首页 > 资讯 > 服务器 >想看懂三次握手,四次挥手?看这里!!!
  • 648
分享到

想看懂三次握手,四次挥手?看这里!!!

服务器网络tcp/ip 2023-09-26 08:09:45 648人浏览 泡泡鱼
摘要

一、知识点介绍      1.什么是三次握手? 三次握手(Three-way Handshake)其实就是指建立一个tcp连接时,需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己

一、知识点介绍

     1.什么是三次握手?

三次握手(Three-way Handshake)其实就是指建立一个tcp连接时,需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备。实质上其实就是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号,交换TCP窗口大小信息。

 本质:是确认通信双方收发数据的能力 。

   2.什么是四次挥手?

建立一个连接需要三次握手,而终止一个连接要经过四次挥手(也有将四次挥手叫做四次握手的)。这由TCP的半关闭(half-close)造成的。所谓的半关闭,其实就是TCP提供了连接的一端在结束它的发送后还能接收来自另一端数据的能力。TCP 的连接的拆除需要发送四个包,因此称为四次挥手(Four-way handshake),客户端或服务器均可主动发起挥手动作。

 本质:目的是关闭一个连接。

二、三次握手和四次挥手的过程:

      1.三次握手的过程:

  • 第一次握手: 首先是客户端向服务器发送了报文
    这次的握手是具有重大意义的:它说明了客户端它的发送能力是正常的
  • 第二次握手:然后服务器端接收到了客户端向它发送的报文,并且也同时向客户端发送报文
    这次的握手也很重要:它说明了服务器端自身的接收能力和发送能力都是正常的
  • 第三次握手:客户端再一次向服务器发送了报文
    这次的握手依旧重要:因为证明客户端的接收能力正常

那有的同学可能就有疑问了,为什么最后还要在握一次手?不纯纯多余嘛...

漏漏漏,大漏特漏。我的好基友, 让我这样解释给你听

首先你想想,当你给你的女朋友发了条消息问她在不在(相当于第一次握手

然后你的女朋友看见了,她收到了你的发出的消息,也同时回了你的消息(相当于第二次握手

很快你也收到了她回的信息,但如果你长时间不再发一次消息,她就不清楚你到底看没看到她给你发的信息,让她一直等,那她就很生气,那你就得完蛋。(相当于第三次握手

就是这样,基友们你们懂了吗?没懂可以去找女朋友试试,如此你就会有深刻印象。

说专业点就是:

当客服端和服务端进行通信,客户端发送了一条消息,到达了服务端

对于服务端而言,服务端收到了你发送的内容,同时向客服端发送确认。

对于客服端而言,如果客服端不理睬服务端的这个确认,那么服务端则会一直等待客服端的消息。

这就导致了服务端的时间被浪费(对于服务器而言,CPU等资源是一种浪费),这样是不可行的,

这就是为什么不能两次握手的原因了

   

                                                                  图示为三次握手

       2.四次挥手的过程

  • 第一次挥手: 
    客户端发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),此时,客户端进入FIN-WaiT-1(终止等待1)状态
  • 第二次挥手:
    服务器端接收到连接释放报文后,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT 关闭等待状态
  • 第三次挥手:
    客户端接收到服务器端的确认请求后,客户端就会进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文,服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。
  • 第四次挥手:
    客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态,但此时TCP连接还未终止,必须要经过2MSL后(最长报文寿命),当客户端撤销相应的TCB后,客户端才会进入CLOSED关闭状态,服务器端接收到确认报文后,会立即进入CLOSED关闭状态,到这里TCP连接就断开了,四次挥手完成

 那看到这里依旧有人想问,为什么连接时只要三次,而断开连接时却要四次???

那我再用男女朋友那点事来告诉你,首先你设想这样的场景:

你和你女朋友今天相约一起出去玩,那玩肯定会有个结束。约完会了肯定要各回各家,各找各妈 要互相再见吧!

哈哈哈哈,那重点来了,

你:再见宝贝,你回去吧(第一次挥手

女朋友:好的宝宝,那我走了(第二次挥手

女朋友:那你也回去吧宝宝(第三次挥手

你:好的,那我走了,拜拜宝贝(第四次挥手

就是这样,就像和女朋友说拜拜时那样的不舍。

 图示为四次挥手

来源地址:https://blog.csdn.net/nuhao/article/details/130663577

--结束END--

本文标题: 想看懂三次握手,四次挥手?看这里!!!

本文链接: https://www.lsjlt.com/news/418286.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 想看懂三次握手,四次挥手?看这里!!!
    一、知识点介绍      1.什么是三次握手? 三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己...
    99+
    2023-09-26
    服务器 网络 tcp/ip
  • 三次握手、四次挥手的理解
    client: socket connect send encode recv decode close server: socket bind listen 1.主动转换成被动 2.向系统申...
    99+
    2023-01-30
    四次
  • 简述TCP三次握手和四次挥手
    TCP三次握手:第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。第二次握手:Server收到数据包后由标志位SYN=1知道C...
    99+
    2023-06-04
  • 最通俗易懂的TCP三次握手四次挥手详解
    TCP的三次握手和四次挥手实质就是TCP通信的连接和断开。 三次握手:为了对每次发送的数据量进行跟踪与协商,确保数据段的发送和接收同步,根据所接收到的数据量而确认数据发送、接收完毕后何时撤消联系,并建立虚连接。 四次挥手:即终止TCP连接,...
    99+
    2023-09-04
    tcp/ip 网络 服务器
  • TCP的三次握手与四次挥手是什么
    这篇文章主要介绍了TCP的三次握手与四次挥手是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇TCP的三次握手与四次挥手是什么文章都会有所收获,下面我们一起来看看吧。TCP报文段的首部格式**序列号seq:*...
    99+
    2023-06-27
  • 两张动图--带你搞懂TCP的三次握手与四次挥手
    目录TCP的概述TCP报文首部TCP连接的建立(三次握手)什么TCP客户端最后还要发送一次确认呢?TCP连接的释放(四次挥手)为什么客户端最后还要等待2MSL?如果已经建立了连接,但...
    99+
    2024-04-02
  • 如何使用tcpdump分析三次握手四次挥手
    这篇文章主要介绍了如何使用tcpdump分析三次握手四次挥手,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发...
    99+
    2023-06-27
  • 如何解析TCP的三次握手与四次挥手
    这篇文章将为大家详细讲解有关如何解析TCP的三次握手与四次挥手,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。TCP的传输如图:TCP三次握手的过程如下:建立TCP连接,就是指建立一个TCP连...
    99+
    2023-06-28
  • TCP的三次握手与四次挥手怎么理解
    本篇内容主要讲解“TCP的三次握手与四次挥手怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“TCP的三次握手与四次挥手怎么理解”吧!TCP报文段的首部格式序列号seq:占4个字节,用来标记...
    99+
    2023-06-03
  • 实战:tcpdump抓包分析三次握手四次挥手
    本文档以实战的形式介绍tcpdump抓包分析三次握手四次挥手的过程。执行tcpdump命令...
    99+
    2023-06-05
  • Python中TCP协议的三次握手与四次挥手是什么
    本篇内容介绍了“Python中TCP协议的三次握手与四次挥手是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、TCP、UDP 协议的区...
    99+
    2023-06-02
  • 计算机网络传输协议TCP三次握手与四次挥手原理
    目录TCP三次握手四次挥手服务器状态转换客户端状态转换TCP状态转换图TCP中常见的面试题为什么是三次握手,不是一次或者两次为什么是三次握手,四次挥手如果已经建立了连接,但是客户端突...
    99+
    2024-04-02
  • 什么是网络编程?Java如何实现?三次握手和四次挥手?
    个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ Java...
    99+
    2023-10-25
    网络 java 开发语言
  • TCP/IP协议中三次握手四次挥手的原理及流程分析
    当初学的是通信专业,毕业以后,同学们各奔东西,去追逐自己的梦想,奔波于大大小小的工地之间。哈哈,开个玩笑,也有厉害的,进了某某研究所,嗯?他爸不是所长,内心不要太阴暗。记得有一门十分高大上的课程,名字叫做计算机网络(大概是这个名字吧)。里面...
    99+
    2023-05-30
    tcp 三次握手四次挥手 四次
  • 【PHP面试题12】TCP协议三次握手和四次挥手分别是什么
    文章目录 一、概览二、三次握手2.1 第一步:客户端向服务端发送 SYN(同步)包2.2 第二步:服务端返回 ACK(确认)包和 SYN 包2.3 第三步:客户端返回 ACK(确认)包 三...
    99+
    2023-09-25
    http php java 三次握手 四次挥手
  • 活久见!TCP两次挥手,你见过吗?那四次握手呢?
    我们都知道,TCP是个面向连接的、可靠的、基于字节流的传输层通信协议。TCP是什么那这里面提到的"面向连接",意味着需要 建立连接,使用连接,释放连接。建立连接是指我们熟知的TCP三次握手。而使用连接,则是通过一发送、一...
    99+
    2023-07-24
  • TCP为什么是三次握手和四次挥手以及可能出现的问题
    目录 TCP为啥设定为三次握手(两个角度分析)不可靠产生无效链接浪费服务器资源 TCP为啥四次挥手服务端有剩余数据需要发送--四次挥手(多数情况)服务端无剩余数据发送--捎带应答--四次...
    99+
    2023-08-31
    tcp/ip 网络 服务器
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作