计算机网络课程设计(精选)

时间:2019-05-14 04:29:36下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《计算机网络课程设计(精选)》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《计算机网络课程设计(精选)》。

第一篇:计算机网络课程设计(精选)

课程设计(论文)任务书

信息工程 学院

计算机应用 专业 计算机2010-1 班

一、课程设计(论文)题目 计算机网络课程设计

二、课程设计(论文)工作自 2012 年 6 月 18 日起至 2012 年 6 月 22 日止。

三、课程设计(论文)地点: 创新大楼405有线网络实验室。

四、课程设计(论文)内容要求: 1.本课程设计的目的

通过课程设计,使学生理论联系实际,在实践中进一步了解计算机网络体系结构,深入理解TCP/IP参考模型,掌握各种网络工程技术和网络规划与设计,初步掌握综合布线技术、高速局域网技术、广域网接入技术、网络互联技术,初步掌握网络应用程序开发技术以及互联网的应用技术。培养学生分析、解决问题的能力,提高学生的科技论文写作能力。2.课程设计的任务及要求 1)基本要求:

(1)熟悉交换机、路由器等网络设备的功能和使用;(2)掌握网络规划与设计,掌握网络安全与管理技术;(3)初步掌握网络应用程序设计技术和互联网应用技术。2)课程设计论文编写要求

(1)理论设计部分以课程设计论文的形式提交,格式必须按照课程设计论文标准格式进行书写和装订。

(2)课程设计报告(论文)包括目录、绪论、正文、设计小结、参考文献、附录等

3)课程设计评分标准:

(1)考勤与学习态度:20分

(2)理论理解与课程设计报告论文:40分;

(3)动手操作与实验设计:20分;

(4)设计论文答辩:20分。4)参考文献:

(1)《计算机网络(第5版)》,谢希仁主编,电子工业出版社出版

(2)《windows网络编程技术》,胡鸣主编,科学出版社出版

(3)网上百度 5)课程设计进度安排

内容 天数 地点

1.选择设计题目、了解设计目的要求、查阅相关理论资料 1天 图书馆、机房

2.设计方案选型及实验室完成相关的设计任务 2天 实验室 3.总结课程设计任务和设计步骤,撰写课程设计论文 2天 图书馆、机房、实验室

学生签名:

2012 年6月18日

6)选择课程设计题目具体要求: 用winsock设计Ping应用程序

具体要求:

理解winsock技术网络编程技术,分析PING应用程序设计原理和程序流程,选择合适的开发环境,参考已有的PING程序功能,设计实现ping功能的应用程序。设计论文要求:

1)分析winsock编程技术;

2)分析ping程序的功能及其相关网络协议; 3)给出ping程序流程图和设计方案; 4)选择开发环境,编译源程序; 5)给出软件测试文档; 6)设计小结;

参考文献(包括互联网上的引用信息)。

课程设计(论文)评审意见

(1)考勤与学习态度(20分):优()、良()、中()、一般()、差();

(2)理论理解与课程设计报告论文(40分):优()、良()、中()、一般()、差();

(3)动手操作与实验设计(20分):优()、良()、中()、一般()、差();

(4)设计论文答辩(20分):优()、良()、中()、一般()、差();(5)格式规范性及考勤是否降等级:是()、否()

评阅人:

职称: 讲 师

2012 年6 月24 日

目录

一、目的和意义以及发展现状和趋势..........................1

二、课程设计具体要求......................................2

三、winsock编程技术.......................................3

四、ping程序的功能及其相关网络协议........................6

五、ping程序流程图和设计方案..............................7

六、开发环境..............................................9

七、源程序...............................................10

八、软件测试.............................................22

九、总结与心得...........................................24

十、参考文献.............................................25

一、目的和意义以及发展现状和趋势

目的: 通过课程设计,使学生理论联系实际,在实践中进一步了解计算机网络体系结构,深入理解,TCP/IP参考模型,掌握各种网络工程技术和网络规划与设计,初步掌握综合布线技术、高速局域网技术、广域网接入技术、网络互联技术,初步掌握网络应用程序开发技术以及互联网的应用技术。培养学生分析、解决问题的能力,提高学生的科技论文写作能力。

意义:在进行本课程设计题目后,能初步掌握PING程序的设计原理及实现过程,了解网络的连通性概念,了解winsock网络编程的概念并能实现简单的网络应用程序设计与实现。

发展现状和趋势:ping命令是用来检查网络是否能够连通,用它可以很好地帮助我们分析判定网络故障,并且是windows等系统自带的程序,大多数上网用户都会使用该功能,其发展现状良好,是目前使用特别多的一个工具,估计这也将成为未来的发展的趋势。

二、课程设计具体要求 用winsock设计Ping应用程序 具体要求:

理解winsock技术网络编程技术,分析PING应用程序设计原理和程序流程,选择合适的开发环境,参考已有的PING程序功能,设计实现ping功能的应用程序。

设计论文要求:

7)分析winsock编程技术;

8)分析ping程序的功能及其相关网络协议; 9)给出ping程序流程图和设计方案; 10)选择开发环境,编译源程序; 11)给出软件测试文档; 12)设计小结;

参考文献(包括互联网上的引用信息)。

三、winsock编程技术

使用WinSock API的编程,应该了解TCP/IP的基础知识。虽然你可以直接使用WinSock API来写网络应用程序,但是,要写出优秀的网络应用程序,还是必须对TCP/IP协议有一些了解的。

1.TCP/IP协议与WinSock网络编程接口的关系

WinSock 并不是一种网络协议,它只是一个网络编程接口,也就是说,它不是协议,但是它可以访问很多种网络协议,你可以把他当作一些协议的封装。现在的 WinSock已经基本上实现了与协议无关。你可以使用WinSock来调用多种协议的功能。那么,WinSock和TCP/IP协议到底是什么关系呢?实际上,WinSock就是TCP/IP协议的一种封装,你可以通过调用WinSock的接口函数来调用TCP/IP的各种功能.例如我想用TCP/IP 协议发送数据,你就可以使用WinSock的接口函数Send()来调用TCP/IP的发送数据功能,至于具体怎么发送数据,WinSock已经帮你封装好了这种功能。

2、TCP/IP协议介绍

TCP/IP协议包含的范围非常的广,他是一种四层协议,包含了各种硬件、软件需求的定义。TCP/IP协议确切的说法应该是TCP/UDP/IP协议。UDP协议(User Datagram Protocol 用户数据报协议),是一种保护消息边界的,不保障可靠数据的传输。TCP协议(Transmission Control Protocol 传输控制协议),是一种流传输的协议。他提供可靠的、有序的、双向的、面向连接的传输。保护消息边界,就是指传输协议把数据当作一条独立的消息在网上传输,接收端只能接收独立的消息。也就是说存在保护消息边界,接收端一次只能接收发送端发出的一个数据包。

而面向流则是指无保护消息保护边界的,如果发送端连续发送数据,接收端有可能在一次接收动作中,会接收两个或者更多的数据包。3.WinSock编程简单流程

WinSock编程分为服务器端和客户端两部分,TCP服务器端的大体流程如下:

对于任何基于WinSock的编程首先必须要初始化WinSock DLL库。int WSAStarup(WORD wVersionRequested,LPWSADATA lpWsAData)。wVersionRequested是我们要求使用的WinSock的版本。调用这个接口函数可以初始化WinSock。

然后必须创建一个套接字(Socket)。

SOCKET Socket(int af,int type,int protocol);套接字可以说是WinSock通讯的核心。WinSock通讯的所有数据传输,都是通过 3 套接字来完成的,套接字包含了两个信息,一个是IP地址,一个是Port端口号,使用这两个信息,就可以确定网络中的任何一个通讯节点。

当调用了Socket()接口函数创建了一个套接字后,必须把套接字与你需要进行通讯的地址建立联系,可以通过绑定函数来实现

int bind(SOCKET s,const struct sockaddr FAR* name,int namelen);struct sockaddr_in{ short sin_family;u_short sin_prot;struct in_addr sin_addr;char sin_sero[8];} 就包含了需要建立连接的本地的地址,包括地址族、IP和端口信息。sin_family字段必须把它设为AF_INET,这是告诉WinSock使用的是IP地址族。sin_prot就是要用来通讯的端口号。sin_addr就是要用来通讯的IP地址信息。WinSock API提供了几个函数。把主机字节转化成网络字节的函数;u_long htonl(u_long hostlong);u_short htons(u_short hostshort);把网络字节转化成主机字节的函数;u_long ntohl(u_long netlong);u_short ntohs(u_short netshort);这样,设置IP地址和port端口时,就必须把主机字节转化成网络字节后,才能用Bind()函数来绑定套接字和地址。

当绑定完成之后,服务器端必须建立一个监听的队列来接收客户端的连接请求。int listen(SOCKET s,int backlog);这个函数可以把套接字转成监听模式。如果客户端有了连接请求,我们还必须使用

int accept(SOCKET s,struct sockaddr FAR* addr,int FAR* addrlen);来接受客户端的请求。

现在基本上已经完成了一个服务器的建立,而客户端的建立的流程则是初始化WinSock,然后创建Socket套接字,再使用

int connect(SOCKET s,const struct sockaddr FAR* name,int namelen);来连接服务端。4.WinSock编程的模型

上面介绍的仅仅是最简单的WinSock通讯的方法,而实际中很多网络通讯的却很多难以解决的意外情况。

例如,WinSock提供了两种套接字模式:锁定和非锁定。当使用锁定套接字的时候,使用的很多函数,例如accpet、send、recv等等,如果没有数据需要处理,这些函数都不会返回,也就是说,你的应用程序会阻塞在那些函数的调用处。而如果使用非阻塞模式,调用这些函数,不管你有没有数据到达,他都会返回。所以有可能我们在非阻塞模式里,调用这些函数大部分的情况下会返回失败,所以就需要我们来处理很多的意外出错。

这显然不是我们想要看到的情况。我们可以采用WinSock的通讯模型来避免这些情况的发生。

