|
为了了解网络分析,学习网络的工作理论是非常重要的。要使网络能够工作,运行在网络中的计算机需要就一些规则达成共识。这样的一些规则被称为协议。协议在网络词汇中的作用与人类词汇中的语言很相似。两个使用不同协议的计算机要互相交谈的话,就像一个人想用日语同一个不懂日语的人交谈一样。那当然无法工作!
在今天,网络交流中存在着很多协议。在建立网络的早期,每个网络发展商都写自己的协议。最后发展出了一些标准,这样不同网络商的设备可以用统一的协议进行交流。这些协议包括传输控制协议/因特网协议(TCP/IP)、网间分组交换协议/顺序分组交换协议(IPX/SPX),以及AppleTalk。
要成为一个成功的网络故障检修员,你需要对网络协议有非常深入的了解。了解不同的协议与它们的特性,这将帮助你在网络运行不正常时能发现问题。
网络协议可以分为面向连接协议与无连接协议两种。面向连接协议在数据传输之前,在传输源与目的电脑之间建立了一个通道。这种协议保证了数据包以与传输顺序相同的次序到达接收数据的工作站。如果数据包在传输过程中丢失了,它会重新进行传输。目的主机对传输过来的数据做出响应。因为这些特性,面向连接协议还被称为可靠协议。无连接协议不保证数据一定会到达目的主机。它们提供Best-effort(尽力而为)的传输模式,不保证数据包一定到达,或者以什么顺序到达。这些具体问题由上一层的协议控制。无连接协议又被称为不可靠协议。但是,它们需要的费用少,而且通常比面向连接协议的传输更快。
本书将详细介绍如何捕获、查看、解码、过滤和研究很多不同的可以使用Sniffer Pro网络分析程序的协议。
1.3.1 OSI模型与DOD模型
在20世纪80年代初,国际标准组织(ISO)建立了开放系统互连(OSI)模型,它描述了网络协议和组件是如何一起工作的。OSI参考模型把网络协议功能分成七个层次。每一层代表一组相关的规格、功能与活动。
图1.3中给出了OSI模型的这七个层次。OSI模型中的一个层次要向它上面的层次提供服务,而且都依赖于下一层提供给自己的服务。封装是一个过程,通过这个过程,模型中上层的信息可以被插入到下层的数据域中。当一条消息离开网络化工作站时,它要从第七层到第一层逐层通过。应用层产生的数据要传到表示层。表示层把数据从应用层带走,并给数据加上表示层的文件头与文件结束块。这些数据接着要到达会话层,这层也加上自己的文件头与文件结束块,并把它传递到传输层。这个过程不断重复,直到数据到达物理层为止。物理层不会考虑数据的含义。它知识把数据转换成字节,把它放入传输介质中。 QQRead.com 推出数据恢复指南教程 数据恢复指南教程 数据恢复故障解析 常用数据恢复方案 硬盘数据恢复教程 数据保护方法 数据恢复软件 专业数据恢复服务指南
从较高层次到较低层次的数据,包括较高层次的文件头与文件结束块,都被称做较低层次的负载。
当数据到达目的地时,接收工作站的物理层收到数据并进行相反的过程(也被称做解封装)。物理层把字节转换回原来的格式,并传递给数据链接层。数据链接层去掉自己的文件头与文件结束块,把数据传递给网络层。如此重复下去,直到数据到达了应用层为止。
 
