2020年计算机网络谢希仁实验指导书_第1页
2020年计算机网络谢希仁实验指导书_第2页
2020年计算机网络谢希仁实验指导书_第3页
2020年计算机网络谢希仁实验指导书_第4页
2020年计算机网络谢希仁实验指导书_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机网络谢希仁实验指导书

目录

前导实验添加常见服务以及设置网络属性....错误!未定义书

签。

实验一制作双绞线RJ-45接头..............错误!未定义书签。

实验二小型局域网的组建....................错误!未定义书签。

实验三以太网帧的构成...................错误!未定义书签。

实验四地址解析协议ARP................错误!未定义书签。

实验五INTERNET控制报文协议............错误!未定义书签。

实验六路由信息协议RIP...................错误!未定义书签。

实验七网际协议IP.........................错误!未定义书签。

实验八TCP、UDP和端口扫描...............错误!未定义书签。

附录:HS之常见问题解答...................错误!未定义书签。

文档仅供参考,不当之处,请联系改正。

前导实验添加常见服务以及设置网络属性

一、常见服务简介

1、DNS(DomainNameSystem):域名系统。它为Internet(因特网)

上的计算机提供名称(即如“.com”的域名)至!J地址(即如“8”的IP

地址)的映射服务以用于域名解析。

2、IIS(InternetInfomationServer):Internet信息服务。它是一种Web

服务,主要包括WWW服务器、FTP服务器等。它使得在Intranet(局域网)

或Internet(因特网)上发布信息很容易。WindowsAdvancedServer上提

供的为IIS5.0o

3、DHCP(DynamicHostConfigureProtocol):动态主机配置协议。它

是设计用于简化管理地址配置的TCP/IP标准。它使用服务器集中管理IP地

址以及在您的网络上使用的其它相关配置(比如网关、DNS服务器等)的详细

信息。

二、添加DNS、IIS和DHCP服务

1、添加IISo选“控制面板-添加/删除程序-添加/删除Windows组件

—Internet信息服务-全选

2、添力口DHCP和DNS。选“控制面板-添加/删除程序—添加/删除

Windows组件-网络服务一选中:动态主机配置协议DHCP-选中:域名服务

系统DNS”。

3、添加成功后,不需重新启动,即可在“开始一程序―管理工具”中看到

并使用相关服务。如下图:

ActiveDirectory用户和计算机

三、网络属性设置ActiveDirectory域和信任关系

要使用以上所述服务,本机必须要有静态®ActiveDirectory站点和服务

(即固定)的IP地址。如果只是在局域网中使思

用,原则上可用任意的IP地址,最常见的是(lInternet服务管理器

“”到“54”范围内的任意殖]ServerExtensions管理器

值。欲为网卡绑定静态IP地址,按如下操作:

1、打开网络属性设置窗口:即TCP/IP属性设置窗口。选“控制面板一

网络和拨号连接一本地连接一属性一Internet协议(TCP/IP)一属性”。

文档仅供参考,不当之处,请联系改正。

2、为网卡绑定第一个IP地址:此IP同时也将成为本机的默认IP地址。

选”使用下面的IP地址”,在“IP地址''一栏输入“8";子网掩码一栏

输入“";如果本机同时又是本网内的服务器,则“默认网关”和“首

选DNS服务器”两栏也均填入此默认IP地址;如果本机不是本网内的服务器,

则一般“默认网关”和“备用DNS服务器”两栏的值为服务器的IP地址,而“首

选DNS服务器”依然为本机的默认IP地址。本文假设本机为本网内的服务器,

如下图:

3、为网卡绑定更多的IP地址:在上步中选“高级”,再选“添加”,然后输

入第二个IP地址“9”,其相应的子网掩码“”系统会自

动填充;增加更多的IP地址方法相同。如下图:

文档仅供参考,不当之处,请联系改正。

4、全部设置完成后,不需重新启动,退出此网络属性设置窗口后,所设

即生效!

五、网络属性设置后的验证

为了测试所进行的设置是否成功,可采用如下常见方法:

1、进入MSDOS方式:选“开始一运行”,输入“cmd”再“确定”。

2、查看本机所配置的IP地址:输入“ipconfig”再回车,即可看到相关配

置。如下图:

文档仅供参考,不当之处,请联系改正。

D:\>ipconfig

Windows2000IPConfiguration

Ethernetadapter本地连接:

Connection-specificDNSSuffix

