实验1 网络协议分析与仿真(8)

2019-05-27 20:43

计算机网络协议仿真实验

clilen = sizeof(SOCKADDR_IN); socketClient = accept(sockfd,

(LPSOCKADDR)&SockAddr, &clilen);

/*出错处理*/

if (socketClient == INVALID_SOCKET) {

printf(\ break; }

/* 打印已建立的连接信息*/

printf(\ socketClient,

inet_ntoa(SockAddr.sin_addr));

/*启动一个新线程处理该请求*/

dwClientThread =CreateThread(NULL, 0,

(LPTHREAD_START_ROUTINE)&ClientThread, (void *)socketClient, 0,

&ThreadAddr);

/*错误处理*/

if(!dwClientThread)

printf(\

/*线程建立以后,主程序里不再使用线程handle,将其关闭,但线程继续运行*/ CloseHandle((HANDLE)dwClientThread); }

/*结束 windows sockets API*/ WSACleanup(); return 0; }

上述服务员程序已经在服务器端运行,请学生认真阅读,然后根据实验原理二中介绍的内容,设计面向连接的客户端程序,实现客户与服务员间的数据传输。

计算机网络协议仿真实验

在仿真机一端运行客户端进程,在监控机端捕获数据并分析。

练习三:使用TCP协议进行复杂的客户-服务员程序设计。

上述的例子程序比较简单,有一些进程中往往同时存在几条连接,这样的进程在有报文到来时,可以在它处理的任何socket上执行recv调用,但它不知道哪个socket上已有报文,哪个上没有,可以使用select()系统调用来解决这样的问题。有兴趣的同学可自行编写这样较复杂的客户-服务员程序。

【思考问题】

结合实验过程中的实验结果,回答下列问题

1、根据编程练习实验中记录的客户和服务器程序的端口号并结合程序,说明:

在客户/服务器模型当中,客户进程的端口号和服务器进程的端口号都是由程序给出说明的吗?为什么?

2、在TCP/IP网络中,当客户与服务员进程建立了一条TCP连接以后,是否属于该连接的所有包都是经过同一路径(即一条虚电路)传递的?为什么?

【实验结论】

实验八SNMP协议与网络管理

【实验目的】

1、理解SNMP协议的工作原理 2、理解SNMP协议的作用 【实验学时】 4学时

【实验类型】 综合型

【实验要求】

1、理解SNMP协议的作用 2、熟悉SNMP协议的格式 3、了解SNMP与UDP的关系

4、了解MIB以及基本的MIB变量 5、了解ASN.1的编码标准 【实验原理】

(1)SNMP的报文格式:

计算机网络协议仿真实验

字段说明: 共同体:

共同体字段是一个字符串。这是管理进程和代理进程之间的口令,是明文格式。默认值是public。

PUD类型(五种): PUD类型 0 1 2 3 4 名 称 get-request get-next-request get-response set-request trap 描 述 从代理进程提取一个或多个参数值 从代理进程提取一个或多个参数的小一个参数值 返回的一个或多个参数值。(由代理进程发出,是前三个操作的相应操作) 设置代理进程的一个或多个参数值 代理进程主动发出的报文,通知管理进程有某些事情发生

请求标识:

请求标识由管理进程设置,由代理进程在get-response中返回。客户进程(管理进程)通过它来确定服务器(代理)进程发出的响应与客户进程发出的查询是否匹配。

差错状态(六种): 差错状态 0 1 2 3 4 5

名 称 noError tooBig noSuchName badValue readOnly genErr 描 述 没有错误 代理进程无法把响应放在一个SNAP消息中发送 操作不存在的变量 set操作的值或语义有错误 管理进程试图修改一个只读变量 其他错误 计算机网络协议仿真实验

差错索引:

是一个整数偏移量,指明当有差错发生时,差错发生在哪一个参数。它是由代理进程标注的,只有在发生noSuchName、badValue、readOnly差错时才标注。

trap类型(七种): trap类型 0 1 2 3 4 5 6 名 称 coldStart warmStart linkDown linkUp 描 述 代理进程对自己初始化 代理进程对自己重新初始化 一个接口已经从工作状态改变为故障状态,报文中的第一个变量标识此接口 一个接口已经从故障状态改变为工作状态,报文中的第一个变量标识此接口 一个EGP邻站已改变为故障状态。报文中的第一个变量包含此邻站的IP地址 在这个特定的代码字段中查找trap信息 authenticationFailure 从SNMP管理进程收到无效共同体的报文 egpNeighborLoss enterpriseSpecific

(2)其他原理请参考教材: 第五章 应用协议

【实验步骤】

1、仿真机端

主控设备端的SNMP服务已经启动,本实验选择服务器端的SNMP进程作为服务进程即SNMP代理进程,并进行访问。

练习一:编辑并发送SNMP数据包

由于SNMP服务是建立在UDP协议之上的,SNMP数据封装在UDP数据包内,故对SNMP数据的编辑即是对UDP数据字段内容的编辑。

1、打开协议仿真编辑器。

2、填写该帧的以太网协议首部:

(a) 源MAC地址”和“目的MAC地址”字段

(b) “类型或长度”字段值应为:0800(即IP协议的类型值) 3、填写IP协议头信息:

注意协议字段,选择上层协议类型为UDP协议,其类型值为17; 目的地址为服务器主机的IP地址。 4、填写UDP协议信息: (a) 16位源端口号:自选

计算机网络协议仿真实验

(b) 16位目的端口号:161(SNMP代理进程的UDP端口号) (c) 16位UDP长度:UDP报头长度(8)与UDP数据长度之和。 (d) 编辑UDP数据字段(即:SNMP数据信息):

例如:02 01 00 04 06 70 75 62 6C 69 63 A0 5F 02 01 04 02 01 00 02 01 00 30 54 30 0C 06 08 2B 06 01 02 01 01 01 00 05 00

(e) 校验和:覆盖UDP首部(含伪首部)和数据两部分。计算方法参考实验五。 5、点击工具栏或菜单栏中的“发送”,在弹出菜单上选择“发送”按钮,发送UDP报文; 6、在监控机一端截获该报文及响应报文并分析。

【思考问题】

结合实验过程中的实验结果,回答下列问题

1、SNMP服务为什么选择UDP协议而不是TCP协议作为下层协议? 【实验结论】

实验九 应用层协议 – 1:HTTP协议

【实验目的】

1、掌握HTTP协议的使用 2、了解HTTP协议的实现方式 【实验学时】 4学时

【实验类型】 综合型

【实验要求】

1、学习HTTP协议的格式

2、理解HTTP协议与TCP协议的关系 3、了解HTTP协议的通信过程

4、理解HTTP协议的无连接、无状态特性 【实验原理】

HTTP报文共有两种通用类型:请求报文,响应报文。

(1)请求报文:包括请求行、首部,以及有时出现的主体。如图

请求行 首部 空行


实验1 网络协议分析与仿真(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:关于中西方绘画差异

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: