`
阅读更多

1. 多态是如何实现的?

2. Linux终端下面是怎么配置网卡的?

3. 七层网络结构是怎么样的层次关系?

4.对系统测试的理解

1. 多态是如何实现的?

多态是指一个名称具有多种功能,即一棵继承树中的的类,可以有多个同名但不同方法体以及不同形参的方法。多态有两种实现方法:重载(overloading)和覆盖(overriding)。多态的绑定可以分为运行时多态和编译时多态。

重载(指方法重载)是指多个方法具有相同的名称,但各个方法的参数个数和参数类型不同,根据不同的参数个数和类型来选择执行不同的方法.

覆盖是在类派生体系中,子类中直接定义和父类同样的属性和方法(重新编写方法体),C++的多态性是由虚函数来实现的,而不是纯虚函数。在子类中如果有对基类虚函数的覆盖定义,无论该覆盖定义是否有virtual关键字,都是虚函数。

编译时多态

编译时的多态性是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。

编译时多态

运行时多态就是指直到系统运行时,才根据实际情况决定调用哪个函数。C++中,运行时的多态性通过虚函数实现

编译时的多态性为我们提供了运行速度快的特点,而运行时的多态性则带来了高度灵活和抽象的特点

通过指向父类的指针,虚函数可以使得通过调用基类对象的的方法调用派生类的方法

2. Linux终端下面是怎么配置网卡的?

ifconfig

无论是Linux自动安装还是我们手工安装,Linux都会向你询问有关网络的问题并配置相关的软件。这个用于配置网卡的基本命令就是ifconfig。
在执行ifconfig命令后,系统将在内核表中设置必要的参数,这样Linux就知道如何与网络上的网卡通信。ifconfig命令有以下两种格式:
※ifconfig [interface]
※ifconfig interface [aftype] option | address …
ifconfig的第一种格式(或使用不带任何参数的ifconfig命令)可以用来查看当前系统的网络配置情况。
在刚刚安装完系统之后,实际上是在没有网卡或者网络连接的情况下使用Linux,但通过ifconfig可以使用回绕方式工作,使计算机认为自己工作在网络上。
现在我们运行一下ifconfig命令,不带参数的ifconfig命令可以显示当前启动的网络接口,其输出结果为:
-----------------------------------------------------------
[root@machine1 /sbin]#ifconfig
eth0 Link encap:Ethernet Hwaddr 52:54:AB:DD:6F:61
inet addr:210.34.6.89 Bcast:210.34.6.127 Mask:255.255.255.128
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:46299 errors:0 dropped:0 overruns:0 frame:189
TX packets:3057 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:5 Base address:0xece0
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:44 errors:0 dropped:0 overruns:0 frame:0
TX packets:44 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
--------------------------------------------------------------------
其中以eth0为首的部分是本机的以太网卡配置参数,这里显示了网卡在下的设备名/dev/eth0和硬件的MAC地址52:54:AB:DD:6F:61,MAC地址是生产厂家定的,每个网卡拥有的唯一地址。
不过我们可以手工改动网卡的MAC地址,只要我们在/etc/rc.d/init.d/中的network中加入:

ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx

然后重启,此时再用ifconfig命令查看一下,我们就会发现网卡的MAC地址已经变成xx:xx:xx:xx:xx:xx了。
下一行显示本机的IP地址信息,分别是本机的IP地址,网络广播地址和子网掩码。必须确认这些信息都是正确无误的,否则Linux服务器无法与其它网络设备建立连接。我们也可以手工实现IP与Mac地址的捆绑,命令是

arp -i eth0 -s xxx.xxx.xxx.xxx(IP) xx.xx.xx.xx.xx(MAC)

接下来显示的是设备的网络状态。MTU(最大传输单元)和Metric(度量值)字段显示的是该接口当前的M T U和度量值的值。按照惯例,度量值供某些操作系统所用,用于计算一条路由的成本。
再下来显示接口通信的网络统计值。RX和TX分别表示接收和传送的数据包。如果你的网卡已经完成配置却还是无法与其它设备通信,那么从RX和TX的显示数据上可以简单地分析一下故障原因。在这种情况下,如果你看到接收和传送的包的计数(packets)增加,那有可能是系统的IP地址出现了混乱;如果你看到大量的错误(errors)和冲突(Collisions),那么这很有可能是网络的传输介质出了问题,例如网线不通或hub损坏。
再下面的Interrupt:5 Base address:0xece0显示的是网卡的中断调用号和端口号,这是两个非常重要的硬件配置信息。如果您的网卡是PCI的,那么Linux在引导时有可能会自动配置这些信息(也很有可能会让您手工配置)但目前绝大多数网卡都是PnP的,这就需要我们进行手工配置了。如果您的网卡还没有配置好,那么运行:

[root@machine1 /sbin]#ifconfig

系统只会输出以lo为首的部分。lo是look-back网络接口,从IP地址127.0.0.1就可以看出,它代表"本机"。无论系统是否接入网络,这个设备总是存在的,除非你在内核编译的时候禁止了网络支持,这是一个称为回送设备的特殊设备,它自动由Linux配置以提供网络的自身连接。IP地址127.0.0.1是一个特殊的回送地址(即默认的本机地址),您可以在自己的系统上用telnet对IP 地址127.0.0.1进行测试。如果有inetd进程在运行的话您会从自己的机器上获得登录提示符。Linux可以利用这个特征在进程与仿真网络之间进 行通信。(您有兴趣的话还可以试试本机的实际IP地址,如这里的机器就是210.34.6.89,或者试试"localhost",或者 "127.0.0.1",同样可以模拟网络通信。这可是Linux一个非常突出的优点!)
如果你只是关心某个设备是否正常,可以在ifconfig后面加上接口名字:

[root@machine1 /sbin]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 52:54:AB:DD:6F:61
inet addr:210.34.6.89 Bcast:210.34.6.127 Mask:255.255.255.128
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:50568 errors:0 dropped:0 overruns:0 frame:198
TX packets:3200 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:5 Base address:0xece0

表示eth0设备已经正常工作。

有时需要为某个设备接口配置多个IP地址,办法是使用设备别名,例如,eth0设备可以有eth0,eth0:0,eth0:1....多个别名,每个都可以有一个独立的IP地址:

ifconfig eth0 210.34.6.89 netmask 255.255.255.128 broadcast 210.34.6.127
ifconfig eth0:0 210.34.6.88 netmask 255.255.255.128 broadcast 210.34.6.127

这样,210.34.6.89和210.34.6.88都会被绑定在eth0设备上,使用同样的网络设备,不同的IP地址。
如果你要暂停某个网络接口的工作,使用down参数:

ifconfig eth0 down

将取消eth0网络接口。与之对应的是有一个参数up,不过由于是缺省值,所以从来不用。
如果我们使用了带有参数的ifconfig命令,那就可以手动设置网卡的配置参数了。有效的ifconfig命令参数及其意义为(选项对应的特性可以打开也可以取消,只在选项名前加一个破折号(-)即可):

Interface 网络设备名,如eth0就表示本机的第一块网卡。
up 标志接口处于" up"状态,也就是说, IP层可以对其进行访问。这个选项用于命令行上给出一个地址之时。如果这个接口已被" down"选项临时性取消的话(与该选项对应的标记是UP RUNNING),还可以用于重新启用一个接口。
down 标标志接口处于" down"状态,也就是说, IP层不能对其进行访问。这个选项有效地禁止了IP通信流通这个接口。注意,它并没有自动删除利用该接口的所有路由信息。如果永久性地取消了一个接口,就应该删除这些路由条目,并在可能的情况下,提供备用路由。
netmask 标分配子网掩码,供接口所用。要么给一个前面是0x的32位十六进制号码,要么采用只适用于两台主机所用的点分四段式号码。对SLIP和PLIP接口来说,这个选项是必须配置的。
address  设置指定接口设备的IP地址。
dstaddr adderss 为PPP设置远程IP地址,此关键字可用pointopoint代替。
irqaddress 设置指定接口设备使用的中断行。
pointtopoint address 该选项用于只涉及两台主机的点到点链接。对SLIP和PLIP接口来说,这个选项是必须配置的(如果已经设置了一个点到点地址,ifconfig就会显示出POINTTPOINT标记)。
broadcast address 广播地址通常源于网络编号,通过设置主机部分的所有位得来。有的I P采用的方案有所不同:这个选项可适用于某些奇怪的环境(如果已经设置了广播地址, ifconfig就会显示出一个BROADCAST标记)。
hw class addr     设置指定接口设备的MAC地址,关键字的后面必须跟硬件名或者与之等价的ASCII码。目前支持的硬件类有ether, ax25, ARCnet和 netrom。
metric number 该选项可用于为接口创建的路由表分配度量值。路由信息协议( RIP)利用度量值来构建网络路由表。ifconfig所用的默认度量值是0。如果不运行RIP程序,就没必要采用这个选项。如果要运行RIP程序,就尽量不要改变这个默认的度量值。
mtu bytes 该选项用于设置最大传输单元,也就是接口一次能处理的最大字节数。对以太网接口来说, MTU的默认设置是1500 个字节;对SLIP接口来说,则是296个字节。
arp 标这个选项专用于以太网或包广播之类的广播网络。它启用ARP(地址解析协议)来保护网络上各台主机的物理地址。对广播网来说,默认设置是" on"(开)。
promisc 将接口置入promiscuous(混乱)模式。广播网中,这样将导致该接口接收所有的数据包,不管其目标是不是另一台主机。该选项允许利用包过滤器和所谓的以太网窥 视技术,对网络通信进行分析。通常情况下,这对揪出网络故障的元凶来说,是相当有用的。但另一方面,如果有人蓄意攻击你的网络,也可浏览到s通信数据,进 而获得密码,破坏你的网络。一项重要的保证措施是杜绝任何人将他们的计算机接入你的以太网。另一个选项用于保护某些身份验证协议的安全,比如Kerberos或SRA登录套件(该选项对应的标记是PROMISC)。
traIlers  开或关闭跟踪器。目前在某些Linux系统中还无法实现此功能。
allmulti 多播地址即是向不在同一个子网上的一组主机广播数据。多播地址尚未获得内核支持(该选项对应的标记是ALLMULTI)
txqueuelen len   设置指定接口设备的发送队列长度。

由此可以看出有大量的参数可用于配置网卡,下面是在这台计算机上使用ifconfig命令的实例:
------------------------------------------------------------------------------
ifconfig eth0 210.34.6.89 netmask 255.255.255.128 broadcast 210.34.6.127
------------------------------------------------------------------------------
该命令的作用是设置网卡eth0的IP地址,网络掩码和网络的本地广播地址。同样的方式可以用来配置eth1,eth2等等,通常netmask和broadcast只要设置一个就可以了。

3. 七层网络结构是怎么样的层次关系?

OSI网络结构的七层模型
(OSI Network Architecture 7 Layers Model)
OSI 将通信过程定义为七层,即将连网计算机间传输信息的任务划分为七个更小、更易于处理的任务组。每一个任务或任务组则被分配到各个 OSI 层。每一层都是独立存在的,因此分配到各层的任务能够独立地执行。这样使得变更其中某层提供的方案时不影响其他层。
  OSI 七层模型的每一层都具有清晰的特征。基本来说,第七至第四层处理数据源和数据目的地之间的端到端通信,而第三至第一层处理网络设备间的通信。另外, OSI 模型的七层也可以划分为两组:上层(层 7 、层 6 和层 5 )和下层(层 4 、层 3 、层 2 和层 1 )。 OSI 模型的上层处理应用程序问题,并且通常只应用在软件上。最高层,即应用层是与终端用户最接近的。 OSI 模型的下层是处理数据传输的。物理层和数据链路层应用在硬件和软件上。最底层,即物理层是与物理网络媒介(比如说,电线)最接近的,并且负责在媒介上发送数据。
各层的具体描述如下:

  第七层:应用层 定义了用于在网络中进行通信和数据传输的接口 - 用户程式;
提供标准服务,比如虚拟终端、文件以及任务的传输和处理;
  第六层:表示层 掩盖不同系统间的数据格式的不同性;
指定独立结构的数据传输格式;
数据的编码和解码;加密和解密;压缩和解压缩
  第五层:会话层 管理用户会话和对话;
控制用户间逻辑连接的建立和挂断;
报告上一层发生的错误
  第四层:传输层 管理网络中端到端的信息传送;
通过错误纠正和流控制机制提供可靠且有序的数据包传送;
提供面向无连接的数据包的传送;
  第三层:网络层 定义网络设备间如何传输数据;
根据唯一的网络设备地址路由数据包;
提供流和拥塞控制以防止网络资源的损耗
  第二层:数据链路层 定义操作通信连接的程序;
封装数据包为数据帧;
监测和纠正数据包传输错误
  第一层:物理层 定义通过网络设备发送数据的物理方式;
作为网络媒介和设备间的接口;
定义光学、电气以及机械特性。


TCP/IP层次模型共分为五层:应用层、传输层、网络层、数据链路层,物理层。
OSI层次模型共分为七层:应用层、表示层,会话层,传输层、网络层、数据链路层,物理层.
* 应用层—应用层是所有用户所面向的应用程序的统称。ICP/IP协议族在这一层面有着很多协议来支持不同的应用,如我们进行万维网(WWW)访问用到了 HTTP协议、文件传输用FTP协议、电子邮件发送用SMTP、域名的解析用DNS协议、远程登录用Telnet协议等等,都是属于TCP/IP应用层的.

* 传输层—这一层的的功能主要是提供应用程序间的通信,TCP/IP协议族在这一层的协议有TCP和UDP。

* 网络层—是TCP/IP协议族中非常关键的一层,主要定义了IP地址格式,从而能够使得不同应用类型的数据在Internet上通畅地传输,IP协议就是一个网络层协议。

* 网络接口层(数据链路层)—这是TCP/IP软件的最低层,负责接收IP数据包并通过网络发送之,或者从网络上接收物理帧,抽出IP数据报,交给IP层。

1.TCP/UDP协议
TCP (Transmission Control Protocol)和UDP(User Datagram Protocol)协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。通俗说,它是事先为所发送的数据开辟出连接好的通道,然后再进行数据发送;而UDP则不为IP提供可靠性、流控或差错恢复功能。一般来说,TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。TCP支持的应用协议主要有: Telnet、FTP、SMTP等;UDP支持的应用层协议主要有:NFS(网络文件系统)、SNMP(简单网络管理协议)、DNS(主域名称系统)、 TFTP(通用文件传输协议)等.

TCP/IP协议与低层的数据链路层和物理层无关,这也是TCP/IP的重要特点

4.对系统测试的理解

系统测试的16个策略

功能测试、性能测试、压力测试、容量测试、安全性测试、GUI测试、可用性测试、安装测试、配置测试、异常测试、备份测试、健

壮性测试、文档测试、在线帮助测试、网络测试、稳定性测试


系统测试用例设计方法有等价类划分、边界值、判定表、因果图、状态转移图、流程分析法、正交试验法、输入域测试、输出域覆盖

、异常分析法、错误猜测法

Reference: http://www.cnblogs.com/itest/archive/2007/05/30/765040.html

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics