使用Ethereal学习TCPIP协议.docx
《使用Ethereal学习TCPIP协议.docx》由会员分享,可在线阅读,更多相关《使用Ethereal学习TCPIP协议.docx(12页珍藏版)》请在冰豆网上搜索。
使用Ethereal学习TCPIP协议
使用Ethereal学习TCP/IP协议
实验环境搭建:
操作系统为Windows2000server版,因为在寝室里只有一台电脑,而且没有网卡(只有一个56K的老猫),所以安装了虚拟机VMware-workstation(网上很多地方可以下载,这里就不提供下载了,安装也很简单);虚拟操作系统是RedHat8.0,为了节省空间和加快速度,没有安装图形界面。
关于虚拟系统的安装可以在Google上搜一下。
这里说一下VirtualNetworks的设置,如图1-1:
图1-1设置虚拟网络
两个虚拟网络分别是VMnet1地址为192.168.126.0和VMnet8地址为192.168.216.0,主操作系统windows2000,安装了两个虚拟网卡,地址分别是192.168.126.1和192.168.216.1,主操作系统和虚拟系统的网络关系是Custom模式,如图1-2:
图1-2设置虚拟机网卡
打开虚拟机,以root用户登录redhat,输入setup,设置虚拟机IP地址为192.168.126.128,如图1-3:
图1-3设置LinuxIP地址
好了,设置完了。
当然,这只是因为条件限制才如此的,在局域网中就不用这么麻烦了。
实验目的:
巩固对EthernetII封包、ARP分组及IP、ICMP数据包的认识
嗯,现在开始了。
打开Ethereal,在菜单Capture下点击Interfaces,选取要抓包的网卡,这里选取地址为192.168.126.1的这个网卡抓取数据包,如图1-4:
图1-4选择抓取数据包网卡
之后在主操作系统中使用ping192.168.126.128–t的命令,来ping虚拟机。
好,我们来看看抓取的数据包。
图1-5ARP广播包
从Ethereal的第一栏中,我们看到这是个ARP解析的广播包,如图1-5。
由于这个版本的Ethereal使用的是EthernetII来解码的,我们先看看EthernetII的封装格式。
如下图1-6:
图1-6以太网封包格式
注意这个和802.3是有区别的,802.3的封包格式如图1-7:
图1-7802.3封包格式
尽管EthernetII和802.3的封包格式不同,但Ethereal在解码时,都是从“类型”字段来判断一个包是IP数据报还是ARP请求/应答或RARP请求/应答。
从EthernetII知道了是ARP解析以后,我们来看看Ethereal是如何判断是ARP请求呢还是应答的。
我们先复习一下以太网的ARP请求和应答的分组格式,如图1-8。
图1-8分组格式
从上图中我们了解到判断一个ARP分组是ARP请求还是应答的字段是“op”,当其值为0×0001时是请求,为0×0002时是应答。
如图1-9、1-10。
图1-9ARP请求
图1-10ARP应答
我们看看第三个帧的内容。
第三帧“类型”显示是IP数据报,如图1-11:
图1-11ICMPping包
同样,我们先复习一下IP包的封包格式,如图1-12:
图1-12IP封包格式
关于IP封包各字段的内容及意义,这里就不再详述了,可以参见三卷本的TCP/IP,的“资源共享”版里有下载。
我们主要看看TTL,从图1-13和1-14的比较来看,图1-13中的TTL是128,而图1-14中的TTL却是64,什么原因呢?
原来图1-13中的主机是Windows2000,而1-14中的主机是Linux,看来不同操作系统的TTL是不同的。
图1-13Windows主机的TTL
图1-14Linux主机的TTL
好了我们来看看ICMP报文吧,先看看它的封包格式,如图1-15:
图1-15ICMP封包类型
关于ICMP的“类型”和“代码”字段,这里有一个表,如图1-16:
图1-16ICMP报文类型
ICMP报文,我们主要对照图1-16看抓包的情况。
图1-17ping请求
图1-18ping应答