用协议分析工具学习TCP/IP

一、前言
目前,网络的速度发展非常快,学习网络的人也越来越多,稍有网络常识的人都知道TCP/IP协议是网络的基础,是Internet的语言,可以说没有TCP/IP协议就没有互联网的今天 。目前号称搞网的人非常多,许多人就是从一把夹线钳,一个测线器联网开始接触网络的,假如只是联网玩玩,知道几个Ping之类的命令就行了,假如想在网络上有更多的发展不管是黑道还是红道,必须要把TCP/IP协议搞的非常明白 。
学习过TCP/IP协议的人多有一种感觉,这东西太抽象了,没有什么数据实例,看完不久就忘了 。本文将介绍一种直观的学习方法,利用协议分析工具学习TCP/IP,在学习的过程中能直观的看到数据的具体传输过程 。
为了初学者更轻易理解,本文将搭建一个最简单的网络环境,不包含子网 。
二、试验环境
1、网络环境
如图1所示

图1 为了表述方便,下文中208号机即指地址为192.168.113.208的计算机,1号机指地址为192.168.113.1的计算机 。
2、操作系统
两台机器都为windows 2000 ,1号机机器作为服务器,安装FTP服务
3、协议分析工具
Windows环境下常用的工具有:Sniffer Pro、Natxray、Iris以及windows 2000自带的网络监视器等 。本文选用Iris作为协议分析工具 。
在客户机208号机安装IRIS软件 。
三、测试过程
1、测试例子
将1号机计算机中的一个文件通过FTP下载到208号机中 。
2、IRIS的设置
由于IRIS具有网络监听的功能,假如网络环境中还有其它的机器将抓很多别的数据包,这样为学习带来诸多不便,为了清楚地看清楚上述例子的传输过程首先将IRIS设置为只抓208号机和1号机之间的数据包 。设置过程如下:
1)用热键CTRL B弹出如图所示的地址表,在表中填写机器的IP地址,为了对抓的包看得更清楚不要添主机的名字(name),设置好后关闭此窗口 。

图2
2)用热键CTRL E弹出如图所示过滤设置,选择左栏“IP address”,右栏按下图将address book中的地址拽到下面,设置好后确定,这样就这抓这两台计算机之间的包 。

图3
3、抓包
按下IRIS工具栏中 开始按钮 。在浏览器中输入:FTP://192.168.113.1,找到要下载的文件 ,鼠标右键该文件,在弹出的菜单中选择“复制到文件夹”开始下载,下载完后在IRIS工具栏中按 按钮停止抓包 。图4显示的就是FTP的整个过程,下面我们将具体分析这个过程 。
点击查看大图
图4
说明:为了能抓到ARP协议的包,在WINDOWS 2000 中运行arp–d 清除arp缓存 。
四、过程分析
1、TCP/IP的基本原理
本文的重点虽然是根据实例来解析TCP/IP,但要讲明白下面的过程必须简要讲一下TCP/IP的基本原理 。
1)网络是分层的,每一层分别负责不同的通信功能 。
TCP/IP通常被认为是一个四层协议系统,TCP/IP协议族是一组不同的协议组合在一起构成的协议族 。尽管通常称该协议族为TCP/IP,但TCP和IP只是其中的两种协议而已,如表1所示 。每一层负责不同的功能:
TCP/IP层描述主要协议主要功能应用层HTTP、Telnet、FTP和E-mail等负责把数据传输到传输层或接收从传输层返回的数据传输层TCP和UPD主要为两台主机上的应用程序提供端到端的通信,TCP为两台主机提供可靠的数据通信 。它所做的工作包括把应用程序交给它的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等 。UPD则为应用层提供一种非常简单的服务 。它只是把称作数据报的分组从一台主机发送到另一台主机,但并不保证该数据能到达另一端 。网络层ICMP、IP和IGMP有时称作互联网层,主要为数据包选择路由,其中IP是TCP/IP协议族中最为核心的协议 。所有的TCP、UPD、ICMP及IGMP数据协议都以IP数据包格式传输 。链路层ARP、RARP和设备驱动程序及接口卡发送时将IP包作为帧发送;接收时把接收到的位组装成帧;提供链路治理、错误检测等 。表1

推荐阅读