TCP三次握手图解与实践总结

TCP/IP超详细总结 网络的基础知识 一、协议 1、简介: 在计算机网络与信息通信领域里,人们经常提及“协议”一词。互联网中常用的具有代表性的协议有IP、TCP、HTTP等。而LAN(局域网)中常用的协议有IPX/SPX”等。 下面通过通俗一点的方式来解释一下协议: 有三个人A、B、C。A只会说汉语、B只会说英语、而C既会说汉语又会说英语。现在A与B要聊天,他们之间该如何沟通呢?若A与C要聊天,又会怎样?这时... 阅读详情

之前在面试的时候面试官问到了TCP三次握手的连接,虽然自己都懂,但是还有很多细节的地方被我忽略了,所以这里提醒下大家,要学好技术,每一个重要知识点都要扣的细一些,不要给自己的知识库留下任何盲区,否则只能是懂得表面不懂原理的半桶水的状态。

稍微有计算机网络基础的人都知道TCP的建立是通过三次握手,但是一个URL的访问,从按下回车键开始,到TCP的建立,中间经历了什么?

以下我把我的总结写下来和大家分享,也能够加深自己的印象。(参考《计算机网络》,第6版,谢希仁著)。

1、三次握手的步骤和图解

假设现有客户端A和服务器B

第一次握手:客户端A向服务器B发送连接请求报文段,同步位SYN=1,序列号seq=x,并进入SYNSEND状态;

第二次握手:服务器B接到客户端的请求之后,返回一个确认报文,同部位SYN=1,确认位ACK=1,序列号seq=y,确认号ack=x+1(表示x和x之前的字节流都已收到),并进入SYNRCVD状态;

第三次握手:客户端A在收到服务器B的确认后还要继续返回一个确认报文,确认位ACK=1,seq=x+1,ack=y+1(注意第三次握手的SYN=0)。


图解如下:



2、TCP三次握手的详细信息

下面我们通过抓包软件wireshark来实践并分析TCP连接

先交代下背景:

客户端IP:192.168.1.3

DNS服务器IP:192.168.1.1

www.baidu.com对应的IP:14.215.177.38

操作过程:

1.通过wireshark开始抓包,

2.打开浏览器访问URL:www.baidu.com,

3.通过逻辑表达式筛选出只与这次操作有关的IP地址((ip.src == 192.168.1.3&&ip.dst == 14.215.177.38)||(ip.src == 14.215.177.38&&ip.dst == 192.168.1.3)||(ip.src == 192.168.1.3&&ip.dst == 192.168.1.1)||(ip.src == 192.168.1.1&&ip.dst == 192.168.1.3))

4.分析抓到的数据包


结果分析:

从访问URL开始到TCP三次握手建立连接后的结果如下图




从NO.2可以看出,第一步是向DNS服务器请求解析www.baidu.com域名,
从NO.3可以看出,第二步是DNS服务器解析后向客户端返回域名对应的IP地址,
NO.776表示TCP的第一次握手,下图为TCP第一次握手的首部信息



从中可以看到,TCP的首部信息包括源端口,目的端口,序列号,确认号,首部长度,flags,窗口大小,检验和,紧急指针等信息,其中的SYN为Set,即表示SYN=1,

Sequence number:0,表示序列号seq=0,其他信息读者可以自行查看。


NO.777表示TCP的第二次握手,下图为TCP第二次握手的首部信息



这一次的源端口号和目的端口号是反过来,说明第二次握手是从服务端发送的报文段。其中的SYN=1,ACK=1,seq=0,ack=1(为第一次的ack+1)


NO.778表示TCP的第三次握手,下图为TCP第三次握手的首部信息



源端口号和目的端口号和第一次握手的一样,说明是客户端向服务端发送的报文段。其中的ACK=1,seq=1,ack=1。


3、只有两次握手的话造成的问题

假设TCP只有两次握手即可建立连接,现有一种情况:客户端A向服务端B发送一个请求连接报文段,因为网络堵塞,该报文段没有被传送到B但未丢失,A再重传一个请求连接报文段,这次B收到了第二次发送的报文段,B再发回确认报文段,此刻连接已建立。当数据传完了连接断开,此时A第一次发送的请求连接报文段延迟传送到了B,这是一个失效的请求连接报文段,B误以为A又请求连接,于是向A发送确认报文段,同意建立连接,因为是采用两次握手,那么多余的连接就会被建立,从而造成资源浪费。