WinSock提供了五种套接字I/O模型来解决这些问题。他们分别是select(选择),WSAAsyncSelect(异步选择),WSAEventSelect(事件选择,overlapped(重叠),completion port(完成端口)。

这里详细介绍一下select,WSAASyncSelect两种模型。Select模型是最常见的I/O模型。使用

int select(int nfds , fd_set FAR* readfds , fd_set FAR* writefds,fd_set FAR* exceptfds,const struct timeval FAR * timeout);函数来检查你要调用的Socket套接字是否已经有了需要处理的数据。select包含三个Socket队列,分别代表:

readfds,检查可读性,writefds,检查可写性,exceptfds,例外数据。timeout是select函数的返回时间。

WSAAsyncSelect(异步选择)模型:WSAASyncSelect模型就是把一个窗口和套接字句柄建立起连接,套接字的网络事件发生时时候,就会把某个消息发送到窗口,然后可以在窗口的消息响应函数中处理数据的接收和发送。

int WSAAsyncSelect(SOCKET s, HWND hWnd , unsigned int wMsg , long lEvent);这个函数可以把套接字句柄和窗口建立起连接,wMsg 是我们必须自定义的一个消息。

四、ping程序的功能及其相关网络协议

1、Ping程序功能

它主要的功能是用来检测网络的连通情况和分析网络速度。

Ping程序通过主机向远程计算机发出ICMP回显请求,远程计算机拦截这个请求,然后生成一条回显应答消息,通过网络传给主机。但是如果因为一些原因造成不能抵达目标主机,就会生成对应的ICMP错误消息,由原来打算建立通信的那个路径上某处的一个路由器返回。如果与远程主机的物理性连接并不存在问题,但是远程主机已经关机或没有设置对网络时间的做出相应,便需由自己的程序来执行超时检测,侦测出这样的情况。以检查网络是否能够连通,从而可以很好地帮助我们分析判定网络故障。

它所利用的原理:网络上的机器都有唯一确定的IP地址,按照缺省设置,Windows上运行的Ping命令给目标IP地址发送4个ICMP(网间控制报文协议)回送请求,每个32字节数据,如果一切正常,应能得到4个回送应答。根据返回的数据包我们可以确定目标主机的存在以及是否可达。

在本程序中,可以通过两种方式测试目标主机的连通性:通过ip地址或者主机名。前者较简单,若通过主机名测试连通性的话,首先要通过数据库中的地址主机名表查询并解析其对应的ip地址,然后进一步测试连通性。如果可以正常连通,则按照先后的顺序返回4个应答帧,显示所用的时间,并且提示完成ping测试。如果不能正常连通,则显示Unknow host+地址,并提示测试完成。

2、Ping的协议

支持Ping的协议中ICMP是最关键的一个。ICMP全称Internet Control Message Protocol(网际控制信息协议)。在网络体系结构的各层次中,都需要控制,而不同的层次有不同的分工和控制内容,IP层的控制功能是最复杂的,主要负责差错控制、拥塞控制等,任何控制都是建立在信息的基础之上的,在基于IP数据报的网络体系中,网关必须自己处理数据报的传输工作,而IP协议自身没有内在机制来获取差错信息并处理。为了处理这些错误,TCP/IP设计了ICMP协议,当某个网关发现传输错误时,立即向信源主机发送ICMP报文,报告出错信息,让信源主机采取相应处理措施,它是一种差错和控制报文协议,不仅用于传输差错报文,还传输控制报文。

ICMP报文包含在IP数据报中,属于IP的一个用户,IP头部就在ICMP报文的前面,所以一个ICMP报文包括IP头部、ICMP头部和ICMP报文,IP头部的Protocol值为1就说明这是一个ICMP报文,ICMP头部中的类型(Type)域用于

说明ICMP报文的作用及格式,此外还有一个代码(Code)域用于详细说明某种ICMP报文的类型,所有数据都在ICMP头部后面。

常见的ICMP报文主要有:响应请求目标不可到达、源抑制和超时报文,以 及时间戳。6

五、ping程序流程图和设计方案

1、Ping请求程序流程图

2、Ping回应程序流程图

3、接收数据包流程图

六、开发环境

1、C语言简介

C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出。1978后,C语言已先后被移植到大、中、小及微型机上。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。具体应用比如单片机以及嵌入式系统开发。

2、C语言特点

C是高级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。

C是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。

C语言适用范围大。适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。

C语言对编写需要硬件进行操作的场合,明显优于其它高级语言,有一些大型应用软件也是用C语言编写的。

七、源程序

/*ping源文件*/

#pragma comment(lib, “ws2_32.lib”)

#include #include #include #include #include

#define IP_RECORD_ROUTE 0x7

#define DEF_PACKET_SIZE 32

#define MAX_PACKET

1024

#define MAX_IP_HDR_SIZE 60

#define ICMP_ECHO

#define ICMP_ECHOREPLY

0

#define ICMP_MIN

void InitPing();void UserHelp();

void GetArgments(int argc, char** argv);

USHORT CheckSum(USHORT *buffer, int size);void FillICMPData(char *icmp_data, int datasize);void FreeRes();

void DecodeIPOptions(char *buf, int bytes);void DecodeICMPHeader(char *buf, int bytes, SOCKADDR_IN* from);

void PingTest(int timeout);

typedef struct _iphdr

//定义IP报头结构体 { 10 unsigned int h_len:4;/*表示IP报头长度,首部长度指的是首部占32bit字的数目,包括任何选项。由于它是一个4bit 字段,因此首部最长为60个字节,不包括任何选项的IP报头是20个字节。*/

unsigned int version:4;// 表示IP的版本号,这里表示Ipv4 unsigned char tos;/*表示服务的类型,可以表示最小时延,最大吞吐量,最高可靠性和最小费用。*/ unsigned short total_len;//整个IP数据报的总长度

unsigned short ident;//唯一的标识符,标识主机发送的每一份数据报 unsigned short frag_flags;//分段标志,表示过长的数据报是否要分段 unsigned char ttl;//生存期,表示数据报可以经过的最多路由器数 unsigned char proto;//协议类型(TCP、UDP等)unsigned short checksum;//校验和 unsigned int sourceIP;//源IP地址 unsigned int destIP;//目的IP地址 } IpHeader;

typedef struct _icmphdr

//定义ICMP报文结构体 {

BYTE

i_type;

//ICMP报文类型

BYTE

i_code;

// 该类型中的代码号,一种ICMP 报文的类型号和该类型中的代码号共同决定

USHORT i_cksum;

// 校验和

USHORT i_id;

USHORT i_seq;

// 序列号,序列号从0开始,每发送一次新的回显请求就加1

ULONG timestamp;

// 时间

} IcmpHeader;

typedef struct _ipoptionhdr

//定义IP选项结构体 {

unsigned char code;

// 指明IP 选项类型,对于路由记录选项,它的值是7

unsigned char len;

// 选项头长度

unsigned char ptr;

// 地址指针字段,是一个基于1的指针,指向存放下一个IP地址的位置

unsigned long addr[9];

//记录的Ip地址列表,由于IP首部中选项的空间有限,所以可以记录的Ip地址最多是9个 } IpOptionHeader;

SOCKET m_socket;IpOptionHeader IpOption;SOCKADDR_IN DestAddr;SOCKADDR_IN SourceAddr;

char *icmp_data;char *recvbuf;USHORT seq_no;char *lpdest;int datasize;BOOL RecordFlag;double PacketNum;BOOL SucessFlag;

void InitPing()

//初始化ping 所需的全局变量,为各个变量赋初始值 {

WSADATA wsaData;

icmp_data = NULL;

seq_no = 0;

recvbuf = NULL;

RecordFlag = FALSE;

lpdest = NULL;

datasize = DEF_PACKET_SIZE;

PacketNum = 5;

SucessFlag = FALSE;

if(WSAStartup(MAKEWORD(2, 2), &wsaData)!= 0)

{

printf(“WSAStartup()failed: %dn”, GetLastError());

return;

}

m_socket = INVALID_SOCKET;}

void UserHelp()

//显示用户帮助信息 { printf(“请到cmd命令提示符上操作!n”);printf(“UserHelp: ping-r [data size]n”);

printf(“

-r

record routen”);

printf(“

-n

record amountn”);

printf(“

host

remote machine to pingn”);

printf(“

datasize

can be up to 1KBn”);

ExitProcess(-1);}

void GetArgments(int argc,char** argv)

//获取用户提交的参数 {

int i;

int j;

int exp;

int len;

int m;

if(argc == 1)

{

printf(“nPlease specify the destination IP address and the ping option as follow!n”);

UserHelp();

}

for(i = 1;i < argc;i++)

{

len = strlen(argv[i]);

if(argv[i][0] == '-')

{

if(isdigit(argv[i][1]))

{

PacketNum = 0;

for(j=len-1,exp=0;j>=1;j--,exp++)

PacketNum +=((double)(argv[i][j]-48))*pow(10,exp);

}

else

{

switch(tolower(argv[i][1]))

{

case 'r':

RecordFlag = TRUE;

break;

default:

UserHelp();break;

}

}

}

else if(isdigit(argv[i][0]))

{

for(m=1;m

{

if(!(isdigit(argv[i][m])))

{

lpdest = argv[i];

break;

}

else if(m==len-1)

datasize = atoi(argv[i]);

}

}

else

lpdest = argv[i];

} }

USHORT CheckSum(USHORT *buffer, int size){

unsigned long cksum=0;

while(size > 1)

{

cksum += *buffer++;

size-= sizeof(USHORT);

}

if(size)

{

cksum += *(UCHAR*)buffer;

}

cksum =(cksum >> 16)+(cksum & 0xffff);

cksum +=(cksum >>16);

return(USHORT)(~cksum);}

void FillICMPData(char *icmp_data, int datasize)字段 {

//计算校验和

//填充ICMP数据报中各个

IcmpHeader *icmp_hdr = NULL;

char

*datapart = NULL;

icmp_hdr =(IcmpHeader*)icmp_data;

icmp_hdr->i_type = ICMP_ECHO;

icmp_hdr->i_code = 0;

icmp_hdr->i_id =(USHORT)GetCurrentProcessId();

icmp_hdr->i_cksum = 0;

icmp_hdr->i_seq = 0;

datapart = icmp_data + sizeof(IcmpHeader);

memset(datapart,'0',datasize-sizeof(IcmpHeader));}

void FreeRes()

//释放占用的资源,包括关闭初始化socket 调用的函数的、关闭创建的socket和释放分配的内存等。{

if(m_socket!= INVALID_SOCKET)

closesocket(m_socket);

HeapFree(GetProcessHeap(), 0, recvbuf);

HeapFree(GetProcessHeap(), 0, icmp_data);

WSACleanup();

return;}

void DecodeIPOptions(char *buf, int bytes)

//解读IP选项,从中读出从源主机到目的主机经过的路由,并输出路由信息 {

IpOptionHeader *ipopt = NULL;

IN_ADDR inaddr;

int i;HOSTENT *host = NULL;

