1.目的

客户端与服务器之间建立TCP/IP连接,我们知道是通过三次握手,四次挥手实现的,但是很多地方对这个知识的描述仅限于理论层面,这次我们通过网络抓包的方式来看一下实际的TCP/IP传输过程。

2.什么是抓包?

网络传输信息是通过层层打包,最终到达客户端物理层,经过网线等设备传输到服务器端后,再进行层层拆包,最后获取信息。而抓包的“包”就是这个打包了信息的“包。抓包(packet capture)就是将网络传输发送与接收的数据包进行截获,来进行分析的过程。

3.如何进行抓包?

我们可以利用现成的网络抓包软件Wireshark,进行抓包,从而分析TCP/IP传输过程。

Wireshark软件下载:Wireshark软件官网下载,一定要下载下图中的”Windows Installer(64-bit)

4.抓包分析TCP/IP传输过程(“三次握手”)

4.1第一步:浏览器打开网页https://www.hit.edu.cn/ (其他的网页也没问题)

4.2第二步:打开命令行窗口,输入:ping www.tencent.com,查看IP地址(切记:千万不要把https/http加进去)



这里我们得到的IP地址是61.167.60.70

4.3第三步:打开Wireshark软件

4.3.1先双击“WLAN”

4.3.2得到下图

4.3.3在下图方框位置输入:ip.addr==61.167.60.70,按下回车键,稍等片刻

(如果没反应,重新在浏览器输入网址,并重新获取IP地址,也就是重复1,2步操作)

4.3.4显示如下图所示



注意!!:如果第一步访问的是一些比较大的网站,例如腾讯之类的,这步会出不来,因为这些大网站往往有多个主机,你用ping访问到的ip地址和浏览器访问到的ip地址会出现不一致的情况,导致这一步只有ping的包。也就是说建议大家不要选择大网站测试,可以像我这样,用自己学校网址或者一些小的网站测试。

5.分析“三次握手”抓包结果

首先是抓包结果图(把上一步得到的结果划到最上面看)如下:



方框处也就是“三次握手的结果。

  • 第一次的标志是“[SYN]”,序列号seq为0, 代表客户端请求建立连接
  • 第二次的标志是“[SYN, ACK]”,序列号Seq为0,Ack值为客户端发送过来的Seq加1,也就是1,表示服务器可以正常接收客户端数据包。
  • 第三次的标志是“[ACK]”,客户端表示可以正常接收服务器数据包,这是为了保证可以全双工通讯,接下来就可以正常发送数据。

6.“四次挥手”抓包及分析

首先我们需要把浏览器的页面关闭,也就是断开TCP/IP连接,之后等待几分钟。会出现下面的画面,方框就是“挥手”过程。



四次挥手标志分别为:

  • "[FIN, ACK]"
  • "[ACK]"
  • "[FIN, ACK]"
  • "[ACK]"

这里,我们需要注意两点:

(1)客户端与服务器端传输时全双工的,因此断开请求既可以由客户端发起,也可以由服务器端发起。只要找准第一次出现"[FIN, ACK]"的位置,就是第一次挥手位置。

(2)为什么我们抓包抓到的不是“四次挥手”,而是“三次挥手”呢?

这里涉及到LInux的TCP时延机制,当被挥手端(这里是443端口)第一次收到挥手端(这里是12672端口)的“FIN”请求时,并不会立即发送ACK,而是会经过一段延迟时间后再发送,但是此时被挥手端也没有数据发送,就会向挥手端发送“FIN"请求,这里就可能造成被挥手端发送的“FIN”与“ACK”一起被挥手端收到,导致出现“第二、三次挥手”合并为一次的现象,也就最终呈现出“三次挥手”的情况。