图1.3 OSI参考模型的七个层次
OSI模型的各个层次为:
n 应用层 这是OSI模型中的最高层次,它负责管理网络应用程序之间的交流。这一层并不是应用程序本身,尽管有一些应用程序可能会执行应用层的功能。应用层协议的例子包括文件传输协议(FTP)、超文本传输协议(HTTP)、简单邮件传送协议(SMTP)和Telnet。
n 表示层 这层负责数据演示、加密与压缩。
n 会话层 会话层负责建立并管理终端系统之间的对话。会话层协议在很多协议中都不使用。会话层协议的例子包括NetBIOS与远程过程调用(RPC)。
n 传输层 这层负责程序或者过程之间的交流。端口或者插口的数目可以用来识别这些特殊的过程。传输层协议的例子包括传输控制协议(TCP)、用户数据报协议(UDP)和顺序分组交换协议(SPX)。
n 网络层 这层负责从来源主机访问,并向目的主机传送的数据包。网络层从传输层得到数据,把它装在一个数据包或者数据报中。逻辑网址通常被分配给这层的主机。网络层协议的例子包括IP与IPX。
n 数据链接层 这层负责在相同的物理区段中的网卡之间传输数据。数据链接层进行的对话通常都是基于硬件的地址进行的。数据链接层把来自网络层的数据包装到一个帧中。数据链接层协议的例子包括以太网、令牌环与点对点协议(PPP)。在这层运行的设备包括连接桥与交换机。
n 物理层 这层定义了连接器和接线方式,还有关于电压和字节如何通过有线(或无线)介质传播的说明。这层的设备包括中继器、集中器和Hub。在物理层运行的设备不需要了解传输路径。
OSI模型适用性很广,可以用来解释任何的网络协议。因此,各种协议集都可以由OSI模型反映。对OSI模型的深入理解在网络分析、比较与故障检修中都会提供很多帮助。但是,也要记住并不是所有的协议都能用OSI模型很好地说明。例如,TCP/IP就要用美国国防部(DoD)模型来说明。
在20世纪70年代,美国国防部开发了一种四层模型。核心的因特网协议都附属于这个模型。DoD模型几乎是OSI模型的浓缩版本。它的四个层次是:
n 处理层 这层定义了执行用户级别应用程序的协议,这些程序包括邮件发送、远程登录和文件传递。
n 主机对主机层 这层处理连接、数据流管理和丢失数据的重新传输问题。
n 因特网层 这层负责通过连接两台电脑的不同的一组物理网络,从来源主机向目的主机传送数据。
n 网络访问层 这层处理通过特殊的硬件介质传送数据的问题。
TCP/IP
TCP/IP由美国国防高级研究计划局(DARPA)开发,是现在应用最广泛的路由传送协议(routed protocol)。图1.4描述了TCP/IP的各个层次与OSI参考模型的七个层次的相互对应关系。
Telnet,FTP,SMTP,DNS,POP3,IMAP4及其他协议
图1.4 TCP/IP协议栈的各个层次
因特网协议(IP)是第三层协议,它包含有寻址与控制信息,可以确定数据包的路径。IP是一种无连接协议,因此,它提供不可靠但尽力而为的数据包传送服务。因为IP只提供尽力而为的数据传送,所以数据包可能会在传递过程中丢失。所有的IP数据包都包含有文件头与实际负载(来自上一层的数据)。图1.5给出了一个IP数据包的格式。
图1.5 IP数据包的格式
如果可靠的话,需要进行有保证的传输,IP要依赖TCP来提供这种功能。TCP是一种面向连接的协议,运行于IP上层,可以按顺序传输,并要求目的方的回应。
在TCP/IP的传输层,TCP与UDP是两个最常用的协议。它们的文件头都包括来源与目的端口号,用端口号来确定传输的应用或过程是由哪个TCP区段或者UDP数据报产生的,以及要传输到哪个TCP区段或者UDP数据报。TCP是一种面向连接的协议,而UDP是一种无连接协议。TCP的文件头包括顺序号码与回应序号,以便进行可靠的传送。TCP还可以使用拖动视窗原则。这种算法允许在应用程序与网络数据流之间放置缓冲装置。从网络接收到的数据被放在这个缓冲装置中,一直到应用程序来读取为止。视窗是在收到回应之前,可以放入缓冲装置的数据的数目。
使用TCP的应用程序包括FTP、Telnet、网络文件系统(NFS)、SMTP、HTTP、域名系统(DNS),以及网络新闻传输协议(NNTP)。使用UDP的应用程序包括DNS、路由信息协议(RIP)、NFS、简单网络管理协议(SNMP),以及动态主机配置协议/启动协议(DHCP/BOOTP)。可以看到,有些应用程序(比如DNS和NFS)两种协议都可以使用。
IP寻址
TCP/IP使用IP地址来向正确的目的地发送消息。网络中的每台TCP/IP主机都需要有一个独特的IP地址与网卡相对应。IP地址由网络管理人员指定,或者是人工指定,或者是由反向地址解析协议(RARP)、BOOTP,或者DHCP这类动态寻址协议来指定。当前IP寻址机制(Ipv4)把IP地址定义为32位、二进制的数字——例如:
11000111 00011010 10101100 01010011
为了使它用起来更方便,IP地址被分成四组,每组8位:
11000111. 00011010. 10101100. 01010011
这些八位数据接着从二进制转化为十进制的数据,并写成如下形式(四个十进制数字分开表示):
199.26.172.83
在把数字输入电脑时,电脑自动把它转化成32位的二进制数字,不需要考虑单个数字是八位还是十进制数字。
一个IP地址有两部分,分别是网络ID和主机ID。网络ID与区段中的所有工作站共享,而且在整个工作过程中,必须是独特的。主机ID可以在区段中识别一个特殊的设备(主机),而且必须在特殊区段内保证自由。
在因特网协议第4版中,当今常用的IP系统被称做Ipv4。新系统Ipv6,或者又称为因特网协议第6版,目前已经开发出来,并在一些小型设备中使用。Ipv6通过把地址从32位增加到128位,以便容纳更多的地址。
类
当早期的IP寻址机制建立起来时,IP地址被分成5类。通常分为A、B、C和D类的IP地址用于进行多点传送,而E类用来进行实验,准备将来使用。表1.1显示了IP地址各类。请注意在表中,N=网络,H=主机。
IP地址中最左面的四位的值决定了一个地址的类。例如,所有A类地址最左面的位都是0,但其余的31位可以是0或者1(这些位置上的值用x表示):
0xxxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
这就决定了A类地址的范围是从0.0.0.0到127.255.255.255。B类地址最左面的位必须是1,相邻的位为0;所有其他的位可以变化:
10xxxxxx xxxxxxxx xxxxxxxx xxxxxxxx
根据这个规则,B类地址的范围是从128.0.0.0到191.255.255.255。同样,C、D和E类地址分别设定第二位、第三位和第四位为1。
127.0.0.0属于A类地址,但是保留不用。127.0.0.1这个IP地址在TCP/IP主机上通常用于返回过程。0.0.0.0这个IP地址保留起来用做默认路径。
A、B和C类在各自范围中为地址各自定义了一个默认的子网掩码。A类子网掩码把网络的IP地址部分与主机部分分离开。在A类地址中,第一个八位数组代表网络ID,而后三个八位数组代表主机ID。在B类地址中,前两个八位数组代表网络ID,后两个八位数组代表主机ID。在C类地址中,前三个八位数组代表网络ID,最后一个八位数组代表主机ID。
表1.1 IP地址分类
类
最左面的八位数组
范围(第一个八位数组)
网络/主机部分
默认子网掩码
A
0xxxxxxx
0-127
N.H.H.H
255.0.0.0
B
10xxxxxx
128-191
N.N.H.H
255.255.0.0
C
110xxxxx
192-223
N.N.N.H
255.255.255.0
D
1110xxxx
224-239
未提供
未提供
E
1111xxxx
240-255
未提供
未提供
|