4.问题

TCP是采用三次握手建立连接,但是当第二次握手完成的时候客户端A就已经变成了ESTABLISHED状态,是不是就代表A往B方向的连接就已经建立并可以从A往B发送数据了?TCP三次握手后的连接是全双工的,那么此刻是不是就代表已经是半双工了?这是我存在的一个问题,希望知道答案的读者可以通过留言一起讨论下,谢谢。



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

相关推荐

TCP的三次握手过程图解

当两台主机采用TCP协议进行通信时,在交换数据前将建立连接,通信完成后,将关闭会话并终止连接。这种连接和会话机制保障了TCP的可靠性功能!!!!TCP连接的建立过程(1)确认目的设备存在于网络上(2)确认目的设备有活动的服务,并且正在源客户端要使用的目的端口上接受请求(3)通知目的设备源客户端想要在该端口号上建立通信会话TCP连接的创建过程:1> 客户端向服务器发送包含初始序列值的数据段开启通信会

github_33736971的博客 7895

TCP三次握手、四次挥手总结

前言: 无论面试Java、C++、Python还是前端开发,计算机网络中TCP的知识可以说是必问的。 本篇文章是对tcp三次握手和四次挥手问题的总结。 TCP基本认识 2 TCP连接建立过程 3 TCP连接的断开问题 4 socket编程 本篇文章只关注于TCP连接的建立和断开过程,对于流量控制、拥塞控制以及可靠性传输不做过多讲解。 01 TCP的基本认识 先看一下tcp的头部格式 序列号:在建立连接时又计算机生成的随机数作为其初始值,通过SYN包传输给接收端主机,每发送一次数据,就会.

weixin_47236538的博客 986

TCP三次握手及四次挥手详细图解

TCP三次握手及四次挥手详细图解。

dvlinker的技术专栏 1万+

三次握手小总结

syn(synchronous)同时的,同步的,在http中指建立请求的第一个包 ack (acknowledgement) 确认的意思 fin(finally): 我要最后一次发送指令啦(个人理解) RST:缩写:Reset重连位 第一次握手:发送端首先发送一个带SYN(synchronize)标志的数据包给接收方【第一次的seq序列号是随机产生的,这样是为了网络安全,如果不是随机产生初始序列号,黑客将会以很容易的方式获取到你与其他主机之间的初始化序列号,并且伪造序列号进行攻击】 第二次握手:接收端收.

鬼鬼的博客 469

tcp3次握手实验报告

捕获TCP连接的过程的数据包。 2)分析三次握手建立TCP连接的过程,描述数据包序列图。(包括 SYN标志和SEQ值) 1)检查FTP交互数据报文中用户名和密码是否用明文传送

新手必看:用Simulink搭建飞跨电容三电平逆变器的完整流程(附SPWM配置技巧)

本文详细介绍了使用Simulink搭建飞跨电容三电平逆变器(FCNPC)的完整流程,特别聚焦于SPWM调制策略的配置技巧。通过模块拆解、参数设置和波形优化的三步法,配合实操截图和典型参数表,帮助新手快速掌握多电平逆变器的建模与仿真技能,适用于电力电子学习和项目开发。

weixin_30664051的博客 284

tcp握手和断开

http://blog.youkuaiyun.com/whuslei/article/details/6667471/tcp状态分析:http://blog.youkuaiyun.com/yangbutao/article/details/8764527 6张动态图轻松学习TCP三次握手和四次挥手:http://network.51cto.com/art/201808/581009.htm ...

weixin_34304013的博客 75

Python表白代码:“ 星光月夜烟花皆归你,我也归你”(满天烟花盛开、附番外玫瑰)

导语 "慢品人间烟火色 闲观人间岁月长" ———致自己​​​ ​ ???? 遇见我以后,我们的故事就开始了,愿你历经山河,仍觉得人间值得????。 ​ 星光月夜烟花皆归你,我也归你。关于烟花????大家都​知道多少?有多少表白故事情节都发生在烟 花下,想必木木子????不用说大家也知道叭~​​ 今天这则小短文就是关于烟花的故事!你准备好跟我一起进入烟花的世界了嘛? ​正文 “每一句文案,都有一个故事,你仔细听” ​ 1)环境安装???? 准备好:.