ipopt =(IpOptionHeader *)(buf + 20);

printf(“RR:

”);

for(i = 0;i <(ipopt->ptr / 4)icmphdr->timestamp);

printf(“n”);

icmpcount++;

return;}

void PingTest(int timeout)

//进行Ping操作 {

int ret;

int readNum;

int fromlen;

struct hostent *hp = NULL;

m_socket = WSASocket(AF_INET, SOCK_RAW, IPPROTO_ICMP, 0,WSA_FLAG_OVERLAPPED);

if(m_socket == INVALID_SOCKET)

{

printf(“WSASocket()failed: %dn”, WSAGetLastError());

NULL,return;

}

if(RecordFlag)

{

ZeroMemory(&IpOption, sizeof(IpOption));

IpOption.code = IP_RECORD_ROUTE;

IpOption.ptr = 4;

IpOption.len = 39;

ret = setsockopt(m_socket, IPPROTO_IP, IP_OPTIONS,(char *)&IpOption, sizeof(IpOption));

if(ret == SOCKET_ERROR)

{

printf(“setsockopt(IP_OPTIONS)failed: %dn”,WSAGetLastError());

}

}

readNum = setsockopt(m_socket, SOL_SOCKET, SO_RCVTIMEO,(char*)&timeout, sizeof(timeout));

if(readNum == SOCKET_ERROR)

{

printf(“setsockopt(SO_RCVTIMEO)failed: %dn”,WSAGetLastError());

return;

}

timeout = 1000;

readNum = setsockopt(m_socket, SOL_SOCKET, SO_SNDTIMEO,(char*)&timeout, sizeof(timeout));

if(readNum == SOCKET_ERROR)

{

printf(“setsockopt(SO_SNDTIMEO)failed: %dn”,WSAGetLastError());

return;

}

memset(&DestAddr, 0, sizeof(DestAddr));

DestAddr.sin_family = AF_INET;

if((DestAddr.sin_addr.s_addr = inet_addr(lpdest))== INADDR_NONE)

{

if((hp = gethostbyname(lpdest))!= NULL)

{

memcpy(&(DestAddr.sin_addr), hp->h_addr, hp->h_length);

DestAddr.sin_family = hp->h_addrtype;

printf(“-------华东交通大学信息学院20100610040104------------------n”);

printf(“DestAddr.sin_addr = %sn”, inet_ntoa(DestAddr.sin_addr));

}

else

{

printf(“gethostbyname()failed: %dn”,WSAGetLastError());

return;

}

}

datasize += sizeof(IcmpHeader);

icmp_data =(char*)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,MAX_PACKET);

recvbuf =(char*)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,MAX_PACKET);

if(!icmp_data)

{

printf(“HeapAlloc()failed: %dn”, GetLastError());

return;

}

memset(icmp_data,0,MAX_PACKET);

FillICMPData(icmp_data,datasize);

while(1){

static int nCount = 0;

int writeNum;

if(nCount++ == PacketNum)

break;

((IcmpHeader*)icmp_data)->i_cksum = 0;

((IcmpHeader*)icmp_data)->timestamp = GetTickCount();

((IcmpHeader*)icmp_data)->i_seq = seq_no++;

((IcmpHeader*)icmp_data)->i_cksum = CheckSum((USHORT*)icmp_data, datasize);

writeNum = sendto(m_socket, icmp_data, datasize, 0,(struct sockaddr*)&DestAddr, sizeof(DestAddr));

if(writeNum == SOCKET_ERROR)

{

if(WSAGetLastError()== WSAETIMEDOUT)

{

printf(“timed outn”);

continue;

}

printf(“sendto()failed: %dn”, WSAGetLastError());

return;

}

fromlen = sizeof(SourceAddr);

readNum = recvfrom(m_socket, recvbuf, MAX_PACKET, 0,(struct sockaddr*)&SourceAddr, &fromlen);

if(readNum == SOCKET_ERROR)

{

if(WSAGetLastError()== WSAETIMEDOUT)

{

printf(“timed outn”);

continue;

}

printf(“recvfrom()failed: %dn”, WSAGetLastError());

return;

}

DecodeICMPHeader(recvbuf, readNum, &SourceAddr);

} } int main(int argc, char* argv[]){

InitPing();

GetArgments(argc, argv);

PingTest(1000);

Sleep(1000);

if(SucessFlag){

printf(“-------华东交通大学信息学院20100610040104------------------n”);

printf(“nPing end, you got %.0f record!n”,PacketNum);

printf(“nplease press enter if you want to ping againn”);}

else

printf(“Ping end,no record!”);

FreeRes();

getchar();

return 0;

}

八、软件测试

九、总结与心得

一个星期结束了,不敢说自己有多大的进步,获得了多少知识,但起码对网路有了进一步的了解。通过这次课程设计发现这其中需要的很多知识我们没有接触过,去图书馆查资料的时候发现我们课堂上学到的仅仅是皮毛,还有很多我们需要掌握的知识。同时也发现有很多我们学过的东西并没有理解到位,不能灵活运用于实际,不能很好的用来解决问题,这就需要我们不断地大量的实践,通过不断的自学,不断的发现问题,思考问题,进而解决问题。在这个过程中,我们将深刻理解所学知识,也可以学到不少很实用的知识。比如了解了ping命令实际上是向你要访问的目的地主机发送一个ICMP数据包,如果网络连通良好,目的主机收到该数据包后,会返回一个同样大小的ICMP数据包,通过返回的数据包里面的内容,你可以了解很多东西,如往返时间、TTL、目的地址的IP地址、目的地主机所使用的操作系统、所经过的路由数等等,我的实验里由于时间较短、只设计了能查看往返时间、TTL、目的地址的IP地址这些信息。

阅读各种文档,很多东西写的思路清晰,貌似看着也很简单,但真正需要自己想办法去设计一个时才发现其中的难度。

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

不管做什么,我们都要相信自己,不能畏惧,不能怕遇到困难,什么都需要去尝试,有些你开始认为很难的事在你尝试之后你可能会发现原来它并没有自己以前觉得的那样难,自己也是可以的。

十、参考文献

(1)《计算机网络(第5版)》,谢希仁主编,电子工业出版社出版

(2)《windows网络编程技术》,胡鸣主编,科学出版社出版

(3)网上百度

第二篇:计算机网络课程设计

1.课题描述........................................................1 2 系统设计概述...................................................1 3 课程设计的主要内容............................................2 3.1站点总体设计原则及设计目标....................................2 3.2用户需求......................................................2 3.3动态IP地址的设置及服务器的配置...............................3 3.3.1.动态IP配置简介...........................................3 3.3.2.配置DHCP服务器...........................................3 3.3.3配置IIS服务器.............................................6 3.4制作网站......................................................6 3.4.1.建站流程..................................................6 3.4.2.网站各模块的设计...........................................7 3.4.3.建站实现软件...............................................8 3.5.建站注意要点..................................................9 3.5.1.前期调研分析...............................................9 3.5.2.网站的目的及功能定位.......................................9 3.5.3网站技术解决方案...........................................9 3.5.4.网站内容规划.............................................10 3.5.5.网页设计.................................................10 3.5.6.网站测试..................................................10 4.网站维护.......................................................10 4.1、静态页面的添加修改..........................................10 4.2、动态功能支持在线更新........................................10

总结..............................................................12 参考文献.........................................................12

1.课题描述

计算机网络近年来获得了飞速的发展。计算机通信网络以及Internet已成为我们社会结构的一个基本组成部分。网络被应用于工商业的各个方面,电子银行、电子商务、企业管理、信息服务业等都以计算机网络系统为基础。从学校远程教育到公司日常办公乃至现在的电子社区,很多方面都离不开网络技术。可以不夸张地说,网络在当今世界无处不在。

网络的发展也是一个经济上的冲击。数据网络使个人化的远程通信成为可能,并改变了商业通信的模式。一个完整的用于发展网络技术、网络产品和网络服务的新兴工业已经形成,计算机网络的普及性和重要性已经导致了在不同岗位上对具有更多网络知识的人才的大量需求。企业需要雇员来规划、获取、安装、操作、管理那些构成计算机网络的软硬件系统,建立自己的网站,方便办公及交流 系统设计概述

传统的企业内部办公存在着种种弊端,往往造成人员和资源的极大浪费,应用网络技术组建余个高效、快捷、安全的办公环境成为许多企业和单位的当务之急。与传统的单机工作相比,网络化办公具有以下几个明显优点: 1共享软硬件资源,节约资金投入,提高运作效率

企业内部组件web站点后,可以在一个部门只安装一台打印机和扫描仪,其他计算机通过局域网共享这些设备和数据,有利于降低成本。2对重要数据进行安全、集中的管理

组建站点后,可以把一些重要数据放置在专门的网络服务器上集中管理,并通过网络服务器的访问控制限制其他计算机对总要数据的访问。这样就可以有效管理企业内部的重要数据,保证数据安全性,防止数据丢失和被窃取。3方便企业内部信息发布与交流

当企业进行诸如企业内部新闻、电话号码、产品文档、技术文件等信息发布时,可以把这些信息放置在web站点的共享目录上,供员工下载,方便了信息的发布和接收。4便于员工的协调操作

利用内部的办公网,可以方便的对同一事务进行协同处理,提高工作效率,缩短任务完成的时间

图2.1企业内部网络拓扑 课程设计的主要内容

3.1站点总体设计原则及设计目标

组建企业内部web站点要注意站点的分块、共享、安全性、可管理性、以及可维护性。在设计中,系统结构模块化,软硬件平台可以模块化瓶装,系统配置灵活,使系统具有强大的可增长性和强壮性。满足多层次安全控制手段,建立完善的安全管理体系,防止数据的丢失和被窃取。

组建企业内部web站点,既能将公司内部所有计算机纳入系统中去,实现统一规划、分块工作、异地互联、整体管理,并可为将来的应用扩展升级预留接口。

3.2用户需求 作为企业内部网络需要满足:

1、办公事务管理

主要包括公文与文档管理、公告、大事记、会议纪要、资产与办公用品管理、行政制度、办公事务讨论等。

2、人力资源管理

主要包括员工档案、岗位职责、员工通信录、认识管理规范等。

3、财务资产管理

主要包括固定资产管理、工资管理、经费管理等。

4、网站管理

主要包括用户及权限设置、数据库维护、网页设置、标志与标题设置及网络各栏目内容编辑等功能。

3.3动态IP地址的设置及服务器的配置

3.3.1.动态IP配置简介

