计算机网络实验1

合集下载

计算机网络实验报告(6篇)

计算机网络实验报告(6篇)

计算机网络实验报告(6篇)计算机网络实验报告(通用6篇)计算机网络实验报告篇1一、实验目的1、熟悉微机的各个部件;2、掌握将各个部件组装成一台主机的方法和步骤;3、掌握每个部件的安装方法;4、了解微型计算机系统的基本配置;5、熟悉并掌握DOS操作系统的使用;6、掌握文件、目录、路径等概念;7、掌握常用虚拟机软件的安装和使用;8、熟悉并掌握虚拟机上WINDOWS操作系统的安装方法及使用;9、掌握使用启动U盘的制作和U盘安装windows操作系统的方法;10、了解WINDOWS操作系统的基本配置和优化方法。

二、实验内容1.将微机的各个部件组装成一台主机;2.调试机器,使其正常工作;3.了解计算机系统的基本配置。

4.安装及使用虚拟机软件;5.安装WINDOWS7操作系统;6.常用DOS命令的使用;7.学会制作启动U盘和使用方法;8.WINDOWS7的基本操作;9.操作系统的基本设置和优化。

三、实验步骤(参照实验指导书上的内容,结合实验过程中做的具体内容,完成此项内容的撰写)四、思考与总结(写实验的心得体会等)计算机网络实验报告篇2windows平台逻辑层数据恢复一、实验目的:通过运用软件R-Studio_5.0和winhe_对误格式化的硬盘或者其他设备进行数据恢复,通过实验了解windows平台逻辑层误格式化数据恢复原理,能够深入理解并掌握数据恢复软件的使用方法,并能熟练运用这些软件对存储设备设备进行数据恢复。

二、实验要求:运用软件R-Studio_5.0和winhe_对电脑磁盘或者自己的U盘中的删除的数据文件进行恢复,对各种文件进行多次尝试,音频文件、系统文件、文档文件等,对简单删除和格式化的磁盘文件分别恢复,并检查和验证恢复结果,分析两个软件的数据恢复功能差异与优势,进一步熟悉存储介质数据修复和恢复方法及过程,提高自身的对存储介质逻辑层恢复技能。

三、实验环境和设备:(1)Windows _P 或Windows 20__ Professional操作系统。

计算机网络(实验一_网络命令使用和网络服务配置)

计算机网络(实验一_网络命令使用和网络服务配置)

《计算机网络》课程实验报告实验一:网络命令、工具使用和效劳器配置FTP主要命令的作用●写出几个你所熟悉的网络测试命令●简要说明效劳器远程登录的开启和登录账户的建立步骤1.开场→控制面板〔小图标〕→程序和功能→翻开或关闭Windows功能→选择Telnet效劳器、客户端所有选项→确定,稍微等几分钟。

2.管理工具→计算机管理→本地用户和组→用户→添加用户→组→RemoteDesktop user右键→添加到组,添加新建立的用户。

3.计算机右键→属性→远程设置→选择〞仅允许运行使用网络级别身份验证的远程桌面的计算机连接〞→确定。

4.开场→远程桌面连接→输入远程主机IP地址→连接→输入用户名、密码→确定。

实验过程中遇到的问题如何解决的?〔10分〕得分:问题1:无法成功远程桌面连接。

解决过程:检查自己的 telnet 配置,检查无误;检查目标计算机的配置,remote desktop service 效劳被禁用。

配置目标计算机:将目标计算机remote desktop service 效劳启动类型更改为手动,并启用该效劳。

问题2:无法启动ftp站点。

解决过程:错误提示“可能有其他进程占用了设置的端口〞,但使用netstat命令并没有发现这一现象,重新设置端口问题还是没有解决,最终使用netsh winsock reset重置了网络设置,重启后问题解决。

open 连接到制定 IP。

quit 退出 telnet。

容二:〔20分〕得分:说明利用Telnet进展应用层协议〔HTTP或SMTP或POP3〕实验过程。

