《arq协议实验报告》由会员分享,可在线阅读,更多相关《arq协议实验报告(14页珍藏版)》请在金锄头文库上搜索。
1、arqarq 协议实验报告协议实验报告篇一:通信网络基础实验报告通信网络基础实验完成时间:报告学号:。 。 。 姓名:。 。 。 专业:通信工程 指导老师:孙恩昌 XX-12-27 目录一实验目的 .3二实验内容 .3三实验原理 .3四实现停等式 ARQ 实验过程及结果: . 5五实现返回 n-ARQ 实验过程及结果: 7六实现选择重发式 ARQ 过程及结果: . 8七心得体会 .10一实验目的1理解数据链路层 ARQ 协议的基本原理2.用算法实现四种不同形式的 ARQ 重传协议:停等式ARQ、返回 n-ARQ、选择重发式 ARQ 和 ARPANET ARQ。3.提高分析和解决问题的能力和提高
2、程序语言的实现能力二实验内容:1.根据停等式 ARQ 协议基本理论,编写协议算法,进行仿真;2.根据返回 N-ARQ 协议基本理论,编写协议算法,进行仿真;3.根据选择重传 ARQ 协议基本理论,编写协议算法,进行仿真;4.根据并行等待 ARQ 协议基本理论,编写协议算法,进行仿真三实验原理1.停等式 ARQ:在开始下一帧传送出去之前,必须确保当前帧已被正确接受。假定 A 到 B 的传输链路是正向链路,则 B 到 A 的链路称为反向链路。在该链路上 A 要发送数据帧给 B,具体的传送过程如下:发送端发出一个包后,等待 ACK,收到 ACK ,再发下一个包,没有收到 ACK、超时,重发重发时,如
3、果 ACK 不编号,因重复帧而回复的ACK,可能被错认为对其它帧的确认。 2. 返回 n-ARQ:发送方和接收方状态示意图返回 n-ARQ 方案的特点如下: (1) 发送方连续发送信息帧,而不必等待确认帧的返回;(2) 在重发表中保存所发送的每个帧的备份;(3) 重发表按先进先出(FIFO)队列规则操作;(4)接收方对每一个正确收到的信息帧返回一个确认帧,每一个确认帧包含一个惟一的序号,随相应的确认帧返回;(5)接收方保存一个接收次序表,包含最后正确收到的信息帧的序号。当发送方收到相应信息帧的确认后,从重发表中删除该信息帧的备份;(6)当发送方检测出失序的确认帧(即第 N 号信息帧和第 N+2
4、 号信息帧的确认帧已返回,而 N+1 号的确认帧未返回)后,便重发未被确认的信息帧 3. 选择重发式 ARQ:选择重发 ARQ 与返回 ARQ 的思路相同,但仅仅重发有错误的帧。发送方和接收方的设计流程如下:4. ARPANET ARQ 采用了 8 个并行等待式 ARQ四实现停等式 ARQ 实验过程及结果:1. 发送端算法:(1)SN = 0(2)从高层接收数据,分配一个序号(3)发送第 SN 号帧(4)等待接收端的确认信号(5)给定时间内收到确认帧,如果 RN SN,设 RN为 SN,发送该篇二:中南大学移动通信实验报告实 验 报 告 课程名称: 移动通信 姓名 班级 学号 地点 指导老师
5、实验名称:服务发现的功能 一、实验环境每 2 台 PC 为一组。硬件:SEMIT TTP66022 块;串口连接线 2 根。软件:OS:Windows XX;显示设置:Windows 标准字体;分辨率:1024768。二、实验目的通过具体的蓝牙服务发现协议:了解网络的服务发现方式;了解数据的表示方式;掌握服务发现的工作流程;掌握典型的客户服务器工作模式三、实验原理1.服务发现的功能对于蓝牙设备来说,要想访问另一个设备的服务,必须知道该设备所提供的服务,以及获取该服务的一些信息(如该服务使用的各种协议栈、服务名称、服务提供者和获得服务所需要的参数) 。常用的服务发现方式:服务定位协议 SLP(S
6、ervice Location Protocol)通用即插即用 UPnP(Universal Plug and Play)蓝牙 SIG 专门为蓝牙系统制定了一个服务发现协议SDP(Service Discovery Protocol) ,它非常适合蓝牙系统移动性较强的的特点,并且可以和其它服务发现协议共存于蓝牙环境中,符合蓝牙系统开放性的特点。蓝牙服务发现协议的基本出发点是发现服务但不提供对服务的访问,对服务的访问需要通过其它协议来实现。2.客户机-服务器模型客户机服务器交互是大多数网络通信的基础模式。客户机发送请求,等待响应。 而服务器等待请求并完成基于请求的动作,形成响应的数据包,返回给客
7、户机。服务发现协议是典型的客户机服务器模型。每个服务发现协议分为客户端部分和服务器端部分,两部分在不同的蓝牙设备上工作。 一个蓝牙设备可以既是服务器同时又是客户机。请求服务的蓝牙设备运行服务发现协议的客户端部分,提供服务的蓝牙设备运行服务发现协议的服务器端部分。3.数据元的编解码编码过程:将服务记录用数据元格式表示出来,在注册函数中调用。解码过程:将查询返回的服务属性数据元解析成可以理解的服务记录形式,用树形结构给出。4.PDU 交互的工作流程SDP 定义了 2 种获取服务信息的方式:查找服务方式:在用户知道服务的 UUID 的情况下,用户通过指定服务类型(ServiceSearchPatte
8、rn)来直接获得服务记录信息;服务发现协议的服务器端是根据服务类型来找与用户所要求的服务相匹配的服务记录的,它是唯一的查找服务的手段。浏览服务方式:不知道服务的 UUID,浏览各个服务记录;为了支持该方式,服务记录必须含有 Browse Group List 属性,该属性说明了该服务属于何种浏览组。3(1)ServiceSearch Transaction 方式 (2)ServiceAttribute Transaction 方式(3)ServiceSearchAttribute Transaction 方式四、实验内容1.实验流程在服务器端注册本机的服务记录客户端查询服务器已注册的服务记录服
9、务属性:客户端服务发现:2.实验分析本次试验中观察了客户机发起请求,服务器端给出响应的过程,比较了不同的服务查找方式,更好的理解了服务发现的原理。五、实验思考1.网络通信中为什么需要服务发现的协议部分?答:网络通信中,协议为连接不同的操作系统和不同的硬件体系结构的互联网络提供通信支篇三:计算机网络课程设计实验报告实 验 报 告 课程名称:计算机网络 实验名称:ARQ 协议模拟实现 系院:信息科学与技术学院信息安全专业 实验日期:XX-4-20 班级:0405403实验报告日期:XX-5-10 姓名:乔来阳 学号:040540312 同组人:无老师批阅签字:_实验内容:编写两个计算机程序 p1,
10、p2。p1 模拟发送方:首先从界面读取待发送字符(每接受一个字符的输入) ,保存到文件 exe1.txt 中,并启动计时器;p2 模拟接收方,它从 exe1.txt 中查找是否有新字符到来,并提供模拟界面给用户选择:1. Ack接收该字符2. NAK-丢弃3. 无反应-导致超时将用户选择的结果记录到 exe2.txt 中;接收的字符保存到 exe3.txt 中。由于可视化操作不精通,这次实验过程在 C+环境下模拟运行。 运行环境:Visual C+ 6.0编程思路:新建三个文本文件,每次运行程序开始阶段使系统随机产生 100 个随机数,并使其转化为字符格式,让 P1 从界面读取字符,输送到 e
11、xe1,txt 文件中。并启动计时器记录传输时间。读入 exe1.txt,若发现有新字符,则提供模拟界面给用户选择接收还是丢弃;若无反应,则输出超时信息。将用户选择的结果记录到 exe2.txt 中;接收的字符保存到 exe3.txt 中。文本文件读写一律采用追加模式。 实验步骤: 1.分析 ARQ 协议模拟实现的一般流程,画出流程图:2.结合 C+文件操作部分编写源程序: 源程序如下: #include “iostream.h“ #include “fstream.h“ #include “stdlib.h“ #include “iomanip.h“(ARQ 协议流程图)#include “
12、time.h“#include “string.h“ void main()long curtime_front_Sender, curtime_rear_Sender, curtime_front_Receiver, curtime_rear_Receiver; curtime_front_Receiver=time(NULL);/定义时钟char ch,choice,str4, array100; int i,tag=0;/定义开关变量fstream file1; fstream file2; fstream file3; cout cout file2.open(“exe2.txt“,i
13、os:in|ios:out|ios:app); if(file2.fail()cout file3.open(“exe3.txt“,ios:in|ios:out|ios:app); if(file3.fail()cout exit(0); cout cout cinchoice; switch(choice)case 1: for(i=0;i arrayi=a+rand()%26; cout file1.close();cout case 2:if(tag=1)cout cout cin.ignore(); cin.getline(str,4); if(strcmp(str,“Ack“)=0)
14、file1.open(“exe1.txt“,ios:in|ios:out|ios:app); file1.get(ch); while(!file1.eof() file3.put(ch);curtime_rear_Receiver=time(NULL);if(curtime_rear_Receiver-curtime_front_Receiver1)/超时是否判断curtime_front_Receiver=time(NULL); continue; file2 file1.get(ch);cout else if(strcmp(str,“NAk“)=0) cout else if(strc
15、mp(str,“NAk“)!=0 else if(tag=0) cout break;default:cout while(choice!=3); file1.close();file2.close();file3.close(); 3.模拟实验,运行源程序.实验中的问题及心得:通过实验发现在课程学习中对很多方面只是一知半解,并没有深入的加以研究,致使在组织源程序过程中遇到了很多麻烦,例如对 ARQ 协议只是片面地了解,对其背景,发展过程,应用过程,作用范围并不是很了解,今后一定会在这方面加强认识。通过学习实践发现计算机网络这门课程虽然大部分都是理论课程,很少有实践类的,但其从当今最前沿的计算
16、机科学理论成果出发,将整个网络世界的总体框架呈现在面前,使得网络协议描述表现的淋漓尽致,今后必将以百倍的热情投入到这门课程的学习中。#define MAX_SEQ 7 /* 应该为 2n-1 */总结通过实验所掌握的内容:1.连续 ARQ 协议的算法typedef enum frame_arrival, cksum_error, timeout, network_layer_ready event_type; #include protocal.hstatic boolean between(seq_ a, seq_ b, seq_ c) /* 如果 b 落在 a 和 c 之间(含 a 不含 c)返回 true,否则返回 false. */ if (a else return(false); static void send_d