【计算机网络实验】TCP协议的抓包分析:三次握手四次挥手UDP和TCP的区别(超详细教程)

计算机网络实验——TCP协议抓包分析


文章目录

  • 计算机网络实验——TCP协议抓包分析
    • 一、基础知识点
      • 1、运输层两个重要协议的特点对比(TCP和UDP)
      • 2、TCP报文的格式
      • 3、常见的TCP报文标识字段(FLAG字段)
      • 4、TCP连接的建立过程及理解——三次握手
      • 5、TCP释放连接的过程及理解——四次挥手
    • 二、实验操作
      • 1、获取IP地址
      • 2、监听并抓包
      • 3、找到并分析三次握手的数据包
      • 4、找到并分析四次挥手的数据包
    • 三、补充
      • 1、wireshark各颜色的标识的含义?
      • 2、实验目的
      • 3、实验内容


一、基础知识点


  • 1、运输层两个重要协议的特点对比(TCP和UDP)

    • UDP协议(用户数据报协议):UDP协议是无连接且不保证可靠交付的,面向报文且没有拥塞控制,支持一对一的通信也支持一对多、多对多、多对一的交互通信。
    • TCP协议(传输控制协议):TCP协议面向连接且保证可靠交付,提供全双工通信,是面向字节流的点对点连接,将连接作为最基本的抽象。

  • 2、TCP报文的格式

在这里插入图片描述


  • 3、常见的TCP报文标识字段(FLAG字段)

    • 紧急URG:当标志字段(flag)的URG=1时,表示紧急指针字段有效,表明此数据包中有紧急数据,应该尽快传送。
    • 确认ACK:当且仅当ACK=1时,确认号字段才是有效的,反之无效。TCP规定,在连接建立以后所有传送的报文的ACK必须为置为1。
    • 推送PSH:当两个应用进程进行交互式通信时,将PSH设置为1使得报文在被接收方接收以后尽快推送并交付给应用进程,不再等到缓存填满以后再向上交付。
    • 复位RST:当RST=1时,表明TCP链接中出现严重差错,此时必须释放后重新建立连接。
    • 同步SYN:用来在建立连接时同步序列号,当SYN=1,ACK=0时表示这是一个请求建立连接的报文;当SYN=1,ACK=1时,表示接收方同意建立连接。
    • 终止FIN:表示停止、终止TCP链接,当FIN=1时表明此报文段的发送方已经完成数据的发送,申请释放TCP连接

  • 4、TCP连接的建立过程及理解——三次握手

    在这里插入图片描述

    • TCP的连接建立需要经历三次握手:第一次握手是由客户端发出,将SYN标志置1,申请与服务器端建立连接,仿佛是说“你好,聊天吗”;
    • 服务器端收到请求以后确认与其建立连接,回复一个确认数据包,SYN和ACK标志置1,这是第二次握手,仿佛是回复“可以,你说吧”;
    • 客户端收到来自服务器端的确认以后,对其确认再进行一次确认,将ACK标志置1,表示确认,仿佛是说“收到,那我开始说了”,至此完成第三次握手,TCP链接正式建立,客户端会向上层汇报,开始数据传送。

  • 5、TCP释放连接的过程及理解——四次挥手

    在这里插入图片描述
    • TCP链接的释放需要经历四次挥手:第一次挥手一般由最开始发起连接的一方(一般是客户端)主动提出,将FIN标志置1,表示提出终止连接的申请,部分数据包可能也会将ACK标志置1,可以理解为对之前所接受的数据进行确认,这是第一次挥手,仿佛是在跟服务器端说“我要挂了,你还有事吗”;
    • 在收到客户端的终止TCP连接申请以后,服务器端会将ACK标志置1发还客户端,表示对申请的确认,这是第二次挥手,仿佛是在回复“已经收到申请,你先别急,我再想想还有没有事,等一下再通知你”;
    • 完成第二次挥手以后,服务器端会向上汇报,通知应用进程停止接受数据,并确认是否还有尚未发送完成的数据,若无,则将FIN和ACK标志置1,发还给客户端,申请释放连接,这是第三次挥手,仿佛是在说“我这边没事了,你可以挂了”;
    • 客户端收到第三次挥手的数据包以后会发送对这个数据包的确认数据包,将ACK置1,表示确认断开连接,此时TCP连接将进入预关闭状态,客户端将设置一个时间等待计时器(TIME-WAIT timer)并等待2MSL时间确保服务器端彻底挂掉,防止“诈尸”,若过了2MSL时间以后服务器端没有任何数据包发送过来,客户端就能彻底确认服务器端已经正常释放连接,自己也就会随之释放连接,至此,四次挥手结束,TCP连接彻底被释放。

二、实验操作


  • 1、获取IP地址

使用控制台命令获取目标网站的IP地址,方便后续抓包的时候进行分析:输入ping xxxx
在这里插入图片描述

这里ping不到是因为我ping的是我们学校的官网,可能有设置了过滤ping命令。没关系,除了ping命令以外还可以使用nslookup命令:输入nslookup xxxx
在这里插入图片描述

