返回顶部
首页 > 资讯 > 精选 >TCP的三次握手与四次挥手怎么理解
  • 175
分享到

TCP的三次握手与四次挥手怎么理解

2023-06-03 19:06:56 175人浏览 安东尼
摘要

本篇内容主要讲解“tcp的三次握手与四次挥手怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“TCP的三次握手与四次挥手怎么理解”吧!TCP报文段的首部格式序列号seq:占4个字节,用来标记

本篇内容主要讲解“tcp的三次握手与四次挥手怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“TCP的三次握手与四次挥手怎么理解”吧!

TCP报文段的首部格式

TCP的三次握手与四次挥手怎么理解

序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的第一个字节的数据编号。

确认号ack:占4个字节,期待收到对方下一个报文段的第一个数据字节的序号;序列号表示报文段携带数据的第一个字节的编号;而确认号指的是期望接收到下一个字节的编号;因此当前报文段最后一个字节的编号+1即为确认号。

确认ACK:占1位,仅当ACK=1时,确认号字段才有效。ACK=0时,确认号无效。TCP规定,在连接建立后所有传送的报文段都必须把ACK置为1。

同步SYN:连接建立时用于同步序号。当SYN=1,ACK=0时表示:这是一个连接请求报文段。若同意连接,则在响应报文段中使得SYN=1,ACK=1。因此,SYN=1表示这是一个连接请求,或连接接受报文。SYN这个标志位只有在TCP建产连接时才会被置1,握手完成后SYN标志位被置0。

终止FIN:用来释放一个连接。FIN=1表示:此报文段的发送方的数据已经发送完毕,并要求释放运输连接

PS:ACK、SYN和FIN这些大写的单词表示标志位,其值要么是1,要么是0;ack、seq小写的单词表示序号。

字段含义
URG紧急指针是否有效。为1,表示某一位需要被优先处理
ACK确认号是否有效,一般置为1。
PSH提示接收端应用程序立即从TCP缓冲区把数据读走。
RST对方要求重新建立连接,复位。
SYN请求建立连接,并在其序列号的字段进行序列号的初始值设定。建立连接,设置为1
FIN希望断开连接。

TCP三次握手

TCP的三次握手与四次挥手怎么理解

第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手

TCP四次挥手

TCP的三次握手与四次挥手怎么理解

1)客户端进程发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),此时,客户端进入FIN-WaiT-1(终止等待1)状态。 TCP规定,FIN报文段即使不携带数据,也要消耗一个序号。

2)服务器收到连接释放报文,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT(关闭等待)状态。TCP服务器通知高层的应用进程,客户端向服务器的方向就释放了,这时候处于半关闭状态,即客户端已经没有数据要发送了,但是服务器若发送数据,客户端依然要接受。这个状态还要持续一段时间,也就是整个CLOSE-WAIT状态持续的时间。

3)客户端收到服务器的确认请求后,此时,客户端就进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文(在这之前还需要接受服务器发送的最后的数据)。

4)服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,ack=u+1,由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为seq=w,此时,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。

5)客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态。注意此时TCP连接还没有释放,必须经过2∗∗MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态。

6)服务器只要收到了客户端发出的确认,立即进入CLOSED状态。同样,撤销TCB后,就结束了这次的TCP连接。可以看到,服务器结束TCP连接的时间要比客户端早一些。

到此,相信大家对“TCP的三次握手与四次挥手怎么理解”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: TCP的三次握手与四次挥手怎么理解

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

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

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

  • 微信公众号

  • 商务合作