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

日期: 2008-06-19 来源:TechTarget中国

  一、前言

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

  1、网络环境
  
  如图1所示
  
  用协议分析工具学习TCP/IP(一) 
  
  图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),设置好后关闭此窗口。 网管论坛bbs_bitsCN_com
  
  


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


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


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


 
  
  图3
  
  3、抓包
  
  按下IRIS工具栏中 开始按钮。在浏览器中输入:FTP://192.168.113.1,找到要下载的文件 ,鼠标右键该文件,在弹出的菜单中选择“复制到文件夹”开始下载,下载完后在IRIS工具栏中按 按钮停止抓包。图4显示的就是FTP的整个过程,下面我们将详细分析这个过程。
  
  


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


 
  
  图4
  
  说明:为了能抓到ARP协议的包,在WINDOWS 2000 中运行arp –d 清除arp缓存。
  
  四、过程分析

  1、TCP/IP的基本原理
  
  本文的重点虽然是根据实例来解析TCP/IP,但要讲明白下面的过程必须简要讲一下TCP/IP的基本原理。
  
  A.网络是分层的,每一层分别负责不同的通信功能。 网管论坛bbs_bitsCN_com
  
  TCP/IP通常被认为是一个四层协议系统,TCP/IP协议族是一组不同的协议组合在一起构成的协议族。尽管通常称该协议族为TCP/IP,但TCP和IP只是其中的两种协议而已,如表1所示。每一层负责不同的功能:
  
  


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


 
  
  表1
  
  分层的概念说起来非常简单,但在实际的应用中非常的重要,在进行网络设置和排除故障时对网络层次理解得很透,将对工作有很大的帮助。例如:设置路由是网络层IP协议的事,要查找MAC地址是链路层ARP的事,常用的Ping命令由ICMP协议来做的。
  
  图5显示了各层协议的关系,理解它们之间的关系对下面的协议分析非常重要。
  
  


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


 
  
  图5
  
  b.数据发送时是自上而下,层层加码;数据接收时是自下而上,层层解码。
  
  当应用程序用TCP传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息),该过程如图6所示。TCP传给IP的数据单元称作TCP报文段或简称为TCP段。I P传给网络接口层的数据单元称作IP数据报。 通过以太网传输的比特流称作帧(Frame)。
  
  数据发送时是按照图6自上而下,层层加码;数据接收时是自下而上,层层解码。
  
  用协议分析工具学习TCP/IP(一) 
  
  图6
  
  c. 逻辑上通讯是在同级完成的
  
  垂直方向的结构层次是当今普遍认可的数据处理的功能流程。每一层都有与其相邻层的接口。为了通信,两个系统必须在各层之间传递数据、指令、地址等信息,通信的逻辑流程与真正的数据流的不同。虽然通信流程垂直通过各层次,但每一层都在逻辑上能够直接与远程计算机系统的相应层直接通信。
中国网管联盟bitsCN.com


  
  从图7可以看出,通讯实际上是按垂直方向进行的,但在逻辑上通信是在同级进行的。
  
  


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


 
  
  图7
  
  2、过程描述
  
  为了更好的分析协议,我们先描述一下上述例子数据的传输步骤。如图8所示:
  
  1)FTP客户端请求TCP用服务器的IP地址建立连接。
  
  2)TCP发送一个连接请求分段到远端的主机,即用上述IP地址发送一份IP数据报。
  
  3) 如果目的主机在本地网络上,那么IP数据报可以直接送到目的主机上。如果目的主机在一个远程网络上,那么就通过IP选路函数来确定位于本地网络上的下一站路由器地址,并让它转发IP数据报。在这两种情况下,IP数据报都是被送到位于本地网络上的一台主机或路由器。
  
  4) 本例是一个以太网,那么发送端主机必须把32位的IP地址变换成48位的以太网地址,该地址也称为MAC地址,它是出厂时写到网卡上的世界唯一的硬件地址。把IP地址翻译到对应的MAC地址是由ARP协议完成的。
  
  5) 如图的虚线所示,ARP发送一份称作ARP请求的以太网数据帧给以太网上的每个主机,这个过程称作广播。ARP请求数据帧中包含目的主机的IP地址,其意思是“如果你是这个IP地址的拥有者,请回答你的硬件地址。”
  
  6) 目的主机的ARP层收到这份广播后,识别出这是发送端在寻问它的IP地址,于是发送一个ARP应答。这个ARP应答包含I P地址及对应的硬件地址。
  
  7) 收到ARP应答后,使ARP进行请求—应答交换的IP数据包现在就可以传送了。
  
  8) 发送IP数据报到目的主机。  
  


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



  
  图8
  
  3、实例分析
  
  下面通过分析用iris捕获的包来分析一下TCP/IP的工作过程,为了更清晰的解释数据传送的过程,我们按传输的不同阶段抓了四组数据,分别是查找服务器、建立连接、数据传输和终止连接。每组数据,按下面三步进行解释。
  
  显示数据包
  
  解释该数据包
  
  按层分析该包的头信息 

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