wireshark分析tcp协议

合集下载

电子科大网络安全实验2Wireshark抓包分析实验完整分析

电子科大网络安全实验2Wireshark抓包分析实验完整分析

电⼦科⼤⽹络安全实验2Wireshark抓包分析实验完整分析实验2 Wireshark抓包分析实验⼀、实验原理TCP三次握⼿准则介绍TCP是因特⽹中的传输层协议,使⽤三次握⼿协议建⽴连接。

当主动⽅发出SYN连接请求后,等待对⽅回答SYN,ACK。

这种建⽴连接的⽅法可以防⽌产⽣错误的连接,TCP使⽤的流量控制协议是可变⼤⼩的滑动窗⼝协议。

第⼀次握⼿:建⽴连接时,客户端发送SYN包(SEQ=x)到服务器,并进⼊SYN_SEND状态,等待服务器确认。

第⼆次握⼿:服务器收到SYN包,必须确认客户的SYN(ACK=x+1),同时⾃⼰也送⼀个SYN包(SEQ=y),即SYN+ACK包,此时服务器进⼊SYN_RECV状态。

第三次握⼿:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=y+1),此包发送完毕,客户端和服务器进⼊Established状态,完成三次握⼿。

HTTP协议介绍HTTP协议⽤于在Internet上发送和接收消息。

HTTP协议是⼀种请求-应答式的协议 ——客户端发送⼀个请求,服务器返回该请求的应答,所有的请求与应答都是HTTP包。

HTTP协议使⽤可靠的TCP 连接,默认端⼝是80。

HTTP的第⼀个版本是HTTP/0.9,后来发展到了HTTP/1.0,现在最新的版本是HTTP/1.1。

HTTP/1.1由RFC 2616 定义。

⼆、实验⽬的1、了解并会初步使⽤Wireshark,能在所⽤电脑上进⾏抓包。

2、了解IP数据包格式,能应⽤该软件分析数据包格式。

3、了解HTTP请求中的三次握⼿准则,并能利⽤该软件对该过程进⾏简要分析。

三、实验内容(1)安装wireshark软件,并使⽤该软件捕获HTTP请求中的报⽂,分析该过程中TCP建⽴连接的握⼿过程以及报头各字段的含义,记录实验结果和数据。

(2)尝试利⽤wireshark软件捕获Ping请求中的报⽂,并分析报⽂中各字段的含义,记录实验结果和数据。

电子科大网络安全实验2 Wireshark抓包分析实验完整分析

电子科大网络安全实验2  Wireshark抓包分析实验完整分析

实验2 Wireshark抓包分析实验一、实验原理TCP三次握手准则介绍TCP是因特网中的传输层协议,使用三次握手协议建立连接。

当主动方发出SYN连接请求后,等待对方回答SYN,ACK。

这种建立连接的方法可以防止产生错误的连接,TCP使用的流量控制协议是可变大小的滑动窗口协议。

第一次握手:建立连接时,客户端发送SYN包(SEQ=x)到服务器,并进入SYN_SEND状态,等待服务器确认。

第二次握手:服务器收到SYN包,必须确认客户的SYN(ACK=x+1),同时自己也送一个SYN包(SEQ=y),即SYN+ACK包,此时服务器进入SYN_RECV状态。

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=y+1),此包发送完毕,客户端和服务器进入Established状态,完成三次握手。

HTTP协议介绍HTTP协议用于在Internet上发送和接收消息。

HTTP协议是一种请求-应答式的协议 ——客户端发送一个请求,服务器返回该请求的应答,所有的请求与应答都是HTTP包。

HTTP协议使用可靠的TCP连接,默认端口是80。

HTTP的第一个版本是HTTP/0.9,后来发展到了HTTP/1.0,现在最新的版本是HTTP/1.1。

HTTP/1.1由RFC 2616 定义。

二、实验目的1、了解并会初步使用Wireshark,能在所用电脑上进行抓包。

2、了解IP数据包格式,能应用该软件分析数据包格式。

3、了解HTTP请求中的三次握手准则,并能利用该软件对该过程进行简要分析。

三、实验内容(1)安装wireshark软件,并使用该软件捕获HTTP请求中的报文,分析该过程中TCP建立连接的握手过程以及报头各字段的含义,记录实验结果和数据。

(2)尝试利用wireshark软件捕获Ping请求中的报文,并分析报文中各字段的含义,记录实验结果和数据。

四、实验步骤1、打开wireshark,点击“start”开始抓包,并打开浏览器输入①分析TCP协议建立的三次握手过程,并进行报文分析;②使用Wireshark软件分析HTTP报文内容:2、利用wireshark软件捕获Ping请求中的报文,并分析报文中各字段的含义,记录实验结果和数据。