1.翻开 DOS 命令界面2.输入 telnet .mircosoft. 803.ctrl+] 进入命令模式4.键入 set localecho 并回车5.键入 GET /HTTP/1.16.Host: .mircosoft. 并回车 2 次容三:〔20分〕得分:简要说明FTP Server的配置过程和FTP主要命令的作用,实验过程截图1.开场→控制面板〔小图标〕→程序和功能→翻开或关闭 Windows 功能→选择Internet信息效劳所有选项→确定,稍微等几分钟。

计算机网络实验一 etherreal实验

计算机网络实验一 etherreal实验

计算机网络实验一 etherreal实验计算机网络实验是培养学生实践能力、加强理论与实际应用结合的重要环节。

在计算机网络实验一中,我们将学习使用网络数据包分析工具Etherreal(现在已更名为Wireshark),通过捕获、分析和解释网络数据包的内容,加深对计算机网络协议的理解。

通过这个实验,我们还可以进一步掌握计算机网络数据传输的过程,提升网络安全意识和问题排查能力。

实验目的通过Etherreal实验,我们的目的是:1. 学会使用Etherreal工具分析网络数据包;2. 理解网络协议的数据传输过程;3. 掌握网络故障排查方法;4. 加深对计算机网络的理论知识的理解和应用。

实验准备工作在进行Etherreal实验之前,我们需要完成以下准备工作:1. 下载并安装Wireshark软件,确保能够正常运行;2. 确保测试环境网络连接正常,可以正常访问互联网;3. 准备测试数据包,可以通过网络请求、网络攻击等方式生成。

实验步骤1. 启动Wireshark软件,并选择适当的网络接口进行捕获;2. 开始捕获网络数据包,观察网络数据的传输过程;3. 选择一个数据包,分析其详细信息,包括源IP地址、目的IP地址、协议类型等;4. 结合协议标准和通信过程,解释数据包中各字段的含义;5. 可以根据需要设置过滤器,只显示指定类型或目的地址的数据包;6. 分析网络数据包中是否存在异常情况,如网络攻击、传输错误等;7. 掌握Wireshark软件的高级功能,如统计分析、流量图表等。

实验注意事项在进行Etherreal实验时,注意以下事项:1. 合理使用Wireshark软件,避免捕获过多数据包导致系统负荷过大;2. 尽量使用模拟环境进行实验,避免对实际网络环境造成干扰;3. 注意数据包中的私密信息(如密码、身份证号等)的保护;4. 注意网络数据包分析工具的合法使用,遵守相关法律法规;5. 实验结束后,清理实验环境,确保不留下任何安全隐患。

计算机网络实验1制作双绞线

计算机网络实验1制作双绞线

《计算机网络》实验报告2013 至2014 学年第2 学期姓名冯国亿系别计科系实验地点计算机网络实验室学号124090102033 年级、班2012、2 实验时间年月日实验项目制作双绞线一、实验目的(1)了解双绞线布线标准(2)掌握直通式与交叉式双绞线的制作方法二、实验环境(条件)(1)双绞线、RJ-45(水晶头)(2)压线钳、测线器三、实验内容及步骤:1、剪断利用压线钳的剪线刀口剪取适当长度的网线(如图1所示)。

原则上,剪取网线的长度应当比实际需要稍长一些。

原因有两个,一是网线的制作并不保证每次都成功,一旦失败需要剪掉水晶头后重作,这势必又需要占用一段网线;二是网线一般都在地面上或从接近地面处走线,而计算机则都放置在工作台上,这部分距离也应当考虑进去。

2、剥皮用压线钳的剪线刀口将线头剪齐,再将线头放入剥线刀口,让线头触及挡板,稍微握紧压线钳慢慢旋转,让刀口划开双绞线的保护胶皮,拔下胶皮。

这个过程跟接电线时所采用的方法差不多,只是不能用火烧,因为细导线还需要其外层的胶皮相互绝缘。

旋转压线钳和旋转双绞线都能达到将外层胶皮划开的目的,从实际效果来看似乎旋转双绞线更容易把握和控制些。

问题的关键是握紧压线钳的压力,力度过小,划不破保护胶皮,力度过大,则会连同线芯的绝缘层也被破坏,甚至会剪断线芯(铜芯很细也很脆,只要稍有划痕就有折断的危险)。