IPAddress...................:0

SubnetMask.................:

IPAddress...................:9

SubnetMask.................:

IPAddress...................:8

SubnetMask.................:

DefaultGateway.............:8

P=\>.

3、也能够经过输入“ping8”的格式来进行验证。

文档仅供参考,不当之处,请联系改正。

实验一制作双绞线RJ-45接头

实验目的:

1.掌握直通连接网线和交叉连接网线接头的制作

2.掌握网络测试仪的使用

实验设备:

EIA/TIA-568标准5类UTP,RJ-45水晶头,双绞线网钳,网络测试仪

实验步骤:

(一)直通连接网线的RJ-45接头的制作

1.使用双绞线网钳的剪切口剪齐一段UTP电缆两段

2.使用双绞线网钳的剥线口剥除双绞线外皮,露出4对裸线

3.将4对裸线分别捋平,排列整齐,颜色按照EIA/TIA-568-A标准排

歹U:

568A标准排列:白橙、橙、白绿、蓝、白蓝、绿、白棕、棕

4.使用双绞线网钳的剪切口把参差不齐的8根裸线剪齐

5.将RJ-45接头弹片朝下,把整齐的8根裸线插入其中,使得8根裸线

的横切面紧贴RJ-45接头的底面

6.将RJ-45接头插入双绞线网钳的压线口,用力握紧手柄

7.制作另一端(重复第2步到第6步)

8.利用网络测试仪测试,若发现灯发绿光,而且发光的顺序是12,36,

45,78,则实验成功,否则失败。

(二)交叉连接网线的RJ-45接头的制作

网线一端的接头制作与上相同,另一端的接头制作应按照568-B标准的要

求制作。

568B标准排列:白绿、绿、白橙、蓝、白蓝、橙、白棕、棕

网线接头制作完毕后,若发现灯发绿光,而且发光的顺序是36,12,45,

78,则实验成功,否则失败。

附录:

直通连接网线用作连接HUB和计算机

交叉连接网线接头用作两台计算机对联

文档仅供参考,不当之处,请联系改正。

实验二小型局域网的组建

实验目的:

1.掌握局域网的组建过程

2.熟悉网络互连设备的使用

实验设备:

集线器,N台计算机,N条双绞线,网络测试仪

实验步骤:

1.用网络测试仪测试每条双绞线是否已经制作成功

2.用经过测试无误的双绞线将每台计算机和HUB相连

3.打开计算机电源,打开HUB电源

4.在TCP/IP属性中指定每台计算机的IP地址、子网掩码

例如,有4台计算机互连时,我们能够设定:

1#的IP地址:1#的子网掩码:

2#的IP地址:2#的子网掩码:

3#的IP地址:3#的子网掩码:

4#的IP地址:4#的子网掩码:

5.重启所有的计算机

6.使用DOS命令,测试N台计算机是否从物理上已经连通

例如:在1#上的DOS提示符下,键入PING按回车。

若出现如下提示,则1#和2#之间必然已经连通。

PINGWITH32BYTESOFDATA:

Replyfrom:bytes=32time<10msTTL=128

Replyfrom:bytes=32time<10msTTL=128

Replyfrom:bytes=32time<10msTTL=128

Replyfrom:bytes=32time<10msTTL=128

Pingstatisticsfor:

Packets:sent=4,received=4Jost=0(0%loss)

Approximateroundtriptimesin

milli-seconds:

Minimuin=Onis,maximuni=lms9average=OiTis

若出现有提示:Requesttimedout,则1#和2#之间没有连

通.

文档仅供参考,不当之处,请联系改正。

文档仅供参考,不当之处,请联系改正。

实验三以太网帧的构成

实验目的:

1.掌握以太网报文格式;

2.掌握MAC地址的作用;

3.掌握LLC帧报文格式;

4.掌握仿真编辑器和协议分析器的使用方法;

实验设备:

集线器,N台计算机,N条双绞线,协议仿真系统

实验步骤:

1.将服务器和工作站用双绞线和HUB连通并加载协议仿真模块

2.将主机A和B作为一组,主机A启动仿真编辑器,并编写一个LLC

帧。

3.主机B重新开始捕获数据,在捕获到的数据中查找主机A所发送的LLC

帧,分析该帧内容并纪录结果。

•记录实验结果。

帧类型发送序号N(S)接受序号N(R)

思考题:

1.为什么IEEE802标准将数据链路层分割为MAC子层和LLC子层?