动态IP地址,顾名思义就是设备所取得的IP地址是非固定的,是可以动态分配和取得的。使用动态IP地址的原因主要有两个:一是可以用较少的IP地址构建较大的网络。如果与连入网络的主机和其它设备相比,所分得的公用IP地址略少一些,如果为每个设备都分配一个固定的IP地址,则显然部分计算机将不能接入网络。考虑到并非所有的计算机都在同一时间内运行并与网络连接,所以,如果将IP进行动态分配,即计算机连入网络时自动取得,断开与网络的连接时自动收回,即可满足网络对IP地址的需求。二是可以增加网络内计算机的可移动性。当某台主机从一个子网移动到另一个子网时,由于IP地址中网络号的不同,从而导致该计算机与其它主机间无法进行通信,解决该类问题最简单的方式就是为移动的主机在新子网中重新分配IP地址。但是,如果采用动态IP地址,就会减少这种网络管理的复杂性。Windows NT使用DHCP来解决动态IP地址的分配问题。使用DHCP时,整个网络中必须至少有一台运行Windows NT主机安装有DHCP软件,充当DHCP服务器,而其它所有欲使用DHCP功能的工作站也必须具有支持DHCP的功能。这样,当DHCP工作站启动时,它就会自动与DHCP服务器通信,并由DHCP服务器为其提供一个IP地址。当然,这个地址只是临时的 3.3.2.配置DHCP服务器

DHCP提供了计算机IP地址的动态配置,如果需要服务器为域中的计算机动态分配IP地址,则必须配置DHCP服务器。配置DHCP服务器的具体步骤如下:

图3.1打开服务器配置向导

图3.2配置服务器向导

图3.3配置服务器向导

图3.4为配置服务器向导

图3.5管理服务器

图3.6 再来就是通过“开始”选择“控制面板”|“添加或删除程序”也可以安装DHCP。

3.3.3配置IIS服务器

右键单击“我的电脑”选择“管理”~服务及应用程序~Internet信息服务~网站~默认网站,单击右键,选择属性,打开主目录,设置主目录为web站点的根目录,也可选择修改其他属性

图3.7配置IIS服务器

3.4制作网站

3.4.1.建站流程

建立网站的流程大致可以分成三个阶段,如图所示

图3.8网站的流程框图

构建内容信息、搜索整理资料和规划网站结构是建立网站的

企业的每一个员工都存在向企业内部网发布内容的潜在可能性。但员工必须按照他们各自的角色协调作业活动。不同规模的公司都需要以省时省钱的方式组织交互信息发布的流程。

通常情况下,为在网站上发布内容,作者创建的材料要经过一个或多个编辑的审校和核准。在这个过程中,作者及编辑按照各种特定的标准分类及标注信息,并为发布设计页面及连接。这一流程通常不是正式的,且要接受网络管理员的协调,这就导致了管理员在“站点发布狂潮”到来时,或是当用户对实时信息需求迅速增长时陷入孤立无援的境地。

使用Site Server可以解决,Site Server还定义了一套为站点增添内容的四步流程,既提交、标注、核准和部署。

图3.9新闻发布系统框图

3.4.3.建站实现软件

可以用Dreamweaver,主要包括两种页面,即html和asp。

HTML(Hyper Text Markup Language ,超文本标记语言),或称为“多媒体文件语言”,是用于创建Web页和Web 信息发布的

(1)通用性:可实现不同平台的文档共享。

(2)可扩展性:HTML的标签集合可以根据新需求而不断修正或加入有限的新标签符, 为实现有限的新功能的扩展提供保障。

(3)创建的灵活性:HTML文档是纯文本文档, 可以由网页编辑器以及其他文本编辑软件创建。

HTML是“Hyper Text Markup Language”的缩写,它是一种超文本标记语言,是网页的描述语言,用于编制通过万维网显示的超文本文件。它是目前在网页设计中,所使用的最基本的标记语言。现在很多HTML 的编辑器,都是通过跟文字处理器相似的接口来编辑网页的。

ASP 文件和 HTML 文件类似ASP 文件可包含文本、HTML、XML 和脚本 ASP 文件中的脚本可在服务器上执行。ASP 文件的扩展名是 “.asp”.当浏览器请求某个 HTML 文件时,服务器会返回这个文件.而当浏览器请求某个 ASP 文件时,IIS 将这个请求传递至 ASP 引擎。ASP 引擎会逐行地读取这个文件,并执行文件中的脚本。最后,ASP 文件将以纯 HTML 的形式返回到浏览器。ASP 指 Active Server Pages(动态服务器页面)ASP 是运行于 IIS 之中的程序.3.5.建站注意要点

另外在网页制作过程中应注意以下要点: 3.5.1.前期调研分析

了解网页制作后具体的工作人员具体权限,以保证公司机密信息不会被泄露,同时又能让每个人从网站上获取足够的工作信息;同时对于私人隐私的公开应得到个人的允许。在注意到以上的同时,还要考虑公司的自身情况、建设网站的能力等 3.5.2.网站的目的及功能定位

本次为企业内部web站点的构建及维护 3.5.3网站技术解决方案

确定服务器,是自建服务器还是租用虚拟主机。选择操作系统。网站安全性措施,如:防入侵,防病毒,防窃取方案

3.5.4.网站内容规划

根据网站的目的和功能规划网站内容。一般企业内部网站应包括:公司简介、部门简介、公共信息、新闻发布、员工联系方式、任务信息、信息搜索查询、相关帮助等内容。

3.5.5.网页设计

网页美术设计要求。网页美术设计一般要求与企业整体形象一致,企业内部网色彩要与办公环境保持和谐 3.5.6.网站测试

①网站发布前要进行细致周密的测试,以保证正常的浏览和使用。主要测试内容有: ②服务器稳定性、安全性。③程序及数据库测试

④网页兼容性测试,包括不同浏览器下的现实结果、不同显示器分辨率的页面效果等。⑤需要的其他测试

4.网站维护

服务器及相关软硬件的维护,对可能出现的问题进行评估,制定相应时间。数据库维护。有效地利用数据是网站维护的重要内容,因此数据库的维护要受到重视。

内容的更新、调整计划。

制定相关网站维护的规定,将网站维护制度化、规范化。

4.1、静态页面的添加修改

静态页面的更新需要使用专业的网页设计工具,然后将修改后的网页通过FTP上传到相应的位置,在此同时还要保证不能破坏其他的页面程序和格局

4.2、动态功能支持在线更新

如果企业信息量很大,如工作信息经常需要更新,有更多的企业资讯需要告诉员工,企业建立动态数据库系统。这里的动态并不是指动画,而是指网站的内容来自企业的数据库。如果更改了数据库,那么前台页面的内容也会随之而更改。

总 结

通过这次课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。安排课程设计的基本目的,在于通过理论与实际的结合、人与人的沟通,进一步提高思想觉悟。尤其是观察、分析和解决问题的实际工作能力,以便培养成为能够主动适应社会主义现代化建设需要的高素质的复合型人才。作为整个学习体系的有机组成部分,课程设计虽然安排在一周进行,但并不具有绝对独立的意义。它的一个重要功能,在于运用学习成果,检验学习成果。运用学习成果,把课堂上学到的系统化的理论知识,尝试性地应用于实际设计工作,并从理论的高度对设计工作的现代化提出一些有针对性的建议和设想。检验学习成果,看一看课堂学习与实际工作到底有多大距离,并通过综合分析,找出学习中存在的不足,以便为完善学习计划,改变学习内容与方法提供实践依据。对计算机专业的本科生来说,实际能力的培养至关重要,必须从课堂走向实践。这也是一次预演和准备毕业设计工作。通过课程设计,让我找出自身状况与实际需要的差距,并在以后的学习期间及时补充相关知识,为求职与正式工作做好充分的知识、能力准备,从而缩短从校园走向社会的心理转型期。课程设计促进了我系人才培养计划的完善和课程设置的调整。在一个星期的课程设计之后,我感到不仅实际动手能力有所提高,更重要的是通过对网站开发流程以及维护方面的了解,进一步激发了我对专业知识的兴趣,并能够结合实际存在的问题在专业领域内进行更深入的学习。

在课程设计过程中,我学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我收获的是黎明。

参考文献

[1]朱兵.小型网组建与应用进阶[M].南方出版社.2004.[2]邓文达胡伏湘.计算机网络教程[M].清华大学出版社.2007.[3] 赵永超.新编网站规划与设计教程[M].西北工业大学出版社.2004.[4] 杨力学.ASP商业网站整站集成开发[M].电子工业出版社.2007.[5] 石志国.ASP动态网站编程[M].清华大学出版社.2001.[6] 李岚.网络设计与维护[M].中国物资出版社.2002.

第三篇:计算机网络课程设计

计算机网络课程设计

报告书

学院:

班级:通信0902

姓名:

学号:

指导老师:

实验三 交换机VLAN实验

SWITCH2的拓扑图

规划IP:

PCA的ip为:10.65.1.1

PCB的ip为:10.66.1.1

PCC的ip为:10.65.1.3

PCD的ip为:10.66.1.3

SWA:

SWB:

设置VLAN: SWA:

SWB:

不设trunk时测试可通性 从PCA到PCC测试:不通,因现在的连线两端在VLAN1中,不能承载Vlan2的信息

[root@PCA root]# ping 10.65.1.3

从PCA到PCB测试:不通:不是一个网段,且不在一个VLAN [root@PCA root]# ping 10.66.1.1

从PCB到PCD测试:通:因为在同一网段内。路径:从switch A的f0/6到switch B的f0/6 [root@PCB root]# ping 10.66.1.3

从PCA到SWA测试:不通:不在同一网段内

[root@PCA root]# ping 10.66.1.7

从PCA到SWB测试:不通:不在同一网段,也不在同一vlan [root@PCA root]# ping 10.66.1.8

从SWA到PCA测试:不通:不在同一网段

SWA#ping 10.65.1.1

从SWA到SWB测试:通:在同一个网段中,路径:从switch A的f0/8到switch B的f0/1 SWB#ping 10.66.1.8

swa40#conf t swa40(config)#int f0/8 swa40(config-if)#switchport mode trunk swa40(config-if)#int f0/1 swa40(config-if)#switchport mode trunk swa40(config-if)#

从PCA到PCC、PCD、SWA、SWB的可通性依次为通,不通,不通,不通。

PCA和PCC在同一网段中,路径:从switch A的f0/3到switch B的f0/3,PCA和PCD、SWA、SWB不在同一网段内。

