当前位置:文档之家› 计算机网络课程设计实验报告(北京科技大学--arp、ftp、ip包)

计算机网络课程设计实验报告(北京科技大学--arp、ftp、ip包)

计算机网络课程设计实验报告(北京科技大学--arp、ftp、ip包)
计算机网络课程设计实验报告(北京科技大学--arp、ftp、ip包)

计算机网络课程设计

实验报告

任课教师:

班级:

学号:

姓名:

目录

实验一ARP封装并发送 (3)

课程设计目的: (3)

课程设计要求: (3)

课程设计分析: (3)

程序设计分析: (4)

实验结果 (5)

源程序 (6)

实验二解析IP数据包 (9)

课程设计目的: (9)

课程设计要求: (9)

课程设计分析: (9)

程序设计分析 (9)

实验结果 (13)

源代码 (13)

实验三FTP客户机 (17)

课程设计目的: (17)

课程设计要求: (17)

课程设计分析: (17)

程序设计原理: (18)

实验结果 (23)

源代码 (24)

实验心得体会 (37)

实验一ARP封装并发送

课程设计目的:

?ARP协议用于完成IP地址与MAC地址之间的转换。通过封装与发送ARP 数据包,加深对ARP协议的理解,掌握ARP帧结构和工作原理及其对协议栈的贡献。

课程设计要求:

?编写程序,根据ARP帧的结构,封装ARP帧。

?要求程序为命令行程序,以命令行的形式运行:

SENDARP S-IP S-MAC D-IP D-MAC

其中:

SENDARP:可执行程序名

S-IP:源IP地址

S-MAC:源MAC地址

D-IP:目的IP地址

D-MAC:目的MAC地址

课程设计分析:

?使用winpcap访问网卡,手动封装

?定义ARP的数据结构

?填充数据包

?发送数据包

程序设计分析:

ARP 协议及工作原理

ARP 协议是“Address Resolution Protocol ”(地址解析协议)的缩写。在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC 地址的。在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC 地址。但这个目标MAC 地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP 地址转换成目标MAC 地址的过程。ARP 协议的基本功能就是通过目标设备的IP 地址,查询目标设备的MAC 地址,以保证通信的顺利进行。

ARP 的基本运行过程是:

1) 主机A 希望发送数据分组给主机B ,但不知道B 的物理地址。 2) A 发送广播报文,要求B 主机用它的物理地址来响应。 3) 网站上所有主机都接收到这个分组。

4) B 识别出自己的IP 地址,发送应答报文,告诉A 自己的物理地址。

ARP 的分组格式

图一 ARP 分组格式

图2 物理帧头

0 8 16

24 31(位)

图3 ARP帧结构

ARP包的填充

将命令行的参数作适当的转换后填到ARP分组结构的各字段中即可。

要注意的是,填充请求包时。因为包要在Ethernet上广播,所以,物理帧头的“目的MAC”字段要填充为FFFFFFFFFFFF;而ARP帧结构中的目的MAC可填充为任意值,因为它此时不起作用。“填充数据”字段要填充为0。

实验结果

源程序

#include

#include

#pragma comment(lib,"ws2_32.lib")

#pragma comment(lib,"wpcap.lib")

#include

#pragma pack(1)

struct arp_packet //arp包结构

{

unsigned char dest_mac[6]; //目标主机MAC地址

unsigned char source_mac[6]; //源端MAC地址

unsigned short eh_type; //以太网类型

unsigned short hardware_type; //硬件类型:以太网接口类型为1

unsigned short protocol_type; //协议类型:IP协议类型为0X0800

unsigned char add_len; //硬件地址长度:MAC地址长度为6B

unsigned char pro_len; //协议地址长度:IP地址长度为4B

unsigned short option; //操作:ARP请求为1,ARP应答为2

unsigned char sour_addr[6]; //源MAC地址:发送方的MAC地址

unsigned long sour_ip; //源IP地址:发送方的IP地址

unsigned char dest_addr[6]; //目的MAC地址:ARP请求中该字段没有意义;ARP响应中为接收方的MAC地址

unsigned long dest_ip; //目的IP地址:ARP请求中为请求解析的IP地址;ARP响应中为接收方的IP地址

unsigned char padding[18];

};

#pragma pack()

unsigned char* BuildArpPacket(unsigned char* source_mac, unsigned char* dest_mac,unsigned long src_ip,unsigned long dest_ip);

void main()

{

pcap_if_t *alldevs, *d; //用于存储网络设备

int i=0;

char errbuf[PCAP_ERRBUF_SIZE];

if(pcap_findalldevs(&alldevs,errbuf)==-1)

{

fprintf(stderr,"Error in pcap_findalldevs:%s\n",errbuf);

exit(1);

}

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

{

printf("%d. %s",++i,d->name);

if(d->description) printf("(%s)\n",d->description);

else printf(" (No description available)\n"); }

if(i==0)

{

printf("\n找不到指定接口.\n");

}

printf("选择设备号(1-%d):",i);

int inum;

pcap_t *adhandle;

unsigned char *packet;

scanf("%d", &inum);

if(inum < 1 || inum > i)

{

printf("\n超出范围.\n");

pcap_freealldevs(alldevs);

}

for(d=alldevs, i=0; i< inum-1 ;d=d->next, i++);

char chs_src_ip[16] = "1.1.1.1";

char chs_dest_ip[16] = "2.2.2.2";

unsigned long ul_src_ip = 0u;

unsigned long ul_dest_ip = 0u;

printf("Input the src ip(1.1.1.1):");

scanf("%s",chs_src_ip);

ul_src_ip = inet_addr(chs_src_ip);

printf("Input the dest ip(2.2.2.2):");

scanf("%s",chs_dest_ip);

ul_dest_ip = inet_addr(chs_dest_ip);

unsigned char uchs_src_mac[10] = {0};

unsigned char uchs_dest_mac[10] = {0};

printf("Input source mac address(11 11 11 11 11 11):");

scanf("%x%x%x%x%x%x",&uchs_src_mac[0],&uchs_src_mac[1],&uchs_src_mac[2],&uch s_src_mac[3],&uchs_src_mac[4],&uchs_src_mac[5]);

printf("Input dest mac address(22 22 22 22 22 22):");

scanf("%x%x%x%x%x%x",&uchs_dest_mac[0],&uchs_dest_mac[1],&uchs_dest_mac[2],& uchs_dest_mac[3],&uchs_dest_mac[4], &uchs_dest_mac[5]);

if((adhandle= pcap_open_live(d->name,65536,1,1000,errbuf)) == NULL)

{

fprintf(stderr,"\n无法打开指定适配器.%s 不支持WinPcap\n",d->name);

pcap_freealldevs(alldevs);

}

packet = BuildArpPacket(uchs_src_mac, uchs_dest_mac, ul_src_ip, ul_dest_ip);

//发送arp包的函数:参数1:网络设备、参数2:arp包、参数3:长度

pcap_sendpacket(adhandle,packet,62);

}

unsigned char* BuildArpPacket(unsigned char* source_mac, unsigned char* dest_mac,unsigned long src_ip,unsigned long dest_ip)

{

static struct arp_packet packet;

memcpy(packet.dest_mac,dest_mac,6);

memcpy(packet.source_mac,source_mac,6);

packet.eh_type = htons(0x0806);

packet.hardware_type = htons(0x01);

packet.protocol_type = htons(0x0800);

packet.add_len = 0x06;

packet.pro_len = 0x04;

packet.option = htons(0x0001);

memcpy(packet.sour_addr,source_mac,6);

packet.sour_ip = src_ip;

packet.dest_ip = dest_ip;

memcpy(packet.dest_addr,dest_mac,6);

memset(packet.padding,0,18);

return (unsigned char*)&packet;

}

实验二解析IP数据包

课程设计目的:

?设计一个解析IP数据包的程序,并根据这个程序,说明IP数据包的结构及IP协议的相关问题,从而对IP层的工作原理有更好的理解和认识。

