IRIS是个抓包工具,通过分析抓到的包分析TCP/IP协议,使学习不再枯燥。 1搭建网络环境 192.168.1.61(服务器端,安装FTP) 192.168.1.106(客户端,安装IRIS抓包工具) 通过从服务器端下载文件,分析网络协议。 (1)安装FTP 先下载iis v5 for xp,如果不是xp的,版本可能不一样。 控制面板->添加或删除程序->添加/删除windows组件->选中Internet信息服务IIS(进入下一步之前,点击详 细信息,勾上FTP服务)->点击下一步,点击确定,把刚下载的IIS解压后路径填入,就ok了。安装完IIS,会在控制面板->管理工具中 看到 Internet信息服务的图标。 点开FTP站点,右击属性,改下IP地址为本地地址(服务器),在主目录选项中可以修改本地路径(到时候别人登录可以看到的内容),其他两项默认就可以了,也可以根据需要。 ok了,现在可以登录访问了。可以下载了啊,以后你没有2个QQ,也可以在两台计算机件共享文件了。是不是很好玩? (2)客户端上IRIS的安装 这就是一个软件,直接下载安装就行了,CSDN上有资源的,没毒哦,还有操作文档啊。 (3)开始抓包 开始试了很久没成功,问题是IRIS不支持无线网卡,至少我的不可以,现象就是在过滤器IP选项中设置了,却抓不到包。所以最好还是使用有线的。 配置选项说一下:
(4)分析包 这次下载文件分四个过程:查找服务器,建立连接,数据传输和终止连接。 1)FTP客户端请求TCP用服务器的IP地址建立连接。 2)TCP发送一个连接请求分段到远端的主机,即用上述IP地址发送一份IP数据报。 大概清楚了以后就开始看包吧: 1)查找服务器 在第一行中,客户端的MAC地址是60:EB:69:F3:6D:A7,这个地址是网卡厂家给的,独一无二的,(不过也是可以修改的,这个很是奇 怪),目标MAC地址为全F,意思是这是个广播地址,局域网内的每个主机都会接受到这次广播信息,意思是问192.168.1.61是谁的IP,然后拥有 这个IP的主机就会给个replay,回复的内容包括自己的IP和MAC地址。所以在第二行就可以看到服务器的MAC地址为 00:24:81:C5:A1:FF. 第一行的包解码 第二行的包解码 红色部分为MAC头部,可以看到源MAC地址和目的MAC地址。最后的0806指的是接在后面的为ARP头部。
黑色部分为ARP协议头部:
硬件类型为00 01,就是以太网地址。协议类型为08 00就是IP类型。硬件地址长度是06就是6个字节.协议地址长度是04就是4个字节. 操作字段(op)指出四种操作类型:ARP请求(值为1)、ARP应答(2)、RARP请求(3)和RARP应答(4)。你可以看到第一个是请求,就是01,第二个是应答就是02.接着就是MAC地址和IP。又传了一次,可以这样理解,前面的是识别用的,后面的是作为数据给别人看的。 2)建立连接 这三行的核心意思就是TCP三次握手。 第三行包解码 第四行包解码 第五行包解码 红色的为IP头部,前面是MAC头部,后面是TCP头部。 4位版本号值为4,就是IPV4.4位首部长度是5,就是说IP头部占20个字节(这个不知道怎么算的额)。8位服务类型(TOS)00,00,这个8位字段由3位的优先权子字段,现在已经被忽略,4位的TOS子字段以及1 位的未用字段(现在为0)构成。4位的TOS子字段包含:最小延时、最大吞吐量、最高可靠性以及最小费用构成,这四个1位最多只能有一个为1,本例中都为0,表示是一般服务。 16位总长度是00 34,就是52个字节,减去20个字节的IP头部,剩下32个就是TCP头部长度。16位标识,14 70,每发送一个数据报文值就加1,看一下第五行是14 71.(不过初始值怎么定的就不好说了)8位生存时间,为40,。8位协议,06,表示传输层是TCP协议。16位首部校验和用于验证。后面的源和目的地 址就不说了。标志位字段:占3比特,标志一份数据报是否要求分段这里是1,就是只有一段。段偏移字段:占13比特。如果一份数据报要求分段的话,此字段指 明该段偏移距原始数据报开始的位置。 分析第3行的TCP头部,16位源端口号是0C CB,就是3275,这是临时分配的端口号,这个跟应用有关,一般的应用都是随机分配的,小于65536就行了。目的端口号是00 15,就是21,指FTP服务,这个是固定的。32位序号是6C 0C 2F DF,就是上面的1812738015,服务器返回的时候要加1的。32位确认序号就是ACK的值。4位首部长度,8,就是32个字节(单位是4个字节,8*4),这个与上面IP那边算出来是一样的。
在第三行,02,就是说SYN=1,16位窗口大小,FF FF,就是32768,单位字节,为最大限制的字节数。选项占32位,窗口扩大因子,时间戳等。 3)传输数据 只取了传输数据时候的4个包,首先是服务器发了一个包,然后客户端回复收到,如此循环,直到文件发完。不过服务器怎么知道用户要下载的是哪个文件呢?这个信息怎么确定的呢?是不是在操作浏览器的时候确定的?我觉得有这个可能。 第6个数据包解码 第7个数据包解码 第8个数据包解码 第9个数据包解码 红色的部分都是TCP头部,大家可以自己依据字段信息慢慢对照,也可以直接看封包解码器的信息: 这 边对于各个头部的信息给的很全啊,很直观,不要自己慢慢数了。这个是第6行的包头部信息,可以看到IP头部占20个字节,TCP头部占20个字节,总共是 67个字节,所以还有27个数据字节,数一下正好是27个数据字节,就没错了。不过这边也不是你下载文件的数据,我看了下,真正的数据要在第32个包才传 的。 查看到第32个包字节数是1510,,第33个包字节数是916个字节。各自减去20个IP头部和20个TCP头部,得到2336,就是这个文件的大小,事实上查看一下是相等的。现在的问题是,为什么过了几十包才开始传真正的数据的呢?我也是初学,不清楚。 4)终止连接 建立一个连接需要三次握手,而终止一个连接要4次握手。这是因为TCP连接是全双工的(数据子啊两个方向上能同时传递),每个方向必须单独的进行关闭。4次握手协议就是这样一个过程。 首先是由服务器发出信息说文件发完了,咱们就断了吧。客户端先礼貌的说好。回头又说了一句断就断,哥才不稀罕。服务器表示很无奈。 第35个包解码 第36个包解码 第37个包解码 第38个包解码 可以看到第35和37包中,FIN标志位置1,就是表示请求终止连接。你的终止包或许不是这两个,不过查看FIN位就可以找个这4个包了。ok了,先分析这么多。 |
|
来自: LibraryPKU > 《技术动态》