2.为什么以太网有最短帧长度的要求?

补充:以太网的分类

最初的以太网是由施乐公司的Pal。Alt。研究中心(PARC)于1976年创

立的。自此以后,逐渐发展。数据速率为10Mbps的以太网称为标准以太网,

数据速率为100Mbps的以太网称为快速以太网,数据速率为1000Mbps的以太

网称为千兆以太网。当前10G以太网的标准也已正式制定。

网卡MAC地址的概念

MAC(MediaAccessControl,介质访问控制)地址是识别LAN(局域网)

节点的标识。网卡的物理地址一般是由网卡生产厂家烧入网卡的EPROM,它存

储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。

文档仅供参考,不当之处,请联系改正。

对于著名的以太网卡,其地址是48bit(比特位)的整数,如:44-45-53-54-00-00,

IEEE规定地址字段的第一字节的最低位为I/G比特,I/G表示

Individual/Groupo当I/G比特为0时,地址字段表示一个单个站地址,为1

时表示组地址,用来进行多播。IEEE将地址字段第1字节的最低第2位规定为

G/L比特,表示Global/Localo当G/L比特为1时是全球管理(保证在全球没

有相同的地址),厂商向IEEE购买的0UI都属于全球管理,当为。时是本地管

理,这时用户可任意分配网络上的地址。但应当指出,以太网几乎不使用这

个G/L比特。以太网MAC地址可分为三类:单播(unicast)地址(一对一),

即收到的帧的MAC地址与本站的硬件地址相同;广播(broadcast)地址(一对

全体),即发送给所有站点的帧(全1地址)。多播(multicast)地址(一对多),

即发送给一部分站点的帧。

以太网的MAC帧格式

以太网的MAC帧格式有两种标准,一种是DIXEthernetV2标准,另一

种是IEEE的802.3标准。但两种帧格式能够在同一以太网络共存。两种帧格

式都具有7个域:前导码、帧首定界符、目的地址、源地址、长度/类型、数

据、帧校验序列。如下图所示。

,丁F~W~16-1500k

前导码帧首定界符目的地址源地址类型/长度数据帧校验序列

文档仅供参考,不当之处,请联系改正。

实验四地址解析协议ARP

实验目的:

1.掌握ARP协议的报文格式

2.掌握ARP协议的工作原理

3.理解ARP高速缓存的作用

实验设备:

多台计算机,HUB,双绞线,协议仿真模块

实验内容及步骤:

1.主机B启动静态路由服务;

2.主机A、B、C、D、E、F在命令行下运行“arp-a”命令,察看ARP

高速缓存表;

3.主机A、B、C、D启动协议分析器,打开捕获窗口进行数据捕获并

设置过滤条件(提取ARP、ICMP);

4.主机A、B、C、D在命令行下运行“arp-d”命令,清空ARP高速

缓存;

5.主机Aping主机D;主机A、B、C、D停止捕获数据,并立即在命

令行下运行“arp-a”命令察看ARP高速缓存。

补充:ARP协议简介

Internet是由各种各样的物理网络经过使用诸如路由器之类的设备

连接在一起组成的。当主机发送一个数据包到另一台主机的过程中可能要经

过多种不同的物理网络。主机和路由器都是在网络层经过IP地址来识别的,

这个地址是在全世界内唯一的。然而,数据包是经过物理网络传递的。在物

理网络中,主机和路由器经过其MAC地址来识别的,其范围限于本地网络中。

MAC地址和IP地址是两种不同的标识符。这就意味着将一个分组传递到一个

主机或路由器需要进行两级寻址:IP和MAC。需要能将一个IP地址映射到

相应的MAC地址。

ARP协议是“AddressResolutionProtocol”(地址解析协议)的缩写。

所谓“地址解析”就是主机在发送帧前将目标网络层地址转换成目标物理地址

的过程。在使用TCP/IP协议的以太网中,即完成将IP地址映射到MAC地址

的过程一一使用ARP协议经过目标设备的IP地址,查询目标设备的MAC地

址,以保证通信的顺利进行。

文档仅供参考,不当之处,请联系改正。

实验五Internet控制报文协议

实验目的:

1.掌握ICMP协议的报文格式

2.理解不同类型ICMP报文的具体意义

3.了解常见的网络故障

实验设备:

多台计算机,HUB,双绞线,协议仿真模块

实验内容及步骤:

