电脑桌面
添加蜗牛文库到电脑桌面
安装后可以在桌面快捷访问

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

栏目:合同范文发布:2025-01-28浏览:1收藏

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

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

课程设计(论文)任务书

信息工程 学院

计算机应用 专业 计算机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 配置的设备将这些接收的帧及其大小归因于协议差错。

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

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

最后,

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

第一篇:计算机网络课程设计(精选) 课程设计(论文)任务书 信息工程 学院 计算机应用 专业 计算机2010-1 班 ...
点击下载
分享:
最新文档
热门文章
    确认删除?
    QQ
    • QQ点击这里给我发消息
    微信客服
    • 微信客服
    回到顶部