至于这个力到底用多大,无法在此作定量描述,只能由您在大量的实践中慢慢体会。

3 、排序每对线都是相互缠绕在一起的,制作网线时必须将四个线对的8条细导线一一拆开、理顺、捋直,然后按照规定的线序排列整齐。

将每对线拆开前和拆开后,您都必须能够准确地分辨出各线的颜色,因为接线时必须按严格的顺序来接,不能错不能乱。

目前,最常使用的有两个标准,即T568A标准和T568B标准。

T568A标准描述的线序从左到右依次为:1-白绿、2-绿、3-白橙、4-蓝、5-白蓝、6-橙、7-白棕、8-棕。

2024版《计算机网络》实验指导书

2024版《计算机网络》实验指导书
3. 基本网络命令使用
使用`tracert`命令跟踪路 由路径
使用`ping`命令测试网络 连通性
使用`netstat`命令查看网 络连接状态
实验结果与分析
1. 网络配置结果 展示主机名、IP地址、子网掩码和默
认网关的配置结果 2. TCP/IP协议分析结果
展示捕获的数据包,并分析各层协议 头部信息,包括源/目的IP地址、源/ 目的端口号、协议类型等
01 1. 环境搭建
02
安装和配置实验所需的软件和工具,如虚拟机、操作系
统、网络模拟器等;
03
构建实验网络拓扑,包括内部网络、外部网络和防火墙
等组成部分。
实验内容和步骤
2. 防火墙配置
选择一种防火墙软件或设备,如iptables、pfSense等; 配置防火墙规则,包括访问控制列表(ACL)、网络地址转换(NAT)、 端口转发等;
1. 连接路由器和交换机, 并启动设备
实验步骤
01
03 02
实验内容和步骤
3. 配置路由器接口,并启用路由协议 4. 配置交换机VLAN,并启用STP 5. 验证配置结果,确保网络连通性
实验结果与分析
01
实验结果
02
路由器和交换机配置成功,网络连通性良好
03
各设备运行状态正常,无故障提示
04
分析
02 如何提高网络服务器的安全性和稳定性?
03
如何优化网络服务器的性能?
04
在实际应用中,如何管理和维护网络服务 器?
05
实验五:网络安全与防火 墙配置
实验目的和要求
理解和掌握网络安全的基本概念和原 理;
通过实验,了解防火墙在网络安全中 的作用和重要性。

计算机网络实践实验报告

计算机网络实践实验报告

《计算机网络实践实验报告》实验一:传输介质的实验实验思考题:1.左右两侧线序完全一致,但不是标准线序。

问:能否当正线使用?2.8根线中有4根是实际用于数据传输。

问:是哪4根?3.直通线和交叉线实际的应用环境是什么?4.列出3中功能不同的测线仪,并简述其功能。

实验二:常用网络命令介绍实验思考题:1.如何通过常用网络命令判断目标主机的操作系统?2.作为一名网管,应对于网络拓扑有详尽的了解。

如何通过网络命令判断故障点。

3.分析网关的作用。

实验三:在Windows Server 2003 环境下配置WWW服务实验思考题:1.WWW服务的支撑组件事ISS,最新的IIS版本是什么?支撑WWW所必须的IIS组件事什么?(internet信息服务管理器公用文件万维网服务)2.同一IP能否搭配两个或多个WWW服务器?能3.如何设计非80端口访问服务器?默认网站右键属性tcp端口浏览器输入http://10.0.56.77:80804.Windows 默认的站点主目录是什么?C:\Inetpub\wwwroot5.描述hTTP协议工作的过称及原理。

实验四:在Windows Server 2003 下搭建DNS 服务器实验思考题:1.把本机搭成DNS服务器,能否为主机某一网站分配两个或多个域名?能2.在同一DNS服务器内,能否为不同的网站(不同的IP)分配相同的域名?不能3.在实验实内为本机安装了DNS组件,但没有添加任何记录。

在TCP/IP 属性里,将本机的IP设成唯一的DNS 服务器。

在外网连通的情况下,你能否通过域名访问百度网站?不能4.在TCP/IP属性里面,将本机IP设成唯一DNS服务器,在外网连通的情况下,能否通过域名访问百度网站。

不能5.某主机IP掩码网关配置正常,未设DNS服务器,该主机能否访问某一网站,如可以,通过什么来访问?能通过代理访问6.反向搜索区域的作用实验五:搭建DHCP实验思考题:1. 能否通过交换机充当DHCP服务器?如可以,用二层交换机还是三层交换机?2. DHCP服务器的IP是否必须要和IP值在同一子网,说明原因,如果在同一子网,该IP是否需要做排除?如果不做排除,地址租约中会出现什么样的效果?3. 设计一个实验,使租约生效。

大连理工大学《计算机网络实验(一)》实验报告及学习要求

大连理工大学《计算机网络实验(一)》实验报告及学习要求

姓名:
报名编号:
学习中间:
层次:(高起专或专升本)
专业:
客观题:谈谈你对本课程学习过程中的心得当会?
试验一:PC的网络衔接及测试
试验意图:
试验疑问评论:
1.T568A 线序和T568B 线序。

2.网线制作过程。

试验二:交流机VLAN的根本装备
试验意图:
试验疑问评论:
1.哪些指令是将Switch B的1-6号端口区分到VLAN2?2. 4台PC机之间可以ping通吗?请写出成果及其缘由。

试验三:路由器静态路由装备
试验意图:
试验疑问评论:
1.路由器静态路由装备试验,为何需求两条装备口电缆,其效果是啥?
2.经过路由器静态路由装备的试验,写出静态路由完成的功用以及静态路由装备的效果。

试验四:生成树协议STP的装备
试验意图:
试验疑问评论:
1.生成树协议界说?
2.写出将4台交流机顺次命名为 SwitchA, SwitchB, SwitchC, 和SwitchD的代码。

试验五:路由器RIP的根本装备
试验意图:
试验疑问评论:
1.怎么发动RIP协议?
2.发动RIP协议之后,路由表详细改变是啥?。

计算机网络实验报告-实验一:双绞线的制作精选全文完整版

计算机网络实验报告-实验一:双绞线的制作精选全文完整版

可编辑修改精选全文完整版实验报告(实验1)实验人:学号:日期:院(系):计算机与信息科学学院专业(班级):实验题目:实验一:双绞线的制作一. 实验目的1、掌握双绞线的制作方法和制作工艺;2、掌握双绞线的接线标准T568A、T568B;3、掌握双绞线的检测方法,了解常见的连接方式;4、认识常见的网络设备外观,基本构造;5、了解小型局域网的组建方式。

6、掌握TCP/IP协议的设置方法。

二. 实验环境(工具)1、常见的网络互联设备:网卡、集线器、交换机、路由器、防火墙、服务器、无线网络设备、光纤收发器等;2、制线工具:压线钳、测线仪、双绞线、RJ-45头等;3、Windows2000操作系统的计算机多台。

三. 实验步骤1、双绞线的制作:1.1根据需要,取相应长度(≦100M)双绞线一根,用压线钳剥去15-20mm 的外皮,如图1所示:图1 将双绞线剥去15-20mm 的外皮在这个步骤中需要注意的是,压线钳挡位离剥线刀口长度通常恰好为水晶头长度,这样可以有效避免剥线过长或过短。

若剥线过长看上去肯定不美观,另一方面因网线不能被水晶头卡住,容易松动;若剥线过短,则因有保护层塑料的存在,不能完全插到水晶头底部,造成水晶头插针不能与网线芯线完好接触,影响线路的质量。

1.2按照T568B标准将相互缠绕在一起的线缆逐一解开并把几组线缆依次地排列好并理顺,排列的时候应该注意尽量避免线路的缠绕和重叠;图2 按T568B标准理线通常双绞线的制作有二种接线标准,即EIA/TIA布线标准中规定的T568A和T568B标准。

其中,T568B标准是100M局域网中常用的接线方式。

T568B标准如下图表所示:脚位 1 2 3 4 5 6 7 8颜色橙白橙绿白蓝蓝白绿褐白褐表1-1-2 T568B标准T568A标准如下图表所示:脚位 1 2 3 4 5 6 7 8颜色绿白绿橙白蓝蓝白橙褐白褐表1-1-3 T568A标准1.3 把线缆依次排列好并理顺压直之后,应该细心检查一遍,确认无误后用压线钳的剪线刀口把线缆顶部裁剪整齐。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