1.主机B启动静态路由服务;

2.主机B、E、F启动协议分析器,打开捕获窗口进行数据捕获并设置过

滤条件(提取ICMP协议);

3.主机Aping主机E;主机B、E、F停止捕获数据,察看捕获到的数据。

思考题:

1.为什么要限制由失效的ICMP差错报文再产生一个ICMP报文?

2.主机A向主机B发送数据报。主机B从未收到该数据报,而主机A也从

未收到出问题的通知。试给出可能发生的情况的两种不同解释。

3.试用表说明,什么样的ICMP报文是由路由器发送出的,什么样的ICMP

报文是由非目的主机发送出的,以及什么样的ICMP报文是由目的主机

发送出的。

补充:ICMP简介

IP协议是一种不可靠无连接的包传输,当数据包经过多个网络传输后,

可能出现错误、目的主机不响应、包拥塞和包丢失等。为了处理这些问

题,在IP层引入了一个子协议ICMP(InternetControlMessage

Protocol)。ICMP数据报有两种形式:差错数据报和查询数据报。ICMP

数据报封装在IP数据报里传输。ICMP报文能够被IP协议层、传输层协

议(TCP或UDP)和用户进程使用。ICMP与IP一样,都是不可靠传输,ICMP

的信息也可能丢失。为了防止ICMP信息无限制的连续发送,对ICMP数

据报传输中问题不能再使用ICMP传输。查询报文是成对出现的,它帮助

主机或网络管理员从一个路由器或另一个主机得到特定的信息。

・差错报告报文

文档仅供参考,不当之处,请联系改正。

IP是不可靠的协议。这就表示IP是不考虑处理检验和差错控制的。

ICMP就是为补偿这个缺点而设计的。然而ICMP不能纠正差错;它只是

报告差错。差错纠正留给高层协议去做。差错报文总是发送给原始的数

据源,因为在数据报中关于路由惟一可用的信息就是源IP地址和目的IP

地址。ICMP使用源IP地址将差错报文发送给数据报的源端。关于ICMP

差错报文有以下的一些要点:

1.对于携带ICMP差错报文的数据报,不再产生ICMP差错报文。

2.对于分段数据报,如果不是第一个分段,则不产生ICMP差错报

文。

3.对于具有多播地址的数据报,不产生ICMP差错报文。

4.对于有特殊地址(如127.0.0.0或0.0.0.0)的数据报,不产生

ICMP差错报文。

文档仅供参考,不当之处,请联系改正。

实验六路由信息协议RIP

实验目的:

1.掌握路由协议的分类

2.理解静态路由和动态路由

3.掌握动态路由协议RIP的报文格式,工作原理及工作过程

4.掌握RIP计时器的作用

5.理解RIP的稳定性

实验设备:

多台计算机,HUB,双绞线,协议仿真模块

实验内容及步骤:

1.主机A、B、C、D^E、F在命令行下运行"routeprintw命令,察看

路由表;

2.将主机A的默认网关设为172.16.0.1。

3.用主机A依次ping主机B()和主机C(),

观察现象,记录结果。

4.在主机A和主机B的命令行下运行routeprint命令,察看路由表;

5.从主机A依次ping主机B()>主机E(192.168.0.1)、

主机E(),观察现象,记录结果。

6.经过在命令行下运行routeprint命令,察看主机B和主机E路由表。

思考题:

1.RIP使用UDP,这样做有何优点?

2.条数限制如何缓解RIP的问题?

3.试列举RIP的缺点及其相应的补救办法。

文档仅供参考,不当之处,请联系改正。

实验七网际协议IP

实验目的:

1.掌握IP数据报的报文格式

2.掌握IP校验和计算方法

3.掌握子网掩码和路由转发

4.理解特殊IP地址的含义

5.理解IP分片过程

实验设备:

多台计算机,HUB,双绞线,协议仿真模块

实验内容及步骤:

1.主机A启动仿真编辑器,编辑一个IP数据报,其中:

MAC层:

目的MAC地址:主机B的MAC地址(对应于接口的MAC)。

源MAC地址:主机A的MAC地址。

协议类型或数据长度:0800。

IP层:

总长度:IP层长度。

生存时间:128。

源IP地址:主机A的IP地址()o

目的IP地址:主机E的IP地址()o

校验和:在其它所有字段填充完毕后计算并填充。

IP在计算校验和时包括那些内容?

