当前位置:文档之家› 网络协议编程课程设计

网络协议编程课程设计

HUNAN CITY UNIVERSITY

网络协议编程课程设计

说明书

设计题目:基于多线程的网络聊天控制台软件的设计与实现专业:网络工程

学生姓名:朱江

班级学号: 1206102-21

分组成员:1206102-06郭辉超1206102-18曾涛1206102-21朱江

指导教师:黄雪华老师汪彦老师

2015 年 07月 03日

《网络协议编程课程设计》报告

学号:1206102-21 姓名:朱江

一、设计时间

2015年06月29日-----07月03日。

二、设计地点

湖南城市学院信息楼507机房。

三、设计目的

1、巩固《网络协议编程》课程涉及的基本知识,培养灵活运用知识进行独立设计的能力;

2、掌握TCP/IP网络程序框架、Winsock API、高级网络编程API的使用;

3、提高综合运用所学的理论知识独立分析和解决问题的能力;

4、进一步熟悉利用Visual C++6.0进行开发的能力;

5、培养查阅资料,独立思考问题的能力。

四、设计小组成员

1206102-06 郭辉超,1206102-18 曾涛,1206102-21 朱江。

五、指导老师

黄雪华老师、汪彦老师。

六、设计课题

经过小组大部分组员的讨论,决定选取选题(基于多线程的网络聊天控制台软件的设计与实现),编写一个基于局域网的多线程控制台聊天系统。

理由:

1、此系统要求采用C/S模式实现,有利于进一步深刻理解和掌握这种基本的网络编程模式。

2、该系统功能相对简单,易于实现,适于初学者。

3、该系统牵涉到Winsock编程,需要灵活运用这些知识解决实际问题,有利于培养网络系统开发的实际动手能力。

七、基本思路及关键问题的解决方法

设计思路

对于聊天程序,一般都是采用 C/S 模式,即服务器/客户端的模式来设计。这样的模式有利于用户的操作和更好的用户体念。而客户端的设计主要关注与用户的体念和操作方便,其网络设计比较简单;服务器则要完成大量的客户控制、数据转发等操作,设计起来相对更加复杂。

总体设计

聊天程序是一个典型的网络程序,而网络程序的设计大多是基于 TCP/IP协议来实现的, TCP/IP协议是一个4层协议族,如图1所示。

聊天程序主要是依赖于传输层来实现,在传输层中有两个重要的协议:TCP协议和UDP协议。其中TCP协议(传输控制协议)是一个面向连接的协议,本协议在进行网络传输过程中首先必须建立一个安全的连接(通常是采用3次握手来实现的),UDP(用户数据报协议)是一种无连接的协议,本协议在进行数据传输前不用建立点对点的连接,所传输的数据不会进行安全检查,如果有丢包的现象也不会重发,本文所涉及的聊天程序采用TCP 协议来实现由于每个电脑可能会有多个服务,而每个服务都采用同一个IP地址来进行收发数

据,所以就必须采用一种机制来实现对每个服务的区分这就是端口,对于同一IP地址的不同端口号就代表了不同的服务,所以对于网络聊天程序的服务器端必须设定一个端口号,而客户端则必须连接到服务器端的IP和其指定的端口,如图2所示。

在本文的聊天程序中,采用客户端发送数据->服务器接收数据->服务器转发数据->客户端接收数据的流程来完成。由于该程序是一个服务器和多个客户端进行聊天的,所以在这里就必须注意以下几个问题:

①服务器需要监控端口,以便客户的随时连接;

②服务器需要监控数据流,以便随时接受来自客户端发来的数据;

③为了实现客户点对点的聊天,则将为每个客户建立一个线程。

服务器设计

服务器设计主要难点是对多线程的设计,在这里主要涉及到三方面的内容:

一是对客户端接入的监控,需要一个线程来完成;

二是分别为每个客户端创建一个线程,用于收发数据,使客户端之间不会彼此干扰;

三是每个客户端产生的线程对数据输入流进行监控,随时准备接收数据。对于数据则应该采用数据包的形式来进行封装,分别由发送者的地址,接收者的地址和数据构成,其中地址由昵称、IP和端口构成。当服务器接收到该数据后,将这些数据向每个客户端都发送出去,由客户端来决定是否接收该数据。

所示:另外,当客户端连接到服务器时,将向服务器发送一个数据包,服务器从数据包里面提取出客户端的地址信息和昵称,并且根据这些信息生成一张地址信息和昵称的对照表,且将这张表群发给每个客户;当有客户退出连接时,服务器则从对照表中将该客户的信息删除,并且群发该表给所有客户,

该表的形式如下:

地址昵称

127.0.0.1 朱江

客户端设计

对于客户端的设计则比服务器简单得多,主要是从界面等方便用户操作的角度来考虑。客户端主要需要完成连接服务器、数据收发等功能。对于数据收发功能主要通过数据流来实现。

八、算法及流程图

九、调试过程中出现的问题及相应解决办法

1.一开始在客户端与服务器进行通信时,只有服务器能看见客户端的消息,而客户端看不见服务器发的消息,之后我们发现这是因为在客户端接受消息的代码少了,在补全之后,双方都能接收信息。

2.之后我们想给这个段代码多添加一些其他的功能,首先添加时间,在此过程中我们一开始准备使用CTime t=CTime.getCurrentTime();这个方法,可是除了一些我们没能解决问题,后来经过询问老师和查询资料,最终我们使用了源程序中的获取时间的代码。

十、课程设计心得体会

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程,通过实验学习和领悟,充分的熟悉了VC++的运用和操作,并顺利完成实验,增强自身团队协作意识。

十一、源程序

客户端

#include "stdafx.h"

#include

#include

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

#include

#include

SOCKET sockclient;

sockaddr_in sockaddrclient;

char sendbuf[100];

char tempbuf[100];

char recvbuf[100];

int len=sizeof(SOCKADDR_IN);

DWORD WINAPI SendProc(

LPVOID lpParameter // thread data

);

void main()