杭州电子科技大学实验报告学生姓名:韩民杨实验地点: 1#108学号: 12081420 指导教师:吴端坡实验时间: 2015-4-24一、实验室名称: 1#108二、实验项目名称:计算机网络实验1Coding on error dectecting algorithms(C++)三、实验学时:四、实验原理: C++编程五、实验目的:利用 C++编程 CRC16校验及奇偶校验六、实验内容:Coding on error dectecting algorithms(C++)1.Cyclic redundancy checkUsing the polynomials below to encode random generated datastream (40-100bits). Show the FEC, and encoded data frame.CRC-4x4+x+1ITU G.704CRC-16x16+x15+x2+1IBM SDLCCRC-32x32+x26+x23+...+x2+ ZIP, RAR, IEEE 802 LAN/FDDI, IEEE x+11394, PPP-FCSFor the error patter listed below, what the conclusion does the receiver get? Can the receiver find the errors?Case Error patternNo error0000⋯⋯ 0000One error1000⋯ ..000Two errors100⋯ .001Random errors Random error pattern2.Parity checkUsing even or odd parity check on random generated data stream (8-20bits).Show encoded data frame.For the error patter listed below, what the conclusion does the receiver get?Can the receiver find the errors?Case Error patternNo error0000⋯⋯ 0000One error1000⋯ ..000Two errors100⋯ .001七、实验器材(设备、元器件):PC 机一台,装有 C++集成开发环境。