【说明】先使用仿真编辑器的“手动计算”校验和,再使用仿真编辑器的“自

动计算”校验和,将两次计算结果相比较,若结果不一致,则重新计算。;

2.在主机B(两块网卡分别打开两个捕获窗口)、E上启动协议分析器,

设置过滤条件(提取IP协议),开始捕获数据。

思考问题

1.试说明IP地址与硬件地址的区别。为什么要使用这两种不同的地

址?

文档仅供参考,不当之处,请联系改正。

2.不同协议的MTU的范围从296到65535。使用大的MTU有什么好处?

使用小的MTU有什么好处?

3.IP数据报中的首部检验和并不检验数据报中的数据。这样做的最大好处

是什么?坏处是什么?

补充:IP(网际协议)简介

IP是TCP/IP协议族中最为核心的协议。所有的TCP、UDP、ICMP及

IGMP数据都以IP数据报格式传输。IP协议提供不可靠、无连接的数据报传

送服务,即它对数据进行“尽力传输”,只负责将分组发送到目的主机,不

论传输正确与否,不作验证、不发确认、也不保证IP数据报到达顺序,将纠

错重传问题交由传输层来解决。

文档仅供参考,不当之处,请联系改正。

实验八TCP、UDP及端口扫描

实验目的:

1.掌握TCP、UDP协议的报文格式

2.了解常见的TCP、UDP端口扫描的原理及其各种手段

3.增强网络安全意识

实验设备:

多台计算机,HUB,双绞线,协议仿真模块

实验内容及步骤:

练习一:

主机B、C、D启动协议分析器进行数据捕获,并设置过滤条件(提取TCP

协议)。

主机A启动仿真编辑器,进入TCP连接视图。在“服务器信息/IP地址”

中填入主机C的IP地址;使用“端口扫描”获取主机C的TCP端口列表,

在“服务器信息/端口”中填入主机C的一个TCP端口(大于1024);点击“连

接”按钮进行连接。

察看主机B、C、D捕获的数据,填写下表。

字段名称报文1报文2报文3

SequenceNumber

AcknowledgementNumber

ACK

SYN

TCP连接建立时,前两个报文的首部都有一个"maximumsegmentsize”

字段,它的值是多少?作用是什么?结合IEEE802.3协议规定的以太网最大帧

长度分析此数据是怎样得出的。

练习二:编辑并发送UDP数据报

本练习将主机A和B作为一组,主机C和D作为一组,主机E和F

作为一组。现仅以主机A和B为例,说明实验步骤。

1.主机A打开协议仿真编辑器。编辑发送给主机B的UDP数据报。

文档仅供参考,不当之处,请联系改正。

MAC层:

目的MAC地址:接收方MAC地址。

源MAC地址:发送方MAC地址。

协议类型或数据长度:0800,即IP协议。

IP层:

总长度:包括IP层、UDP层和数据长度。

高层协议类型:17,即UDP协议。

首部校验和:其它所有字段填充完毕后填充此字段。

源IP地址:发送方IP地址。

目的IP地址:接收方IP地址。

UDP层:

有效负载长度:UDP层及其上层协议长度。

计算校验和,其它字段默认.

UDP在计算校验和时包括那些内容?

2.在主机B上启动协议分析器,并设置过滤条件(提取UDP协议)开始

捕获数据。

3.主机A发送已编辑好的数据报。

4.主机B停止捕获数据,在捕获到的数据中查找主机A所发送的数据报。

练习三:TCPConnect扫描

1.在主机B上启动协议分析器进行数据捕获,并设置过滤条件(提取

TCP协议)。

2.在主机A上使用TCP连接工具,扫描主机B的某一端口:

a.主机A上填入主机B的IP、主机B的某一开放端口号,点击“连

接”按钮进行连接。

b.观察提示信息,是否连接上。

c.主机A点击“断开”按钮断开连接。

d.主机A使用主机B的某一未开放的端口重复以上试验步骤。

3.察看主机B捕获的数据,分析连接成功与失败的数据包差别。

结合捕获数据的差别,说明TCPConnet扫描的实现原理。

文档仅供参考,不当之处,请联系改正。

实验九PING实现

实验目的:

1.加深对ICMP协议的理解

2.掌握原始套接字进行网络程序设计的方法

实验设备:

多台计算机,HUB,双绞线,协议仿真模块

实验内容及步骤:

本练习将主机A和B作为一组,主机C和D作为一组,主机E和F作为一