{

/*

*1.加载套接字,创建套接字(WSAStartup(),socket())*

*/

time_t tt = time(NULL);//这句返回的只是一个时间cuo tm* t= localtime(&tt);

WORD wVersionRequested;

WSADATA wsaData;

int err;

wVersionRequested = MAKEWORD( 2, 2 );

err = WSAStartup( wVersionRequested, &wsaData );

if ( err != 0 )

{

return;

}

if ( LOBYTE( wsaData.wVersion ) != 2 ||

HIBYTE( wsaData.wVersion ) != 2 )

{

WSACleanup( );

return;

}

sockclient=socket(AF_INET,SOCK_DGRAM,0);

/*

*2.向服务器发送数据(sendto)。

*/

sockaddrclient.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");

sockaddrclient.sin_family=AF_INET;

sockaddrclient.sin_port=htons(6000);

//////////////

HANDLE Hsend=CreateThread(NULL,0,SendProc,NULL,0,NULL);

CloseHandle(Hsend);

while(1)

{

recvfrom(sockclient,recvbuf,100,0,(sockaddr*)&sockaddrclient,&len); if(*recvbuf)

{

sprintf(tempbuf,"%s:%s",inet_ntoa(sockaddrclient.sin_addr),recvbuf); printf("%d-%02d-%02d %02d:%02d:%02d", t->tm_year + 1900,

t->tm_mon + 1,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec);

printf(" ");

printf("%s\n",tempbuf);

}

}

/*

//3.关闭套接字。inet_ntoa()

*/

}

DWORD WINAPI SendProc(

LPVOID lpParameter // thread data

)

{

while(1)

{

gets(sendbuf);

sendto(sockclient,sendbuf,100,0,(sockaddr*)&sockaddrclient,len); }

return 0;

}

服务器

#include "stdafx.h"

#include

#include

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

#include

sockaddr_in sock;

char recvbuf[100];

char sendbuf[100];

char tempbuf[100];

int len=sizeof(sockaddr);

sockaddr_in SockAddr;

SOCKET ServerSock;

DWORD WINAPI SendProc(

LPVOID lpParameter // thread data

);

void main()

{

/*

*1.加载套接字,创建套接字(WSAStartup(),socket())*

*/

time_t tt = time(NULL);//这句返回的只是一个时间cuo

tm* t= localtime(&tt);

WORD wVersionRequested;

WSADATA wsaData;

int err;

wVersionRequested = MAKEWORD( 2, 2 );

err = WSAStartup( wVersionRequested, &wsaData );

if ( err != 0 )

{

return;

}

if ( LOBYTE( wsaData.wVersion ) != 2 ||

HIBYTE( wsaData.wVersion ) != 2 )

{

WSACleanup( );

return;

}

ServerSock=socket(AF_INET,SOCK_DGRAM, IPPROTO_UDP);

/*

*2.将套接字绑定到一个本地地址和端口上(bind())。

*/

SockAddr.sin_addr.S_un.S_addr=htonl(INADDR_ANY);

SockAddr.sin_family=AF_INET;

SockAddr.sin_port=htons(6000);

// SockAddr.sin_zero=

bind(ServerSock,(sockaddr*)&SockAddr,sizeof(sockaddr_in));

/*

*3.等待接收数据(recvfrom)。

*/

HANDLE Hsend=CreateThread(NULL,0,SendProc,NULL,0,NULL);

CloseHandle(Hsend);

while(1)

{

recvfrom(ServerSock,recvbuf,100,0,(sockaddr*)&sock,&len);

if(*recvbuf)

{

sprintf(tempbuf,"%s:%s",inet_ntoa(sock.sin_addr),recvbuf);

printf("%d-%02d-%02d %02d:%02d:%02d", t->tm_year + 1900,

t->tm_mon + 1,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec); printf(" ");

printf("%s\n",tempbuf);

}

}

}

DWORD WINAPI SendProc(

LPVOID lpParameter // thread data

)

{

while(1)

{

gets(sendbuf);

sendto(ServerSock,sendbuf,100,0,(sockaddr*)&sock,len); }

return 0;

}

参考文献

[1]任泰明.TCP/IP网络编程[M].北京:人民邮电出版社,2009.

[2]叶树华.网络编程实用教程[M].北京:人名邮电出版社,2010.

[3]冯博琴,宋坤,刘锐宁.Visual C++大学教程[M].北京:人民邮电大学出版社,2008.

[4] 宋坤,刘锐宁.Visual C++开发典型模块大全[M].北京:人民邮电大学出版社,2009.

gijmlAAA计算机网络课程设计实验报告

计算机网络课程设计 实验报告

一、实验内容和要求 1、实验一数据包的捕获与分析 Wireshark是一种开源的网络数据包的捕获和分析软件,本实验通过Wireshark软件的安装使用,监控局域网的状态,捕获在局域网中传输的数据包,并结合在计算机网络课 程中学习到的理论知识,对常用网络协议的数据包做出分析,加深网络课程知识的理解和 掌握。具体内容及要求如下: Wireshark软件的安装; Wireshark软件的启动,并设置网卡的状态为混杂状态,使得Wireshark可以监 控局域网的状态; 启动数据包的捕获,跟踪PC之间的报文,并存入文件以备重新查; 设置过滤器过滤网络报文以检测特定数据流; 对常用协议的数据包的报文格式进行分析,利用协议分析软件的统计工具显示网 络报文的各种统计信息。 2、实验二网络层实验—Ping程序的设计与实现 实验目的 本实验目的是使学生掌握网络层协议的原理及实现方法。 实验设计内容 本实验为ICMP实验。实验内容:Ping命令实现的扩充,在给定的Ping程序的基础上做如下功能扩充: -h 显示帮助信息 -b 允许ping一个广播地址,只用于IPv4 -t 设置ttl值,只用于IPv4 -q 安静模式。不显示每个收到的包的分析结果,只在结束时,显示汇总结果 Ping命令的基本描述

