-
WireShark分析TCP协议
2014-09-29 15:20:14摘要: 利用wireshark分析TCP协议的报文,和其基本行为,包括三次握手,中间信息的交互,和最后的断开连接。其中通过中间信息的交互,可以看出TCP的累积式确认。 一:基本TCP报文分析摘要:
利用wireshark分析TCP协议的报文,和其基本行为,包括三次握手,中间信息的交互,和最后的断开连接。其中通过中间信息的交互,可以看出TCP的累积式确认。一:基本TCP报文分析
我们来看一个简单的TCP报文,现在蓝字选中的是源端口号,我们可以看到在这个报文中是14065,下面对应的是相应的二进制代码,我们可以看到的确是16bit。紧随其后的16bit就是目的端口号。
下面是序号,Sequence number: 1169。接下来的32bit是确认号,Acknowledgement number: 19353。再后面是首部长度,Header length: 20 bytes,和未用的3bit数据。
0= Urgent:Not set,1=Acknowledgement: set,0= Push:Not set,0= Reset:Not set,0= Syn:Not set,0= Fin:Not set,这些表示的是一些标识位,是URG紧急标识,ACK确认标识,PSH推送标识,RST、SYN、FIN用于建立和结束连接。window size value:65535 表示接收窗口。
二:三次握手分析
三次握手的第一步,客户机端会向服务器端发送一个特殊的TCP报文段,这个报文段的SYN被置为1,并会发送一个起始序号seq。我们看到SYN为1,且Sequence number=0,这样,面对这样的请求报文段,服务器听该返回一个SYN=1,返回自己的初始seq,并且要求主机发送下一个报文段的序号,ack=1。下面是服务端实际返回的报文。
正如我们所期待的那样,服务器返回了自己的seq=0,并且要求主机端发送下一个报文段,并且SYN=1。这样主机端就应该返回seq=1,ack=1,要求服务端发送下一个报文,并且SYN=0,结束建立连接阶段,结束三次握手。
主机端返回了seqence number=1,acknowledgement number=1,SYN=10。这样三次握手就基本结束,开始真正的数据传送阶段。
三:信息的交互
建立了三次握手后,我们就开始利用这个链接来传送信息了。下面我们看看经过三次握手后的第四个TCP报文段。这是服务器返回来的报文段。我们惊奇的发现服务器返回了ack=554,即请求第554Byte的数据,而这553Bytes是什么时候发出去的呢,我们想到了在第三次握手的时候,客户端发送的TCP是能够携带数据的。怎么验证是否携带了553Bytes数据呢,我们想到了HTTP协议封装的报文,我我们来验证一下是否是553Bytes,打开HTTP协议如下。
我们看到,HTTP协议封装的报文,长度为Bytes in flight:553。表示已经发送了553Bytes,所以,服务器理应返回一个ack=554的确认,以表示接收到了553Bytes以前的数据,希望接受554bytes以及以后的数据。而上面的第四个报文也正是这么做的。
服务端返回了ack=554之后,服务端没有继续停下,而是继续向客户端发送了两个报文段。我们来看下第五、六个报文段。第五个报文段发送了seq=1,ack=554告诉服务端,请求你的554数据,我这是第一个数据,但此报文段里有1380bytes。发完后服务端又发送了第六个报文,如下。
服务端发送了seq=1381,ack=554,TCP segment data=1380 Bytes,Bytes in flight=2760。
这表示:我请求第554Bytes,这是我的第1381 Bytes,报文段里一共有1380Bytes,一共传输了2760Bytes。
这次以后,服务端就暂时歇会了,等待客户端的确认。客户端也确实返回了第七个报文段,如下。seq=554,ack=2761.表示:这是我的第554Bytes,收到了前面的2760个Bytes,请求2761个bytes。这个报文之后,服务端会继续给客户端传送数据,这里就不一一列出了。
我们看到其中服务端多次发送给客户端报文段,而客户端只返回了一个当前正确传输的最大字段,我们可以初步看出TCP是累积式确认的。
四:断开连接
断开连接时,要发送FIN=1,并且对方要回复ACK=1。我们来看下截取的报文段。我们看到FIN=1。
返回了ACK=1,结束连接。
-
利用Wireshark分析TCP三次握手
2016-03-16 21:13:15首先打开 http://www.baidu.com这个网址... ... ...我们可以看到在出现了三条TCP记录之后才出现了HTTP这也更加相信HTTP是基于TCP协议的。 第一次TCP握手 客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端首先打开 http://www.baidu.com这个网址进行抓包。
首先在过滤器中输入 http过滤
找到 GET /* /HTTP/1.1
我们可以看到在出现了三条TCP记录之后才出现了HTTP这也更加相信HTTP是基于TCP协议的。
第一次TCP握手
客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接。 如下图
第二次TCP握手
服务器发回确认包, 标志位为 SYN,ACK. 将确认序号(AcknowledgementNumber)设置为客户的I S N加1以.即0+1=1, 如下图
三次握手的数据包
客户端再次发送确认包(ACK)SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1, 如下图:
-
wireshark分析TCP数据包
2017-09-09 22:05:16TCP/IP协议不清楚请回看TCP/IP协议理论在虚拟机运行ubuntu,通过windows下的cuteftp连接ubuntu,利用wireshark进行抓包分析。出现如下数据帧(注意wireshark如何过滤消息): 其中47,48,49分别是三次握手对应的帧...TCP/IP协议不清楚请回看TCP/IP协议理论
在虚拟机运行ubuntu,通过windows下的cuteftp连接ubuntu,利用wireshark进行抓包分析。出现如下数据帧(注意wireshark如何过滤消息):
其中47,48,49分别是三次握手对应的帧信息。三次握手
47帧/握手1
上面信息已经非常明确。这是一个客户机请求连接帧。只设置了SYN标志位。并且初始化序列号和确认应答号都为0.
48帧/握手2
信息明确,这是服务器到客户机的握手2,服务器将客户机的序列号+1作为确认序号,并将自己的序列号初始化为0.
49帧/握手3
三次握手仅仅交换IP数据报TCP的首部,当握手成功之后,就可以通过上层FTP协议交换信息了。
-
Wireshark抓包——TCP协议分析
2019-06-11 00:34:17通过本次实验,掌握使用Wireshark抓取TCP/IP协议数据包的技能,能够深入分析TCP帧格式及“TCP三次握手”。通过抓包和分析数据包来理解TCP/IP协议,进一步提高理论联系实践的能力。 二. 实验内容 1.本次实验重点:...一. 实验目的
通过本次实验,掌握使用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连接,如下图所示(第三条):
-
TCP协议中的三次握手和四次挥手+利用wireshark分析包
2016-01-13 10:17:04建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示: 先来看看如何建立连接的。 首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。... -
wireshark分析IP协议
2017-09-07 17:05:49TCP/IP协议不清楚请回看TCP/IP协议理论1、ping 10.13.3.213 -l 3000通过ping同一个局域网内的主机,其中通过了两个路由器,并且数据大于3000,IP数据报会分片。ping利用了IP和ICMP协议。可以用来分析这两个协议。 ... -
(计网实验3) 利用 Wireshark 进行协议分析
2019-11-07 10:40:25实验过程Wireshark 的使用分析HTTP协议HTTP GET/response 交互HTTP 条件 GET/response 交互TCP 分析浏览追踪信息TCP 基础 1.实验目的 熟悉并掌握 Wireshark 的基本操作,了解网络协议实体间进行交互以及报文交换的... -
实战利用WireShark对Telnet协议进行抓包分析
2016-01-10 17:10:30Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在... -
利用Wireshark加Lua分析专有网络协议
2014-03-15 19:11:46实战过程: 1.安装wireshark、lua。 2.利用lua为wirashark写一个协议的dissector,并部署到lua上。...其中要注意的一点是TCP协议中的粘包现象(如果是UDP则不考虑), 解决这点的关键是在dissector(buffer, pinfo, tr -
wireshark tcp三次握手
2016-08-03 09:05:18ubuntu下自己写tcp协议(server.c,client.c,Makefile),通过tcpdump生成 .cap文件后,利用wireshark分析tcp三次握手的整个过程 -
图解Wireshark协议分析实例
2016-05-19 15:58:32分析实例来自于 https://wiki.wireshark.org/SampleCaptures 一 MPTCP协议相关分析 ...MPTCP协议是一种利用多条路径并发传输的传输层协议,可以提高端到端的吞吐率,增加网络利用率。 IPv6到来的时候,主机的多地址 -
Wireshark抓包——IP协议分析
2019-06-09 23:12:10一. 实验目的 通过本次实验,掌握使用Wireshark抓取TCP/IP协议...1.本次实验重点:利用Wireshark抓IP包及IP包的分析。 2.本次实验难点:分析抓到的IP包。 3.本次实验环境:Windows 7,Wireshark。 4.本次实验... -
计算机网络实验: 使用Wireshark抓包工具进行应用层和传输层网络协议分析(TCP部分)
2020-06-04 15:14:23在这一部分,我们通过与远程服务器之间发送 150KB 的文件来分析 TCP 数据包的发送和接收。研究内容包括: TCP利用序列号和确认号来提供的可靠数据传输 TCP 拥塞控制算法中的慢启动和拥塞避免 TCP 协议的流控制策略 ... -
计算机网路实验三 TCP和UDP协议分析
2020-11-26 16:56:202、 利用Wireshark对TCP和UDP进行协议分析 二、 实验环境 与因特网连接的计算机网络系统;操作系统为windows;Wireshark、IE等软件。 三、 实验步骤 1、 捕获大量的由本地主机到远程服务器的TCP分组 (1) 启动... -
WireShark抓取数据后(TCP、数据链路层、IP层)UDP层分析
2019-12-03 09:57:25数据的获取与分析利用————WinShark抓取数据后(TCP、数据链路层、IP层)UDP层分析 WinShark抓取数据后(TCP、数据链路层、IP层)UDP层分析 1、安装WireShark 2、访问网站主页,并使用工具获取数据包。 图1... -
TCP/IP网络协议及流程分析
2017-08-18 20:39:37利用wireshark抓包,分析: (1)TCP/IP协议的报文封装方式; (2)主要的TCP/IP协议及其层次结构; (3)以典型网络应用(PPPoE,HTTP,FTP,SMTP/POP3等)的工作原理及流程(例如,以http://www.tsinghua.edu.cn为... -
解决wireshark 抓包分析 openssl s_server及s_client通讯不能解析TLSv1.2协议内容
2017-08-17 15:18:28openssl s_server默认监听端口4433,wireshark在分析此端口时只会按照tcp协议结构解析出协议中的内容。 解决方案: 利用s_server的 -accept蒋坚挺端口调整为443,重新用s_client连接测试,发现wireshark可以正常... -
西北工业大学、计算机网络实验内容,TCP协议,西工大,
2017-10-11 09:47:25西北工业大学、计算机网络实验内容,ICMP协议,西工大,利用抓包工具wireshark来分析ICMP协议; -
计算机网络实验高分报告.docx
2020-07-28 17:18:09目 录 实验一 Wireshark的安装与使用 3 实验二 使用Wireshark分析以太网帧与ARP协议 6 ...实验六 使用Wireshark分析TCP协议 26 实验七 利用Wireshark分析协议HTTP 32 实验八 利用Wireshark分析DNS协议 37 -
wireshark的使用教程--用实践的方式帮助我们理解TCP/IP中的各个协议是如何工作的
2011-08-07 19:37:26wireshark是一款抓包软件,比较易用,在平常可以利用它抓包,分析协议或者监控网络,是一个比较好的工具,因为最近在研究这个,所以就写一下教程,方便大家学习。 这里先说Wireshark的启动界面和抓包界面 启动界面... -
Wireshark数据包分析实战(第二版)
2014-06-29 14:24:1610.2漏洞利用 10.2.1极光行动 10.2.2ARP缓存中毒攻击 10.2.3远程访问特洛伊木马 10.3小结 第11章 无线网络数据包分析 11.1物理因素 11.1.1一次嗅探一个信道 11.1.2无线信号干扰 11.1.3检测和分析信号干扰 11.2无线... -
Wireshark网络分析实战 中文完整版带目录 PDF
2016-04-12 07:39:349.2 配置Preferences窗口内protocol选项下的UDP和TCP协议参数,为排除排障 做准备 209 9.3 TCP连接故障 213 9.4 TCP重传现象——源头及原因 219 9.5 重复确认(duplicate ACKs)和快速重传(fast retransmissions)... -
wireshark的使用教程--用实践的方式帮助我们理解TCP/IP中的各个协议是如何工作的 .
2014-08-10 10:44:57wireshark是一款抓包软件,比较易用,在平常可以利用它抓包,分析协议或者监控网络,是一个比较好的工具,因为最近在研究这个,所以就写一下教程,方便大家学习。 这里先说Wireshark的启动界面和抓包界面 启动界面... -
wireshark的使用教程--用实践的方式帮助我们理解TCP/IP中的各个协议是如何工作的...
2011-08-07 19:37:00wireshark是一款抓包软件,比较易用,在平常可以利用它抓包,分析协议或者监控网络,是一个比较好的工具,因为最近在研究这个,所以就写一下教程,方便大家学习。 这里先说Wireshark的启动界面和抓包界面 启动界面... -
ws协议与http协议的异同_利用Telnet进行HTTP访问过程的协议分析
2021-01-02 05:02:47本文详细介绍了一次Telnet进行HTTP访问的过程,并对该过程进行协议上的分析以及...三次握手流程3.TCP协议字段详解4.HTTP报文分片传输与重组5.TCP的seq和ack变化过程6.4次挥手的现实情况--简化版的3次挥手今天才... -
利用Telnet进行HTTP访问过程的协议分析
2019-04-03 13:12:18本文详细介绍了一次Telnet进行HTTP访问的过程,并对该过程进行协议上的分析以及wireshark抓包分析。文章只是自己记录实验过程所作,内部若有问题还请各路大神... 3.TCP协议字段详解 4.HTTP报文分片传输与重组 5.T...
-
王者荣耀为什么这么火
-
Java ThreadLocal
-
RapidScada从入门到精通
-
龙芯生态应用开发基础:C语言精要
-
2021-02-26
-
敬酒:现代的JSCSS资产加载器,使用TypeScript编写-源码
-
SQL挑战-源码
-
BudgetBuddy:Python预算应用程序,可轻松进行收入预算。 该项目目前仍在开发中,尚无发布。 该项目基于Easy Budget的想法,但具有更新的编程知识-源码
-
MySQL 管理利器 mysql-utilities
-
Mysql数据库面试直通车
-
MySQL 高可用工具 DRBD 实战部署详解
-
尚硅谷_大数据高频面试题(2021)
-
MySQL 主从复制 Replication 详解(Linux 和 W
-
节点js-源码
-
Unity ILRuntime框架设计
-
身份图标-源码
-
搭建个人博客
-
Java面向对象
-
石棺应用-源码
-
ELF视频教程