组。

1.需求分析

2.使用原始套接字实现ping命令的功能(程序语言不限,应用程序采用控

制台、GUI方式均可)。

・能够指定发送报文数。

・能够指定发送报文长度。

・能够指定发送报文的TTL值。

3.代码实现。

按需求编写程序代码。

4.执行程序,检验程序的正确性。

・启动协议分析器捕获数据。

・运行已编译好的程序,ping对方IP。

•察看运行结果,分析捕获的数据

文档仅供参考,不当之处,请联系改正。

参考流程:

核心代码:

/*

*文件:ping,cpp

*描述:ping示例程序,控制台应用程序

*时间:.3.1

*/

^include<iostream>

usingnamespacestd;

ttpragmacomment(lib,"ws2_32,lib")

voidUsage(void)〃用法

(

cout<<"**************************************”<<endl;

cout«------——-用法---------------〃«endl;

cout«”程序名目标IP(主机名)[包大小][生存期][包个数]〃«

endl;

cout«"ping127.0.0.141284*«endl;

cout«"ping127.0.0.14128"«endl;

cout«"ping127.0.0.14"«endl;

cout«"ping172.0.0.1"«endl;

文档仅供参考,不当之处,请联系改正。

cout«***************************************"«endl;

)

int_tmain(intargc,_TCHAR*argv[])

(

intnNumber=4;〃默认发送报文数

intnSize=32;〃报文长度

intnTTL=128;〃生存时间

intnRecvNum=0;〃接受报文数

hostent*hp=NULL;

sockaddr_insockSend;

intuAddr=0;

CICMPMylcmp;

〃初始化Winsock

Mylcmp.Initialize();

〃解析主机

hp=gethostbyname(argv[1]);〃是否输入主机名

if(hp==NULL)

(

uAddr=inet_addr(argv[1]);〃输入IP地址

sockSend.sin_addr.S_un.S_addr=uAddr;

)

if((hp==NULL)&&(uAddr==INADDR_N0NE))

{

cout«”Unknowhost"«argv[1]«endl;

return2;

)

if(hp!=NULL)

(

memcpy(&(sockSend.sin_addr),hp->h_addr,

hp->h_length);

uAddr=sockSend.sin_addr.S_un.S_addr;

)

for(inti=0;i<nNumber;i++)

Mylcmp.SendICMP(ICMP_ECH0,uAddr);

文档仅供参考,不当之处,请联系改正。

Mylcmp.RecvICMP();

cout«MyIcmp.GetMsg();〃输出接收信息

Sleep(1000);〃延迟1秒钟

return0;

ICMP类

/*

*icmp.h

*CICMPclass

*.3.1

*/

structIP_Header

unsignedintHeaderLength:4;//IP首部长度

unsignedintVersion:4;〃协议版本

unsignedcharTOS;〃服务类型

unsignedshortTotalLength;〃数据长度

unsignedshortID;〃标识

unsignedshortmflag;〃其它标记

unsignedcharTTL;〃生命期

unsignedcharProtocal;〃协议

unsignedshortChecksum;〃检验和

unsignedintSourcelPAddress;〃源IP地址

unsignedintDestIPAddress;〃目的IP地址

);

//ICMP数据结构

structICMP_Header

(

unsignedchartype;〃类型

unsignedcharcode;〃编码

unsignedshortcksum;〃检查和

unsignedshortID;〃标识

unsignedshortnumber;〃计数值

unsignedinttime;〃时间

);

//ICMP类

文档仅供参考,不当之处,请联系改正。

classCICMP

public:

CICMP(UINTuPacSize=DEF_PACKET_SIZE,

intnTTL=DEF_TTL);

BOOLInitialize(void);〃初始化

USHORTChecksum(USHORT*pBuffer,intnSize);〃检查和

BOOLSendICMP(intnMsg,char*pAddr);〃发送报

BOOLSendICMP(intnMsg,SOCKADDR_IN*pAddr);〃发送报

BOOLRecvICMP(void);〃接收报

〃设置包大小和生存期

private:

char*m_pSendBuffer;〃发送内存数据区

char*m_pRecvBuffer;

IP_Header*mjpIPHeader;//IP数据头(接收)

ICMP_Header*m_plcmp;//ICMP数据头(发送或接

收)

SOCKETm_Sock;〃套接字标识

SOCKADDR_INm_SockAddr;

UINTm_uPacketSize;〃指定发送报文长度

);