二、实验环境 实验一数据包的捕获与分析 1.联网计算机 或linux 系统 3.在PC中安装协议分析软件(如:Wireshark) 4.物理基础: 标准的以太网采用的是持续 CSMA 的方式,正是由于以太网采用这种广播信道争用的方式,使得各个站点可以获得其他站点发送的数据。运用这一原理使信息捕获系统能够拦截的我们所要的信 5.工作模式: 1) 广播模式(Broad Cast Model):它的物理地址(MAC)地址是 0Xffffff 的帧为广播帧,工作在广播模式的网卡接收广播帧。 2)多播传送(MultiCast Model):多播传送地址作为目的物理地址的帧可以被组内的其它主机同时接收,而组外主机却接收不到。但是,如 果将网卡设置为多播传送模式,它可以接收所有的多播传送帧,而不 论它是不是组内成员。 3)直接模式(Direct Model):工作在直接模式下的网卡只接收目地址是自己 MAC地址的帧。 4)混杂模式(Promiscuous Model):工作在混杂模式下的网卡接收所有的流过网卡的帧,信包捕获程序就是在这种模式下运行的。 实验二网络层实验—Ping程序的设计与实现 1.联网计算机 2.Linux系统 3.系统自带编译环境

网络安全协议课程设计-IPsec隧道协议的安全分析与改进

《网络安全协议》 课程设计 题目IPsec隧道协议的安全分析与改进班级 学号 姓名 指导老师 2015年 7 月 4 日

目录 一、概述 (2) 1.1课程设计的目的 (2) 1.2课程设计的内容 (2) 1.3课程设计的要求 (3) 二、问题分析 (3) 2.1系统需求 (3) 2.2 GRE协议分析 (3) 2.3 IPsec协议分析 (4) 三、协议漏洞 (5) 3.1协议漏洞解决措施 (5) 3.2协议漏洞解决详解 (5) 四、协议完善具体实现 (6) 4.1实现分析 (6) 4.2 GRE实现流程分析 (8) 4.3简单设备设置 (10) 五、案安全性分析 (11) 六、程设计心得、总结 (11) 七、参考文献 (12)

一、概述 网络如若想实现交流传输,必须以网络协议为载体进行。而网络协议(Network Protcol)是控制计算机在网络介质上进行信息交换的规则和约定。网络协议通常会被按OSI参考模型的层次进行划分。OSI参考模型是国际标准化组织制定的网络体系结构参考模型,提供各种网络互联的标准,共分七层:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,会话层、表示层和应用层往往被合并称为高层。当前的计算机网络的体系结构是以TCP/IP协议为主的Internet结构。伴随着网络的诞生近几年频繁出现的安全事故引起了各国计算机安全界的高度重视,计算机网络安全技术也因此出现了日新月异的变化。安全核心系统、VPN安全隧道、身份认证、网络底层数据加密和网络入侵主动监测等越来越高深复杂的安全技术极大地从不同层次加强了计算机网络的整体安全性。网络安全的实现首先需要网络协议的安全,但是网络协议都是人为写的,存在先天的不足与缺陷,以至于只能慢慢实践发现并给与补充。这里先谈一下VPN中的GRE协议。GRE(Generic Routing Encapsulation,通用路由封装)协议是由Cisco和Net-smiths等公司于1994年提交给IETF(Internet Engineering Task Force,网络工程工作小组)的,标号为RFC1701和RFC1702。GRE协议规定了如何用一种网络协议去封装另一种网络协议的方法,是一种最简单的隧道封装技术,它提供了将一种协议的报文在另一种协议组成的网络中传输的能力。GRE协议就是一种应用非常广泛的第三层VPN隧道协议。GRE隧道使用GRE协议封装原始数据报文,基于公共IP网络实现数据的透明传输。GRE隧道不能配置二层信息,但可以配置IP地址。本文从GRE协议的工作原理入手,从安全性角度出发,详细分析了GRE隧道协议的不足与缺陷,最后提出了相关的安全防护方案。 1.1课程设计的目的 详细分析IPsec隧道协议不支持对多播和广播的加密的不足,并针对其漏洞设计实施完善可行的策略。 1.2课程设计的内容 将GRE与IPsec结合使用,弥补IPsec不能保护组播数据的缺陷。因为GRE可以封装组播数据并在GRE隧道中传输,所以对于诸如路由协议、语音、视频等组播

网络协议分析实验报告

实 验 报 告 课程名称 计算机网络 实验名称 网络协议分析 系别 专业班级 指导教师 学号 姓名 实验日期 实验成绩 一、实验目的 掌握常用的抓包软件,了解ARP 、ICMP 、IP 、TCP 、UDP 协议的结构。 二、实验环境 1.虚拟机(VMWare 或Microsoft Virtual PC )、Windows 2003 Server 。 2.实验室局域网,WindowsXP 三、实验学时 2学时,必做实验。 四、实验内容 注意:若是实验环境1,则配置客户机A 的IP 地址:192.168.11.X/24,X 为学生座号;另一台客户机B 的IP 地址:192.168.11.(X+100)。在客户机A 上安装EtherPeek (或者sniffer pro )协议分析软件。若是实验环境2则根据当前主机A 的地址,找一台当前在线主机B 完成。 1、从客户机A ping 客户机B ,利用EtherPeek (或者sniffer pro )协议分析软件抓包,分析ARP 协议; 2、从客户机A ping 客户机B ,利用EtherPeek (或者sniffer pro )协议分析软件抓包,分析icmp 协议和ip 协议; 3、客户机A 上访问 https://www.doczj.com/doc/8f15776739.html, ,利用EtherPeek (或者sniffer pro )协议分析软件抓包,分析TCP 和UDP 协议; 五、实验步骤和截图(并填表) 1、分析arp 协议,填写下表 客户机B 客户机A

2、分析icmp协议和ip协议,分别填写下表 表一:ICMP报文分析

3、分析TCP和UDP 协议,分别填写下表

网络协议分析与仿真课程设计预习报告

编号:_______________本资料为word版本,可以直接编辑和打印,感谢您的下载 网络协议分析与仿真课程设计预习报告 甲方:___________________ 乙方:___________________ 日期:___________________

(计算机学院) 网络协议分析与仿真课程设计 预习报告 专业名称:__________ 网络工程_________________ 班级:_______________________________________ 学生姓名:____________________________________ 学号(8位): ________________________________ 指导教师:____________________________________ 设计起止时间:2013年12月2日一2013年12月13日

题目一网络流量分析 一、课程设计目的 里加深对IP、DNS、TCR UDP、HTTP等协议的理解; 里掌握流量分析工具的使用,学习基本的流量分析方法。 二、课程设计地点及时间 二号实验楼442网络实验室,12月2日至12月6日,每天8: 00-14: 00 三、课程设计实验条件 工具:Wireshark (Windows 或Linux), tcpdump (Linux) 要求:使用过滤器捕获特定分组;用脚本分析大量流量数据(建议用perl)。 内容:Web流量分析 四、课程设计原理 1、DNS域名解析:首先,客户端的应用层会封装数据到达传输层,在传输层标识源端口号 与目的端口号(源端口号为大于1023随机,目的端口号为UDP5狒口)及应用层服务(这 里因该是请求DN硒询服务吧)。传输层封装数据产生数据段传给网络层,在网络层标识源IP地址及目的IP地址(源IP地址为客户端IP ,目的IP地址为DNS服务器IP地址),网络层将数据段封装为数据包传给数据链路层,在数据链路层将会在数据包里加入源MACM址及目的MA砸址(源MACM址为客户端网卡MA弛址,目的MAC%址为DNS服务器MACM址),这里应该查询MA或存。数据链路层根据客户端与DNS服务器之间的链路,将数据包封装成 帧,传给物理层。物理层会将数据帧转化为电信号放到物理介质上。 电信号到达DNS服务器后会从物理层到达应用层(这里和客户端发送数据差不多,只不过这 个过程变成了解封装),DNS服务器做完域名解析后再将数据传给客户端,传输过程同客户端发送数据。 2、建立TCP/IP连接:客户端知道WE囹艮务器IP地址之后,在网络层产生建立TCP/IP三次握手的数据包(TCP/IP三次握手:客户端向服务器端发送SYN信息,服务器端收到SYN信 息后回复给客户端SYN+AC褊认信息,客户端收到确认信息后再向服务器发送ACK信息建立 连接),应用层标识HTTP服务将数据发送到传输层,传输层将数据+源端口号(大于1023)、目的端口号(80)+上层服务WW如装为数据段传给网路层。网络层将数据段+源ip与目的 ip (WW服务器的ip地址)封装为数据包发送到数据链路层。数据链路层参照ARP缓存表确定源MAC%址(本机MACM址)及目的MACM址(客户端与路由B相连端口的MACM址)将数据包封装成数据帧。这里还需要CR破验。。。。。。数据帧到达物理层后变成电信号发送 到介质上(这里还需要访问控制方法DSMA/CD 路由B收到电信号后传给路由器的数据链路层,这里还需要CRC,FC眼验。。。…确定数据 帧没有损坏后查看目的MACM址与路由器端口地址是否相同,如果相同将解封装,将数据包 发送到路由器B的物理层,路由器查看路由表确定数据包的转发端口,路由器B确定与路由 A之间的链路,创建帧。 路由B与路由A可以看成是点对点,即路由B将创建PPP帧。路由A收到电信号后,确定帧的完整性,如果完整即将数据帧解封装发送到网络层,路由A查询路由表将数据包转发到与WEBf连的路由端口。 路由A的数据链路层将查询ARP缓存表确定WW服务器的MACM址,路由A将创建源MAC 地址

网络安全课程设计

上海应用技术学院课程设计任务书 指导教师(签名):舒明磊教研室主任(签名):荣祺2014年7 月1 日2014年7 月1 日

1. 课程设计目的和要求 1.1目的 本课程设计是计算机科学与技术专业、网络工程专业重要的实践性环节之一,是在学生学习完《密码学与网络安全技术》课程后进行的一次全面的综合练习。通过课程设计,使学生熟练掌握计算机网络安全知识的基本概念和原理,熟悉了解网络安全的基本技术和攻防方法,培养学生将专业理论知识和工程技术应用有机结合的高级应用能力,使学生具备从事网络管理维护和信息安全管理方向的职业的基本素质和技能,提高设计文档的撰写能力。 1.2要求 (1) 分析课程设计题目的要求; (2) 要求在设计的过程中,完成清晰的功能设计; (3) 要求系统架构合理,模块划分清晰; (4) 对于程序设计课题,应编写程序代码,调试程序使其能正确运行;对于操作应用课 题,应有清楚明确的执行步骤和过程; (5) 设计完成后提交课程设计报告(按学校要求装订)、报告的电子文档和程序源代码 文件。 2、课程设计任务内容 设计主要内容如下 (1)根据任务要求,选择了T1、T2、T3、T4、T5和T6题目。其中T1要求完成敏感信 息搜集;T2要求完成加解密编程;T3要求完成SQL Server安全设置;T4要求完成 FTP密码与OE账户嗅探;T5要求完成批处理脚本编写与验证蠕虫病毒;T6要求 完成FAT32文件恢复。 (2)最终提供的主操作界面应该为便于操作和使用,文档结构清晰简洁,内容完整准确。 (3)最后提交的课程设计成果包括: a)课程设计报告打印稿; b)课程设计报告电子稿; c)源程序文件; d)可执行文件。 3、详细设计 3.1敏感信息搜集 3.2加解密编程 3.2.1、利用Bouncy Castle API对数据进行Encoding and Decoding 1.首先编写DESEncrypto.java文件 在D盘根目录下建立一个DESEncrypto.txt文本文件,接下来把后缀名改成DESEncrypto.java 如下图所示:

网络协议实践课程设计报告-

成都信息工程学院网络工程系 《网络协议实践》 课程设计报告 签名:

目录 第一章 TCP和ARP协议基础............................................................................... 错误!未定义书签。 1.1什么是TCP协议........................................ 错误!未定义书签。 1.2TCP报文类型与格式 .................................... 错误!未定义书签。 1.3什么是ARP协议........................................ 错误!未定义书签。 1.4ARP报文类型和结构 .................................... 错误!未定义书签。第二章抓包验证TCP协议和ARP协议.............................................................. 错误!未定义书签。 2.1实验环境.............................................. 错误!未定义书签。 2.2实验步骤与抓包结果分析................................ 错误!未定义书签。 2.3实验结论.............................................. 错误!未定义书签。第三章 OSPF路由协议验证分析.. (3) 3.1实验环境及工具介绍 (9) 3.2实验步骤及抓包结果分析 (10) 3.3实验结论--OSPF运行过程说明 (12) 3.4实验心得体会 (12)

网络安全协议课程设计报告SSL协议

SSL协议的安全性研究 1 引言 随着计算机网络技术的飞速发展,信息时代的人们对Internet的依赖性越来越大。当今时代,电子商务和电子政务的应用越来越广泛,然而网络安全问题严重束缚了计算机网络的进一步应用。安全套接层SSL(Secure Sockets Layer)协议是由Netscape公司设计开发的安全协议,主要用于加强应用程序之间的数据的安全性。SSL协议是基于Web应用的安全协议,它采用了RSA算法、RC4—128、RC一128、三重DES算法和MD5等加密技术实现两个应用层之间的机密性、可靠性和数据完整性,并采用X.509数字证书实现鉴别,其加密的目的是建立一个安全的通讯通道,而且该通道可在服务器和客户机两端同时实现支持。 2 SSL协议简述及相关概念 SSL协议用来建立一个在客户和服务器之间安全的TCP连接,尤其可被用来认证服务器,可选地认证客户,执行密钥交换,提供消息认证,而且还可以完成在TCP协议之上的任意应用协议数据的完整性和隐蔽性服务。SSL为在Internet上安全地传送数据提供了一介加密通道,建立一个安全连接,主要实现以下工作:加密网络上客户端和服务器相互发送的信息;验证信息在传送过程是否安全完整:运用非对称密钥算法验证服务器;验证客户身份;交换应用层数据。 2.1 SSL---安全套接层协议。 是由Netscape设计的一种开放性协议,它提供了一种介于应用层和传输层之间的数据安全套接层协议机制。SSL位于TCP/IP协议与各种应用层协议之间,为TCP/IP连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。其目的是为客户端(浏览器)到服务端之间的信息传输构建一个加密通道,此协议是与操作系统和Web服务器无关的。 2.2 SSL协议可分两层: 2.2.1 SSL记录协议: 它建立在可靠的传输协议(如TCP)之上,位于SSL协议的底层,为高层协议提供数据封装、压缩、加密等基本功能的支持。在SSL中,所有数据被封装在记录中,SSL握手协议中的报文,要求必须放在一个SSL记录协议层的记录里,但应用层协议的报文,允许占用多个SSL 记录来传送 (1) SSL记录头格式 SSL记录头可以是2个或3个字节长的编码。SSL记录头包含的信息有记录头的长度、记录数据的长度,以及记录数据中是否有填充数据,其中填充数据是在使用块加密

校园网络安全课程设计

1 校园网络安全威胁 1.1校园网简介 珠海大学的校园网承载着学校的教务、行政、教学、图书资料、对外联络等方面事的务处理,它的安全状况影响着学校的教学、教务、行政管理、对外交流等活动。在珠海大学网络建成的初期,安全问题可能还不突出,随着应用的深入,校园网上各种数据会急剧增加。潜在的安全缺陷和漏洞、恶意的攻击等造成的问题开始频繁出现。 1.2网络攻击及缺陷 校园网受到的攻击以及安全方面的缺陷主要有: 1.有害信息的传播 校园网与Internet融为一体,师生都可以通过校园网络在自己的机器上进入Internet。目前Internet上充斥着各种信息。有些有毒的信息违反人类的道德标准和有关法律法规,对师生的危害非常大。如果安全措施不好,会让这些信息在校园内传播。 2.病毒破坏 通过网络传播的病毒无论实在传播速度、破坏性和传播范围等方面都是单机病毒所不能比拟的。特别是在学校接入广域网后,为外界病毒进入学校大开方便之门,下载的程序和电子邮件都有可能带有病毒,而且网络病毒的变异速度加快,攻击机理复杂,必须不断更新病毒库。 3.恶意入侵 学校涉及的机密不是很多,来自外部的非法访问的可能性要少一些,关键是内部的非法访问。一些学生可能会通过入侵的手段破坏教务系统,扰乱教学工作秩序。 4.恶意破坏 对计算机硬件系统和软件系统的恶意破坏,这包括对网络设备和网络系统两

个方面的破坏。网络设备包括服务器、交换机、集线器、路由器、通信媒体、工作站等,它们分布在整个校园内,不可能24小时专人看管,故意的或非故意的某些破坏,会造成校园网络全部或部分瘫痪。 另一方面是利用黑客技术对校园网络系统进行破坏。表现在以下几个方面:对学校网站的主页面进行修改,破坏学校的形象;向服务器发送大量信息使整个网络瘫痪;利用学校的邮件服务器转发各种非法信息等。 5.口令入侵 通过网络监听非法得到用户口令,或使用口令的穷举攻击非法获得口令入侵,破坏网络。 2 校园网网络拓扑结构 珠海大学的校园网由四个物理区域组成:办公大楼、图书馆大楼、实验楼、教学楼。在整个网络中,各信息点按功能又划分为行政办公、实验教室、普通教室、中心管理机房、电子阅览室等不同区域,各区域与互联网连接的目的也是不一样的,对特定区域,与互联网连接将受到一定限制。校园网采用千兆到楼,百兆到桌面的全交换网络系统,覆盖到实验楼、行政楼、图书馆、广播楼、教学楼,共计光纤链路10余条,交换机80余台,网络信息点2800多个。整个系统包括一批高性能网络交换机、路由器、防火墙、入侵检测、存储、备份和安全认证软件、网络版杀毒软件。 当前在各种网络系统的建设中使用最多的是星型拓扑结构,虽然星型拓扑结构的网络在布线和网络设备的花费多一些,不过目前各种硬件设备已经非常便宜了,这种花费是可以承受的。因而它的优点也是十分突出的,主要是当网络中某个节点出现故障时不会影响整个网络的运行,这使得网络从总体上可以提供高度的可靠性和沉佘性,这个性能十分适合校园网这种应用环境,也是校园网的建设中必须要求做到的。 根据校园网的需求分析及建设目标,本设计方案采用交换式千兆以太网作为主干,百兆交换到桌面。网络拓扑采用星型树结构,网络中心的交换机使用堆叠方式连接。