顾木子吖的博客 5万+

图解TCP核心机制:一张速查表搞定协议要点、面试题与实战调优

恋爱模拟以谈恋爱为例,两个人能够在一起最重要的事情是首先确认各自爱和被爱的能力。接下来我们以此来模拟三次握手的过程。第一次:男: 我爱你。女方收到。由此证明男方拥有爱的能力。第二次:女: 我收到了你的爱,我也爱你。男方收到。OK,现在的情况说明,女方拥有爱和被爱的能力。第三次:男: 我收到了你的爱。女方收到。现在能够保证男方具备被爱的能力。由此完整地确认了双方爱和被爱的能力,两人开始一段甜蜜的爱情。真实握手。

xx16755498979的博客 806

Matlab信号处理

Matlab信号处理 需要安装的APP: Signal Analyzer app:提供一个可以在时域和频域可视化、测量、分析和比较信号的工具; Filter Builder和Filter Designer app:可以很方便通过下拉菜单和填写参数的方式来设计和分析数字滤波器; 对于小波分析,Matlab提供了: 1.Wavelet Signal Denoise app:利用离散小波变换对信号去噪; 2.Signal Multiresolution Analyzer app:对信号进行多分辨率的分析和可视化

Huichin_Min的博客 4398

高级Salesforce开发面试题

自定义设置允许您创建自定义数据集,以及为组织、配置文件或特定用户创建和关联自定义数据。自定义元数据类似于自定义设置,但是自定义元数据类型中的记录被视为元数据而不是数据。自定义设置有列表和层次自定义设置两种。自定义元数据中没有此类类型。此外,自定义元数据不支持基于用户配置文件或特定用户的层次结构类型的数据。自定义设置现在不再支持关系字段。但您可以在自定义元数据对象之间创建查找。元数据查询不占用查询sql次数的限制。

weixin_45663522的博客 1238

Qwen3.5-9B网络协议分析小能手:图解TCP三次握手与HTTP状态码

本文介绍了如何在星图GPU平台上自动化部署Qwen3.5-9B 90 亿参数开源大语言模型镜像,实现网络协议分析的可视化功能。该模型能够自动生成TCP三次握手、HTTP状态码等复杂网络概念的流程图和对比表格,显著提升网络教学和技术文档编写的效率,特别适合网络工程师和开发者快速理解协议细节。

weixin_32324637的博客 31

VisionMaster 4.2.0安装

按照顺序安装。

XuXing_java的专栏 3781

TCP三次握手通俗图解(附InsCode快速体验)

用男女交往比喻网络连接建立过程,将抽象的SYN/ACK标志位转化为"表白-回应-确认"的社交行为,这种具象化表达能帮助文科背景学习者快速建立认知框架。关键要抓住"确认应答"这个核心机制,就像现实社交中需要得到明确反馈才能确立关系。实际操作时发现,平台的一键部署功能特别适合这类需要持续展示的网络协议演示项目,无需配置环境就能获得可交互的学习工具。特殊场景的可靠性:网络延迟导致的历史连接问题,通过序列号机制在第三次握手时过滤。随机初始序列号设计类似社交中的"暗号验证",防止恶意连接冒用。

QuartzLynx65的博客 447

ADS 2023 实战:手把手教你仿真一个中心频率 2.4GHz 的带通滤波器(附工程文件)

本文详细介绍了使用ADS 2023软件设计和仿真中心频率2.4GHz带通滤波器的全流程,包括工程准备、指标定义、原理图设计、仿真优化及实际电路实现。通过切比雪夫滤波器拓扑和参数优化,实现高性能的带通滤波器设计,适用于无线通信系统。附有工程文件和常见问题解决方案,助力工程师快速掌握射频滤波器设计技巧。

weixin_30790841的博客 481

华为od 面试八股文_前端_02_含答案

华为od 面试八股文_前端_02_含答案

MISAYAONE的博客 1998

LiuJuan20260223Zimage分析网络协议:从TCP/IP到HTTP/3的深入浅出

本文介绍了如何在星图GPU平台上自动化部署LiuJuan20260223Zimage镜像,以进行网络协议的深度解析与教学。该镜像能将复杂的TCP/IP、HTTPS、HTTP/3等协议原理,通过生动的类比和结构化图示进行通俗化解读,有效应用于网络技术学习、开发者问题排查及技术文档创作等场景。