Wireshark抓包分析TCP.IP.UDP.ICMP报文格式(移动互联网方向)

Wireshark抓包分析TCP.IP.UDP.ICMP报文格式(移动互联网方向)

Wireshark抓包分析TCP.IP.UDP.ICMP报⽂格式(移动互联⽹⽅向)TCP 报⽂格式分析:TCP 报⽂段的报头有 10 个必需的字段和 1 个可选字段。

报头⾄少为 20 字节。

1)源端⼝(16位):标识发送报⽂的计算机端⼝或进程。

⼀个 TCP 报⽂段必须包括源端⼝号,使⽬的主机知道应该向何处发送确认报⽂。

2)⽬的端⼝(16位):标识接收报⽂的⽬的主机的端⼝或进程。

由抓包数据可得源端⼝号为12762,⽬的端⼝号为803)序号(也叫序列号)(32位):⽤于标识每个报⽂段,使⽬的主机可确认已收到指定报⽂段中的数据。

当源主机⽤于多个报⽂段发送⼀个报⽂时,即使这些报⽂到达⽬的主机的顺序不⼀样,序列号也可以使⽬的主机按顺序排列它们。

在建⽴连接时发送的第⼀个报⽂段中,双⽅都提供⼀个初始序列号。

TCP 标准推荐使⽤以 4ms 间隔递增 1 的计数器值作为这个初始序列号的值。

使⽤计数器可以防⽌连接关闭再重新连接时出现相同的序列号。

序列号表达达到2^32 - 1后⼜从0开始,当建⽴⼀个新的连接时,SYN标志为1,系列号将由主机随机选择⼀个顺序号由图可得现序列号为25e4d8a84)确认号(32位):⽬的主机返回确认号,使源主机知道某个或⼏个报⽂段已被接收。

如果 ACK 控制位被设置为 1,则该字段有效。

确认号等于顺序接收到的最后⼀个报⽂段的序号加 1,这也是⽬的主机希望下次接收的报⽂段的序号值。

返回确认号后,计算机认为已接收到⼩于该确认号的所有数据。

由图可得现确认号为59eafa0c5)数据偏移(⾸部长度)(4位)TCP 报⽂段的数据起始处距离 TCP 报⽂段的起始处有多远,即⾸部长度。

由于 TCP 报头的长度随 TCP 选项字段内容的不同⽽变化,因此报头中包含⼀个指定报头字段的字段。

该字段以 32 ⽐特为单位,所以报头长度⼀定是 32 ⽐特的整数倍,有时需要在报头末尾补 0 。

由抓包图有偏移量在0x50中,占4bit,0x50转化为⼆进制数0101 0000 所以偏移量是 0101=5,所以TCP报⽂⾸部长度为5* 4 = 20字节。

wireshark抓包分析TCP和UDP

wireshark抓包分析TCP和UDP

计算机网络Wireshark抓包分析报告目录1. 使用wireshark获取完整的UDP报文 (3)2. 使用wireshark抓取TCP报文 (3)2.1 建立TCP连接的三次握手 (3)2.1.1 TCP请求报文的抓取 (4)2.1.2 TCP连接允许报文的抓取 (5)2.1.3 客户机确认连接报文的抓取 (6)2.2 使用TCP连接传送数据 (6)2.3 关闭TCP连接 (7)3. 实验心得及总结 (8)1. 使用wireshark获取完整的UDP报文打开wireshark,设置监听网卡后,使用google chrome 浏览器访问我腾讯微博的首页/welcomeback.php?lv=1#!/list/qqfriends/5/?pgv_ref=im.perinfo.pe rinfo.icon?ptlang=2052&pgv_ref=im.perinfo.perinfo.icon,抓得的UDP报文如图1所示。

图1 UDP报文分析以上的报文内容,UDP作为一种面向无连接服务的运输协议,其报文格式相当简单。

第一行中,Source port:64318是源端口号。

第二行中,Destination port:53是目的端口号。

第三行中,Length:34表示UDP报文段的长度为34字节。

第四行中,Checksum之后的数表示检验和。

这里0x表示计算机中16进制数的开始符,其后的4f0e表示16进制表示的检验和,把它们换成二进制表示为:0100 1111 0000 1110.从wireshark的抓包数据看出,我抓到的UDP协议多数被应用层的DNS协议应用。

当一台主机中的DNS应用程序想要进行一次查询时,它构成了一个DNS 查询报文并将其交给UDP。

UDP无须执行任何实体握手过程,主机端的UDP为此报文添加首部字段,并将其发出。

