对TCP的三次握手的理解

TCP 三次握手原理,你真的理解吗? 阿里妹导读:最近,阿里中间件小哥哥蛰剑碰到一个问题——client端连接服务器总是抛异常。在反复定位分析、并查阅各种资料文章搞懂后,他发现没有文章把这两个队列以及怎么观察... 阅读详情

PS.(里面的一些解释)
1.Client/Server:

Client/Server结构(C/S结构)是大家熟知的客户机和服务器结构.C/S又称Client/Server或客户/服务器模式.

2.ACK:

ACK (Acknowledgement)即是确认字符,在数据通信中,接收站发给发送站的一种传输类控制字符。表示发来的数据已确认接收无误。
在TCP/IP协议中,如果接收方成功的接收到数据,那么会回复一个ACK数据。通常ACK信号有自己固定的格式,长度大小,由接收方回复给发送方。
3.SYN_SENT:
传输控制协议(英语:Transmission Control Protocol, TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。
4.SYN_RECV:
SYN_RECV是指服务端被动打开后,接收到了客户端的SYN并且发送了ACK时的状态。
5.ESTABLISHED:

TCP连接成功

TCP的三次握手:

首先客户发送连接请求报文,服务器接受连接后回复ACK报文,并为这次连接分配资源.

客户接收到ACK报文后也向服务器发送ACK报文,并分配资源,这样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三次握手与四次挥手过程以及抓包实验 最近,我正好在做socket相关的实验,发现现在对计算机网络知识有一点点模糊,借此机会,熟悉一下TCP连接过程并利用WireShark工具进行测试。三次握手,是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息。解释:客户端向服务端发送连接请求报文段,此报文段首部中的同步位被设置为1,表明这是一个tcp连接请求报文段。序号字段被设置了一个初始值作为TCP客户进程所选择的初始序号。服务端收到客 阅读详情

相关推荐

关于TCP的三次握手中seq字段的相关问题与理解

一、一道相关综合题 1.题目简述 2.解答 这个题综合了传输层的TCP协议、网络层的IP协议和数据链路层的以太网,难度比较大,但是实际上只要熟记帧的格式、IP包的格式、TCP段的格式,然后把这5个IP分组(就是IP包)全都解析出来,实际上答案也基本能够写出来。 二、做题时的疑问 在做这个题的时候有个地方难以理解:经过解析能够发现,前三个IP包实际上就是实现了TCP协议中的3次握手,由第1次握手的序号84 6b 41 c5和第2次握手的确认号84 6b 41 c6可知,A端的一个序号(简称为c5)被使用

wcxiaobaiaa的博客 1473

详解TCP的三次握手

前置条件 在开始三次握手之前,我们先看看TCP头部结构,如下 了解一下什么是序列号和确认号 Sequence number 表示的是我方(发送方)这边,这个packet的数据部分的第一位应该在整个data stream中所在的位置。(注意这里使用的是“应该”。因为对于没有数据的传输,如ACK,虽然它有一个seq,但是这次传输在整个data stream中是不占位置的。所以下一个实际有数据的传输,会依旧从上一次发送ACK的数据包的seq开始) Acknowledge number 表示的是期望

罗罗的1024 1万+

(二)深入浅出TCPIP之再识TCP,理解TCP三次握手(上)

TCP作为一种可靠传输控制协议,其核心思想:既要保证数据可靠传输,又要提高传输的效率,而用三次握手恰恰可以满足以上两方面的需求! 1.三次握手 所谓的三次握手即TCP连接的建立。这个连接必须是一方主动打开,另一方被动打开的。 1.1 三次握手过程 握手之前主动打开连接的客户端结束CLOSED阶段,被动打开的服务器端也结束CLOSED阶段,并进入LISTEN阶段。随后开始“三次握手”: (1)首先客户端向服务器端发送一段TCP报文,其中: 标记位为SYN,表示“...

yolo模型训练找我,AI游戏合作找我 2668

通俗理解TCP的三次握手

三次握手流程的本质,可以这么理解:TCP的三次握手其实是双方各一次握手,各一次确认,只是其中一次握手和确认合并在一起。当然也可以更通俗的去理解:“喂,你听得到吗?”“我听...

Java 架构师之路 885

矢量量化的基本原理:高效数据压缩与信息检索的关键矢量量化(Vector Quantization,简称VQ)是一种数据压缩和信

此外,在矢量量化过程中,可能会引入一定的信息损失,对一些精细特征的表示可能存在一定的误差。它通过将高维数据映射到低维码本空间中,并将相似的数据映射到相同的码本向量中,实现对数据的高效表示和存储。最重要的是,矢量量化可以用于数据的检索和分析,提供了高效的数据查询和处理手段。通过使用码本索引,我们可以高效地存储和检索大量的数据。在图像处理中,矢量量化可以用于图像压缩,将复杂的图像数据转化为较少的码字,实现图像的存储和传输。矢量量化通过将连续的高维数据分割并映射到有限的码本集合中,实现数据的离散表示和压缩。

m0_70886513的博客 1373

ESP32-CAM图传小车:端边协同的嵌入式视觉系统设计

在物联网边缘智能场景中,嵌入式视觉系统需平衡实时性、算力与成本。其核心在于理解图像采集、硬件编码、低延迟传输与分层计算的基本原理——OV2640等CMOS传感器配合JPEG硬件编码可显著降低主控负载;TCP流式协议比HTTP/RTSP更适配资源受限MCU;而‘计算卸载’架构将OpenCV等重负载移至Android端,使ESP32专注实时控制与传输,既发挥FreeRTOS任务调度优势,又规避了PSRAM带宽与内存瓶颈。该模式广泛适用于教育机器人、智能巡检及DIY视觉终端等场景,本文以WiFi图传坦克小车为载体

weixin_42524864的博客 373

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

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

不脱发的程序猿 19万+

VECTOR硬件VN1600系列对比:VN1610、VN1611、VN1630A、VN1640A、VN1630log、VN1670

VN16系列说不清道不明的区别和关系

AmorRun的博客 2万+

作为前端的你了解多少tcp的内容

关于tcp你知道多少 经常在前端的面试群中发现有人会碰到面试官去询问tcp的握手和挥手问题,诸如你了解tcp吗,解释一下tcp的三次握手和四次挥手,我认为如果只是简单的了解这2个问题,真的那么有意义吗?所以,不防试着去多了解一点网络通信的内容,记得在上家公司的时候有个老哥说过,网络通信其实还是蛮重要的,毕竟我们现在无论是工作还是生活基本都处于互联网之中,尤其作为开发者基本上每天都在和http请求打...

weixin_33907511的博客 700

R语言实战:5分钟搞定相加交互效应分析(逻辑回归/Cox回归/GLMM/GEE全支持)

本文详细介绍了如何利用R语言中的`scitable`包快速实现相加交互效应分析,支持逻辑回归、Cox回归、GLMM和GEE等多种模型。通过自动化计算RERI、AP和SI等指标,大幅提升临床研究和流行病学分析的效率与准确性,特别适合处理多因素联合作用的复杂场景。

fanta的博客 671

IP-Guard安全网关实例

企业相关情况: 1.OA系统,主要为日常工作使用,该系统IP为192.168.1.2,端口为8080; 2.文件共享服务器,用于存放日常工作资料和文档,该文件共享服务器的IP为192.168.1.1,其中\\192.168.1.1\private 目录中的存放着公司重要文档,不能随意外传; 3.安全网关已采用串联的方式联入网络,IP为192.168.2.6,所有机器访问OA系统和文件共享服务...

IP-Guard专栏 707

TCP的三次握手

PS.(里面的一些解释) 1.Client/Server: Client/Server结构(C/S结构)是大家熟知的客户机和服务器结构.C/S又称Client/Server或客户/服务器模式. 2.ACK: ACK (Acknowledgement)即是确认字符,在数据通信中,接收站发给发送站的一种传输类控制字符。表示发来的数据已确认接收无误。 在TCP/IP协议中,如果接收方...

anchunlong6535的博客 171

七天征服AutoSAR/SomeIP_01速成配置并代码生成

本文为AutoSAR中SomeIP配置开发的实操指南摘要,重点介绍通过通信矩阵快速构建SomeIP工程的方法。核心内容包括:1)基于Excel通信矩阵生成系统描述文件(arxml);2)在AutoSAR工具中导入文件自动生成协议栈配置,涵盖ETHIF、SoAd等模块;3)关键报错处理(COM/PDUR/SOAD/SD模块的配置修正);4)SomeIPXF的数据编解码配置;5)SWC组件与RTE任务映射。教程强调"先完成再完美"的实践原则,指导开发者快速生成基础代码框架,为后续协议调试奠定

