计网2实验

合集下载

计算机图形学实验二:直线的生成算法的实现

计算机图形学实验二:直线的生成算法的实现

实验二: 直线的生成算法的实现班级 08信计2班学号 20080502055 姓名分数一、实验目的和要求:1.理解直线生成的原理;2.掌握几种常用的直线生成算法;3.利用C实现直线生成的DDA算法。

二、实验内容:1.了解直线的生成原理2、掌握几种基本的直线生成算法: DDA画线法、中点画线法、Bresenham画线法。

3、仿照教材关于直线生成的DDA算法, 编译程序。

4.调试、编译、运行程序。

三、实验过程及结果分析1.直线DDA算法:算法原理:已知过端点P0(x0,y0), P1(x1,y1)的直线段L(P0,P1), 斜率为k=(y1-y0)/(x1-x0), 画线过程从x的左端点x0开始, 向x右端点步进, 步长为1个像素, 计算相应的y坐标为y=kx+B。

计算y i+1 = kx i+B=kx i +B+kx=y i +kx当x=1,yi+1=yi+k, 即当x每递增1, y递增k。

由计算过程可知, y与k可能为浮点数, 需要取y整数, 源程序中round(y)=(int)(y+0.5)表示y四舍五入所得的整数值。

(1)程序代码:#include"stdio.h"#include"graphics.h"void linedda(int x0,int y0,int x1,int y1,int color){int x,dy,dx,y;float m;dx=x1-x0;dy=y1-y0;m=dy/dx;y=y0;for(x=x0;x<=x1;x++){putpixel(x,(int)(y+0.5),color);y+=m;setbkcolor(7);}}main(){int a,b,c,d,e;int graphdriver=DETECT;int graphmode=0;initgraph(&graphdriver,&graphmode,"");a=100;b=100;c=200;d=300;e=5;linedda(a,b,c,d,e);getch();closegraph();}运行结果:2.中点画线算法:假定所画直线的斜率为k∈[0,1], 如果在x方向上增量为1, 则y方向上的增量只能在0~1之间。

实验2 自由落体法测定重力加速度(详写)

实验2  自由落体法测定重力加速度(详写)

《实验2 自由落体法测定重力加速度》实验报告一、实验目的和要求1、学会用自由落体法测定重力加速度;2、用误差分析的方法,学会选择最有利的测量条件减少测量误差。

二、实验描述重力加速度是很重要的物理参数,本实验通过竖直安放的光电门测量自由落体时间来求重力加速度,如何提高测量精度以及正确使用光电计时器是实验的重要环节。

三、实验器材MUJ-5C型计时计数测速仪(精度0.1ms),自由落体装置(刻度精度0.1cm),小钢球,接球的小桶,铅垂线。

四、实验原理实验装置如图1。

在重力实验装作用下,物体的下落运动是匀加速直线运动,其运动方程为s=t+1/2g该式中,s是物体在t时间内下落的距离;是物体运动的初速度;g是重力加速度;若测得s,,t,即求出g值。

若使=0,即物体(小球)从静止释放,自由落体,则可避免测量的麻烦,而使测量公式简化。

但是,实际测量S时总是存在一些困难。

本实验装置中,光电转换架的通光孔总有一定的大小,当小铁球挡光到一定程度时,计时-计数-计频仪才开始工作,因此,不容易确定小铁球经光电转换架时的挡光位置。

为了解决这个问题,采用如下方法:让小球从O点处开始下落,设它到A处速度为,再经过时间到达B处,令AB间距离为,则=同样,经过时间后,小球由A处到达B’处,令AB’间的距离为,则有s2=t2+1/2g化简上述两式,得:图1 实验装置图g=2-)/-t2=2(/-/)/---------------------------------------------(1)上述方法中,,由立柱上标尺读出,巧妙避免了测量距离的困难。

(注:B,B’为同一光电门,只是距离A的远近不同)g的不确定度与光电转换架的位置有关。

根据不确定度的绝对值合成公式,采用求标值的方法来选择最有利的条件,求出最佳操作范围。

经实际推导,得:要使较小,则:①要多次测量后求出;②要尽量小;③B的位置要尽量靠近顶端,B’的位置要尽量靠近底端。

ISA第一次作业

ISA第一次作业

ISA第一次作业
计网1034 25 唐游虎
一、实验要求:
∙1.初识ISA:
安装ISA
初始配置,设置被保护网段
自动服务:嵌入 Mini SQL server ,服务,默认拒绝所有
界面:监视,网络,策略
2.通用配置步骤:
网络模型-网络规则-防火墙策略-测试
3.一个简单的配置:
Client--------------ISA
10.0.0.99/24 10.0.0.100/24
如何设置让client能ping通ISA ?
∙二、实验拓扑结构图:
三、实验步骤:
1、将虚拟机client设置仅本地并设置其IP地址10.0.0.99/24和RRS设置物理链接和仅本地、IP地址为10.0.0.100/24。

二、相互ping下看是否相通!
三、在client虚拟机上安装ISA防火墙。

设置内部网络范围的地址
安装完后点重启。

四、重启电脑后再PING下看二台机子是否能通。

用client ping RRS没能ping通。

五、配置ISA网络原则、使其能ping通ISA
1、打开ISA服务器管理
2、创建网络规则命名为client-ping-rrs。

选择路由并点击下一步!
点击应用!
六.应用后稍等下!再用client ping RRS。

实验完成请老师批阅!。

计网实验

计网实验

(1)ping 127.0.0.1,测试网卡本身。

ping 127.0.0.1,只是表示TCP/IP协议安装正确,网卡没有问题,但不表示网络正常,从本地发送32字节的数据包到127.0.0.1,成功返回,时间间隔小于1毫秒。

(2)ping本网的某主机。

注释:ping 10.50.22.68,本机与10.50.22.64连通,发送32字节的数据包到10.50.22.34,成功返回,时间间隔小于1毫秒。

发送了4个数据包,接收了4个,丢失率百分之零。

TTL是生存时间的意思,就是说这个ping的数据包能在网络上存在多少时间。

当我们对网络上的主机进行ping操作的时候,我们本地机器会发出一个数据包,数据包经过一定数量的路由器传送到目的主机,但是由于很多的原因,一些数据包不能正常传送到目的主机,那如果不给这些数据包一个生存时间的话,这些数据包会一直在网络上传送,导致网络开销的增大。

当数据包传送到一个路由器之后,TTL就自动减1,如果减到0了还是没有传送到目的主机,那么就自动丢失3. 使用arp命令查看地址转换表,记录所显示的地址转换表。

(1)arp –a。

与我相邻的主机Ping过我后将刚ping过的IP及其所对应的mac地址加入到了地址转换表中了。

4. 使用ipconfig命令查看本机网卡参数配置。

5.使用tracert命令跟踪路由,tracert目的主机(域名或IP地址),先跟踪本实验室(即本网中的一台主机),在跟踪一个校内主机,最后跟踪一个学校外主机,并对3个目的主机记录。

踪王婷的机子,跟踪校内网跟踪百度6. 使用netstat命令查看并记录当前正在活动的网络连接的详细信息,如采用的协议类型、当前主机与远端相连主机(一个或多个)的IP地址,以及它们之间的连接状态等显示以太网统计信息和所有协议的统计信息netstat –e -s仅显示tcp udp 协议的统计信息7. pathping命令路由跟踪命令结合了ping和tracert命令的功能,可提供这两个命令都无法提供的附加信息。

中考物理常考实验2——探究固体熔化时温度的变化规律

中考物理常考实验2——探究固体熔化时温度的变化规律

【实验器材】铁架台、酒精灯、石棉网、烧杯、试管、温度计、停表等。

部分器材的作用(1)石棉网:使烧杯底部 受热均匀 。

(2)搅拌器:使固体 受热均匀 。

【实验装置】【实验步骤】按 自下而上 的顺序组装实验仪器,用酒精灯 外焰 对烧杯进行加热,观察海波或石蜡的状态变化和温度计的示数变化,待温度升至40℃左右时,每隔1min 记录一次温度;在海波或石蜡完全熔化后再记录4~5次。