2. 使用wireshark抓取TCP报文2.1 建立TCP连接的三次握手建立TCP连接需要经历三次握手,以保证数据的可靠传输,同样访问我的腾讯微博主页,使用wireshark抓取的TCP报文,可以得到如图2所示的客户机和服务器的三次握手的过程。

Wireshark抓包实验

Wireshark抓包实验

Wireshark抓包实验⼀、实验名称利⽤Wireshark抓包并分析 TCP/IP 协议⼆、实验⽬的通过实验,了解和掌握报⽂捕获⼯具 Wireshark 的使⽤⽅法和基本特点,使⽤ Wireshark 捕获⽹络报⽂,并分析各种⽹络协议的报⽂格式和⼯作过程。

三、实验内容使⽤ Wireshark 捕获⽹络报⽂,分析以太⽹、ARP、IP、TCP、DNS 和 HTTP 等协议的报⽂格式和⼯作过程。

四、实验步骤DNS分析在 cmd 下运⾏:nslookup –type=Anslookup –type=NS nslookup –type=MX nslookup –type=A 然后⽤Wireshark捕获报⽂并分析DNS和UDP协议的报⽂格式和⼯作过程。

ICMP分析在cmd下运⾏pingtracert然后⽤Wireshark捕获报⽂并分析 ICMP 报⽂格式和⼯作过程。

TCP/IP分析a) 在浏览器输⼊ ⽹址后,然后⽤ Wireshark 捕获报⽂并分析HTTP,TCP,IP,ARP和以太⽹等协议的报⽂格式和⼯作过程。

b) 运⾏各⾃编写的 UDP 和 TCP 客户/服务器程序并进⾏抓包分析。

五、实验结果及分析(⼀)DNS分析通过ipconfig命令查看IP、⽹关地址IP地址192.168.43.217默认⽹关192.168.43.1DNS报⽂格式DNS分析⼤体相同,就选择其⼀进⾏分析1.在cmd下运⾏nslookup -type=A ⾮权威应答:110.53.188.133 113.247.230.248 202.197.9.133应答服务器地址为192.168.43.1,为默认⽹关地址利⽤wireshark进⾏抓包分析,筛选DNS报⽂,本次运⾏有4个DNS报⽂,可以看出对应请求包和响应包的源IP与⽬的IP刚好相反。

Query这是⼀个请求报⽂。

⾸先主机发送⼀个 DNS 报⽂。

DNS 采⽤ UDP 协议⽀持。

Wireshark理解TCP乱序重组和HTTP解析渲染

Wireshark理解TCP乱序重组和HTTP解析渲染

Wireshark理解TCP乱序重组和HTTP解析渲染TCP数据传输过程TCP乱序重组原理HTTP解析渲染TCP乱序重组TCP具有乱序重组的功能。

(1)TCP具有缓冲区(2)TCP报⽂具有序列号所以,对于你说的问题,⼀种常见的处理⽅式是:TCP会先将报⽂段3缓存下来,当报⽂段2到达时,再根据序列号进⾏拼接。

2 当然缓冲区也有满的时候,这时接收端会直接丢弃报⽂,不做任何其他处理;发送⽅的定时器发现迟迟收不到接收⽅丢弃报⽂的确认号(ack number),就会重传该报⽂。

这就是TCP的超时重传功能Sequence Number是包的序号,⽤来解决⽹络包乱序(reordering)问题。

Acknowledgement Number就是ACK——⽤于确认收到,⽤来解决不丢包的问题。

MTU: Maxitum Transmission Unit 最⼤传输单元MSS: Maxitum Segment Size 最⼤分段⼤⼩对于建链接的3次握⼿,主要是要初始化Sequence Number 的初始值。

通信的双⽅要互相通知对⽅⾃⼰的初始化的Sequence Number(缩写为ISN:Inital Sequence Number)——所以叫SYN全称Synchronize Sequence Numbers。

也就上图中的 x 和 y。

这个号要作为以后的数据通信的序号,以保证应⽤层接收到的数据不会因为⽹络上的传输的问题⽽乱序(TCP会⽤这个序号来拼接数据)。

⽹络⽂件时流量巨⼤,出现很多TCP segment of a reassembled PDU其实主机响应⼀个查询或者命令时如果要回应很多数据(信息)⽽这些数据超出了TCP的最⼤MSS时,主机会通过发送多个数据包来传送这些数据(注意:这些包并未被分⽚)。

对wireshark来说这些对相应同⼀个查询命令的数据包被标记了“TCP segment of a reassembled PDU”问题,wireshark如何识别多个数据包是对同⼀个查询数据包的响应?wireshark是根据sequence number来识别,这些数据包ACK number是相同的,当然number的数值与查询数据包中的next sequence number也是⼀样的。

wireshark抓包分析——TCPIP协议

wireshark抓包分析——TCPIP协议