大叔带刺的博客 303

tcp三次握手_对TCP三次握手的理解

写一写我自己对TCP三次握手的理解,希望可以帮助到部分同学对这个知识点的记忆. 先放一个到处都可以见到的图:TCP三次握手 以前我看到TCP三次握手,再一看这个图片觉得好复杂,就懒得再看了.感觉可能是被握手这个词误导了,觉得握手是一个双方的行为,那握手三次,岂不是有六次传输信息嘛!其实仔细看看并没有那么复杂,更加类似于抛绣球,我抛给你,你抛给我,我再抛给你,一共也就...

weixin_39863017的博客 218

NVIDIA Isaac GR00T N1.5 人形机器人强化学习入门教程(四)Lerobot、宇树 G1 等不同形态机器人微调教程

本笔记本是一份关于如何在新的数据集上对GR00T-N1预训练模型进行微调的教程。

2506_90492529的博客 1667

uniapp - 强力解决H5网页浏览器跨域问题,如何解决uniapp请求接口在浏览器跨域问题,UniApp H5 跨域代理配置详细教程完美解决所有uniapp跨域(调用第三方接口或服务器api跨域)

uni-app 跨域,uniApp解决h5跨域问题,解决uni-app请求接口在浏览器跨域问题,uni.request请求跨域问题解决方案,uni-app-跨域解决方法,彻底解决uniapp发布为H5的跨域问题,uniapp H5页面设置跨域请求_uniapp h5跨域配置,uniapp开发 H5 解决跨域问题,uniApp请求解决跨域问题,uniapp request如何实现前端请求跨域,解决uniapp调试过程中的请求跨域和环境配置,Uniapp调用外部api接口跨域请求,uni-app发布H5页面跨域