实验操作的注意事项:(1)实验中选用小颗粒固体,原因:①小颗粒固体 受热更均匀 ;②温度计的玻璃泡能与小颗粒固体 充分接触 ,测量的温度更准确 。

(2)实验中采用 水浴法 加热,优点:①被加热的固体 受热均匀 ;②固体物质 温度上升较慢,便于记录各个时刻的温度。

(3)烧杯中水量的要求:不宜过多,水过多会导致加热时间过长,能够 浸没试管中的固体 即可;也不宜太少,水过少不能使试管中装有固体的部分浸没,导致固体受热不均。

(4)试管插入烧杯水中的位置要适当:①试管中装有固体的部分 要浸没在水中 ;②试管不能接触 烧杯底或烧杯壁 。

【实验现象】(1)海波通过加热,温度升高,当温度升至一定数值后,有液态海波出现。

继续加热,更多的固态海波变成液态海波,但温度 保持不变 。

海波完全熔化后,温度继续上升。

(2)石蜡通过加热,温度升高,石蜡先变软,后变稀,最后变成液体。

加热过程中,石蜡的温度 一直升高 。

【实验结论】(1)根据实验数据绘制温度-时间图像:海波熔化时温度变化曲线实验二:探究固体熔化时温度的变化规律考点梳理AB 段:海波为固态,吸收热量,温度升高。

BC 段:海波处于固液共存态,吸收热量,但温度不变。

BC 段:海波为液态,吸收热量,温度升高。

石蜡熔化时温度变化曲线(2)不同物质在熔化过程中温度的变化规律不同。

①晶体(海波)熔化时,持续吸热,温度不变。

②非晶体(石蜡)熔化时,持续吸热,温度升高。

晶体熔化时有固定的熔点,非晶体熔化时没有固定的熔点。

网织红细胞计数实训报告

网织红细胞计数实训报告

一、实训背景网织红细胞是红细胞前体,其计数对于评估骨髓造血功能和红细胞生成情况具有重要意义。

本实训旨在通过学习网织红细胞计数的操作方法,掌握其计数原理和注意事项,提高对血液学检验的认识和技能。

二、实训目的1. 了解网织红细胞计数的基本原理和操作方法。

2. 掌握显微镜下观察和计数网织红细胞的技术。

3. 学会分析网织红细胞计数结果,并应用于临床实践。

三、实训内容1. 网织红细胞计数原理网织红细胞计数是通过染色技术将网织红细胞与成熟红细胞区分开来,然后进行计数。

常用的染色剂有煌焦油蓝、新亚甲蓝等。

染色后,网织红细胞呈现蓝绿色网状或点粒状物质,而成熟红细胞则呈红色。

2. 网织红细胞计数操作方法(1)制备血涂片:取新鲜血液2滴,加入10g/L煌焦油蓝生理盐水溶液2滴,立即混匀,置37℃下15~20分钟。

(2)制片:取1小滴制成薄血涂片,自然干燥。

(3)染色:将染好的血涂片放入染色缸中,用染液染色5~10分钟。

(4)观察:在低倍镜下选择红细胞分布均匀的部位进行观察。

(5)计数:在油镜下计数至少1000个红细胞中的网织红细胞数。

(6)计算:网织红细胞分数 = 计数的网织红细胞数 / 1000网织红细胞绝对值 = 红细胞数× 10^12 / L × 网织红细胞分数3. 注意事项(1)染色时间要适中,过长或过短都会影响计数结果。

(2)观察时要选择红细胞分布均匀的部位,避免计数误差。

(3)计数时要仔细区分网织红细胞与HbH包涵体。

(4)计算时要确保数值准确。

四、实训结果与分析本次实训,我们按照操作步骤进行了网织红细胞计数,并计算出网织红细胞分数和绝对值。

通过对计数结果的分析,我们了解到患者的骨髓造血功能和红细胞生成情况。

五、实训总结通过本次实训,我们掌握了网织红细胞计数的操作方法,了解了其计数原理和注意事项。

同时,我们也认识到,在实际操作中,要严格按照操作步骤进行,确保计数结果的准确性。

此外,我们还学习了如何分析计数结果,并将其应用于临床实践。

最新网络实验二组网实验实验报告

最新网络实验二组网实验实验报告

最新网络实验二组网实验实验报告
实验目的:
1. 掌握网络实验中二组网的基本原理和配置方法。

2. 学习如何通过实验环境搭建和优化网络性能。

3. 理解网络故障诊断的基本流程和处理方法。

实验环境:
1. 硬件设备:交换机、路由器、计算机、网络测试仪器。

2. 软件工具:网络协议分析软件、虚拟局域网(VLAN)配置工具、网络模拟软件。

实验步骤:
1. 设计网络拓扑结构,明确各设备之间的连接关系。

2. 配置交换机和路由器,包括VLAN划分、路由协议配置等。

3. 在计算机上设置IP地址和子网掩码,确保设备间可以通信。

4. 使用网络测试工具进行连通性测试,记录测试结果。

5. 分析网络性能,如传输速率、延迟等,并尝试进行优化。

6. 模拟网络故障,进行故障诊断和恢复操作。

实验结果:
1. 成功搭建了二组网环境,各设备间通信正常。

2. VLAN配置正确,不同VLAN间的隔离效果符合预期。

3. 路由协议配置有效,网络中的路由选择正确。

4. 网络性能测试显示,传输速率和延迟均在可接受范围内。

5. 通过调整配置参数,优化了部分网络性能。

6. 故障模拟和恢复操作顺利,加深了对网络故障处理的理解。

实验结论:
通过本次实验,我们对二组网的搭建、配置和优化有了更深入的理解。

同时,我们也学习到了如何进行网络故障的诊断和处理,这将对我们
未来在网络管理和维护方面的工作大有裨益。

计网二班-企业局域网组建-毕业论文设计

计网二班-企业局域网组建-毕业论文设计

毕业设计论文企业局域网组建学生姓名:李佳彤学号: G130101054系部:电子信息工程系专业:计算机网络技术指导教师:任靖二零一五年一月摘要信息话浪潮风起云涌的今天,企业内部网络的的建设已经成为提升企业核心竞争力的关键因素。

企业网已经越来越多的被人们提到,利用网络技术,现代企业可以在供应商、合作伙伴、员工之间实现优化的信息沟通。

这直接关系到企业能否获得关键竞争优势。

近年来越来越多的企业都在加快建设自身信息网络,而其中绝大多数都是中小型企业。

目前我国企业尤其是中小型网络建设正如火如荼的进行着,本方案以中小型企业内部局域网的组件需求、实际管理为出发点,从中小型企业局域网的管理需求和传统局域网技术入手,研究了局域网技术在企业管理中的应用。

关键词:网络技术企业局域网企业内部网络目录摘要 (1)1.绪论 (3)2.组网方案 (5)3.可行性研究和需求分析 (7)3.1技术可行性 (7)3.1.1NAT技术 (7)3.1.2 VLAN技术 (8)3.2需求分析 (8)3.2.1带宽性能需求 (8)3.2.2网络安全需求 (9)3.2.3应用服务需求 (9)3.3设计所需环境 (9)3.3.1硬件要求 (9)3.3.2软件要求 (9)4.交换模块与接入模块 (10)4.1核心层交换机配置 (10)4.1.1设置核心交换机名称 (10)4.1.2启动三层交换机的路由功能 (10)4.1.3核心交换机接口设置 (10)4.2汇聚层交换机配置 (11)4.2.1设置交换机名称 (11)4.2.2配置G0/1接口 (11)4.2.3默认路由设置 (11)4.3路由器基本参数配置 (11)4.4设置路由器R-2811-A各接口参数 (13)4.5NAT设置 (13)4.5.1设置路由器NA T (14)4.5.2定义内部外接口 (14)4.6路由器的安全问题 (15)4.61对外禁用telnet协议 (15)4.6.2针对DoS攻击的设计 (15)5.配置过程与VPN测试 (16)5.1配置过程 (16)5.2VPN访问连接测试 (16)6.总结 (18)参考文献 (19)致谢 (20)1.绪论1.1课题的背景随着近年来企业信息化建设的不断深入,企业的运作越来越融入计算机网络,企业的沟通、应用、财务、决策、会议等数据流都在企业网络上传输,全球的企业都在快速的进入一个崭新的网络信息时代,企业信息化建设已经成为衡量一个企业实力的重要标志。

HUST-计算机网络实验-socket编程

HUST-计算机网络实验-socket编程

HUST-计算机⽹络实验-socket编程随笔---HUST计⽹实验:socket编程博主⼤三在读,第⼀次写随笔,⽔平有限,就当记录⼀下学习的过程,顺便⾯试前复习项⽬的时候看看。

实验要求:编写⼀个 Web 服务器软件,要求如下:基本要求:1.可配置 Web 服务器的监听地址、监听端⼝和主⽬录(不得写在代码⾥⾯,不能每配置⼀次都要重编译代码);2.能够单线程处理⼀个请求。

当⼀个客户(浏览器,如输⼊“URL:http:// 202.103.2.3/index.html”)连接时创建⼀个连接套接字;3.从连接套接字接收 http 请求报⽂,并根据请求报⽂的确定⽤户请求的⽹页⽂件;4.从服务器的⽂件系统获得请求的⽂件。

创建⼀个由请求的⽂件组成的 http 响应报⽂。

;5.经 TCP 连接向请求的浏览器发送响应,浏览器可以正确显⽰⽹页的内容;⾼级要求:1.能够传输包含多媒体(如图⽚)的⽹页给客户端,并能在客户端正确显⽰;2.在服务器端的屏幕上输出请求的来源(IP 地址、端⼝号和 HTTP 请求命令⾏);3.在服务器端的屏幕上能够输出对每⼀个请求处理的结果;4.对于⽆法成功定位⽂件的请求,根据错误原因,作相应错误提⽰,并具备⼀定的异常情况处理能⼒。

Socket套接字介绍:Socket 是⼀个抽象概念,代表了通信双⽅的端点(Endpoint),通信双⽅通过 Socket 发送或接收数据。

为了将应⽤程序和底层的⽹络通信协议屏蔽开来,采⽤套接字(Socket)这样⼀个抽象概念来作为应⽤程序和底层⽹络之间的应⽤程序编程接⼝(API)。

因为⽹络应⽤程序是进程之间的通信,为了唯⼀的标识通信对等⽅的通信进程,套接字必须包含 2 种信息:(1) 通信对等⽅的⽹络地址。

(2) 通信对等⽅的进程号,通常叫端⼝号。

构造⽅法(常⽤):ServerSocket(int port, int backlog, InetAddress bindAddr) throws IOException。

鼠妇生活实验报告(3篇)

鼠妇生活实验报告(3篇)

第1篇一、实验背景鼠妇,学名Blatta orientalis,是一种常见的陆生节肢动物,隶属于直翅目,蟑螂科。

它们广泛分布于全球各地,尤其在我国,鼠妇作为传统的中药材,具有很高的药用价值。

此外,鼠妇还是生物实验中常用的实验动物,可用于研究生物行为、生理学、生态学等多个领域。

为了解鼠妇的生活习性及其对环境因素的需求,我们开展了本次实验。

二、实验目的1. 探究鼠妇在不同光照条件下的生活习性。

2. 分析鼠妇对不同湿度环境的需求。

3. 了解鼠妇的繁殖习性。

三、实验材料1. 实验动物:鼠妇若干。

2. 实验器材:培养皿、湿度计、温度计、光源、湿度调节装置、显微镜等。

四、实验方法1. 光照实验:将鼠妇分为两组,分别置于阴暗和明亮的环境中,观察其生活习性,记录活动频率、摄食情况等。

2. 湿度实验:将鼠妇分为两组,分别置于高湿度和低湿度环境中,观察其生活习性,记录活动频率、摄食情况等。

3. 繁殖实验:将鼠妇放入培养皿中,观察其繁殖情况,记录产卵次数、孵化时间等。

五、实验步骤1. 光照实验:- 将鼠妇分为两组,每组10只。

- 将一组鼠妇置于阴暗环境中,另一组置于明亮环境中。

- 每日观察并记录鼠妇的活动频率、摄食情况等。

- 连续观察7天,分析结果。

2. 湿度实验:- 将鼠妇分为两组,每组10只。

- 将一组鼠妇置于高湿度环境中(湿度80%以上),另一组置于低湿度环境中(湿度40%以下)。

- 每日观察并记录鼠妇的活动频率、摄食情况等。

- 连续观察7天,分析结果。

3. 繁殖实验:- 将鼠妇放入培养皿中,提供适宜的生活环境。

- 观察并记录鼠妇的产卵次数、孵化时间等。

- 连续观察30天,分析结果。

六、实验结果与分析1. 光照实验:- 在阴暗环境中,鼠妇活动频率较高,摄食情况良好。

- 在明亮环境中,鼠妇活动频率较低,摄食情况较差。

- 结论:鼠妇适宜生活在阴暗环境中,光会影响其生活习性。

2. 湿度实验:- 在高湿度环境中,鼠妇活动频率较高,摄食情况良好。

水位观测实验报告心得(3篇)

水位观测实验报告心得(3篇)

第1篇一、前言水位观测实验是我们学习水文知识的重要环节,通过本次实验,我深刻认识到水位观测在水利、水运、防洪、防涝等领域的应用价值。

以下是我对本次实验的心得体会。

二、实验目的1. 熟悉水位观测的基本原理和操作方法;2. 掌握水位观测仪器的使用技巧;3. 培养团队合作精神,提高实践操作能力;4. 了解水位观测在水利工程中的应用。

三、实验过程1. 实验准备:实验前,我们了解了水位观测的基本原理,熟悉了水位观测仪器的构造和使用方法。

2. 实验操作:实验过程中,我们按照以下步骤进行水位观测:(1)选择合适的观测点,确保观测点的安全性;(2)使用水位观测仪器(如水尺、超声波水位计等)进行水位测量;(3)记录观测数据,包括水位、时间、仪器型号等;(4)分析观测数据,计算日平均水位、月平均水位等。

3. 数据处理:实验结束后,我们对观测数据进行整理和分析,绘制水位变化曲线,计算水位变化趋势。

四、实验心得1. 水位观测的重要性:水位观测是水文测验的基础,对于防洪、抗旱、水资源调度等工作具有重要意义。

通过本次实验,我深刻认识到水位观测在水利工程中的重要作用。

2. 水位观测仪器的使用:在实验过程中,我们使用了水尺、超声波水位计等仪器进行水位观测。

通过实际操作,我掌握了仪器的使用技巧,提高了自己的实践能力。

3. 团队合作:本次实验需要多人协作完成,我们在实验过程中互相帮助,共同解决问题。

这使我认识到团队合作的重要性,也锻炼了我们的团队协作能力。

4. 数据分析:实验结束后,我们对观测数据进行整理和分析,发现水位变化与季节、降雨量等因素密切相关。

这使我明白了数据分析在水位观测中的重要性。

5. 安全意识:在实验过程中,我们始终把安全放在首位,严格遵守实验操作规程,确保实验顺利进行。

五、总结通过本次水位观测实验,我收获颇丰。

不仅掌握了水位观测的基本原理和操作方法,还提高了自己的实践能力和团队合作精神。

在今后的学习和工作中,我将不断积累经验,为我国水利事业贡献自己的力量。

计网-第二章作业

计网-第二章作业

Chapter 2注:括弧之中红色标注为与课本习题对应的编号2.1,2.2节后作业:1.(R2)For a communication session between a pair of processes, which process is the client andwhich is the server?答:The process is always-on host called the server.The process which initiates the communication is the client.2.(R3)What is the difference between network architecture and application architecture?答:Network architecture refers to the organization of the communication process into layers.Application architecture, on the other hand, is designed by an application developer and dicates the broad structure of the application.3.(R4)What information is used by a process running on one host to identify a process runningon another host?答:The IP address of the destination host and the port number of the destination socket.4.(R7)Suppose you wanted to do a transaction from a remote client to a server as fast aspossible. Would you use UDP or TCP? Why?答:We would use UDP. With UDP, the transaction can be completed in one roundtrip time – the client sends the transaction request into a UDP socket, and the server sends the reply back to the client’s UDP socket. With TCP, a minimum of two RTTs are needed – one to set-up the TCP connection, and another for the client to send the request, and for the server to send back the reply.5.(R8)List the four broad classes of services that a transport protocol can provide. For each ofthe service classes, indicate if either UDP or TCP (or both) provides such a service.答:(1)Reliable Data Transfer: TCP provides a reliable byte-stream between client and server butUDP does not.(2)Throughput: A guarantee that a certain value for throughput will be maintained; Neither.(3)Timing: A guarantee that data will be delivered within a specified amount of time;Neither.(4)Security: Neither.6.(R9)Why do HTTP, FTP, SMTP, and POP3 run on top of TCP rather than on UDP?答:The applications associated with those protocols require that all application data be received in the correct order and without gaps. TCP provides this service whereas UDP does not.7.(R11)What is meant by a handshaking protocol?答:A protocol uses handshaking if the two communicating entities first exchange control packetsbefore sending data to each other. SMTP uses handshaking at the application layer whereas HTTP does not.2.3,2.4节后作业8.(R15)Suppose Alice, with a Web-based e-mail account (such as Hotmail or gmail), sends amessage to Bob, who accesses his mail from his mail server using POP3. Discuss how the message gets from Alice's host to Bob's host. Be sure to list the series of application-layer protocols that are used to move the message between the two hosts.答:Message is sent from Alice’s host to her mail server over HTTP. Alice’s mail server then sends the message to Bob’s mail server over SMTP. Bob then transfers the message from his mail server to his host over POP3.9.(R17)From a user's perspective, what is the difference between the download-and-deletemode and the download-and-keep mode in POP3?答:With download and delete, after a user retrieves its messages from a POP server, the messages are deleted. This poses a problem for the nomadic user, who may want to access the messages from many different machines. In the download and keep configuration, messages are not deleted after the user retrieves the messages. This can also be inconvenient, as each time the user retrieves the stored messages from a new machine, all of non-deleted messages will be transferred to the new machine.10.(R18)Is it possible for an organization's Web server and mail server to have exactly the samealias for a hostname (for example,foo. com)? What would be the type for the RR that contains the hostname of the mail server?答:Yes, an organization’s mail server and Web server can have the same alias for a host name.The MX record is used to map the mail server’s host name to its IP address.11.(R19)Why is it said that FTP sends control information "out-of-band"?答:FTP uses two parallel TCP connections, one connection for sending control information and another connection for actually transferring the file. Because the control information is not sent over the same connection that the file is sent over, FTP sends control information out of band.2.5,2.6节后作业12.(P1)True or false?a. A user requests a Web page that consists of some text and three images. For this page, the client will send one request message and receive four response messages.b. Two distinct Web pages (for example, /research.Html and /students. html) can be sent over the same persistent connection.c. With nonpersistent connections between browser and origin server, it is possible for a single TCP segment to carry two distinct HTTP request messages.d. The Date: header in the HTTP response message indicates when the object in the response was last modified.答:a. Fb. Tc. Fd. F13. (P7)Suppose within your Web browser you click on a link to obtain a Web page. The IPaddress for the associated URL is not cached in your local host, so a DNS lookup is necessary to obtain the IP address. Suppose that n DNS servers are visited before your host receives the IP address from DNS; the successive visits incur an RTT of n RTT RTT ,...,1. Further suppose that the Web page associated with the link contains exactly one object, consisting of a small amount of HTML text. Let 0RTT denote the RTT between the local host and the server containing the object. Assuming zero transmission time of the object, how much time elapses from when the client clicks on the link until the client receives the object?答:The time to get IP address is RTT 1+RTT 2+……+RTT n , once the IP address is known, the response time is 2RTT 0+RTT 1+……+RTT n .14. (P8)Referring to Problem P7, suppose the HTML file references three very small objects onthe same server. Neglecting transmission times, how much time elapses witha. Non-persistent HTTP with no parallel TCP connections?b. Non-persistent HTTP with parallel connections?c. Persistent HTTP (with pipelining)?答:a. RTT 1+RTT 2+……+RTT n +2RTT 0+3×2RTT 0=8RTT 0+RTT 1+……+RTT n .b. RTT 1+RTT 2+……+RTT n +2RTT 0+2RTT 0=4RTT 0+RTT 1+……+RTT n .c. RTT 1+RTT 2+……+RTT n +2RTT 0+RTT 0=3RTT 0+RTT 1+……+RTT n .2.7,2.8节后作业15.(P9)Consider Figure2.12, for which there is an institutional network connected to the Internet.Suppose that the average object size is 900,000 bits and that the average request rate from the institution’s browsers to the origin servers is 10 requests per second. Also suppose that the amount of time it takes from when the routers on the Internet side of the access link forwards an HTTP request until it receives the response is two seconds on average (see Section 2.2.5).Model the total average response time as the sum of the average access delay (that is, the delay from Internet router to institution router) and the average Internet delay. For the average access delay, use△/(1-△β), where △is the average time required to send an object over the access link andβis the arrival rate of objects to the access link.a.Find the total average response time.b.Now suppose a cache is installed in institution LAN. Suppose the hit rate is 0.6. Find thetotal response time.答:a.The time to transmit an object of size L over a link or rate R is L/R.The average time is the average size of the object divided by R : △=(900000 bits)/(15000000bits/sec)=0.06secThe traffic intensity on the link is ( 10 requests/sec)(0.06msec/request )=0.6The average access delay is ( 0.06sec )/( 1-0.6 )=0.15secThe total average response time is therefore 0.6sec+2sec=2.15sec.b.The average access delay is ( 0.06sec )/( 1-0.6×0.4 )=0.0456secWith cache and the hit rate is 0.6 , when miss the cache the average response time is0.0456sec+2sec=2.0456secThe average response time is (1-0.6)×2.0456sec=0.832sec16.(P20)In our coverage of an overlay network using query flooding in Section 2.6, we describein some detail how a new peer joins the overlay network. In this problem we want to explore what happens when a peer leaves the overlay network. Suppose every participating peer maintains TCP connections to at least four distinct peers at all times. Suppose Peer X, which has five TCP connections to other peers, wants to leave.a.First consider the case of a graceful departure, that is, Peer X explicitly close itsapplication, thereby graceful closing its five TCP connections. What actions would each of the five formerly connected peers take?b.Now suppose that Peer X abruptly disconnects from the Internet without notifying itsfive neighbors that is closing the TCP connections. What would happen?答:a.Each of the five Gnutella clients immediately learns that it has one less neighbor. Theone of these five clients called A. Suppose A has only three neighbors after X drops out .Then A needs to establish a TCP connection with another peer . A should have a fresh list of active peers; he sequentially contacts peers on this list until one accepts his TCP connection attempt.b.We still use A. A doesn’t immediately know that X has departed. A will only learn aboutX’s departure when it attempts to send a message (query or ping) to X. When A attempts to send a message, A’s TCP will make several unsuccessful attempts to send the message to B. A’s TCP will then inform the Gnutella client that X is down. A will try to establish a TCP connection with a new peer to rebuild a fifth connection.17.(P21)Consider query flooding, as discussed in Section 2.6. Suppose that each peer isconnected to at most N neighbors in the overlay network. Also suppose that the node-count field is initially set to K. Suppose Alice makes a query. Find an upper bound on the number of query messages that are sent into the overlay network.答:The maximum number of query messages is N+NM+NM2+……+NM(K-1=N[(N-1)K-1]/(N-2))附加选做题18.在TCP协议中,为了使通信不致发生混乱,引入了所谓套接字的概念,这里,套接字由( )和IP地址两部分组成。

苹果果脯制备实验报告(3篇)

苹果果脯制备实验报告(3篇)

第1篇一、实验目的1. 学习苹果果脯的制备工艺,掌握果脯的加工方法。

2. 了解果脯的特性和质量要求。

3. 提高实验操作技能,培养严谨的实验态度。

二、实验原理苹果果脯是以苹果为主要原料,通过糖制、烘干等工艺制成的食品。

其制作原理是利用糖的渗透压作用,使果肉中的水分逐渐被糖分取代,从而实现果脯的脱水、保色、保香和防腐。

三、实验材料与仪器1. 实验材料:新鲜苹果、白糖、柠檬酸、食盐。

2. 实验仪器:电子天平、剪刀、煮锅、烤箱、烘盘、温度计、计时器。

四、实验步骤1. 原料处理:将新鲜苹果洗净,去皮去核,切成薄片,厚度约为2-3毫米。

2. 糖制:将切好的苹果片放入煮锅中,加入适量白糖,搅拌均匀。

糖与苹果片的比例为1:1。

3. 煮制:将糖制好的苹果片煮沸,加入适量柠檬酸,继续煮沸5-10分钟。

期间要不断搅拌,防止苹果片粘锅。

4. 烘干:将煮好的苹果片捞出,沥干水分,均匀地铺在烘盘上。

将烘盘放入烤箱,温度控制在50-60℃,烘干时间为2-3小时。

期间要翻动苹果片,使其受热均匀。

5. 装袋:将烘干好的苹果果脯取出,放入食品袋中,封口保存。

五、实验结果与分析1. 实验结果:制备的苹果果脯色泽鲜艳,口感酸甜适中,具有苹果特有的香气。

2. 结果分析:(1)在糖制过程中,加入柠檬酸可以防止苹果片氧化变色,保持果脯的色泽。

(2)在烘干过程中,温度不宜过高,否则容易使果脯表面干燥,内部水分不易排出,影响果脯的质量。

(3)在实验过程中,要确保糖与苹果片的比例为1:1,以保证果脯的口感和品质。

六、实验总结通过本次实验,我们掌握了苹果果脯的制备工艺,了解了果脯的特性和质量要求。

在实验过程中,我们注意了以下几点:1. 严格遵循实验步骤,确保实验结果的准确性。

2. 注意实验过程中的安全操作,防止发生意外事故。

3. 养成严谨的实验态度,不断提高实验操作技能。

本次实验结果表明,苹果果脯具有色泽鲜艳、口感酸甜适中、香气浓郁的特点,具有较高的食用价值。

计网 实验一

计网 实验一

实验一熟悉常用的网络命令实验报告1.实验目的:学会使用常用ping ,ipconfig, nslookup, arp ,tracert等常用网络测试命令检测网络连通、了解网络的配置状态,跟踪路由等相关网络问题。

2实验环境:(1)运行windows 2000/2003/xp操作系统的PC一台。

(2)每台PC机具有一块网卡,通过双绞线与局域网网相连。

(3)局域网能连接Internet。

3.实验步骤:参见实验指导手册内容。

4.实验分析,回答下列问题(1)查看本机TCP/IP协议配置,看你的计算机是通过自动获取IP还是通过手动方式设置IP地址的?写出判断的理由。

是理由:通过ipconfig指令查看信息:自动配置已启用(2)如果是通过手动方式获取IP地址,可以直接读出IP地址,子网掩码,默认网关,首选DNS服务器地址。

填写下表。

如果是采用动态获取IP地址,如何获取完整的TCP/IP配置信息,请写出解决步骤。

并(3)在获取本机IP地址之后,在MS-DOS方式下运行下列Ping命令,填写实验运行结果(附截图)。

(a)ping本机IP地址图注:由ipconfig获知本机IP地址(b)ping 本机IP地址–t图注:Ping –t指令不停发送包,这里通过“Ctrl+C”叫停(c)ping 默认网关–n 6图注:ping –n 6即发送6个数据包(d)ping 本局域网内任意一台主机图注:原理同ping本机IP(4)用nslookup命令从域名地址当中解析出IP地址,从IP地址当中解析出域名地址。

图注:nslookup 域名/IP 可得对应IP/域名(5)利用路由跟踪命令tracert,跟踪到达某个网站(如)的路由信息。

图注:tracert指令用于显示本机访问某个IP所经过的所有网关(6)用netstat命令,显示以太网接口的统计信息,并显示所有已建立好的有效连接。

图注:用以显示以太网接口的统计信息图注:用以显示所有已建立好的有效连接(7)用arp命令查看arp地址映射表,填加一条静态地址映射,并显示结果和操作过程。

计网实验三

计网实验三

自动化与软件学院
课程实验报告
实验课程网络及其计算实验
实验名称 arp命令实验
实验地点软工专业实验室201A 实验时间第五周星期四 1 节到 2 节学生班级
学生学号
学生姓名
指导教师
2020 年 10 月 8 日
实验目的:
(1)掌握arp命令及常用参数的用法。

实验器材:
一台连网的Windows操作系统的PC机。

实验内容:
在PC机命令行使用arp命令及常用参数,观察并分析结果。

实验结果(附数据和图表):
1.显示arp缓存中IP地址和硬件地址的对应关系

2.显示某个指定IP的arp记录
3.显示arp缓存中IP地址和硬件地址的对应关系
4.在详细模式下显示当前的arp选项,所有的无效项和回环接口上的项都将显示
5.添加一条静态路由
6.删除一条静态路由。

云南大学 软件学院 计网实验5

云南大学 软件学院 计网实验5

云南大学软件学院实验报告课程:计算机网络原理实验任课教师:姓名:学号:专业:成绩:实验五、传输层可靠传输协议GBN编程实验报告一、实验目的:1、编程实现简单可靠的数据传输GBN协议,模拟可靠数据传输2、理解TCP协议可靠传输的差错检测、重传、累计确认、定时器的可靠传输策略。

二、实验指导:参考教材。

三、实验要求:编程实现一个GBN传输协议,采用编程语言不限,要求能将发送――接收流程以及处理方法表现出来.附源代码及注释并附上实验结果截图。

#include <stdio.h>/* ******************************************************************ALTERNATING BIT AND GO-BACK-N NETWORK EMULATOR: VERSION 1.1 J.F.KuroseThis code should be used for PA2, unidirectional or bidirectionaldata transfer protocols (from A to B. Bidirectional transfer of datais for extra credit and is not required). Network properties:- one way network delay averages five time units (longer if thereare other messages in the channel for GBN), but can be larger- packets can be corrupted (either the header or the data portion)or lost, according to user-defined probabilities- packets will be delivered in the order in which they were sent(although some can be lost).**********************************************************************/#define BIDIRECTIONAL 0 /* change to 1 if you're doing extra credit *//* and write a routine called B_output *//* a "msg" is the data unit passed from layer 5 (teachers code) to layer */ /* 4 (students' code). It contains the data (characters) to be delivered */ /* to layer 5 via the students transport level protocol entities. */ struct msg {char data[20];};/* a packet is the data unit passed from layer 4 (students code) to layer */ /* 3 (teachers code). Note the pre-defined packet structure, which all */ /* students must follow. */struct pkt {int seqnum;int acknum;int checksum;char payload[20];};/********* STUDENTS WRITE THE NEXT SEVEN ROUTINES *********/#define WINDOWSIZE 8#define MAXBUFSIZE 50#define NOTUSED 0#define NACK -1#define TRUE 1#define FALSE 0#define A 0#define B 1int expectedseqnum; /* expected sequence number at receiver side */ int nextseqnum; /* next sequence number to use in sender side */ int base; /* the head of sender window */struct pkt winbuf[WINDOWSIZE]; /* window packets buffer */int winfront,winrear; /* front and rear points of window buffer */ int pktnum; /* packet number of window buffer */struct msg buffer[MAXBUFSIZE]; /* sender message buffer */int buffront,bufrear; /* front and rear pointers of buffer */int msgnum; /* message number of buffer */int packet_lost =0;int packet_corrupt=0;int packet_sent =0;int packet_correct=0;int packet_resent =0;int packet_timeout=0;void ComputeChecksum(packet){ int checksum; int i; checksum = checksum + packet->acknum;for ( i=0; i<20; i++ )checksum = checksum + (int)(packet->payload[i]); checksum = 0-checksum;packet->checksum = checksum;}struct pkt packet;{int checksum;int i;checksum = packet.seqnum;checksum = checksum + packet.acknum;for ( i=0; i<20; i++ )checksum = checksum + (int)(packet.payload[i]);if ( (packet.checksum+checksum) == 0 )return (FALSE);elsereturn (TRUE);}/* called from layer 5, passed the data to be sent to other side */A_output(message){ int i;struct pkt sendpkt;/* if window is not full */if ( nextseqnum < base+WINDOWSIZE ) {printf("----A: New message arrives, send window is not full, send new messge to layer3!\n");/* create packet */sendpkt.seqnum = nextseqnum;sendpkt.acknum = NOTUSED;for ( i=0; i<20 ; i++ )sendpkt.payload[i] = message.data[i];/* computer checksum */ComputeChecksum (&sendpkt);/* send out packet */tolayer3 (A, sendpkt);/* copy the packet to window packet buffer */winrear = (winrear+1)%WINDOWSIZE;pktnum ++;winbuf[winrear] = sendpkt;for (i=0; i<20; i++)winbuf[winrear].payload[i]= sendpkt.payload[i];/* if it is the first packet in window, start timeout */if ( base == nextseqnum ) {starttimer(A,RTT);printf("----A: start a new timer!\n");}/* update state variables */nextseqnum = nextseqnum+1;}/* if window is full */else {printf("----A: New message arrives, send window is full,");/* if buffer full, give up and exit*/if ( msgnum == MAXBUFSIZE) {printf (" Error: Sender buffer is full! \n");exit (1);}/* otherwise, buffer the message */else {printf("buffer new message!\n");bufrear = (bufrear+1) % MAXBUFSIZE;for (i=0; i<20; i++)buffer[bufrear].data[i] = message.data[i];msgnum ++;}} }B_output(message) /* need be completed only for extra credit */struct msg message;{}/* called from layer 3, when a packet arrives for layer 4 */A_input(packet){ int i;/* if received packet is not corrupted and ACK is received */if ( (CheckCorrupted(packet) == FALSE) && (packet.acknum != NACK) ) { printf("----A: ACK %d is correctly received,",packet.acknum);packet_correct++;/* delete the acked packets from window buffer */winfront = (winfront+(packet.acknum+1-base)) % WINDOWSIZE;pktnum = pktnum - (packet.acknum+1-base);/* move window base */base = packet.acknum+1;stoptimer(A);if ( base < nextseqnum) {starttimer(A,RTT);printf ("send new packets!\n");}/* if buffer is not empty, send new packets */while ( (msgnum!=0) && (nextseqnum<base+WINDOWSIZE) ) {/* create packet */sendpkt.seqnum = nextseqnum;sendpkt.acknum = NOTUSED;buffront = (buffront+1) % MAXBUFSIZE;for ( i=0; i<20 ; i++ )sendpkt.payload[i] = buffer[buffront].data[i];/* computer checksum */ComputeChecksum (&sendpkt);/* if it is the first packet in window, start timeout */ if ( base == nextseqnum ){starttimer(A,RTT);printf ("send new packets!\n");}/* send out packet */tolayer3 (A, sendpkt);/* copy the packet to window packet buffer */winrear = (winrear+1)%WINDOWSIZE;winbuf[winrear] = sendpkt;pktnum ++;/* update state variables */nextseqnum = nextseqnum+1;/* delete message from buffer */msgnum --;}}elseprintf ("----A: NACK is received, do nothing!\n");}/* called when A's timer goes off */{int i;printf("----A: time out,resend packets!\n");/* start timer */starttimer(A,RTT);/* resend all packets not acked */for ( i=1; i<=pktnum; i++ ) {packet_resent++;tolayer3(A,winbuf[(winfront+i)%WINDOWSIZE]);}}/* the following routine will be called once (only) before any other */ /* entity A routines are called. You can use it to do any initialization */ A_init(){buffront = 0;bufrear = 0;msgnum = 0;winfront = 0;winrear = 0;pktnum = 0;}/* Note that with simplex transfer from a-to-B, there is no B_output() *//* called from layer 3, when a packet arrives for layer 4 at B*/B_input(packet){ int i;/* if not corrupted and received packet is in order */if ( (CheckCorrupted(packet) == FALSE) && (packet.seqnum == expectedseqnum)){ printf("----B: packet %d is correctly received, send ACK!\n",packet.seqnum);/* send an ACK for the received packet *//* create packet */sendpkt.seqnum = NOTUSED;sendpkt.acknum = expectedseqnum;for ( i=0; i<20 ; i++ )sendpkt.payload[i] = '0';/* computer checksum */ComputeChecksum (&sendpkt);/* send out packet */tolayer3 (B, sendpkt);/* update state variables */expectedseqnum = expectedseqnum+1;/* deliver received packet to layer 5 */tolayer5(B,packet.payload);}/* otherwise, discard the packet and send a NACK */else {printf("----B: packet %d is corrupted or not I expects, send NACK!\n",packet.seqnum);/* create packet */sendpkt.seqnum = NOTUSED;sendpkt.acknum = NACK;for ( i=0; i<20 ; i++ )sendpkt.payload[i] = '0';/* computer checksum */ComputeChecksum (&sendpkt);/* send out packet */tolayer3 (B, sendpkt);}}/* called when B's timer goes off */{}{expectedseqnum = 0;}/********************************************************************************** NETWORK EMULATION CODE STARTS BELOW ***********The code below emulates the layer 3 and below network environment:- emulates the tranmission and delivery (possibly with bit-level corruption and packet loss) of packets across the layer 3/4 interface- handles the starting/stopping of a timer, and generates timerinterrupts (resulting in calling students timer handler).- generates message to be sent (passed from later 5 to 4)THERE IS NOT REASON THAT ANY STUDENT SHOULD HAVE TO READ OR UNDERSTANDTHE CODE BELOW. YOU SHOLD NOT TOUCH, OR REFERENCE (in your code) ANYOF THE DATA STRUCTURES BELOW. If you're interested in how I designedthe emulator, you're welcome to look at the code - but again, you should have to, and you defeinitely should not have to modifyint eventity; /* entity where event occurs */struct pkt *pktptr; /* ptr to packet (if any) assoc w/ this event */ struct event *prev;struct event *next;};struct event *evlist = NULL; /* the event list *//* possible events: */#define TIMER_INTERRUPT 0#define FROM_LAYER5 1#define FROM_LAYER3 2#define OFF 0#define ON 1#define A 0#define B 1int TRACE = 1; /* for my debugging */int nsim = 0; /* number of messages from 5 to 4 so far */ int nsimmax = 0; /* number of msgs to generate, then stop */ float time = 0.000;float lossprob; /* probability that a packet is dropped */float corruptprob; /* probability that one bit is packet is flipped */ float lambda; /* arrival rate of messages from layer 5 */ int ntolayer3; /* number sent into layer 3 */int nlost; /* number lost in media */int ncorrupt; /* number corrupted by media*/main(){char c;init();A_init();B_init();while (1){eventptr = evlist; /* get next event to simulate */if (eventptr==NULL)goto terminate;evlist = evlist->next; /* remove this event from event list */ if (evlist!=NULL)evlist->prev=NULL;if (TRACE>=2){printf("\nEVENT time: %f,",eventptr->evtime);printf(" type: %d",eventptr->evtype);if (eventptr->evtype==0)printf(", timerinterrupt ");else if (eventptr->evtype==1)printf(", fromlayer5 ");elseprintf(", fromlayer3 ");printf(" entity: %d\n",eventptr->eventity);}time = eventptr->evtime; /* update time to next event time */ if (nsim==nsimmax)break; /* all done with simulation */ if (eventptr->evtype == FROM_LAYER5 ){generate_next_arrival(); /* set up future arrival *//* fill in msg to give with string of same letter */j = nsim % 26;for (i=0; i<20; i++)msg2give.data[i] = 97 + j;if (TRACE>2) {printf(" MAINLOOP: data given to student: ");for (i=0; i<20; i++)printf("%c", msg2give.data[i]);printf("\n");}nsim++;if (eventptr->eventity == A)A_output(msg2give);elseB_output(msg2give);}else if (eventptr->evtype == FROM_LAYER3){pkt2give.seqnum = eventptr->pktptr->seqnum;pkt2give.acknum = eventptr->pktptr->acknum;pkt2give.checksum = eventptr->pktptr->checksum;for (i=0; i<20; i++)pkt2give.payload[i] = eventptr->pktptr->payload[i];if (eventptr->eventity ==A) /* deliver packet by calling */A_input(pkt2give); /* appropriate entity */elseB_input(pkt2give);free(eventptr->pktptr); /* free the memory for packet */ }else if (eventptr->evtype == TIMER_INTERRUPT){if (eventptr->eventity == A)A_timerinterrupt();elseB_timerinterrupt();}else{printf("INTERNAL PANIC: unknown event type \n");}free(eventptr);}terminate:printf(" Simulator terminated at time %f\n after sending %d msgs from layer5\n",time,nsim);printf(" correctly sent pkts: %d \n", packet_correct);printf(" resent pkts: %d \n", packet_resent);}init() /* initialize the simulator */{int i;float sum, avg;float jimsrand();FILE *fp;fp = fopen ("parameter.txt","r");printf("----- Stop and Wait Network Simulator Version 1.1 -------- \n\n"); printf("Enter the number of messages to simulate: ");fscanf(fp,"%d",&nsimmax);scanf("%d",&nsimmax);printf("Enter packet loss probability [enter 0.0 for no loss]:");fscanf(fp, "%f",&lossprob);scanf("%f",&lossprob);printf("Enter packet corruption probability [0.0 for no corruption]:");fscanf(fp,"%f",&corruptprob);scanf("%f",&corruptprob);printf("Enter average time between messages from sender's layer5 [ > 0.0]:"); fscanf(fp,"%f",&lambda);scanf("%f",&lambda);printf("Enter TRACE:");fscanf(fp,"%d",&TRACE);scanf("%d",&TRACE);srand(9999); /* init random number generator */sum = 0.0; /* test random number generator for students */for (i=0; i<1000; i++)sum=sum+jimsrand(); /* jimsrand() should be uniform in [0,1] */avg = sum/1000.0;if (avg < 0.25 || avg > 0.75) {printf("It is likely that random number generation on your machine\n" ); printf("is different from what this emulator expects. Please take\n");printf("a look at the routine jimsrand() in the emulator code. Sorry. \n"); exit(1);}ntolayer3 = 0;nlost = 0;ncorrupt = 0;time=0.0; /* initialize time to 0.0 */generate_next_arrival(); /* initialize event list */}/****************************************************************************//* jimsrand(): return a float in range [0,1]. The routine below is used to *//* isolate all random number generation in one location. We assume that the*//* system-supplied rand() function return an int in therange [0,mmm] *//****************************************************************************/ float jimsrand(){double mmm = 65535; /* largest int 2147483647 65535 - MACHINE DEPENDENT!!!!!!!! */float x; /* individual students may need to change mmm */x = rand()/mmm; /* x should be uniform in [0,1] */return(x);}/********************* EVENT HANDLINE ROUTINES ****2147483647***//* The next set of routines handle the event list *//*****************************************************/generate_next_arrival(){double x,log(),ceil();struct event *evptr;char *malloc();float ttime;int tempint;if (TRACE>2)printf(" GENERATE NEXT ARRIVAL: creating new arrival\n");x = lambda*jimsrand()*2; /* x is uniform on [0,2*lambda] *//* having mean of lambda */evptr = (struct event *)malloc(sizeof(struct event));evptr->evtime = time + x;evptr->evtype = FROM_LAYER5;if (BIDIRECTIONAL && (jimsrand()>0.5) )evptr->eventity = B;elseevptr->eventity = A;insertevent(evptr);}struct event *p;{struct event *q,*qold;if (TRACE>2){printf(" INSERTEVENT: time is %lf\n",time);printf(" INSERTEVENT: future time will be %lf\n",p->evtime);}q = evlist; /* q points to front of list in which p struct inserted */ if (q==NULL){ /* list is empty */evlist=p;p->next=NULL;p->prev=NULL;}else{for (qold = q; q !=NULL && p->evtime > q->evtime; q=q->next)qold=q;if (q==NULL){ /* end of list */qold->next = p;p->prev = qold;p->next = NULL;}else if (q==evlist){ /* front of list */p->next=evlist;p->prev=NULL;p->next->prev=p;evlist = p;}else{ /* middle of list */p->next=q;p->prev=q->prev;q->prev->next=p;q->prev=p;}}}{struct event *q;int i;printf("--------------\nEvent List Follows:\n");for(q = evlist; q!=NULL; q=q->next) {printf("Event time: %f, type: %d entity: %d\n",q->evtime,q->evtype,q->eventity);}printf("--------------\n");}int AorB; /* A or B is trying to stop timer */{struct event *q,*qold;if (TRACE>2)printf(" STOP TIMER: stopping timer at %f\n",time);/* for (q=evlist; q!=NULL && q->next!=NULL; q = q->next) */for (q=evlist; q!=NULL ; q = q->next)if ( (q->evtype==TIMER_INTERRUPT && q->eventity==AorB) ) {/* remove this event */if (q->next==NULL && q->prev==NULL)evlist=NULL; /* remove first and only event on list */else if (q->next==NULL) /* end of list - there is one in front */q->prev->next = NULL;else if (q==evlist) { /* front of list - there must be event after */ q->next->prev=NULL;evlist = q->next;}else { /* middle of list */q->next->prev = q->prev;q->prev->next = q->next;}free(q);return;}printf("Warning: unable to cancel your timer. It wasn't running.\n");starttimer(AorB,increment)int AorB; /* A or B is trying to stop timer */float increment;{struct event *q;struct event *evptr;char *malloc();if (TRACE>2)printf(" START TIMER: starting timer at %f\n",time);/* be nice: check to see if timer is already started, if so, then warn */ /* for (q=evlist; q!=NULL && q->next!=NULL; q = q->next) */for (q=evlist; q!=NULL ; q = q->next)if ( (q->evtype==TIMER_INTERRUPT && q->eventity==AorB) ) {printf("Warning: attempt to start a timer that is already started\n"); return;}/* create future event for when timer goes off */evptr = (struct event *)malloc(sizeof(struct event));evptr->evtime = time + increment;evptr->evtype = TIMER_INTERRUPT;evptr->eventity = AorB;insertevent(evptr);}tolayer3(AorB,packet)int AorB; /* A or B is trying to stop timer */struct pkt packet;{struct pkt *mypktptr;struct event *evptr,*q;char *malloc();float lastime, x, jimsrand();int i;ntolayer3++;/* simulate losses: */if (jimsrand() < lossprob){nlost++;if (TRACE>0)printf(" TOLAYER3: packet being lost\n");return;}/* make a copy of the packet student just gave me since he/she may decide */ /* to do something with the packet after we return back to him/her */ mypktptr = (struct pkt *)malloc(sizeof(struct pkt));mypktptr->seqnum = packet.seqnum;mypktptr->acknum = packet.acknum;mypktptr->checksum = packet.checksum;for (i=0; i<20; i++)mypktptr->payload[i] = packet.payload[i];if (TRACE>2){printf(" TOLAYER3: seq: %d, ack %d, check: %d ", mypktptr->seqnum, mypktptr->acknum, mypktptr->checksum);for (i=0; i<20; i++)printf("%c",mypktptr->payload[i]);printf("\n");}/* create future event for arrival of packet at the other side */evptr = (struct event *)malloc(sizeof(struct event));evptr->evtype = FROM_LAYER3; /* packet will pop out from layer3 */evptr->eventity = (AorB+1) % 2; /* event occurs at other entity */evptr->pktptr = mypktptr; /* save ptr to my copy of packet *//* finally, compute the arrival time of packet at the other end.medium can not reorder, so make sure packet arrives between 1 and 10time units after the latest arrival time of packetscurrently in the medium on their way to the destination */lastime = time;/* for (q=evlist; q!=NULL && q->next!=NULL; q = q->next) */for (q=evlist; q!=NULL ; q = q->next)if ( (q->evtype==FROM_LAYER3 && q->eventity==evptr->eventity) ) lastime = q->evtime;evptr->evtime = lastime + 1 + 9*jimsrand();/* simulate corruption: */if (jimsrand() < corruptprob){ncorrupt++;if ( (x = jimsrand()) < .75)mypktptr->payload[0]='Z'; /* corrupt payload */else if (x < .875)mypktptr->seqnum = 999999;elsemypktptr->acknum = 999999;if (TRACE>0)printf(" TOLAYER3: packet being corrupted\n");}if (TRACE>2)printf(" TOLAYER3: scheduling arrival on other side\n");insertevent(evptr);}int AorB;char datasent[20];{int i;if (TRACE>2) {printf(" TOLAYER5: data received: ");for (i=0; i<20; i++)printf("%c",datasent[i]);printf("\n");}}函数结构解释:函数其他部分定义在每个函数后面一坐定义,此处只给出main函数部分的函数结构。

组成原理实验

组成原理实验

二、实验目的
1. 掌握移位寄存器74198、ALU74181的工作原理及使用 方法; 2. 掌握进位产生电路、累加器A及判零电路、暂存器和 缓存器的工作原理及实现方法; 3. 掌握单累加器结构运算器的工作原理和实现方法.
三、实验要求
从K16-K23输入被加数和加数, 将运算结果经累加器和
BUFFER输出到数据总线上, 最终从L16-L23显示出来, 并
四、实验原理
J23
J22
3. 信号线的处理
J23.RC’=0 读内存 J23.WC’=0 写内存 M6=1, PC0=0 PO实验仪主脉冲, 按 STEP或STRT时产生 周期为0.26ms的脉冲 J5 J22
Ф
J23 =1 J4
(PO)
五、实验步骤
(一)按数据地址读写 1. 按照实验原理图连线, 使DR=1保证实验计算机处于运行状态 2. 送双字节指令和跳转地址到内存: 从控制台将D1(02H)、 D2(02H)写入内存中两个连续单元(如102H、103H), 再在D1、D2 组合的地址(本例为202H)写入任意数. 3. 送第一字节到IR1: 在控制台输入指令首地址(本例102H), 读内 存单元数据到IR1(GI=0, CL’=0, RC’=0, OI=1, P+1=1, LP=0), 按 STEP, 观察I0-I7上的数据; 4. 送第二字节到IR2: 设开关 (GI=1, CL’=1, RC’=0, OI=1, P+1=1, LP=0), 按STEP; 5. 从数据地址读出数据: 将IR1和IR2合并后的11位地址送IAB (GI=0, CL’=0, RC’=0, OI=0, P+1=0, LP=0) 上后, 按STEP, 数据被 送入IR1输出到I0-I7上, 观察其正确性.
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一.实验设备
Windows 系统PC一台
二.实验内容
1)熟练掌握通过命令提示符(DOS)界面输入指令。