//Icmp.cpp

〃ping类的实现文件

//Winsock初始化

BOOLCICMP::Initialize(void)

intnLen=m_uPacketSize+sizeof(ICMP_Header);

m_pSendBuffer=(char*)xmalloc(nLen);〃申请

发送内存空间

mjpRecvBuffer=(char*)xmalloc(MAX_PACKET_SIZE);〃申请

接收内存空间

〃初始化Socket2.1

WORDwVersionRequested;

文档仅供参考,不当之处,请联系改正。

WSADATAwsaData;

interr;

intnTimeOut=TIMEOUT;〃设置超时时间

wVersionRequested=MAKEWORD(2,1);

〃初始化Winsock

err=WSAStartup(wVersionRequested,fcwsaData);

〃建立原始套接字

m_Sock=WSASocket(AF_INET,

SOCK_RAW,

IPPROTO_ICMP,

NULL,

0,

0);

〃设置超时时间

setsockopt(m_Sock,S0L_S0CKET,S0_RCVTIME0,(char*)&nTime0ut,

sizeof(nTimeOut));

setsockopt(m_Sock,SOL_SOCKET,SO_SNDTIMEO,

(char*)&nTime0ut,sizeof(nTimeOut));

〃计算校验和

USHORTCICMP::Checksum(USHORT*pBuffer,intnSize)

(

unsignedlongcksum=0;

while(nSize>1)

(

cksum+=*(pBuffer++);

nSize-=sizeof(USHORT);

)

if(nSize>0)

(

cksum+=*(UCHAR*)pBuffer;

)

cksum=(cksum»16)+(cksum&Oxffff);

cksum+=(cksum»16);

return(USHORT)(~cksum);

文档仅供参考,不当之处,请联系改正。

)―—

〃发送ICMP数据包

BOOLCICMP::SendICMP(intnMsg,sockaddr_in*pAddr)

char*p_data;

intstate;〃发送数据状态

pAddr->sin_fami1y=AF_INET;

pAddr->sin_port=0;

intnICMPLen=sizeof(ICMPJeader);〃ICMP头长度

memset(m_pSendBuffer,0,m_uPacketSize+nICMPLen);〃用

0填充内存区

〃填充ICMP数据各项

m_plcmp=(ICMP_Header*)m_pSendBuffer;

m__plcmp->type=nMsg;

m_plcmp->code=0;

m__pIcmp->ID=(USHORT)GetCurrentProcessId();〃获取进程

ID

m_plcmp->number=AddNum();

m_plcmp->time=GetTickCount();

m_plcmp->cksum=0;

〃填充数据区

p__data=((char*)m_plcmp+nICMPLen);

memset((char*)p_data,J,m_uPacketSize);〃能够添任意字

〃填充检查和项

m__plcmp->cksum=Checksum((USHORT*)m__plcmp,m_uPacketSize+

nICMPLen);

〃发送数据

state=sendto(m_Sock,

(char*)m_plcmp,

m_uPacketSize+nICMPLen,

NULL,

(sockaddr*)pAddr,

sizeof(sockaddr));

returnTRUE;

文档仅供参考,不当之处,请联系改正。

).

〃接收数据

BOOLCICMP::RecvICMP(void)