八、实验步骤:#include<stdio.h>#include<stdlib.h>#include<memory.h>#include<string.h>#include<conio.h>#include<time.h>#define NO_ERROR 1#define ONE_ERROR 2#define TWO_ERROR 3#define RANDOM_ERROR 4#define RESULT 1#define CRC 0#define Parity 0#define check 1int flag_parity;// 判断奇偶校验void ByteToBit(char* out,const char* in,int bits);void input_message(char*message);int xor(char **p, char *d,int len);char *crc_function(char *str_p,int len,char *dividend,int len_d,int type,char *crc_p ); char Parity_check(char *message_output,int length,int mode);void main(){ int pattern = 0;int channel_way =0;char message[8]={NULL};// data that produced by chancechar message_output[1000] = {NULL};char message_crc[] = {NULL};//transportint length;//message's length/* 这是固定了为 4 为的crc,当这里改变是就可以直接改变crc 的长度了*/ char dividend[]="10011";char message_input[1000]="";/* 这里可以更改数值当时16 为 crc 的时候,此时的len_d 为 15*/int len_d=5;//被除数长度设置char flag;while (true){ fflush(stdin); //任意输入数据printf("please input the message!\n");gets(message);printf("A need to send this message:%s\n",message);length = strlen(message);ByteToBit(message_output,message,length*8);for(int k = 0;k<length*8;k++){ printf("%d",message_output[k]);message_input[k] = message_output[k]+48;}pattern = 0;channel_way =0;printf("\n");printf("Coding on error dectecting algorithms\n");printf(" 1.Cyclic redundancy check\n");printf(" 2.Parity check \n");printf("please chice pattern: \n");/* 选择进入的检错模式 */scanf("%d",&pattern);fflush(stdin);// 清空缓存区if(pattern == 1){printf("*************************************\n");printf(" analog channel\n"); printf(" please choicethe way of error\n"); printf("**** 1.No error *****\n");printf("**** 2.One error *****\n"); printf("**** 3.Twoerrors *****\n"); printf("**** 4.Random errors *****\n");scanf("%d",&channel_way); printf("\ncrc :");//进行 crc 检测int len = length*8;//printf("%d\n",len);char *crc = NULL;crc = crc_function(message_input,len,dividend,len_d,CRC,NULL);for(int i = 0;i < len_d;i++){printf("%c",*crc);message_input[length*8+i] = *crc;crc+=1;}printf("\n");/* 模拟信道Case Error patternNo error0000⋯⋯ 0000One error1000⋯ ..000Two errors100⋯ .001Random errors Random error pattern*/if(channel_way == NO_ERROR){char *result = NULL;int flagg=0;printf(" 信道中传输数据: ");for(int f =0;f<length*8+len_d-1 ;f++)printf("%c",message_input[f]);printf("\n");printf(" 正在检错中 .......\n");printf(" 检错结果: ");fflush(stdin);result =crc_function(message_input,len,dividend,len_d,RESULT,crc-len_d);for(int i = 0;i < len_d-1;i++){printf("%c",*result);if((*result) - 48 != 0){printf("\nerror! \n");flagg =1;break;}result+=1;}if(flagg == 0)printf("\n no error! \n");}if(channel_way == ONE_ERROR){char *result = NULL;message_input[0] = ((message_input[0] - 48)^('1'-48)) + 48;printf(" 信道中传输数据: ");for(int f =0;f<length*8+len_d-1 ;f++)printf("%c",message_input[f]);printf("\n");printf(" 正在检错中 .......");printf(" 检错结果: ");= resultcrc_function(message_input,len,dividend,len_d,RESULT,crc-len_d);for(int i = 0;i < len_d-1;i++){if(*result == '1'){printf("data error! \n");break;}else{continue;result+=1;}}}if(channel_way == TWO_ERROR){char *result = NULL;message_input[0] = ((message_input[0] - 48)^('1'-48)) + 48;message_input[length*8-1] =((message_input[length*8-1]-48)^('1'-48)) + 48;printf(" 信道中传输数据: ");for(int f =0;f<length*8+len_d-1 ;f++)printf("%c",message_input[f]);printf("\n");printf(" 正在检错中 .......");printf(" 检错结果: ");= resultcrc_function(message_input,len,dividend,len_d,RESULT,crc);for(int i = 0;i < len_d-1;i++){if(*result != '0'){printf(" data error! \n");break;}else{continue;result+=1;}}}if(channel_way == RANDOM_ERROR){char *result = NULL;int no;srand( (unsigned)time( NULL ) );//初始化随机数no = rand()%length*8;message_input[no] = ((message_input[0] - 48)^('1'-48)) + 48;printf(" 信道中传输数据: ");for(int f =0;f<length*8+len_d-1 ;f++)printf("%c",message_input[f]);printf("\n");printf(" 正在检错中 .......\n");printf(" 检错结果: ");result= crc_function(message_input,len,dividend,len_d,RESULT,crc);for(int i = 0;i < len_d-1;i++){if(*result != '0'){printf(" data error! \n");break;}else{continue;result+=1;}}}printf("************************************\n");printf("\n");printf("\n");}else{printf("Please select the parity mode\n");printf(" 1.Even parity \n");printf(" 2.Odd parity\n");scanf("%d",&flag_parity);char m = Parity_check(message_input,length*8,Parity);printf(" 在信道中传输的 message:");message_input[length*8] = m;for(int message_number= 0;message_number<=length*8;message_number++)printf("%c",message_input[message_number]);printf("\n");printf("*************************************\n");printf("******analog channel******\n");printf("***please choice the way of error****\n");printf("**** 1.No error*****\n");printf("**** 2.One error*****\n");printf("**** 3.Two errors*****\n");scanf("%d",&channel_way);if(channel_way == NO_ERROR){for(int f =0;f<length*8;f++)printf("%c",message_input[f]);printf(" 正在检错中 .......\n");printf(" 检错结果: ");char flag_parity_mode =Parity_check(message_input,length*8,check);if(flag_parity_mode == (message_input[length*8]))printf("no error!\n");}if(channel_way == ONE_ERROR){message_input[0] = ((message_input[0] - 48)^('1'-48)) + 48;for(int f =0;f<length*8;f++)printf("%c",message_input[f]);printf(" 正在检错中 .......\n");printf(" 检错结果: ");char flag_parity_mode =Parity_check(message_input,length*8,check);printf(" error!\n");}if(channel_way == TWO_ERROR){message_input[0] = ((message_input[0] - 48)^('1'-48)) + 48;message_input[length*8-1] = ((message_input[length*8-1] -48)^('1'-48)) + 48;for(int f =0;f<length*8;f++)printf("%c",message_input[f]);printf(" 正在检错中 .......\n");printf(" 检错结果: ");char flag_parity_mode =Parity_check(message_input,length*8,check);printf("no error!\n");}printf("************************************\n");printf("\n");printf("\n");}fflush(stdin);printf("do you want to continue? y/n\n");scanf("%c",&flag);if(flag == 'y')continue;elsebreak;}}/***********************************************/function :完成字节转换成位的功能/输入字符: In输出的二进制:Out************************************************/void ByteToBit(char* out,const char* in,int bits){//char out_1[1000] = "";int i;//printf("%s\n",in);for(i=0;i<bits;++i){out[bits-i-1]=(in[i>>3]>>(i&7))&1; //printf("%d:%d\n",i,out[i]);}}/*********************************************** /function :完成异或除法/输入: **p *d/输出:直接将一次异或除法之后的结果覆盖************************************************/ int xor(char **p, char *d,int len=5){//p 为 message,d 为 crc 检测的中的 pint i=0;for(;i<len;i++){**p=(**p-48)^(*d-48)+48;*p=*p+1;d=d+1;}d=d-len;//d 重新指向最新的//*p=*p-len+1;//p 后移一位return 0;}/*********************************************** /function :完成 crc 检错以及 crc 计算/输入:传输字符: str_p 传输字符长度 len/ /4 位的 crc 的检错方式len_d 是需要填 0 的个数type 用于判断显示计算传输之后的结果还是计算crc/输出: crc 或者计算传输之后的结果************************************************/char *crc_function(char *str_p,int len,char *dividend,int len_d,int type,char *crc_p=NULL){int i;int j;char *input_p=(char *)malloc(sizeof(char)*(len+len_d-1)); //申请空间char *input_p_tmp=NULL;input_p_tmp=input_p;//向指针指向的内存里存数据for(i=0;i<len;i++){*input_p_tmp=str_p[i];input_p_tmp++;}/* 补零个数为 len_d-1*/for(i=0;i<len_d-1;i++){if(type==CRC){//如果是求 crc 就补 0*input_p_tmp='0';input_p_tmp++;}else{//如果是求结果就补crc*input_p_tmp=*crc_p;crc_p++;input_p_tmp++;}}input_p_tmp=NULL;//开始检查如果是 1 则进行异或除法 ,如果是 0 就指针向下移动一位 .其中 '0'=48for(j=0;j<len;j++){/*把 1 传入48表示为 "0";*/if(*input_p==48){//指针后移一位input_p=input_p+1;}else{xor(&input_p,dividend,len_d);}}return input_p;}/***********************************************/function :完成奇偶校验/输入:message_output为需要传输的数据以及数据的长度lengh 奇偶校验的模式/输出:返回奇偶校验的结果************************************************/char Parity_check(char *message_output,int length,int mode) {fflush(stdin);int j = 0;//偶校验if(flag_parity== 1){ if(mode == Parity){ for(int i = 0;i<length;i++){ if(message_output[i] == 49)j++;elsecontinue;}if(j%2 == 0)return '0';elsereturn '1';}else{ for(int i = 0;i<length;i++){if(message_output[i] == 49)j++;else continue;}if(j%2 == 0)return '0';elsereturn '1';}}//奇校验else if(flag_parity == 0){if(mode == Parity){for(int i = 0;i<length;i++){if(message_output[i] == 49)j++;elsecontinue;}if(j%2 == 1)return '0';elsereturn '1';}else{for(int i = 0;i<length;i++){if(message_output[i] == 49)j++;elsecontinue;}if(j%2 == 1)return '0';elsereturn '1';}}}九、实验数据及结果分析:1.输入界面2.输入数据3. CRC 校验1)No error 2)One error3)Two errors 4)Random errors4.奇偶校验①界面②Even parity 1)No error2)One error③Odd parity1)No error3)Two errors十、实验结论:奇偶校验, 1 位错可发现, 2 位错不可发现(奇数个错可发现,偶数个错不可发现)。

相关文档
最新文档