2)熟悉多种常用的网络命令。

三.实验步骤
1)DOS基本命令
(1)单击“开始”“运行”,键入cmd。

(2)分别使用如下DOS命令:
dir、dir/?、dir/w、dir/ad、dir/oe、dir/o-s、dir/os、cls、mkdir、cd、copy、del、rmdir、time、help
dir 显示目录中的文件和子目录列表dir/? 在命令提示符显示帮助
dir/w 用宽列表显示dir/ad 显示目录
dir/oe 按扩展名排序显示dir/o-s 按大小(从大到小)显示
dir/os 按大小(从小到大)显示cls 清屏
mkdir 创建目录或子目录cd 改变或显示当前目录
copy 复制一个或一组文件到指定磁盘或目录del 删除指定磁盘或目录的一个或一组文件rmdir 删除目录time 显示和设置DOS的系统时间
help 显示有关某个命令的详细信息
2)ipconfig命令
(1)分别使用ipconfig、ipconfig/all、ipconfig/flushdns、ipconfig/displaydns、ipconfig/renew、ipconfig/?命令。

请在实验报告中分别解释以上每条DOS命令的作用是什么?
ipconfig 显示所有适配器的IP 地址、子网
掩码、默认网关ipconfig/all 示所有适配器的完整TCP/IP 配置
信息
(2)解释DHCP协议的作用。

如何通过ipconfig命令查看与DHCP相关的参数?
答:DHCP协议用于对接入新网的主机进行自动协议配置。

可以使用命令ipconfig/all查看与DHCP相关的参数。

(2)解释DNS的作用。

如何通过ipconfig命令查看与DNS相关的参数?
答:DNS是域名系统,可以将域名解析成IP地址。

同样可以使用ipconfig/all查看与DNS相关的参数。

3)ping命令
(1)分别使用如下命令:
ping
ping –t
ping –n 6
ping –l 50
ping –r 5
(2)解释以上命令的作用。

(3)如果出现数据包丢失,是什么原因?
答:路由器繁忙,数据包超时被丢弃。

4)tracert命令和pathping命令
(1)分别使用如下命令:
tracert
tracert
解释以上命令的作用,并对比以上两条命令的结果有何区别?为什么?
(2)回到宿舍后再次使用以上2条命令,请回答在实验室使用与在宿舍使用的结果有什么不同?为什么?
答:通过递增“生存时间(TTL)”字段的值将“Internet 控制消息协议(ICMP) 回响请求”消息发送给目标可确定到达目标的路径。

所显示的路径是源主机与目标主机间的路径中的路由器的近侧路由器接口列表。

近侧接口是距离路径中的发送主机最近的路由器的接口。