课程设计要求:

本实验的目标是捕获网络中的IP数据包,解析数据包的内容,并将结果显示,并同时写入日志文件。

程序的具体要求如下:

?以命令行形式运行:

Ipparse

其中ipparse是程序名

?在标准输出中显示捕获的IP包的版本、头长度、服务类型、数据包总长度、数据包标识、分段标志、分段偏移值、生存时间、上层协议类型、头校验和、源IP地址和目的IP地址等内容。

课程设计分析:

?使用原始套接字或者winpcap,捕获IP数据包

?定义IP头部的数据结构

?解析并显示数据包

程序设计分析

网卡设置

为了获取网络中的IP数据包,必须对网卡进行编程,在这里使用套接字(socket)进行编程。但是,在通常情况下,网络通信的套接字程序只能响应与自己硬件地址相匹配的数据包或是以广播形式发出的数据包。对于其他形式的数据

包,如已到达网络接口,但却不是发送到此地址的数据包,网络接口在骓投递地址并非自身地址之后将不引起响应,也就是说应用程序无法收取与自己无关的数据包。我们要想获取网络设备的所有数据包,就是需要将网卡设置为混杂模式。

使用套接字

?套接字分为三种,即流套接字(Stream socket)、数据报套接字(Datagram Socket)和原始套接字(Raw Socket)。要进行IP层数据包的接收和发送,应使用原始套接字。创建原始套接字的代码如下:

?Socket sock:

?Sock=wsasocket(af_inet,sock_raw,ipproto-ip,null,0,wsa-flag-over lapped):

?本设计不用考虑超时情况。

?创建套接后,IP头就会包含在接收数据包中。然后,我可以设置IP头操作选项,调用setsockopt函数。其中flag设置为true,并设定IP-HDRINCL 选项,表明用户可以亲自对IP头进行处理。最后使用bind()函数将socket 绑定到本地网卡上。绑定网卡后,需用WSAIoctl()函数把网卡设置为混

杂模式,使网卡能够接收所有的网络数据。如果接收的数据包中的协议类

型和定义的原始套接字匹配,那么接收的数据就拷贝到套接字中,因此,网卡就可以接收所有经过的IP包。

接收数据包

?在程序中可使用recv()函数接收经过的IP包。该函数有四个参数,第一个参数接收操作所用的套接字描述符;第二个参数接收缓冲区的地址;第

三个参数接收缓冲区的大小,也就是所要接收的字节数;第四个参数是一

个附加标志,如果对所发送的数据没特殊要求,直接设为0。因为IP数

据包的最大长度是65535B,因此缓冲区的大小不能小于65535B。设置缓冲区后,可利用循环来反复监听接收IP包,用recv()函数实现接收功能。定义IP头部的数据结构

?程序需要定义一个数据结构表示IP头部。其代码如下:

?struct IP_HEADER

{

?unsigned short ip_version, /*IP的版本号 */

ip_hdr_len; /*IP包头的长度*/

ip_tos; /*IP包的服务类型*/

ip_total_len; /*IP包的总长度*/

ip_id; /*IP包的分段标识*/

ip_flags; /*IP包的分段标志*/

ip_frag_offset; /*IP包的分段偏移*/

ip_ttl; /*IP包的生存时间*/

ip_proto; /*IP包的高层协议*/

ip_hdr_chksum; /*IP包的校验和*/

struct IPADDRESS ip_src_addr; /*IP包的源IP地址*/

ip_dest_addr; /*IP包的目的IP地址*/

}ipheader;

IP包的解析

?解析IP包的字段有两种策略。针对长度为8位、16位和32位的字段(或子字段)时,可以利用IP-HEADER的成员直接获取。要解析长度不是8位

倍数的字段(或子字段)时,可以利用C语言中的移位以人、及与、或操作完成。

协议的定义

?(包含相应的头文件#include #include):

?DWORD dwIoControlCode=SIO_RCVALL, /*接收所有的IP包*/ dwProtocol=IPPROTO_IP; /*协议类型为IP*/

捕获处理

? 1.加载 Winsock;

? 2.创建一个接收原始IP包的socket连接;

3.绑定到一个接口;

4.进行WSAIoctl设置,接收所有的IP数据包。

?代码如下:

if (WSAIoctl(s, dwIoControlCode, &optval, sizeof(optval),

NULL, 0, &dwBytesRet, NULL, NULL) == SOCKET_ERROR)

5.接着设定一个线程进行捕获:

(1)创建一个接收IP包的链表头;

(2)设置一个标识,为真,则不断进行IP包的捕获;

(3)建立一个新的结点,将捕获的数据包加入到该结点;

(4)如果链表的长度达到指定的长度,创建一个线程对该链表的IP包进行解析;再设置一个在IP数据包链表不足给定的长度,而又中止IP捕获时,对链表的处理;

(5)为下一个IP包链表创建一个链表头。

6.建立一个进行IP包解析并显示的线程,进行解析IP数据包,然后显示

IP数据包。

实验结果

源代码

#include "winsock2.h"

#include "ws2tcpip.h"

#include

#include

#include

#include

#pragma comment(lib,"ws2_32.lib")

#pragma comment(lib,"wpcap.lib")

using namespace std;

//定义IP头

typedef struct _IP_HEADER

{

union

{

BYTE Version; //版本(前4位)

BYTE HdrLen; //IHL(后4位),IP头的长度

};

BYTE ServiceType; //服务类型

WORD TotalLen; //总长

WORD ID; //标识

union

{

WORD Flags; //标志(前3位)

WORD Fragoff; //分段偏移(后13位)

};

BYTE TimeToLive; //生命周期

BYTE Protocol; //协议

WORD HdrChksum;//头部校验和

DWORD SrcAddr;//源地址

DWORD DstAddr;//目的地址

BYTE Options;//选项

}IP_HEADER;

int main ()

{

SOCKET sock;

WSADATA wsData;

ofstream outfile("G:\\logfile.txt",ios::out);

//如果初始化失败,程序退出

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

{

printf("WSAStartup failed!\n");

return -1;

}

//建立原始socket

if((sock = socket(AF_INET,SOCK_RAW,IPPROTO_IP)) == INV ALID_SOCKET)

{

printf("create socket failed\n");

return -1;

}

//设置IP头操作选项,其中flag设置为true,用户可以亲自对IP头进行处理

BOOL flag = true;

if(setsockopt(sock,IPPROTO_IP,IP_HDRINCL,(char*)&flag,sizeof(flag)) == SOCKET_ERROR)

{

printf("setsockopt failed!\n");

return -1;

}

//获取主机名

char hostName[128];

if(gethostname(hostName,100) == SOCKET_ERROR)

{

printf("gethostname failed!\n");

return -1;

}

//获取本地IP地址

hostent *pHostIP;

if((pHostIP = gethostbyname(hostName)) == NULL)

{

printf("gethostbyname failed\n");

return -1;

}

//填充SOCKADDR_IN结构

sockaddr_in addr_in;

addr_in.sin_addr = *(in_addr*)pHostIP->h_addr_list[0];

addr_in.sin_family = AF_INET;

addr_in.sin_port = htons(6000);

//把原始socket绑定到本地网卡上

if(bind(sock,(PSOCKADDR)&addr_in,sizeof(addr_in)) == SOCKET_ERROR)

{

printf("bind failed\n");

return -1;

}

//设置SOCK_RAW为SIORCV ALL,以便接收所有的确IP包

#define IO_RCV ALL _WSAIOW(IOC_VENDOR,1)

DWORD dwBufferLen[10];

DWORD dwBufferInLen = 1;

DWORD dwBytesReturned = 0;

if(WSAIoctl(sock,IO_RCV ALL,&dwBufferInLen,sizeof(dwBufferInLen),

&dwBufferLen,sizeof(dwBufferLen),&dwBytesReturned,NULL,NULL) == SOCKET_ERROR)

{

printf("ioctlsocket faild\n");

return -1;

}

//设置接收数据包的缓冲区长度

#define BUFFER_SIZE 65535

char buffer[BUFFER_SIZE];

//监听网卡

printf("开始解析经过本机的IP数据包!\n\n");

while(true)

{

//使用recv()函数接收经过的IP包

/*

第一个参数接收操作所用的套接字描述符;

第二个参数接收缓冲区的地址;

第三个参数接收缓冲区的大小,也就是所要接收的字节数;

第四个参数是一个附加标志,如果对所发送的数据没特殊要求,直接设为0。

因为IP数据包的最大长度是65535B,因此缓冲区的大小不能小于65535B。

设置缓冲区后,可利用循环来反复监听接收IP包,用recv()函数实现接收功能

**/

int size = recv(sock,buffer,BUFFER_SIZE,0);

IP_HEADER ip=*(IP_HEADER *)buffer;

cout<<"-----------------------"<

cout<<"版本:"<<(ip.Version>>4)<

cout<<"头部长度:"<<((ip.HdrLen &0x0f)*4)<

cout<<"服务类型:Priority"<<(ip.ServiceType>>5)<<

", Service"<<((ip.ServiceType>>1)&0x0f)<

cout<<"总长度:"<

cout<<"标识符:"<

cout<<"标志位:"<<((ip.Flags>>15)&0x01)<<",DF= "<<((ip.Flags>>14)&0x01)<<",Mf="<<((ip.Flags>>13)&0x01)<

cout<<"片偏移:"<<(ip.Fragoff&0x1fff)<

cout<<"生存周期:"<<(int)ip.TimeToLive<

cout<<"协议:Protocol"<<(int)ip.Protocol<

cout<<"头部校验和:"<

cout<<"原地址:"<

cout<<"目的IP地址:"<

outfile<<"-----------------------"<

outfile<<"版本:"<<(ip.Version>>4)<

outfile<<"头部长度:"<<((ip.HdrLen &0x0f)*4)<

outfile<<"服务类型:Priority"<<(ip.ServiceType>>5)<<", Service"<<((ip.ServiceType>>1)&0x0f)<

outfile<<"总长度:"<

outfile<<"标识符:"<

outfile<<"标志位:"<<((ip.Flags>>15)&0x01)<<",DF= "<<((ip.Flags>>14)&0x01)<<",Mf="<<((ip.Flags>>13)&0x01)<

outfile<<"片偏移:"<<(ip.Fragoff&0x1fff)<

outfile<<"生存周期:"<<(int)ip.TimeToLive<

outfile<<"协议:Protocol"<<(int)ip.Protocol<

outfile<<"头部校验和:"<

outfile<<"原地址:"<

outfile<<"目的IP地址:"<

}

::closesocket(sock);

::WSACleanup();

return 0;

}

实验三FTP客户机

课程设计目的:

?设计并实现一个FTP客户机的程序,了解FTP服务的基本原理和FTP协议的工作过程,加深对TCP协议和流式套接字编程的理解。

课程设计要求:

?要求在FTP客户机程序中至少实现目录变换(CWD),列表(LIST),下载(RETR)功能。

?以命令行形式运行:

ftpclient serveraddress

?输出内容:FTP客户机与服务器交互过程中的命令与应答信息。

课程设计分析:

?使用流式套接字

?参考RFC959

程序设计原理:

简介

FTP 文件传输协议,提供的是文件传输服务,C/S的方式进行网络访问,端口号一般为21。

支持密名访问的FTP都包含一个Anonymous用户,使用Anonymous登陆后只需输入e-mail即可登录。

用户登录后即可进行文件操作,本次课程设计我采用的是命令行方式的操作界面。对文件的操作需要使用指定命令(如列目录使用LIST)。

根据命令性质的不同对两类命令进行分析

1)简单的无数据传输方式:

