用协议分析工具学习
目录
一、前言TCP/IP协议是网络的基础,是TCP/IP协议就没有互联网的今天。目前号称搞网的人非常多,许多人就是从一把夹线钳,一个测线器联网开始接触网络的,如果只是联网玩玩,知道几个TCP/IP协议搞的非常明白。TCP/IP协议的人多有一种感觉,这东西太抽象了,没有什么数据实例,看完不久就忘了。本文将介绍一种直观的学习方法,利用协议分析工具学习
为了初学者更容易理解,本文将搭建一个最简单的网络环境,不包含子网。
1、网络环境1所示
图
为了表述方便,下文中192.168.113.208的计算机,192.168.113.1的计算机。
两台机器都为1号机机器作为服务器,安装
3、协议分析工具Sniffer Pro、Iris以及Iris作为协议分析工具。208号机安装
三、测试过程1号机计算机中的一个文件通过208号机中。IRIS的设置。IRIS具有网络监听的功能,如果网络环境中还有其它的机器将抓很多别的数据包,这样为学习带来诸多不便,为了清楚地看清楚上述例子的传输过程首先将208号机和
1)用热键IP地址,为了对抓的包看得更清楚不要添主机的名字(,设置好后关闭此窗口。
图
2)用热键“IP address”,右栏按下图将
3
按下 开始按钮。在浏览器中输入: ,鼠标右键该文件,在弹出的菜单中选择”开始下载,下载完后在 按钮停止抓包。图FTP的整个过程,下面我们将详细分析这个过程。4
ARP协议的包,在arp –d 清除
四、过程分析TCP/IP的基本原理TCP/IP,但要讲明白下面的过程必须简要讲一下
A.网络是分层的,每一层分别负责不同的通信功能。TCP/IP协议族是一组不同的协议组合在一起构成的协议族。尽管通常称该协议族为TCP和1所示。每一层负责不同的功能:
表
分层的概念说起来非常简单,但在实际的应用中非常的重要,在进行网络设置和排除故障时对网络层次理解得很透,将对工作有很大的帮助。例如:设置路由是网络层MAC地址是链路层Ping命令由
图
5
当应用程序用6所示。IP的数据单元称作TCP段。IP数据报。(Frame)。6自上而下,层层加码;数据接收时是自下而上,层层解码。
图
c. 逻辑上通讯是在同级完成的
从图
7
为了更好的分析协议,我们先描述一下上述例子数据的传输步骤。如图
1)FTP客户端请求IP地址建立连接。IP地址发送一份
3) 如果目的主机在本地网络上,那么IP选路函数来确定位于本地网络上的下一站路由器地址,并让它转发IP数据报都是被送到位于本地网络上的一台主机或路由器。32位的48位的以太网地址,该地址也称为IP地址翻译到对应的ARP协议完成的。ARP发送一份称作ARP请求数据帧中包含目的主机的“如果你是这个”
6) 目的主机的IP地址,于是发送一个ARP应答包含
7) 收到ARP进行请求IP数据包现在就可以传送了。IP数据报到目的主机。
图
3、实例分析iris捕获的包来分析一下
·
·
·
iris捕获的包来分析一下.
目录
第一组
1)下图显示的是2行的数据
图
2)解释数据包
在第MAC地址是MAC地址是F换算为二进制就是1的地址就是广播地址。所谓广播就是向本网上的每台网络设备发送信息,电缆上的每个以太网接口都要接收这个数据帧并对它进行处理,这一行反映的是步骤ARP发送一份称作“谁是IP地址的拥有者,请将你的硬件地址告诉我
第6)的内容。在同一个以太网中的每台机器都会接收到这个报文,但正常状态下除了1号的主机的IP地址,于是发送一个IP地址和2行可以清楚的看出__自己的00:50:FC:22:C7:BE。“张三“张三
3)头信息分析1数据包包含了两个头信息:以太网(ARP。
图
下表1的特殊地址是广播地址。电缆上的所有以太网接口都要接收广播的数据帧。两个字节长的以太网帧类型表示后面数据的类型。对于0806。2行中可以看到,尽管ARP应答的目的地址却是00 50 FC 22 C7 BE)。
2
3是1即表示以太网地址。协议类型字段表示要映射的协议地址类型。它的值为IP地址。它的值与包含1字节的字段,硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。对于以太网上ARP请求或应答来说,它们的值分别为4。Opoperation),ARP请求、ARP应答、RARP请求和RARP应答,第二行中该字段值为IP地址、目的端的硬件地址和目的端ARP请求数据帧中都有发送端的硬件地址。对于一个
表2行为应答,当系统收到一份目的端为本机的2,最后把它发送回去。
表
第二组
1)下图显示的是
11
这三行数据是两机建立连接的过程。TCP协议的三次握手。IP协议来传输的。但IP数据报能成功地到达目的地,保证数据的可靠传输是靠“我已收到你的信息了。TCP是一个面向连接的协议。无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。建立连接的过程就是三次握手的过程。“你好,我是担子“你好,我是张三“我找你借几本书。
下面来分析一下此例的三次握手过程。208号机发送一个初始序号(987694419给
2))服务器1值为ACK),同时随机产生一个初始序号(1773195208,这两个信号同时发回到请求端“消息已收到,让我们的数据流以”
3))请求端SEQ)1为
以上三步完成了三次握手,双方建立了一条通道,接下来就可以进行数据传输了。TCP头信息就可以看出,在握手过程中
3)头信息分析12所示,第Ethernet)和TCP。ARP多了TCP,下面的过程也没有ARP负责的是在众多联网的计算机中找到需要找的计算机,找到工作就完成了。1、0800,指明该帧类型为
12
IP是5可以看出所有的UDP、IGMP数据都以IP协议就像运货的卡车,将一车车的货物运向目的地。主要的货物就是UDP分配给它的。需要特别指出的是I P仅提供最好的传输服务但不保证E_MAIL会不会送到朋友那,其实不用担心,上文提过保证数据正确到达目的地是
如表IP协议的头信息。
表
图45 00—71 01为4位,例如:0100
4位版本:表示目前的协议版本号,数值是4,因此IPv4;32位),数值为IP头部长度为
8位服务类型00,这个3位的优先权子字段,现在已经被忽略,TOS子字段以及0)构成。TOS子字段包含:最小延时、最大吞吐量、最高可靠性以及最小费用构成,这四个1,本例中都为
16位总长度):总长度字段是指整个00 30,换算为十进制为48字节 的+28字节的
16位标识:标识字段唯一地标识主机发送的每一份数据报。通常每发送一份报文它的值就会加3行为数值为5行为7行为
8位生存时间(TTL(ttl的初始值由源主机设置,一旦经过一个处理它的路由器,它的值就减去TTL值判断服务器是什么系统和经过的路由器。本例为128,TTL初始值一般为UNIX操作系统初始值为WINDOWS。6表示传输层是
16位首部检验和:当收到一份16 位进行二进制反码的求和。由于接收方在计算过程中包含了发送方存在首部中的检验和,因此,如果首部在传输过程中没有发生任何差错,那么接收方计算的结果应该为全1,即检验和错误,那么
32位源32位目的IP协议中核心的部分,但介绍这方面的文章非常多,本文搭建的又是一个最简单的网络结构,不涉及路由,本文对此只做简单介绍,相关知识请参阅其它文章。IP地址由一个网络ID组成。本例源C0 A8 71 D0,转换为十进制为:IP地址为192.168.113.1。网络地址为1和
TCP协议头信息5是
5 TCP包首部
TCP的头信息是:FTP占HTTP占TELNET占TCP或16位,16次方等于“门00 15,换算成十进制为FTP的默认端口,需要指出的是这是1024的端口,本例为1064。你的电脑中了木马也会开一个服务端口。观察端口非常重要,不但能看出本机提供的正常服务,还能看出不正常的连接。netstat。Sequence Number),简写为“让我们建立联系吧?“消息收到,数据流将以这个数开始。TCP连接完全是双向的,即双方的数据流可同时传输。在传输过程中双方数据是独立的,因此每个
32位确认序号:也称为应答号(ACK。在握手阶段,确认序号将发送方的序号加
4位首部长度:。这个字段占32位(7,28字节,等于正常的长度8个字节。,60字节(二进制15,=60字节)。
URG 紧急指针,告诉接收
ACK 置0的时候表示数据段不包含确认信息,确认号被忽略。1时请求的数据段在接收方得到后就可直接送到应用程序,而不必等到缓冲区满时才传送。1时重建连接。如果接收到
SYN 置
FIN 置
图3个图分别为TCP协议的头信息,这三行是三次握手的过程,我们看看握手的过程标志位发生了什么?13-1请求端SEQ)1号机。标志位1。13-2服务器ACK)和随机产生一个初始序号(1773195208发回到请求端ACK和1。13-3请求端1号机的信号后,发回信息给ACK置为0。注意此时0,
TCP的流量控制由连接的每一端通过声明的窗口大小来提供。窗口大小为字节数,起始于确认序号字段指明的值,这个值是接收端正期望接收的字节。窗口大小是一个65535字节。TCP报文段:TCP数据。这是一个强制性的字段,一定是由发端计算和存储,并由收端进行验证。U R G标志置
选项:图13-2有13-3没有选项。最常见的可选字段是最长报文大小,又称为13-1可以看出1460字节,1460字节传送的。
上面我们分开讲了三次握手,看着有点散,现在小结一下。 第三组 数据传输 1)显示的是1、2行的数据2)解释数据包3)头信息分析第四组 终止连接1)显示的是3-5行的数据2)解释数据包3)头信息分析
第三组 1)下图显示的是
14
2)解释数据包
这四行数据是数据传输过程中一个发送一个接收的过程。
前文说过,TCP分割成认为最适合发送的数据块。一般以太网在传送时1460字节。也就是说数据在发送方被分成一块一块的发送,接受端收到这些数据后再将它们组合在一起。
1号机给1514字节大小的数据,注意我们前文讲过数据发送时是层层加协议头的,=14字节以太网头IP头TCP头 58行显示的应答信号1781514222,这个数是SEQ序号1460,1号机说明已收到发来的数据。
60行显示的是继续传送数据的过程。
这个过程就像我向张三借书,借给我几本我要说:”,他说:”。
15-1和图57行和
终止连接
93-96行的数据
图
93-96是两机通讯完关闭的过程。
建立一个连接需要三次握手,而终止一个连接要经过TCP连接是全双工(即数据在两个方向上能同时传递),每个方向必须单独地进行关闭。 16的4次握手过程。
17-1所示FIN置(SEQ)987695574发给 94行数据和图1号机收到1,这样就终止了这个方向的传输。
17-3显示FIN置(SEQ)1773196056发给 96行数据和图208号机收到1,至此 3)头信息
ping的实例,测试某台计算机是否通,最常用的命令就是Ping 一台计算机,出现如图19所示界面就是不通,不通有两种情况,一是该计算机不存在或没接网线,二是该计算机安装了防火墙并设置为不允许iris跟踪上述情况。
图
19
20是 21是ARP请求没有回应。
如图ping不通,该计算机存在但安装了防火墙的情况。从图可以看出ICMP请求没回应。
从分析可以看出虽然后两种情况的表面现象是一样的,但实质确是截然相反的。通过头信息可以清楚的看出 ICMP协议来完成的,通讯过程是在第三层完成的,没有用到第四层的
20
图
22
TCP重发、TCP/IP协议族是非常复杂的,但只要理解了还是不难学的。最后向感兴趣的朋友提个问题:分别23端口开放,一台网是通的但TCP扫描判断对方机器是否在线的一种方法。