有些出来的ip地址很奇怪很长,这个是ipv6的地址,较短的是ipv4的


  • 2、监听并抓包

打开wireshark,选择本机上网的接口进行监听,筛选条件设置为_ws.col.protocol==”TCP”,打开浏览器并访问目的网址(注意,此时后台的进程除了wireshark和浏览器以外的全都要关掉,防止产生不必要的数据包)


  • 3、找到并分析三次握手的数据包

    在这里插入图片描述在这里插入图片描述

    • 找到一个[SYN],一个[SYN ACK],还有一个[ACK]的就是三次握手的全部数据包了,这三个包不一定是连在一起的,要找自习一点,在wireshark的info列可以很清楚的看到。
    • 另外还要强调一点,在找数据包的时候不能只关注源地址和目的地址是否正确,要记住TCP协议是一个传输层的协议,传输层提供的是应用进程之间的逻辑通信,端口这一个概念在运输层是非常重要的,所以我们要看清楚源端口和目的端口,有时候本机会有多个进程(多个端口)和目标网站进行通信,每个端口就都会建立TCP连接,不同端口的包是不一样的,不论是三次握手还是四次挥手都要注意这一点。
    • 打开数据包,重点关注以下五个字段即可:
      • source port源端口
      • destination port目的端口
      • sequence number序列号:seq的值
      • acknowledgement number确认号:ack的值
      • flag标志字段:判断包的类型、含义
        在这里插入图片描述

  • 4、找到并分析四次挥手的数据包

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    • 一共四个包,两个[FIN ACK](也有可能不带ACK),两个[ACK],注意,一定是FIN ACK作为第一次挥手,然后接收方连发一个ACK和一个FIN ACK,最后发送方回一个ACK。
    • 注意端口号前后是否一致
    • 也有可能只抓到了三个包,这是因为当服务器端收到第一次挥手的包以后发现自己没有什么数据可以再发的了,于是就把第二次挥手和第三次挥手的数据包合并发送了,这种情况会抓到两个[FIN ACK]和一个[ACK]的包。
    • 注意,这四个包不一定是连在一起的,特别是在第一次挥手以后服务器端如果还有数据要发,则会在第一次挥手和第二次挥手的包之间产生其他的数据包,抓包结束在找数据包的时候比较费时间,一定要细心。只要四个包的目的端口和源端口都是那两个,而且seq和ack的值能够对得上,就说明这四个就是四次握手的包。

三、补充


  • 1、wireshark各颜色的标识的含义?

    在这里插入图片描述

  • 2、实验目的

熟悉网络协议分析的原理。
熟悉网络协议分析软件wireshark的使用。
加深对TCP连接建立三次握手过程、数据传输过程和释放过程(四次挥手)细节的掌握。
加深对TCP协议的理解。


  • 3、实验内容

学习使用网络协议分析软件wireshark。
捕捉所需要TCP报文段的三次握手和四次挥手的各个字段,并分析其内容。
分析TCP数据报头部各个字段

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/633920.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RPC原理技术

RPC原理技术 背景介绍起源组件实现工作原理 背景 本文内容大多基于网上其他参考文章及资料整理后所得,并非原创,目的是为了需要时方便查看。 介绍 RPC,Remote Procedure Call,远程过程调用,允许像调用本地方法一样调…

LiveGBS流媒体平台GB/T28181用户手册-电子地图:视频标记在地图上播放、云台控制、语音对讲

LiveGBS流媒体平台GB/T28181用户手册-电子地图:视频标记在地图上播放、云台控制 1、电子地图1.1、播放1.2、云台控制对讲 2、搭建GB28181视频直播平台 1、电子地图 1.1、播放 1.2、云台控制对讲 点击 后,如果是球机就可以云台控制,支持对讲的摄像头&…

【openlayers系统学习】1.3交互-修改要素(features)

三、修改要素 Modifying features 修改要素 现在我们有一种方法可以让用户将数据加载到编辑器中,我们希望让他们编辑功能。为此,我们将使用 Modify​ 交互,将其配置为修改矢量源上的功能。 首先,在 main.js​ 中导入 Modify​ …

使用字节豆包大模型在 Dify 上实现最简单的 Agent 应用(四):AI 信息检索

这篇文章,我们继续聊聊,如何折腾 AI 应用,把不 AI 的东西,“AI 起来”。在不折腾复杂的系统和环境的前提下,快速完成轻量的 Agent 应用。 写在前面 在上一篇文章《使用 Dify、Meilisearch、零一万物模型实现最简单的…

Leetcode 876. 链表的中间结点

题目描述 给你单链表的头结点 head ,请你找出并返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 1: 输入:head [1,2,3,4,5] 输出:[3,4,5] 解释:链表只有一个中间结点&#xff0c…

【关键字】——register在C语言中的使用

register——寄存器 了解register之前,应该先认识认识寄存器,何为寄存器? 在计算机中,数据可以存储在远程二级存储(网盘,服务器),本地二级存储(本地磁盘)&am…

Linux多线程系列三: 生产者消费者模型,信号量使用,基于阻塞队列和环形队列的这两种生产者消费者代码的实现

Linux多线程系列三: 生产者消费者模型,信号量,基于阻塞队列和环形队列的这两种生产者消费者代码的实现 一.生产者消费者模型的理论1.现实生活中的生产者消费者模型2.多线程当中的生产者消费者模型3.理论 二.基于阻塞队列的生产者消费者模型的基础代码1.阻塞队列的介绍2.大致框架…

零基础小白撸空投攻略:空投流程是什么样的? 如何操作?

在Web3的世界中,空投(Airdrop)是一种常见的营销和推广策略,通过向特定用户群体免费分发代币,项目方希望能够吸引更多的用户和关注。对于许多刚刚接触加密货币和区块链的新手来说,都会疑惑空投的流程究竟是什…

CTFshow之文件上传web入门151关-161关解密。包教包会!!!!

这段时间一直在搞文件上传相关的知识,正好把ctf的题目做做写写给自字做个总结! 不过有一个确定就是所有的测试全部是黑盒测试,无法从代码层面和大家解释,我找个时间把upload-labs靶场做一做给大家讲讲白盒的代码审计 一、实验准…

STM32自己从零开始实操02:输入部分原理图

一、触摸按键 1.1指路 项目需求: 4个触摸按键,主控芯片 TTP224N-BSBN(嘉立创,封装 TSSOP-16),接入到 STM32 的 PE0,PE1,PE2,PE3。 1.2走路 1.2.1数据手册重要信息提…

Redis常见数据类型(4) - hash, List

hash 命令小结 命令执行效果时间复杂度hset key field value设置值O(1)hget key field获取值O(1)hdel key field [field...]删除值O(k), k是field个数hlen key计算field个数O(1)hgetall key获取所有的field-valueO(k), k是field的个数hmget field [field...]批量获取field-va…

Orcle查询组合字段重复的数据

oracle拼接字符串 在Oracle中,可以使用||运算符或CONCAT函数来拼接字符串。 使用||运算符: SELECT Hello, || World! AS concatenated_string FROM dual;使用CONCAT函数: SELECT CONCAT(Hello, , World!) AS concatenated_string FROM d…

智慧医疗时代:探索互联网医院开发的新篇章

在智慧医疗时代,互联网医院开发正引领着医疗服务的创新浪潮。通过将先进的技术与医疗服务相结合,互联网医院为患者和医生提供了全新的互动方式,极大地提升了医疗服务的便捷性和效率。本文将深入探讨互联网医院的开发,介绍其技术实…

如何彻底搞懂迭代器(Iterator)设计模式?

说起迭代器(Iterator),相信你并不会陌生,因为我们几乎每天都在使用JDK中自带的各种迭代器。那么,这些迭代器是如何构建出来的呢?就需要用到了今天内容要介绍的迭代器设计模式。在日常开发过程中&#xff0c…

多尺度注意力机制突破性成果!低成本、高性能兼备

与传统的注意力机制相比,多尺度注意力机制引入了多个尺度的注意力权重,让模型能够更好地理解和处理复杂数据。 这种机制通过在不同尺度上捕捉输入数据的特征,让模型同时关注局部细节和全局结构,以提高对细节和上下文信息的理解&a…

开源大模型与闭源大模型:技术哲学的较量

目录 前言一、 开源大模型的优势1. 社区支持与合作1.1 全球协作网络1.2 快速迭代与创新1.3 共享最佳实践 2. 透明性与可信赖性2.1 审计与验证2.2 减少偏见与错误2.3 安全性提升 3. 低成本与易访问性3.1 降低研发成本3.2 易于定制化3.3 教育资源丰富 4. 促进标准化5. 推动技术进…

3d选择模型后不能旋转什么原因?怎么解决?---模大狮模型网

在3D建模和渲染的过程中,旋转模型是常见的操作。然而,有时在选择了模型后,却发现无法进行旋转,这可能会让许多用户感到困扰。本文将探讨3D选择模型后不能旋转的可能原因,并提供相应的解决方法。 一、3D选择模型后不能旋…

Zynq-Linux移植学习笔记之68- 国产ZYNQ添加用户自定义版本信息

1、背景介绍 在使用复旦微zynq时,有时候虽然针对uboot源码进行了改动,但由于uboot基线版本只有一个(2018-07-fmsh),导致无法区分版本信息,虽然可以通过编译时间来区分,但没有版本号直观。内核也…

快速搭建 WordPress 外贸电商网站指南

本指南全面解析了在 Hostinger 平台上部署 WordPress 外贸电商网站的详细步骤,涵盖托管方案选择、WordPress 一键安装、主题挑选与演示数据导入、主题个性化定制、SEO插件插件 AIOSEO 安装、通过 GTranslate 实现多语言自动翻译、地区访问控制插件,助力用…

高中数学:平面向量-数量积(向量与向量的乘积)与投影

一、引题 物理上的力做功 二、数量积与投影 1、数量积 θ的范围是[0,π] 2、投影 向量的投影,依然是一个向量! 3、运算法则 易错点: 4、重要性质 这里对性质(2)要注意一下:如果 a → \mathop{a}\limits ^{\rightarrow…