以CWD为例:

client->setCommand("CWD ",Direct);

命令格式规范化,例如要进入根目录下的tools目录就可使命令规范化为”CWD/TOOLS\r\n”(其中代表一个空格)。

请注意这里的字符串一个字符都不能差,更详细的说明参见RFC959文档,内有详细说明。

client->sendCommand();

sendCommand()即为发送规范化的命令。

client->receiveCommand();

接收应答信息并分离应答码。

2)复杂的有数据传输方式:

带有数据传输的文件需要建立数据套接字来传输,建立数据套接字的方式有两种,主动模式,被动模式。

简单的介绍下这两种模式:

A.主动模式:主动模式是客户端发送数据连接请求,并告知服务器端已开

放的正在监听的端口,由服务器发送连接请求,建立连接。

B.被动模式:被动模式是发送被动连接模式命令,服务器由应答码返回可

用的ip与端口信息,通过对应答码的分析找到端口号,用客户端连接正

在监听的服务器端口。

由于主动模式的局限性,即在有NAT转换时无法将信息送至正确的位置,因为经过NAT技术转换的端口号代表的是一台计算机的内网编号,而不是计算机网络端口的端口号,所以无法正确送达。也因此本程序采用被动模式。

当数据链路建立完成后,数据链路需要进行初始化,数据链路有两种常用的模式,ASCII方式和二进制方式,下面介绍下这两种传输方式:

A.ASCII方式:ASCII方式传输数据时,数据以一个字符一个字符为单位

传输,这种方式一般使用在文本文件等一些使用ASCII码来储存信息的

文件传输中ASCII方式同样用于文件目录列表的传输。使用ASCII方式

传输二进制文件,例如可执行文件,图片文件,动画文件,等等,会使

文件损坏。

B.二进制方式:二进制文件传输数据时,数据以比特为单位传输,到达客

户端后,由操作系统将其合并转换。使用2进制可以传输绝大多数的文件,但是二进制方式也有其不可避免的局限性,二进制传输文件要求服务器和客户端使用相同类型的操作系统,如果不同类型下载的文件无法使用,但可以使用二进制方式传输到另一台拥有相同操作系统的机器上,文件可以使用。所以二进制方式传输同样不适用于网络传输。

确定了传输类型后,就可以创建套接字,格式化命令,发送命令,并接受信息和应答码与两不同的SOCKET上。

char* filename = new char[512];

memset(filename,NULL,512);

/************************************

PASV方式传输

************************************/

client->setCommand("PASV");

client->sendCommand();

client->receiveCommand();

/************************************

分析应答码取端口号

************************************/

client->getPort();

/************************************

设置传输类型初始化数据套接字

************************************/

client->setCommand("TYPE ","I");

client->sendCommand();

client->receiveCommand();

client->interlizeDataSocket();

cout<<"Please input the name you want to download:";

cin>>filename;

memset(temp,NULL,512);

/************************************

格式化路径信息Direct

************************************/

memcpy(temp,Direct,strlen(Direct));

memcpy(temp+strlen(Direct),"/",1);

memcpy(temp+strlen(Direct)+strlen("/"),filename,strlen(filename));

/************************************

格式化命令RETR

************************************/

client->setCommand("RETR ",temp);

client->sendCommand();

client->receiveCommand();

/************************************

接收数据信息和应答信息

************************************/

client->receiveData(filename);

client->receiveCommand();

/************************************

清理内存

************************************/

delete filename;

下面对封装的这个FTP类进行剖析。

封装类分析

FTP客户端主要有一个类ftpClient来完成封装,具体的成员包括

成员函数:

Private:

ftpClient::getCode

前提条件:cmdBuffer中尚存有PASV命令的应答信息

用于获取cmdBuffer中的端口信息并进行转换

ftpClient::interlizeDataSocket

初始化控制连接

Public:

ftpClient::~ftpClient

ftpClient的析构函数,包含释放缓冲区的任务。

ftpClient::ftpClient

ftpClient的构造函数,初始化缓冲区,调用interlizeSocket()函数初始化控制连接。

ftpClient::receiveCommand

