一. 实验目的

通过本次实验,掌握使用Wireshark抓取TCP/IP协议数据包的技能,能够深入分析TCP帧格式及“TCP三次握手”。通过抓包和分析数据包来理解TCP/IP协议,进一步提高理论联系实践的能力。

二. 实验内容

1.本次实验重点:利用Wireshark抓TCP包及TCP包的分析。

2.本次实验难点:分析抓到的TCP包。

3.本次实验环境:Windows 7,Wireshark。

4.本次实验内容:

TCP协议是在计算机网络中使用最广泛的协议,很多的应用服务如FTP,HTTP,SMTP等在传输层都采用TCP协议,因此,如果要抓取TCP协议的数据包,可以在抓取相应的网络服务的数据包后,分析TCP协议数据包,深入理解协议封装,协议控制过程以及数据承载过程。两幅图分别是TCP帧格式及TCP三次握手。

三.实验过程

1. TCP包抓取及分析过程如下:

第一步,确定使用的协议,使用HTTP服务。选择http://www.sina.com.cn/作为目标地址。

第二步,启动抓包:点击【start】开始抓包,在浏览器地址栏输入http://www.sina.com.cn。

第三步,通过显示过滤器得到先关数据包:通过抓包获得大量的数据包,为了对数据包分析的方便,需要使用过滤器,添加本机IP地址和TCP协议过滤条件。

(1)打开命令提示符,通过ipconfig /all来查看本机IP地址。

(2)在工具栏上的Filter对话框中填入过滤条件:tcp and ip.addr==196.168.100.131,过滤结果如下:

结果发现效果不是很好,于是将过滤条件中的IP地址更换为http://www.sina.com.cn的IP地址,操作过程如下:

(1)打开命令提示符,通过ping www.sina.com.cn来查看目标IP地址。

(2)打开命在工具栏上的Filter对话框中填入过滤条件:tcp and ip.addr==218.30.66.248,过滤结果如下:

其中,红色框内即为一个三次握手过程:

第四步,分析TCP数据包,根据第一幅图中的数据帧格式,分析TCP包的各部分。

  • 原端口/目的端口(16bit)。如下图所示,源端口为443,标识了发送进程;目的端口为3201,标识了接收方进程。

  • 序列号(32bit)。如下图所示,发送序列号Sequence Number为0,标识从源端向目的端发送的数据字节流,它表示在这个报文端中的第一个数据字节的顺序号,序列号是32位的无符号类型,序号表达达到2^32 - 1后又从0开始, 当建立一个新的连接时,SYN标志为1,系列号将由主机随机选择一个顺序号ISN(Initial Sequence Number)。

  • 确认号(32bit)。如下图所示,确认号Acknowledgment Number为1,包涵了发送确认一端所期望收到的下一个顺序号。因此确认序列号应当是上次成功接收到数据的顺序号加1。只有ACK标志为1时确认序号字段才有效。TCP为应用层提供全双工服务,这意味着数据能在两个方向上独立的进行传输,因此连接的两断必须要保证每个方向上的传输数据顺序。

  • 偏移(4bit)。如下图所示,偏移32bytes,这里的偏移实际指的是TCP首部的长度Header length,它用来表明TCP首部中32bit字的数目,通过它可以知道一个TCP包它的用户数据从哪里开始。

  • 保留位(6bit)。如下图所示,保留位Reserved未设置。

  • 标志(6bit)。在TCP首部中有6个标志比特,他们中的多个可同时被置为1。如下图所示:

URG(Urgent Pointer Field Significant):紧急指针标志,用来保证TCP连接不被中断,并且督促中间设备尽快处理这些数据,图中其值为1。

ACK(Acknowledgement Field Signigicant):确认号字段,该字段为1时表示应答字段有效,即TCP应答号将包含在TCP报文中,图中其值为1。

PSH(Push Function): 推送功能,所谓推送功能指的是接收端在接收到数据后立即推送给应用程序,而不是在缓冲区中排队,图中其值为0。

RST(Reset the connection): 重置连接,不过一搬表示断开一个连接,图中其值为0。

SYN(Synchronize sequence numbers):同步序列号,用来发起一个连接请求,图中其值为1。

FIN(No more data from sender)表示发送端发送任务已经完成(既断开连接)。

  • 窗口大小(16bit)。 如下图所示,窗口大小Windows size value为29200,表示源主机最大能接收29200字节。

  • 校验和(16bit)。如下图所示,校验和Checksum为0xc24f,包含TCP首部和TCP数据段,这是一个强制性的字段,一定是由发送端计算和存储,由接收端进行验证。

  • 紧急指针(16bit)。如下图所示,URG标志为1,只有当URG标志置为1时该字段才有效,紧急指针是一个正的偏移量,和序号字段中的值相加表示紧急数据最后一个字节的序号。TCP的紧急方式是发送端向另一段发送紧急数据的一种方式。

  • TCP选项。至少1个字节的可变长字段,标识哪个选项有效。Kind=0:选项表结束, Kind=1:无操作, Kind=2:最大报文段长度,Kind=3:窗口扩大因子, Kind=8:时间戳。如下图所示,Kind为2,代表最大报文长度MSS size。

  • 数据部分。当前数据包的数据部分,如下图所示:

2. TCP三次握手:

第一次握手数据包:客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接,如下图所示(第一条):

