使用Wireshark浅析Tcp三次握手

这篇具有很好参考价值的文章主要介绍了使用Wireshark浅析Tcp三次握手。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

简述

我不想一开始直接搬网络描述图来讲三次握手亦或试图用大量专业词汇让你熟悉它,而是想用简单的描述,让大家对三次握手有个大概的印象。用Wireshark抓包工具分析TCP报文中大家比较关注的syn(Synchronize Sequence Numbers 同步序列号)和ack(ACKnowledge Character 确认字符)。

如果你不能简单的解释它,说明你还没有足够理解它

–爱因斯坦

1 什么是TCP三次握手

字面意思就是三次交互,也是三次 「TCP数据包」 的传输。交互的目的是建立连接,让通信双方确认 「对方」 能够接收到自己发送的消息

下图简单描述了三次握手的过程:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XClx9C0G-1640571969989)(https://tuchuang-oss.oss-cn-hangzhou.aliyuncs.com/img/202112231931554.svg)]

有同学问我为什么要回复x+1,这就是协议的魅力所在了。协议本质上就是一种约定,设计tcp的那群大佬们完全可以设计为x+2,这不应该是我们纠结的点

2 为什么要三次握手

tcp是传输层协议,握手的目的是 建立连接 。事实上四次,甚至更多次的握手更能保证通信的建立,但无疑也会增加网络开销。 「三次」 是一个能够保证双方建立连接的最小通讯数。

3 TCP报文构成

下图为Tcp的报文构成,因本文主要讲述三次握手,侧重点也主要放在序列号和确认应答号上,对TCP的报文感兴趣的可以看看思否的这篇文章。下面结合Wireshark,对应这张图浅析一下三次握手。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qaiky8F7-1640571969991)(https://tuchuang-oss.oss-cn-hangzhou.aliyuncs.com/img/202112260036500.svg)]

三次握手也就是三次TCP的报文传输,这里可以注意到序列号和确认应答号都是32位。所以这也解释了ACK和SYN的取值范围是 0 - 2^32 -1 即4,294,967,295。

4 使用Wireshark浅析三次握手中的报文

简单介绍一下wireshark,它是一款优秀的抓包工具。可以抓取经过我们电脑网卡上的网络信息,当然也包括我们今天要抓取的TCP数据包。

以打开百度为例,首先需要确认百度的ip,可以通过ping命令获取:

shishuai@iMac ~ % ping www.baidu.com
PING www.a.shifen.com (180.101.49.12): 56 data bytes
64 bytes from 180.101.49.12: icmp_seq=0 ttl=52 time=11.738 ms
64 bytes from 180.101.49.12: icmp_seq=1 ttl=52 time=12.248 ms
64 bytes from 180.101.49.12: icmp_seq=2 ttl=52 time=11.474 ms

注意这里使用www.baidu.com而不是baidu.com。记录下反馈的ip地址:180.101.49.12。这个ip因人而异,每个地区会有所不同。

打开wireshark界面:

【ps:建议打开前先退出浏览器。】

使用Wireshark浅析Tcp三次握手

左侧对应你的电脑网卡,如果你不知道选择哪个,可以注意右侧的折线图,有波动的就是你在使用的网卡。

因为我们的电脑的网络流量是实时在变的,所以需要在这里过滤出来自www.baidu.com 的流量信息。

使用Wireshark浅析Tcp三次握手

对应的过滤规则为:

ip.addr == 180.101.49.12 && tcp

注意这里的ip为上一步通过ping命令获取的ip。

使用Wireshark浅析Tcp三次握手

输入后,回车。可以看到下面还是空的流量信息。现在再打开百度首页,关注这里的流量信息,可以发现三次握手的流量包信息已经显示在下方了:

使用Wireshark浅析Tcp三次握手

我们双击第一条报文,查看详情:

使用Wireshark浅析Tcp三次握手

wireshark中显示报文格式为16(2^4)进制,即每个字符对应4位,一共8个字符一共占用4 * 8 = 32位。和可以看TCP报文中syn序列号长度是一致的。16进制下的:e2026015即对应十进制的:3791806485

使用Wireshark浅析Tcp三次握手

当然我们也可以查看原始的2进制数据包,32位的长度也会更加直接。只需要在下方空白处右击,选择:‘… as bits 即可。

使用Wireshark浅析Tcp三次握手

接下来我们点击第二次数据包,即第二次握手,也是百度服务器对我们的回复包:

使用Wireshark浅析Tcp三次握手

可以看到百度回执ack确实为我们第一次握手中的syn+1(3791806485 + 1)。另外自身生成的seq序列为:1559326373,也对应文章一开始放的小红和小蓝的对话图中的第七步:

使用Wireshark浅析Tcp三次握手

这里ack即对应响应ACK(y)值,seq对应服务器返回的x值。

接下来看第三次响应,也是客服端对百度的回执包信息:

使用Wireshark浅析Tcp三次握手

可以看到最后的一次握手中,ack值为第二次握手回执的syn值+1。seq序列为二次握手中服务器回执的ack确认序列号。至此三次握手完成,连接建立完毕,可以开始进行数据的传输。

5 总结

分析数据包虽然是个比较耗时的事情但确实可以加深我们的印象,也可以让抽象的描述具体化。

另外多说一句,虽然分析的过程比较久但tcp的建立时间是非常快的,我们在打开一个网站的瞬间就建立好了。四次挥手同理,有兴趣的话你可以试试用wireshark抓取4次挥手的数据包看看,希望大家共同进步。
下面是我的个人公众号,欢迎关注,无限进步。
使用Wireshark浅析Tcp三次握手文章来源地址https://www.toymoban.com/news/detail-474456.html

到了这里,关于使用Wireshark浅析Tcp三次握手的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Wireshark抓包分析TCP的三次握手

    一、TCP三次握手连接建立过程     Step1:客户端发送一个SYN数据包(SYN=1,Seq=X,ACK=0)给服务端,请求进行连接,这是第一次握手;     Step2:服务端收到请求并且允许连接的话,就会发送一个SYN+ACK的数据包(SYN=1,Seq=Y,ACK=X+1)给发送端,告诉它,可以通讯了,并且让客户

    2024年02月08日
    浏览(33)
  • TCP三次握手、四次挥手详解(Wireshark实践)

    ACK (Acknowledge character, 确认字符 )在数据通信中,接收站发给发送站的一种传输类控制字符。表示发来的数据已确认接收无误。TCP协议规定,只有ACK=1时有效,也规定连接建立后 所有发送的报文的ACK必须为1 。 SYN (synchronization, 同步 ) 在连接建立时用来同步序号。 当SYN=1而

    2024年02月04日
    浏览(29)
  • 【网络安全 | 网络协议】结合Wireshark讲解TCP三次握手

    TCP(传输控制协议)是一种面向连接的、可靠的传输层协议。在建立 TCP 连接时,需要进行三次握手,防止因为网络延迟、拥塞等原因导致的数据丢失或错误传输,确保双方都能够正常通信。 TCP三次握手在Wireshark数据包中是如何体现的?在此之前,先熟悉TCP三次握手的流程。

    2024年02月03日
    浏览(33)
  • SNMP 计算机网络管理 实验1(二) 练习与使用Wireshark抓取SNMP数据包抓包之 任务三分析并验证TCP三次握手建立连接时三次握手工作过程

    ⬜⬜⬜ 🐰🟧🟨🟩🟦🟪(*^▽^*)欢迎光临 🟧🟨🟩🟦🟪🐰⬜⬜⬜ ✏️write in front✏️ 📝个人主页:陈丹宇jmu 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​ 🙉联系作者🙈by QQ:813942269🐧 🌈致亲爱的读者:很高兴你能看到我的文章,希望我的文章可以帮助到你,祝万事

    2024年02月12日
    浏览(44)
  • Wireshark抓包分析TCP协议:三次握手和四次挥手

    面试中我们经常会被问到TCP协议的三次握手和四次挥手的过程,为什么总喜欢问这个问题呢? 其实我们平时使用的很多协议都是应用层协议,比如HTTP协议,https协议,DNS协议,FTP协议等;而应用层协议都是要基于传输层的两个协议之上的,也就是TCP协议和UDP协议。我们在使用

    2024年01月21日
    浏览(28)
  • 【计算机网络经典面试题】简述 TCP 三次握手和四次挥手的过程

    1)第一次握手:建立连接时,客户端向服务器发送SYN包(seq=x),请求建立连接,等待确认 2)第二次握手:服务端收到客户端的SYN包,回一个ACK包(ACK=x+1)确认收到,同时发送一个SYN包(seq=y)给客户端 3)第三次握手:客户端收到SYN+ACK包,再回一个ACK包(ACK=y+1)告诉服务

    2024年04月08日
    浏览(50)
  • TCP报文与三次握手四次断开、TCP最大连接数与文件打开数限制、keepalive、tcpdump、wireshark抓包分析工具

    tcp详解、tcp与udp对比等 TCP:传输控制协议 UDP:用户数据报协议 源端口和目的端口字段:各占 2 字节(16位)。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。 序列号:在建立连接时由计算机生成的随机数作为其初始值,通过 SYN 包传给接

    2024年04月22日
    浏览(35)
  • WireShark使用教程(TCP/IP 部分情况居然变成三次挥手了???)

    下载链接: Wireshark 网络管理员使用WrieShark来检测网络问题 网络安全工程师 使用Wrieshark来检查资讯安全相关问题 开发人员 使用Wreshark来为新的通讯协议除错 普通使用者 使用Wireshark来学习网络协议的相关知识 当然,有的人也会故意的拿它去寻找一些敏感信息 侵犯别人的隐私

    2024年02月21日
    浏览(28)
  • Wireshark数据包捕获与分析 观察三次握手与四次挥手

    本实验使用Wireshark抓取通信数据包。1)观察IP数据包的结构。2)观察TCP的三次握手与四次挥手过程。 预备知识:IP数据报结构、TCP数据报结构。 目录 原理 1. IP数据报结构 2. TCP数据报结构 3. TCP三次握手与四次挥手流程  步骤与结果 1. 使用Wireshark抓取ping命令的完整通信过程的

    2024年02月09日
    浏览(30)
  • 【网络|TCP】三次握手、四次握手

    TCP是一种面向连接的可靠的传输协议,建立和断开TCP连接时需要进行握手的过程。其中,TCP的连接建立需要进行三次握手,而连接断开则需要进行四次握手。 三次握手 第一次握手:客户端发送一个SYN(同步)报文给服务器,表示客户端请求建立连接。这个报文中包含一个初

    2024年02月14日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包