weixin_36231030的博客 32

华为OD面试八股真题 - 操作系统 - 1

华为OD技术面,操作系统相关八股真题提供详细解答,这篇博客主要涉及于进程和线程相关知识点

qq_45776114的博客 1633

TCPDUMP零基础入门:从安装到第一个抓包

不同Linux发行版的安装命令容易记混,我在应用里做了个智能检测功能。用户只需要选择自己的系统类型(比如Ubuntu/CentOS),就会自动显示对应的安装命令。平台自动处理了Nginx配置和域名分配,最惊喜的是部署后手机也能访问练习。对于想学网络协议的新手,这种边操作边看原理的方式比纯看文档效率高多了。最近在学习网络协议分析,发现tcpdump这个工具虽然强大,但对新手来说门槛有点高。做了个交互式学习应用,把整个学习过程拆解成了几个有趣的环节。,就会动态展示HTTP请求的抓包过程。

GreyWolf12的博客 310

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Z-Image-Turbo-辉夜巫女面试备战:生成程序员面试概念图解

本文介绍了如何利用星图GPU平台,一键自动化部署Z-Image-Turbo-辉夜巫女镜像,并将其应用于程序员面试备战。通过将抽象的技术概念(如测试金字塔、TCP三次握手)转化为清晰直观的图解,该方案能有效辅助知识梳理与记忆,提升面试准备效率。

weixin_35826166的博客 163

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

TCP三次握手(详解)

一:引出 客户端与服务器之间数据的发送和返回的过程当中需要创建一个叫TCP connection的东西;由于TCP不存在连接的概念,只存在请求和响应,请求和响应都是数据包,它们之间都是经过由TCP创建的一个从客户端发起,服务器接收的类似连接的通道,这个连接可以一直保持,http请求是在这个连接的基础上发送的;在一个TCP的连接上是可以发送多个http请求的 二:TCP的报文格式 1:TCP在传输层和网络层数据传输的过程 TCP协议是在传输层端到端的传输信息,既然说到传输层协议,那么就讲一下传输层协议在数据传

qq_48508278的博客 9万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

一文读懂TCP的三次握手(详细图解)

TCP三次握手机制

湖水微澜 3万+

Wireshark图解TCP三次握手与四次挥手

三次握手 四次挥手 四次挥手关闭连接,关闭连接的目的:防止数据丢失;与应用层交互 面试题1: 问:握手过程中可以携带数据吗? 答:从上面的过程可以发现第三次握手是可以携带数据的,前两次握手是不可以携带数据的 面试题2: 问:SYN攻击是占用服务端具体什么资源呢,SOCKET连接嘛? 答: 半连接队列,由net.ipv4.tcp_max_syn_backlog控制 ...

临江仙我亦是行人 2052

TCP 三次握手:详解与原理

TCP 三次握手是建立可靠连接的关键步骤,通过同步序列号、确认号和状态机的配合,确保了连接的可靠性和数据的完整性。三次握手不仅防止了已失效的连接请求报文段突然又传送到了服务端,还同步了双方的初始序列号,为后续的数据传输奠定了基础。在实际应用中,三次握手可能会面临 SYN 泛洪攻击等安全威胁,通过 SYN Cookie、限制 SYN 数据包速率、使用防火墙和 IDS 等技术,可以有效防御这些攻击。此外,通过优化技术如 TCP 快速打开(TFO)和并行连接,可以进一步提高连接建立的效率和数据传输的性能。

兔子的博客 6134

动画图解TCP三次握手过程

TCP 三次握手过程不管是对于本科计算机网络学习还是考研考计网的同学来说都是必考的一个,所以要掌握 TCP 整个握手的过程显得尤为重要。 一、TCP 是什么? TCP是Transmission Control Protocol(传输控制协议) 的简称,它提供一种面向连接的、可靠的、基于字节流的传输层通信协议。 在学习 TCP 握手过程之前,我们首先要了解 TCP 报文头部的一些标志信息,因为在 TCP 握手的过程中,要用到TCP报文头部的一些信息。 TCP头部 1.1 源端口和目的端口 对于

Dream It Possible 4080
上一篇: 图的最小生成树kruskal算法总结
下一篇: TCP四次挥手关闭连接的图解与实践总结
ZengBlog
博客等级 码龄10年 29粉丝 22原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值