使用tracert 可以将路径所有路由器显示,因为其终点;
而使用tracert 只能显示请求超时,因为其终点不可达。

(3)分别使用如下命令:
tracert –d
tracert –h 5
pathping –q 5 –w 5
pathping –q 5 –w 5
为什么使用“-d”参数?如果有一些节点出现“time out”,-w参数有什么作用?
答:使用“-d”参数可以防止tracert 试图将中间路由器的IP 地址解析为它们的名称。

这样可加速显示tracert 的结果。

使用“-w”参数可以指定等待“ICMP 已超时”或“回响答复”消息(对应于要接收的给定“回响请求”消息)的时间(以毫秒为单位)。

如果超时时间内未收到消息,则显示一个星号(*)。

默认的超时时间为4000(4 秒)。

5)netstat命令
(1)分别使用如下命令:
netstat、netstat –b、netstat –a、netstat –n、netstat –e、netstat –e 5、netstat –s
回答netstat命令的作用是什么?-b、-a、-n、-e、-s等参数的作用分别是什么?
(2)如何使用netstat命令查看不同协议的统计结果?如IP、TCP、UDP协议。

答:使用命令“netstat –p –s ”可以查看不同协议的统计结果。

(3)使用netstat –r命令,回答这条命令的作用?
答:可以显示IP 路由表的内容。