从PCB到PCC、PCD、SWA、SWB的可通性依次为不通,通,通,通。PCB与PCC不在同一网段,PCB与PCD、SWA、SWB在同一网段内,路径分别为从switch A的f0/6到switch B的f0/6;从PCB到switch A的f0/6;从switch A的f0/6到switch B的f0/1.SWITCH3的拓扑图

(1)都不设vlan情况下,测试连通性

从PCA到PCC,PCD,SWA,SWB依次为 不通,不通,通,不通 PCA与PCC、PCD不在同一默认vlan中,PCA与SWA在同一默认vlan中,路径:从PCA到switch A的f0/3,PCA与SWB不在同一默认vlan中。

从PCB到PCC,PCD,SWA,SWB依次为不通,不通,通,不通。PCB与PCC、PCD不在同一默认vlan中,PCB与SWA在同一默认vlan中,路径:从PCB到switch A的f0/6,PCB与SWB不在同一默认vlan中。

(2)设置有vlan情况下,测试连通性

从PCA到PCC、PCB、SWA、SWB、PCD均不通:不在同一vlan

从PCB到PCC、PCD、SWA、SWB测试为不通,不通,通,不通。PCB与PCC、PCD不在同一默认vlan中,PCB与SWA在同一默认vlan中,路径:从PCB到switch A的f0/6,PCB与SWB不在同一默认vlan中。

(3)使用trunk情况下,测试连通性

从PCA到PCC、PCD、SWA、SWB的可通性依次为不通,通,不通,不通。PCA与PCC、PCD不在同一默认vlan中,PCA与SWA在同一默认vlan中,路径:从PCA到switch A的f0/3,PCA与SWB不在同一默认vlan中。

从PCB到PCC、PCD、SWA、SWB的可通性依次为通,不通,通,通。PCB到PCC设置了trunk,路径:从switch A的f0/6到switch C的f0/1到switch B的f0/1,PCB与PCD不在同一vlan,PCB与SWA、SWB设置了trunk,路径:从PCB到switch A的f0/6,从switch A的f0/6到switch C的f0/1到switch B的f0/1

实验六 路由器接口的secondary ip 装入图文件:router1e

设置计算机的IP和网关:

PCA:PCA的IP地址:10.65.1.1 网关指向:10.65.1.2

PCB:PCB的IP地址:10.66.1.1 网关指向:10.66.1.2

设置交换机的IP地址: switch(config)#int vlan 1 switch(config-if)#ip address 10.66.1.8 255.255.0.0

设置路由器的接口f0/0的有两个ip地址。roa(config)int f0/0

roa(config-if)#ip address 10.65.1.2 255.255.0.0 roa(config-if)#no shut roa(config-if)#ip address 10.66.1.2 255.255.0.0 secondary roa(config-if)#no shut roa#sh run

测试可通性