接收控制信息应答码

ftpClient::receiveData

接收数据链路信息

ftpClient::receiveList

接收列表信息

ftpClient::sendCommand

发送命令

ftpClient::sendData

发送数据用于上载

ftpClient::setCommand

ftpClient::setCommand

setCommand分别对应单指令和双指令代码进行重载,将命令格式化并储存在cmdBuffer中。

成员变量:

ftpClient::buffer

数据缓冲

ftpClient::cmdBuffer

应答信息缓冲

ftpClient::command

《嵌入式控制系统》课程设计报告 学院 专业班级 姓名 学号 指导教师 _

目录 摘要 (4)

Abstract (4) 引言 (5) 带中断LED数码管驱动程序设计 (6) 1.设计内容 (6) 1.1 基本功能 (6) 1.2 扩展功能 (6) 1.3创新功能 (6) 2.实验设备 (6) 3.设计功能块说明 (6) 4.设计原理 (7) 4.1 LED发光原理 (7) 4.2 八位LED显示器 (8) 5. 实验步骤 (8) 5.1 驱动程序加载 (8) 5.2 添加控件 (8) 5.3基本功能的实现 (9) 5.4 使用指南 (10) 6. 实验结果 (10) 6.1 基本功能实现结果 (10) 6.2 LED数码管清零功能实现结果 (11) 6.3 中断计数功能实现结果 (12) 6.4 频率设置功能实现结果 (13) 7. 心得体会 (14) 附录 (16)

摘要 通过嵌入式控制系统课程的学习并结合本次课程设计,了解嵌入式系统的开发方法和流程,熟悉Intel XScale硬件平台及其应用处理机的使用方法,熟悉Windows CE嵌入式系统的基本原理、概念。能针对Intel XScale硬件平台、应用需求自行定制、优化WinCE操作系统,并独立编写可在Intel XScale嵌入式设备上运行的应用程序。 本课程设计主要实现了LED数码管的驱动程序,中断计数功能、LED显示清零功能、LED 数字显示频率设置的功能。 关键字:WINCE 中断数码管驱动 Abstract Learning Embedded Control Systems and combining the curriculum design can help us understand the Embedded Control Sy stems’ development methods and processes, and be familiar with Intel XScale Hardware platform and its usage. Know well the basic principles and concepts about WINCE. Design and optimize Windows Embedded Compact and compose Application software program that can operate on the Intel XScale Hardware platform. The main achievement of the curriculum design are drivers for LED, Interrupt Count, clean the results of the LED and set up the display frequency of the LED. Key words: WINCE Interrupt Digital Driving

计算机网络课程设计 一. 中小型千兆网吧组建 内容及要求: 用BOSON软件实现小规模网络的模拟。熟悉对路由器和交换机的配置命令,调通网络,并通过实例深入理解网络基本工作原理及实现方法。学会网络构建、日常维护以及管理的方法,使学生掌握在信息化社会建设过程中所必须具备的计算机网络组网和建设所需的基本知识与操作技能,网吧包含100-200台上网的计算机。二.小型网络的组建 通过对网络的具体规划和组建,掌握网络互连设备的使用及工作原理;掌握IP地址的配置及数据传输过程和路由的选择。 具体要求如下: 1.使用模拟仿真软件,构建一个小型网络。要求使用路由器、交换机等网络互连设备。根据设计要求,选择网络类型。 2.分配和配置IP地址,要求配置内部网络地址。 3.对交换机、路由器等进行配置。 4.通过使用模拟仿真软件,模拟局域网间的数据通信过程。 5.分析通信过程中出现的问题,并加以解决。 6. 写出课程设计报告:设计目的、设计内容、设计方案、拓扑图、设备选型、方案报价、子网划分等内容。 (1)企业网络工程 (2)银行网络工程 (3)医院网络工程

(4)校园网网络工程 (5)大型机场信息网络工程 (6)邮电综合管理信息网 (7)某航空公司网络系统建设 (8)某市宽带信息网络 (9)证券交易网络系统 (10)学校以太网网络建设 三.Ping程序的设计与实现 设计的目的是使学生掌握网络层协议的原理及实现方法。设计内容,在给定的Ping程序的基础上做如下功能扩充: ●-h 显示帮助信息 ●-b 允许ping一个广播地址,只用于IPv4 ●-t 设置ttl值,只用于IPv4 ●-q 安静模式。不显示每个收到的包的分析结果,只在结束时,显示汇总结果 Ping命令的基本描述 Ping的操作是向某些IP地址发送一个ICMP Echo消息,接着该节点返回一个ICMP Echo reply消息。 ICMP消息使用IP头作为基本控制。IP头的格式如下 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| IHL |Type of Service| Total Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification |Flags| Fragment Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time to Live | Protocol | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Version=4 IHL Internet头长 Type of Service = 0 Total Length IP包的总长度 Identification, Flags, Fragment Offset 用于IP包分段 Time to Live IP包的存活时长 Protocol ICMP = 1 Addresses 发送Echo消息的源地址是发送Echo reply消息的目的地址,相反,发送Echo

交换路由综合实验 1 交换实验 1.1交换机的基本配置 1.1.1实验目的 学会交换机的基本配置,并了解如何查看交换机的系统和配置信息。 1.1.2实验内容 使用交换机的命令行管理界面,学会交换机的全局配置、端口配置方法,察看交换机的系统和配置信息。 1.1.3技术原理 交换机的管理方式基本分两种:带内管理和带外管理。通过交换机的Console口管理交换机属于带外管理,不占用交换机的网络端口,其特点是需要使用配置线缆,近距离配置。第一次配置必须利用Console端口进行。 配置交换机的设备名称和配置交换机的描述信息必须在全局配置模式下执行。Hostname 配置交换机的设备名称,Banner motd配置每日提示信息,Banner login配置交换机的登陆提示信息。 察看交换机的系统和配置信息命令要在特权模式下进,Show ######命令可以察看对应的信息,如Show version可以察看交换机的版本信息,类似可以用Show mac-address-table、Show running-config等。 1.1.4实验功能 更改交换机的提示信息,配置交换机的端口。

1.1.5实验设备 交换机(二层)一台,交换机(二层)一台 1.1.6实验步骤 s21a1#configure terminal s21a1(config)# interface fastethernet 0/3 !进行F0/3的端口模式 s21a1(config-if)#speed 10 !配置端口速率为10M s21a1(config-if)#duplex half !配置端口为半双工模式 s21a1(config-if)#no shutdown !开启该端口,使之转发数据s21a1(config-if)#exit s21a1#show interface fastethernet 0/3 !查看端口的状态 s21a1# show version !查看交换机的版本信息 s35a1#configure terminal s35a1(config)# interface fastethernet 0/3 !进行F0/3的端口模式 s35a1(config-if)#speed 10 !配置端口速率为10M s35a1(config-if)#duplex half !配置端口为半双工模式 s35a1(config-if)#no shutdown !开启该端口,使之转发数据s35a1(config-if)#exit s35a1#show interface fastethernet 0/3 !查看端口的状态 s35a1# show version !查看交换机的版本信息 1.2虚拟局域网VLAN 1.2.1实验目的

计算机网络技术试验 院系名称: 专业班级: 学生姓名: 学号:

试验二:网络命令的使用 1.实验目的: 1)了解或掌握一些网络常用命令; 2)掌握Ping、netstat、IPConfig、ARP等命令的功能及一般用法; 3)能应用上述命令进行网络连通、网络状态、网络配置等。 2.实验所需要的设备 一台已连网的计算机,windows操作系统 3.实验要求:(command.doc为参考命令文件) 进入DOS模式,:(开始-附件-命令提示符,或开始-运行cmd ) 1、利用Ping对某个已知IP或域名的计算机进行连通查询, 对查询结果进行分析并做好记录,再ping某个不存在的域名或地址。 2、利用netstat至少一个参数对本机的网络状态进行查询, 对查询结果进行分析记录; 3、利用IPConfig对本机的网络状态进行查询,对查询结果 进行分析记录(哪些是你不理解其含义的内容); 4、测试本机与相邻机器的物理连通性,记录并说明原因; 5、使用arp察看本地缓存中的内容,添加一条新的静态项 目,并用ping进行测试; 6、tracert某个著名域名,记录经过多少个节点?响应时 间?对方网关IP地址是什么?