6)nslookup命令
(1)分别使用如下命令:
nslookup
nslookup
nslookup
(2)回答问题:
A) 为什么有时候一个域名会对应多个IP地址?
答:可能网站有多个服务器,IP与服务器不是以对应的关系。

B)为什么查询,而实际查询的是?
答:是的别名。

C)为什么使用别名(aliases)?
答:因为163的服务器可能不止有一个,有其他服务器分布在其他地方,而别名则映射其他服务器。

7)arp命令
(1)分别使用如下命令:
A)arp –a
B)arp –s 127.0.0.2 11-22-33-44-55-66、arp –a
C)arp –d 127.0.0.2、arp –a
(2)回答下列问题:
A)为什么需要MAC地址和IP地址?仅用IP地址行不行?
答:不行。

IP地址用在网络层,用于数据报选择路由的过程;而MAC地址用在数据链路层,用于发送和接收数据帧。

B)可以改变MAC地址吗?如何改变?
答:有两种方法,一种是硬件修改,直接换一个网卡;一种是软件修改。

8)net命令
(1)分别使用如下命令:
A)net user
B)net config workstation
C)net user/add “NewUser”“Password”、net user
D)net user/delete NewUser、net user
回答以上命令的作用分别是什么?
(2)自己使用“net start”、“net stop”和“net view”命令,请解释他们的作用分别是什么?
答:Net start:启动服务,或显示已启动服务的列表。

Net stop:停止Windows NT 网络服务。

Net view:显示域列表、计算机列表或指定计算机的共享资源列表。

相关文档
最新文档