网络协议课程设计报告

目录 1.课程设计目的 ---------------------------------------------------- 2 2.课程设计要求 ---------------------------------------------------- 2 3.课程设计题目分析 ------------------------------------------------ 2 3.1 网卡设置 -------------------------------------------------- 2 3.2 程序设计 -------------------------------------------------- 3 3.2.1 使用原始套接字------------------------------------------ 3 3.2.2 接收数据包---------------------------------------------- 4 3.2.3 定义IP头部的数据结构---------------------------------- 4 3.2.4 IP包的解析 --------------------------------------------- 5 4.解析IP数据包设计相关知识 -------------------------------------- 5 5.程序流程图------------------------------------------------------- 6 6.程序设计--------------------------------------------------------- 7 6.1 协议的定义 ------------------------------------------------ 7 6.2捕获处理--------------------------------------------------- 7 6.3 运行界面 -------------------------------------------------- 8 7.实验结果--------------------------------------------------------- 9 8.自我评析和总结 -------------------------------------------------- 9 8.1 实训心得-------------------------------------------------- 9 8.2 实训日记-------------------------------------------------- 9 9.主要参考资料 -------------------------------------------------- 10 [2]《网络协议分析》寇晓蕤罗俊勇编著机械工业出版社--------- 10 [3]《C语言程序设计》张建伟李秀琴主编科学出版社--------- 10 [4]《C++程序设计教程——面向对象分册》郑秋生主编 --------- 10电子工业出版社 -------------------------------------------------- 10 10.附录 ---------------------------------------------------------- 10

计算机网络课程设计报告

计算机网络课程设计报告 姓名:李逍逍 班级:08计11 学号:08261012

一.课程设计的题目、目的及要求 (2) 二.课程设计的内容(分析和设计) (3) 三.绘制拓扑结构图 (3) 四.详细设计步骤 (5) 五.路由器或交换机配置的代码 (6) 六.显示最终的结果 (8) 七.课程设计总结 (9)

一.课程设计的题目、目的及要求 课程设计题目:组建小区局域网 课程设计目的: 更深了解路由器,交换机,PC机之间的配置与应用,熟练掌握一些简单的的网络应用和连接,熟练掌握路由器和交换机的基本配置;掌握DHCP、ACL、VLAN、和NET协议和相应的技术;提高对实际网络问题的分析和解决能力。该设计需要划分为四个子网层面的小区性的网络通讯。采用软件cisco,可以更好的实现各种不同网络设备互相配合与联系,以达到最佳的局域网通讯效果。 课程设计要求: 要求能根据实际问题绘制拓扑结构图,拓扑结构图可以是树形、星形、网状形、环状形及混合形结构的之一,清晰的描述接口,进行路由器或交换机的代码配置实现,并且每个方案的需有以下几部分的内容: 1、需求特点描述; 2、设计原则; 3、解决方案设计,其中必须包含: (1)设备选型; (2)综合布线设计; (3)拓扑图; (4)IP地址规划; (5)子网划分; (6)路由协议的选择; (7)路由器配置。 组建小区局域网的总体要求: 运用自己对局域网组网技术的理解,设计小区组网方案,使得一个具有200个住户节点的智能化小区能够进行网络通讯,且将整个小区可划分为四个区域:1.网络中心区:以物业管理中心及监控中心为主的核心交换设备和服务器群;2.远程网络接入区:包括外部网络接入口的路由器设备和网络安全设备;3.园区网络区:包括从网络中心到社区服务设施的骨干交换设备; 4.家庭网络区:包括从网络中心到楼宇中的骨干交换设备,并为各住户单元提供网络接入端口,是整个小区网络系统的最基本单元。

网络安全课程设计报告

中原工学院计算机学院《网络安全程序》课程设计报告 题目:基于des加密的聊天程序 班级:网络124班

目录 第1章绪论____________________________________________________ 3 1.1 des加密背景______________________________________________ 3 1.2 聊天程序设计背景 _________________________________________ 4第2章加密原理________________________________________________ 5 2.1 des简介__________________________________________________ 5 2.2 des加密原理______________________________________________ 5 2.3 des加密过程______________________________________________ 7第3章聊天程序设计____________________________________________ 8 3.1 TCP/IP协议_______________________________________________ 8 3.2 客户机/服务器模式 ________________________________________ 8 3.3 Socket ___________________________________________________ 9第4章系统设计_______________________________________________ 11 4.1 开发语言及环境 __________________________________________ 11 4.2 需求分析 ________________________________________________ 11 4.2.1 功能需求分析__________________________________________ 11 4.2.2 数据需求分析__________________________________________ 11 4.2.3 性能需求分析__________________________________________ 12 4.2.4 运行需求分析__________________________________________ 12 4.3 程序流程图 ______________________________________________ 13 4.4 模块设计 ________________________________________________ 14 4.4.1 服务器________________________________________________ 14 4.4.2 客户端________________________________________________ 15 第5章程序测试_______________________________________________ 17 5.1 运行结果________________________________________________ 17 第6章总结___________________________________________________ 21参考文献______________________________________________________ 21

计算机网络课程设计报告文件传输协议的简单实现

课程设计 课程名称计算机网络课程设计 题目名称文件传输协议的简单设计与实现学生学院 专业班级___ _ 学号 学生姓名______ _________ 指导教师______ _____ 2010 年 1 月 5 日

设计摘要 关键词:SOCKET编程,FTPclient/server程序 摘要:本课程设计包含了文件传输协议的简单设计与实现。 文件传送是各种计算机网络实现的基本功能,文件传送协议是一种最基本的应用层协议按照客户/服务器的模式进行工作,提供交互式的访问,是INTERNET使用最广泛的协议之一。文件传输协议的简单设计与实现建立在计算机网络实验环境TCP/IP 网络体系结构之上,使用socket 编程接口编写两个程序,分别为客户程序和服务器程序(),实现下述命令功能:get , put, pwd, dir, cd, ?, quit 等,利用了已有网络环境设计并实现简单应用层协议。 本设计包括了具体设计任务,基本思路及所涉及的相关理论,设计流程图,调试过程中出现的问题及相应解决办法,实验运行结果,核心程序,个人体会及建议等。

目录 1、文件传输协议的简单设计与实现------------------------------18 1. 1 具体设计任务----------------------------------------------18基本思路及所涉及的相关理论--------------------------------18 1.2.1基本思路-------------------------------------------------18 2.2.2 相关理论--------------------------------------------18 设计流程图------------------------------------------------19 实验运行情况----------------------------------------------19 核心程序--------------------------------------------------22 2.5.1 服务器(sever)程序---------------------------------22 2.5.2 客户(client)程序----------------------------------29 心得体会-----------------------------------------------------------------------------37 参考文献--------------------------------------------------------38

网络安全协议课程设计报告SSL协议

协议的安全性研究 1 引言 随着计算机网络技术的飞速发展,信息时代的人们对的依赖性越来越大。当今时代,电子商务和电子政务的应用越来越广泛,然而网络安全问题严重束缚了计算机网络的进一步应用。安全套接层( )协议是由公司设计开发的安全协议,主要用于加强应用程序之间的数据的安全性。协议是基于应用的安全协议,它采用了算法、4—128、一128、三重算法和5等加密技术实现两个应用层之间的机密性、可靠性和数据完整性,并采用X.509数字证书实现鉴别,其加密的目的是建立一个安全的通讯通道,而且该通道可在服务器和客户机两端同时实现支持。 2 协议简述及相关概念 协议用来建立一个在客户和服务器之间安全的连接,尤其可被用来认证服务器,可选地认证客户,执行密钥交换,提供消息认证,而且还可以完成在协议之上的任意应用协议数据的完整性和隐蔽性服务。为在上安全地传送数据提供了一介加密通道,建立一个安全连接,主要实现以下工作:加密网络上客户端和服务器相互发送的信息;验证信息在传送过程是否安全完整:运用非对称密钥算法验证服务器;验证客户身份;交换应用层数据。 2.1 安全套接层协议。 是由设计的一种开放性协议,它提供了一种介于应用层和传输层之间的数据安全套接层协议机制。位于协议与各种应用层协议之间,为连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证。其目的是为客户端(浏览器)到服务端之间的信息传输构建一个加密通道,此协议是与操作系统和服务器无关的。 2.2 协议可分两层: 2.2.1 记录协议: 它建立在可靠的传输协议(如)之上,位于协议的底层,为高层协议提供数据封装、压缩、加密等基本功能的支持。在中,所有数据被封装在记录中,握手协议中的报文,要求必须放在一个记录协议层的记录里,但应用层协议的报文,允许占用多个记录来传送 (1) 记录头格式 记录头可以是2个或3个字节长的编码。记录头包含的信息有记录头的长度、记录数据的长度,以及记录数据中是否有填充数据,其中填充数据是在使用块加密()算法时,填充实际数据,使其长度恰好是块的整数倍。最高位为1时,不含有填充数据,记录头的长度为2个字节,记录数据的最大长度为32767个字节;最高位为0时,含有填充数据,记录头的长度为3个字节,记录数据的最大长度为16383个字节。

网络协议实验报告

实验一: unsigned short checkSum(char*pBuffer,int nLen) { unsigned short nWord; unsigned int nSum=0; int i; for(i=0;i>16) { nSum=(nSum&0xFFFF)+(nSum>>16); } nSum=~nSum; return((unsigned short)nSum); } int timeout=1000; setsockopt(sock_raw,SOL_SOCKET,SO_RCVTIMEO,(char*)&timeout,sizeof(timeout)); setsockopt(sock_raw,SOL_SOCKET,SO_SNDTIMEO,(char*)&timeout,sizeof(timeout)); ICMPheader*pIcmpHeader=(ICMPheader*)sendBuffer; pIcmpHeader->byType=8; pIcmpHeader->byCode=0; pIcmpHeader->nId=(USHORT)::GetCurrentProcessId(); pIcmpHeader->nChecksum=0; pIcmpHeader->nSequence=htons(nSeq++); memset(sendBuffer+sizeof(ICMPheader),'*',32); pIcmpHeader->nChecksum=htons(checkSum(sendBuffer, sizeof(ICMPheader)+32)); int nRet=sendto(sock_raw,sendBuffer,sizeof(ICMPheader)+32,0, (SOCKADDR*)&dest_addr,sizeof(SOCKADDR_IN)); IPheader*ipHdr=(IPheader*)recvBuffer; ICMPheader*icmpHdrRet=(ICMPheader*)(recvBuffer+sizeof(IPheader)); if(icmpHdrRet->byCode==0&& icmpHdrRet->nId==pIcmpHeader->nId&& icmpHdrRet->nSequence==pIcmpHeader->nSequence) { nPacketReceived++; unsigned long dwRecvTime=::GetTickCount(); int nRoundTime=dwRecvTime-dwSendTime; nTotalRoundTime+=nRoundTime;

网络协议分析实验报告

课程设计 课程设计题目网络协议分析实验报告学生姓名: 学号: 专业: 2014年 6 月 29日

实验1 基于ICMP的MTU测量方法 实验目的 1)掌握ICMP协议 2)掌握PING程序基本原理 3)掌握socket编程技术 4)掌握MTU测量算法 实验任务 编写一个基于ICMP协议测量网络MTU的程序,程序需要完成的功能: 1)使用目标IP地址或域名作为参数,测量本机到目标主机经过网络的MTU; 2)输出到目标主机经过网络的MTU。 实验环境 1)Linux系统; 2)gcc编译工具,gdb调试工具。 实验步骤 1.首先仔细研读ping.c例程,熟悉linux下socket原始套接字编程模式,为实验做好准备; 2.生成最大数据量的IP数据报(64K),数据部分为ICMP格式,ICMP报文为回送请求报 文,IP首部DF位置为1;由发送线程发送; 3.如果收到报文为目标不可达报文,减少数据长度,再次发送,直到收到回送应答报文。 至此,MTU测量完毕。

ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息。它是一个非常重要的协议,它对于网络安全具有极其重要的意义。[1] 它是TCP/IP协议族的一个子协议,属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。ICMP报文在IP帧结构的首部协议类型字段(Protocol 8bit)的值=1.

ICMP原理 ICMP提供一致易懂的出错报告信息。发送的出错报文返回到发送原数据的设备,因为只有发送设备才是出错报文的逻辑接受者。发送设备随后可根据ICMP报文确定发生错误的类型,并确定如何才能更好地重发失败的数据包。但是ICMP唯一的功能是报告问题而不是纠正错误,纠正错误的任务由发送方完成。 我们在网络中经常会使用到ICMP协议,比如我们经常使用的用于检查网络通不通的Ping命令(Linux和Windows中均有),这个“Ping”的过程实际上就是ICMP协议工作的过程。还有其他的网络命令如跟踪路由的Tracert命令也是基于ICMP协议的。 ICMP(Internet Control Message,网际控制报文协议)是为网关和目标主机而提供的一种差错控制机制,使它们在遇到差错时能把错误报告给报文源发方.是IP层的一个协议。但是由于差错报告在发送给报文源发方时可能也要经过若干子网,因此牵涉到路由选择等问题,所以ICMP报文需通过IP协议来发送。ICMP数据报的数据发送前需要两级封装:首先添加ICMP 报头形成ICMP报文,再添加IP报头形成IP数据报 通信术语最大传输单元(Maximum Transmission Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。最大传输单元这个参数通常与通信接口有关(网络接口卡、串口等)。 实验2 基于UDP的traceroute程序 实验目的 1)掌握UDP协议 2)掌握UDP客户机/服务器编程模式 3)掌握socket编程技术 4)掌握traceroute算法

计算机网络安全课程标准

计算机网络安全课程标 准 集团标准化小组:[VVOPPT-JOPP28-JPPTL98-LOPPNN]

《计算机网络安全》课程标准 1.课程定位与设计思路 1.1课程定位 《计算机网络安全》是计算机相关专业针对中小型网络管理岗位能力进行培养的一门核心课程。本课程构建于计算机网络技术与应用、网络设备配置与管理、网络服务架构和实现等课程基础上,通过引入游戏教学,从踩点扫描、入侵系统、种植后门、清除日志等工作过程开展教学,主要培养学生综合应用能力,能学以致用,完成一个企业网络安全的维护,同时也培养其团队合作意识、创新精神、职业素质,使之成为计算机网络安全技术方面的应用型专门技术人员。本课程在第5学期开设,54课时。 1.2设计思路 1.2.1本课程标准设计的总体思路 按照“由与网络技术领域职业相关的行动体系中的全部行动领域,按教学要求归纳形成学习领域,具体化后设计学习情境”的整体思路,进行课程开发。具体要求如下:(1)对实际工作岗位的工作任务进行分析; (2)按职业资格标准进行工作任务归纳; (3)按照从简单对复杂、单一到综合、低级到高级的认知规律进行学习性任务归纳; (4)采用资讯、决策、计划、实施、检查、评价的六步法进行工作过程系统化课程方案的构建; (5)课程方案的具体化,制定课程标准,完成学习情境和学习单元的设计。 1.2.2学习情境设计的基本依据 该课程是以计算机网络技术专业就业面向网络管理、网络应用岗位工作任务所需的相关专业知识与必要技能为依据设计的。遵循从简单对复杂、单一到综合、低级到高级的认知规律路径选

择以网络安全基础、网络攻击、木马和病毒、系统安全、防火墙和入侵检测作为学习情境,各学习情境的教学过程以行动为导向,以学生为主体,基于工作过程来完成。” 1.2.3学习子情境设计的逻辑线索 该课程先通过网络安全基础情境了解信息安全在行业中的各个标准,以及信息安全的现有社会环境基础。再通过网络攻击、木马和病毒等情境对各类的入侵手段进行学习领会,在了解完常见的入侵手段之后,对服务器操作系统安全的加固、以及通过对防火墙和入侵检测技术的应用,达到有针对的部署企业网络安全。根据这一思路主体,整个学习情境分为:网络安全基础、网络攻击、木马和病毒、系统安全、防火墙和入侵检测五个情境。 2.课程目标 2.1知识目标 (1)掌握计算机网络的基本概念以及网络的拓扑结构 (2)理解协议分析的基本原理和方法 (3)掌握网络扫描和网络监听的原理和方法 (4)掌握密码攻击的技术 (5)理解系统漏洞攻击的方法 (6)了解木马的原理,掌握木马的使用和防范措施 (7)掌握计算机及网络系统及WEB网站的安全性问题 (8)掌握邮件加密的基本技术 (9)了解计算机病毒的相关知识和相关技术 (10)熟悉防火墙和入侵检测 2.2能力目标 学生通过该门课程的学习,能对一定规模的企业网络进行网络安全的渗透检测以及网络整体运行安全的评估,会熟练使用各类扫描、防黑软件等预防工具对存在安全隐患的网络进行整改。具备一定的实施企业网络安全的软、硬件部署能力。 2.2.1专业能力 (1)能按项目需求进行中小型网络安全的规划与设计,设备选型,及资金预算 (2)能按项目需求规划和设计具有一定可行性的中小型网络安全建设方案 (3)能熟练完成网络安全设备的连接和网络配置 (4)能熟练地对该中小型网络安全项目进行测试,并对常见的故障进行排查 2.2.2社会能力: (1)具有良好的职业道德和敬业精神 (2)具有较强的团队合作的意识

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