7、使用route察看本地路由表,记录非自身环路的路由信息 (无则不纪录); 8、利用nbtstat至少一个参数对本机的网络状态进行查询, 对查询结果进行分析记录 9、使用NET命令察看本地机的共享有哪些并记录,删除默 认共享; 使用net use将网络上某个共享目录映射到一个驱动器字母。 4.简述实验步骤: 尽可能完成实验要求中的步骤并用简单语言进行记录。

课程设计报告 ( 2012--2013 年度第2学期) 名称:计算机网络课程设计题目:互联网模拟 院系:计算机系 班级:计科 学号: 学生姓名:华电老朱家 指导教师: 设计周数: 1周 成绩: 日期: 2014 年 6 月 28 日

《计算机网络》课程设计 任务书 一、目的与要求 1.目的 将网络基本原理及基本概念用于实际,将书本上抽象的概念与具体的实现技术结合起来,使学习深化,培养学生对基本原理的应用能力以及实际动手能力。 2.要求 独立完成课程设计题目以及课程设计报告。报告应包括设计思路、网络拓扑图、开发中遇到的问题以及解决方法。 二、主要内容 1.网络设备认知及基本配置操作 (1)了解路由器、交换机等网络设备结构。 (2)完成以下实验,掌握路由器、交换机等的配置方法,理解相关网络协议。 ①交换机的基本配置; ②路由器的基本操作; ③OSPF基本配置; ④RIP v2配置; ⑤静态路由配置; ⑥跨交换机实现VLAN; ⑦利用单臂路由实现VLAN间路由; ⑧广域网协议的封装。 2.互联网的模拟 (1)结合实验环境,提出模拟网络互联需求,设计并完成组网,要求尽最大可能利用实验资源。 ①网络物理拓扑结构设计及IP地址分配; ②网络逻辑拓扑结构设计; (2)网络设备配置实现 按步骤(1)所设计的网络拓扑进行设备连接并配置。配置内容包括路由选择协议OSPF配置,VLAN划分等,并进行测试。 3.基于模拟互联网的网络协议分析。在上面设计并实现的网络环境下,完成如下协议分析:

①以太网数据链路层帧格式分析; ②网络层分片;ICMP协议分析; ③ARP地址解析协议分析; ④TCP传输控制协议分析; ⑤FTP协议分析;HTTP协议分析。 三、进度计划 四、设计成果要求 1.网络配置拓扑图准确,配置结果测试成功; 2.网络协议分析准确; 2.课程设计报告格式规范,内容详实。 五、考核方式 考勤、验收和课程设计报告。 学生姓名: 指导教师: 2014年6月23日

计算机网络实验综合题 试题一 某公司租用了一段C类地址203.12.11.0/24~203.12.14.0/24,如图所示。其网间地址是172.11.5.14/24。要求网内所有PC都能上网。 【问题1】 接入层交换机Switch1的端口24为trunk口,其余各口属于vlan11,请解释下列命令并完成 交换机的配置。 Switch1#config terminal Switch1(config)#interface f0/24(进入端口24配置模式) Switch1(config-if)# switchport mode trunk(1) Switch1 (config-if)#switchport trunk encapsulation dotlq(2) Switch1(config-if)# switchport trunk allowed all(允许所有VLAN从该端口交换数据)Switch1(config-if)#exit Switch1(config)#exit Switch1# vlan database Switch1(vlan)# vlan 11 name lab01(3) Switch1(vlan)#exit Switch1#config terminal

Switch1(config)#interface f0/9(进入f0/9的配置模式) Switch1(config-if)#(4)(设置端口为接入链路模式) Switch1(config-if)#(5)(把f0/9分配给VLAN11) Switch1(config-if)#exit Switch1(config)#exit (1)设置端口为中继(或Trunk)模式 (2)设置Trunk采用802.1q格式(或dot1q) (3)创建vlan11,并命名为lab01 (4)switchport mode access (5)switchport access vlan 11或switchport access vlan lab01 【问题2】 以下两个配置中错误的是(6),原因是(7)。 A. Switch0 (config)#interface gigabitEthernet 0/3 Switch0 (config-if)#switchport mode trunk Switch0 (config-if)#switchport trunk encapsulation dot1q Switch0(config)#exit Switch0# vlan database Switch0(vlan)# vlan 2100 name lab02 B. Switch0 (config)#interface gigabitEthernet 0/3 Switch0 (config-if)#switchport mode trunk Switch0 (config-if)#switchport trunk encapsulation ISL Switch0(config)#exit Switch0# vlan database Switch0(vlan)# vlan 2100 name lab02 答案:(6)B,(7)trunk采用ISL格式时,vlan ID最大为1023 【问题3】 Switch1的f0/24口接在Switch0的f0/2口上,请根据图完成或解释以下Switch0的配置命令。Switch0(config)# interface(8)(进入虚子接口) Switch0(config-if)# ip address 203.12.12.1 255.255.255.0(加IP地址) Switch0(config-if)# no shutdown(9) Switch0(config-if)# standby 1 ip 203.12.12.253(建HSRP组并设虚IP地址)

实验一交换机基本配置 一、实验目的 1.掌握桌面网络组建方法 2.掌握Quidway S 系列中低端交换机几种常见配置方法 二、实验内容 1.通过Console 口搭建配置环境 2.通过Telnet 搭建配置环境 3.熟悉VRP 的各种视图及各视图下的常用命令 三、实验原理、方法和手段 1. 交换机配置方式 交换机通常的配置方式有:Console 方式,telnet 方式,web 方式和modem 拨号方式 2. 命令行接口Command-line Interface 华为网络设备中运行的操作VRP向用户提供一系列配置命令以及命令行接口,方便用户配置和管理网络设备,包括以太网交换机。命令行有如下特性: 1)通过Console 口进行本地配置 2)通过telnet 进行本地或远程配置 3)通过modem 拨号登录到网络设备进行远程配置 4)配置命令分级保护,确保未授权用户无法侵入到网络设备 5)用户可以随时键入以获得在线帮助 6)提供网络测试命令,如tracert、ping 等,迅速诊断网络是否正常 7)提供种类丰富、内容详尽的调试信息,帮助诊断网络故障 8)用telnet 命令直接登录并管理其它网络设备 9)提供ftp 服务,方便用户上载、下载文件 10)提供类似Doskey 的功能,可以执行某条历史命令 11)命令行解释器对关键字采取不完全匹配的搜索方法,用户只需键入无冲突关键 字即可解释 四、实验组织运行要求 1.熟悉实验内容; 2.要求独立完成实验,教师可以给予一定的辅导; 五、实验条件 1.华为Quidway S/思科Catalyst 2960/中兴ZXR10 交换机 2.计算机一台即可 六、实验步骤 1.通过Console 口搭建配置环境 1)如图1-2,建立本地配置环境,只需将微机(或终端)的串口通过配置电缆与 以太网交换机的Console 口连接。

科技大学 自动控制原理课程设计 学院: 班级: 学号: 指导教师: :

目录 一.引言 (3) 二.系统模型的建立 (3) 三.系统控制的优化 (6) 3.1 PID调节参数的优化 (7) 3.2 积分分离PID的应用 (10) 四,结语 (13)

