使用wireshark抓包分析TCP三次握手
TCP三次握手分析
分析TCP三次握手实验目的:了解TCP三次握手实验软件:Wireshark实验线路:自家ADSL第一步:请求方(192.168.1.100)向服务方(61.172.203.210)发送SYN,表示想发起一次TCP连接。
我们假定这次的序列号是某个数值X ,初始的ack号为0Trust ->TargetSYNSEQ:XACK:0第二步:服务方产生SYN,ACK响应,并向请求方发送ACK, ACK的值为X+1,表示数据成功接收到,且告知下一次希望接收到字节的SEQ是X+1。
同时,服务方向请求方发送自己的SEQ,我们假定它的序列号是某个数值Y。
Target -> TrustSYN,ACKSEQ:YACK:X+1第三步:请求方向服务方发送ACK,表示接收到服务方的回应。
这次它的SEQ值为X+1,同时它的ACK值为Y+1,原理同上。
Trust ->TargetACKSEQ:X+1ACK:Y+1注意:因为一个SYN 将占用一个序号,所以要加1.完成这一步以后,请求方与服务方之间的连接开放,数据可以进行传输了。
分析TCP报头结构实验目的:分析TCP报头数据段组件,了解TCP报头结构实验软件:Wireshark实验线路:自家ADSLTCP协议头最少20个字节,包括以下的区域TCP源端口(Source Port):16位的源端口其中包含初始化通信的端口。
源端口和源IP 地址的作用是标示报问的返回地址。
TCP目的端口(Destination port):16位的目的端口域定义传输的目的。
这个端口指明报文接收计算机上的应用程序地址接口。
TCP序列号(序列码,Sequence Number):32位TCP应答号(Acknowledgment Number):32位的序列号由接收端计算机使用,重组分段的报文成最初形式。
,如果设置了ACK控制位,这个值表示一个准备接收的包的序列码。
数据偏移量(HLEN):4位包括TCP头大小,指示何处数据开始。
电子科大网络安全实验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请求中的报⽂,并分析报⽂中各字段的含义,记录实验结果和数据。
wireshark rst解析
wireshark rst解析TCP重置包(RST)是TCP协议中的一种重要的网络数据包类型,它的作用是终止TCP连接。
Wireshark是一种流行的网络协议分析工具,它可以帮助我们解析TCP重置包,并深入了解其原理和应用。
本文将介绍Wireshark RST解析的相关知识,包括TCP连接的建立和终止过程、RST包的格式、RST包的产生原因和使用场景等。
通过阅读本文,您将对TCP连接和RST包有更深入的理解。
TCP连接的建立和终止过程TCP是一种可靠的面向连接的传输协议,它在传输数据之前需要先建立连接。
TCP连接的建立和终止分别由三步握手和四步挥手完成。
三步握手过程如下:1.客户端向服务器发送SYN包,表示请求建立连接。
2.服务器收到SYN包后,向客户端发送SYN-ACK包,表示允许建立连接。
3.客户端收到SYN-ACK包后,向服务器发送ACK包,表示连接已建立。
四步挥手过程如下:1.客户端向服务器发送FIN包,表示请求关闭连接。
2.服务器收到FIN包后,向客户端发送ACK包,表示已收到关闭请求。
3.服务器处理完毕后,向客户端发送FIN包,表示可以关闭连接。
4.客户端收到FIN包后,向服务器发送ACK包,表示确认关闭连接。
RST包的格式RST包是TCP协议中的一种控制包,用于中断TCP连接。
RST包的格式如下:![image.png](attachment:image.png)其中,各字段含义如下:Source Port和Destination Port:源端口和目的端口,用于标识TCP连接。
Sequence Number和Acknowledgment Number:序列号和确认号,用于标识TCP数据流的顺序和完整性。
Data Offset:数据偏移,用于标识TCP头部长度,以4字节为单位。
Flags:标志位,包括URG、ACK、PSH、RST、SYN、FIN六个标志位。
Window:窗口大小,用于控制发送方数据量。
Wireshark抓包分析TCP协议
Wireshark抓包分析TCP协议之前一直听别人说Wireshark这个抓包软件,Leelom也跟我提过说面试的时候会问这些东西。
今天呢,参考别人的博文,结合抓包,将TCP/IP协议进行一些浅显的分析。
1. HTTP协议基本特征更加具体的说明需要重新写一篇博客来看。
参考基础认知TCP(Transmission Control Protocol,传输控制协议)是面向连接的、可靠的、基于字节流的在传输层上的通信协议。
这里想一下UDP,是无连接的、不可靠的(所以就像之前提到的一样,无连接的快节省时间,不用连接建立的时间)。
TCP/IP の 4层模型数据包封装情况TCP/IP分层结构跟OSI(Open System Interconnection)分7层不同。
如上面的图中,TCP/IP 协议下分为4层:应用层、传输层、网络层、数据链路层。
•应用层:向用户提供常用的应用程序。
比如电子邮件、文件传输、远程登录等。
TELNET 会话提供了基于字符的虚拟终端,FTP使用 FTP协议来提供网络内机器间的文件拷贝功能。
•传输层:传输层提供两台主机之间端到端的通信。
所谓的TCP/UDP协议就是跑在这一层。
•网络层:处理分组在网络中的活动。
可以理解为IP路由这些。
•链路层:链路层负责处理下层物理层的物理接口细节。
主要目的有: \ 1. 为上层IP模块接收和发送IP数据报 \ 2. 为ARP模块发送请求和完成接收 \ 3.为RARP模块。
层级功能图封装封装这个事情就好像寄快递一样。
之前上计网课那个张洪涛就是这么举例子的。
报文封装注意上图中的 appl 首部是说 application 层首部的意思。
按照上图一层层封装,直到经过以太网封装之后,就要通过网线或者其他的传输介质将此封装好的报文发送到另一端去。
另一端收到之后再一层层的把封装头剥离,最终拿到用户数据。
这里我们要明白一点就是上层对下层不负责,下层对上层隐身。
TCP/IP这里可以做这样的一个理解,就是TCP/IP协议是说二者协同一起工作。
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的TCP和UDP报文分析
《计算机网络基础》课程报告基于Wireshark的TCP和UDP报文分析院系:班级:学号:姓名:教师:2012年11月4日目录一 TCP连接时的三次握手 (3)二 TCP连接释放时的四次握手 (5)三 UDP报文分析 (7)3.1 UDP报文结构 (7)3.2 UDP检验和的计算 (7)四结束语 (9)一、TCP连接时的三次握手TCP 协议为终端设备提供了面向连接的、可靠的网络服务。
TCP在交换数据报文段之前要在发送方和接收方之间建立连接。
客户是连接的发起者,服务器是被动打开和客户进行联系。
具体的过程如下所述。
第一次握手:客户发送 SYN=1,seq=0的TCP报文给服务器Ps:客户的TCP向服务器发出连接请求报文段,其首部中的同步位SYN = 1。
序号 seq = 0,表明报文中未携带数据。
报文如下:源端口号:56644(56644)目的端口号:http(80)[Stream index: 0]Sequence number: 0 (relative sequence number)Header length: 32 bytesFlags: 0x02 (SYN)000. .... .... = Reserved: Not set...0 .... .... = Nonce: Not set.... 0... .... = Congestion Window Reduced (CWR): Not set.... .0.. .... = ECN-Echo: Not set.... ..0. .... = Urgent: Not set.... ...0 .... = Acknowledgement: Not set.... .... 0... = Push: Not set.... .... .0.. = Reset: Not set.... .... ..1. = Syn: Set.... .... ...0 = Fin: Not setWindow size: 8192Checksum: 0x1030 [validation disabled]Options: (12 bytes)第二次握手:服务器发送SYN=1,ACK=1,seq=0的TCP报文给客户Ps:服务器的TCP收到客户发来的连接请求报文段后,如同意,则发回确认。
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抓包查看访问⽹站过程打开wireshark,打开⼀个⽆痕浏览器,输⼊⽹址,到⽹页呈现这⼀过程,⽹络数据包传递的消息都会被放在wireshark⾥。
针对这些包,我们可以逐⼀分析,摸清⽹络访问的全过程。
⾸先是通过DNS获取⽹站的ip地址:在抓到的包⾥⾯逐⼀排查,会请求⽹站的第⼀次出现的数据包是DNS包。
如图82号包(访问百度为例)。
选择82号包后,会出现下⾯的内容,分别是每层⾥⾯的内容和头部的字节码。
这个数据包的73个字节⾥包含:数据链路层报⽂头(数据链路层),ip层头(⽹络层),udp头(传输层),dns头(应⽤层)。
数据链路层的主要信息有mac地址2个(源地址和⽬的地址),主要是你电脑的mac地址,他会发到路由器的mac地址去,然后再由路由器进⾏转发。
⽹络层层有ip4,ip地址,⽬的ip地址等信息。
传输层主要负责了端⼝的管理。
我们具体看⼀下Dns 的回应包,包含从dns server发到我们电脑,具体的内容⾥⾯把query重复⼀遍,然后answer应答了我们请求的⽹站对应的IP地址,于是我们就知道了访问⽹站的ip地址。
接着我们过滤⼀下IP地址,下⼀个包就是TCP开始三次握⼿的包了。
打开看下⾯各层的信息数据链路层依然是发给路由器:⽹络层是发给百度的ip,传输层把端⼝对应了起来具体看tcp层:第⼀个请求包内容:百度回应的包:第三次确认包也是类似:到这就完成了三次握⼿,就可以开始通信了。
http协议就开始互相发送数据包。
最后的四次挥⼿也是⼀样的,可能会存在长连接的情况,要等⼀段时间服务器才会主动断开连接,翻到最下⾯应该就能看到了。
三次握手实验步骤
三次握⼿实验步骤1.开始→运⾏→CMD,在弹出的命令⾏窗⼝中输⼊ping ***,***代表要抓包的⽹址,如,此时会将⽹址转换为IP地址,如百度的IP地址为:39.156.66.18。
2.打开软件Wireshark,点击“Capture”→“Start”,开始抓包。
3.打开浏览器,输⼊刚才ping的那个⽹址,即要抓包的⽹址,如,等⼀段时间,待数据传输完成后,关闭该⽹页,回到Wireshark,再等⼀段时间,点击“Capture”→“Stop”,停⽌抓包。
4.设置过滤器,筛选所抓到的包。
由于在打算建⽴TCP连接时,客户端向服务器发出连接请求报⽂段,此时⾸部中的同步位SYN=1,所以只需找SYN=1的数据包即可。
点击右上⾓的“Filter”→“Expression”→“TCP”→“tcp.flags.syn == 1”→“Apply”,此时过滤完成。
5.找到Destination⼀栏即⽬的⽹址的IP地址为39.156.66.18的那⾏数据,单击选中该⾏数据,点击“Clear”,清除过滤器,此时数据包按抓到的先后顺序排列,往后找,⼀直找到剩下的两次握⼿为⽌。
三次握⼿的标志分别为:SYN=1、SYN=1,ACK=1、ACK=1。
⼀定要注意找到的三次握⼿属于同⼀临时端⼝号。
三次握⼿结果如下:6.寻找四次挥⼿。
记住三次握⼿中的临时端⼝号,即上图中的63237,设置过滤器,点击右上⾓的“Filter”→“Expression”→“TCP”→“tcp.flags.fin == 1”→“Apply”,此时过滤完成。
在过滤完成后,找到端⼝号为第⼀个63237的帧,点击“Clear”,如下图:四次挥⼿结果如下:。
TCP报文格式和三次握手——三次握手三个tcp包(header+data),此外,TCP报。。。
TCP报⽂格式和三次握⼿——三次握⼿三个tcp包(header+data),此外,TCP报。
TCP报⽂是TCP层传输的数据单元,也叫报⽂段。
1、端⼝号:⽤来标识同⼀台计算机的不同的应⽤进程。
1)源端⼝:源端⼝和IP地址的作⽤是标识报⽂的返回地址。
2)⽬的端⼝:端⼝指明接收⽅计算机上的应⽤程序接⼝。
TCP报头中的源端⼝号和⽬的端⼝号同IP数据报中的源IP与⽬的IP唯⼀确定⼀条TCP连接。
2、序号和确认号:是TCP可靠传输的关键部分。
序号是本报⽂段发送的数据组的第⼀个字节的序号。
在TCP传送的流中,每⼀个字节⼀个序号。
e.g.⼀个报⽂段的序号为300,此报⽂段数据部分共有100字节,则下⼀个报⽂段的序号为400。
所以序号确保了TCP传输的有序性。
确认号,即ACK,指明下⼀个期待收到的字节序号,表明该序号之前的所有数据已经正确⽆误的收到。
确认号只有当ACK标志为1时才有效。
⽐如建⽴连接时,SYN报⽂的ACK标志位为0。
3、数据偏移/⾸部长度:4bits。
由于⾸部可能含有可选项内容,因此TCP报头的长度是不确定的,报头不包含任何任选字段则长度为20字节,4位⾸部长度字段所能表⽰的最⼤值为1111,转化为10进制为15,15*32/8 = 60,故报头最⼤长度为60字节。
⾸部长度也叫数据偏移,是因为⾸部长度实际上指⽰了数据区在报⽂段中的起始偏移值。
4、保留:为将来定义新的⽤途保留,现在⼀般置0。
5、控制位:URG ACK PSH RST SYN FIN,共6个,每⼀个标志位表⽰⼀个控制功能。
1)URG:紧急指针标志,为1时表⽰紧急指针有效,为0则忽略紧急指针。
2)ACK:确认序号标志,为1时表⽰确认号有效,为0表⽰报⽂中不含确认信息,忽略确认号字段。
3)PSH:push标志,为1表⽰是带有push标志的数据,指⽰接收⽅在接收到该报⽂段以后,应尽快将这个报⽂段交给应⽤程序,⽽不是在缓冲区排队。
4)RST:重置连接标志,⽤于重置由于主机崩溃或其他原因⽽出现错误的连接。
wireshark抓包分析实验报告
Wireshark抓包分析实验若惜年若惜年一、实验目的:1.学习安装使用wireshark软件,能在电脑上抓包。
软件,能在电脑上抓包。
2.对抓出包进行分析,分析得到的报文,并与学习到的知识相互印证。
对抓出包进行分析,分析得到的报文,并与学习到的知识相互印证。
二、实验内容:使用抓包软件抓取HTTP协议通信的网络数据和DNS通信的网络数据,分析对应的HTTP、TCP、IP协议和DNS、UDP、IP协议。
协议。
三、实验正文:IP报文分析:从图中可以看出:从图中可以看出:IP报文版本号为:IPV4 首部长度为:20 bytes 数据包长度为:40 标识符:0xd74b 标志:0x02 比特偏移:0 寿命:48 上层协议:TCP 首部校验和:0x5c12 源IP地址为:119.75.222.18 目的IP为:192.168.1.108 从图中可以看出:从图中可以看出:源端口号:1891 目的端口号:8000 udp报文长度为:28 检验和:0x58d7 数据长度:20 bytes UDP协议是一种无需建立连接的协议,它的报文格式很简单。
当主机中的DNS 应用程序想要惊醒一次查询时,它构造一个DNS查询报文段并把它给UDP,不需要UDP之间握手,UDP为报文加上首部字段,将报文段交给网络层。
第一次握手:从图中看出:从图中看出:源端口号:56770 目的端口号:80 序列号为:0 首部长为: 32 bytes SYN为1表示建立连接成功表示建立连接成功时表示删除连接。
当fin为1时表示删除连接。
第二次握手:从图中看出:从图中看出:源端口号是:80 目的端口号为:56770 序列号为:0 ack为:1 Acknowledgement为1表示包含确认的报文表示包含确认的报文 Syn为1表示建立连接。
表示建立连接。
第三次握手:从图中看出:从图中看出:源端口:56770 目的端口:80 序列号为:1 ACK 为:1 首部长为:20bytes Acknowledgement 为1表示包含确认的报文表示包含确认的报文 所以,看出来这是TCP 连接成功了连接成功了T cp 是因特网运输层的面向连接的可靠的运输协议,在一个应用进程可以开始向另一个应用进程发送数据前,始向另一个应用进程发送数据前,这两个进程必须先握手,这两个进程必须先握手,即它们必须相互发送预备文段,建立确保传输的参数。
wireshark tcp 实验总结
wireshark tcp 实验总结Wireshark是一款非常强大且开源的网络协议分析工具,可以捕获和分析网络数据包。
在进行Wireshark TCP实验时,我们主要研究了TCP协议的工作原理以及相关的网络性能指标。
实验目的:本次实验的主要目的是通过使用Wireshark工具来分析TCP协议的行为,了解TCP协议的工作原理以及网络性能指标,包括延迟、丢包等。
实验内容:实验内容包括使用Wireshark工具捕获TCP数据包、分析TCP连接的建立过程、计算网络延迟和丢包率等。
实验步骤:1.下载和安装Wireshark。
2.打开Wireshark工具,并选择要捕获数据包的网络接口。
3.开始捕获数据包,并进行相关设置,如过滤器设置。
4.运行需要分析的TCP应用程序,例如浏览器或FTP客户端。
5.停止捕获数据包,并保存捕获的数据包文件。
6.使用Wireshark分析捕获的数据包文件,查看TCP连接建立过程、延迟、丢包等信息。
实验结果:通过对Wireshark捕获的数据包进行分析,我们得到了一些有关TCP协议的有用信息:1. TCP连接的建立过程:通过分析捕获的数据包,我们可以看到TCP连接建立的三次握手过程,即客户端发送SYN,服务器回复SYN ACK,客户端再回复ACK,最终建立起TCP连接。
2.延迟与RTT:通过分析数据包的时间戳,我们可以计算出每个数据包的往返时间(RTT),从而得到网络的延迟情况。
可以观察到RTT 的变化情况,以及延迟对网络性能的影响。
3.丢包与重传:通过捕获的数据包,我们可以看到是否有丢包现象发生。
当发生丢包时,Wireshark会显示相应的重传数据包,以及丢包率等相关统计信息。
实验分析:通过进行Wireshark TCP实验,我们对TCP协议的工作原理以及网络性能有了更深入的了解:1. TCP连接建立过程是通过三次握手来实现的,确保了双方的同步和可靠性。
2.延迟是网络性能的一个重要指标,对于实时应用程序(如VoIP或视频流),低延迟是非常重要的。
Wireshark数据抓包分析之传输层协议(TCP协议)
Wireshark数据抓包分析之传输层协议(TCP协议)实验步骤⼀根据实验环境,本实验的步骤如下:1.在测试环境使⽤发包⼯具和Wireshark抓取TCP三次握⼿和四次断开的数据包。
2.详细分析TCP协议的三次握⼿以及四次断开。
任务描述:安装发包⼯具,并配置TCP客户端,服务端,与Wireshark配合使⽤此⼯具与分析UDP协议时相同,实验室环境中已经安装,在此再重复⼀遍,我们使⽤" TCP&UDP测试⼯具"来制作和发送TCP数据包。
双击测试者机器桌⾯的" TCP&UDP测试⼯具",会出现下图显⽰页⾯:下⾯我们需要配置TCP的服务端以及客户端。
1.配置服务器端选择10.1.1.33的机器,双击桌⾯的" TCP&UDP测试⼯具",右键点击服务器模式,在下拉列表中,选择创建服务器,如下图:选择"创建服务器"之后,会弹出服务器端⼝设置,本次使⽤默认⼯具给的6000端⼝即可,点击"确定"按钮。
点击"确定"按钮之后,在左侧的服务器模式列表中,会出现创建的列表,选择我们创建的服务器,右键点击,选择"启动服务器",即完成了服务器端的配置2.配置客户端选择10.1.1.142的机器,双击桌⾯的" TCP&UDP测试⼯具",右键点击客户端模式,在下拉列表中,选择"创建连接",如下图:在弹出的窗⼝中,选择TCP协议,服务器IP为10.1.1.33.端⼝6000,本机随意IP,如下图点击创建后,如下图,3.获取TCP数据包获取的TCP协议的数据包。
分为两部分,即TCP三次握⼿,四次断开的数据。
但在实际的操作中,可能遇到的情况较多,⽐如源IP和⽬的IP⽐较多,协议的帧号乱序等各种问题。
在此,我们教⼤家简单的过滤功能,着⾊功能⽅便过滤和查看。
网络抓包与ping测试[教学]
一、实验目的:1、通过wireshark进行TCP报文抓包,分析TCP连接的三次握手以及关闭TCP2、利用wireshark分析ICMP报文3、利用ping测试网络联通性:1)ping 本机回环地址2)ping本机ip地址3)ping 网关ip4)ping 远程ip通过这几项可以检查网络是不是通的,以及如果不通,网络的问题出在哪熟悉ping的参数的使用;4、traceroute测试,同理(3)二、实验原理1、TCP握手协议在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV 状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。
还要再发送一次确认是为了,防止已失效的连接请求报文段突然又传到了B,因而产生错误。
已失效的报文段:正常情况下:A发出连接请求,但因为丢失了,故而不能收到B的确认。
于是A重新发出请求,然后收到确认,建立连接,数据传输完毕后,释放连接,A发了2个,一个丢掉,一个到达,没有“已失效的报文段”但是,某种情况下,A的第一个在某个节点滞留了,延误到达,本来这是一个早已失效的报文段,但是在A发送第二个,并且得到B的回应,建立了连接以后,这个报文段竟然到达了,于是B就认为,A又发送了一个新的请求,于是发送确认报文段,同意建立连接,假若没有三次的握手,那么这个连接就建立起来了(有一个请求和一个回应),此时,A收到B的确认,但A知道自己并没有发送建立连接的请求,因为不会理睬B的这个确认,于是呢,A也不会发送任何数据,而B呢却以为新的连接建立了起来,一直等待A发送数据给自己,此时B 的资源就被白白浪费了。
实验4-捕获并分析TCP数据包和TCP三次握手及四次挥手过程
实验四捕获并分析TCP数据包和TCP三次握手和四次挥手过程一、实验目的通过网络嗅探器软件对网络数据进行监听和分析,加深对计算机网络中各层协议数据单元PDU的形象理解。
二、实验内容1、利用网络嗅探器软件(例如Iris、Sniffer、Ethereal、 wireshark等),获取TCP数据包,记录并分析各字段的含义。
2、打开一个网站,截取TCP数据包(至少三个),分析TCP三次握手建立连接和四次挥手释放连接的过程。
三、实验步骤1、安装数据包捕获软件wireshark。
2、启动捕获软件。
(1)开始捕获数据报:(2)打开一个网站,例:(3)对捕获的TCP数据包进行分析,并保存(4)对捕获的TCP三次握手建立连接的几个数据包进行分析,分别说明各数据包代表的意义和所属的三次握手的第几次。
四、实验分析1、设置显示过滤,只显示源地址是本机的http数据包,说明如何进行设置?答:若要设置只显示源地址是本机的http数据包,需使用以下ip.src==本机IP && http 2、点开软件捕获界面中包详细信息栏的TCP数据包:若想查看TCP数据包的内容,需点击前面的加号,则显示TCP报文段各字段的结构如下图所示:对照课本P202页:TCP报文段的结构图,如下图示:分析并记录说明,所捕获的数据包的在运输层TCP报文段中各字段的具体信息:①源端口号:49896。
每一个应用进程在运输层都对应一个端口号。
端口是运输层与应用层的服务接口。
运输层的复用和分用功能都要通过端口才能实现。
②目的端口号:80。
说明发送方请求的是一个web服务(http).③序号:0。
为了对发送的报文段进行可靠传输,对每个发送的报文段的第一个字节都进行编号,称为序号。
例如:一个报文段的序号值为301,携带的数据长度100字节;则下一个报文段的序号为401.④确认号:0。
为了告诉发送方,到目前为止,接收方按顺序接收的报文段达到多少,将下一个期望接收的报文段的第一个字节的编号作为确认号发给发送方。
tcp协议分析 实验报告
tcp协议分析实验报告TCP协议分析实验报告一、引言TCP(Transmission Control Protocol)是互联网中最常用的传输层协议之一,负责在网络中可靠地传输数据。
本实验旨在对TCP协议进行分析,了解其工作原理以及性能特点。
二、实验目的1. 了解TCP协议的基本原理和工作流程;2. 分析TCP协议的可靠性和拥塞控制机制;3. 掌握使用网络抓包工具对TCP数据包进行分析。
三、实验环境与工具本实验使用的环境为Windows 10操作系统,实验工具为Wireshark网络抓包工具。
四、实验过程及结果1. TCP协议的基本原理和工作流程TCP协议是一种面向连接的协议,通过三次握手建立连接,保证数据的可靠传输。
在实验中,我们使用Wireshark对TCP连接过程进行抓包分析。
首先,客户端向服务器发送SYN包(同步请求);然后,服务器接收到SYN包后,向客户端发送SYN+ACK包(同步确认);最后,客户端接收到SYN+ACK包后,向服务器发送ACK包(确认)。
通过分析抓包数据,我们可以清楚地看到TCP连接建立的过程,并且可以查看每个包的详细信息,如源IP地址、目标IP地址、源端口、目标端口等。
2. TCP协议的可靠性和拥塞控制机制TCP协议通过序列号和确认应答机制来保证数据的可靠传输。
在实验中,我们可以通过Wireshark工具查看TCP数据包中的序列号和确认号,以及数据包的重传情况。
此外,TCP协议还具备拥塞控制机制,用于避免网络拥塞和保证网络的稳定性。
在实验中,我们可以通过查看TCP数据包的窗口大小和拥塞窗口大小来了解TCP协议的拥塞控制机制。
3. 使用Wireshark对TCP数据包进行分析Wireshark是一款功能强大的网络抓包工具,可以捕捉并分析网络数据包。
在实验中,我们可以使用Wireshark对TCP数据包进行抓包分析,以了解TCP协议的工作原理和性能特点。
通过Wireshark工具,我们可以查看每个TCP数据包的详细信息,如源IP地址、目标IP地址、源端口、目标端口、序列号、确认号、窗口大小等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
wireshark是非常流行的网络封包分析软件,功能十分强大。
可以截取各种网络封包,显示网络封包的详细信息。
使用wireshark的人必须了解网络协议,否则就看不懂wireshark 了。
为了安全考虑,wireshark只能查看封包,而不能修改封包的容,或者发送封包。
wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的容,总结,如果是处理HTTP,HTTPS 还是用Fiddler,其他协议比如TCP,UDP 就用wireshark.
Wireshark(网络嗅探抓包工具) v1.4.9 中文版(包含中文手册+主界面的操作菜单) 评分:
4.6
类别:远程监控大小:22M 语言:中文
查看详细信息>>
下载1690 次
wireshark 开始抓包
开始界面
wireshark是捕获机器上的某一块网卡的网络包,当你的机器上有多块网卡的时候,你需要选择一个网卡。
点击Caputre->Interfaces.. 出现下面对话框,选择正确的网卡。
然后点击"Start"按钮, 开始抓包
Wireshark 窗口介绍
WireShark 主要分为这几个界面
1. Display Filter(显示过滤器),用于过滤
2. Packet List Pane(封包列表),显示捕获到的封包,有源地址和目标地址,端口号。
颜色不同,代表
3. Packet Details Pane(封包详细信息), 显示封包中的字段
4. Dissector Pane(16进制数据)
5. Miscellanous(地址栏,杂项)
Wireshark 显示过滤
使用过滤是非常重要的,初学者使用wireshark时,将会得到大量的冗余信息,在几
千甚至几万条记录中,以至于很难找到自己需要的部分。
搞得晕头转向。
过滤器会帮助我们在大量的数据中迅速找到我们需要的信息。
过滤器有两种,
一种是显示过滤器,就是主界面上那个,用来在捕获的记录中找到所需要的记录
一种是捕获过滤器,用来过滤捕获的封包,以免捕获太多的记录。
在Capture -> Capture Filters 中设置
保存过滤
在Filter栏上,填好Filter的表达式后,点击Save按钮,取个名字。
比如"Filter 102",
Filter栏上就多了个"Filter 102" 的按钮。
过滤表达式的规则
表达式规则
1. 协议过滤
比如TCP,只显示TCP协议。
2. IP 过滤
比如ip.src ==192.168.1.102 显示源地址为192.168.1.102,
ip.dst==192.168.1.102, 目标地址为192.168.1.102
3. 端口过滤
tcp.port ==80,端口为80的
tcp.srcport == 80,只显示TCP协议的愿端口为80的。
4. Http模式过滤
http.request.method=="GET",只显示HTTP GET方法的。
5. 逻辑运算符为AND/ OR
过滤表达式用途
http 只查看HTTP协议的记录
ip.src ==192.168.1.102 or ip.dst==192.168.1.102 源地址或者目标地址是192.168.1.102
封包列表(Packet List Pane)
封包列表的面板中显示,编号,时间戳,源地址,目标地址,协议,长度,以及封包信息。
你可以看到不同的协议用了不同的颜色显示。
你也可以修改这些显示颜色的规则,View ->Coloring Rules.
封包详细信息(Packet Details Pane)
这个面板是我们最重要的,用来查看协议中的每一个字段。
各行信息分别为
Frame:物理层的数据帧概况
Ethernet II:数据链路层以太网帧头部信息
Internet Protocol Version 4:互联网层IP部信息
Transmission Control Protocol:传输层T的数据段头部信息,此处是TCP
Hypertext Transfer Protocol:应用层的信息,此处是HTTP协议
wireshark与对应的OSI七层模型
TCP包的具体容
从下图可以看到wireshark捕获到的TCP包中的每个字段。
实例分析TCP三次握手过程
看到这,基本上对wireshak有了初步了解,现在我们看一个TCP三次握手的实例
三次握手过程为
这图我都看过很多遍了,这次我们用wireshark实际分析下三次握手的过程。
打开wireshark, 打开浏览器输入.cr173.
在wireshark中输入http过滤,然后选中GET /tankxiao HTTP/1.1的那条记录,右键然后点击"Follow TCP Stream",
这样做的目的是为了得到与浏览器打开相关的数据包,将得到如下图
图中可以看到wireshark截获到了三次握手的三个数据包。
第四个包才是HTTP的,这说明HTTP的确是使用TCP建立连接的。
第一次握手数据包
客户端发送一个TCP,标志位为SYN,序列号为0,代表客户端请求建立连接。
如下图
第二次握手的数据包
服务器发回确认包, 标志位为SYN,ACK. 将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即0+1=1, 如下图
第三次握手的数据包
客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK 的序号字段+1,放在确定字段中发送给对方.并且在数据段放写ISN的+1, 如下图:
就这样通过了TCP三次握手,建立了连接。