wireshark抓包分析——TCPIP协议本⽂来⾃当我们需要跟踪⽹络有关的信息时,经常会说“抓包”。

这⾥抓包究竟是什么?抓到的包⼜能分析出什么?在本⽂中以TCP/IP协议为例,简单介绍TCP/IP协议以及如何通过wireshark抓包分析。

Wireshark 是最著名的⽹络通讯抓包分析⼯具。

功能⼗分强⼤,可以截取各种⽹络封包,显⽰⽹络封包的详细信息。

Wireshark下载安装,略。

注意,若在Windows系统安装Wireshark,安装成功后可能会出现Wireshark的两个图标,⼀个是Wireshark(中⽂版);另外⼀个是Wireshark Legacy (英⽂版)。

下⾯的内容会以Wireshark Legacy为例介绍。

打开Wireshark,开始界⾯如下:Wireshark捕获的是⽹卡的⽹络包,当机器上有多块⽹卡的时候,需要先选择⽹卡。

开始界⾯中的Interface List,即⽹卡列表,选择我们需要的监控的⽹卡。

点击Capture Options,选择正确的⽹卡,然后点击"Start"按钮, 开始抓包。

我们打开浏览器输⼊任意http⽹址,连接再关闭,⽐如:。

然后,我们回到Wireshark界⾯,点击左上⾓的停⽌按键。

查看此时Wireshark的抓包信息。

在看抓包信息之前,先简单介绍下Wireshark界⾯的含义。

其中,封包列表的⾯板中显⽰编号、时间戳、源地址、⽬标地址、协议、长度,以及封包信息。

封包详细信息是⽤来查看协议中的每⼀个字段。

各⾏信息分别对应TCP/IP协议的不同层级。

以下图为例,分别表⽰:传输层、⽹络层、数据链路层、物理层,⼀共四层。

如果有应⽤层数据会显⽰第五层,即⼀共会出现五层。

每⼀层都有⼀个字段指向上⼀层,表明上⼀层是什么协议。

这⼤概是因为发包的时候会在数据上依次加上应⽤层、传输层、⽹络层、链路层的头部,但是对⽅收到数据包后是从最底层(链路层)开始层层剥去头部解包的,所以在每层上有⼀个字段指向上层,表明上层的协议,对⽅就知道下⼀步该怎么解包了。

Wireshark抓包实验报告.

Wireshark抓包实验报告.

第一次实验:利用Wireshark软件进行数据包抓取1.3.2 抓取一次完整的网络通信过程的数据包实验一,实验目的:通过本次实验,学生能掌握使用Wireshark抓取ping命令的完整通信过程的数据包的技能,熟悉Wireshark软件的包过滤设置和数据显示功能的使用。

二,实验环境:操作系统为Windows 7,抓包工具为Wireshark.三,实验原理:ping是用来测试网络连通性的命令,一旦发出ping命令,主机会发出连续的测试数据包到网络中,在通常的情况下,主机会收到回应数据包,ping采用的是ICMP协议。

四,验步骤:1.确定目标地址:选择作为目标地址。

2.配置过滤器:针对协议进行过滤设置,ping使用的是ICMP协议,抓包前使用捕捉过滤器,过滤设置为icmp,如图 1- 1图 1-13.启动抓包:点击【start】开始抓包,在命令提示符下键入ping , 如图 1-2图 1-2停止抓包后,截取的数据如图 1-3图 1-34,分析数据包:选取一个数据包进行分析,如图1- 4图1-4每一个包都是通过数据链路层DLC协议,IP协议和ICMP协议共三层协议的封装。

DLC协议的目的和源地址是MAC地址,IP协议的目的和源地址是IP地址,这层主要负责将上层收到的信息发送出去,而ICMP协议主要是Type和Code来识别,“Type:8,Code:0”表示报文类型为诊断报文的请求测试包,“Type:0,Code:0”表示报文类型为诊断报文类型请正常的包。

ICMP提供多种类型的消息为源端节点提供网络额故障信息反馈,报文类型可归纳如下:(1)诊断报文(类型:8,代码0;类型:0代码:0);(2)目的不可达报文(类型:3,代码0-15);(3)重定向报文(类型:5,代码:0--4);(4)超时报文(类型:11,代码:0--1);(5)信息报文(类型:12--18)。

1.4.1,TCP协议的分析实验一,实验目的:通过本次实验,掌握使用Wireshark抓取TCP协议的数据包的技能,能够在深入分析“TCP的三次握手”,TCP的四次挥手协议在网络数据流的基础上,进一步提高理论联系实践的能力。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

WireShark分析TCP协议
韩承昊3172700 摘要:
利用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,结束连接。

相关文档
最新文档