第二次握手的数据包:服务器发回确认包, 标志位为 SYN,ACK. 将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即0+1=1,如下图所示(第二条):

第三次握手的数据包:客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方。在进过三次握手后和服务器建立了TCP连接,如下图所示(第三条):

Wireshark抓包——TCP协议分析相关推荐

  1. Wireshark抓包——ICMP协议分析

    内容:使用Wireshark抓包,分析较简单的数据包. 环境:Windows 7,Wireshark. ping是用来测试网络连通性的命令. 一旦发出ping命令,主机会发出连续的测试数据包到网络中, ...

  2. 【计算机网络】 课程大作业:利用Wireshark抓包并进行分析

    目录 一:任务目的 二:任务内容 三:提交形式及时间 四:步骤 五.感悟 一:任务目的 (1)了解计算机网络TCP/IP的分层实现过程,了解不同层次PDU的逐层封装与解封过程: (2)熟悉网络通信的实 ...

  3. wireshark抓包TCP数据包

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.准备工作 二.操作步骤 1.硬件连接 1.1硬件连接方式 1.2确认硬件连接成功 1.3 网络助手建立连接 1.4 配置 ...

  4. Wireshark抓包页面的登录信息

    第一步:打开wireshark,选择网卡配置 第二步:使用捕获过滤器,只抓取源IP为本地主机的,开始wireshark抓包 菜单栏:捕获->选项->捕获窗口 第三步:打开登录网页,输入账号 ...

  5. 计算机网络实验 ——wireshark抓包简要分析TCP、UDP协议

    [计算机网络实验 --wireshark抓包简要分析TCP.UDP协议] (1)分析 TCPheader: Source Port:16bit源端口,数据发起者的端口号: Destination Po ...

  6. 计算机网络——Wireshark软件使用与协议分析(ARP协议、IP与ICMP分析)

    实验4   Wireshark软件使用与协议分析 4.1-----ARP协议分析 一.实验目的 学习 Wireshark 的基本操作,抓取和分析有线局域网的数据包:掌握以太网 MAC帧的基本结构,掌握 ...

  7. 网络编程_5(超时检测+UNIX域套接字+抓包工具+包头分析)

    一二章请点击:网络编程_1(网络基础+跨主机传输) 三四章请点击:网络编程_2(网络属性+UDP(UDP模型+广播组播)) 第五章请点击:网络编程_3(TCP) 第六章请点击:网络编程_4(IO模型) ...

  8. 文件下载(三):wireshark抓包文件下载整个过程

    Wireshark抓包 TCP三次握手 ![在这里插入图片描述](https://img-blog.csdnimg.cn/59e3da1be12e42038bf1f6f82e4ca20a.png Ma ...

  9. 用wireshark抓包分析TCP协议的三次握手连接、四次握手断开

    用wireshark抓包分析TCP协议的三次握手连接.四次握手断开 一.TCP三次握手图解 二.TCP得四次挥手过程 三.用Fiddler抓包,分析验证一个HTTPS网站的TCP连接过程 一.TCP三 ...

最新文章

  1. C语言百度翻译API的使用,c语言怎么翻译? 程序怎么运行?
  2. python numpy创建矩阵、并归一化_每通道以numpy为单位对一批图像进行归一化处理...
  3. dedecms mysql 支持_安装dedecms MySQL 支持 不支持无法使用本系统 GD 支持Off解决办法...
  4. Java的超类/基类Object
  5. powershell awk_谈谈 PowerShell
  6. java请编写公共类继承抽象类_(Java相关)怎么理解抽象类,继承和接口?
  7. 2021巨量引擎汽车直播行业研究报告
  8. python距离向量路由算法_python算法练习——动态规划与字符串的编辑距离
  9. 微课|中学生可以这样学Python(2.3.4节):例2-2
  10. Leetcode 256.粉刷房子
  11. 在云栖小镇,新华三呈现物联网金秋硕果
  12. DotPass for Mac(密码生成器)
  13. 下载《Hadoop权威指南》的气象数据
  14. RCOM串口绘图软件
  15. 数据结构——“双向循环链表“ 易懂刨析双向循环链表(图解+代码)
  16. Java冒泡排序法 降序
  17. 【网络安全】黑客攻防与入侵检测(练习题)
  18. 给我一篇假论文,我能骗倒半个地球
  19. 基于ARM9的无线电台网络控制系统的设计与研究
  20. SylixOS QT配置

热门文章

  1. 如何写第一篇研究论文 How to Write Your First Research Paper
  2. Android studio 生成JavaDoc文档
  3. 计算机声音打不开怎么办,电脑声音打不开怎么办
  4. Django框架学习---入门-内容复习(2.1)
  5. 线程知识学习七——并发(辅助类)
  6. 每年六一儿童节,牛客都会准备一些小礼物去看望孤儿院的小朋友,今年亦是如此。HF作为牛客的资深元老,自然也准备了一些小游戏。其中,有个游戏是这样的:首先,让小朋友们围成一个大圈。然后,他随机指定一个数m
  7. 奇淫技巧:熟练使用Fetch一个干翻PostMan的顶级技巧
  8. 手机和电脑基于java的socket简单通信
  9. [Python Scrapy爬虫] 二.翻页爬取农产品信息并保存本地
  10. 浏览器兼容性版本问题与解决方案