双轮自平衡智能车行走伺服控制算法摘要:全国第八届“飞思卡尔”智能汽车大赛已经结束。光电组使用大赛提供的D车模,双轮站立前进,相对于以前的四轮车,双轮车的控制复杂度大大增加。行走过程中会遇到各种干扰,经过多次的实验,已经找到了一套能够控制双轮车的方法。双轮机器人已经广泛用于城市作战,排爆,反恐,消防以及空间消防等领域。实验使用单片机控制双电机的转速,达到了预期的效果。 关键词:自平衡;智能;控制算法 Motion Servo Control Algorithm for Dual Wheel Intelligent Car Abstract: The 8th freescale cup national Intelligent Car competition of has been end.The led team must used D car which has only 2tires.It is more difficult to control prefer to control A car which has 4tires.There is much interference on the track. A two-wheeled robots have been widely used in urban warfare, eod, counter-terrorism, fire control and space fire control and other fields。We has searched a good ways to control it.We used MCU to control the speed of motors and get our gates. Key Words: balance by self; intelligent; control algorithm 一.引言 双轮自平衡车是智能汽车中一个重要的组成部分。由于其是两轮站立,在很多场合有比四轮车更灵活,更方便控制的特点。基于双轮车的机器人已经用于在城市作战,排爆,反恐,消防,空间探测等领域。 双轮自平衡车的控制过程与倒立摆相似。本次研究主要是对双轮车直立的研究。由于车在前进过程中还可能遇到弯道和路障,所以本文还对整个系统的稳定性做了比较深入的研究。在理论证明正确的前提下,再次进行仿真验证,仿真验证的结果与实验结果相符合。二.系统模型的建立 智能汽车竞赛使用的是D车模。D 车模是双电机,双轮的车模。单电机 控制双轮时可以满足车身保持平衡和 前进的要求,而之所以使用双电机是 为了前进过程中转弯的需要。本文只 讨论跟直立和干扰有关的容,鉴于此,本文余下容默认是单电机控制的车模。自平衡车在没有电机控制的情况下属 于不稳定系统,在极小的干扰下,就 会偏离平衡位置而失去平衡。因此, 控制系统必须使用反馈控制。图1是 站立在赛道上的双轮车模。

武汉理工大学华夏学院课程设计报告书 课程名称:计算机网络课程设计 题目: 系名: 专业班级: 姓名: 学号: 指导教师: 年月日

课程设计任务书 学生姓名:专业班级:学号 指导教师:工作单位: 设计题目:中型园区网络建设 初始条件: 1. 所要求的网络拓扑图如下所示: (自己截图) 2. 假定ISP服务提供商:武汉电信 3. 设备选型如拓扑图中所示。 要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1.技术要求: 1.1.交换机之间配置trunk协议 1.2.划分vlan,建立HTTP/DNS服务器 1.3. 通过在三层交换机上建立vlan网关使vlan间通信 1.4 总公司和分公司之间配置静态路由,使得分公司可以访问总公司服务器 1.5.公网路由器模拟电信的城域网,运行OSPF路由协议。 1.6. 使用缺省路由,防止公网的路由条目传递到公司的网关路由器上。 1.7 总公司和分公司的网关配置NAT让内部的PC能够正常上网。 2.设计报告内容及格式要求: 2.1. 网络各节点具体配置步骤及测试结果; 2.2. 调试过程中出现的问题及相应解决办法; 2.3. 总体运行情况与结果分析讨论 2.4.个人对本次课程设计感想体会及建议; 注意:设计报告内容严禁与人雷同。 3. 设计报告格式要求: 课程设计说明书统一书写格式:

一、实训目的和基本要求 在学习了计算机操作系统、计算机网络等相关课程的基础上,开展网络工程技术实训。通过实训,可以让学生了解目前主流网络技术的应用;手动配置网络设备;在进行了该项实训后,可为学生进入社会,从事网络相关工作打好基础。 要求能够针对一个具体的要求,搭建一个网络。明确网络的拓扑结构、设备选型、设备连接、设备配置、IP地址分配、网络安全、网络管理等内容。如果设备条件有限,也可以使用路由器来完成网络的构建。 二、实训步骤 2.1 组建总公司局域网组网 2.1.1 网络拓扑图 摆出小型网络所需要的设备并把说有设备连接起来(相同设备用交叉线,不同设备用直通线,注意路由器和PC机属于同种设备用交叉线),网络拓扑图如图1.1。 图1.1

课程设计报告 设计名称:网络工程综合实验 系(院):计算机科学学院 专业班级: 姓名:陈浩 学号: 指导教师:邱林陈中举 设计时间:2013.12.16 - 2010.12.27 设计地点:4#网络工程实验室 一、课程设计目的 网络工程综合实验是网络工程及计算机相关专业的重要实践环节之一,该内容可以培养学生理论联系实际的设计思想,训练综合运用所学的计算机网络基础理论知识,结合实际网络设备,解决在设计、安装、调试网络中所遇到的问题,从而使基础理论知识得到巩固和加深。学生通过综合实验学习掌握网络设计中的一般设计过程和方法,熟悉并掌握运用二层交换机、三层交换机、路由器和防火墙的配置技术。 另外通过实验,可以掌握组建计算机网络工程的基本技术,特别是网络规划、交换机