Wireshark抓包分析TCP“三次握手,四次挥手”的更多相关文章

  1. wireshark抓包图解 TCP三次握手/四次挥手详解[转]

    原文链接:http://www.seanyxie.com/wireshark%E6%8A%93%E5%8C%85%E5%9B%BE%E8%A7%A3-tcp%E4%B8%89%E6%AC%A1%E6% ...

  2. wireshark抓包图解 TCP三次握手/四次挥手详解

    http://www.seanyxie.com/wireshark%E6%8A%93%E5%8C%85%E5%9B%BE%E8%A7%A3-tcp%E4%B8%89%E6%AC%A1%E6%8F%A1 ...

  3. 用wireshark抓包分析TCP三次握手、四次挥手以及TCP实现可靠传输的机制

    关于TCP三次握手和四次挥手大家都在<计算机网络>课程里学过,还记得当时高超老师耐心地讲解.大学里我遇到的最好的老师大概就是这位了,虽然他只给我讲过<java程序设计>和< ...

  4. 使用 tcpdump 抓包分析 TCP 三次握手、四次挥手与 TCP 状态转移

    目录 文章目录 目录 前文列表 TCP 协议 图示三次握手与四次挥手 抓包结果 抓包分析 TCP 三次握手 数据传输 四次挥手 TCP 端口状态转移 状态转移 前文列表 <常用 tcpdump ...

  5. Java网络编程学习A轮_02_抓包分析TCP三次握手过程

    参考资料: https://huoding.com/2013/11/21/299 https://hpbn.co/building-blocks-of-tcp/#three-way-handshake ...

  6. Wireshark抓包分析TCP 3次握手、4次挥手过程

    Wireshark简介 更多有关Wireshark的教程.软件下载等,请见:http://www.52im.net/thread-259-1-1.html,本文只作简要介绍. 1Wireshark 是 ...

  7. wireshark 抓包分析 TCPIP协议的握手

    wireshark 抓包分析 TCPIP协议的握手 原网址:http://www.cnblogs.com/TankXiao/archive/2012/10/10/2711777.html 之前写过一篇 ...

  8. Wireshark抓包分析TCP建立/释放链接的过程以及状态变迁分析

    Wireshark抓包分析TCP建立/释放链接的过程以及状态变迁分析 一.介绍计算机网络体系结构 1.计算机的网络体系结构 在抓包分析TCP建立链接之前首先了解下计算机的网络通信的模型,我相信学习过计 ...

  9. wireshark抓包分析——TCP/IP协议

    本文来自网易云社区 当我们需要跟踪网络有关的信息时,经常会说"抓包".这里抓包究竟是什么?抓到的包又能分析出什么?在本文中以TCP/IP协议为例,简单介绍TCP/IP协议以及如何通 ...

随机推荐

  1. 比较数字范围:判断number存在(minRange ~ maxRange)范围中

    一.使用场景 当需要比较范围时 如: 这种情况,如果要写三个表达式会很长,这时候就可以用这个工具类进行比较 number:用户输入(长,宽,高) minRange: 0.0 maxRange:33 二 ...

  2. 如何在 Microsoft word中插入代码

    一.工具 方法1.打开这个网页PlanetB; 方法2.或者谷歌搜索syntax highlight code in word documents,检索结果的第一个.如下图: PS. 方法1和2打开的 ...

  3. 前端面试题整理——手写简易jquery

    class jQuery { constructor(selector) { const result = document.querySelectorAll(selector) console.lo ...

  4. PC端免费高效的同声翻译

    疫情期间上网课,对于英语听力较差或者需要观看英文视频,但实际上并没有双语字幕的这种情况下需要找一个实时的翻译工具.虽然说手机上此类软件比较多,但电脑上没有特别合适的应用可以做为一个免费实时翻译.哪怕是 ...

  5. python-正整数的因子展开式

    [题目描述]编写程序,输出一个给定正整数x(x>1)的质因子展开式. [输入格式]请在一行中输入整数x的值. [输出格式]对每一组输入的x,按以下格式输出x的质因子展开式(假如x的质因子分别为a ...

  6. 【VUE】 前端面试题小结

    1,对代码重构的理解: 2,http和https协议有什么区别 3,从输入URL到页面加载全过程 4,前端怎么控制管理路由 5,缓存机制(描述一下 cookies,sessionStorage 和 l ...

  7. 【Android开发】Bitmap的质量压缩法

    public static Bitmap compressImage(Bitmap image) { ByteArrayOutputStream baos = new ByteArrayOutputS ...

  8. js手机号隐藏中间四位

    var tel = "13122223333"; var reg = /^(\d{3})\d{4}(\d{4})$/; tel = tel.replace(reg, "$ ...

  9. 小程序已成为超级APP必选项,逐鹿私域“留量”

    截止2021年底,中国移动互联网月活跃用规模达到11.74亿人,增速逐渐呈放缓趋势,用户渗透率接近天花板.客户的增长速度越趋于平缓,品牌在不同成长阶段也要适应增长节奏的变化,越来越多主流商家不得不利用 ...

  10. 关于croptool无法裁剪分辩率过低的图片

    在使用croptool.js时,如果图片的分辨率过低,则无法裁剪超过分辨率的大小.比如说 function chooseImg(event){ var files = event.files || e ...