🏆 前端领域优质创作者 5354

TCP三次握手与四次挥手通俗理解

TCP三次握手与四次挥手详解 TCP通过三次握手建立可靠连接,确保双向通信能力:1)客户端发送SYN(Seq=x);2)服务器回复SYN+ACK(Seq=y, Ack=x+1);3)客户端确认ACK(Ack=y+1)。三次握手防止历史连接干扰,并协商初始序列号。 四次挥手安全关闭全双工连接:1)主动方发送FIN;2)被动方ACK确认;3)被动方发送FIN;4)主动方ACK确认。关键状态包括: TIME_WAIT(等待2MSL):确保最后一个ACK到达,避免旧报文干扰新连接。 CLOSE_WAIT:服务器未正

此人很懒,什么都留下了...快进来看看吧 2257

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

TCP三次握手,四次断开的理解

首先我们要明确,两次握手是必要的。第一次握手,客户端将SYN报文发送到服务器,服务器接收到报文后,即可确认客户端到服务器是可达的;而服务器向客户端发送响应的SYNACK报文,客户端接收到后,即可确认服务器到客户端也是可达的。至此,连接已经算是建立,那为什么还要有第三次握手呢?客户端和服务器的握手过程,不仅仅是确认互相可达的过程,更重要的是一个同步的过程,SYN就是同步(Synchronize)的缩写。对于TCP报文段来说,序号是一个至关重要的部分,它保证了TCP传输数据的完整性。而我们上面也说过,TCP。

2301_80957812的博客 973

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

通俗理解TCP握手次数是三次?