路由器等网络设备的基本功能与选型以及网络应用服务器的基本配置,同时提高学生的应用能力和动手实践能力。 二、课程设计要求 (1)通过资料查阅和学习,了解园区网络规划、设计的一般方法。 (2)参考和研究一些公司和高校/企业园区网的规划和建设方案,结合《网络工程》课程中所学知识,积极完成设计任务。 (3)认真完成需求分析,并根据需求分析完成园区网络的总体方案设计,确定网络逻辑拓扑结构和所采用的网络技术、主要设备的性能指标,进而完成设备的选型,并选用相应的网络连接技术。 (4)根据设计内容与具体要求,实现园区网内的连接,并在成功测试的基础上实现Web服务器、FTP服务器、电子邮件服务器的安装配置,并能按任务书要求进行访问。 (5)认真按时完成课程设计报告,课程设计报告内容包括:课程设计目的、设计任务与要求、需求分析、网络设计、设备调试安装以及设计心得等几个部分,具体要求见设计报告模板。 三、课程设计内容 用一组实验设备(4个路由器、二台交换机、二台三层交换机、一台防火墙)构建一个园区网,通过防火墙与校园网相联,实现到Internet的访问。具体要求如下: (1)在一台两层交换机SW1上划分2个VLAN(Vlan 100和Vlan 200,用户数均为100)。 要求实现:两个Vlan均能通过路由器访问外网,但两个Vlan之间不能通信。(2)在一台三层交换机SW3上划分2个VLAN(Vlan 300和Vlan 400,Vlan300用户数100,Vlan400用户数200),两个Vlan之间能够通信。要求:两个Vlan均只能通过路由器访问校园网(10.X.X.X),而不能访问Internet。 (3)另外一台两层交换机SW2和一台三层交换机SW4之间使用冗余连接,在两台交换机上均划分两个Vlan(Vlan 500和Vlan 600,Vlan500用户数200,Vlan600用户数100),要求Vlan500可以访问内网所有VLAN,Vlan600既可以访问内网,又可以访问Internet。 (4)园区网全网通信采用OSPF动态路由协议,路由设计要求有路由汇聚。 (5)SW1 、SW3、SW4分别和三台接入级路由器DCR1700相连,三台路由器和部门级路由器DCR2600相连。然后DCR2600路由器通过防火墙实现此园区网与外网(校

计算机网络实验实验报告 姓名:张程程 学号:1202100110 班级:电气自动化类121班实验一、网络基本知识及网线的制作 实验目的: 1、使学生掌握基本的网络知识; 2、使学生掌握RJ-45接头的制作。 实验内容: 1、阅读预备知识掌握网络基础知识; 2、一般双绞线的制作 3、交叉双绞线的制作 4、测试一般双绞线的导通性 思考问题: 1、交换机与集线器的区别 答:(1)在OSI/RM中的工作层次不同 交换机和集线器在OSI/RM开放体系模型中对应的层次就不一样,集线器是同时工作在第一层(物理层)和第二层(数据链路层),而交换机至少是工作在第二层,更高级的交换机可以工作在第三层(网络层)和第四层(传输层)。 (2)交换机的数据传输方式不同 集线器的数据传输方式是广播(broadcast)方式,而交换机的数据传输是有目的的,数据只对目的节点发送,只是在自己的MAC 地址表中找不到的情况下第一次使用广播方式发送,然后因为交换机具有MAC地址学习功能,第二次以后就不再是广播发送了,又是有目的的发送。这样的好处是数据传输效率提高,不会出现广播风暴,在安全性方面也不会出现其它节点侦听的现象。具体在前面已作分析,在此不再赘述。 (3)带宽占用方式不同 在带宽占用方面,集线器所有端口是共享集线器的总带宽,而交换机的每个端口都具有自己的带宽,这样就交换机实际上每个端口的

带宽比集线器端口可用带宽要高许多,也就决定了交换机的传输速度比集线器要快许多。 (4)传输模式不同 集线器只能采用半双工方式进行传输的,因为集线器是共享传输介质的,这样在上行通道上集线器一次只能传输一个任务,要么是接收数据,要么是发送数据。而交换机则不一样,它是采用全双工方式来传输数据的,因此在同一时刻可以同时进行数据的接收和发送,这不但令数据的传输速度大大加快,而且在整个系统的吞吐量方面交换机比集线器至少要快一倍以上,因为它可以接收和发送同时进行,实际上还远不止一倍,因为端口带宽一般来说交换机比集线器也要宽许多倍。 2、常见的局域网拓扑结构有哪些 答:目前常见的网络拓扑结构主要有以下四大类: (1)星型结构 (2)环型结构 (3)总线型结构 (4)星型和总线型结合的复合型结构 3、局域网的几种工作模式 答:目前局域网主要存在着两种工作模式,它们涉及到用户存取和共享信息的方式,它们分别是:客户/服务器(C/S)模式和点对点(Peer-to-Peer)通信模式。 4、T568A、T568B 打线方法 答:在EIA/TIA布线标准中规定了双绞线的两种线序568A与568B。 568A标准:绿白—1,绿—2,橙白—3,蓝—4,蓝白—5,橙—6,棕白—7,棕—8 568B标准:橙白—1,橙—2,绿白—3,蓝—4,蓝白—5,绿—6,棕白—7,棕—8 标准中要求12、36、45、78线必须是双绞。这是因为,在数据的传输中,为了减少 和抑制外界的干扰,发送和接收的数据均以差分方式传输,即每一对线互相扭在一起传输一 路差分信号。 实验二、常用网络命令及网络软件的使用

北京科技大学 软件课程设计报告——C语言 班级: 姓名: 学号: 指导教师: 日期: 1

目录 1设计内容 (3) 2应用程序总体分析与设计 (3) 3应用程序各功能模块分析与设计 (4) 3.1功能模块 (4) 3.1.1服务器端 (4) 3.1.2客户端 (4) 3.2模块流程图 (4) 3.2.1服务器端流程图 (4) 3.2.2客户端流程图 (6) 3.3程序结构图 (8) 4程序测试 (8) 4.1测试过程 (8) 4.1.1VS2010截图 (8) 4.2测试结果 (9) 4.2.1服务器端截图 (9) 4.2.2客户器端截图 (9) 5程序文档 (10) 5.1使用说明 (10) 5.2程序说明 (10) 6程序源代码 (11) 6.1客户端: (11) 6.2服务器端 (14) 2

1设计内容 通过c语言编程实现一个局域网聊天的程序,包括服务器端程序和客户端的程序,该程序能够实现两台主机之间或多台主机之间的基本通信。 2应用程序总体分析与设计 该程序包括两个部分,一个是服务器端,另一个是客户端。由于程序要实现两台或多台主机之间的相互通信,这就涉及到了利用c语言进行网络编程。还有两台或者多台主机之间的网络通信需要用到通信协议,而TCP/IP有两种不同的通信协议,即面向有连接的TCP 通信协议和面向无连接的UDP通信协议。教学要求掌握TCP通信的原理。所以选择TCP通信协议进行多台主机之间的连接。 服务器端的实现过程: 1、初始化Windows Socket 2、创建一个监听的Socket 3、设置服务器地址信息,并将监听端口绑定到这个地址上 4、开始监听 5、接受客户端连接 6、和客户端通信 7、结束服务并清理Windows Socket和相关数据,或者返回第4步 客户端实现的过程: 1、加载套接字库 2、创建套接字 3、请求连接服务器 4、发送数据/接收数据 5、关闭套接字 6、卸载所加载的套接字库。 3

计算机网络课程设计通过课程设计,使学生在对计算机网络技术与发展整体了解的基础上,掌握网络的主要种类和常用协议的概念及原理,初步掌握以TCP/IP协议族为主的网络协议结构,培养学生在TCP/IP协议和LAN、WAN上的实际工作能力;学会网络构建、网络日常维护以及网络管理的方法,使学生掌握在信息化社会建设过程中所必须具备的计算机网络组网和建设所需的基本知识与操作技能。运用网络工程和软件工程思想,按照需求分析、规划、设计、配置的基本流程,经历一个完整的网络工程过程,培养学生调查研究、查阅技术文献、资料、手册以及编写技术文档的能力,培养学生将理论知识应用于实践的能力。 一、格式要求及须知: (1)使用学院网站的课程设计模版,要求格式美观,字体及编号要求见表1。 表1 字体及编号要求

(2)参考文献:参考课本的参考文献格式(附录C)。但编号换成[1]、[2]……(3)附录:课程设计中的代码或得到的数据包等数据将作为该设计附件或附录,题目需要但没有的相应代码及数据包文件的将记整组不及格,需要重做。 (4)成绩记录:该设计成绩将记录到教务处成绩管理系统中。 (5)打印:经审查(发邮件到指导老师处或当面交流修改)后,方可打印、存档。打印后递送到指导老师的信箱。 (6)如发现两组设计雷同或抄袭互联网,该组重做! 二、任务完成形式: 交付课程设计说明书、设计作品(需要验收)。 设计作品指的是完整的源程序代码(对于第二类题目为仿真文件)。 课程设计说明书(纸质+电子版),内容包括:设计任务、需求分析、总体设计、详细设计(相应地给出关键的代码)、设计总结(评价/遇到的问题/体会/建议等)、使用说明等。 设计工作计划与进度安排: 根据所选题目,合理安排进度计划,总体上需要40个小时。以下仅供参考: 1. 原理知识 4小时 2. 程序设计技术 4小时 3. 开发环境与程序调试环境 4小时 4. 总体设计、关键环节的详细设计 8小时

实验中小企业综合配置实验 一、实验目的 通过使用所学网络知识,搭建中小企业网络。 二、网络背景简介 某集团为了加快信息化建设,新的集团企业网将建设一个以集团办公自动化、电子商务、业务综合管理、多媒体视频会议、远程通讯、信息发布及查询为核心,实现内、外沟通的现代化计算机网络系统。该网络系统是日后支持办公自动化、供应链管理以及各应用系统运行的基础设施,为了确保这些关键应用系统的正常运行、安全和发展,系统必须具备如下的特性: 1、采用先进的网络通信技术完成集团企业网的建设,实现各分公司的信息化; 2、在整个企业集团内实现所有部门的办公自动化,提高工作效率和管理服务水平; 3、在整个企业集团内实现资源共享、产品信息共享、实时新闻发布; 4、在整个企业集团内实现财务电算化; 5、在整个企业集团内实现集中式的供应链管理系统和客户服务关系管理系统 三、需求分析 需求1:采用先进的网络通信技术完成集团企业网的建设,实现各分公司的信息化. 分析1:利用主流网络设备和网络技术构建企业网。 需求2:在整个企业集团内实现所有部门的办公自动化,提高工作效率和管理服务水平; 分析2:既要实现部门内部的办公自动化,又要提高工作效率,网络规划设计合理、建议采用二层结构,建议整个网络根据部门划分用VLAN隔离。 需求3:在整个企业集团内实现资源共享、产品信息共享、实时新闻发布; 需求4:在整个企业集团内实现财务电算化; 分析3、4:由于要实现内部资源共享,需要各个部门通信可以使用VLAN间路由解决。因为财务部们要实现电算化,考虑到财务信息的安全,用ACL技术禁止财务部门被其他部门访问,同时用端口安全实现接入安全。 需求5:在关键区域,网络链路故障时能够不影响网络使用。 分析:用冗余链路技术保证网络稳定。 需求6:实现企业网络和internet连接 分析:大中型企业连接外部网络通常采用专线方式,使用帧中继或x.25方式接入,另外需要配置NAPT网络地址转换协议。 注:实际网络拓扑结构可参见下图。

内蒙古商贸职业学院计算机系 学生校内实验实训报告 20 11 --2012 学年第2学期 系部:计算机系 课程名称:计算机网络基础 专业班级:2010级计算机信息管理 姓名:董书廷,郭金婷,孙庆玲,周惠 内蒙古商贸职业学院计算机系制

填写说明 1、实验项目名称:要用最简练的语言反映实验的内容,要与实验指导书或课程标准中相一致。 2、实验类型:一般需要说明是验证型实验、设计型实验、创新型实验、综合型实验。 3、实验室:实验实训场所的名称;组别:实验分组参加人员所在的组号。 4、实验方案设计(步骤):实验项目的设计思路、步骤和方法等,这是实验报告极其重要的内容,概括整个实验过程。 对于操作型实验(验证型),要写明需要经过哪几个步骤来实现其操作。对于设计型和综合型实验,在上述内容基础上还应该画出流程图和设计方法,再配以相应的文字说明。对于创新型实验,还应注明其创新点、特色。 5、实验小结:对本次实验实训的心得体会、思考和建议等。 6、备注:分组实验中组内成员分工、任务以及其他说明事项。注意: ①实验实训分组完成的,每组提交一份报告即可,但必须说明人员分工及职责。不分组要求全体成员独立完成的实验实训项目可由指导老师根据个人完成情况分组填写。 ②实验成绩按照百分制记,根据教学大纲及课程考核要求具体区分独立计算、折算记入两种情况。 ③本实验实训报告是根据计算机系实验的具体情况在学院教务处制的实验实训报告的基础上进行改制的。特此说明。

2.单击“下一步”按钮,随后出现Windows Server 2008“授权协议幕。 3.单击“下一步”按钮,打开如图所示的“您想进行何种类型的安装?对话框。其中,“升级”选项用于从Windows Server 2003 Windows Server 2008,且如果当前计算机没有安装操作系统,

实验三 利用MATLAB 进行时域分析 一、实验目的 (1) 学会使用MA TLAB 编程绘制控制系统的单位阶跃响应曲线; (2) 研究二阶控制系统中,ξ、ωn 对系统动态特性和时域指标的影响; (3) 掌握准确读取动态特性指标的方法; (4) 分析二阶系统闭环极点和闭环零点对系统动态性能的影响; (5) 研究三阶系统单位阶跃响应及其动态性能指标与其闭环极点的关系; (6) 研究闭环极点和闭环零点对高阶系统动态性能的影响; (7) 了解高阶系统中主导极点与偶极子的作用; (8) 了解系统阶跃响应、脉冲响应和斜坡响应输出曲线之间的联系与差别。 二、实验原理及内容 1. 求系统的特征根 若已知系统的特征多项式D (s),利用roots ( ) 函数可以求其特征根。若已知系统的传递函数,利用eig ( ) 函数可以直接求出系统的特征根。 2、求系统的闭环根、ζ和ωn 函数damp ( ) 可以计算出系统的闭环根、ζ和ωn 。 3、零极点分布图 可利用pzmap()函数绘制连续系统的零、极点图,从而分析系统的稳定性,调用格式为: pzmap(num,den) 【范例3-1】给定传递函数: 2 72436 4523)(2 345234+++++++++=s s s s s s s s s s G 利用下列命令可自动打开一个图形窗口,显示该系统的零、极点分布图,如图3- 所示。 >> num=[3,2,5,4,6]; den=[1,3,4,2,7,2]; pzmap(num,den) title(1Pole-Zero Map1) % 图形标题。

图3- 1 MATLAB 函数零、极点分布图 4、求系统的单位阶跃响应 step ( ) 函数可以计算连续系统单位阶跃响应(impulse( ) 函数可以计算连续系统单位脉冲响应): step (sys) 或step ( sys , t ) 或step (num , den) 函数在当前图形窗口中直接绘制出系统的单位阶跃响应曲线,对象sys 可以由tf ( ),zpk ( ) 函数中任何一个建立的系统模型。第二种格式中t 可以指定一个仿真终止时间,也可以设置为一个时间矢量(如t =0 : dt : Tfinal ,即dt 是步长,Tfinal 是终止时刻)。 如果需要将输出结果返回到MA TLAB 工作空间中,则采用以下调用格式: c=step(sys) 此时,屏上不会显示响应曲线,必须利用plot()命令查看响应曲线。plot 可以根据两个或多个给定的向量绘制二维图形。 【范例3-2】已知传递函数为:25 425 )(2++= s s s G 利用以下MATLAB 命令可得阶跃响应曲线如图3- 所示。 >> num=[0,0,25]; den=[1,4,25]; step(num,den) grid % 绘制网格线。 title(1Unit-Step Response of G(s)=25/(s^2+4s+25) 1) % 图像标题

第一次在线作业 单选题 (共20道题) 收起 1.( 2.5分)大型系统集成项目的复杂性体现在技术、成员、环境、()四个方面。 ? ? ? ? 我的答案:D 此题得分:2.5分 2.(2.5分)在数据通信网络设计中,ITU-T系列标准更接近于OSI/RM模型()的定义。 ? ? ? ? 我的答案:D 此题得分:2.5分 3.(2.5分)网络系统集成的工作在于解决不同系统之间的信号交换和()问题。 ? ? ?

? 我的答案:A 此题得分:2.5分 4.(2.5分)以太网交换机的每一个端口相当于一个()。 ? ? ? ? 我的答案:D 此题得分:2.5分 5.(2.5分)计算机网络是计算机技术和()技术相结合的产物。 ? ? ? ? 我的答案:A 此题得分:2.5分 6.(2.5分)城域网往往由多个园区网以及()、传输网等组成。 ? ? ? ? 我的答案:D 此题得分:2.5分 7.(2.5分)TCP/UDP端口号提供的附加信息可以为交换机所利用,这是第()层交换的基础。 ?

? ? ? 我的答案:C 此题得分:2.5分 8.(2.5分)电信网络流量很大,对网络设备要求有较高的()和可靠性。 ? ? ? ? 我的答案:D 此题得分:2.5分 9.(2.5分)需求管理包括需求跟踪、()、需求评估等工作。 ? ? ? ? 我的答案:A 此题得分:2.5分 10.(2.5分)网络工程师在大部分情况下可以通过()来获取用户需求。 ? ? ? ? 我的答案:C 此题得分:2.5分 11.(2.5分)电信网的主干链路,一般采用()和DWDM技术。 ?

? ? ? 我的答案:D 此题得分:2.5分 12.(2.5分)()文档定义了网络工程项目的需求基线。 ? ? ? ? 我的答案:A 此题得分:2.5分 13.(2.5分)支持广播网络的拓扑结构有总线型、星型、()。 ? ? ? ? 我的答案:D 此题得分:2.5分 14.(2.5分)对于用户比较集中的环境,由于接入用户较多,因此交换机应当提供( )功能。 ? ? ? ? 我的答案:A 此题得分:2.5分

相关主题
文本预览
相关文档 最新文档