[root#PCA root]# ping 10.66.1.1

通:在同一网段,路径:从switch的f0/3到f0/6

[root#PCA root]# ping 10.66.1.2 通

[root#PCB root]# ping 10.65.1.1

通:在同一vlan中,从switch的f0/6到f0/3

[root#PCB root]# ping 10.65.1.2

switch#ping 10.65.1.1

不通:不在同一网段

switch#ping 10.66.1.1

通:在同一网段,路径:从switch的f0/6到PCB

如果去掉交换机与路由的连线,PCA和PCB还可以通吗? 不通:不在同一网段,需通过路由寻址,去掉线就不能通了。

可见PCA到PCB的发包是经过路由器的,称之为单臂路由。

这种情况PCA和PCB在同广播域中,对工作带宽不利。如果划分VLAN可以隔离广播 实验七 使用路由器子接口路由情况

装入图文件:router1e

此实验计算机和交换机的IP地址和网关不变,但要求交换机工作在两个VLAN的情况下,一个是原有的默认VALN,另一个是新设置的VLAN 2,含f0/

5、f0/6。1.设置交换机,增加一个vlan 2 switch#vlan database Switch(vlan)#vlan 2 Switch(vlan)#exit Switch#conf t Switch(config)#hostname SWA SWA(config)#int f0/5 SWA(config-if)#switchport access vlan 2 SWA(config-if)#int f0/6 SWA(config-if)#switchport access vlan 2 SWA(config-if)#int f0/1 SWA(config-if)#switchport mode trunk SWA(config-if)# SWA#sh vlan SWA#sh run(检查设置情况)

2.路由器f0/0 有两个子接口 roa(config)int f0/0 roa(config-if)#int f0/0.1 roa(config-subif.1)#encapsulation isl 1 roa(config-subif.1)#ip address 10.65.1.2 255.255.0.0 roa(config-subif.1)#no shut roa(config-subif.1)#int f0/0.2 roa(config-subif.2)#encapsulation isl 2 roa(config-subif.2)#ip address 10.66.1.2 255.255.0.0 roa(config-subif.2)#no shut roa#sh run

3.测试可通性:都通,路由器设置了两个子接口,使其在同一vlan中 [root#PCA root]# ping 10.66.1.1

通,路径:从PCA到switch A的S0/3到switch A的S0/1到ROA的F0/0到switch A的S0/1到switch A的S0/6到PCB

[root#PCA root]# ping 10.66.1.2

通:从PCA到switch A的S0/3到switch A的S0/1到ROA 的F0/0到switch A的S0/1到switch A的S0/6到PCB,)

[root#PCB root]# ping 10.65.1.1

通:从PCB到switch A的S0/6到switch A的S0/1到ROA的F0/0到switch A 的S0/1到switch A 的S0/3到PCA)

[root#PCB root]# ping 10.65.1.2

通:从PCB到switch A的S0/6到switch A的S0/1到ROA的F0/0到switch A的S0/1到switch A的S0/3到PCA

在使用一个路由器接口的情况下,如果下接的网络含有不同的VLAN,则要求路由器的接口要划分成子接口,并绑定isl协议。在交换机上通过多个VLAN的接口,要设置成trunk。如果去掉交换机与路由的连线,PCA和PCB还可以通吗? 不通:不在同一网段,需通过路由寻址,去掉线就不能通了。

可见这也是一种单臂路由。

实验九 三个路由器的静态路由

装入图文件:router3

设置ROA的IP: f0/0: 10.65.1.2-->PCA:10.65.1.1 f0/1: 10.66.1.2-->PCB:10.66.1.1 s0/0: 10.67.1.2

s0/1: 10.68.1.2-->

设置ROB的IP:

s0/0: 10.68.1.1 <--s0/1: 10.69.1.2--> f0/0: 10.70.1.2

f0/1: 10.71.1.2

设置ROC的IP:

s0/0: 10.69.1.1 <--s0/1: 10.72.1.2

f0/0: 10.73.1.2-->PCC:10.73.1.1 f0/1: 10.74.1.2-->PCD:10.74.1.1

设置从PCA到PCC的静态路由 ROA(config)#ip routing ROA(config)#ip route 10.73.0.0 255.255.0.0 10.68.1.1 ROA#show ip route

ROB(config)#ip route 10.73.0.0 255.255.0.0 10.69.1.1 ROB#show ip route

[root@PCA root]#ping 10.73.1.1

通:由于与ROA和ROC相连的ROB接口都在同一个网段上,所以能通,路径:从PCA到switch B的F0/0 S0/1到switch A的S0/0 S0/1到switch C的S0/0 F0/1到PCD

使用默认路由

ROA(config)#no ip route 10.73.0.0 255.255.0.0 10.68.1.1 [root@PCA root]#ping 10.73.1.1

通:因为装入文件时有默认的动态路由存在路径:从PCA到switch B的F0/0 S0/1到switch A的S0/0 S0/1到switch C的S0/0 F0/1到PCD

ROA(config)#ip route 0.0.0.0.0.0.0.0 10.68.1.1 [root@PCA root]#ping 10.73.1.1 通:从PCA到switch B的F0/0 S0/1到switch A的S0/0 S0/1到switch C的S0/0 F0/1到PCD)

实验十 三个路由器动态路由实验

装入图文件:router3

实验网络与上个实验相同,ip地址也不变,现在用动态路由实现网络的连通。ROA(config)#ip routing

ROA(config)#router rip ROA(config-router)#network 10.0.0.0

ROB(config)#ip routing

ROB(config)#router rip ROB(config-router)#network 10.0.0.0

ROC(config)#ip routing

ROC(config)#router rip ROC(config-router)#network 10.0.0.0

ROA#sh ip route

ROB#sh ip route

ROC#sh ip route

从计算机PCA 测试到各点的连通性。都通:由于路由器接口都已经激活,可以相互连通:路径:PCA到PCB:从PCA到switch B的F0/0 F0/1到PCB

PCA到PCC:从PCA到switch B的F0/0 S0/1到switch A的S0/0 S0/1到switch C的S0/0 F0/0到PCC PCA到PCD :从PCA到switch B的F0/0 S0/1到switch A 的S0/0 S0/1到switch C的S0/0 F0/1到PCD

实验十一 基本访问控制列表

装入文件1

1.配置路由达到网络各点可通。

本实验使用有动态路由,也可以使用静态路由。假设网络是通畅的。ROA f0/0: 10.65.1.2-->PCA:10.65.1.1 ROA f0/1: 10.66.1.2-->PCB:10.66.1.1 ROA s0/0: 10.67.1.2

ROA s0/1: 10.68.1.2--> ROB s0/0: 10.68.1.1 <--ROB s0/1: 10.69.1.2--> ROB f0/0: 10.70.1.2

ROB f0/1: 10.71.1.2

ROC s0/0: 10.69.1.1 <--ROC s0/1: 10.72.1.2 ROC f0/1: 10.73.1.2-->PCC:10.73.1.1 ROC f0/0: 10.74.1.2-->PCD:10.74.1.1 1.基本的访问控制列表: 先从PCA ping PCD: [root@PCA @root]#ping 10.74.1.1 应该是可以通的。由于与ROA和ROC相连的ROB接口都在同一个网段上,路径:从 PCA到switch B的F0/0 S0/1到switch A的S0/0 S0/1到switch C的S0/0 F0/1到PCD

在ROB的s0/0写一个输入的访问控制列表: ROB(config)#access-list 1 deny any ROB(config)#int s0/0 ROB(config-if)#ip access-group 1 in ROB#sh access-list 测试PCA至PCD的联通性。(deny)命令所示为S0/0读入控制,题意ROB S0/0为10.68.1.1,PCA的IP为10.65,1,1不包含于ROB VLAN中,所以不能访问

测试PCC至PCD的联通性。(permit)在同一个路由器下,通过路由器寻址能找到对方的IP,所以能通, PCC到switch C的f0/0 F0/1到PCD

测试PCD至PCA的联通性。(permit)由题意由于命令所示为S0/0读入控制,所以ROB能访问ROA,所以访问列表设置无效,所以两者之间的访问不受控制,所以能PING通, 从PCD到SWC的F0/1 S0/0到SWA的S0/0 S0/0到SWB的S0/1 F0/0到PCA

2.删除这个列表

ROB(config)#no access-list 1 ROB(config)# int s0/0 ROB(config-if)#no ip access-group 1 in

二者都可能实现去掉访问列表的目的。前者是从列表号角度删除,后者是从接口及输入和输出的角度删除。可以通过sh run 和sh access-list 命令查看删除情况。3.再写访问控制列表

ROA(config)#access-list 1 deny 10.65.1.1 ROA(config)#access-list 1 permit any ROA(config)#int s0/1 ROA(config-if)#ip access-group 1 out ROA#sh access-list

再测试PCA至PCD的联通性。(deny)ROA设置拒绝了PCA的访问

再测试PCB至PCD的联通性。(permit)由题意ROA中的S0/1为10.68.1.2 PCB的IP为10.66.1.1,不包含于S0/1 VLAN中,由于命令所示为S0/0由于是输出控制,能访问,所以访问列表设置无效,不加控制,所以能PING通, 从PCB到SWB的F0/1 S0/1到SWA 的S0/0 S0/1到SWC的S0/0 F0/1到PCD

再测试PCD至PCA的联通性。(permit)由于是输出控制,所以对输入不做要求,能通,所以输出访问列表无效,对输入不加控制,所以能PING通, 从PCD到SWC的F0/1-S0/0到SWA的S0/0-S0/0到SWB的S0/1-F0/0到PCA

4.重新设置各路由接口有电脑的ip地址。R0B(config)#access-list 4 permit 10.65.1.1 ROB(config)#access-list 4 deny 10.65.1.0 0.0.0.255

(10.65.1.3 deny)ROB(config)#access-list 4 permit 10.65.0.0 0.0.255.255(10.65.0.0 permit)ROB(config)#access-list 4 deny 10.0.0.0 0.255.255.255

(10.66.0.0 deny)ROB(config)#access-list 4 permit any

(11.0.0.0 premit)ROB(config)#int s0/0 ROB(config-if)#ip access-group 4 in

测试PCA至PCD的联通性。(deny)PCA的IP为10.65.1.1按理来说应该所有的访问都允许,由于命令所示为S0/0读入控制,题意ROB S0/0为10.68.1.1,PCA的IP为10.65,1,1不包含于ROB VLAN中所以不通

测试PCB至PCD的联通性。(permit)P CB的IP为10.66.1.1属于deny 10.0.0.0 0.255.255.255,所以访问被拒绝,所以PING不通

测试PCD至PCA的联通性。(permit)PCD的IP为10.74.1.1属于deny 10.0.0.0 0.255.255.255,按理来说应该是拒绝的,但是DENY属于源程序拒绝访问,而PCD先到S0/1,在通过S0/1与S0/0进行信息传递,所以能到达PCA,所以设置读入列表参数无效,对PCD不做限制, 从PCD到SWC的F0/1-S0/0到SWA的S0/0-S0/0到SWB的S0/1-F0/0到PCA

接口的ip地址,计算机的ip地址,请自定

实验十二 扩展访问控制列表

装入文件2 1.阻止PCA访问PCD: ROB(config)# access-list 101 deny icmp 10.65.1.1 0.0.0.0 10.74.1.1 0.0.0.0 ROB(config)# access-list 101 permit ip any any ROB(config)# int s0/0 ROB(config-if)#ip access-group 101 out ROB(config-if)#exit ROB(config)#exit ROB#sh access-list

[root@PCA root]#ping 10.74.1.1(不通)PCA的IP为10.65.1.1属于deny ip 10.65.1.1 0.0.0.0 10.74.1.1 0.0.0.0,所以PING 不通

[root@PCC root]#ping 10.74.1.1(通)PCC和PCD处在同一个路由器下,通过路由器寻址可以相互PING通,从PCC到SWC的F0/0-F0/1到PCD

[root@PCD root]#ping 10.65.1.1(通)因为ROB的S0/0为输出控制,所以当PCD通过外部访问ROB某个端口下的PCA时,是不受控制的,所以ROB的S0/0的输出对PCD的访问是无效的,所以链路不加限制,从 PCD到SWC的F0/1-S0/0到SWA的S0/0-S0/0到SWB的S0/1-F0/0到PCA

2.删除这个列表

ROB(config)#no access-list 101 ROB(config)#int s0/0 ROB(config-if)#no ip access-group 101 ROB#sh access-list

[root@PCA root]#ping 10.74.1.1(通)由于没有任何限制,再加上路由器间的寻址,所以可以PING通, 从PCA到SWB的F0/0-S0/1到SWA的S0/0-S0/1到SWC的S0/0-F0/1到PCD

3.阻止10.65.0.0网络访问 10.74.1.1计算机(PCD)。

ROA(config)#access-list 102 deny ip 10.65.1.1 0.0.0.0 10.74.1.1 0.0.0.0 ROA(config)#access-list 102 permit ip any any ROA(config)#interface s0/1 ROA(config-if)#ip access-group 102(默认为out)

[root@PCA root]#ping 10.74.1.1(不通)PCA的IP属于 DENY IP 10.65.1.1 0.0.0.0 10.74.1.1 0.0.0.0 被限制访问,所以不通

[root@PCC root]#ping 10.74.1.1(通)由于PCC和PCA在同一个路由器下,所以能通过路由器寻址进行PING通, 从PCC到SWC的F0/0-F0/1到PCD

[root@PCD root]#ping 10.65.1.1(通)由于ROA的S0/0为输出控制,所以对输入没有任何要求,所以对输出控制列表设置无效,PCD访问PCA不受限制, 从PCD到SWC的F0/1-S0/0到SWA的S0/0-S0/0到SWB的S0/1-F0/0到PCA

心得体会

从实验三中学会了如何规划ip地址,设置vlan,将连接两个交换机的接口设置成trunk等,知道了写代码时一定得仔细,否则打错了下面就不能ping通了。

从实验六中,我学会了设置计算机和交换机的IP和网关,设置路由器的接口的ip地址等。

从实验七中,我学会了设置交换机,增加一个vlan,设置路由器的子接口,了解了isl协议,isl协议:交换链路内协议(ISL),是思科私有协议,主要用于维护交换机和路由器间的通信流量等 VLAN 信息。ISL 主要用于实现交换机、路由器以及各节点(如服务器所使用的网络接口卡)之间的连接操作。为支持 ISL 功能特征,每台连接设备都必须采用 ISL 配置。ISL 所配置的路由器支持 VLAN 内通信服务。非 ISL 配置的设备,则用于接收由 ISL 封装的以太帧(Ethernet Frames),通常情况下,非 ISL 配置的设备将这些接收的帧及其大小归因于协议差错。

从实验九中,我学会了设置静态路由。

从实验十中,我学会了用动态路由实现网络的连通。从实验十一中,我学会了基本访问控制列表的使用。从实验十二中,我学会了如何扩展访问控制列表。

最后,谢谢老师这几天的指导,真的让我学到了很多很多。

第四篇:计算机网络课程设计

计算机网络课程设计——IP数据报流量统计

摘 要

本课程设计主要是编制程序,监控网络,捕获一段时间内网络上的IP数据包,按IP数据包的源地址统计出该源地址在该时间段内发出的IP包的个数,将其写入日志文件中或用图形表示出来。程序中会用到Winpcap,它主要功能在于独立于主机协议发送和接收原始数据报。本次课程设计中用VC++实现基于Winpcap的网络数据包的捕获和统计,基于Winpcap的应用程序将根据获取网络设备列表;选择网卡并打开;设置过滤器;捕获数据包或者发送数据包;列出网卡列表,让用户选择可用的网卡的步骤进行编写,同时对于TCP/IP协议以及IP数据抱的格式有了进一步的了解和掌握。通过编写程序从而实现对网络中IP数据包流量的统计。

关键词: IP数据包;流量统计;Winpcap;VC++ 1 引 言

随着Internet技术的发展,基于IP协议的应用成为网络技术研究与软件开发的一个重要基础,因此学习网络层以基本概念,了解IP协议的基本内容,对于掌握TCP/IP协议的主要内容和网络课程的学习是十分重要的,通过本次课程设计,有助于熟悉IP数据包格式并加深对IP协议的理解。

1.1 课程设计目的

本次课程设计主要是通过用VC++编程实现对网络中IP数据包流量的统计,实际上是编制程序,监控网络,捕获一段时间内网络上的IP数据包,按IP数据包的源地址统计出该源地址在该时间段内发出的IP包的个数,同时应用Winpcap,Winpcap提供了很好的捕获网络数据包的方法,通过本次课程设计可以将VC++知识与Winpcap结合起来实现在一段时间内对IP数据包的流量进行统计。加深了对Winpcap的理解和运用能力,同时也增长了知识,开阔了视野,对于以后的学习有很大的帮助。

1.2 课程设计的要求

(1)理解运用VC++软件实现对网络中的IP数据抱流量的统计方法和步骤。(2)锻炼独立编程和查阅文献资料解决问题的能力。

(3)通过课程设计培养严谨的科学态度,认真的工作作风。

1.3 设计平台

Microsoft Visual C++ 6.0 2 设计原理

IP是ICP/IP协议体系中的网络层协议,TCP、UDP、ICMP和IGMP等其他协议都是以IP协议为基础的。程序中用到的Winpcap是 Windows packetcapture的缩写,这是UNIX下的lipbcap移植到Windows下的产物,是Win32环境下数据包捕获的开放代码函数库。

Winpcap由内核级的数据包过滤器,底层动态链接库(packet.dll)和一个高层的独立于系统的库(wpcap.dll)组成。

2.1 IP协议

IP是TCP/IP模型中的网络层协议,又称为互联网协议,是支持网间互连的数据报协议,它与TCP协议一起构成了TCP/IP协议族的核心。它提供网间连接的完善功能,包括IP数据报规定互联网范围内的IP地址格式。在因特网中IP协议是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。IP地址具有唯一性,根据用户性质的不同,可以分为不同的类别。

IP协议的特点如下:

IP协议是一种不可靠、无连接的数据报传送协议。IP协议是点对点的网络层通信协议。IP协议向通信层隐藏了物理网络的差异。

IP协议以一种数据报的形式传输数据,每个数据报独立传输,可能通过不同路径传输,因此可能不按顺序到达目的地,或者出现重复。

2.2 关于Winpcap库

Winpcap(windows packet capture)是windows平台下一个开源的、公共的基于windows的网络接口API库。主要为win32应用程序提供访问网络底层的能力。Winpcap的主要功能在于独立于主机协议(如TCP/IP)发送和接收原始数据报。也就是说,Winpcap不能阻塞、过滤或控制其他应用程序数据报的收发,它只是监听共享网络上传送的数据报。

其功能有:捕获原始数据包,包括在共享网络上各主机发送接收的以及相互之间交换的数据包;在数据包发往应用程序之前,按照自定义的规则将某些特殊的数据包过滤掉;在网络上发送原始数据包;收集网络通信过程中的统计信息。Winpcap是针对win32平台上的抓包和网络分析的一个架构,它包括一个核心态的包过滤器,一个底层的动态链接库(packet.dll)和一个高层的不依赖于系统的库(wpcap.dll)。它由Packet、NPF(Netgroup Packet Filter)、packet.dll、wpcap.dll、Application组成,首先,抓包系统必须绕过操作系统的协议来访问在网络上传输的原始数据包,这就要求一部分运行在操作系统核心内部,直接与网络接口驱动交互。这个部分是系统依赖的,在Winpcap的解决方案里它被认为是一个设备驱动,称作NPF。其次,抓包系统必须有用户级的程序接口,通过这些接口,用户程序可以利用内核驱动提供的高级特性。Winpcap提供了两个不同的库:packet.dll和wpcap.dll。前者提供了一个底层API,伴随着一个独立于Microsoft操作系统的编程接口,这些API可以直接用来访问驱动的函数;后者导出了一组更强大的与libpcap一致的高层抓包函数库。这些函数使得数据包的捕获以一种与网络硬件和操作系统无关的方式进行。3 程序代码设计步骤

根据流量设计程序的主要功能,相应的算法如下: 取得当前网络设备列表;

将用户选择的网卡以混杂模式打开,以接收到所有的数据包; 设置过滤器;

捕获IP数据包的源地址进行统计(用链表结构进行实现)。

获取网卡列表是为了得到网卡的相关信息,以便于用户进行选择,选取Ethermet网卡是用户所选择的网卡类型,编译设置过滤器是为了编译并设置过滤器是为了只捕获网络数据流的某些数据,打开网卡既将网卡设置为混杂(统计)模式是为了接受所有经过网卡的数据包,包括不是发给本机的数据包,开始主循环以是否超时为判断条件,循环体内主要有捕获IP数据包、将IP包的源地址加入链表、条件判断,循环结束后输出链表内容,程序至此结束。

现将其每一步的具体步骤简述如下:

3.1取得网络适配器列表

//取得网络适配器列表步骤中,alldevs是pcap_if_it指针,指向链表头,errbuf是char类型数组,存储错误信息。

pcap_findalldevs(&alldevs,errbuf);

cout<<”网络适配器列表:”<<’n’;

for(d=alldevs;d;d=d->next)

{

cout<<++i<<“:”

if(d->description)

cout<<“"

else

cout<<”No description available!“<<'n';

}

3.2 指定要监听的网络适配器并打开

cout<<”输入要监听的网络适配器号:”>inum;

for(d=alldevs,i=0;inext,i++);

fp=pcap_open_live(d->name,65536,1,1000,errbuf);3.3 编译并设置过滤器

//编译过滤器,fp指向打开的网络适配器,fcode为编译完成后的过滤器存储地址,“tcp“给出了过滤条件,下一个参数表示是否被优化(0为false,1为true),最后一个参数给出了子网掩码。

pcap_compile(fp,&fcode,”tcp”,1,netmask)

pcap_setfilter(fp,&fcode)3.4 设置网络适配器为统计模式

if(pcap_setmode(fp,MODE_STAT)<0)

{

cout<<”n设置网络适配器模式错误!n”;

pcap_close(fp);

}

3.5 开始主循环,调用回调函数显示网络流量统计信息

//pcap_loop由Winpcap库定义,对每个采集来的数据包都用ProcessPacket函数进行处理,fp指向打开的网络适配器

pcap_loop(fp,0,dispatcher_handler,(PUCHAR)&st_ts);

pcap_close(fp);3.6 回调函数的实现

//对于捕获到的每一个数据包应用此回调函数

void dispatcher_handler(u_char *state,const struct pcap_pkthdr *header,const u_char *pkt_data)

{

struct timeval *old_ts=(struct timeval *)state;

u_int delay;

LARGE_INTEGER Bps,Pps;

struct tm *ltime;

char timestr[16];

time_t local_tv_sec;

//计算距上一个数据包的时间延迟,以ms为单位

//这个值是从与一个数据包相关的时间戳中截获的delay=(header->ts.tv_sec-old_ts->tv_sec)*1000000-old_ts->tv_usec+header->ts.tv_usec;

//获得每秒的比特数

Bps.QuadPart=(((*(LONGLONG*)(pkt_data+8))*8*1000000)/(delay));

//获得每秒的数据包数

Pps.QuadPart=(((*(LONGLONG*)(pkt_data))*1000000)/(delay));

//将时间戳转变位可读的标准格式

ltime=localtime(&header->ts.tv_sec);

strftime(timestr,sizeof timestr,”%H:%M:%S“,ltime);

//Print timestamp

printf(”%s“,timestr);

//Print the samples

printf(”BPS=%I64u“,Bps.QuadPart);

printf(”PPS=%I64un",Pps.QuadPart);

//store current timestamp

old_ts->tv_sec=header->ts.tv_sec;

old_ts->tv_usec=header->ts.tv_usec;

};4 结果及分析

安装好WinPcap软件,在VC++界面上点击工具->选项->目录。添加Include文件夹下的所有文件和Lib下的所有内容,调试完程序无误后,点击开始—>运行“cmd”进入目标文件夹Debug下运行EXE文件。此时程序会检测电脑系统中的网卡,等待程序的运行结果.图 捕获的IP地址和数据包的信息 常见问题及解决方法

在刚开始做此课程设计的时候我只编写了主程序代码,并没有建立工程,后来通过查找资料及文献才知道要建立一个C++应用工程,而且程序中用到的Winpcap库文件C++中并没有,需要自己下载WinPcap_4_1_1.exe和WpdPack_4_1_1.zip,前者是Winpcap的开发程序,后者是inlude文件和lib文件,这些都是需要自己手动添加的,这里include和lib文件夹里的东西VC++6.0里面没有,出现error: Cannot open include file:’pcap.h’:No such file or directory这个问题,就需要添加。具体步骤如下:

第一步: 点菜单栏上的“工具“,再点击下拉菜单中的”选项“对话框把winpcap开发包里面的lib文件添加进去。

第二步: 点击菜单栏里的工程——设置,选择连接在对象/库模块中输入wpcap.lib和packet.lib,再点C/C++ 在“预处理程序定义”下输入WPCAP和HAVE_REMOTE,要用逗号隔开。

至此,Winpcap环境已部署好了不会再出错了。

接下来出错的是程序中的一些函数的参数,比如说int pcap_compile(pcap_t *p, struct bpf_program *fp,char *str,int optimize, bpf_u_int32 netmask),int pcap_setfilter(pcap_t *p, struct bpf_program *fp)函数的参数在程序编译的时候会报错,通过搜集资料及与同学交流初步更正了错误,但是程序并不是很顺利地运行出来。

第五篇:计算机网络课程设计

目录

一﹑实验室概述...............................................................................................................................2

二、设计需求分析总括...................................................................................................................2

2.1、教学的具体需求......................................................................................................2

2.2、实验室的总体构思..................................................................................................3

三、实验室的总体结构规划...........................................................................................................3

3.1、网络实验室总体结构规划......................................................................................................3

3.2、一般实验室总体结构规划......................................................................................................5

2.2.1 核心机房..............................................................................................................................7

3.3、实训实验室总体结构规划......................................................................................................7

3.1.

1、实验环境............................................................................................................7

四、综合布线...................................................................................................................................8

4.1 设计范围及要求........................................................................................................................8

4.2.3 布线要求.................................................................................................................9

五、课程设计总结...........................................................................................................................9

经管类实验室网络结构设计

一﹑实验室概述

随着计算机网络技术的迅猛发展,人们对于信息的需求日益增强。显而易见当今的世界正从工业化社会向信息化社会转变。一方面,社会经济已由基于资源的经济逐渐转向基于知识的经济,人们对信息的需求越来越迫切,信息在经济的发展中起着越来越重要的作用,信息的交流成为发展经济最重要的因素。另一方面,随着计算机、网络和多媒体等信息技术的飞速发展,信息的传递越来越快捷,信息的处理能力越来越强,信息的表现形式也越来越丰富,对社会经济和人们的生活产生了深刻的影响。这一切促使通信网络由传统的电话网络向高速多媒体信息网发展。由于Web技术和多媒体技术的出现,近几年来Internet得到了突飞猛进的发展,联入网络的节点和信息资源迅速增长。社会对于网络人才的需求也日渐增多,新华学院负责人本着学以致用,与实际相结合的原则,大力创建各个实验室。以期给予学生良好的学习环境。

二、设计需求分析总括

对于学院的实验室根据课程的需求,需要对于实验室的软件和硬件方面都有要求,本次课程设计只针对实验室的硬件进行分析,软件方面针对课程需求再做更改。

设计实验室的目标是能够满足学生的实验课程、现代计算机校园文化为核心,以现代网络技术为依托、技术先进、扩展性强,巩固课程学习,最终提升学生的实践能力,达到教学目的。

下面我们具体分析一下校园网各个方面的需求。

2.1、教学的具体需求

对于经管学院的课程计划安排,实验室主要进行的实验课程有:证券、商务、会计、MIS、网络、实训、工业沙盘、程序设计等。

有些课程对于实验室的硬件设备要求一致,只是软件不同。因此将实验室根据硬件设备分为的两类:

<1>、网络实验室:能够满足计算机网络课程的所有需求,对硬件设备需求多。<2>、一般实验室:能够根据相关软件完成各种实验课程,对软件需求高。

2.2、实验室的总体构思

(1)内容丰富

实验室设备能涵盖局域网、广域网、无线、网络安全、VoIP、综合布线等实用技术功能模块,在此基础上实现实践课程与理论课内容的紧密结合,全方位为学生提供实践动手的机会。(2)设备完善

同类网络设备具备多种不同的型号,为学生在实验中提供广泛的操作平台,在对比中学习,学习中对比,进一步拓宽眼界。(3)拓扑灵活

灵活的拓扑设计只需要通过简单的跳线即可改变拓扑,满足多种实验要求,并且可以根据多种需求进行扩展,让学生在实验中有机会充分发挥创新能力,根据实验目的自行完成实验的设计与配置,并且可实现实验室内部网络与校园网的轻松连接。(4)易于维护

紧凑连续的实验课程安排要求在一个班级完成实验后能够迅速恢复实验设备,以免影响下一个班级的上机使用,这就需要一个易于维护与恢复的实验环境,包括对网络设备及终端计算机的恢复。(5)安全可靠

设备系统具备较高的安全性、容错能力,并且能防止内部网络受到外部攻击和感染病毒,保证网络设备以及终端计算机的安全。(6)环境友好

结合多媒体教学,加强教与学的互动,让学生边学边做,边做边学。

三、实验室的总体结构规划

3.1、网络实验室总体结构规划

从网络实验室建设的总体构思出发,方案主要包括了四大模块:实验机柜组、终端实验

用计算机、无线设备。实验室总体拓扑见图1。

拓扑图1

3.1.1、实验机柜组

实验室共有6个分组实验机柜,每个分组实验机柜中有6台设备: 3725路由器1台, 2620路由器2台, 3750交换机1台, 2950交换机2台。机柜中不同的设备具有不同的特性,能较全面地涵盖实验内容,具体拓扑连接方式见图2。其中Cisco 3725路由器具备多个NM和HDSM插槽,可根据服务需求进行扩展配置,而且语音模块可实现普通模拟语音与IP语音的对接,与核心机房中的IPCC系统相结合可建立真实的语音通信环境。2620路由器具有高速路由性能,能提供全面的协议和服务,包括虚拟专用网、防火墙保护、加密、WAN优化和经过改进的多媒体支持功能,并且支持多服务语音数据网络。Catalyst3750交换机可实现高达32Gbps的堆叠互联,可以使用服务质量(QoS)、速率限制、访问控制列表和基本的静态和路由功能,利用2950交换机可以将组内的学生实验使用的计算机组成局域网。各实验分组机柜中的设备均上连至本机柜中的3750交换机,汇聚后再通过3750交换机上连至核心功能机柜中的核心交换机6509,如图2,可将实验室网络设备形成星形拓扑的连接方式。分组实验柜和核心功能柜中的理线架均采用双排理线架,学生若要进行跳线,只需在理线

架上进行简单插拔,而不需要对设备的物理端口进行插拔线操作,既方便灵活又可起到保护设备物理端口的作用。

3.1.2、终端实验用计算机

36台实验用终端计算机平均分为6组,每组6台,各组对应一个分组实验机柜,每台终端计算机的COM口通过地板下面的桥架布线与分组实验机柜中对应设备的Console端口连接,形成一个学生单独对应一台设备的环境,可以通过终端软件登录设备控制端口进行实验操作。每组6台计算机的Eth-ernet口又全部连接至对应分组实验机柜中的一台2950交换机,组成一个小型局域网。2950交换机再通过机柜中的3750交换机上连至核心交换机,最终实现实验室中所有终端计算机的互联。

3.1.3、无线设备

无线路由器和无线访问点,可按实验拓扑要求灵活地连接至实验组机柜任何一台设备的RJ45端口,实现多种无线组网方案。每台计算机均安装无线网卡,让学生了解体验并掌握无线网络的特点与配置方法。

3.1.4、实验环境

(1)、终端计算机安装W indows2003 Server操作系统,运行“超级终端”或其它同类终端软件,与设备Console端口连接后即可登录设备进行配置。

(2)、由于学生使用的终端计算机COM口与相应设备的Console端口连接,而Ethernet端口则均上连本组机柜中2950交换机的FastEthernet端口。在实验过程中既可通过Console端口对设备进行本地配置,也可以通过FastEthernet端口Telnet到其它设备进行配置,有利于学生进行比较学习,全面掌握不同型号设备的配置方法。

(4)在实验过程中,可采用分组实验的方式,并事先规定IP地址等实验参数的分配规则,以避免因学生随意配置IP地址而导致地址冲突,影响实验过程。

3.2、一般实验室总体结构规划

2.2.1 核心机房

核心机房主要包括了一个核心功能机柜和一个 服务器机柜。连接方式见图2。

图2

3.2.2 实验环境

(1)、终端计算机安装W indows2003 Server操作系统,运行“超级终端”或其它同类终端软件,与设备Console端口连接后即可登录设备进行配置。(2)、教师在授课时若需演示设备配置过程,可

使用多媒体讲台上的计算机Telnet任一分组实验柜中的任一设备,如图1所示,再通过讲台前的投影屏幕让学生清晰地了解实验步骤,并可与教师同步动手操作。这为教师提供了相当灵活的互动演示环境,也便于对设备进行监控与排错。

3.3、实训实验室总体结构规划

设计实训实验室的目的是让学生理解掌握计算机的各个部件的组成,学会对计算机的拆卸和组装。

3.1.

1、实验环境

旧设备。

四、综合布线

综合布线是一种模块化的、灵活性极高的建筑物内或建筑群之间的信息传输通道。通过它可使话音设备、数据设备、图像设备、交换设备及各种控制设备与其他信息管理系统连接起来,同时也使这些设备与外部通信网络相连。与传统的布线相比较,综合布线有很多优越性,主要表现在兼容性、开放性、灵活性、可靠性、先进性和经济性等方面。因此采用综合布线系统。

图4.1 综合布线系统结构图

4.1 设计范围及要求

4.2.1 设计范围

经管学院实验楼计算机实验室分布在二、三层 包括: 二楼实验室用于证券、商务、会计、MIS、实训、工业沙盘等采用一般实验室设计方法共计3间教室。

三楼实验室用于网络、程序设计等网络实验室采用网络实验室设计方法,程序教室用一般实验室设计方法共计3间教室。

各层楼间使用光纤连接,楼内千兆到楼层,百兆到桌面,并且各楼分别需要网络布线以建设楼内局域网。4.2.2 设计规范的确定

综合布线系统将基于以下目标:

(1)符合当前和长远的信息传输要求。

(2)布线系统设计遵从国际(ISO/CEI11801)标准。(3)布线系统采用国际标准建议的星形拓扑结构。(4)基于100Mbps应用需要。

(5)布线系统的信息出口采用国际标准的RJ45插座。(6)布线系统符合综合业务数据网的要求。(7)布线系统要立足开放原则。

4.2.3 布线要求

校园网络计算机主机房位于位于讲堂群。通过光缆连至主机房,在经管楼内部采用五类4对5类UTP电缆连接到设备间的配线架。

五、课程设计总结

历时一周的计算机网络课程设计终于圆满结束了,通过本次对敦煌中学校园网的规划与设计使我们对校园网建设工程有了更进一步的了解。校园网络建设作为一项重要的系统工程,它所用到的各种技术是多方面的,即有网络技术,其中还包括软件技术,工程施工技术,也有管理制度等各个方面的知识。网络技术的发展是永无止境的,在前进的过程中必将有更多的知识需要我去学习与研究,并能将其应用到实际的网络工程建设之中。

上面是整个校园网的结构,实际上校园网是一个庞大而复杂的工程,要根据具体的环境来组建网络,涉及的面也比较广,上面这套方案只是针对大部分校园相同点而设计的,肯定在很多方面都有所不足,所以这只是一个基础,如果要组建校园网还需要对各个地方进行改进,才能节省校园网络成本,才能最大限度发挥出校园网的性能。

校园网络是一种新型的教育工具,它涵盖学科教育,思想教育,文化教育,美育和体育,在课堂教学,课外学习和校园文化建设,科研和信息交流等方面均发挥着重要作用。校园网正促进着教学内容与方式方法的变革,促进着学校教育与社会教育的发展,改变着学校与社会,理论与实践,知识与技能的质量。笔者深信,在提供素质教育的九年义务教育的中小学,随着校园网络的不断发展和完善,其不可替代的多功能作用会越来越明显,更好地建设与管理校园网是每一个计算机工作者不可推卸的责

下载计算机网络课程设计(精选)word格式文档
下载计算机网络课程设计(精选).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    计算机网络课程设计

    第1章 概述 1.1医院简介 沈阳市第一人民医院创建于1962年,是集医疗、科研、教学、预防保健于一体,以脑科为龙头、多科系协调发展的大型综合医院,是辽宁中医学院和沈阳医学院的......

    计算机网络课程设计

    课 程 设 计 说 明 书 题 目: 计算机网络课程设计 院(系): 专 业: 班 级: 学 号: 姓 名:指导老师:完成时间: 201X年7月4日~201X年7月8日成绩:目录 1 引言 ..............................

    计算机网络课程设计

    实验一交换式以太网路由互联 一、 实验目的 学习掌握交换式以太网主机连接配置和用路由器直接交付路由实现简单的网络互连,了解交换式以太网络内部和多个交换式以太网络之......

    计算机网络课程设计

    五邑大学大学计算机网络原理课程设计 计算机网络原理课程设计 说明书 学号:11080511 姓名:黄秉辉 五邑大学 计算机学院 五邑大学大学计算机网络原理课程设计 一、课程设计......

    计算机网络课程设计

    计算机网络课程设计 姓名:学号: 班级:完成时间:2015.12.5 1.课程设计要求: 1.PCA至PCD五台PC机属于不同网络,且要划分VLAN 2.PCA能ping通所有PC机,PCC不能ping通PCE 3.PCA属于内网......

    计算机网络课程设计

    《计算机网络》 课程设计 姓 名 赵世友 专 业网络工程 班 级 学 号 网133 139074357 李沁 指导教师 安徽工业大学计算机学院2016.6.12 计算机网络课程设计- #+DATE:......

    计算机网络课程设计

    南 通 大 学 计算机网络课程设计报告专业: 计算机科学与技术 班级: ****** 学号: *********** 姓名: ****** 指导老师: ****** 日期: 2014年1月15日 1 目 录 一、课程设计目的---4......

    计算机网络课程设计

    大 作 业 说 明 1. 目的:本大作业的目的是希望同学们学以致用,能够将课程上教授的理论内容在自己的工作生活实践中加以印证,理解计算机网络设计的基本内容即可。 2. 方法:同学们......