理解之后,应该说是至少三次就可以保证可靠传输了。 看到网上一篇帖子http://www.cnblogs.com/TechZi/archive/2011/10/18/2216751.html 是这么说的,“我Google该问题答案后发现,网络上对于“三次握手”的过程都有很详细的描述,但对于为什么需要“三次握手”来建立连接却没有很好的答案。只能求助于书本了。” 后面有谢希德树和另一本书的

richardzrc的博客搬家了--->richardzhang.info 1608

三次握手的本质_简述TCP的三次握手过程_tcp三次握手的本质理解

TCP握手协议 :在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个e79fa5e9819331333365646364连接。1、第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认; SYN:同步序列编号(Synchronize Sequence Numbers)2、第二次握手:服务器收到syn包,必须确认客户的SYN...

weixin_30212009的博客 324

深入理解TCP三次握手

在网络通信中,TCP(Transmission Control Protocol,传输控制协议)是一个可靠的、面向连接的协议,它保证了数据包的顺序和完整性。为了建立一个稳定的连接,TCP 使用了一个被称为(Three-Way Handshake)的过程。在本文,我们将深入剖析 TCP 三次握手的工作原理。

bmseven的博客 1449

简单理解TCP的三次握手和四次挥手

关于TCP的三次握手和四次挥手的个人总结

weixin_43818307的博客 6630

结合Wireshark理解TCP连接建立所需的三次握手

TCP是因特网中的传输层协议(Transmission Control Protocol),使用三次握手协议建立连接。 关于SYN: 在客户机和服务器之间建立正常的TCP网络连接时,客户机首先发出一个SYN消息,服务器使用SYN+ACK应答表示接收到了这个消息,最后客户机再以ACK消息响应。 关于ACK: 在TCP/IP协议中,如果接收方成功的接收到数据,那么会回复一个ACK数据。通常AC

FAN的专栏 696

Tcp--三次握手,四次挥手的理解

个人印象笔记地址https://app.yinxiang.com/fx/ba73dae0-da3e-45d6-bca4-d9cf6a0b9c18 Tcp--三次握手,四次挥手 TCP协议中,主动发起请求的一端称为『客户端』,被动连接的一端称为『服务端』。不管是客户端还是服务端,TCP连接建立完后都能发送和接收数据。 刚开始的时候,服务器和客户端都为CLOSED状态。在通信开始前,双方都得创建各自的传输控制块(TCB)。 服务器创建完TCB后遍进入LISTEN状态,此时准备接收客户端发来的连接请.

weixin_43373417的博客 364

通俗大白话来理解TCP协议的三次握手和四次分手

在Google Groups的TopLanguage中看到一帖讨论TCP“三次握手”觉得很有意思。贴主提出“TCP建立连接为什么是三次握手?”的问题,在众多回复中,有一条回复写道:“这个问题的本质是, 信道不可靠, 但是通信双发需要就某个问题达成一致. 而要解决这个问题, 无论你在消息中包含什么信息, 三次通信是理论上的最小值. 所以三次握手不是TCP本身的要求, 而是为了满足"在不可靠信道上可靠地传输信息"这一需求所导致的. 请注意这里的本质需求,信道不可靠, 数据传输要可靠. 三次达到了, 那后面你想接

瑾的日常 358

TCP协议三次握手,四次挥手个人理解

这个状态相比较常见,也是需要注意的一个状态,FIN_WAIT_1在接收到服务端ACK之后就进入到FIN_WAIT_2的状态,然后等待服务端发送FIN,所以在收到对端FIN之前,TCP都会处于FIN_WAIT_2的状态,也就是,在主动断开的一端发现大量的FIN_WAIT_2状态时,需要注意,可能时网络不稳定或程序中忘记调用连接关闭,FIN_WAIT_2也有超时时间,也是由内核参数tcp_fin_timeout控制,当FIN_WAIT_2状态超时后,连接直接销毁。

m0_73575787的博客 978
上一篇: 敲代码时,程序员戴耳机究竟在听什么?
下一篇: 对HTTP和TCP的理解
「已注销」
博客等级 码龄7年 4粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值