(

〃接收数据

intstate;〃定义状态(接受数)

intlen=sizeof(sockaddr_in);

m_pIPHeader=NULL;

m_plcmp=NULL;

〃接收IP数据包

state二recvfrom(m_Sock,

m_pRecvBuffer,

MAX_PACKET_SIZE,

0,

(sockaddr*)&m_SockAddr,

&len);

〃分析数据

m_pIPHeader=(IP_Header*)mjpRecvBuffer;

intnIPHeaderLen=0;

nIPHeaderLen=m_pIPHeader->HeaderLength*4;〃读取IP头

长度

〃读取ICMP数据

m_plcmp=(ICMP_Header*)(mjpRecvBuffer+nIPHeaderLen);

char*addr;

addr=inet_ntoa(m_SockAddr.sin_addr);

sprintf(m_szMsg,"Replyfrom%s:bytes=%dtime=%dTTL=%d

Num=%d\n",

addr,

state-32,/*去掉IP、ICMP头*/

GetTickCount()-m_plcmp->time,

m__pIPHeader->TTL,

m__plcmp->number);

returnTRUE;

文档仅供参考,不当之处,请联系改正。

附录:HS之常见问题解答

1、问:我的机器拥有多个IP地址,它们对应各自的域名,如何建立指向

不同目录的多个WWW站点?

答:你需要分别将各个Web站点的“Web站点”选项中的“IP地址”指向不

同的IP,再将“主目录”中的路径选不同的目录即可。

2、问:我的计算机拥有多个IP地址,它们对应各自的域名,如何建立指

向同一个目录的一个WWW站点?

答:能够建立多个Web站点,选不同的IP,再将“主目录”中的路径指向

同一个目录即可;也可使用其它程序(比如ASP)的相应语句来实现。

3、问:我的计算机只拥有一个IP地址,我已在DNS中将多个域名指向

了它,如何建立指向同一个目录的一个WWW站点?

答:只需建立一个Web站点,选这个IP地址即可。

4、问:我的计算机只拥有一个IP地址,我已在DNS中将多个域名指向

了它,如何建立指向不同目录的多个WWW站点?

答:IIS5.0能很好地支持一个IP地址对应多个独立的域名,这能够经过

两种方法来实现:

(1)设不同的TCP端口号:你需要分别将各个Web站点的“Web站点”

选项中的“TCP端口”指向不同的端口号,再将“主目录”中的路径选不同的目录

即可。调用格式如“:99”。

(2)设不同的主机头名:你需要分别将各个Web站点的“Web站点一高

级一编辑”中的“主机头名”一项填入不同的域名,再将“主目录”中的路径选不

同的目录即可。调用格式如

5、问:如何限制到每个Web站点的最大连接数?

答:选“Web站点”选项,将其中的“限制到xxx连接”中的“xxx”改成需要

值即可。

6、问:如果当没有“默认文档”存在时就显示出所调用目录的目录和文件

列表?

答:选“主目录”选项,将“目录浏览”选中即可。

7、问:当所调用的页面不存在或有其它错误时,我怎么做才能显示我希

望显示的提示内容?

文档仅供参考,不当之处,请联系改正。

答:进入“\WINNT\help\iisHeIp\common”目录,其中“400.htm”就是当所

调用页面不存在时所出现的错误提示页面,将它编辑成你需要内容即可;其它

提示信息也可经过此办法进行修改。

8、问:如何只允许授权的用户访问我的站点?

答:选“目录安全性”选项,再选“匿名访问和验证控制”,然后选“编辑”,

把“匿名访问”前的勾去掉,则用户访问时就必须输入相应的用户名和密码(均

为2K的用户库中的授权用户)才能进入!或者选“IP地址及域名限制”,将“编

辑”中添加只允许(或拒绝)访问的计算机的IP地址即可。

9、问:我用除匿名和管理员之外的其它用户登录FTP时,总不能成功。

为什么?

答:可能的原因是:

(1)用户的帐号过了有效期,需重设有效期。

(2)建立用户帐号时选了“用户下次登录时必须更改密码”,需重此项去

掉,再将“密码永久有效”选中。

(3)用户不具备在本机登录的权限,需将它加入以下三个组

“Administrator"、"PowerUsers"和"BackupOperators”中的一个里面去;或运

行“gpedit.msc”,依次选”计算机配置—Windows设置-安全设置一本地策略一

用户权利和指派”,然后在右边面板中双击“在本机登录”将用户名“添加”进去

即可。

(4)密码不正确,需改正。

10、如何拒绝FTP用户的匿名连接?

答:选FTP站点的“安全帐号”,将“允许匿名连接”前的小勾去掉即可

11、问:当在浏览器中输入“http://IP地址”和输入“http://IP地址/”有什

么差别吗?它们会做什么?

答:没有差别!前一种格式浏览器也会自动在后面加上“/”!它们的意思

都是“依次”去查找并调用相应“主目录”下的“默认文档”。

另,本题中的“IP地址”也可为“域名”;道理完全一样。

12、问:做网页时,输入链接用“IP地址”和输入“http://IP地址”是否一

样?

答:一般来说输入两种格式都能够,但实际上它们是有区别的。在有些较

特殊格式的网页里,加“http://”和不加是截然两回事!在那些地方,第一种格

文档仅供参考,不当之处,请联系改正。

式被看作了“当前目录”下的一个目录链接;第二种格式才把它看成了从别的

“根目录”下开始的一个单独的网站。

因此,为保险起见,建议在网页中要链接到其它站点时,均在相应的域名

(或

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论